From 236fec2310bc76efee6b366f43b90a2a18dadd03 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 27 Jan 2023 00:40:17 -0700 Subject: [PATCH 001/273] feat: `wrapIndent` option; fixes #715 BREAKING CHANGE: Will strip indents by default; set `wrapIndent` option to a whitespace string (e.g., of 2 spaces) to set the indent you wish after wrapping --- .README/rules/check-line-alignment.md | 21 +- README.md | 120 +++++++++- src/alignTransform.js | 51 ++-- src/rules/checkLineAlignment.js | 44 +++- test/rules/assertions/checkLineAlignment.js | 252 ++++++++++++++++++++ 5 files changed, 453 insertions(+), 35 deletions(-) diff --git a/.README/rules/check-line-alignment.md b/.README/rules/check-line-alignment.md index 6757f2a36..dd87be7bc 100644 --- a/.README/rules/check-line-alignment.md +++ b/.README/rules/check-line-alignment.md @@ -9,17 +9,16 @@ for example. This rule allows one optional string argument. If it is `"always"` then a problem is raised when the lines are not aligned. If it is `"never"` then a problem should be raised when there is more than one space between each -line's parts. Defaults to `"never"`. +line's parts. If it is `"any"`, no alignment is made. Defaults to `"never"`. -Note that in addition to alignment, both options will ensure at least one -space is present after the asterisk delimiter. +Note that in addition to alignment, the "never" and "always" options will both +ensure that at least one space is present after the asterisk delimiter. After the string, an options object is allowed with the following properties. ##### `tags` -Use this to change the tags which are sought for alignment changes. *Currently* -*only works with the "never" option.* Defaults to an array of +Use this to change the tags which are sought for alignment changes. Defaults to an array of `['param', 'arg', 'argument', 'property', 'prop', 'returns', 'return']`. ##### `customSpacings` @@ -34,10 +33,20 @@ An object with any of the following keys set to an integer. Affects spacing: If a spacing is not defined, it defaults to one. +##### `preserveMainDescriptionPostDelimiter` + +A boolean to determine whether to preserve the post-delimiter spacing of the +main description. If `false` or unset, will be set to a single space. + +##### `wrapIndent` + +The indent that will be applied for tag text after the first line. +Default to the empty string (no indent). + ||| |---|---| |Context|everywhere| -|Options|(a string matching `"always" or "never"` and optional object with `tags` and `customSpacings`)| +|Options|(a string matching `"always"`, `"never"`, or `"any"` and optional object with `tags`, `customSpacings`, `preserveMainDescriptionPostDelimiter`, and `wrapIndent`)| |Tags|`param`, `property`, `returns` and others added by `tags`| |Aliases|`arg`, `argument`, `prop`, `return`| |Recommended|false| diff --git a/README.md b/README.md index a7a054495..570abd8bd 100644 --- a/README.md +++ b/README.md @@ -2031,10 +2031,10 @@ for example. This rule allows one optional string argument. If it is `"always"` then a problem is raised when the lines are not aligned. If it is `"never"` then a problem should be raised when there is more than one space between each -line's parts. Defaults to `"never"`. +line's parts. If it is `"any"`, no alignment is made. Defaults to `"never"`. -Note that in addition to alignment, both options will ensure at least one -space is present after the asterisk delimiter. +Note that in addition to alignment, the "never" and "always" options will both +ensure that at least one space is present after the asterisk delimiter. After the string, an options object is allowed with the following properties. @@ -2042,8 +2042,7 @@ After the string, an options object is allowed with the following properties. ##### tags -Use this to change the tags which are sought for alignment changes. *Currently* -*only works with the "never" option.* Defaults to an array of +Use this to change the tags which are sought for alignment changes. Defaults to an array of `['param', 'arg', 'argument', 'property', 'prop', 'returns', 'return']`. @@ -2060,10 +2059,24 @@ An object with any of the following keys set to an integer. Affects spacing: If a spacing is not defined, it defaults to one. + + +##### preserveMainDescriptionPostDelimiter + +A boolean to determine whether to preserve the post-delimiter spacing of the +main description. If `false` or unset, will be set to a single space. + + + +##### wrapIndent + +The indent that will be applied for tag text after the first line. +Default to the empty string (no indent). + ||| |---|---| |Context|everywhere| -|Options|(a string matching `"always" or "never"` and optional object with `tags` and `customSpacings`)| +|Options|(a string matching `"always"`, `"never"`, or `"any"` and optional object with `tags`, `customSpacings`, `preserveMainDescriptionPostDelimiter`, and `wrapIndent`)| |Tags|`param`, `property`, `returns` and others added by `tags`| |Aliases|`arg`, `argument`, `prop`, `return`| |Recommended|false| @@ -2508,6 +2521,53 @@ const fn = ( lorem, sit ) => {} const fn = ( lorem, sit ) => {} // "jsdoc/check-line-alignment": ["error"|"warn", "never",{"customSpacings":{"postHyphen":2}}] // Message: Expected JSDoc block lines to not be aligned. + +/** + * @param {string} lorem Description + * with multiple lines. + */ +function quux () { +} +// "jsdoc/check-line-alignment": ["error"|"warn", "any",{"wrapIndent":" "}] +// Message: Expected wrap indent + +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi + * line with asterisks. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"wrapIndent":" "}] +// Message: Expected JSDoc block lines to be aligned. + +/** + * My function. + * + * @param {string} lorem Description. + * @param {int} sit Description multiple + * lines. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"wrapIndent":" "}] +// Message: Expected JSDoc block lines to not be aligned. + +/** + * @property {boolean} tls_verify_client_certificate - Whether our API should + * enable TLS client authentication + */ +function quux () {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"wrapIndent":" "}] +// Message: Expected wrap indent + +/** + * @property {boolean} tls_verify_client_certificate - Whether our API should + * enable TLS client authentication + */ +function quux () {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"wrapIndent":""}] +// Message: Expected wrap indent ```` The following patterns are not considered problems: @@ -2865,11 +2925,59 @@ const fn = ( lorem, sit ) => {}; const fn = ( a, b ) => {}; // "jsdoc/check-line-alignment": ["error"|"warn", "always"] +/** + * @param {string} lorem Description + * with multiple lines. + */ +function quux () { +} +// "jsdoc/check-line-alignment": ["error"|"warn", "any",{"wrapIndent":" "}] + +/** + * @param {string} lorem Description + * with multiple lines. + */ +function quux () { +} +// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"wrapIndent":" "}] + +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi + * line with asterisks. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"wrapIndent":" "}] + +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi + * line with + * asterisks. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"wrapIndent":" "}] + +/** + * @param { + * string | number + * } lorem Description + * with multiple lines. + */ +function quux () { +} +// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"wrapIndent":" "}] + /** * @param {string|string[]|TemplateResult|TemplateResult[]} event.detail.description - * Notification description */ function quux () {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"wrapIndent":" "}] ```` diff --git a/src/alignTransform.js b/src/alignTransform.js index dbf83e26e..a634dfc6d 100644 --- a/src/alignTransform.js +++ b/src/alignTransform.js @@ -104,6 +104,7 @@ const alignTransform = ({ tags, indent, preserveMainDescriptionPostDelimiter, + wrapIndent, }) => { let intoTags = false; let width; @@ -180,10 +181,11 @@ const alignTransform = ({ return tokens; }; - const update = (line, index, source, typelessInfo) => { + const update = (line, index, source, typelessInfo, indentTag) => { const tokens = { ...line.tokens, }; + if (tokens.tag !== '') { intoTags = true; } @@ -204,21 +206,19 @@ const alignTransform = ({ }; } - /* eslint-disable indent */ switch (tokens.delimiter) { - case Markers.start: - tokens.start = indent; - break; - case Markers.delim: - tokens.start = indent + ' '; - break; - default: - tokens.delimiter = ''; - - // compensate delimiter - tokens.start = indent + ' '; + case Markers.start: + tokens.start = indent; + break; + case Markers.delim: + tokens.start = indent + ' '; + break; + default: + tokens.delimiter = ''; + + // compensate delimiter + tokens.start = indent + ' '; } - /* eslint-enable */ if (!intoTags) { if (tokens.description === '') { @@ -240,16 +240,16 @@ const alignTransform = ({ ); // Not align. - if (!shouldAlign(tags, index, source)) { - return { - ...line, - tokens, - }; + if (shouldAlign(tags, index, source)) { + alignTokens(tokens, typelessInfo); + if (indentTag) { + tokens.postDelimiter += wrapIndent; + } } return { ...line, - tokens: alignTokens(tokens, typelessInfo), + tokens, }; }; @@ -263,10 +263,19 @@ const alignTransform = ({ const typelessInfo = getTypelessInfo(fields); + let tagIndentMode = false; + return rewireSource({ ...fields, source: source.map((line, index) => { - return update(line, index, source, typelessInfo); + const indentTag = tagIndentMode && !line.tokens.tag && line.tokens.description; + const ret = update(line, index, source, typelessInfo, indentTag); + + if (line.tokens.tag) { + tagIndentMode = true; + } + + return ret; }), }); }; diff --git a/src/rules/checkLineAlignment.js b/src/rules/checkLineAlignment.js index 12435bc54..c4e144b4e 100644 --- a/src/rules/checkLineAlignment.js +++ b/src/rules/checkLineAlignment.js @@ -137,6 +137,7 @@ const checkAlignment = ({ report, tags, utils, + wrapIndent, }) => { const transform = commentFlow( alignTransform({ @@ -144,6 +145,7 @@ const checkAlignment = ({ indent, preserveMainDescriptionPostDelimiter, tags, + wrapIndent, }), ); const transformedJsdoc = transform(jsdoc); @@ -176,6 +178,7 @@ export default iterateJsdoc(({ ], preserveMainDescriptionPostDelimiter, customSpacings, + wrapIndent = '', } = context.options[1] || {}; if (context.options[0] === 'always') { @@ -193,14 +196,48 @@ export default iterateJsdoc(({ report, tags: applicableTags, utils, + wrapIndent, }); return; } const foundTags = utils.getPresentTags(applicableTags); + if (context.options[0] !== 'any') { + for (const tag of foundTags) { + checkNotAlignedPerTag(utils, tag, customSpacings); + } + } + for (const tag of foundTags) { - checkNotAlignedPerTag(utils, tag, customSpacings); + if (tag.source.length > 1) { + let idx = 0; + for (const { + tokens, + // Avoid the tag line + } of tag.source.slice(1)) { + idx++; + + if ( + !tokens.description || + // Avoid first lines after multiline type + tokens.type || + tokens.name + ) { + continue; + } + + // Don't include a single separating space/tab + if (tokens.postDelimiter.slice(1) !== wrapIndent) { + utils.reportJSDoc('Expected wrap indent', { + line: tag.source[0].number + idx, + }, () => { + tokens.postDelimiter = tokens.postDelimiter.charAt() + wrapIndent; + }); + return; + } + } + } } }, { iterateAllJsdocs: true, @@ -213,7 +250,7 @@ export default iterateJsdoc(({ schema: [ { enum: [ - 'always', 'never', + 'always', 'never', 'any', ], type: 'string', }, @@ -250,6 +287,9 @@ export default iterateJsdoc(({ }, type: 'array', }, + wrapIndent: { + type: 'string', + }, }, type: 'object', }, diff --git a/test/rules/assertions/checkLineAlignment.js b/test/rules/assertions/checkLineAlignment.js index 1e928e447..91a140f71 100644 --- a/test/rules/assertions/checkLineAlignment.js +++ b/test/rules/assertions/checkLineAlignment.js @@ -1359,6 +1359,165 @@ export default { const fn = ( lorem, sit ) => {} `, }, + { + code: ` + /** + * @param {string} lorem Description + * with multiple lines. + */ + function quux () { + } + `, + errors: [ + { + line: 4, + message: 'Expected wrap indent', + type: 'Block', + }, + ], + options: [ + 'any', + { + wrapIndent: ' ', + }, + ], + output: ` + /** + * @param {string} lorem Description + * with multiple lines. + */ + function quux () { + } + `, + }, + { + code: ` + /** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi + * line with asterisks. + */ + const fn = ( lorem, sit ) => {} + `, + errors: [ + { + line: 2, + message: 'Expected JSDoc block lines to be aligned.', + type: 'Block', + }, + ], + options: [ + 'always', + { + wrapIndent: ' ', + }, + ], + output: ` + /** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi + * line with asterisks. + */ + const fn = ( lorem, sit ) => {} + `, + }, + { + code: ` + /** + * My function. + * + * @param {string} lorem Description. + * @param {int} sit Description multiple + * lines. + */ + const fn = ( lorem, sit ) => {} + `, + errors: [ + { + line: 6, + message: 'Expected JSDoc block lines to not be aligned.', + type: 'Block', + }, + ], + options: [ + 'never', + { + wrapIndent: ' ', + }, + ], + output: ` + /** + * My function. + * + * @param {string} lorem Description. + * @param {int} sit Description multiple + * lines. + */ + const fn = ( lorem, sit ) => {} + `, + }, + { + code: ` + /** + * @property {boolean} tls_verify_client_certificate - Whether our API should + * enable TLS client authentication + */ + function quux () {} + `, + errors: [ + { + line: 4, + message: 'Expected wrap indent', + type: 'Block', + }, + ], + options: [ + 'never', + { + wrapIndent: ' ', + }, + ], + output: ` + /** + * @property {boolean} tls_verify_client_certificate - Whether our API should + * enable TLS client authentication + */ + function quux () {} + `, + }, + { + code: ` + /** + * @property {boolean} tls_verify_client_certificate - Whether our API should + * enable TLS client authentication + */ + function quux () {} + `, + errors: [ + { + line: 4, + message: 'Expected wrap indent', + type: 'Block', + }, + ], + options: [ + 'never', + { + wrapIndent: '', + }, + ], + output: ` + /** + * @property {boolean} tls_verify_client_certificate - Whether our API should + * enable TLS client authentication + */ + function quux () {} + `, + }, ], valid: [ { @@ -1909,6 +2068,93 @@ export default { 'always', ], }, + { + code: ` + /** + * @param {string} lorem Description + * with multiple lines. + */ + function quux () { + } + `, + options: [ + 'any', + { + wrapIndent: ' ', + }, + ], + }, + { + code: ` + /** + * @param {string} lorem Description + * with multiple lines. + */ + function quux () { + } + `, + options: [ + 'never', + { + wrapIndent: ' ', + }, + ], + }, + { + code: ` + /** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi + * line with asterisks. + */ + const fn = ( lorem, sit ) => {} + `, + options: [ + 'always', + { + wrapIndent: ' ', + }, + ], + }, + { + code: ` + /** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi + * line with + * asterisks. + */ + const fn = ( lorem, sit ) => {} + `, + options: [ + 'always', + { + wrapIndent: ' ', + }, + ], + }, + { + code: ` + /** + * @param { + * string | number + * } lorem Description + * with multiple lines. + */ + function quux () { + } + `, + options: [ + 'never', + { + wrapIndent: ' ', + }, + ], + }, { code: ` /** @@ -1917,6 +2163,12 @@ export default { */ function quux () {} `, + options: [ + 'never', + { + wrapIndent: ' ', + }, + ], }, ], }; From 6449ce8d9c3805035d874f711dd54d1198976899 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 2 Mar 2023 10:50:00 -0700 Subject: [PATCH 002/273] fix: avoid erring out with flat config; #989 Also: - chore: update lock file --- package-lock.json | 394 ++++++++++++++++++++++++++-- src/bin/generateReadme.js | 4 +- src/iterateJsdoc.js | 7 +- test/rules/assertions/flatConfig.js | 34 +++ test/rules/index.js | 23 ++ 5 files changed, 438 insertions(+), 24 deletions(-) create mode 100644 test/rules/assertions/flatConfig.js diff --git a/package-lock.json b/package-lock.json index ea4c8e64d..0046e8fec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3407,15 +3407,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.2.tgz", - "integrity": "sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==", + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.0.tgz", + "integrity": "sha512-+hSN9BdSr629RF02d7mMtXhAJvDTyCbprNYJKrXETlul/Aml6YZwd90XioVbjejQeHbb3R8Dg0CkRgoJDxo8aw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/type-utils": "5.48.2", - "@typescript-eslint/utils": "5.48.2", + "@typescript-eslint/scope-manager": "5.54.0", + "@typescript-eslint/type-utils": "5.54.0", + "@typescript-eslint/utils": "5.54.0", "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", "regexpp": "^3.2.0", @@ -3439,6 +3440,115 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.0.tgz", + "integrity": "sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.54.0", + "@typescript-eslint/visitor-keys": "5.54.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.0.tgz", + "integrity": "sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz", + "integrity": "sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.54.0", + "@typescript-eslint/visitor-keys": "5.54.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.54.0.tgz", + "integrity": "sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.54.0", + "@typescript-eslint/types": "5.54.0", + "@typescript-eslint/typescript-estree": "5.54.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz", + "integrity": "sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.54.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@typescript-eslint/experimental-utils": { "version": "5.48.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.48.2.tgz", @@ -3503,13 +3613,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz", - "integrity": "sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==", + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.54.0.tgz", + "integrity": "sha512-WI+WMJ8+oS+LyflqsD4nlXMsVdzTMYTxl16myXPaCXnSgc7LWwMsjxQFZCK/rVmTZ3FN71Ct78ehO9bRC7erYQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.48.2", - "@typescript-eslint/utils": "5.48.2", + "@typescript-eslint/typescript-estree": "5.54.0", + "@typescript-eslint/utils": "5.54.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -3529,6 +3639,115 @@ } } }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.0.tgz", + "integrity": "sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.54.0", + "@typescript-eslint/visitor-keys": "5.54.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.0.tgz", + "integrity": "sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz", + "integrity": "sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.54.0", + "@typescript-eslint/visitor-keys": "5.54.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.54.0.tgz", + "integrity": "sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.54.0", + "@typescript-eslint/types": "5.54.0", + "@typescript-eslint/typescript-estree": "5.54.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz", + "integrity": "sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.54.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@typescript-eslint/types": { "version": "5.48.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.2.tgz", @@ -22414,20 +22633,86 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.2.tgz", - "integrity": "sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==", + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.0.tgz", + "integrity": "sha512-+hSN9BdSr629RF02d7mMtXhAJvDTyCbprNYJKrXETlul/Aml6YZwd90XioVbjejQeHbb3R8Dg0CkRgoJDxo8aw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/type-utils": "5.48.2", - "@typescript-eslint/utils": "5.48.2", + "@typescript-eslint/scope-manager": "5.54.0", + "@typescript-eslint/type-utils": "5.54.0", + "@typescript-eslint/utils": "5.54.0", "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.0.tgz", + "integrity": "sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.54.0", + "@typescript-eslint/visitor-keys": "5.54.0" + } + }, + "@typescript-eslint/types": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.0.tgz", + "integrity": "sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz", + "integrity": "sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.54.0", + "@typescript-eslint/visitor-keys": "5.54.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.54.0.tgz", + "integrity": "sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.54.0", + "@typescript-eslint/types": "5.54.0", + "@typescript-eslint/typescript-estree": "5.54.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz", + "integrity": "sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.54.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + } } }, "@typescript-eslint/experimental-utils": { @@ -22462,15 +22747,80 @@ } }, "@typescript-eslint/type-utils": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz", - "integrity": "sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==", + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.54.0.tgz", + "integrity": "sha512-WI+WMJ8+oS+LyflqsD4nlXMsVdzTMYTxl16myXPaCXnSgc7LWwMsjxQFZCK/rVmTZ3FN71Ct78ehO9bRC7erYQ==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.48.2", - "@typescript-eslint/utils": "5.48.2", + "@typescript-eslint/typescript-estree": "5.54.0", + "@typescript-eslint/utils": "5.54.0", "debug": "^4.3.4", "tsutils": "^3.21.0" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.0.tgz", + "integrity": "sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.54.0", + "@typescript-eslint/visitor-keys": "5.54.0" + } + }, + "@typescript-eslint/types": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.0.tgz", + "integrity": "sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz", + "integrity": "sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.54.0", + "@typescript-eslint/visitor-keys": "5.54.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.54.0.tgz", + "integrity": "sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.54.0", + "@typescript-eslint/types": "5.54.0", + "@typescript-eslint/typescript-estree": "5.54.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz", + "integrity": "sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.54.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + } } }, "@typescript-eslint/types": { diff --git a/src/bin/generateReadme.js b/src/bin/generateReadme.js index 9788fd962..176f409f1 100644 --- a/src/bin/generateReadme.js +++ b/src/bin/generateReadme.js @@ -49,7 +49,9 @@ const formatCodeSnippet = (setup, ruleName) => { }; const getAssertions = () => { - const assertionFiles = glob.sync(path.resolve(__dirname, '../../test/rules/assertions/*.js').replaceAll('\\', '/')); + const assertionFiles = glob.sync(path.resolve(__dirname, '../../test/rules/assertions/*.js').replaceAll('\\', '/')).filter((file) => { + return !file.includes('flatConfig'); + }); const assertionNames = assertionFiles.map((filePath) => { return path.basename(filePath, '.js'); diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index 57ffbd343..ddb2f5c17 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -872,7 +872,12 @@ const getSettings = (context) => { // Many rules, e.g., `check-tag-names` mode: context.settings.jsdoc?.mode ?? - (context.parserPath.includes('@typescript-eslint') ? 'typescript' : 'jsdoc'), + (context.parserPath?.includes('@typescript-eslint') ? + // Todo: Waiting for TS parser to label itself: + // https://github.com/eslint/eslint/pull/16944 + // https://github.com/typescript-eslint/typescript-eslint/issues/6541 + // || context.languageOptions?.parser?.meta?.name?.includes('typescript') ? + 'typescript' : 'jsdoc'), // Many rules contexts: context.settings.jsdoc?.contexts, diff --git a/test/rules/assertions/flatConfig.js b/test/rules/assertions/flatConfig.js new file mode 100644 index 000000000..02b876389 --- /dev/null +++ b/test/rules/assertions/flatConfig.js @@ -0,0 +1,34 @@ +import * as tsParser from '@typescript-eslint/parser'; + +export default { + 'valid-types': { + invalid: [], + valid: [ + { + code: ` + /** + * Foo function. + * + * @param {[number, string]} bar - The bar array. + */ + function foo(bar) {} + `, + languageOptions: { + parser: tsParser, + parserOptions: { + ecmaVersion: 2_020, + sourceType: 'module', + }, + }, + // Need manual setting here until fixing: + // https://github.com/eslint/eslint/pull/16944 + // https://github.com/typescript-eslint/typescript-eslint/issues/6541 + settings: { + jsdoc: { + mode: 'typescript', + }, + }, + }, + ], + }, +}; diff --git a/test/rules/index.js b/test/rules/index.js index 9b4f48a91..e0d620f3b 100644 --- a/test/rules/index.js +++ b/test/rules/index.js @@ -3,12 +3,16 @@ import { ESLint, RuleTester, } from 'eslint'; +import pkg from 'eslint/use-at-your-own-risk'; import defaultsDeep from 'lodash.defaultsdeep'; import semver from 'semver'; import config from '../../src'; import ruleNames from './ruleNames.json'; const ruleTester = new RuleTester(); +const { + FlatRuleTester, +} = pkg; const main = async () => { for (const ruleName of process.env.npm_config_rule ? process.env.npm_config_rule.split(',') : ruleNames) { @@ -116,6 +120,25 @@ const main = async () => { ruleTester.run(ruleName, rule, assertions); } + + // Catch syntax errors + let flatRuleNames; + try { + flatRuleNames = (await import('./assertions/flatConfig.js')).default; + } catch (error) { + // eslint-disable-next-line no-console -- Reporting back to tester + console.error(error); + return; + } + + const fakeRuleTester = new FlatRuleTester(); + for (const [ + ruleName, + assertions, + ] of Object.entries(flatRuleNames)) { + const rule = config.rules[ruleName]; + fakeRuleTester.run(ruleName, rule, assertions); + } }; main(); From b444026a9ee6cdfdb8105ae093e49c30643d3a0c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Mar 2023 17:57:48 +0000 Subject: [PATCH 003/273] build(deps): bump undici from 5.15.0 to 5.20.0 Bumps [undici](https://github.com/nodejs/undici) from 5.15.0 to 5.20.0. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v5.15.0...v5.20.0) --- updated-dependencies: - dependency-name: undici dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0046e8fec..53ee5f96c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19320,9 +19320,9 @@ } }, "node_modules/undici": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.15.0.tgz", - "integrity": "sha512-wCAZJDyjw9Myv+Ay62LAoB+hZLPW9SmKbQkbHIhMw/acKSlpn7WohdMUc/Vd4j1iSMBO0hWwU8mjB7a5p5bl8g==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.20.0.tgz", + "integrity": "sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==", "dev": true, "dependencies": { "busboy": "^1.6.0" @@ -34376,9 +34376,9 @@ } }, "undici": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.15.0.tgz", - "integrity": "sha512-wCAZJDyjw9Myv+Ay62LAoB+hZLPW9SmKbQkbHIhMw/acKSlpn7WohdMUc/Vd4j1iSMBO0hWwU8mjB7a5p5bl8g==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.20.0.tgz", + "integrity": "sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==", "dev": true, "requires": { "busboy": "^1.6.0" From 877f9b06238c4a3e5b0d8266c7c3bdd6593762bf Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 13 Mar 2023 20:25:11 -0700 Subject: [PATCH 004/273] fix: support detection of typescript parser for flat config; fixes #989 --- src/iterateJsdoc.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index ddb2f5c17..2288bd12f 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -872,11 +872,8 @@ const getSettings = (context) => { // Many rules, e.g., `check-tag-names` mode: context.settings.jsdoc?.mode ?? - (context.parserPath?.includes('@typescript-eslint') ? - // Todo: Waiting for TS parser to label itself: - // https://github.com/eslint/eslint/pull/16944 - // https://github.com/typescript-eslint/typescript-eslint/issues/6541 - // || context.languageOptions?.parser?.meta?.name?.includes('typescript') ? + (context.parserPath?.includes('@typescript-eslint') || + context.languageOptions?.parser?.meta?.name?.includes('typescript') ? 'typescript' : 'jsdoc'), // Many rules From 6282b97c835be8081787cd86fab9916fad5c436c Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 13 Mar 2023 20:40:20 -0700 Subject: [PATCH 005/273] chore: update esquery and devDeps. --- .ncurc.js | 1 + package-lock.json | 4159 +++++++++++++++++++++------------------------ package.json | 22 +- 3 files changed, 1913 insertions(+), 2269 deletions(-) diff --git a/.ncurc.js b/.ncurc.js index 16808a758..bac8b45c8 100644 --- a/.ncurc.js +++ b/.ncurc.js @@ -10,5 +10,6 @@ module.exports = { // Todo[engine:node@>=16]: Requires Node 16 'eslint-config-canonical', + 'glob', ], }; diff --git a/package-lock.json b/package-lock.json index 53ee5f96c..9d0ef541e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,45 +13,45 @@ "comment-parser": "1.3.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", - "esquery": "^1.4.0", + "esquery": "^1.5.0", "semver": "^7.3.8", "spdx-expression-parse": "^3.0.1" }, "devDependencies": { - "@babel/cli": "^7.20.7", - "@babel/core": "^7.20.12", + "@babel/cli": "^7.21.0", + "@babel/core": "^7.21.0", "@babel/eslint-parser": "^7.19.1", "@babel/node": "^7.20.7", "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-transform-flow-strip-types": "^7.19.0", + "@babel/plugin-transform-flow-strip-types": "^7.21.0", "@babel/preset-env": "^7.20.2", - "@babel/register": "^7.18.9", + "@babel/register": "^7.21.0", "@es-joy/jsdoc-eslint-parser": "^0.17.0", "@hkdobrev/run-if-changed": "^0.3.1", "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/github": "^8.0.7", "@semantic-release/npm": "^9.0.2", - "@typescript-eslint/parser": "^5.48.2", + "@typescript-eslint/parser": "^5.55.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", "chai": "^4.3.7", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "^8.32.0", + "eslint": "^8.36.0", "eslint-config-canonical": "~33.0.1", "gitdown": "^3.1.5", "glob": "^8.1.0", "husky": "^8.0.3", "jsdoc-type-pratt-parser": "^3.1.0", - "lint-staged": "^13.1.0", + "lint-staged": "^13.2.0", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.2.0", "nyc": "^15.1.0", "open-editor": "^3.0.0", - "rimraf": "^4.1.1", - "semantic-release": "^20.0.2", - "typescript": "^4.9.4" + "rimraf": "^4.4.0", + "semantic-release": "^20.1.1", + "typescript": "^4.9.5" }, "engines": { "node": "^14 || ^16 || ^17 || ^18 || ^19" @@ -86,12 +86,12 @@ } }, "node_modules/@babel/cli": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.20.7.tgz", - "integrity": "sha512-WylgcELHB66WwQqItxNILsMlaTd8/SO6SgTTjMp4uCI7P4QyH1r3nqgFmO3BfM4AtfniHgFMH3EpYFj/zynBkQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.21.0.tgz", + "integrity": "sha512-xi7CxyS8XjSyiwUGCfwf+brtJxjW1/ZTcBUkP10xawIEXLX5HzLn+3aXkgxozcP2UhRhtKTmQurw9Uaes7jZrA==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.8", + "@jridgewell/trace-mapping": "^0.3.17", "commander": "^4.0.1", "convert-source-map": "^1.1.0", "fs-readdir-recursive": "^1.1.0", @@ -147,30 +147,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.20.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", - "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", + "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.0.tgz", + "integrity": "sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==", "dev": true, "dependencies": { - "@ampproject/remapping": "^2.1.0", + "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", + "@babel/generator": "^7.21.0", "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", + "@babel/helper-module-transforms": "^7.21.0", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.0", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -238,13 +238,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", - "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", + "version": "7.21.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.1.tgz", + "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", "dev": true, "dependencies": { - "@babel/types": "^7.20.7", + "@babel/types": "^7.21.0", "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "engines": { @@ -319,15 +320,15 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz", - "integrity": "sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz", + "integrity": "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.0", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/helper-replace-supers": "^7.20.7", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", @@ -341,13 +342,13 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", - "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz", + "integrity": "sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.2.1" + "regexpu-core": "^5.3.1" }, "engines": { "node": ">=6.9.0" @@ -404,13 +405,13 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", "dev": true, "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" }, "engines": { "node": ">=6.9.0" @@ -429,12 +430,12 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz", - "integrity": "sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", + "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", "dev": true, "dependencies": { - "@babel/types": "^7.20.7" + "@babel/types": "^7.21.0" }, "engines": { "node": ">=6.9.0" @@ -453,9 +454,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", @@ -464,8 +465,8 @@ "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" }, "engines": { "node": ">=6.9.0" @@ -582,9 +583,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -606,14 +607,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", - "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", "dev": true, "dependencies": { "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" }, "engines": { "node": ">=6.9.0" @@ -657,9 +658,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", - "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", + "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -735,12 +736,12 @@ } }, "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz", - "integrity": "sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.20.7", + "@babel/helper-create-class-features-plugin": "^7.21.0", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, @@ -883,9 +884,9 @@ } }, "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz", - "integrity": "sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", @@ -916,13 +917,13 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", - "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-create-class-features-plugin": "^7.21.0", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, @@ -1220,9 +1221,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz", - "integrity": "sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" @@ -1235,15 +1236,15 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz", - "integrity": "sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-compilation-targets": "^7.20.7", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", + "@babel/helper-function-name": "^7.21.0", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-replace-supers": "^7.20.7", @@ -1336,12 +1337,12 @@ } }, "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.19.0.tgz", - "integrity": "sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz", + "integrity": "sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-flow": "^7.18.6" }, "engines": { @@ -1352,12 +1353,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", + "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1430,12 +1431,12 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz", - "integrity": "sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", + "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-module-transforms": "^7.21.2", "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-simple-access": "^7.20.2" }, @@ -1558,9 +1559,9 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.20.7.tgz", - "integrity": "sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz", + "integrity": "sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg==", "dev": true, "peer": true, "dependencies": { @@ -1568,7 +1569,7 @@ "@babel/helper-module-imports": "^7.18.6", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-jsx": "^7.18.6", - "@babel/types": "^7.20.7" + "@babel/types": "^7.21.0" }, "engines": { "node": ">=6.9.0" @@ -1830,9 +1831,9 @@ } }, "node_modules/@babel/register": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.18.9.tgz", - "integrity": "sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.21.0.tgz", + "integrity": "sha512-9nKsPmYDi5DidAqJaQooxIhsLJiNMkGr8ypQ8Uic7cIox7UCDsM7HuUGxdGT7mSDTYbqzIdsOWzfBton/YJrMw==", "dev": true, "dependencies": { "clone-deep": "^4.0.1", @@ -1848,10 +1849,16 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "node_modules/@babel/runtime": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz", - "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", "dev": true, "dependencies": { "regenerator-runtime": "^0.13.11" @@ -1875,19 +1882,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", - "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.2.tgz", + "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", + "@babel/generator": "^7.21.1", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", + "@babel/helper-function-name": "^7.21.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", + "@babel/parser": "^7.21.2", + "@babel/types": "^7.21.2", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1896,9 +1903,9 @@ } }, "node_modules/@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz", + "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.19.4", @@ -1919,30 +1926,6 @@ "node": ">=0.1.90" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "peer": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, "node_modules/@es-joy/jsdoc-eslint-parser": { "version": "0.17.0", "resolved": "https://registry.npmjs.org/@es-joy/jsdoc-eslint-parser/-/jsdoc-eslint-parser-0.17.0.tgz", @@ -1988,15 +1971,48 @@ "node": "^14 || ^16 || ^17 || ^18 || ^19" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz", + "integrity": "sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz", + "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz", + "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.5.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -2018,9 +2034,9 @@ "dev": true }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2081,6 +2097,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@eslint/js": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz", + "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@gar/promisify": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", @@ -2088,9 +2113,9 @@ "dev": true }, "node_modules/@graphql-eslint/eslint-plugin": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@graphql-eslint/eslint-plugin/-/eslint-plugin-3.14.3.tgz", - "integrity": "sha512-Ey4LocCSYLNXYWDfNh67ZzbCTNx1liqhZbQthidvoGtoVUo0sKsnR5pn2dVCRB8NbvQ4skob9r2dFBcUYhVbgQ==", + "version": "3.16.1", + "resolved": "https://registry.npmjs.org/@graphql-eslint/eslint-plugin/-/eslint-plugin-3.16.1.tgz", + "integrity": "sha512-sKmtlwVWjxCXlmgpNJSdvBqapluyrp6PA7FbSnpkyHD0ejkp3mhwZtCiR6843LmVFgWSzfAtEdjPCT2TcJ5p/w==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", @@ -2124,12 +2149,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@graphql-eslint/eslint-plugin/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "node_modules/@graphql-eslint/eslint-plugin/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -2164,64 +2183,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/@graphql-eslint/eslint-plugin/node_modules/cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", - "dev": true, - "dependencies": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@graphql-eslint/eslint-plugin/node_modules/cosmiconfig-typescript-loader": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz", - "integrity": "sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">=12", - "npm": ">=6" - }, - "peerDependencies": { - "@types/node": "*", - "cosmiconfig": ">=7", - "ts-node": ">=10", - "typescript": ">=3" - } - }, - "node_modules/@graphql-eslint/eslint-plugin/node_modules/graphql-config": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-4.4.0.tgz", - "integrity": "sha512-QUrX7R4htnTBTi83a0IlIilWVfiLEG8ANFlHRcxoZiTvOXTbgan67SUdGe1OlopbDuyNgtcy4ladl3Gvk4C36A==", - "dev": true, - "dependencies": { - "@graphql-tools/graphql-file-loader": "^7.3.7", - "@graphql-tools/json-file-loader": "^7.3.7", - "@graphql-tools/load": "^7.5.5", - "@graphql-tools/merge": "^8.2.6", - "@graphql-tools/url-loader": "^7.9.7", - "@graphql-tools/utils": "^9.0.0", - "cosmiconfig": "8.0.0", - "minimatch": "4.2.1", - "string-env-interpolation": "1.0.1", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "cosmiconfig-toml-loader": "^1.0.0", - "cosmiconfig-typescript-loader": "^4.0.0", - "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, "node_modules/@graphql-eslint/eslint-plugin/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -2231,73 +2192,6 @@ "node": ">=8" } }, - "node_modules/@graphql-eslint/eslint-plugin/node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@graphql-eslint/eslint-plugin/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@graphql-eslint/eslint-plugin/node_modules/minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@graphql-eslint/eslint-plugin/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@graphql-eslint/eslint-plugin/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/@graphql-eslint/eslint-plugin/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -2311,13 +2205,13 @@ } }, "node_modules/@graphql-tools/batch-execute": { - "version": "8.5.15", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.15.tgz", - "integrity": "sha512-qb12M8XCK6SBJmZDS8Lzd4PVJFsIwNUkYmFuqcTiBqOI/WsoDlQDZI++ghRpGcusLkL9uzcIOTT/61OeHhsaLg==", + "version": "8.5.18", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.18.tgz", + "integrity": "sha512-mNv5bpZMLLwhkmPA6+RP81A6u3KF4CSKLf3VX9hbomOkQR4db8pNs8BOvpZU54wKsUzMzdlws/2g/Dabyb2Vsg==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.1.4", - "dataloader": "2.1.0", + "@graphql-tools/utils": "9.2.1", + "dataloader": "2.2.2", "tslib": "^2.4.0", "value-or-promise": "1.0.12" }, @@ -2326,13 +2220,13 @@ } }, "node_modules/@graphql-tools/code-file-loader": { - "version": "7.3.16", - "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.3.16.tgz", - "integrity": "sha512-109UFvQjZEntHwjPaHpWvgUudHenGngbXvSImabPc2fdrtgja5KC0h7thCg379Yw6IORHGrF2XbJwS1hAGPPWw==", + "version": "7.3.21", + "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.3.21.tgz", + "integrity": "sha512-dj+OLnz1b8SYkXcuiy0CUQ25DWnOEyandDlOcdBqU3WVwh5EEVbn0oXUYm90fDlq2/uut00OrtC5Wpyhi3tAvA==", "dev": true, "dependencies": { - "@graphql-tools/graphql-tag-pluck": "7.4.3", - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/graphql-tag-pluck": "7.5.0", + "@graphql-tools/utils": "9.2.1", "globby": "^11.0.3", "tslib": "^2.4.0", "unixify": "^1.0.0" @@ -2342,31 +2236,31 @@ } }, "node_modules/@graphql-tools/delegate": { - "version": "9.0.22", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-9.0.22.tgz", - "integrity": "sha512-dWJGMN8V7KORtbI8eDAjHYTWiMyis/md27M6pPhrlYVlcsDk3U0jbNdgkswBBUEBvqumPRCv8pVOxKcLS4caKA==", + "version": "9.0.28", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-9.0.28.tgz", + "integrity": "sha512-8j23JCs2mgXqnp+5K0v4J3QBQU/5sXd9miaLvMfRf/6963DznOXTECyS9Gcvj1VEeR5CXIw6+aX/BvRDKDdN1g==", "dev": true, "dependencies": { - "@graphql-tools/batch-execute": "8.5.15", - "@graphql-tools/executor": "0.0.12", - "@graphql-tools/schema": "9.0.13", - "@graphql-tools/utils": "9.1.4", - "dataloader": "2.1.0", - "tslib": "~2.4.0", - "value-or-promise": "1.0.12" + "@graphql-tools/batch-execute": "^8.5.18", + "@graphql-tools/executor": "^0.0.15", + "@graphql-tools/schema": "^9.0.16", + "@graphql-tools/utils": "^9.2.1", + "dataloader": "^2.2.2", + "tslib": "^2.5.0", + "value-or-promise": "^1.0.12" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/executor": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-0.0.12.tgz", - "integrity": "sha512-bWpZcYRo81jDoTVONTnxS9dDHhEkNVjxzvFCH4CRpuyzD3uL+5w3MhtxIh24QyWm4LvQ4f+Bz3eMV2xU2I5+FA==", + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-0.0.15.tgz", + "integrity": "sha512-6U7QLZT8cEUxAMXDP4xXVplLi6RBwx7ih7TevlBto66A/qFp3PDb6o/VFo07yBKozr8PGMZ4jMfEWBGxmbGdxA==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.1.4", - "@graphql-typed-document-node/core": "3.1.1", + "@graphql-tools/utils": "9.2.1", + "@graphql-typed-document-node/core": "3.1.2", "@repeaterjs/repeater": "3.0.4", "tslib": "^2.4.0", "value-or-promise": "1.0.12" @@ -2376,66 +2270,108 @@ } }, "node_modules/@graphql-tools/executor-graphql-ws": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.6.tgz", - "integrity": "sha512-n6JvIviYO8iiasV/baclimQqNkYGP7JRlkNSnphNG5LULmVpQ2WsyvbgJHV7wtlTZ8ZQ3+dILgQF83PFyLsfdA==", + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.12.tgz", + "integrity": "sha512-aFD79i9l282Ob5dOZ7JsyhhXXP1o8eQh0prYkSSVo/OU2ndzWigfANz4DJgWgS3LwBjLDlMcmaXPZZeXt3m4Tg==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/utils": "9.2.1", "@repeaterjs/repeater": "3.0.4", "@types/ws": "^8.0.0", - "graphql-ws": "5.11.2", + "graphql-ws": "5.12.0", "isomorphic-ws": "5.0.0", "tslib": "^2.4.0", - "ws": "8.12.0" + "ws": "8.12.1" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, + "node_modules/@graphql-tools/executor-graphql-ws/node_modules/ws": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz", + "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/@graphql-tools/executor-http": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-0.1.1.tgz", - "integrity": "sha512-bFE6StI7CJEIYGRkAnTYxutSV4OtC1c4MQU3nStOYZZO7KmzIgEQZ4ygPSPrRb+jtRsMCBEqPqlYOD4Rq02aMw==", + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-0.1.9.tgz", + "integrity": "sha512-tNzMt5qc1ptlHKfpSv9wVBVKCZ7gks6Yb/JcYJluxZIT4qRV+TtOFjpptfBU63usgrGVOVcGjzWc/mt7KhmmpQ==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.1.4", - "@repeaterjs/repeater": "3.0.4", - "@whatwg-node/fetch": "0.6.2", - "dset": "3.1.2", + "@graphql-tools/utils": "^9.2.1", + "@repeaterjs/repeater": "^3.0.4", + "@whatwg-node/fetch": "^0.8.1", + "dset": "^3.1.2", "extract-files": "^11.0.0", - "meros": "1.2.1", + "meros": "^1.2.1", "tslib": "^2.4.0", - "value-or-promise": "1.0.12" + "value-or-promise": "^1.0.12" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/executor-legacy-ws": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.6.tgz", - "integrity": "sha512-L1hRuSvBUCNerYDhfeSZXFeqliDlnNXa3fDHTp7efI3Newpbevqa19Fm0mVzsCL7gqIKOwzrPORwh7kOVE/vew==", + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.9.tgz", + "integrity": "sha512-L7oDv7R5yoXzMH+KLKDB2WHVijfVW4dB2H+Ae1RdW3MFvwbYjhnIB6QzHqKEqksjp/FndtxZkbuTIuAOsYGTYw==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/utils": "9.2.1", "@types/ws": "^8.0.0", "isomorphic-ws": "5.0.0", "tslib": "^2.4.0", - "ws": "8.12.0" + "ws": "8.12.1" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, + "node_modules/@graphql-tools/executor-legacy-ws/node_modules/ws": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz", + "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/@graphql-tools/graphql-file-loader": { - "version": "7.5.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.14.tgz", - "integrity": "sha512-JGer4g57kq4wtsvqv8uZsT4ZG1lLsz1x5yHDfSj2OxyiWw2f1jFkzgby7Ut3H2sseJiQzeeDYZcbm06qgR32pg==", + "version": "7.5.16", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.16.tgz", + "integrity": "sha512-lK1N3Y2I634FS12nd4bu7oAJbai3bUc28yeX+boT+C83KTO4ujGHm+6hPC8X/FRGwhKOnZBxUM7I5nvb3HiUxw==", "dev": true, "dependencies": { - "@graphql-tools/import": "6.7.15", - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/import": "6.7.17", + "@graphql-tools/utils": "9.2.1", "globby": "^11.0.3", "tslib": "^2.4.0", "unixify": "^1.0.0" @@ -2445,16 +2381,16 @@ } }, "node_modules/@graphql-tools/graphql-tag-pluck": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.4.3.tgz", - "integrity": "sha512-w+nrJVQw+NTuaZNQG5AwSh4Qe+urP/s4rUz5s1T007rDnv1kvkiX+XHOCnIfJzXOTuvFmG4GGYw/x0CuSRaGZQ==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.5.0.tgz", + "integrity": "sha512-76SYzhSlH50ZWkhWH6OI94qrxa8Ww1ZeOU04MdtpSeQZVT2rjGWeTb3xM3kjTVWQJsr/YJBhDeNPGlwNUWfX4Q==", "dev": true, "dependencies": { "@babel/parser": "^7.16.8", "@babel/plugin-syntax-import-assertions": "7.20.0", "@babel/traverse": "^7.16.8", "@babel/types": "^7.16.8", - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/utils": "9.2.1", "tslib": "^2.4.0" }, "peerDependencies": { @@ -2462,12 +2398,12 @@ } }, "node_modules/@graphql-tools/import": { - "version": "6.7.15", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.7.15.tgz", - "integrity": "sha512-WNhvauAt2I2iUg+JdQK5oQebKLXqUZWe8naP13K1jOkbTQT7hK3P/4I9AaVmzt0KXRJW5Uow3RgdHZ7eUBKVsA==", + "version": "6.7.17", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.7.17.tgz", + "integrity": "sha512-bn9SgrECXq3WIasgNP7ful/uON51wBajPXtxdY+z/ce7jLWaFE6lzwTDB/GAgiZ+jo7nb0ravlxteSAz2qZmuA==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/utils": "9.2.1", "resolve-from": "5.0.0", "tslib": "^2.4.0" }, @@ -2476,12 +2412,12 @@ } }, "node_modules/@graphql-tools/json-file-loader": { - "version": "7.4.15", - "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-7.4.15.tgz", - "integrity": "sha512-pH+hbsDetcEpj+Tmi7ZRUkxzJez2DLdSQuvK5Qi38FX/Nz/5nZKRfW9nqIptGYbuS9+2JPrt9WWNn1aGtegIFQ==", + "version": "7.4.17", + "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-7.4.17.tgz", + "integrity": "sha512-KOSTP43nwjPfXgas90rLHAFgbcSep4nmiYyR9xRVz4ZAmw8VYHcKhOLTSGylCAzi7KUfyBXajoW+6Z7dQwdn3g==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/utils": "9.2.1", "globby": "^11.0.3", "tslib": "^2.4.0", "unixify": "^1.0.0" @@ -2491,13 +2427,13 @@ } }, "node_modules/@graphql-tools/load": { - "version": "7.8.9", - "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.8.9.tgz", - "integrity": "sha512-/eHRv6OCTI/Ir5XcbtSx0XbW3zOQVscp2MZQFGZKDzqCcGD+NVy4mLCoBwR/OsOUpvWAwMnc+Llb4SDKAYGmjQ==", + "version": "7.8.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.8.13.tgz", + "integrity": "sha512-c97/GuUl81Wpa38cx3E6nMz8gUrvVcFokoPfDOaA5uTWSTXA1UxaF4KrvM9P5rNFaKVAtF9f6nMIusRE5B0mag==", "dev": true, "dependencies": { - "@graphql-tools/schema": "9.0.13", - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/schema": "9.0.17", + "@graphql-tools/utils": "9.2.1", "p-limit": "3.1.0", "tslib": "^2.4.0" }, @@ -2505,28 +2441,13 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/load/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@graphql-tools/merge": { - "version": "8.3.15", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.15.tgz", - "integrity": "sha512-hYYOlsqkUlL6oOo7zzuk6hIv7xQzy+x21sgK84d5FWaiWYkLYh9As8myuDd9SD5xovWWQ9m/iRhIOVDEMSyEKA==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.0.tgz", + "integrity": "sha512-3XYCWe0d3I4F1azNj1CdShlbHfTIfiDgj00R9uvFH8tHKh7i1IWN3F7QQYovcHKhayaR6zPok3YYMESYQcBoaA==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/utils": "9.2.1", "tslib": "^2.4.0" }, "peerDependencies": { @@ -2534,13 +2455,13 @@ } }, "node_modules/@graphql-tools/schema": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.13.tgz", - "integrity": "sha512-guRA3fwAtv+M1Kh930P4ydH9aKJTWscIkhVFcWpj/cnjYYxj88jkEJ15ZNiJX/2breNY+sbVgmlgLKb6aXi/Jg==", + "version": "9.0.17", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.17.tgz", + "integrity": "sha512-HVLq0ecbkuXhJlpZ50IHP5nlISqH2GbNgjBJhhRzHeXhfwlUOT4ISXGquWTmuq61K0xSaO0aCjMpxe4QYbKTng==", "dev": true, "dependencies": { - "@graphql-tools/merge": "8.3.15", - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/merge": "8.4.0", + "@graphql-tools/utils": "9.2.1", "tslib": "^2.4.0", "value-or-promise": "1.0.12" }, @@ -2549,35 +2470,36 @@ } }, "node_modules/@graphql-tools/url-loader": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.17.2.tgz", - "integrity": "sha512-VgCXa5vQzcM13+loJvVHLXltp3qN8PHUTeth50cImUhCm3qtRwOeuSYjpph38vllPb8DKxsZkNFxzYgzscWIow==", - "dev": true, - "dependencies": { - "@ardatan/sync-fetch": "0.0.1", - "@graphql-tools/delegate": "9.0.22", - "@graphql-tools/executor-graphql-ws": "0.0.6", - "@graphql-tools/executor-http": "0.1.1", - "@graphql-tools/executor-legacy-ws": "0.0.6", - "@graphql-tools/utils": "9.1.4", - "@graphql-tools/wrap": "9.3.1", + "version": "7.17.14", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.17.14.tgz", + "integrity": "sha512-7boEmrZlbViqQSSvu2VFCGi9YAY7E0BCVObiv1sLYbFR+62mo825As0haU5l7wlx1zCDyUlOleNz+X2jVvBbSQ==", + "dev": true, + "dependencies": { + "@ardatan/sync-fetch": "^0.0.1", + "@graphql-tools/delegate": "^9.0.27", + "@graphql-tools/executor-graphql-ws": "^0.0.12", + "@graphql-tools/executor-http": "^0.1.7", + "@graphql-tools/executor-legacy-ws": "^0.0.9", + "@graphql-tools/utils": "^9.2.1", + "@graphql-tools/wrap": "^9.3.8", "@types/ws": "^8.0.0", - "@whatwg-node/fetch": "^0.6.0", - "isomorphic-ws": "5.0.0", + "@whatwg-node/fetch": "^0.8.0", + "isomorphic-ws": "^5.0.0", "tslib": "^2.4.0", "value-or-promise": "^1.0.11", - "ws": "8.12.0" + "ws": "^8.12.0" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/utils": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.4.tgz", - "integrity": "sha512-hgIeLt95h9nQgQuzbbdhuZmh+8WV7RZ/6GbTj6t3IU4Zd2zs9yYJ2jgW/krO587GMOY8zCwrjNOMzD40u3l7Vg==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", "tslib": "^2.4.0" }, "peerDependencies": { @@ -2585,14 +2507,14 @@ } }, "node_modules/@graphql-tools/wrap": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-9.3.1.tgz", - "integrity": "sha512-uzY1HKc7qMErWL3ybv8bFG3hI1rTJPVYQ8WeJkCF/r/+aHEkUj0Bo2PYZrZTX1UIr3Tb4P5GyhqYBgZOXraZjw==", + "version": "9.3.8", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-9.3.8.tgz", + "integrity": "sha512-MGsExYPiILMw4Qff7HcvE9MMSYdjb/tr5IQYJbxJIU4/TrBHox1/smne8HG+Bd7kmDlTTj7nU/Z8sxmoRd0hOQ==", "dev": true, "dependencies": { - "@graphql-tools/delegate": "9.0.22", - "@graphql-tools/schema": "9.0.13", - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/delegate": "9.0.28", + "@graphql-tools/schema": "9.0.17", + "@graphql-tools/utils": "9.2.1", "tslib": "^2.4.0", "value-or-promise": "1.0.12" }, @@ -2601,12 +2523,12 @@ } }, "node_modules/@graphql-typed-document-node/core": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", - "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.2.tgz", + "integrity": "sha512-9anpBMM9mEgZN4wr2v8wHJI2/u5TnnggewRN6OlvXTTnuVyoY19X6rOv9XTqKRw6dcGKwZsBi8n0kDE2I5i4VA==", "dev": true, "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@hkdobrev/run-if-changed": { @@ -2658,13 +2580,6 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, - "node_modules/@iarna/toml": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", - "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", - "dev": true, - "peer": true - }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -2889,28 +2804,28 @@ } }, "node_modules/@octokit/auth-token": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.2.tgz", - "integrity": "sha512-pq7CwIMV1kmzkFTimdwjAINCXKTajZErLB4wMLYapR2nuB/Jpr66+05wOTZMSCBXP6n4DdDWT2W19Bm17vU69Q==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.3.tgz", + "integrity": "sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==", "dev": true, "dependencies": { - "@octokit/types": "^8.0.0" + "@octokit/types": "^9.0.0" }, "engines": { "node": ">= 14" } }, "node_modules/@octokit/core": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.1.0.tgz", - "integrity": "sha512-Czz/59VefU+kKDy+ZfDwtOIYIkFjExOKf+HA92aiTZJ6EfWpFzYQWw0l54ji8bVmyhc+mGaLUbSUmXazG7z5OQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.0.tgz", + "integrity": "sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg==", "dev": true, "dependencies": { "@octokit/auth-token": "^3.0.0", "@octokit/graphql": "^5.0.0", "@octokit/request": "^6.0.0", "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" }, @@ -2919,12 +2834,12 @@ } }, "node_modules/@octokit/endpoint": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.3.tgz", - "integrity": "sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.5.tgz", + "integrity": "sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==", "dev": true, "dependencies": { - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "is-plain-object": "^5.0.0", "universal-user-agent": "^6.0.0" }, @@ -2933,13 +2848,13 @@ } }, "node_modules/@octokit/graphql": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.4.tgz", - "integrity": "sha512-amO1M5QUQgYQo09aStR/XO7KAl13xpigcy/kI8/N1PnZYSS69fgte+xA4+c2DISKqUZfsh0wwjc2FaCt99L41A==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.5.tgz", + "integrity": "sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==", "dev": true, "dependencies": { "@octokit/request": "^6.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "universal-user-agent": "^6.0.0" }, "engines": { @@ -2947,18 +2862,18 @@ } }, "node_modules/@octokit/openapi-types": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz", - "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-16.0.0.tgz", + "integrity": "sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==", "dev": true }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-5.0.1.tgz", - "integrity": "sha512-7A+rEkS70pH36Z6JivSlR7Zqepz3KVucEFVDnSrgHXzG7WLAzYwcHZbKdfTXHwuTHbkT1vKvz7dHl1+HNf6Qyw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.0.0.tgz", + "integrity": "sha512-Sq5VU1PfT6/JyuXPyt04KZNVsFOSBaYOAq2QRZUwzVlI10KFvcbUo8lR258AAQL1Et60b0WuVik+zOWKLuDZxw==", "dev": true, "dependencies": { - "@octokit/types": "^8.0.0" + "@octokit/types": "^9.0.0" }, "engines": { "node": ">= 14" @@ -2977,12 +2892,12 @@ } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.7.0.tgz", - "integrity": "sha512-orxQ0fAHA7IpYhG2flD2AygztPlGYNAdlzYz8yrD8NDgelPfOYoRPROfEyIe035PlxvbYrgkfUZIhSBKju/Cvw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.0.1.tgz", + "integrity": "sha512-pnCaLwZBudK5xCdrR823xHGNgqOzRnJ/mpC/76YPpNP7DybdsJtP7mdOwh+wYZxK5jqeQuhu59ogMI4NRlBUvA==", "dev": true, "dependencies": { - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "deprecation": "^2.3.1" }, "engines": { @@ -2993,14 +2908,14 @@ } }, "node_modules/@octokit/request": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.2.tgz", - "integrity": "sha512-6VDqgj0HMc2FUX2awIs+sM6OwLgwHvAi4KCK3mT2H2IKRt6oH9d0fej5LluF5mck1lRR/rFWN0YIDSYXYSylbw==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.3.tgz", + "integrity": "sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==", "dev": true, "dependencies": { "@octokit/endpoint": "^7.0.0", "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "is-plain-object": "^5.0.0", "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" @@ -3010,12 +2925,12 @@ } }, "node_modules/@octokit/request-error": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.2.tgz", - "integrity": "sha512-WMNOFYrSaX8zXWoJg9u/pKgWPo94JXilMLb2VManNOby9EZxrQaBe/QSC4a1TzpAlpxofg2X/jMnCyZgL6y7eg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", "dev": true, "dependencies": { - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "deprecation": "^2.0.0", "once": "^1.4.0" }, @@ -3024,33 +2939,33 @@ } }, "node_modules/@octokit/rest": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.5.tgz", - "integrity": "sha512-+4qdrUFq2lk7Va+Qff3ofREQWGBeoTKNqlJO+FGjFP35ZahP+nBenhZiGdu8USSgmq4Ky3IJ/i4u0xbLqHaeow==", + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.7.tgz", + "integrity": "sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA==", "dev": true, "dependencies": { "@octokit/core": "^4.1.0", - "@octokit/plugin-paginate-rest": "^5.0.0", + "@octokit/plugin-paginate-rest": "^6.0.0", "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^6.7.0" + "@octokit/plugin-rest-endpoint-methods": "^7.0.0" }, "engines": { "node": ">= 14" } }, "node_modules/@octokit/types": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.1.1.tgz", - "integrity": "sha512-7tjk+6DyhYAmei8FOEwPfGKc0VE1x56CKPJ+eE44zhDbOyMT+9yan8apfQFxo8oEFsy+0O7PiBtH8w0Yo0Y9Kw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.0.0.tgz", + "integrity": "sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^14.0.0" + "@octokit/openapi-types": "^16.0.0" } }, "node_modules/@peculiar/asn1-schema": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.3.tgz", - "integrity": "sha512-6GptMYDMyWBHTUKndHaDsRZUO/XMSgIns2krxcm2L7SEExRHwawFvSwNBhqNPR9HJwv3MruAiF1bhN0we6j6GQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz", + "integrity": "sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA==", "dev": true, "dependencies": { "asn1js": "^3.0.5", @@ -3086,6 +3001,15 @@ "node": ">=10.12.0" } }, + "node_modules/@pnpm/config.env-replace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.0.0.tgz", + "integrity": "sha512-ZVPVDi1E8oeXlYqkGRtX0CkzLTwE2zt62bjWaWKaAvI8NZqHzlMvGeSNDpW+JB3+aKanYb4UETJOF1/CxGPemA==", + "dev": true, + "engines": { + "node": ">=12.22.0" + } + }, "node_modules/@pnpm/network.ca-file": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", @@ -3099,11 +3023,12 @@ } }, "node_modules/@pnpm/npm-conf": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-1.0.5.tgz", - "integrity": "sha512-hD8ml183638O3R6/Txrh0L8VzGOrFXgRtRDG4qQC4tONdZ5Z1M+tlUUDUvrjYdmK6G+JTBTeaCLMna11cXzi8A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.1.0.tgz", + "integrity": "sha512-Oe6ntvgsMTE3hDIqy6sajqHF+MnzJrOF06qC2QSiUEybLL7cp6tjoKUa32gpd9+KPVl4QyMs3E3nsXrx/Vdnlw==", "dev": true, "dependencies": { + "@pnpm/config.env-replace": "^1.0.0", "@pnpm/network.ca-file": "^1.0.1", "config-chain": "^1.1.11" }, @@ -3327,34 +3252,6 @@ "node": ">= 10" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true, - "peer": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true, - "peer": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true, - "peer": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true, - "peer": true - }, "node_modules/@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -3374,9 +3271,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.11.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", - "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", + "version": "18.15.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.2.tgz", + "integrity": "sha512-sDPHm2wfx2QhrMDK0pOt2J4KLJMAcerqWNvnED0itPRJWvI+bK+uNHzcH1dFsBlf7G3u8tqXmRF3wkvL9yUwMw==", "dev": true }, "node_modules/@types/normalize-package-data": { @@ -3407,19 +3304,19 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.0.tgz", - "integrity": "sha512-+hSN9BdSr629RF02d7mMtXhAJvDTyCbprNYJKrXETlul/Aml6YZwd90XioVbjejQeHbb3R8Dg0CkRgoJDxo8aw==", + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.55.0.tgz", + "integrity": "sha512-IZGc50rtbjk+xp5YQoJvmMPmJEYoC53SiKPXyqWfv15XoD2Y5Kju6zN0DwlmaGJp1Iw33JsWJcQ7nw0lGCGjVg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.54.0", - "@typescript-eslint/type-utils": "5.54.0", - "@typescript-eslint/utils": "5.54.0", + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.55.0", + "@typescript-eslint/type-utils": "5.55.0", + "@typescript-eslint/utils": "5.55.0", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", - "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" }, @@ -3440,122 +3337,13 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.0.tgz", - "integrity": "sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.54.0", - "@typescript-eslint/visitor-keys": "5.54.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.0.tgz", - "integrity": "sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz", - "integrity": "sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.54.0", - "@typescript-eslint/visitor-keys": "5.54.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.54.0.tgz", - "integrity": "sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.54.0", - "@typescript-eslint/types": "5.54.0", - "@typescript-eslint/typescript-estree": "5.54.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz", - "integrity": "sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.54.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.48.2.tgz", - "integrity": "sha512-Iwx8De8dwl6qPaPZWIaEfP1feN/YFlA5FlCxF3zUIm+2AG92C5Tefkugj2L9ytOFrmTYkTE/CqvJFZbYoVZQMg==", + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.55.0.tgz", + "integrity": "sha512-3ZqXIZhdGyGQAIIGATeMtg7prA6VlyxGtcy5hYIR/3qUqp3t18pWWUYhL9mpsDm7y8F9mr3ISMt83TiqCt7OPQ==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.48.2" + "@typescript-eslint/utils": "5.55.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3569,14 +3357,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.48.2.tgz", - "integrity": "sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==", + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.55.0.tgz", + "integrity": "sha512-ppvmeF7hvdhUUZWSd2EEWfzcFkjJzgNQzVST22nzg958CR+sphy8A6K7LXQZd6V75m1VKjp+J4g/PCEfSCmzhw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/typescript-estree": "5.48.2", + "@typescript-eslint/scope-manager": "5.55.0", + "@typescript-eslint/types": "5.55.0", + "@typescript-eslint/typescript-estree": "5.55.0", "debug": "^4.3.4" }, "engines": { @@ -3596,13 +3384,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz", - "integrity": "sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==", + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.55.0.tgz", + "integrity": "sha512-OK+cIO1ZGhJYNCL//a3ROpsd83psf4dUJ4j7pdNVzd5DmIk+ffkuUIX2vcZQbEW/IR41DYsfJTB19tpCboxQuw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2" + "@typescript-eslint/types": "5.55.0", + "@typescript-eslint/visitor-keys": "5.55.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3613,13 +3401,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.54.0.tgz", - "integrity": "sha512-WI+WMJ8+oS+LyflqsD4nlXMsVdzTMYTxl16myXPaCXnSgc7LWwMsjxQFZCK/rVmTZ3FN71Ct78ehO9bRC7erYQ==", + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.55.0.tgz", + "integrity": "sha512-ObqxBgHIXj8rBNm0yh8oORFrICcJuZPZTqtAFh0oZQyr5DnAHZWfyw54RwpEEH+fD8suZaI0YxvWu5tYE/WswA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.54.0", - "@typescript-eslint/utils": "5.54.0", + "@typescript-eslint/typescript-estree": "5.55.0", + "@typescript-eslint/utils": "5.55.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -3639,119 +3427,10 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.0.tgz", - "integrity": "sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.54.0", - "@typescript-eslint/visitor-keys": "5.54.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.0.tgz", - "integrity": "sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz", - "integrity": "sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.54.0", - "@typescript-eslint/visitor-keys": "5.54.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.54.0.tgz", - "integrity": "sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.54.0", - "@typescript-eslint/types": "5.54.0", - "@typescript-eslint/typescript-estree": "5.54.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz", - "integrity": "sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.54.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/@typescript-eslint/types": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.2.tgz", - "integrity": "sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==", + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.55.0.tgz", + "integrity": "sha512-M4iRh4AG1ChrOL6Y+mETEKGeDnT7Sparn6fhZ5LtVJF1909D5O4uqK+C5NPbLmpfZ0XIIxCdwzKiijpZUOvOug==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3762,13 +3441,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz", - "integrity": "sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==", + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.55.0.tgz", + "integrity": "sha512-I7X4A9ovA8gdpWMpr7b1BN9eEbvlEtWhQvpxp/yogt48fy9Lj3iE3ild/1H3jKBBIYj5YYJmS2+9ystVhC7eaQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2", + "@typescript-eslint/types": "5.55.0", + "@typescript-eslint/visitor-keys": "5.55.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -3789,18 +3468,18 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.2.tgz", - "integrity": "sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==", + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.55.0.tgz", + "integrity": "sha512-FkW+i2pQKcpDC3AY6DU54yl8Lfl14FVGYDgBTyGKB75cCwV3KpkpTMFi9d9j2WAJ4271LR2HeC5SEWF/CZmmfw==", "dev": true, "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/typescript-estree": "5.48.2", + "@typescript-eslint/scope-manager": "5.55.0", + "@typescript-eslint/types": "5.55.0", + "@typescript-eslint/typescript-estree": "5.55.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", "semver": "^7.3.7" }, "engines": { @@ -3815,12 +3494,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", - "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.55.0.tgz", + "integrity": "sha512-q2dlHHwWgirKh1D3acnuApXG+VNXpEY5/AwRxDVuEQpxWaB0jCDe0jFMVMALJ3ebSfuOVE8/rMS+9ZOYGg1GWw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/types": "5.55.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -3840,21 +3519,39 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@whatwg-node/events": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.0.2.tgz", + "integrity": "sha512-WKj/lI4QjnLuPrim0cfO7i+HsDSXHxNv1y0CrJhdntuO3hxWZmnXCwNDnwOvry11OjRin6cgWNF+j/9Pn8TN4w==", + "dev": true + }, "node_modules/@whatwg-node/fetch": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.6.2.tgz", - "integrity": "sha512-fCUycF1W+bI6XzwJFnbdDuxIldfKM3w8+AzVCLGlucm0D+AQ8ZMm2j84hdcIhfV6ZdE4Y1HFVrHosAxdDZ+nPw==", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.8.2.tgz", + "integrity": "sha512-6u1xGzFZvskJpQXhWreR9s1/4nsuY4iFRsTb4BC3NiDHmzgj/Hu1Ovt4iHs5KAjLzbnsjaQOI5f5bQPucqvPsQ==", "dev": true, "dependencies": { "@peculiar/webcrypto": "^1.4.0", - "abort-controller": "^3.0.0", + "@whatwg-node/node-fetch": "^0.3.1", "busboy": "^1.6.0", - "form-data-encoder": "^1.7.1", - "formdata-node": "^4.3.1", - "node-fetch": "^2.6.7", - "undici": "^5.12.0", "urlpattern-polyfill": "^6.0.2", - "web-streams-polyfill": "^3.2.0" + "web-streams-polyfill": "^3.2.1" + } + }, + "node_modules/@whatwg-node/node-fetch": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.3.1.tgz", + "integrity": "sha512-/U4onp5eBkRHfFe/VL+ppyupqj7z6iBtjcuPSosQNH2/y+LxRn5lyFb7Vqhb5DokjrDMjssLcqiVYnx+UABFsw==", + "dev": true, + "dependencies": { + "@whatwg-node/events": "^0.0.2", + "busboy": "^1.6.0", + "fast-querystring": "^1.1.1", + "fast-url-parser": "^1.1.3", + "tslib": "^2.3.1" + }, + "peerDependencies": { + "@types/node": "^18.0.6" } }, "node_modules/abbrev": { @@ -3863,22 +3560,10 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, "node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -3917,16 +3602,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -3940,13 +3615,13 @@ } }, "node_modules/agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", + "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", "dev": true, "dependencies": { "debug": "^4.1.0", - "depd": "^1.1.2", + "depd": "^2.0.0", "humanize-ms": "^1.2.1" }, "engines": { @@ -4083,13 +3758,6 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "peer": true - }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -4141,6 +3809,19 @@ "node": ">=0.10.0" } }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-ify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", @@ -4372,9 +4053,9 @@ "dev": true }, "node_modules/axe-core": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.2.tgz", - "integrity": "sha512-b1WlTV8+XKLj9gZy2DZXgQiyDp9xkkoe2a6U6UbYccScq2wgH/YwCeI2/Jq2mgo0HzQxqJOjWZBLeA/mqsk5Mg==", + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.3.tgz", + "integrity": "sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==", "dev": true, "engines": { "node": ">=4" @@ -4569,9 +4250,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "dev": true, "funding": [ { @@ -4584,10 +4265,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" }, "bin": { "browserslist": "cli.js" @@ -4656,9 +4337,9 @@ } }, "node_modules/cacache/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" @@ -4843,9 +4524,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001445", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001445.tgz", - "integrity": "sha512-8sdQIdMztYmzfTMO6KfLny878Ln9c2M0fc7EH60IjlP4Dc4PiCy7K2Vl3ITmWgOyPgVQKa5x+UP/KqFsxj4mBg==", + "version": "1.0.30001465", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001465.tgz", + "integrity": "sha512-HvjgL3MYAJjceTDCcjRnQGjwUz/5qec9n7JPOzUursUoOTIsYCSDOb1l7RsnZE8mjbxG78zVRCKfrBXyvChBag==", "dev": true, "funding": [ { @@ -4964,9 +4645,9 @@ } }, "node_modules/ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "dev": true, "funding": [ { @@ -5464,9 +5145,9 @@ } }, "node_modules/core-js": { - "version": "3.27.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.27.1.tgz", - "integrity": "sha512-GutwJLBChfGCpwwhbYoqfv03LAfmiz7e7D/BNxzeMxwQf10GRSzqiOjx7AmtEk+heiD/JWmBuyBPgFtx0Sg1ww==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.1.tgz", + "integrity": "sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw==", "dev": true, "hasInstallScript": true, "funding": { @@ -5475,12 +5156,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.27.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.27.1.tgz", - "integrity": "sha512-Dg91JFeCDA17FKnneN7oCMz4BkQ4TcffkgHP4OWwp9yx3pi7ubqMDXXSacfNak1PQqjc95skyt+YBLHQJnkJwA==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.1.tgz", + "integrity": "sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA==", "dev": true, "dependencies": { - "browserslist": "^4.21.4" + "browserslist": "^4.21.5" }, "funding": { "type": "opencollective", @@ -5508,16 +5189,6 @@ "node": ">=4" } }, - "node_modules/cosmiconfig-toml-loader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-toml-loader/-/cosmiconfig-toml-loader-1.0.0.tgz", - "integrity": "sha512-H/2gurFWVi7xXvCyvsWRLCMekl4tITJcX0QEsDMpzxtuxDyM59xLatYNg4s/k9AA/HdtCYfj2su8mgA0GSDLDA==", - "dev": true, - "peer": true, - "dependencies": { - "@iarna/toml": "^2.2.5" - } - }, "node_modules/create-eslint-index": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/create-eslint-index/-/create-eslint-index-1.0.0.tgz", @@ -5530,13 +5201,6 @@ "node": ">=4.0.0" } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "peer": true - }, "node_modules/cross-env": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", @@ -5612,9 +5276,9 @@ } }, "node_modules/dataloader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.1.0.tgz", - "integrity": "sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", + "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==", "dev": true }, "node_modules/dateformat": { @@ -5788,9 +5452,9 @@ } }, "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", "dev": true, "dependencies": { "has-property-descriptors": "^1.0.0", @@ -5898,12 +5562,12 @@ "dev": true }, "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/deprecation": { @@ -6038,9 +5702,9 @@ "dev": true }, "node_modules/duplexer2/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -6084,9 +5748,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "version": "1.4.328", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz", + "integrity": "sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw==", "dev": true }, "node_modules/emoji-regex": { @@ -6301,18 +5965,18 @@ } }, "node_modules/es-abstract": { - "version": "1.21.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", - "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", + "version": "1.21.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", + "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", "dev": true, "dependencies": { + "array-buffer-byte-length": "^1.0.0", "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", + "get-intrinsic": "^1.2.0", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", @@ -6320,8 +5984,8 @@ "has-property-descriptors": "^1.0.0", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.4", - "is-array-buffer": "^3.0.1", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", @@ -6329,11 +5993,12 @@ "is-string": "^1.0.7", "is-typed-array": "^1.1.10", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", + "object-inspect": "^1.12.3", "object-keys": "^1.1.1", "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", "string.prototype.trimend": "^1.0.6", "string.prototype.trimstart": "^1.0.6", "typed-array-length": "^1.0.4", @@ -6522,12 +6187,15 @@ } }, "node_modules/eslint": { - "version": "8.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.32.0.tgz", - "integrity": "sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz", + "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.4.1", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.1", + "@eslint/js": "8.36.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -6538,10 +6206,9 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", + "espree": "^9.5.0", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", @@ -6562,7 +6229,6 @@ "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -7132,9 +6798,9 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.32.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.1.tgz", - "integrity": "sha512-vOjdgyd0ZHBXNsmvU+785xY8Bfe57EFbTYYk8XrROzWpr9QBvpjITvAXt9xqcE6+8cjR/g1+mfumPToxsl1www==", + "version": "7.32.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", + "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", "dev": true, "dependencies": { "array-includes": "^3.1.6", @@ -7459,9 +7125,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -7525,21 +7191,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/eslint/node_modules/p-locate": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", @@ -7589,9 +7240,9 @@ } }, "node_modules/espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz", + "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==", "dev": true, "dependencies": { "acorn": "^8.8.0", @@ -7634,9 +7285,9 @@ "dev": true }, "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dependencies": { "estraverse": "^5.1.0" }, @@ -7673,15 +7324,6 @@ "node": ">=0.10.0" } }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", @@ -7996,6 +7638,12 @@ "node >=0.6.0" ] }, + "node_modules/fast-decode-uri-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", + "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", + "dev": true + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -8043,6 +7691,24 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-querystring": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.1.tgz", + "integrity": "sha512-qR2r+e3HvhEFmpdHMv//U8FnFlnYjaC6QKDuaXALDkw2kvHO8WDjxH+f/rHGR4Me4pnk8p9JAkRNTjYHAKRn2Q==", + "dev": true, + "dependencies": { + "fast-decode-uri-component": "^1.0.1" + } + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dev": true, + "dependencies": { + "punycode": "^1.3.2" + } + }, "node_modules/fastq": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", @@ -8164,6 +7830,21 @@ "node": ">=6" } }, + "node_modules/find-cache-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/find-cache-dir/node_modules/p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", @@ -8342,34 +8023,6 @@ "node": ">= 0.12" } }, - "node_modules/form-data-encoder": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", - "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==", - "dev": true - }, - "node_modules/formdata-node": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", - "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", - "dev": true, - "dependencies": { - "node-domexception": "1.0.0", - "web-streams-polyfill": "4.0.0-beta.3" - }, - "engines": { - "node": ">= 12.20" - } - }, - "node_modules/formdata-node/node_modules/web-streams-polyfill": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", - "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, "node_modules/fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -8399,9 +8052,9 @@ "dev": true }, "node_modules/from2/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -8609,9 +8262,9 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "dev": true, "dependencies": { "function-bind": "^1.1.1", @@ -8735,9 +8388,9 @@ "dev": true }, "node_modules/git-log-parser/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -8979,6 +8632,125 @@ "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } }, + "node_modules/graphql-config": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-4.5.0.tgz", + "integrity": "sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==", + "dev": true, + "dependencies": { + "@graphql-tools/graphql-file-loader": "^7.3.7", + "@graphql-tools/json-file-loader": "^7.3.7", + "@graphql-tools/load": "^7.5.5", + "@graphql-tools/merge": "^8.2.6", + "@graphql-tools/url-loader": "^7.9.7", + "@graphql-tools/utils": "^9.0.0", + "cosmiconfig": "8.0.0", + "jiti": "1.17.1", + "minimatch": "4.2.3", + "string-env-interpolation": "1.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "cosmiconfig-toml-loader": "^1.0.0", + "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "cosmiconfig-toml-loader": { + "optional": true + } + } + }, + "node_modules/graphql-config/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/graphql-config/node_modules/cosmiconfig": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", + "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", + "dev": true, + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/graphql-config/node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graphql-config/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/graphql-config/node_modules/minimatch": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.3.tgz", + "integrity": "sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/graphql-config/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graphql-config/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/graphql-depth-limit": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/graphql-depth-limit/-/graphql-depth-limit-1.1.0.tgz", @@ -8995,9 +8767,9 @@ } }, "node_modules/graphql-ws": { - "version": "5.11.2", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.11.2.tgz", - "integrity": "sha512-4EiZ3/UXYcjm+xFGP544/yW1+DVI8ZpKASFbzrV5EDTFWJp0ZvLl4Dy2fSZAzz9imKp5pZMIcjB0x/H69Pv/6w==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.12.0.tgz", + "integrity": "sha512-PA3ImUp8utrpEjoxBMhvxsjkStvFEdU0E1gEBREt8HZIWkxOUymwJBhFnBL7t/iHhUq1GVPeZevPinkZFENxTw==", "dev": true, "engines": { "node": ">=10" @@ -9511,12 +9283,12 @@ } }, "node_modules/internal-slot": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", - "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3", + "get-intrinsic": "^1.2.0", "has": "^1.0.3", "side-channel": "^1.0.4" }, @@ -9584,13 +9356,13 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", - "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "get-intrinsic": "^1.2.0", "is-typed-array": "^1.1.10" }, "funding": { @@ -9650,9 +9422,9 @@ "dev": true }, "node_modules/is-builtin-module": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", - "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", "dev": true, "dependencies": { "builtin-modules": "^3.3.0" @@ -10397,10 +10169,19 @@ "node": ">= 0.6.0" } }, + "node_modules/jiti": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.17.1.tgz", + "integrity": "sha512-NZIITw8uZQFuzQimqjUxIrIcEdxYDFIe/0xYfIlVXTkiBjjyBEvgasj5bb0/cHtPRD/NziPbT312sFrkI5ALpw==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, "node_modules/js-sdsl": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", - "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", "dev": true, "funding": { "type": "opencollective", @@ -10546,9 +10327,9 @@ } }, "node_modules/jsonc-eslint-parser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-2.1.0.tgz", - "integrity": "sha512-qCRJWlbP2v6HbmKW7R3lFbeiVWHo+oMJ0j+MizwvauqnCV/EvtAeEeuCgoc/ErtsuoKgYB8U4Ih8AxJbXoE6/g==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-2.2.0.tgz", + "integrity": "sha512-x5QjzBOORd+T2EjErIxJnkOEbLVEdD1ILEeBbIJt8Eq/zUn7P7M8qdnWiNVBK5f8oxnJpc6SBHOeeIEl/swPjg==", "dev": true, "dependencies": { "acorn": "^8.5.0", @@ -10675,9 +10456,9 @@ } }, "node_modules/lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, "engines": { "node": ">=10" @@ -10711,24 +10492,24 @@ "dev": true }, "node_modules/lint-staged": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.1.0.tgz", - "integrity": "sha512-pn/sR8IrcF/T0vpWLilih8jmVouMlxqXxKuAojmbiGX5n/gDnz+abdPptlj0vYnbfE0SQNl3CY/HwtM0+yfOVQ==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.0.tgz", + "integrity": "sha512-GbyK5iWinax5Dfw5obm2g2ccUiZXNGtAS4mCbJ0Lv4rq6iEtfBSjOYdcbOtAIFtM114t0vdpViDDetjVTSd8Vw==", "dev": true, "dependencies": { + "chalk": "5.2.0", "cli-truncate": "^3.1.0", - "colorette": "^2.0.19", - "commander": "^9.4.1", + "commander": "^10.0.0", "debug": "^4.3.4", - "execa": "^6.1.0", - "lilconfig": "2.0.6", - "listr2": "^5.0.5", + "execa": "^7.0.0", + "lilconfig": "2.1.0", + "listr2": "^5.0.7", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", - "object-inspect": "^1.12.2", + "object-inspect": "^1.12.3", "pidtree": "^0.6.0", "string-argv": "^0.3.1", - "yaml": "^2.1.3" + "yaml": "^2.2.1" }, "bin": { "lint-staged": "bin/lint-staged.js" @@ -10740,24 +10521,36 @@ "url": "https://opencollective.com/lint-staged" } }, + "node_modules/lint-staged/node_modules/chalk": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/lint-staged/node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", + "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", "dev": true, "engines": { - "node": "^12.20.0 || >=14" + "node": ">=14" } }, "node_modules/lint-staged/node_modules/execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.0.tgz", + "integrity": "sha512-T6nIJO3LHxUZ6ahVRaxXz9WLEruXLqdcluA+UuTptXmLM7nDAn9lx9IfkxPyzEL21583qSt4RmL44pO71EHaJQ==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", - "human-signals": "^3.0.1", + "human-signals": "^4.3.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", @@ -10766,7 +10559,7 @@ "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" @@ -10785,12 +10578,12 @@ } }, "node_modules/lint-staged/node_modules/human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.0.tgz", + "integrity": "sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ==", "dev": true, "engines": { - "node": ">=12.20.0" + "node": ">=14.18.0" } }, "node_modules/lint-staged/node_modules/is-stream": { @@ -10894,9 +10687,9 @@ } }, "node_modules/listr2": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.7.tgz", - "integrity": "sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.8.tgz", + "integrity": "sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==", "dev": true, "dependencies": { "cli-truncate": "^2.1.0", @@ -11405,13 +11198,6 @@ "semver": "bin/semver" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, - "peer": true - }, "node_modules/make-fetch-happen": { "version": "10.2.1", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", @@ -11440,9 +11226,9 @@ } }, "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" @@ -11807,9 +11593,9 @@ } }, "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -12113,21 +11899,6 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "node_modules/mocha/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/mocha/node_modules/p-locate": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", @@ -12275,25 +12046,6 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, "node_modules/node-emoji": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", @@ -12323,9 +12075,9 @@ } }, "node_modules/node-fetch": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", - "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", "dev": true, "dependencies": { "whatwg-url": "^5.0.0" @@ -12414,9 +12166,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", - "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", "dev": true }, "node_modules/nopt": { @@ -12471,9 +12223,9 @@ } }, "node_modules/npm": { - "version": "8.19.3", - "resolved": "https://registry.npmjs.org/npm/-/npm-8.19.3.tgz", - "integrity": "sha512-0QjmyPtDxSyMWWD8I91QGbrgx9KzbV6C9FK1liEb/K0zppiZkr5KxXc990G+LzPwBHDfRjUBlO9T1qZ08vl9mA==", + "version": "8.19.4", + "resolved": "https://registry.npmjs.org/npm/-/npm-8.19.4.tgz", + "integrity": "sha512-3HANl8i9DKnUA89P4KEgVNN28EjSeDCmvEqbzOAuxCFDzdBZzjUl99zgnGpOUumvW5lvJo2HKcjrsc+tfyv1Hw==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -13581,7 +13333,7 @@ } }, "node_modules/npm/node_modules/http-cache-semantics": { - "version": "4.1.0", + "version": "4.1.1", "dev": true, "inBundle": true, "license": "BSD-2-Clause" @@ -15895,15 +15647,15 @@ } }, "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -15921,6 +15673,21 @@ "node": ">=8" } }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-map": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", @@ -16076,6 +15843,40 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-scurry": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz", + "integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==", + "dev": true, + "dependencies": { + "lru-cache": "^7.14.1", + "minipass": "^4.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", + "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -16271,21 +16072,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/pkg-dir/node_modules/p-locate": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", @@ -16417,13 +16203,10 @@ } }, "node_modules/punycode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz", - "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==", - "dev": true, - "engines": { - "node": ">=6" - } + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true }, "node_modules/pvtsutils": { "version": "1.3.2", @@ -16492,9 +16275,9 @@ } }, "node_modules/rambda": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.4.0.tgz", - "integrity": "sha512-A9hihu7dUTLOUCM+I8E61V4kRXnN4DwYeK0DwCBydC1MqNI1PidyAtbtpsJlBBzK4icSctEcCQ1bGcLpBuETUQ==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", + "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", "dev": true }, "node_modules/ramda": { @@ -16650,9 +16433,9 @@ } }, "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -16791,14 +16574,14 @@ } }, "node_modules/regexpu-core": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", - "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "dependencies": { + "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.1.0", - "regjsgen": "^0.7.1", "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" @@ -16817,23 +16600,17 @@ } }, "node_modules/registry-auth-token": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.1.tgz", - "integrity": "sha512-UfxVOj8seK1yaIOiieV4FIP01vfBDLsY0H9sQzi9EbbUdJiuuBjJgLa1DpImXMNPnVkBD4eVxTEXcrZA6kfpJA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", + "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", "dev": true, "dependencies": { - "@pnpm/npm-conf": "^1.0.4" + "@pnpm/npm-conf": "^2.1.0" }, "engines": { "node": ">=14" } }, - "node_modules/regjsgen": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", - "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", - "dev": true - }, "node_modules/regjsparser": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", @@ -17047,10 +16824,13 @@ "dev": true }, "node_modules/rimraf": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.1.tgz", - "integrity": "sha512-Z4Y81w8atcvaJuJuBB88VpADRH66okZAuEm+Jtaufa+s7rZmIz+Hik2G53kGaNytE7lsfXyWktTmfVz0H9xuDg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.0.tgz", + "integrity": "sha512-X36S+qpCUR0HjXlkDe4NAOhS//aHH0Z+h8Ckf2auGJk3PTnx5rLmrHkwNdbVQuCSUhOyFrlRvFEllZOYE+yZGQ==", "dev": true, + "dependencies": { + "glob": "^9.2.0" + }, "bin": { "rimraf": "dist/cjs/src/bin.js" }, @@ -17061,6 +16841,57 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.2.1.tgz", + "integrity": "sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^7.4.1", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz", + "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minipass": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", + "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -17143,9 +16974,9 @@ "dev": true }, "node_modules/semantic-release": { - "version": "20.0.2", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-20.0.2.tgz", - "integrity": "sha512-K6TYMAnSUqM2oH0/0ZJErMzkx4SgV2dM8jh5RNGj1ANJ81z/u5XVaPPCZADAl7voEf6t2hd6YioLd0I6yXui2A==", + "version": "20.1.1", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-20.1.1.tgz", + "integrity": "sha512-jXDr8y7ozo42N4+G9m/P5Qyx5oQO4aOS66a+Up8XECzEOFIpEoo3ngnr4R5lSix/sVJW69/fgNkOUZhsGFiQ5g==", "dev": true, "dependencies": { "@semantic-release/commit-analyzer": "^9.0.2", @@ -17157,7 +16988,7 @@ "cosmiconfig": "^8.0.0", "debug": "^4.0.0", "env-ci": "^8.0.0", - "execa": "^6.1.0", + "execa": "^7.0.0", "figures": "^5.0.0", "find-versions": "^5.1.0", "get-stream": "^6.0.0", @@ -17236,9 +17067,9 @@ } }, "node_modules/semantic-release/node_modules/cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.0.tgz", + "integrity": "sha512-0tLZ9URlPGU7JsKq0DQOQ3FoRsYX8xDZ7xMiATQfaiGMz7EHowNkbU9u1coAOmnh9p/1ySpm0RB3JNWRXM5GCg==", "dev": true, "dependencies": { "import-fresh": "^3.2.1", @@ -17248,6 +17079,9 @@ }, "engines": { "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" } }, "node_modules/semantic-release/node_modules/emoji-regex": { @@ -17269,14 +17103,14 @@ } }, "node_modules/semantic-release/node_modules/execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.0.tgz", + "integrity": "sha512-T6nIJO3LHxUZ6ahVRaxXz9WLEruXLqdcluA+UuTptXmLM7nDAn9lx9IfkxPyzEL21583qSt4RmL44pO71EHaJQ==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", - "human-signals": "^3.0.1", + "human-signals": "^4.3.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", @@ -17285,7 +17119,7 @@ "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" @@ -17332,12 +17166,12 @@ } }, "node_modules/semantic-release/node_modules/human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.0.tgz", + "integrity": "sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ==", "dev": true, "engines": { - "node": ">=12.20.0" + "node": ">=14.18.0" } }, "node_modules/semantic-release/node_modules/import-fresh": { @@ -17411,9 +17245,9 @@ } }, "node_modules/semantic-release/node_modules/locate-path": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.1.1.tgz", - "integrity": "sha512-vJXaRMJgRVD3+cUZs3Mncj2mxpt5mP0EmNOsxRSZRMlbqjvxzDEOIUWXGmavo0ZC9+tNZCBLQ66reA11nbpHZg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, "dependencies": { "p-locate": "^6.0.0" @@ -17426,9 +17260,9 @@ } }, "node_modules/semantic-release/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" @@ -17644,9 +17478,9 @@ } }, "node_modules/semantic-release/node_modules/yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", "dev": true, "dependencies": { "cliui": "^8.0.1", @@ -18291,9 +18125,9 @@ } }, "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -18315,9 +18149,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==" + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==" }, "node_modules/split": { "version": "1.0.1", @@ -18529,9 +18363,9 @@ "dev": true }, "node_modules/stream-combiner2/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -18660,6 +18494,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/string.prototype.trimend": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", @@ -18833,13 +18684,10 @@ } }, "node_modules/tar/node_modules/minipass": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", - "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", + "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { "node": ">=8" } @@ -18967,9 +18815,9 @@ } }, "node_modules/tlds": { - "version": "1.236.0", - "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.236.0.tgz", - "integrity": "sha512-oP2PZ3KeGlgpHgsEfrtva3/K9kzsJUNliQSbCfrJ7JMCWFoCdtG+9YMq/g2AnADQ1v5tVlbtvKJZ4KLpy/P6MA==", + "version": "1.237.0", + "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.237.0.tgz", + "integrity": "sha512-4IA6zR7jQop4pEdziQaptOgkIwnnZ537fXM3MKAzOXjXLjiHm77SA3/E0nXWJGSVRnKcn/JxDJmwTqyPgQ+ozg==", "dev": true, "bin": { "tlds": "bin.js" @@ -19066,6 +18914,15 @@ "node": ">=0.8" } }, + "node_modules/tough-cookie/node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -19090,68 +18947,14 @@ "node": ">=8" } }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "peer": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", + "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } @@ -19178,9 +18981,9 @@ } }, "node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "dev": true }, "node_modules/tsutils": { @@ -19279,9 +19082,9 @@ } }, "node_modules/typescript": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", - "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -19319,18 +19122,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/undici": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.20.0.tgz", - "integrity": "sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==", - "dev": true, - "dependencies": { - "busboy": "^1.6.0" - }, - "engines": { - "node": ">=12.18" - } - }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -19559,6 +19350,15 @@ "punycode": "^2.1.0" } }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", @@ -19626,13 +19426,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true, - "peer": true - }, "node_modules/v8flags": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", @@ -19688,9 +19481,9 @@ } }, "node_modules/webcrypto-core": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.5.tgz", - "integrity": "sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.6.tgz", + "integrity": "sha512-TBPiewB4Buw+HI3EQW+Bexm19/W4cP/qZG/02QJCXN+iN+T5sl074vZ3rJcle/ZtDBQSgjkbsQO/1eFcxnSBUA==", "dev": true, "dependencies": { "@peculiar/asn1-schema": "^2.1.6", @@ -19954,9 +19747,9 @@ } }, "node_modules/ws": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", - "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true, "engines": { "node": ">=10.0.0" @@ -20146,16 +19939,6 @@ "node": ">=8" } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -20190,12 +19973,12 @@ } }, "@babel/cli": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.20.7.tgz", - "integrity": "sha512-WylgcELHB66WwQqItxNILsMlaTd8/SO6SgTTjMp4uCI7P4QyH1r3nqgFmO3BfM4AtfniHgFMH3EpYFj/zynBkQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.21.0.tgz", + "integrity": "sha512-xi7CxyS8XjSyiwUGCfwf+brtJxjW1/ZTcBUkP10xawIEXLX5HzLn+3aXkgxozcP2UhRhtKTmQurw9Uaes7jZrA==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.8", + "@jridgewell/trace-mapping": "^0.3.17", "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", "chokidar": "^3.4.0", "commander": "^4.0.1", @@ -20232,27 +20015,27 @@ } }, "@babel/compat-data": { - "version": "7.20.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", - "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", + "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", "dev": true }, "@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.0.tgz", + "integrity": "sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==", "dev": true, "requires": { - "@ampproject/remapping": "^2.1.0", + "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", + "@babel/generator": "^7.21.0", "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", + "@babel/helper-module-transforms": "^7.21.0", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.0", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -20297,13 +20080,14 @@ } }, "@babel/generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", - "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", + "version": "7.21.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.1.tgz", + "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", "dev": true, "requires": { - "@babel/types": "^7.20.7", + "@babel/types": "^7.21.0", "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "dependencies": { @@ -20361,15 +20145,15 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz", - "integrity": "sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz", + "integrity": "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.0", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/helper-replace-supers": "^7.20.7", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", @@ -20377,13 +20161,13 @@ } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", - "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz", + "integrity": "sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.2.1" + "regexpu-core": "^5.3.1" } }, "@babel/helper-define-polyfill-provider": { @@ -20424,13 +20208,13 @@ } }, "@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", "dev": true, "requires": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" } }, "@babel/helper-hoist-variables": { @@ -20443,12 +20227,12 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz", - "integrity": "sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", + "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", "dev": true, "requires": { - "@babel/types": "^7.20.7" + "@babel/types": "^7.21.0" } }, "@babel/helper-module-imports": { @@ -20461,9 +20245,9 @@ } }, "@babel/helper-module-transforms": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", @@ -20472,8 +20256,8 @@ "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" } }, "@babel/helper-optimise-call-expression": { @@ -20557,9 +20341,9 @@ "dev": true }, "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", "dev": true }, "@babel/helper-wrap-function": { @@ -20575,14 +20359,14 @@ } }, "@babel/helpers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", - "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", "dev": true, "requires": { "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" } }, "@babel/highlight": { @@ -20611,9 +20395,9 @@ } }, "@babel/parser": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", - "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", + "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -20659,12 +20443,12 @@ } }, "@babel/plugin-proposal-class-static-block": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz", - "integrity": "sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.20.7", + "@babel/helper-create-class-features-plugin": "^7.21.0", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-class-static-block": "^7.14.5" } @@ -20753,9 +20537,9 @@ } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz", - "integrity": "sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.20.2", @@ -20774,13 +20558,13 @@ } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", - "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-create-class-features-plugin": "^7.21.0", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } @@ -20979,24 +20763,24 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz", - "integrity": "sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-classes": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz", - "integrity": "sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-compilation-targets": "^7.20.7", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", + "@babel/helper-function-name": "^7.21.0", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-replace-supers": "^7.20.7", @@ -21053,22 +20837,22 @@ } }, "@babel/plugin-transform-flow-strip-types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.19.0.tgz", - "integrity": "sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz", + "integrity": "sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-flow": "^7.18.6" } }, "@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", + "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-function-name": { @@ -21111,12 +20895,12 @@ } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz", - "integrity": "sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", + "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-module-transforms": "^7.21.2", "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-simple-access": "^7.20.2" } @@ -21191,9 +20975,9 @@ } }, "@babel/plugin-transform-react-jsx": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.20.7.tgz", - "integrity": "sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz", + "integrity": "sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg==", "dev": true, "peer": true, "requires": { @@ -21201,7 +20985,7 @@ "@babel/helper-module-imports": "^7.18.6", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-jsx": "^7.18.6", - "@babel/types": "^7.20.7" + "@babel/types": "^7.21.0" } }, "@babel/plugin-transform-regenerator": { @@ -21393,9 +21177,9 @@ } }, "@babel/register": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.18.9.tgz", - "integrity": "sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.21.0.tgz", + "integrity": "sha512-9nKsPmYDi5DidAqJaQooxIhsLJiNMkGr8ypQ8Uic7cIox7UCDsM7HuUGxdGT7mSDTYbqzIdsOWzfBton/YJrMw==", "dev": true, "requires": { "clone-deep": "^4.0.1", @@ -21405,10 +21189,16 @@ "source-map-support": "^0.5.16" } }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "@babel/runtime": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz", - "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", "dev": true, "requires": { "regenerator-runtime": "^0.13.11" @@ -21426,27 +21216,27 @@ } }, "@babel/traverse": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", - "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.2.tgz", + "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", + "@babel/generator": "^7.21.1", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", + "@babel/helper-function-name": "^7.21.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", + "@babel/parser": "^7.21.2", + "@babel/types": "^7.21.2", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz", + "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", "dev": true, "requires": { "@babel/helper-string-parser": "^7.19.4", @@ -21461,29 +21251,6 @@ "dev": true, "optional": true }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "peer": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "peer": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } - } - }, "@es-joy/jsdoc-eslint-parser": { "version": "0.17.0", "resolved": "https://registry.npmjs.org/@es-joy/jsdoc-eslint-parser/-/jsdoc-eslint-parser-0.17.0.tgz", @@ -21522,15 +21289,38 @@ "jsdoc-type-pratt-parser": "~3.1.0" } }, + "@eslint-community/eslint-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz", + "integrity": "sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + } + } + }, + "@eslint-community/regexpp": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz", + "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==", + "dev": true + }, "@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz", + "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.5.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -21546,9 +21336,9 @@ "dev": true }, "globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -21587,6 +21377,12 @@ } } }, + "@eslint/js": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz", + "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==", + "dev": true + }, "@gar/promisify": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", @@ -21594,9 +21390,9 @@ "dev": true }, "@graphql-eslint/eslint-plugin": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@graphql-eslint/eslint-plugin/-/eslint-plugin-3.14.3.tgz", - "integrity": "sha512-Ey4LocCSYLNXYWDfNh67ZzbCTNx1liqhZbQthidvoGtoVUo0sKsnR5pn2dVCRB8NbvQ4skob9r2dFBcUYhVbgQ==", + "version": "3.16.1", + "resolved": "https://registry.npmjs.org/@graphql-eslint/eslint-plugin/-/eslint-plugin-3.16.1.tgz", + "integrity": "sha512-sKmtlwVWjxCXlmgpNJSdvBqapluyrp6PA7FbSnpkyHD0ejkp3mhwZtCiR6843LmVFgWSzfAtEdjPCT2TcJ5p/w==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", @@ -21621,12 +21417,6 @@ "color-convert": "^2.0.1" } }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -21652,96 +21442,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", - "dev": true, - "requires": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - } - }, - "cosmiconfig-typescript-loader": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz", - "integrity": "sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==", - "dev": true, - "peer": true, - "requires": {} - }, - "graphql-config": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-4.4.0.tgz", - "integrity": "sha512-QUrX7R4htnTBTi83a0IlIilWVfiLEG8ANFlHRcxoZiTvOXTbgan67SUdGe1OlopbDuyNgtcy4ladl3Gvk4C36A==", - "dev": true, - "requires": { - "@graphql-tools/graphql-file-loader": "^7.3.7", - "@graphql-tools/json-file-loader": "^7.3.7", - "@graphql-tools/load": "^7.5.5", - "@graphql-tools/merge": "^8.2.6", - "@graphql-tools/url-loader": "^7.9.7", - "@graphql-tools/utils": "^9.0.0", - "cosmiconfig": "8.0.0", - "minimatch": "4.2.1", - "string-env-interpolation": "1.0.1", - "tslib": "^2.4.0" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -21754,244 +21460,252 @@ } }, "@graphql-tools/batch-execute": { - "version": "8.5.15", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.15.tgz", - "integrity": "sha512-qb12M8XCK6SBJmZDS8Lzd4PVJFsIwNUkYmFuqcTiBqOI/WsoDlQDZI++ghRpGcusLkL9uzcIOTT/61OeHhsaLg==", + "version": "8.5.18", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.18.tgz", + "integrity": "sha512-mNv5bpZMLLwhkmPA6+RP81A6u3KF4CSKLf3VX9hbomOkQR4db8pNs8BOvpZU54wKsUzMzdlws/2g/Dabyb2Vsg==", "dev": true, "requires": { - "@graphql-tools/utils": "9.1.4", - "dataloader": "2.1.0", + "@graphql-tools/utils": "9.2.1", + "dataloader": "2.2.2", "tslib": "^2.4.0", "value-or-promise": "1.0.12" } }, "@graphql-tools/code-file-loader": { - "version": "7.3.16", - "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.3.16.tgz", - "integrity": "sha512-109UFvQjZEntHwjPaHpWvgUudHenGngbXvSImabPc2fdrtgja5KC0h7thCg379Yw6IORHGrF2XbJwS1hAGPPWw==", + "version": "7.3.21", + "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.3.21.tgz", + "integrity": "sha512-dj+OLnz1b8SYkXcuiy0CUQ25DWnOEyandDlOcdBqU3WVwh5EEVbn0oXUYm90fDlq2/uut00OrtC5Wpyhi3tAvA==", "dev": true, "requires": { - "@graphql-tools/graphql-tag-pluck": "7.4.3", - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/graphql-tag-pluck": "7.5.0", + "@graphql-tools/utils": "9.2.1", "globby": "^11.0.3", "tslib": "^2.4.0", "unixify": "^1.0.0" } }, "@graphql-tools/delegate": { - "version": "9.0.22", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-9.0.22.tgz", - "integrity": "sha512-dWJGMN8V7KORtbI8eDAjHYTWiMyis/md27M6pPhrlYVlcsDk3U0jbNdgkswBBUEBvqumPRCv8pVOxKcLS4caKA==", + "version": "9.0.28", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-9.0.28.tgz", + "integrity": "sha512-8j23JCs2mgXqnp+5K0v4J3QBQU/5sXd9miaLvMfRf/6963DznOXTECyS9Gcvj1VEeR5CXIw6+aX/BvRDKDdN1g==", "dev": true, "requires": { - "@graphql-tools/batch-execute": "8.5.15", - "@graphql-tools/executor": "0.0.12", - "@graphql-tools/schema": "9.0.13", - "@graphql-tools/utils": "9.1.4", - "dataloader": "2.1.0", - "tslib": "~2.4.0", - "value-or-promise": "1.0.12" + "@graphql-tools/batch-execute": "^8.5.18", + "@graphql-tools/executor": "^0.0.15", + "@graphql-tools/schema": "^9.0.16", + "@graphql-tools/utils": "^9.2.1", + "dataloader": "^2.2.2", + "tslib": "^2.5.0", + "value-or-promise": "^1.0.12" } }, "@graphql-tools/executor": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-0.0.12.tgz", - "integrity": "sha512-bWpZcYRo81jDoTVONTnxS9dDHhEkNVjxzvFCH4CRpuyzD3uL+5w3MhtxIh24QyWm4LvQ4f+Bz3eMV2xU2I5+FA==", + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-0.0.15.tgz", + "integrity": "sha512-6U7QLZT8cEUxAMXDP4xXVplLi6RBwx7ih7TevlBto66A/qFp3PDb6o/VFo07yBKozr8PGMZ4jMfEWBGxmbGdxA==", "dev": true, "requires": { - "@graphql-tools/utils": "9.1.4", - "@graphql-typed-document-node/core": "3.1.1", + "@graphql-tools/utils": "9.2.1", + "@graphql-typed-document-node/core": "3.1.2", "@repeaterjs/repeater": "3.0.4", "tslib": "^2.4.0", "value-or-promise": "1.0.12" } }, "@graphql-tools/executor-graphql-ws": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.6.tgz", - "integrity": "sha512-n6JvIviYO8iiasV/baclimQqNkYGP7JRlkNSnphNG5LULmVpQ2WsyvbgJHV7wtlTZ8ZQ3+dILgQF83PFyLsfdA==", + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.12.tgz", + "integrity": "sha512-aFD79i9l282Ob5dOZ7JsyhhXXP1o8eQh0prYkSSVo/OU2ndzWigfANz4DJgWgS3LwBjLDlMcmaXPZZeXt3m4Tg==", "dev": true, "requires": { - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/utils": "9.2.1", "@repeaterjs/repeater": "3.0.4", "@types/ws": "^8.0.0", - "graphql-ws": "5.11.2", + "graphql-ws": "5.12.0", "isomorphic-ws": "5.0.0", "tslib": "^2.4.0", - "ws": "8.12.0" + "ws": "8.12.1" + }, + "dependencies": { + "ws": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz", + "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==", + "dev": true, + "requires": {} + } } }, "@graphql-tools/executor-http": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-0.1.1.tgz", - "integrity": "sha512-bFE6StI7CJEIYGRkAnTYxutSV4OtC1c4MQU3nStOYZZO7KmzIgEQZ4ygPSPrRb+jtRsMCBEqPqlYOD4Rq02aMw==", + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-0.1.9.tgz", + "integrity": "sha512-tNzMt5qc1ptlHKfpSv9wVBVKCZ7gks6Yb/JcYJluxZIT4qRV+TtOFjpptfBU63usgrGVOVcGjzWc/mt7KhmmpQ==", "dev": true, "requires": { - "@graphql-tools/utils": "9.1.4", - "@repeaterjs/repeater": "3.0.4", - "@whatwg-node/fetch": "0.6.2", - "dset": "3.1.2", + "@graphql-tools/utils": "^9.2.1", + "@repeaterjs/repeater": "^3.0.4", + "@whatwg-node/fetch": "^0.8.1", + "dset": "^3.1.2", "extract-files": "^11.0.0", - "meros": "1.2.1", + "meros": "^1.2.1", "tslib": "^2.4.0", - "value-or-promise": "1.0.12" + "value-or-promise": "^1.0.12" } }, "@graphql-tools/executor-legacy-ws": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.6.tgz", - "integrity": "sha512-L1hRuSvBUCNerYDhfeSZXFeqliDlnNXa3fDHTp7efI3Newpbevqa19Fm0mVzsCL7gqIKOwzrPORwh7kOVE/vew==", + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.9.tgz", + "integrity": "sha512-L7oDv7R5yoXzMH+KLKDB2WHVijfVW4dB2H+Ae1RdW3MFvwbYjhnIB6QzHqKEqksjp/FndtxZkbuTIuAOsYGTYw==", "dev": true, "requires": { - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/utils": "9.2.1", "@types/ws": "^8.0.0", "isomorphic-ws": "5.0.0", "tslib": "^2.4.0", - "ws": "8.12.0" + "ws": "8.12.1" + }, + "dependencies": { + "ws": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz", + "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==", + "dev": true, + "requires": {} + } } }, "@graphql-tools/graphql-file-loader": { - "version": "7.5.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.14.tgz", - "integrity": "sha512-JGer4g57kq4wtsvqv8uZsT4ZG1lLsz1x5yHDfSj2OxyiWw2f1jFkzgby7Ut3H2sseJiQzeeDYZcbm06qgR32pg==", + "version": "7.5.16", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.16.tgz", + "integrity": "sha512-lK1N3Y2I634FS12nd4bu7oAJbai3bUc28yeX+boT+C83KTO4ujGHm+6hPC8X/FRGwhKOnZBxUM7I5nvb3HiUxw==", "dev": true, "requires": { - "@graphql-tools/import": "6.7.15", - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/import": "6.7.17", + "@graphql-tools/utils": "9.2.1", "globby": "^11.0.3", "tslib": "^2.4.0", "unixify": "^1.0.0" } }, "@graphql-tools/graphql-tag-pluck": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.4.3.tgz", - "integrity": "sha512-w+nrJVQw+NTuaZNQG5AwSh4Qe+urP/s4rUz5s1T007rDnv1kvkiX+XHOCnIfJzXOTuvFmG4GGYw/x0CuSRaGZQ==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.5.0.tgz", + "integrity": "sha512-76SYzhSlH50ZWkhWH6OI94qrxa8Ww1ZeOU04MdtpSeQZVT2rjGWeTb3xM3kjTVWQJsr/YJBhDeNPGlwNUWfX4Q==", "dev": true, "requires": { "@babel/parser": "^7.16.8", "@babel/plugin-syntax-import-assertions": "7.20.0", "@babel/traverse": "^7.16.8", "@babel/types": "^7.16.8", - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/utils": "9.2.1", "tslib": "^2.4.0" } }, "@graphql-tools/import": { - "version": "6.7.15", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.7.15.tgz", - "integrity": "sha512-WNhvauAt2I2iUg+JdQK5oQebKLXqUZWe8naP13K1jOkbTQT7hK3P/4I9AaVmzt0KXRJW5Uow3RgdHZ7eUBKVsA==", + "version": "6.7.17", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.7.17.tgz", + "integrity": "sha512-bn9SgrECXq3WIasgNP7ful/uON51wBajPXtxdY+z/ce7jLWaFE6lzwTDB/GAgiZ+jo7nb0ravlxteSAz2qZmuA==", "dev": true, "requires": { - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/utils": "9.2.1", "resolve-from": "5.0.0", "tslib": "^2.4.0" } }, "@graphql-tools/json-file-loader": { - "version": "7.4.15", - "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-7.4.15.tgz", - "integrity": "sha512-pH+hbsDetcEpj+Tmi7ZRUkxzJez2DLdSQuvK5Qi38FX/Nz/5nZKRfW9nqIptGYbuS9+2JPrt9WWNn1aGtegIFQ==", + "version": "7.4.17", + "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-7.4.17.tgz", + "integrity": "sha512-KOSTP43nwjPfXgas90rLHAFgbcSep4nmiYyR9xRVz4ZAmw8VYHcKhOLTSGylCAzi7KUfyBXajoW+6Z7dQwdn3g==", "dev": true, "requires": { - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/utils": "9.2.1", "globby": "^11.0.3", "tslib": "^2.4.0", "unixify": "^1.0.0" } }, "@graphql-tools/load": { - "version": "7.8.9", - "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.8.9.tgz", - "integrity": "sha512-/eHRv6OCTI/Ir5XcbtSx0XbW3zOQVscp2MZQFGZKDzqCcGD+NVy4mLCoBwR/OsOUpvWAwMnc+Llb4SDKAYGmjQ==", + "version": "7.8.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.8.13.tgz", + "integrity": "sha512-c97/GuUl81Wpa38cx3E6nMz8gUrvVcFokoPfDOaA5uTWSTXA1UxaF4KrvM9P5rNFaKVAtF9f6nMIusRE5B0mag==", "dev": true, "requires": { - "@graphql-tools/schema": "9.0.13", - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/schema": "9.0.17", + "@graphql-tools/utils": "9.2.1", "p-limit": "3.1.0", "tslib": "^2.4.0" - }, - "dependencies": { - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - } } }, "@graphql-tools/merge": { - "version": "8.3.15", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.15.tgz", - "integrity": "sha512-hYYOlsqkUlL6oOo7zzuk6hIv7xQzy+x21sgK84d5FWaiWYkLYh9As8myuDd9SD5xovWWQ9m/iRhIOVDEMSyEKA==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.0.tgz", + "integrity": "sha512-3XYCWe0d3I4F1azNj1CdShlbHfTIfiDgj00R9uvFH8tHKh7i1IWN3F7QQYovcHKhayaR6zPok3YYMESYQcBoaA==", "dev": true, "requires": { - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/utils": "9.2.1", "tslib": "^2.4.0" } }, "@graphql-tools/schema": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.13.tgz", - "integrity": "sha512-guRA3fwAtv+M1Kh930P4ydH9aKJTWscIkhVFcWpj/cnjYYxj88jkEJ15ZNiJX/2breNY+sbVgmlgLKb6aXi/Jg==", + "version": "9.0.17", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.17.tgz", + "integrity": "sha512-HVLq0ecbkuXhJlpZ50IHP5nlISqH2GbNgjBJhhRzHeXhfwlUOT4ISXGquWTmuq61K0xSaO0aCjMpxe4QYbKTng==", "dev": true, "requires": { - "@graphql-tools/merge": "8.3.15", - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/merge": "8.4.0", + "@graphql-tools/utils": "9.2.1", "tslib": "^2.4.0", "value-or-promise": "1.0.12" } }, "@graphql-tools/url-loader": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.17.2.tgz", - "integrity": "sha512-VgCXa5vQzcM13+loJvVHLXltp3qN8PHUTeth50cImUhCm3qtRwOeuSYjpph38vllPb8DKxsZkNFxzYgzscWIow==", - "dev": true, - "requires": { - "@ardatan/sync-fetch": "0.0.1", - "@graphql-tools/delegate": "9.0.22", - "@graphql-tools/executor-graphql-ws": "0.0.6", - "@graphql-tools/executor-http": "0.1.1", - "@graphql-tools/executor-legacy-ws": "0.0.6", - "@graphql-tools/utils": "9.1.4", - "@graphql-tools/wrap": "9.3.1", + "version": "7.17.14", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.17.14.tgz", + "integrity": "sha512-7boEmrZlbViqQSSvu2VFCGi9YAY7E0BCVObiv1sLYbFR+62mo825As0haU5l7wlx1zCDyUlOleNz+X2jVvBbSQ==", + "dev": true, + "requires": { + "@ardatan/sync-fetch": "^0.0.1", + "@graphql-tools/delegate": "^9.0.27", + "@graphql-tools/executor-graphql-ws": "^0.0.12", + "@graphql-tools/executor-http": "^0.1.7", + "@graphql-tools/executor-legacy-ws": "^0.0.9", + "@graphql-tools/utils": "^9.2.1", + "@graphql-tools/wrap": "^9.3.8", "@types/ws": "^8.0.0", - "@whatwg-node/fetch": "^0.6.0", - "isomorphic-ws": "5.0.0", + "@whatwg-node/fetch": "^0.8.0", + "isomorphic-ws": "^5.0.0", "tslib": "^2.4.0", "value-or-promise": "^1.0.11", - "ws": "8.12.0" + "ws": "^8.12.0" } }, "@graphql-tools/utils": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.4.tgz", - "integrity": "sha512-hgIeLt95h9nQgQuzbbdhuZmh+8WV7RZ/6GbTj6t3IU4Zd2zs9yYJ2jgW/krO587GMOY8zCwrjNOMzD40u3l7Vg==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", "dev": true, "requires": { + "@graphql-typed-document-node/core": "^3.1.1", "tslib": "^2.4.0" } }, "@graphql-tools/wrap": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-9.3.1.tgz", - "integrity": "sha512-uzY1HKc7qMErWL3ybv8bFG3hI1rTJPVYQ8WeJkCF/r/+aHEkUj0Bo2PYZrZTX1UIr3Tb4P5GyhqYBgZOXraZjw==", + "version": "9.3.8", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-9.3.8.tgz", + "integrity": "sha512-MGsExYPiILMw4Qff7HcvE9MMSYdjb/tr5IQYJbxJIU4/TrBHox1/smne8HG+Bd7kmDlTTj7nU/Z8sxmoRd0hOQ==", "dev": true, "requires": { - "@graphql-tools/delegate": "9.0.22", - "@graphql-tools/schema": "9.0.13", - "@graphql-tools/utils": "9.1.4", + "@graphql-tools/delegate": "9.0.28", + "@graphql-tools/schema": "9.0.17", + "@graphql-tools/utils": "9.2.1", "tslib": "^2.4.0", "value-or-promise": "1.0.12" } }, "@graphql-typed-document-node/core": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", - "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.2.tgz", + "integrity": "sha512-9anpBMM9mEgZN4wr2v8wHJI2/u5TnnggewRN6OlvXTTnuVyoY19X6rOv9XTqKRw6dcGKwZsBi8n0kDE2I5i4VA==", "dev": true, "requires": {} }, @@ -22031,13 +21745,6 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, - "@iarna/toml": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", - "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", - "dev": true, - "peer": true - }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -22216,64 +21923,64 @@ } }, "@octokit/auth-token": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.2.tgz", - "integrity": "sha512-pq7CwIMV1kmzkFTimdwjAINCXKTajZErLB4wMLYapR2nuB/Jpr66+05wOTZMSCBXP6n4DdDWT2W19Bm17vU69Q==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.3.tgz", + "integrity": "sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==", "dev": true, "requires": { - "@octokit/types": "^8.0.0" + "@octokit/types": "^9.0.0" } }, "@octokit/core": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.1.0.tgz", - "integrity": "sha512-Czz/59VefU+kKDy+ZfDwtOIYIkFjExOKf+HA92aiTZJ6EfWpFzYQWw0l54ji8bVmyhc+mGaLUbSUmXazG7z5OQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.0.tgz", + "integrity": "sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg==", "dev": true, "requires": { "@octokit/auth-token": "^3.0.0", "@octokit/graphql": "^5.0.0", "@octokit/request": "^6.0.0", "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" } }, "@octokit/endpoint": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.3.tgz", - "integrity": "sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.5.tgz", + "integrity": "sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==", "dev": true, "requires": { - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "is-plain-object": "^5.0.0", "universal-user-agent": "^6.0.0" } }, "@octokit/graphql": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.4.tgz", - "integrity": "sha512-amO1M5QUQgYQo09aStR/XO7KAl13xpigcy/kI8/N1PnZYSS69fgte+xA4+c2DISKqUZfsh0wwjc2FaCt99L41A==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.5.tgz", + "integrity": "sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==", "dev": true, "requires": { "@octokit/request": "^6.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "universal-user-agent": "^6.0.0" } }, "@octokit/openapi-types": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz", - "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-16.0.0.tgz", + "integrity": "sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==", "dev": true }, "@octokit/plugin-paginate-rest": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-5.0.1.tgz", - "integrity": "sha512-7A+rEkS70pH36Z6JivSlR7Zqepz3KVucEFVDnSrgHXzG7WLAzYwcHZbKdfTXHwuTHbkT1vKvz7dHl1+HNf6Qyw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.0.0.tgz", + "integrity": "sha512-Sq5VU1PfT6/JyuXPyt04KZNVsFOSBaYOAq2QRZUwzVlI10KFvcbUo8lR258AAQL1Et60b0WuVik+zOWKLuDZxw==", "dev": true, "requires": { - "@octokit/types": "^8.0.0" + "@octokit/types": "^9.0.0" } }, "@octokit/plugin-request-log": { @@ -22284,65 +21991,65 @@ "requires": {} }, "@octokit/plugin-rest-endpoint-methods": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.7.0.tgz", - "integrity": "sha512-orxQ0fAHA7IpYhG2flD2AygztPlGYNAdlzYz8yrD8NDgelPfOYoRPROfEyIe035PlxvbYrgkfUZIhSBKju/Cvw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.0.1.tgz", + "integrity": "sha512-pnCaLwZBudK5xCdrR823xHGNgqOzRnJ/mpC/76YPpNP7DybdsJtP7mdOwh+wYZxK5jqeQuhu59ogMI4NRlBUvA==", "dev": true, "requires": { - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "deprecation": "^2.3.1" } }, "@octokit/request": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.2.tgz", - "integrity": "sha512-6VDqgj0HMc2FUX2awIs+sM6OwLgwHvAi4KCK3mT2H2IKRt6oH9d0fej5LluF5mck1lRR/rFWN0YIDSYXYSylbw==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.3.tgz", + "integrity": "sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==", "dev": true, "requires": { "@octokit/endpoint": "^7.0.0", "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "is-plain-object": "^5.0.0", "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" } }, "@octokit/request-error": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.2.tgz", - "integrity": "sha512-WMNOFYrSaX8zXWoJg9u/pKgWPo94JXilMLb2VManNOby9EZxrQaBe/QSC4a1TzpAlpxofg2X/jMnCyZgL6y7eg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", "dev": true, "requires": { - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "deprecation": "^2.0.0", "once": "^1.4.0" } }, "@octokit/rest": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.5.tgz", - "integrity": "sha512-+4qdrUFq2lk7Va+Qff3ofREQWGBeoTKNqlJO+FGjFP35ZahP+nBenhZiGdu8USSgmq4Ky3IJ/i4u0xbLqHaeow==", + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.7.tgz", + "integrity": "sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA==", "dev": true, "requires": { "@octokit/core": "^4.1.0", - "@octokit/plugin-paginate-rest": "^5.0.0", + "@octokit/plugin-paginate-rest": "^6.0.0", "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^6.7.0" + "@octokit/plugin-rest-endpoint-methods": "^7.0.0" } }, "@octokit/types": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.1.1.tgz", - "integrity": "sha512-7tjk+6DyhYAmei8FOEwPfGKc0VE1x56CKPJ+eE44zhDbOyMT+9yan8apfQFxo8oEFsy+0O7PiBtH8w0Yo0Y9Kw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.0.0.tgz", + "integrity": "sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw==", "dev": true, "requires": { - "@octokit/openapi-types": "^14.0.0" + "@octokit/openapi-types": "^16.0.0" } }, "@peculiar/asn1-schema": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.3.tgz", - "integrity": "sha512-6GptMYDMyWBHTUKndHaDsRZUO/XMSgIns2krxcm2L7SEExRHwawFvSwNBhqNPR9HJwv3MruAiF1bhN0we6j6GQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz", + "integrity": "sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA==", "dev": true, "requires": { "asn1js": "^3.0.5", @@ -22372,6 +22079,12 @@ "webcrypto-core": "^1.7.4" } }, + "@pnpm/config.env-replace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.0.0.tgz", + "integrity": "sha512-ZVPVDi1E8oeXlYqkGRtX0CkzLTwE2zt62bjWaWKaAvI8NZqHzlMvGeSNDpW+JB3+aKanYb4UETJOF1/CxGPemA==", + "dev": true + }, "@pnpm/network.ca-file": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", @@ -22382,11 +22095,12 @@ } }, "@pnpm/npm-conf": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-1.0.5.tgz", - "integrity": "sha512-hD8ml183638O3R6/Txrh0L8VzGOrFXgRtRDG4qQC4tONdZ5Z1M+tlUUDUvrjYdmK6G+JTBTeaCLMna11cXzi8A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.1.0.tgz", + "integrity": "sha512-Oe6ntvgsMTE3hDIqy6sajqHF+MnzJrOF06qC2QSiUEybLL7cp6tjoKUa32gpd9+KPVl4QyMs3E3nsXrx/Vdnlw==", "dev": true, "requires": { + "@pnpm/config.env-replace": "^1.0.0", "@pnpm/network.ca-file": "^1.0.1", "config-chain": "^1.1.11" } @@ -22553,34 +22267,6 @@ "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true, - "peer": true - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true, - "peer": true - }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true, - "peer": true - }, - "@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true, - "peer": true - }, "@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -22600,9 +22286,9 @@ "dev": true }, "@types/node": { - "version": "18.11.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", - "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", + "version": "18.15.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.2.tgz", + "integrity": "sha512-sDPHm2wfx2QhrMDK0pOt2J4KLJMAcerqWNvnED0itPRJWvI+bK+uNHzcH1dFsBlf7G3u8tqXmRF3wkvL9yUwMw==", "dev": true }, "@types/normalize-package-data": { @@ -22633,210 +22319,80 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.0.tgz", - "integrity": "sha512-+hSN9BdSr629RF02d7mMtXhAJvDTyCbprNYJKrXETlul/Aml6YZwd90XioVbjejQeHbb3R8Dg0CkRgoJDxo8aw==", + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.55.0.tgz", + "integrity": "sha512-IZGc50rtbjk+xp5YQoJvmMPmJEYoC53SiKPXyqWfv15XoD2Y5Kju6zN0DwlmaGJp1Iw33JsWJcQ7nw0lGCGjVg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.54.0", - "@typescript-eslint/type-utils": "5.54.0", - "@typescript-eslint/utils": "5.54.0", + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.55.0", + "@typescript-eslint/type-utils": "5.55.0", + "@typescript-eslint/utils": "5.55.0", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", - "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.0.tgz", - "integrity": "sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.54.0", - "@typescript-eslint/visitor-keys": "5.54.0" - } - }, - "@typescript-eslint/types": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.0.tgz", - "integrity": "sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz", - "integrity": "sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.54.0", - "@typescript-eslint/visitor-keys": "5.54.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.54.0.tgz", - "integrity": "sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.54.0", - "@typescript-eslint/types": "5.54.0", - "@typescript-eslint/typescript-estree": "5.54.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", - "semver": "^7.3.7" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz", - "integrity": "sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.54.0", - "eslint-visitor-keys": "^3.3.0" - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - } } }, "@typescript-eslint/experimental-utils": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.48.2.tgz", - "integrity": "sha512-Iwx8De8dwl6qPaPZWIaEfP1feN/YFlA5FlCxF3zUIm+2AG92C5Tefkugj2L9ytOFrmTYkTE/CqvJFZbYoVZQMg==", + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.55.0.tgz", + "integrity": "sha512-3ZqXIZhdGyGQAIIGATeMtg7prA6VlyxGtcy5hYIR/3qUqp3t18pWWUYhL9mpsDm7y8F9mr3ISMt83TiqCt7OPQ==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.48.2" + "@typescript-eslint/utils": "5.55.0" } }, "@typescript-eslint/parser": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.48.2.tgz", - "integrity": "sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==", + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.55.0.tgz", + "integrity": "sha512-ppvmeF7hvdhUUZWSd2EEWfzcFkjJzgNQzVST22nzg958CR+sphy8A6K7LXQZd6V75m1VKjp+J4g/PCEfSCmzhw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/typescript-estree": "5.48.2", + "@typescript-eslint/scope-manager": "5.55.0", + "@typescript-eslint/types": "5.55.0", + "@typescript-eslint/typescript-estree": "5.55.0", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz", - "integrity": "sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==", + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.55.0.tgz", + "integrity": "sha512-OK+cIO1ZGhJYNCL//a3ROpsd83psf4dUJ4j7pdNVzd5DmIk+ffkuUIX2vcZQbEW/IR41DYsfJTB19tpCboxQuw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2" + "@typescript-eslint/types": "5.55.0", + "@typescript-eslint/visitor-keys": "5.55.0" } }, "@typescript-eslint/type-utils": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.54.0.tgz", - "integrity": "sha512-WI+WMJ8+oS+LyflqsD4nlXMsVdzTMYTxl16myXPaCXnSgc7LWwMsjxQFZCK/rVmTZ3FN71Ct78ehO9bRC7erYQ==", + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.55.0.tgz", + "integrity": "sha512-ObqxBgHIXj8rBNm0yh8oORFrICcJuZPZTqtAFh0oZQyr5DnAHZWfyw54RwpEEH+fD8suZaI0YxvWu5tYE/WswA==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.54.0", - "@typescript-eslint/utils": "5.54.0", + "@typescript-eslint/typescript-estree": "5.55.0", + "@typescript-eslint/utils": "5.55.0", "debug": "^4.3.4", "tsutils": "^3.21.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.0.tgz", - "integrity": "sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.54.0", - "@typescript-eslint/visitor-keys": "5.54.0" - } - }, - "@typescript-eslint/types": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.0.tgz", - "integrity": "sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz", - "integrity": "sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.54.0", - "@typescript-eslint/visitor-keys": "5.54.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.54.0.tgz", - "integrity": "sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.54.0", - "@typescript-eslint/types": "5.54.0", - "@typescript-eslint/typescript-estree": "5.54.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", - "semver": "^7.3.7" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz", - "integrity": "sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.54.0", - "eslint-visitor-keys": "^3.3.0" - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - } } }, "@typescript-eslint/types": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.2.tgz", - "integrity": "sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==", + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.55.0.tgz", + "integrity": "sha512-M4iRh4AG1ChrOL6Y+mETEKGeDnT7Sparn6fhZ5LtVJF1909D5O4uqK+C5NPbLmpfZ0XIIxCdwzKiijpZUOvOug==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz", - "integrity": "sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==", + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.55.0.tgz", + "integrity": "sha512-I7X4A9ovA8gdpWMpr7b1BN9eEbvlEtWhQvpxp/yogt48fy9Lj3iE3ild/1H3jKBBIYj5YYJmS2+9ystVhC7eaQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2", + "@typescript-eslint/types": "5.55.0", + "@typescript-eslint/visitor-keys": "5.55.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -22845,28 +22401,28 @@ } }, "@typescript-eslint/utils": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.2.tgz", - "integrity": "sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==", + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.55.0.tgz", + "integrity": "sha512-FkW+i2pQKcpDC3AY6DU54yl8Lfl14FVGYDgBTyGKB75cCwV3KpkpTMFi9d9j2WAJ4271LR2HeC5SEWF/CZmmfw==", "dev": true, "requires": { + "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/typescript-estree": "5.48.2", + "@typescript-eslint/scope-manager": "5.55.0", + "@typescript-eslint/types": "5.55.0", + "@typescript-eslint/typescript-estree": "5.55.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", "semver": "^7.3.7" } }, "@typescript-eslint/visitor-keys": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", - "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.55.0.tgz", + "integrity": "sha512-q2dlHHwWgirKh1D3acnuApXG+VNXpEY5/AwRxDVuEQpxWaB0jCDe0jFMVMALJ3ebSfuOVE8/rMS+9ZOYGg1GWw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/types": "5.55.0", "eslint-visitor-keys": "^3.3.0" }, "dependencies": { @@ -22878,21 +22434,36 @@ } } }, + "@whatwg-node/events": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.0.2.tgz", + "integrity": "sha512-WKj/lI4QjnLuPrim0cfO7i+HsDSXHxNv1y0CrJhdntuO3hxWZmnXCwNDnwOvry11OjRin6cgWNF+j/9Pn8TN4w==", + "dev": true + }, "@whatwg-node/fetch": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.6.2.tgz", - "integrity": "sha512-fCUycF1W+bI6XzwJFnbdDuxIldfKM3w8+AzVCLGlucm0D+AQ8ZMm2j84hdcIhfV6ZdE4Y1HFVrHosAxdDZ+nPw==", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.8.2.tgz", + "integrity": "sha512-6u1xGzFZvskJpQXhWreR9s1/4nsuY4iFRsTb4BC3NiDHmzgj/Hu1Ovt4iHs5KAjLzbnsjaQOI5f5bQPucqvPsQ==", "dev": true, "requires": { "@peculiar/webcrypto": "^1.4.0", - "abort-controller": "^3.0.0", + "@whatwg-node/node-fetch": "^0.3.1", "busboy": "^1.6.0", - "form-data-encoder": "^1.7.1", - "formdata-node": "^4.3.1", - "node-fetch": "^2.6.7", - "undici": "^5.12.0", "urlpattern-polyfill": "^6.0.2", - "web-streams-polyfill": "^3.2.0" + "web-streams-polyfill": "^3.2.1" + } + }, + "@whatwg-node/node-fetch": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.3.1.tgz", + "integrity": "sha512-/U4onp5eBkRHfFe/VL+ppyupqj7z6iBtjcuPSosQNH2/y+LxRn5lyFb7Vqhb5DokjrDMjssLcqiVYnx+UABFsw==", + "dev": true, + "requires": { + "@whatwg-node/events": "^0.0.2", + "busboy": "^1.6.0", + "fast-querystring": "^1.1.1", + "fast-url-parser": "^1.1.3", + "tslib": "^2.3.1" } }, "abbrev": { @@ -22901,19 +22472,10 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "requires": { - "event-target-shim": "^5.0.0" - } - }, "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true }, "acorn-globals": { @@ -22940,13 +22502,6 @@ "dev": true, "requires": {} }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "peer": true - }, "agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -22957,13 +22512,13 @@ } }, "agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", + "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", "dev": true, "requires": { "debug": "^4.1.0", - "depd": "^1.1.2", + "depd": "^2.0.0", "humanize-ms": "^1.2.1" } }, @@ -23066,13 +22621,6 @@ "readable-stream": "^3.6.0" } }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "peer": true - }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -23115,6 +22663,16 @@ "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", "dev": true }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, "array-ify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", @@ -23283,9 +22841,9 @@ "dev": true }, "axe-core": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.2.tgz", - "integrity": "sha512-b1WlTV8+XKLj9gZy2DZXgQiyDp9xkkoe2a6U6UbYccScq2wgH/YwCeI2/Jq2mgo0HzQxqJOjWZBLeA/mqsk5Mg==", + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.3.tgz", + "integrity": "sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==", "dev": true }, "axobject-query": { @@ -23451,15 +23009,15 @@ "dev": true }, "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" } }, "buffer-from": { @@ -23510,9 +23068,9 @@ }, "dependencies": { "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true }, "rimraf": { @@ -23648,9 +23206,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001445", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001445.tgz", - "integrity": "sha512-8sdQIdMztYmzfTMO6KfLny878Ln9c2M0fc7EH60IjlP4Dc4PiCy7K2Vl3ITmWgOyPgVQKa5x+UP/KqFsxj4mBg==", + "version": "1.0.30001465", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001465.tgz", + "integrity": "sha512-HvjgL3MYAJjceTDCcjRnQGjwUz/5qec9n7JPOzUursUoOTIsYCSDOb1l7RsnZE8mjbxG78zVRCKfrBXyvChBag==", "dev": true }, "cardinal": { @@ -23732,9 +23290,9 @@ "dev": true }, "ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "dev": true }, "class-utils": { @@ -24135,18 +23693,18 @@ "dev": true }, "core-js": { - "version": "3.27.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.27.1.tgz", - "integrity": "sha512-GutwJLBChfGCpwwhbYoqfv03LAfmiz7e7D/BNxzeMxwQf10GRSzqiOjx7AmtEk+heiD/JWmBuyBPgFtx0Sg1ww==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.1.tgz", + "integrity": "sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw==", "dev": true }, "core-js-compat": { - "version": "3.27.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.27.1.tgz", - "integrity": "sha512-Dg91JFeCDA17FKnneN7oCMz4BkQ4TcffkgHP4OWwp9yx3pi7ubqMDXXSacfNak1PQqjc95skyt+YBLHQJnkJwA==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.1.tgz", + "integrity": "sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA==", "dev": true, "requires": { - "browserslist": "^4.21.4" + "browserslist": "^4.21.5" } }, "core-util-is": { @@ -24167,16 +23725,6 @@ "parse-json": "^4.0.0" } }, - "cosmiconfig-toml-loader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-toml-loader/-/cosmiconfig-toml-loader-1.0.0.tgz", - "integrity": "sha512-H/2gurFWVi7xXvCyvsWRLCMekl4tITJcX0QEsDMpzxtuxDyM59xLatYNg4s/k9AA/HdtCYfj2su8mgA0GSDLDA==", - "dev": true, - "peer": true, - "requires": { - "@iarna/toml": "^2.2.5" - } - }, "create-eslint-index": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/create-eslint-index/-/create-eslint-index-1.0.0.tgz", @@ -24186,13 +23734,6 @@ "lodash.get": "^4.3.0" } }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "peer": true - }, "cross-env": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", @@ -24250,9 +23791,9 @@ } }, "dataloader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.1.0.tgz", - "integrity": "sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", + "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==", "dev": true }, "dateformat": { @@ -24380,9 +23921,9 @@ } }, "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", "dev": true, "requires": { "has-property-descriptors": "^1.0.0", @@ -24459,9 +24000,9 @@ "dev": true }, "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true }, "deprecation": { @@ -24574,9 +24115,9 @@ "dev": true }, "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -24622,9 +24163,9 @@ } }, "electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "version": "1.4.328", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz", + "integrity": "sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw==", "dev": true }, "emoji-regex": { @@ -24778,18 +24319,18 @@ } }, "es-abstract": { - "version": "1.21.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", - "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", + "version": "1.21.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", + "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", "dev": true, "requires": { + "array-buffer-byte-length": "^1.0.0", "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", + "get-intrinsic": "^1.2.0", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", @@ -24797,8 +24338,8 @@ "has-property-descriptors": "^1.0.0", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.4", - "is-array-buffer": "^3.0.1", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", @@ -24806,11 +24347,12 @@ "is-string": "^1.0.7", "is-typed-array": "^1.1.10", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", + "object-inspect": "^1.12.3", "object-keys": "^1.1.1", "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", "string.prototype.trimend": "^1.0.6", "string.prototype.trimstart": "^1.0.6", "typed-array-length": "^1.0.4", @@ -24950,12 +24492,15 @@ } }, "eslint": { - "version": "8.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.32.0.tgz", - "integrity": "sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz", + "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.4.1", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.1", + "@eslint/js": "8.36.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -24966,10 +24511,9 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", + "espree": "^9.5.0", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", @@ -24990,7 +24534,6 @@ "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -25072,9 +24615,9 @@ } }, "globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -25114,15 +24657,6 @@ "p-locate": "^5.0.0" } }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, "p-locate": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", @@ -25557,9 +25091,9 @@ } }, "eslint-plugin-react": { - "version": "7.32.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.1.tgz", - "integrity": "sha512-vOjdgyd0ZHBXNsmvU+785xY8Bfe57EFbTYYk8XrROzWpr9QBvpjITvAXt9xqcE6+8cjR/g1+mfumPToxsl1www==", + "version": "7.32.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", + "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", "dev": true, "requires": { "array-includes": "^3.1.6", @@ -25713,9 +25247,9 @@ "dev": true }, "espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz", + "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==", "dev": true, "requires": { "acorn": "^8.8.0", @@ -25744,9 +25278,9 @@ "dev": true }, "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "requires": { "estraverse": "^5.1.0" } @@ -25771,12 +25305,6 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true - }, "execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", @@ -26026,6 +25554,12 @@ "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", "dev": true }, + "fast-decode-uri-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", + "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", + "dev": true + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -26069,6 +25603,24 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "fast-querystring": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.1.tgz", + "integrity": "sha512-qR2r+e3HvhEFmpdHMv//U8FnFlnYjaC6QKDuaXALDkw2kvHO8WDjxH+f/rHGR4Me4pnk8p9JAkRNTjYHAKRn2Q==", + "dev": true, + "requires": { + "fast-decode-uri-component": "^1.0.1" + } + }, + "fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dev": true, + "requires": { + "punycode": "^1.3.2" + } + }, "fastq": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", @@ -26156,6 +25708,15 @@ "path-exists": "^3.0.0" } }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, "p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", @@ -26290,30 +25851,6 @@ "mime-types": "^2.1.12" } }, - "form-data-encoder": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", - "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==", - "dev": true - }, - "formdata-node": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", - "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", - "dev": true, - "requires": { - "node-domexception": "1.0.0", - "web-streams-polyfill": "4.0.0-beta.3" - }, - "dependencies": { - "web-streams-polyfill": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", - "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", - "dev": true - } - } - }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -26340,9 +25877,9 @@ "dev": true }, "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -26500,9 +26037,9 @@ "dev": true }, "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -26595,9 +26132,9 @@ "dev": true }, "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -26799,6 +26336,91 @@ "dev": true, "peer": true }, + "graphql-config": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-4.5.0.tgz", + "integrity": "sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==", + "dev": true, + "requires": { + "@graphql-tools/graphql-file-loader": "^7.3.7", + "@graphql-tools/json-file-loader": "^7.3.7", + "@graphql-tools/load": "^7.5.5", + "@graphql-tools/merge": "^8.2.6", + "@graphql-tools/url-loader": "^7.9.7", + "@graphql-tools/utils": "^9.0.0", + "cosmiconfig": "8.0.0", + "jiti": "1.17.1", + "minimatch": "4.2.3", + "string-env-interpolation": "1.0.1", + "tslib": "^2.4.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "cosmiconfig": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", + "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", + "dev": true, + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + } + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "minimatch": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.3.tgz", + "integrity": "sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } + } + }, "graphql-depth-limit": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/graphql-depth-limit/-/graphql-depth-limit-1.1.0.tgz", @@ -26809,9 +26431,9 @@ } }, "graphql-ws": { - "version": "5.11.2", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.11.2.tgz", - "integrity": "sha512-4EiZ3/UXYcjm+xFGP544/yW1+DVI8ZpKASFbzrV5EDTFWJp0ZvLl4Dy2fSZAzz9imKp5pZMIcjB0x/H69Pv/6w==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.12.0.tgz", + "integrity": "sha512-PA3ImUp8utrpEjoxBMhvxsjkStvFEdU0E1gEBREt8HZIWkxOUymwJBhFnBL7t/iHhUq1GVPeZevPinkZFENxTw==", "dev": true, "requires": {} }, @@ -27182,12 +26804,12 @@ "dev": true }, "internal-slot": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", - "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", "dev": true, "requires": { - "get-intrinsic": "^1.1.3", + "get-intrinsic": "^1.2.0", "has": "^1.0.3", "side-channel": "^1.0.4" } @@ -27234,13 +26856,13 @@ } }, "is-array-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", - "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dev": true, "requires": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "get-intrinsic": "^1.2.0", "is-typed-array": "^1.1.10" } }, @@ -27285,9 +26907,9 @@ "dev": true }, "is-builtin-module": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", - "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", "dev": true, "requires": { "builtin-modules": "^3.3.0" @@ -27827,10 +27449,16 @@ "integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==", "dev": true }, + "jiti": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.17.1.tgz", + "integrity": "sha512-NZIITw8uZQFuzQimqjUxIrIcEdxYDFIe/0xYfIlVXTkiBjjyBEvgasj5bb0/cHtPRD/NziPbT312sFrkI5ALpw==", + "dev": true + }, "js-sdsl": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", - "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", "dev": true }, "js-tokens": { @@ -27947,9 +27575,9 @@ "dev": true }, "jsonc-eslint-parser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-2.1.0.tgz", - "integrity": "sha512-qCRJWlbP2v6HbmKW7R3lFbeiVWHo+oMJ0j+MizwvauqnCV/EvtAeEeuCgoc/ErtsuoKgYB8U4Ih8AxJbXoE6/g==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-2.2.0.tgz", + "integrity": "sha512-x5QjzBOORd+T2EjErIxJnkOEbLVEdD1ILEeBbIJt8Eq/zUn7P7M8qdnWiNVBK5f8oxnJpc6SBHOeeIEl/swPjg==", "dev": true, "requires": { "acorn": "^8.5.0", @@ -28046,9 +27674,9 @@ } }, "lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true }, "line-column-path": { @@ -28075,41 +27703,47 @@ "dev": true }, "lint-staged": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.1.0.tgz", - "integrity": "sha512-pn/sR8IrcF/T0vpWLilih8jmVouMlxqXxKuAojmbiGX5n/gDnz+abdPptlj0vYnbfE0SQNl3CY/HwtM0+yfOVQ==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.0.tgz", + "integrity": "sha512-GbyK5iWinax5Dfw5obm2g2ccUiZXNGtAS4mCbJ0Lv4rq6iEtfBSjOYdcbOtAIFtM114t0vdpViDDetjVTSd8Vw==", "dev": true, "requires": { + "chalk": "5.2.0", "cli-truncate": "^3.1.0", - "colorette": "^2.0.19", - "commander": "^9.4.1", + "commander": "^10.0.0", "debug": "^4.3.4", - "execa": "^6.1.0", - "lilconfig": "2.0.6", - "listr2": "^5.0.5", + "execa": "^7.0.0", + "lilconfig": "2.1.0", + "listr2": "^5.0.7", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", - "object-inspect": "^1.12.2", + "object-inspect": "^1.12.3", "pidtree": "^0.6.0", "string-argv": "^0.3.1", - "yaml": "^2.1.3" + "yaml": "^2.2.1" }, "dependencies": { + "chalk": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "dev": true + }, "commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", + "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", "dev": true }, "execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.0.tgz", + "integrity": "sha512-T6nIJO3LHxUZ6ahVRaxXz9WLEruXLqdcluA+UuTptXmLM7nDAn9lx9IfkxPyzEL21583qSt4RmL44pO71EHaJQ==", "dev": true, "requires": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", - "human-signals": "^3.0.1", + "human-signals": "^4.3.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", @@ -28125,9 +27759,9 @@ "dev": true }, "human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.0.tgz", + "integrity": "sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ==", "dev": true }, "is-stream": { @@ -28191,9 +27825,9 @@ } }, "listr2": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.7.tgz", - "integrity": "sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.8.tgz", + "integrity": "sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==", "dev": true, "requires": { "cli-truncate": "^2.1.0", @@ -28596,13 +28230,6 @@ } } }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, - "peer": true - }, "make-fetch-happen": { "version": "10.2.1", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", @@ -28628,9 +28255,9 @@ }, "dependencies": { "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true } } @@ -28895,9 +28522,9 @@ } }, "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true }, "minimist-options": { @@ -29130,15 +28757,6 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, "p-locate": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", @@ -29255,12 +28873,6 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, - "node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "dev": true - }, "node-emoji": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", @@ -29289,9 +28901,9 @@ } }, "node-fetch": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", - "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", "dev": true, "requires": { "whatwg-url": "^5.0.0" @@ -29350,9 +28962,9 @@ } }, "node-releases": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", - "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", "dev": true }, "nopt": { @@ -29389,9 +29001,9 @@ "dev": true }, "npm": { - "version": "8.19.3", - "resolved": "https://registry.npmjs.org/npm/-/npm-8.19.3.tgz", - "integrity": "sha512-0QjmyPtDxSyMWWD8I91QGbrgx9KzbV6C9FK1liEb/K0zppiZkr5KxXc990G+LzPwBHDfRjUBlO9T1qZ08vl9mA==", + "version": "8.19.4", + "resolved": "https://registry.npmjs.org/npm/-/npm-8.19.4.tgz", + "integrity": "sha512-3HANl8i9DKnUA89P4KEgVNN28EjSeDCmvEqbzOAuxCFDzdBZzjUl99zgnGpOUumvW5lvJo2HKcjrsc+tfyv1Hw==", "dev": true, "requires": { "@isaacs/string-locale-compare": "^1.1.0", @@ -30088,7 +29700,7 @@ } }, "http-cache-semantics": { - "version": "4.1.0", + "version": "4.1.1", "bundled": true, "dev": true }, @@ -31815,12 +31427,12 @@ "dev": true }, "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" } }, "p-locate": { @@ -31830,6 +31442,17 @@ "dev": true, "requires": { "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + } } }, "p-map": { @@ -31944,6 +31567,30 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "path-scurry": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz", + "integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==", + "dev": true, + "requires": { + "lru-cache": "^7.14.1", + "minipass": "^4.0.2" + }, + "dependencies": { + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true + }, + "minipass": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", + "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "dev": true + } + } + }, "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -32081,15 +31728,6 @@ "p-locate": "^5.0.0" } }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, "p-locate": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", @@ -32198,9 +31836,9 @@ } }, "punycode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz", - "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true }, "pvtsutils": { @@ -32243,9 +31881,9 @@ "dev": true }, "rambda": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.4.0.tgz", - "integrity": "sha512-A9hihu7dUTLOUCM+I8E61V4kRXnN4DwYeK0DwCBydC1MqNI1PidyAtbtpsJlBBzK4icSctEcCQ1bGcLpBuETUQ==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", + "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", "dev": true }, "ramda": { @@ -32376,9 +32014,9 @@ } }, "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -32489,14 +32127,14 @@ "dev": true }, "regexpu-core": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", - "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "requires": { + "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.1.0", - "regjsgen": "^0.7.1", "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" @@ -32509,20 +32147,14 @@ "dev": true }, "registry-auth-token": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.1.tgz", - "integrity": "sha512-UfxVOj8seK1yaIOiieV4FIP01vfBDLsY0H9sQzi9EbbUdJiuuBjJgLa1DpImXMNPnVkBD4eVxTEXcrZA6kfpJA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", + "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", "dev": true, "requires": { - "@pnpm/npm-conf": "^1.0.4" + "@pnpm/npm-conf": "^2.1.0" } }, - "regjsgen": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", - "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", - "dev": true - }, "regjsparser": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", @@ -32685,10 +32317,51 @@ "dev": true }, "rimraf": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.1.tgz", - "integrity": "sha512-Z4Y81w8atcvaJuJuBB88VpADRH66okZAuEm+Jtaufa+s7rZmIz+Hik2G53kGaNytE7lsfXyWktTmfVz0H9xuDg==", - "dev": true + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.0.tgz", + "integrity": "sha512-X36S+qpCUR0HjXlkDe4NAOhS//aHH0Z+h8Ckf2auGJk3PTnx5rLmrHkwNdbVQuCSUhOyFrlRvFEllZOYE+yZGQ==", + "dev": true, + "requires": { + "glob": "^9.2.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.2.1.tgz", + "integrity": "sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "minimatch": "^7.4.1", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + } + }, + "minimatch": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz", + "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minipass": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", + "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "dev": true + } + } }, "run-parallel": { "version": "1.2.0", @@ -32741,9 +32414,9 @@ "dev": true }, "semantic-release": { - "version": "20.0.2", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-20.0.2.tgz", - "integrity": "sha512-K6TYMAnSUqM2oH0/0ZJErMzkx4SgV2dM8jh5RNGj1ANJ81z/u5XVaPPCZADAl7voEf6t2hd6YioLd0I6yXui2A==", + "version": "20.1.1", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-20.1.1.tgz", + "integrity": "sha512-jXDr8y7ozo42N4+G9m/P5Qyx5oQO4aOS66a+Up8XECzEOFIpEoo3ngnr4R5lSix/sVJW69/fgNkOUZhsGFiQ5g==", "dev": true, "requires": { "@semantic-release/commit-analyzer": "^9.0.2", @@ -32755,7 +32428,7 @@ "cosmiconfig": "^8.0.0", "debug": "^4.0.0", "env-ci": "^8.0.0", - "execa": "^6.1.0", + "execa": "^7.0.0", "figures": "^5.0.0", "find-versions": "^5.1.0", "get-stream": "^6.0.0", @@ -32813,9 +32486,9 @@ } }, "cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.0.tgz", + "integrity": "sha512-0tLZ9URlPGU7JsKq0DQOQ3FoRsYX8xDZ7xMiATQfaiGMz7EHowNkbU9u1coAOmnh9p/1ySpm0RB3JNWRXM5GCg==", "dev": true, "requires": { "import-fresh": "^3.2.1", @@ -32837,14 +32510,14 @@ "dev": true }, "execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.0.tgz", + "integrity": "sha512-T6nIJO3LHxUZ6ahVRaxXz9WLEruXLqdcluA+UuTptXmLM7nDAn9lx9IfkxPyzEL21583qSt4RmL44pO71EHaJQ==", "dev": true, "requires": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", - "human-signals": "^3.0.1", + "human-signals": "^4.3.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", @@ -32879,9 +32552,9 @@ } }, "human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.0.tgz", + "integrity": "sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ==", "dev": true }, "import-fresh": { @@ -32930,18 +32603,18 @@ } }, "locate-path": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.1.1.tgz", - "integrity": "sha512-vJXaRMJgRVD3+cUZs3Mncj2mxpt5mP0EmNOsxRSZRMlbqjvxzDEOIUWXGmavo0ZC9+tNZCBLQ66reA11nbpHZg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, "requires": { "p-locate": "^6.0.0" } }, "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true }, "marked": { @@ -33073,9 +32746,9 @@ "dev": true }, "yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", "dev": true, "requires": { "cliui": "^8.0.1", @@ -33576,9 +33249,9 @@ } }, "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -33600,9 +33273,9 @@ } }, "spdx-license-ids": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==" + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==" }, "split": { "version": "1.0.1", @@ -33773,9 +33446,9 @@ "dev": true }, "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -33881,6 +33554,17 @@ "side-channel": "^1.0.4" } }, + "string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, "string.prototype.trimend": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", @@ -34008,13 +33692,10 @@ }, "dependencies": { "minipass": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", - "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", + "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "dev": true }, "yallist": { "version": "4.0.0", @@ -34112,9 +33793,9 @@ } }, "tlds": { - "version": "1.236.0", - "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.236.0.tgz", - "integrity": "sha512-oP2PZ3KeGlgpHgsEfrtva3/K9kzsJUNliQSbCfrJ7JMCWFoCdtG+9YMq/g2AnADQ1v5tVlbtvKJZ4KLpy/P6MA==", + "version": "1.237.0", + "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.237.0.tgz", + "integrity": "sha512-4IA6zR7jQop4pEdziQaptOgkIwnnZ537fXM3MKAzOXjXLjiHm77SA3/E0nXWJGSVRnKcn/JxDJmwTqyPgQ+ozg==", "dev": true }, "to-fast-properties": { @@ -34191,6 +33872,14 @@ "requires": { "psl": "^1.1.28", "punycode": "^2.1.1" + }, + "dependencies": { + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + } } }, "tr46": { @@ -34211,45 +33900,14 @@ "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true }, - "ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "peer": true, - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "dependencies": { - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "peer": true - } - } - }, "tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, "requires": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", + "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" }, @@ -34272,9 +33930,9 @@ } }, "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "dev": true }, "tsutils": { @@ -34351,9 +34009,9 @@ } }, "typescript": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", - "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true }, "uglify-js": { @@ -34375,15 +34033,6 @@ "which-boxed-primitive": "^1.0.2" } }, - "undici": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.20.0.tgz", - "integrity": "sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==", - "dev": true, - "requires": { - "busboy": "^1.6.0" - } - }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -34554,6 +34203,14 @@ "dev": true, "requires": { "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + } } }, "urix": { @@ -34612,13 +34269,6 @@ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true, - "peer": true - }, "v8flags": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", @@ -34662,9 +34312,9 @@ "dev": true }, "webcrypto-core": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.5.tgz", - "integrity": "sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.6.tgz", + "integrity": "sha512-TBPiewB4Buw+HI3EQW+Bexm19/W4cP/qZG/02QJCXN+iN+T5sl074vZ3rJcle/ZtDBQSgjkbsQO/1eFcxnSBUA==", "dev": true, "requires": { "@peculiar/asn1-schema": "^2.1.6", @@ -34884,9 +34534,9 @@ } }, "ws": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", - "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true, "requires": {} }, @@ -35023,13 +34673,6 @@ } } }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "peer": true - }, "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 8ae63bd39..df000a167 100644 --- a/package.json +++ b/package.json @@ -9,46 +9,46 @@ "comment-parser": "1.3.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", - "esquery": "^1.4.0", + "esquery": "^1.5.0", "semver": "^7.3.8", "spdx-expression-parse": "^3.0.1" }, "description": "JSDoc linting rules for ESLint.", "devDependencies": { - "@babel/cli": "^7.20.7", - "@babel/core": "^7.20.12", + "@babel/cli": "^7.21.0", + "@babel/core": "^7.21.0", "@babel/eslint-parser": "^7.19.1", "@babel/node": "^7.20.7", "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-transform-flow-strip-types": "^7.19.0", + "@babel/plugin-transform-flow-strip-types": "^7.21.0", "@babel/preset-env": "^7.20.2", - "@babel/register": "^7.18.9", + "@babel/register": "^7.21.0", "@es-joy/jsdoc-eslint-parser": "^0.17.0", "@hkdobrev/run-if-changed": "^0.3.1", "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/github": "^8.0.7", "@semantic-release/npm": "^9.0.2", - "@typescript-eslint/parser": "^5.48.2", + "@typescript-eslint/parser": "^5.55.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", "chai": "^4.3.7", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "^8.32.0", + "eslint": "^8.36.0", "eslint-config-canonical": "~33.0.1", "gitdown": "^3.1.5", "glob": "^8.1.0", "husky": "^8.0.3", "jsdoc-type-pratt-parser": "^3.1.0", - "lint-staged": "^13.1.0", + "lint-staged": "^13.2.0", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.2.0", "nyc": "^15.1.0", "open-editor": "^3.0.0", - "rimraf": "^4.1.1", - "semantic-release": "^20.0.2", - "typescript": "^4.9.4" + "rimraf": "^4.4.0", + "semantic-release": "^20.1.1", + "typescript": "^4.9.5" }, "engines": { "node": "^14 || ^16 || ^17 || ^18 || ^19" From 835e1a7fd0e4f0649b2e78d4b99a3219e32accbf Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 15 Mar 2023 03:57:57 -0700 Subject: [PATCH 006/273] fix: update jsdoccomment (surfacing jsdoc-type-pratt-parser update) and devDeps. --- README.md | 10 ++ package-lock.json | 231 +++++++++++++++------------- package.json | 8 +- test/rules/assertions/validTypes.js | 17 ++ 4 files changed, 154 insertions(+), 112 deletions(-) diff --git a/README.md b/README.md index 570abd8bd..b508c35d4 100644 --- a/README.md +++ b/README.md @@ -23617,6 +23617,16 @@ function assign(employees) { // ... } // "jsdoc/valid-types": ["error"|"warn", {"allowEmptyNamepaths":true,"checkSeesForNamepaths":false}] + +/** + * @param {typeof obj["level1"]["level2"]} foo + * @param {Parameters[0]} ghi + * @param {{[key: string]: string}} hjk + */ +function quux() { + +} +// Settings: {"jsdoc":{"mode":"typescript"}} ```` diff --git a/package-lock.json b/package-lock.json index 9d0ef541e..781b479d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "BSD-3-Clause", "dependencies": { - "@es-joy/jsdoccomment": "~0.36.1", + "@es-joy/jsdoccomment": "~0.37.0", "comment-parser": "1.3.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", @@ -19,8 +19,8 @@ }, "devDependencies": { "@babel/cli": "^7.21.0", - "@babel/core": "^7.21.0", - "@babel/eslint-parser": "^7.19.1", + "@babel/core": "^7.21.3", + "@babel/eslint-parser": "^7.21.3", "@babel/node": "^7.20.7", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-transform-flow-strip-types": "^7.21.0", @@ -43,7 +43,7 @@ "gitdown": "^3.1.5", "glob": "^8.1.0", "husky": "^8.0.3", - "jsdoc-type-pratt-parser": "^3.1.0", + "jsdoc-type-pratt-parser": "^4.0.0", "lint-staged": "^13.2.0", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.2.0", @@ -156,21 +156,21 @@ } }, "node_modules/@babel/core": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.0.tgz", - "integrity": "sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.3.tgz", + "integrity": "sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.0", + "@babel/generator": "^7.21.3", "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.21.0", + "@babel/helper-module-transforms": "^7.21.2", "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.0", + "@babel/parser": "^7.21.3", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0", + "@babel/traverse": "^7.21.3", + "@babel/types": "^7.21.3", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -195,9 +195,9 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", - "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz", + "integrity": "sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg==", "dev": true, "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", @@ -238,12 +238,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.21.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.1.tgz", - "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.3.tgz", + "integrity": "sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==", "dev": true, "dependencies": { - "@babel/types": "^7.21.0", + "@babel/types": "^7.21.3", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -658,9 +658,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", - "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz", + "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -1275,9 +1275,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz", - "integrity": "sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" @@ -1529,9 +1529,9 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz", - "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", + "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" @@ -1882,19 +1882,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.2.tgz", - "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.3.tgz", + "integrity": "sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.1", + "@babel/generator": "^7.21.3", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.21.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.2", - "@babel/types": "^7.21.2", + "@babel/parser": "^7.21.3", + "@babel/types": "^7.21.3", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1903,9 +1903,9 @@ } }, "node_modules/@babel/types": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz", - "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.3.tgz", + "integrity": "sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.19.4", @@ -1958,14 +1958,23 @@ "node": "^14 || ^16 || ^17 || ^18" } }, + "node_modules/@es-joy/jsdoc-eslint-parser/node_modules/jsdoc-type-pratt-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", + "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==", + "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.36.1.tgz", - "integrity": "sha512-922xqFsTpHs6D0BUiG4toiyPOMc8/jafnWKxz1KWgS4XzKPy2qXf1Pe6UFuNSCQqt6tOuhAWXBNuuyUhJmw9Vg==", + "version": "0.37.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.37.0.tgz", + "integrity": "sha512-hjK0wnsPCYLlF+HHB4R/RbUjOWeLW2SlarB67+Do5WsKILOkmIZvvPJFbtWSmbypxcjpoECLAMzoao0D4Bg5ZQ==", "dependencies": { "comment-parser": "1.3.1", "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "~3.1.0" + "jsdoc-type-pratt-parser": "~4.0.0" }, "engines": { "node": "^14 || ^16 || ^17 || ^18 || ^19" @@ -3271,9 +3280,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.15.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.2.tgz", - "integrity": "sha512-sDPHm2wfx2QhrMDK0pOt2J4KLJMAcerqWNvnED0itPRJWvI+bK+uNHzcH1dFsBlf7G3u8tqXmRF3wkvL9yUwMw==", + "version": "18.15.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.3.tgz", + "integrity": "sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw==", "dev": true }, "node_modules/@types/normalize-package-data": { @@ -3539,9 +3548,9 @@ } }, "node_modules/@whatwg-node/node-fetch": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.3.1.tgz", - "integrity": "sha512-/U4onp5eBkRHfFe/VL+ppyupqj7z6iBtjcuPSosQNH2/y+LxRn5lyFb7Vqhb5DokjrDMjssLcqiVYnx+UABFsw==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.3.2.tgz", + "integrity": "sha512-MFPehIybgtPJG7vN4+wNk2i5ek4/qIl+1hzchGCdq7gObWsXWH+L+rvyazIoj8lo8Mt8EZeES8Cg+aPsl+7gPw==", "dev": true, "dependencies": { "@whatwg-node/events": "^0.0.2", @@ -4524,9 +4533,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001465", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001465.tgz", - "integrity": "sha512-HvjgL3MYAJjceTDCcjRnQGjwUz/5qec9n7JPOzUursUoOTIsYCSDOb1l7RsnZE8mjbxG78zVRCKfrBXyvChBag==", + "version": "1.0.30001466", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001466.tgz", + "integrity": "sha512-ewtFBSfWjEmxUgNBSZItFSmVtvk9zkwkl1OfRZlKA8slltRN+/C/tuGVrF9styXkN36Yu3+SeJ1qkXxDEyNZ5w==", "dev": true, "funding": [ { @@ -10223,9 +10232,9 @@ "dev": true }, "node_modules/jsdoc-type-pratt-parser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", - "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", + "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", "engines": { "node": ">=12.0.0" } @@ -16851,9 +16860,9 @@ } }, "node_modules/rimraf/node_modules/glob": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.2.1.tgz", - "integrity": "sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.0.tgz", + "integrity": "sha512-EAZejC7JvnQINayvB/7BJbpZpNOJ8Lrw2OZNEvQxe0vaLn1SuwMcfV7/MNaX8L/T0wmptBFI4YMtDvSBxYDc7w==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -20021,21 +20030,21 @@ "dev": true }, "@babel/core": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.0.tgz", - "integrity": "sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.3.tgz", + "integrity": "sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw==", "dev": true, "requires": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.0", + "@babel/generator": "^7.21.3", "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.21.0", + "@babel/helper-module-transforms": "^7.21.2", "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.0", + "@babel/parser": "^7.21.3", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0", + "@babel/traverse": "^7.21.3", + "@babel/types": "^7.21.3", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -20052,9 +20061,9 @@ } }, "@babel/eslint-parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", - "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz", + "integrity": "sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg==", "dev": true, "requires": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", @@ -20080,12 +20089,12 @@ } }, "@babel/generator": { - "version": "7.21.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.1.tgz", - "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.3.tgz", + "integrity": "sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==", "dev": true, "requires": { - "@babel/types": "^7.21.0", + "@babel/types": "^7.21.3", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -20395,9 +20404,9 @@ } }, "@babel/parser": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", - "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz", + "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -20799,9 +20808,9 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz", - "integrity": "sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.20.2" @@ -20957,9 +20966,9 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz", - "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", + "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.20.2" @@ -21216,27 +21225,27 @@ } }, "@babel/traverse": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.2.tgz", - "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.3.tgz", + "integrity": "sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.1", + "@babel/generator": "^7.21.3", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.21.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.2", - "@babel/types": "^7.21.2", + "@babel/parser": "^7.21.3", + "@babel/types": "^7.21.3", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz", - "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.3.tgz", + "integrity": "sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==", "dev": true, "requires": { "@babel/helper-string-parser": "^7.19.4", @@ -21276,17 +21285,23 @@ "esquery": "^1.4.0", "jsdoc-type-pratt-parser": "~3.1.0" } + }, + "jsdoc-type-pratt-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", + "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==", + "dev": true } } }, "@es-joy/jsdoccomment": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.36.1.tgz", - "integrity": "sha512-922xqFsTpHs6D0BUiG4toiyPOMc8/jafnWKxz1KWgS4XzKPy2qXf1Pe6UFuNSCQqt6tOuhAWXBNuuyUhJmw9Vg==", + "version": "0.37.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.37.0.tgz", + "integrity": "sha512-hjK0wnsPCYLlF+HHB4R/RbUjOWeLW2SlarB67+Do5WsKILOkmIZvvPJFbtWSmbypxcjpoECLAMzoao0D4Bg5ZQ==", "requires": { "comment-parser": "1.3.1", "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "~3.1.0" + "jsdoc-type-pratt-parser": "~4.0.0" } }, "@eslint-community/eslint-utils": { @@ -22286,9 +22301,9 @@ "dev": true }, "@types/node": { - "version": "18.15.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.2.tgz", - "integrity": "sha512-sDPHm2wfx2QhrMDK0pOt2J4KLJMAcerqWNvnED0itPRJWvI+bK+uNHzcH1dFsBlf7G3u8tqXmRF3wkvL9yUwMw==", + "version": "18.15.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.3.tgz", + "integrity": "sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw==", "dev": true }, "@types/normalize-package-data": { @@ -22454,9 +22469,9 @@ } }, "@whatwg-node/node-fetch": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.3.1.tgz", - "integrity": "sha512-/U4onp5eBkRHfFe/VL+ppyupqj7z6iBtjcuPSosQNH2/y+LxRn5lyFb7Vqhb5DokjrDMjssLcqiVYnx+UABFsw==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.3.2.tgz", + "integrity": "sha512-MFPehIybgtPJG7vN4+wNk2i5ek4/qIl+1hzchGCdq7gObWsXWH+L+rvyazIoj8lo8Mt8EZeES8Cg+aPsl+7gPw==", "dev": true, "requires": { "@whatwg-node/events": "^0.0.2", @@ -23206,9 +23221,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001465", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001465.tgz", - "integrity": "sha512-HvjgL3MYAJjceTDCcjRnQGjwUz/5qec9n7JPOzUursUoOTIsYCSDOb1l7RsnZE8mjbxG78zVRCKfrBXyvChBag==", + "version": "1.0.30001466", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001466.tgz", + "integrity": "sha512-ewtFBSfWjEmxUgNBSZItFSmVtvk9zkwkl1OfRZlKA8slltRN+/C/tuGVrF9styXkN36Yu3+SeJ1qkXxDEyNZ5w==", "dev": true }, "cardinal": { @@ -27490,9 +27505,9 @@ "dev": true }, "jsdoc-type-pratt-parser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", - "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", + "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==" }, "jsdom": { "version": "6.5.1", @@ -32335,9 +32350,9 @@ } }, "glob": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.2.1.tgz", - "integrity": "sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.0.tgz", + "integrity": "sha512-EAZejC7JvnQINayvB/7BJbpZpNOJ8Lrw2OZNEvQxe0vaLn1SuwMcfV7/MNaX8L/T0wmptBFI4YMtDvSBxYDc7w==", "dev": true, "requires": { "fs.realpath": "^1.0.0", diff --git a/package.json b/package.json index df000a167..644222393 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "url": "http://gajus.com" }, "dependencies": { - "@es-joy/jsdoccomment": "~0.36.1", + "@es-joy/jsdoccomment": "~0.37.0", "comment-parser": "1.3.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", @@ -16,8 +16,8 @@ "description": "JSDoc linting rules for ESLint.", "devDependencies": { "@babel/cli": "^7.21.0", - "@babel/core": "^7.21.0", - "@babel/eslint-parser": "^7.19.1", + "@babel/core": "^7.21.3", + "@babel/eslint-parser": "^7.21.3", "@babel/node": "^7.20.7", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-transform-flow-strip-types": "^7.21.0", @@ -40,7 +40,7 @@ "gitdown": "^3.1.5", "glob": "^8.1.0", "husky": "^8.0.3", - "jsdoc-type-pratt-parser": "^3.1.0", + "jsdoc-type-pratt-parser": "^4.0.0", "lint-staged": "^13.2.0", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.2.0", diff --git a/test/rules/assertions/validTypes.js b/test/rules/assertions/validTypes.js index 5feb20b4e..f387f313d 100644 --- a/test/rules/assertions/validTypes.js +++ b/test/rules/assertions/validTypes.js @@ -1717,5 +1717,22 @@ export default { }, ], }, + { + code: ` + /** + * @param {typeof obj["level1"]["level2"]} foo + * @param {Parameters[0]} ghi + * @param {{[key: string]: string}} hjk + */ + function quux() { + + } + `, + settings: { + jsdoc: { + mode: 'typescript', + }, + }, + }, ], }; From 07ba155a2e8c81a92489961841a0cd852e2eb25e Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Sat, 18 Mar 2023 14:46:54 -0400 Subject: [PATCH 007/273] feat: add recommended-typescript, recommended-typescript-error rulesets --- src/index.js | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/src/index.js b/src/index.js index 30095a618..2b9e4a7d3 100644 --- a/src/index.js +++ b/src/index.js @@ -105,21 +105,8 @@ const index = { }, }; -for (const [ - config, - warnOrError, -] of [ - [ - 'recommended', - 'warn', - ], - [ - 'recommended-error', - 'error', - ], - ] -) { - index.configs[config] = { +const createRecommendedRuleset = (warnOrError) => { + return { plugins: [ 'jsdoc', ], @@ -176,6 +163,26 @@ for (const [ 'jsdoc/valid-types': warnOrError, }, }; -} +}; + +const createRecommendedTypeScriptRuleset = (warnOrError) => { + const ruleset = createRecommendedRuleset(warnOrError); + + return { + ...ruleset, + rules: { + ...ruleset.rules, + 'jsdoc/no-types': warnOrError, + 'jsdoc/require-param-type': 'off', + 'jsdoc/require-property-type': 'off', + 'jsdoc/require-returns-type': 'off', + }, + }; +}; + +index.configs.recommended = createRecommendedRuleset('warn'); +index.configs['recommended-error'] = createRecommendedRuleset('error'); +index.configs['recommended-typescript'] = createRecommendedTypeScriptRuleset('warn'); +index.configs['recommended-typescript-error'] = createRecommendedTypeScriptRuleset('error'); export default index; From 921cedd7e39f98d1e906c5e7b4e97ac84e3ac5ff Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 19 Mar 2023 00:51:13 -0700 Subject: [PATCH 008/273] docs: `recommended-typescript` --- .README/README.md | 31 +++++++++++++++++++++++++++++++ README.md | 31 +++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) diff --git a/.README/README.md b/.README/README.md index 05ee2ed8f..0141860f7 100644 --- a/.README/README.md +++ b/.README/README.md @@ -116,6 +116,37 @@ as failing errors, you may use the "recommended-error" config: } ``` +If you plan to use TypeScript syntax (and not just "typescript" +`mode` to indicate the JSDoc flavor is TypeScript), you can configure +the following: + +```javascript +{ + "rules": { + "jsdoc/no-types": 1, + "jsdoc/require-param-type": 0, + "jsdoc/require-property-type": 0, + "jsdoc/require-returns-type": 0, + } +} +``` + +...or just use: + +```json +{ + "extends": ["plugin:jsdoc/recommended-typescript"] +} +``` + +...or to report with failing errors instead of mere warnings: + +```json +{ + "extends": ["plugin:jsdoc/recommended-typescript-error"] +} +``` + ## Options Rules may, as per the [ESLint user guide](https://eslint.org/docs/user-guide/configuring), have their own individual options. In `eslint-plugin-jsdoc`, a few options, diff --git a/README.md b/README.md index b508c35d4..f1dd7f3d3 100644 --- a/README.md +++ b/README.md @@ -188,6 +188,37 @@ as failing errors, you may use the "recommended-error" config: } ``` +If you plan to use TypeScript syntax (and not just "typescript" +`mode` to indicate the JSDoc flavor is TypeScript), you can configure +the following: + +```javascript +{ + "rules": { + "jsdoc/no-types": 1, + "jsdoc/require-param-type": 0, + "jsdoc/require-property-type": 0, + "jsdoc/require-returns-type": 0, + } +} +``` + +...or just use: + +```json +{ + "extends": ["plugin:jsdoc/recommended-typescript"] +} +``` + +...or to report with failing errors instead of mere warnings: + +```json +{ + "extends": ["plugin:jsdoc/recommended-typescript-error"] +} +``` + ## Options From f1bf68f9e5a8b8632e1978bcf5a3f8123fb64ba3 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 22 Mar 2023 15:12:09 -0700 Subject: [PATCH 009/273] chore: fix generateRule; fixes #1003 --- src/bin/generateRule.js | 6 +++--- src/index.js | 10 ++++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/bin/generateRule.js b/src/bin/generateRule.js index de2bf29fd..f38f5138a 100644 --- a/src/bin/generateRule.js +++ b/src/bin/generateRule.js @@ -4,7 +4,7 @@ * @example * * ```shell - * npm run create-rule my-new-rule --recommended + * npm run create-rule my-new-rule -- --recommended * ``` */ @@ -217,8 +217,8 @@ export default iterateJsdoc(({ await replaceInOrder({ checkName: 'index recommended', - newLine: `${' '.repeat(8)}'jsdoc/${ruleName}': '${recommended ? 'warn' : 'off'}',`, - oldRegex: /\n\s{8}'jsdoc\/(?[^']*)': '[^']*',/gu, + newLine: `${' '.repeat(6)}'jsdoc/${ruleName}': ${recommended ? 'warnOrError' : '\'off\''},`, + oldRegex: /\n\s{6}'jsdoc\/(?[^']*)': .*?,/gu, path: './src/index.js', }); diff --git a/src/index.js b/src/index.js index 2b9e4a7d3..65b8e1cbd 100644 --- a/src/index.js +++ b/src/index.js @@ -172,10 +172,12 @@ const createRecommendedTypeScriptRuleset = (warnOrError) => { ...ruleset, rules: { ...ruleset.rules, - 'jsdoc/no-types': warnOrError, - 'jsdoc/require-param-type': 'off', - 'jsdoc/require-property-type': 'off', - 'jsdoc/require-returns-type': 'off', + /* eslint-disable indent -- Extra indent to avoid use by auto-rule-editing */ + 'jsdoc/no-types': warnOrError, + 'jsdoc/require-param-type': 'off', + 'jsdoc/require-property-type': 'off', + 'jsdoc/require-returns-type': 'off', + /* eslint-enable indent */ }, }; }; From 671a40be8f635c16a197d6120001f47ff3a539f1 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 31 Mar 2023 04:55:03 -0700 Subject: [PATCH 010/273] chore: update devDeps. --- package-lock.json | 3655 ++++++++++++++++++++++++++++----------------- package.json | 12 +- 2 files changed, 2310 insertions(+), 1357 deletions(-) diff --git a/package-lock.json b/package-lock.json index 781b479d2..b11411852 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,15 +30,15 @@ "@hkdobrev/run-if-changed": "^0.3.1", "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/github": "^8.0.7", - "@semantic-release/npm": "^9.0.2", - "@typescript-eslint/parser": "^5.55.0", + "@semantic-release/npm": "^10.0.2", + "@typescript-eslint/parser": "^5.57.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", "chai": "^4.3.7", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "^8.36.0", + "eslint": "^8.37.0", "eslint-config-canonical": "~33.0.1", "gitdown": "^3.1.5", "glob": "^8.1.0", @@ -49,9 +49,9 @@ "mocha": "^10.2.0", "nyc": "^15.1.0", "open-editor": "^3.0.0", - "rimraf": "^4.4.0", - "semantic-release": "^20.1.1", - "typescript": "^4.9.5" + "rimraf": "^4.4.1", + "semantic-release": "^21.0.0", + "typescript": "^5.0.3" }, "engines": { "node": "^14 || ^16 || ^17 || ^18 || ^19" @@ -1967,6 +1967,19 @@ "node": ">=12.0.0" } }, + "node_modules/@es-joy/jsdoc-eslint-parser/node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, "node_modules/@es-joy/jsdoccomment": { "version": "0.37.0", "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.37.0.tgz", @@ -2014,14 +2027,14 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz", - "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.0", + "espree": "^9.5.1", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -2107,9 +2120,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz", - "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.37.0.tgz", + "integrity": "sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3131,50 +3144,93 @@ } }, "node_modules/@semantic-release/npm": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-9.0.2.tgz", - "integrity": "sha512-zgsynF6McdzxPnFet+a4iO9HpAlARXOM5adz7VGVCvj0ne8wtL2ZOQoDV2wZPDmdEotDIbVeJjafhelZjs9j6g==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-10.0.2.tgz", + "integrity": "sha512-Mo0XoBza4pUapxiBhLLYXeSZ9tkuHDUd/WvMbpilwuPRfJDnQXMqx5tBVon8d2mBk8JXmXpqB+ExhlWJmVT40A==", "dev": true, "dependencies": { "@semantic-release/error": "^3.0.0", - "aggregate-error": "^3.0.0", - "execa": "^5.0.0", + "aggregate-error": "^4.0.1", + "execa": "^7.0.0", "fs-extra": "^11.0.0", - "lodash": "^4.17.15", + "lodash-es": "^4.17.21", "nerf-dart": "^1.0.0", - "normalize-url": "^6.0.0", - "npm": "^8.3.0", + "normalize-url": "^8.0.0", + "npm": "^9.5.0", "rc": "^1.2.8", - "read-pkg": "^5.0.0", + "read-pkg": "^7.0.0", "registry-auth-token": "^5.0.0", "semver": "^7.1.2", - "tempy": "^1.0.0" + "tempy": "^3.0.0" }, "engines": { - "node": ">=16 || ^14.17" + "node": ">=18" }, "peerDependencies": { - "semantic-release": ">=19.0.0" + "semantic-release": ">=20.1.0" + } + }, + "node_modules/@semantic-release/npm/node_modules/aggregate-error": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", + "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "dev": true, + "dependencies": { + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/clean-stack": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", + "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@semantic-release/npm/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", + "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" }, "engines": { - "node": ">=10" + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" @@ -3192,28 +3248,151 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@semantic-release/npm/node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@semantic-release/npm/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@semantic-release/npm/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@semantic-release/npm/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", "dev": true, "dependencies": { - "path-key": "^3.0.0" + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/read-pkg": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", + "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^2.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@semantic-release/release-notes-generator": { @@ -3366,14 +3545,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.55.0.tgz", - "integrity": "sha512-ppvmeF7hvdhUUZWSd2EEWfzcFkjJzgNQzVST22nzg958CR+sphy8A6K7LXQZd6V75m1VKjp+J4g/PCEfSCmzhw==", + "version": "5.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.57.0.tgz", + "integrity": "sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.55.0", - "@typescript-eslint/types": "5.55.0", - "@typescript-eslint/typescript-estree": "5.55.0", + "@typescript-eslint/scope-manager": "5.57.0", + "@typescript-eslint/types": "5.57.0", + "@typescript-eslint/typescript-estree": "5.57.0", "debug": "^4.3.4" }, "engines": { @@ -3392,6 +3571,92 @@ } } }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "5.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.57.0.tgz", + "integrity": "sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.57.0", + "@typescript-eslint/visitor-keys": "5.57.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "5.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.57.0.tgz", + "integrity": "sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.57.0.tgz", + "integrity": "sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.57.0", + "@typescript-eslint/visitor-keys": "5.57.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.57.0.tgz", + "integrity": "sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.57.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@typescript-eslint/scope-manager": { "version": "5.55.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.55.0.tgz", @@ -5243,12 +5508,30 @@ } }, "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", "dev": true, + "dependencies": { + "type-fest": "^1.0.1" + }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/crypto-random-string/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cssom": { @@ -5489,72 +5772,6 @@ "node": ">=0.10.0" } }, - "node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "dev": true, - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/del/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/del/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/del/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -6196,15 +6413,15 @@ } }, "node_modules/eslint": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz", - "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.1", - "@eslint/js": "8.36.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.37.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -6215,8 +6432,8 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.5.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -6886,9 +7103,9 @@ } }, "node_modules/eslint-plugin-typescript-sort-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-typescript-sort-keys/-/eslint-plugin-typescript-sort-keys-2.1.0.tgz", - "integrity": "sha512-ET7ABypdz19m47QnKynzNfWPi4CTNQ5jQQC1X5d0gojIwblkbGiCa5IilsqzBTmqxZ0yXDqKBO/GBkBFQCOFsg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-typescript-sort-keys/-/eslint-plugin-typescript-sort-keys-2.3.0.tgz", + "integrity": "sha512-3LAcYulo5gNYiPWee+TksITfvWeBuBjGgcSLTacPESFVKEoy8laOQuZvJlSCwTBHT2SCGIxr3bJ56zuux+3MCQ==", "dev": true, "dependencies": { "@typescript-eslint/experimental-utils": "^5.0.0", @@ -6896,12 +7113,12 @@ "natural-compare-lite": "^1.4.0" }, "engines": { - "node": "10 - 12 || >= 13.9" + "node": "12 || >= 13.9" }, "peerDependencies": { "@typescript-eslint/parser": "^1 || ^2 || ^3 || ^4 || ^5", "eslint": "^5 || ^6 || ^7 || ^8", - "typescript": "^3 || ^4" + "typescript": "^3 || ^4 || ^5" } }, "node_modules/eslint-plugin-unicorn": { @@ -7097,12 +7314,15 @@ } }, "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/find-up": { @@ -7249,14 +7469,14 @@ } }, "node_modules/espree": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz", - "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", "dev": true, "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -7266,12 +7486,15 @@ } }, "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esprima": { @@ -9695,15 +9918,6 @@ "obj-props": "^1.0.0" } }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -12220,27 +12434,25 @@ } }, "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", "dev": true, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/npm": { - "version": "8.19.4", - "resolved": "https://registry.npmjs.org/npm/-/npm-8.19.4.tgz", - "integrity": "sha512-3HANl8i9DKnUA89P4KEgVNN28EjSeDCmvEqbzOAuxCFDzdBZzjUl99zgnGpOUumvW5lvJo2HKcjrsc+tfyv1Hw==", + "version": "9.6.3", + "resolved": "https://registry.npmjs.org/npm/-/npm-9.6.3.tgz", + "integrity": "sha512-KMAw6cJF5JGPJz/NtsU8H1sMqb34qPGnSMaSWrVO8bzxOdAXJNAtDXATvLl0lflrImIze1FZCqocM8wdIu3Sfg==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", - "@npmcli/ci-detect", "@npmcli/config", - "@npmcli/fs", "@npmcli/map-workspaces", "@npmcli/package-json", "@npmcli/run-script", @@ -12248,7 +12460,7 @@ "archy", "cacache", "chalk", - "chownr", + "ci-info", "cli-columns", "cli-table3", "columnify", @@ -12276,8 +12488,6 @@ "minimatch", "minipass", "minipass-pipeline", - "mkdirp", - "mkdirp-infer-owner", "ms", "node-gyp", "nopt", @@ -12289,7 +12499,6 @@ "npm-registry-fetch", "npm-user-validate", "npmlog", - "opener", "p-map", "pacote", "parse-conflict-json", @@ -12298,8 +12507,6 @@ "read", "read-package-json", "read-package-json-fast", - "readdir-scoped-modules", - "rimraf", "semver", "ssri", "tar", @@ -12313,85 +12520,78 @@ "dev": true, "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^5.6.3", - "@npmcli/ci-detect": "^2.0.0", - "@npmcli/config": "^4.2.1", - "@npmcli/fs": "^2.1.0", - "@npmcli/map-workspaces": "^2.0.3", - "@npmcli/package-json": "^2.0.0", - "@npmcli/run-script": "^4.2.1", - "abbrev": "~1.1.1", + "@npmcli/arborist": "^6.2.6", + "@npmcli/config": "^6.1.5", + "@npmcli/map-workspaces": "^3.0.3", + "@npmcli/package-json": "^3.0.0", + "@npmcli/run-script": "^6.0.0", + "abbrev": "^2.0.0", "archy": "~1.0.0", - "cacache": "^16.1.3", + "cacache": "^17.0.5", "chalk": "^4.1.2", - "chownr": "^2.0.0", + "ci-info": "^3.8.0", "cli-columns": "^4.0.0", - "cli-table3": "^0.6.2", + "cli-table3": "^0.6.3", "columnify": "^1.6.0", - "fastest-levenshtein": "^1.0.12", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "graceful-fs": "^4.2.10", - "hosted-git-info": "^5.2.1", + "fastest-levenshtein": "^1.0.16", + "fs-minipass": "^3.0.1", + "glob": "^9.3.1", + "graceful-fs": "^4.2.11", + "hosted-git-info": "^6.1.1", "ini": "^3.0.1", - "init-package-json": "^3.0.2", + "init-package-json": "^5.0.0", "is-cidr": "^4.0.2", - "json-parse-even-better-errors": "^2.3.1", - "libnpmaccess": "^6.0.4", - "libnpmdiff": "^4.0.5", - "libnpmexec": "^4.0.14", - "libnpmfund": "^3.0.5", - "libnpmhook": "^8.0.4", - "libnpmorg": "^4.0.4", - "libnpmpack": "^4.1.3", - "libnpmpublish": "^6.0.5", - "libnpmsearch": "^5.0.4", - "libnpmteam": "^4.0.4", - "libnpmversion": "^3.0.7", - "make-fetch-happen": "^10.2.0", - "minimatch": "^5.1.0", - "minipass": "^3.1.6", + "json-parse-even-better-errors": "^3.0.0", + "libnpmaccess": "^7.0.2", + "libnpmdiff": "^5.0.14", + "libnpmexec": "^5.0.14", + "libnpmfund": "^4.0.14", + "libnpmhook": "^9.0.3", + "libnpmorg": "^5.0.3", + "libnpmpack": "^5.0.14", + "libnpmpublish": "^7.1.3", + "libnpmsearch": "^6.0.2", + "libnpmteam": "^5.0.3", + "libnpmversion": "^4.0.2", + "make-fetch-happen": "^11.0.3", + "minimatch": "^7.4.3", + "minipass": "^4.2.5", "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "mkdirp-infer-owner": "^2.0.0", "ms": "^2.1.2", - "node-gyp": "^9.1.0", - "nopt": "^6.0.0", - "npm-audit-report": "^3.0.0", - "npm-install-checks": "^5.0.0", - "npm-package-arg": "^9.1.0", - "npm-pick-manifest": "^7.0.2", - "npm-profile": "^6.2.0", - "npm-registry-fetch": "^13.3.1", - "npm-user-validate": "^1.0.1", - "npmlog": "^6.0.2", - "opener": "^1.5.2", + "node-gyp": "^9.3.1", + "nopt": "^7.1.0", + "npm-audit-report": "^4.0.0", + "npm-install-checks": "^6.1.0", + "npm-package-arg": "^10.1.0", + "npm-pick-manifest": "^8.0.1", + "npm-profile": "^7.0.1", + "npm-registry-fetch": "^14.0.3", + "npm-user-validate": "^2.0.0", + "npmlog": "^7.0.1", "p-map": "^4.0.0", - "pacote": "^13.6.2", - "parse-conflict-json": "^2.0.2", - "proc-log": "^2.0.1", + "pacote": "^15.1.1", + "parse-conflict-json": "^3.0.1", + "proc-log": "^3.0.0", "qrcode-terminal": "^0.12.0", - "read": "~1.0.7", - "read-package-json": "^5.0.2", - "read-package-json-fast": "^2.0.3", - "readdir-scoped-modules": "^1.1.0", - "rimraf": "^3.0.2", - "semver": "^7.3.7", - "ssri": "^9.0.1", - "tar": "^6.1.11", + "read": "^2.0.0", + "read-package-json": "^6.0.1", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.8", + "ssri": "^10.0.1", + "tar": "^6.1.13", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", - "treeverse": "^2.0.0", - "validate-npm-package-name": "^4.0.0", - "which": "^2.0.2", - "write-file-atomic": "^4.0.1" + "treeverse": "^3.0.0", + "validate-npm-package-name": "^5.0.0", + "which": "^3.0.0", + "write-file-atomic": "^5.0.0" }, "bin": { "npm": "bin/npm-cli.js", "npx": "bin/npx-cli.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm-path": { @@ -12500,86 +12700,72 @@ "license": "ISC" }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "5.6.3", + "version": "6.2.6", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/installed-package-contents": "^1.0.7", - "@npmcli/map-workspaces": "^2.0.3", - "@npmcli/metavuln-calculator": "^3.0.1", - "@npmcli/move-file": "^2.0.0", - "@npmcli/name-from-folder": "^1.0.1", - "@npmcli/node-gyp": "^2.0.0", - "@npmcli/package-json": "^2.0.0", - "@npmcli/query": "^1.2.0", - "@npmcli/run-script": "^4.1.3", - "bin-links": "^3.0.3", - "cacache": "^16.1.3", + "@npmcli/fs": "^3.1.0", + "@npmcli/installed-package-contents": "^2.0.2", + "@npmcli/map-workspaces": "^3.0.2", + "@npmcli/metavuln-calculator": "^5.0.0", + "@npmcli/name-from-folder": "^2.0.0", + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^3.0.0", + "@npmcli/query": "^3.0.0", + "@npmcli/run-script": "^6.0.0", + "bin-links": "^4.0.1", + "cacache": "^17.0.4", "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^5.2.1", - "json-parse-even-better-errors": "^2.3.1", + "hosted-git-info": "^6.1.1", + "json-parse-even-better-errors": "^3.0.0", "json-stringify-nice": "^1.1.4", - "minimatch": "^5.1.0", - "mkdirp": "^1.0.4", - "mkdirp-infer-owner": "^2.0.0", - "nopt": "^6.0.0", - "npm-install-checks": "^5.0.0", - "npm-package-arg": "^9.0.0", - "npm-pick-manifest": "^7.0.2", - "npm-registry-fetch": "^13.0.0", - "npmlog": "^6.0.2", - "pacote": "^13.6.1", - "parse-conflict-json": "^2.0.1", - "proc-log": "^2.0.0", + "minimatch": "^7.4.2", + "nopt": "^7.0.0", + "npm-install-checks": "^6.0.0", + "npm-package-arg": "^10.1.0", + "npm-pick-manifest": "^8.0.1", + "npm-registry-fetch": "^14.0.3", + "npmlog": "^7.0.1", + "pacote": "^15.0.8", + "parse-conflict-json": "^3.0.0", + "proc-log": "^3.0.0", "promise-all-reject-late": "^1.0.0", "promise-call-limit": "^1.0.1", - "read-package-json-fast": "^2.0.2", - "readdir-scoped-modules": "^1.1.0", - "rimraf": "^3.0.2", + "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", - "ssri": "^9.0.0", - "treeverse": "^2.0.0", + "ssri": "^10.0.1", + "treeverse": "^3.0.0", "walk-up-path": "^1.0.0" }, "bin": { "arborist": "bin/index.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/ci-detect": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/config": { - "version": "4.2.2", + "version": "6.1.5", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/map-workspaces": "^2.0.2", + "@npmcli/map-workspaces": "^3.0.2", "ini": "^3.0.0", - "mkdirp-infer-owner": "^2.0.0", - "nopt": "^6.0.0", - "proc-log": "^2.0.0", - "read-package-json-fast": "^2.0.3", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "read-package-json-fast": "^3.0.2", "semver": "^7.3.5", "walk-up-path": "^1.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/disparity-colors": { - "version": "2.0.0", + "version": "3.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -12587,95 +12773,84 @@ "ansi-styles": "^4.3.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/fs": { - "version": "2.1.2", + "version": "3.1.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@gar/promisify": "^1.1.3", "semver": "^7.3.5" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/git": { - "version": "3.0.2", + "version": "4.0.4", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/promise-spawn": "^3.0.0", + "@npmcli/promise-spawn": "^6.0.0", "lru-cache": "^7.4.4", - "mkdirp": "^1.0.4", - "npm-pick-manifest": "^7.0.0", - "proc-log": "^2.0.0", + "npm-pick-manifest": "^8.0.0", + "proc-log": "^3.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", - "which": "^2.0.2" + "which": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/installed-package-contents": { - "version": "1.0.7", + "version": "2.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" }, "bin": { - "installed-package-contents": "index.js" + "installed-package-contents": "lib/index.js" }, "engines": { - "node": ">= 10" - } - }, - "node_modules/npm/node_modules/@npmcli/installed-package-contents/node_modules/npm-bundled": { - "version": "1.1.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/map-workspaces": { - "version": "2.0.4", + "version": "3.0.3", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/name-from-folder": "^1.0.1", - "glob": "^8.0.1", - "minimatch": "^5.0.1", - "read-package-json-fast": "^2.0.3" + "@npmcli/name-from-folder": "^2.0.0", + "glob": "^9.3.1", + "minimatch": "^7.4.2", + "read-package-json-fast": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { - "version": "3.1.1", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "cacache": "^16.0.0", - "json-parse-even-better-errors": "^2.3.1", - "pacote": "^13.0.3", + "cacache": "^17.0.0", + "json-parse-even-better-errors": "^3.0.0", + "pacote": "^15.0.0", "semver": "^7.3.5" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/move-file": { @@ -12692,72 +12867,82 @@ } }, "node_modules/npm/node_modules/@npmcli/name-from-folder": { - "version": "1.0.1", + "version": "2.0.0", "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, "node_modules/npm/node_modules/@npmcli/node-gyp": { - "version": "2.0.0", + "version": "3.0.0", "dev": true, "inBundle": true, "license": "ISC", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/package-json": { - "version": "2.0.0", + "version": "3.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "json-parse-even-better-errors": "^2.3.1" + "json-parse-even-better-errors": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/promise-spawn": { - "version": "3.0.0", + "version": "6.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "infer-owner": "^1.0.4" + "which": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/query": { - "version": "1.2.0", + "version": "3.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-package-arg": "^9.1.0", - "postcss-selector-parser": "^6.0.10", - "semver": "^7.3.7" + "postcss-selector-parser": "^6.0.10" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/run-script": { - "version": "4.2.1", + "version": "6.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/node-gyp": "^2.0.0", - "@npmcli/promise-spawn": "^3.0.0", + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/promise-spawn": "^6.0.0", "node-gyp": "^9.0.0", - "read-package-json-fast": "^2.0.3", - "which": "^2.0.2" + "read-package-json-fast": "^3.0.0", + "which": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/protobuf-specs": { + "version": "0.1.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@tootallnate/once": { @@ -12769,11 +12954,38 @@ "node": ">= 10" } }, + "node_modules/npm/node_modules/@tufjs/models": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minimatch": "^7.4.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/npm/node_modules/abbrev": { - "version": "1.1.1", + "version": "2.0.0", "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/abort-controller": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } }, "node_modules/npm/node_modules/agent-base": { "version": "6.0.2", @@ -12788,13 +13000,13 @@ } }, "node_modules/npm/node_modules/agentkeepalive": { - "version": "4.2.1", + "version": "4.3.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { "debug": "^4.1.0", - "depd": "^1.1.2", + "depd": "^2.0.0", "humanize-ms": "^1.2.1" }, "engines": { @@ -12851,54 +13063,57 @@ "license": "MIT" }, "node_modules/npm/node_modules/are-we-there-yet": { - "version": "3.0.1", + "version": "4.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "readable-stream": "^4.1.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/asap": { - "version": "2.0.6", + "node_modules/npm/node_modules/balanced-match": { + "version": "1.0.2", "dev": true, "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/balanced-match": { - "version": "1.0.2", + "node_modules/npm/node_modules/base64-js": { + "version": "1.5.1", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/bin-links": { - "version": "3.0.3", + "version": "4.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "cmd-shim": "^5.0.0", - "mkdirp-infer-owner": "^2.0.0", - "npm-normalize-package-bin": "^2.0.0", - "read-cmd-shim": "^3.0.0", - "rimraf": "^3.0.0", - "write-file-atomic": "^4.0.0" + "cmd-shim": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "read-cmd-shim": "^4.0.0", + "write-file-atomic": "^5.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/bin-links/node_modules/npm-normalize-package-bin": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/binary-extensions": { @@ -12919,6 +13134,30 @@ "balanced-match": "^1.0.0" } }, + "node_modules/npm/node_modules/buffer": { + "version": "6.0.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/npm/node_modules/builtins": { "version": "5.0.1", "dev": true, @@ -12929,32 +13168,27 @@ } }, "node_modules/npm/node_modules/cacache": { - "version": "16.1.3", + "version": "17.0.5", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^9.3.1", "lru-cache": "^7.7.1", - "minipass": "^3.1.6", + "minipass": "^4.0.0", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", "p-map": "^4.0.0", "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", + "ssri": "^10.0.0", "tar": "^6.1.11", - "unique-filename": "^2.0.0" + "unique-filename": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/chalk": { @@ -12982,6 +13216,21 @@ "node": ">=10" } }, + "node_modules/npm/node_modules/ci-info": { + "version": "3.8.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/npm/node_modules/cidr-regex": { "version": "3.1.1", "dev": true, @@ -13017,7 +13266,7 @@ } }, "node_modules/npm/node_modules/cli-table3": { - "version": "0.6.2", + "version": "0.6.3", "dev": true, "inBundle": true, "license": "MIT", @@ -13041,15 +13290,12 @@ } }, "node_modules/npm/node_modules/cmd-shim": { - "version": "5.0.0", + "version": "6.0.1", "dev": true, "inBundle": true, "license": "ISC", - "dependencies": { - "mkdirp-infer-owner": "^2.0.0" - }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/color-convert": { @@ -13145,22 +13391,16 @@ "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/debuglog": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/npm/node_modules/defaults": { - "version": "1.0.3", + "version": "1.0.4", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/npm/node_modules/delegates": { @@ -13170,22 +13410,12 @@ "license": "MIT" }, "node_modules/npm/node_modules/depd": { - "version": "1.1.2", + "version": "2.0.0", "dev": true, "inBundle": true, "license": "MIT", "engines": { - "node": ">= 0.6" - } - }, - "node_modules/npm/node_modules/dezalgo": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" + "node": ">= 0.8" } }, "node_modules/npm/node_modules/diff": { @@ -13228,22 +13458,43 @@ "inBundle": true, "license": "MIT" }, + "node_modules/npm/node_modules/event-target-shim": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/events": { + "version": "3.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, "node_modules/npm/node_modules/fastest-levenshtein": { - "version": "1.0.12", + "version": "1.0.16", "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } }, "node_modules/npm/node_modules/fs-minipass": { - "version": "2.1.0", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "minipass": "^3.0.0" + "minipass": "^4.0.0" }, "engines": { - "node": ">= 8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/fs.realpath": { @@ -13259,7 +13510,7 @@ "license": "MIT" }, "node_modules/npm/node_modules/gauge": { - "version": "4.0.4", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -13274,30 +13525,29 @@ "wide-align": "^1.1.5" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/glob": { - "version": "8.0.3", + "version": "9.3.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "minimatch": "^7.4.1", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/npm/node_modules/graceful-fs": { - "version": "4.2.10", + "version": "4.2.11", "dev": true, "inBundle": true, "license": "ISC" @@ -13330,7 +13580,7 @@ "license": "ISC" }, "node_modules/npm/node_modules/hosted-git-info": { - "version": "5.2.1", + "version": "6.1.1", "dev": true, "inBundle": true, "license": "ISC", @@ -13338,7 +13588,7 @@ "lru-cache": "^7.5.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/http-cache-semantics": { @@ -13396,16 +13646,36 @@ "node": ">=0.10.0" } }, + "node_modules/npm/node_modules/ieee754": { + "version": "1.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "BSD-3-Clause" + }, "node_modules/npm/node_modules/ignore-walk": { - "version": "5.0.1", + "version": "6.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "minimatch": "^5.0.1" + "minimatch": "^7.4.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/imurmurhash": { @@ -13458,21 +13728,21 @@ } }, "node_modules/npm/node_modules/init-package-json": { - "version": "3.0.2", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-package-arg": "^9.0.1", - "promzard": "^0.3.0", - "read": "^1.0.7", - "read-package-json": "^5.0.0", + "npm-package-arg": "^10.0.0", + "promzard": "^1.0.0", + "read": "^2.0.0", + "read-package-json": "^6.0.0", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^4.0.0" + "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/ip": { @@ -13503,7 +13773,7 @@ } }, "node_modules/npm/node_modules/is-core-module": { - "version": "2.10.0", + "version": "2.11.0", "dev": true, "inBundle": true, "license": "MIT", @@ -13536,10 +13806,13 @@ "license": "ISC" }, "node_modules/npm/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", + "version": "3.0.0", "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, "node_modules/npm/node_modules/json-stringify-nice": { "version": "1.1.4", @@ -13560,187 +13833,188 @@ "license": "MIT" }, "node_modules/npm/node_modules/just-diff": { - "version": "5.1.1", + "version": "6.0.0", "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/just-diff-apply": { - "version": "5.4.1", + "version": "5.5.0", "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/libnpmaccess": { - "version": "6.0.4", + "version": "7.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "aproba": "^2.0.0", - "minipass": "^3.1.1", - "npm-package-arg": "^9.0.1", - "npm-registry-fetch": "^13.0.0" + "npm-package-arg": "^10.1.0", + "npm-registry-fetch": "^14.0.3" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "4.0.5", + "version": "5.0.14", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/disparity-colors": "^2.0.0", - "@npmcli/installed-package-contents": "^1.0.7", + "@npmcli/arborist": "^6.2.6", + "@npmcli/disparity-colors": "^3.0.0", + "@npmcli/installed-package-contents": "^2.0.2", "binary-extensions": "^2.2.0", "diff": "^5.1.0", - "minimatch": "^5.0.1", - "npm-package-arg": "^9.0.1", - "pacote": "^13.6.1", - "tar": "^6.1.0" + "minimatch": "^7.4.2", + "npm-package-arg": "^10.1.0", + "pacote": "^15.0.8", + "tar": "^6.1.13" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "4.0.14", + "version": "5.0.14", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^5.6.3", - "@npmcli/ci-detect": "^2.0.0", - "@npmcli/fs": "^2.1.1", - "@npmcli/run-script": "^4.2.0", + "@npmcli/arborist": "^6.2.6", + "@npmcli/run-script": "^6.0.0", "chalk": "^4.1.0", - "mkdirp-infer-owner": "^2.0.0", - "npm-package-arg": "^9.0.1", - "npmlog": "^6.0.2", - "pacote": "^13.6.1", - "proc-log": "^2.0.0", - "read": "^1.0.7", - "read-package-json-fast": "^2.0.2", + "ci-info": "^3.7.1", + "npm-package-arg": "^10.1.0", + "npmlog": "^7.0.1", + "pacote": "^15.0.8", + "proc-log": "^3.0.0", + "read": "^2.0.0", + "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", "walk-up-path": "^1.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "3.0.5", + "version": "4.0.14", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^5.6.3" + "@npmcli/arborist": "^6.2.6" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmhook": { - "version": "8.0.4", + "version": "9.0.3", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^13.0.0" + "npm-registry-fetch": "^14.0.3" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmorg": { - "version": "4.0.4", + "version": "5.0.3", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^13.0.0" + "npm-registry-fetch": "^14.0.3" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "4.1.3", + "version": "5.0.14", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/run-script": "^4.1.3", - "npm-package-arg": "^9.0.1", - "pacote": "^13.6.1" + "@npmcli/arborist": "^6.2.6", + "@npmcli/run-script": "^6.0.0", + "npm-package-arg": "^10.1.0", + "pacote": "^15.0.8" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmpublish": { - "version": "6.0.5", + "version": "7.1.3", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "normalize-package-data": "^4.0.0", - "npm-package-arg": "^9.0.1", - "npm-registry-fetch": "^13.0.0", + "ci-info": "^3.6.1", + "normalize-package-data": "^5.0.0", + "npm-package-arg": "^10.1.0", + "npm-registry-fetch": "^14.0.3", + "proc-log": "^3.0.0", "semver": "^7.3.7", - "ssri": "^9.0.0" + "sigstore": "^1.0.0", + "ssri": "^10.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmsearch": { - "version": "5.0.4", + "version": "6.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-registry-fetch": "^13.0.0" + "npm-registry-fetch": "^14.0.3" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmteam": { - "version": "4.0.4", + "version": "5.0.3", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^13.0.0" + "npm-registry-fetch": "^14.0.3" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmversion": { - "version": "3.0.7", + "version": "4.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/git": "^3.0.0", - "@npmcli/run-script": "^4.1.3", - "json-parse-even-better-errors": "^2.3.1", - "proc-log": "^2.0.0", + "@npmcli/git": "^4.0.1", + "@npmcli/run-script": "^6.0.0", + "json-parse-even-better-errors": "^3.0.0", + "proc-log": "^3.0.0", "semver": "^7.3.7" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/lru-cache": { - "version": "7.13.2", + "version": "7.18.3", "dev": true, "inBundle": true, "license": "ISC", @@ -13749,34 +14023,33 @@ } }, "node_modules/npm/node_modules/make-fetch-happen": { - "version": "10.2.1", + "version": "11.0.3", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", + "minipass": "^4.0.0", + "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" + "ssri": "^10.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/minimatch": { - "version": "5.1.0", + "version": "7.4.3", "dev": true, "inBundle": true, "license": "ISC", @@ -13785,16 +14058,16 @@ }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/npm/node_modules/minipass": { - "version": "3.3.4", + "version": "4.2.5", "dev": true, "inBundle": true, "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { "node": ">=8" } @@ -13811,18 +14084,30 @@ "node": ">= 8" } }, + "node_modules/npm/node_modules/minipass-collect/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/npm/node_modules/minipass-fetch": { - "version": "2.1.1", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "minipass": "^3.1.6", + "minipass": "^4.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" }, "optionalDependencies": { "encoding": "^0.1.13" @@ -13840,6 +14125,18 @@ "node": ">= 8" } }, + "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/npm/node_modules/minipass-json-stream": { "version": "1.0.1", "dev": true, @@ -13850,6 +14147,18 @@ "minipass": "^3.0.0" } }, + "node_modules/npm/node_modules/minipass-json-stream/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/npm/node_modules/minipass-pipeline": { "version": "1.2.4", "dev": true, @@ -13862,6 +14171,18 @@ "node": ">=8" } }, + "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/npm/node_modules/minipass-sized": { "version": "1.0.3", "dev": true, @@ -13874,6 +14195,18 @@ "node": ">=8" } }, + "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/npm/node_modules/minizlib": { "version": "2.1.2", "dev": true, @@ -13887,27 +14220,25 @@ "node": ">= 8" } }, - "node_modules/npm/node_modules/mkdirp": { - "version": "1.0.4", + "node_modules/npm/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", "dev": true, "inBundle": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/npm/node_modules/mkdirp-infer-owner": { - "version": "2.0.0", + "node_modules/npm/node_modules/mkdirp": { + "version": "1.0.4", "dev": true, "inBundle": true, - "license": "ISC", - "dependencies": { - "chownr": "^2.0.0", - "infer-owner": "^1.0.4", - "mkdirp": "^1.0.3" + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" }, "engines": { "node": ">=10" @@ -13920,10 +14251,13 @@ "license": "MIT" }, "node_modules/npm/node_modules/mute-stream": { - "version": "0.0.8", + "version": "1.0.0", "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, "node_modules/npm/node_modules/negotiator": { "version": "0.6.3", @@ -13935,7 +14269,7 @@ } }, "node_modules/npm/node_modules/node-gyp": { - "version": "9.1.0", + "version": "9.3.1", "dev": true, "inBundle": true, "license": "MIT", @@ -13944,7 +14278,7 @@ "glob": "^7.1.4", "graceful-fs": "^4.2.6", "make-fetch-happen": "^10.0.3", - "nopt": "^5.0.0", + "nopt": "^6.0.0", "npmlog": "^6.0.0", "rimraf": "^3.0.2", "semver": "^7.3.5", @@ -13955,7 +14289,39 @@ "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": "^12.22 || ^14.13 || >=16" + "node": "^12.13 || ^14.13 || >=16" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/@npmcli/fs": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/abbrev": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/node-gyp/node_modules/are-we-there-yet": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/npm/node_modules/node-gyp/node_modules/brace-expansion": { @@ -13968,6 +14334,106 @@ "concat-map": "0.0.1" } }, + "node_modules/npm/node_modules/node-gyp/node_modules/cacache": { + "version": "16.1.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob": { + "version": "8.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch": { + "version": "5.1.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/fs-minipass": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/gauge": { + "version": "4.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/npm/node_modules/node-gyp/node_modules/glob": { "version": "7.2.3", "dev": true, @@ -13988,6 +14454,33 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/npm/node_modules/node-gyp/node_modules/make-fetch-happen": { + "version": "10.2.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/npm/node_modules/node-gyp/node_modules/minimatch": { "version": "3.1.2", "dev": true, @@ -14000,22 +14493,36 @@ "node": "*" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/nopt": { - "version": "5.0.0", + "node_modules/npm/node_modules/node-gyp/node_modules/minipass": { + "version": "3.3.6", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "abbrev": "1" + "yallist": "^4.0.0" }, - "bin": { - "nopt": "bin/nopt.js" + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/minipass-fetch": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" }, "engines": { - "node": ">=6" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" } }, - "node_modules/npm/node_modules/nopt": { + "node_modules/npm/node_modules/node-gyp/node_modules/nopt": { "version": "6.0.0", "dev": true, "inBundle": true, @@ -14030,188 +14537,256 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/npm/node_modules/normalize-package-data": { - "version": "4.0.1", + "node_modules/npm/node_modules/node-gyp/node_modules/npmlog": { + "version": "6.0.2", "dev": true, "inBundle": true, - "license": "BSD-2-Clause", + "license": "ISC", "dependencies": { - "hosted-git-info": "^5.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/npm/node_modules/npm-audit-report": { - "version": "3.0.0", + "node_modules/npm/node_modules/node-gyp/node_modules/readable-stream": { + "version": "3.6.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/ssri": { + "version": "9.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "chalk": "^4.0.0" + "minipass": "^3.1.1" }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/npm/node_modules/npm-bundled": { + "node_modules/npm/node_modules/node-gyp/node_modules/unique-filename": { "version": "2.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-normalize-package-bin": "^2.0.0" + "unique-slug": "^3.0.0" }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/npm/node_modules/npm-bundled/node_modules/npm-normalize-package-bin": { - "version": "2.0.0", + "node_modules/npm/node_modules/node-gyp/node_modules/unique-slug": { + "version": "3.0.0", "dev": true, "inBundle": true, "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/npm/node_modules/npm-install-checks": { - "version": "5.0.0", + "node_modules/npm/node_modules/node-gyp/node_modules/which": { + "version": "2.0.2", "dev": true, "inBundle": true, - "license": "BSD-2-Clause", + "license": "ISC", "dependencies": { - "semver": "^7.1.1" + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">= 8" } }, - "node_modules/npm/node_modules/npm-normalize-package-bin": { - "version": "1.0.1", + "node_modules/npm/node_modules/nopt": { + "version": "7.1.0", "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, - "node_modules/npm/node_modules/npm-package-arg": { - "version": "9.1.0", + "node_modules/npm/node_modules/normalize-package-data": { + "version": "5.0.0", "dev": true, "inBundle": true, - "license": "ISC", + "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", + "hosted-git-info": "^6.0.0", + "is-core-module": "^2.8.1", "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" + "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/npm-packlist": { - "version": "5.1.3", + "node_modules/npm/node_modules/npm-audit-report": { + "version": "4.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "glob": "^8.0.1", - "ignore-walk": "^5.0.1", - "npm-bundled": "^2.0.0", - "npm-normalize-package-bin": "^2.0.0" + "chalk": "^4.0.0" }, - "bin": { - "npm-packlist": "bin/index.js" + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-bundled": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/npm-packlist/node_modules/npm-normalize-package-bin": { - "version": "2.0.0", + "node_modules/npm/node_modules/npm-install-checks": { + "version": "6.1.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "3.0.0", "dev": true, "inBundle": true, "license": "ISC", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/npm-pick-manifest": { - "version": "7.0.2", + "node_modules/npm/node_modules/npm-package-arg": { + "version": "10.1.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-install-checks": "^5.0.0", - "npm-normalize-package-bin": "^2.0.0", - "npm-package-arg": "^9.0.0", - "semver": "^7.3.5" + "hosted-git-info": "^6.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/npm-pick-manifest/node_modules/npm-normalize-package-bin": { - "version": "2.0.0", + "node_modules/npm/node_modules/npm-packlist": { + "version": "7.0.4", "dev": true, "inBundle": true, "license": "ISC", + "dependencies": { + "ignore-walk": "^6.0.0" + }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-pick-manifest": { + "version": "8.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^10.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/npm-profile": { - "version": "6.2.1", + "version": "7.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-registry-fetch": "^13.0.1", - "proc-log": "^2.0.0" + "npm-registry-fetch": "^14.0.0", + "proc-log": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/npm-registry-fetch": { - "version": "13.3.1", + "version": "14.0.3", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "make-fetch-happen": "^10.0.6", - "minipass": "^3.1.6", - "minipass-fetch": "^2.0.3", + "make-fetch-happen": "^11.0.0", + "minipass": "^4.0.0", + "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", - "npm-package-arg": "^9.0.1", - "proc-log": "^2.0.0" + "npm-package-arg": "^10.0.0", + "proc-log": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/npm-user-validate": { - "version": "1.0.1", + "version": "2.0.0", "dev": true, "inBundle": true, - "license": "BSD-2-Clause" + "license": "BSD-2-Clause", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, "node_modules/npm/node_modules/npmlog": { - "version": "6.0.2", + "version": "7.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "are-we-there-yet": "^3.0.0", + "are-we-there-yet": "^4.0.0", "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", + "gauge": "^5.0.0", "set-blocking": "^2.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/once": { @@ -14223,15 +14798,6 @@ "wrappy": "1" } }, - "node_modules/npm/node_modules/opener": { - "version": "1.5.2", - "dev": true, - "inBundle": true, - "license": "(WTFPL OR MIT)", - "bin": { - "opener": "bin/opener-bin.js" - } - }, "node_modules/npm/node_modules/p-map": { "version": "4.0.0", "dev": true, @@ -14248,52 +14814,49 @@ } }, "node_modules/npm/node_modules/pacote": { - "version": "13.6.2", + "version": "15.1.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/git": "^3.0.0", - "@npmcli/installed-package-contents": "^1.0.7", - "@npmcli/promise-spawn": "^3.0.0", - "@npmcli/run-script": "^4.1.0", - "cacache": "^16.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "infer-owner": "^1.0.4", - "minipass": "^3.1.6", - "mkdirp": "^1.0.4", - "npm-package-arg": "^9.0.0", - "npm-packlist": "^5.1.0", - "npm-pick-manifest": "^7.0.0", - "npm-registry-fetch": "^13.0.1", - "proc-log": "^2.0.0", + "@npmcli/git": "^4.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/promise-spawn": "^6.0.1", + "@npmcli/run-script": "^6.0.0", + "cacache": "^17.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^4.0.0", + "npm-package-arg": "^10.0.0", + "npm-packlist": "^7.0.0", + "npm-pick-manifest": "^8.0.0", + "npm-registry-fetch": "^14.0.0", + "proc-log": "^3.0.0", "promise-retry": "^2.0.1", - "read-package-json": "^5.0.0", - "read-package-json-fast": "^2.0.3", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", + "read-package-json": "^6.0.0", + "read-package-json-fast": "^3.0.0", + "sigstore": "^1.0.0", + "ssri": "^10.0.0", "tar": "^6.1.11" }, "bin": { "pacote": "lib/bin.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/parse-conflict-json": { - "version": "2.0.2", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "json-parse-even-better-errors": "^2.3.1", - "just-diff": "^5.0.1", + "json-parse-even-better-errors": "^3.0.0", + "just-diff": "^6.0.0", "just-diff-apply": "^5.2.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/path-is-absolute": { @@ -14305,8 +14868,24 @@ "node": ">=0.10.0" } }, + "node_modules/npm/node_modules/path-scurry": { + "version": "1.6.1", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^7.14.1", + "minipass": "^4.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/npm/node_modules/postcss-selector-parser": { - "version": "6.0.10", + "version": "6.0.11", "dev": true, "inBundle": true, "license": "MIT", @@ -14319,12 +14898,21 @@ } }, "node_modules/npm/node_modules/proc-log": { - "version": "2.0.1", + "version": "3.0.0", "dev": true, "inBundle": true, "license": "ISC", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/process": { + "version": "0.11.10", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" } }, "node_modules/npm/node_modules/promise-all-reject-late": { @@ -14365,12 +14953,15 @@ } }, "node_modules/npm/node_modules/promzard": { - "version": "0.3.0", + "version": "1.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "read": "1" + "read": "^2.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/qrcode-terminal": { @@ -14382,87 +14973,67 @@ } }, "node_modules/npm/node_modules/read": { - "version": "1.0.7", + "version": "2.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "mute-stream": "~0.0.4" + "mute-stream": "~1.0.0" }, "engines": { - "node": ">=0.8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/read-cmd-shim": { - "version": "3.0.0", + "version": "4.0.0", "dev": true, "inBundle": true, "license": "ISC", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/read-package-json": { - "version": "5.0.2", + "version": "6.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "glob": "^8.0.1", - "json-parse-even-better-errors": "^2.3.1", - "normalize-package-data": "^4.0.0", - "npm-normalize-package-bin": "^2.0.0" + "glob": "^9.3.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^5.0.0", + "npm-normalize-package-bin": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/read-package-json-fast": { - "version": "2.0.3", + "version": "3.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "json-parse-even-better-errors": "^2.3.0", - "npm-normalize-package-bin": "^1.0.1" + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" }, "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/read-package-json/node_modules/npm-normalize-package-bin": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/readable-stream": { - "version": "3.6.0", + "version": "4.3.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" }, "engines": { - "node": ">= 6" - } - }, - "node_modules/npm/node_modules/readdir-scoped-modules": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/npm/node_modules/retry": { @@ -14532,22 +15103,8 @@ } }, "node_modules/npm/node_modules/safe-buffer": { - "version": "5.2.1", + "version": "5.1.2", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "inBundle": true, "license": "MIT" }, @@ -14559,7 +15116,7 @@ "optional": true }, "node_modules/npm/node_modules/semver": { - "version": "7.3.7", + "version": "7.3.8", "dev": true, "inBundle": true, "license": "ISC", @@ -14597,6 +15154,23 @@ "inBundle": true, "license": "ISC" }, + "node_modules/npm/node_modules/sigstore": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.1.0", + "make-fetch-happen": "^11.0.1", + "tuf-js": "^1.0.0" + }, + "bin": { + "sigstore": "bin/sigstore.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/npm/node_modules/smart-buffer": { "version": "4.2.0", "dev": true, @@ -14608,7 +15182,7 @@ } }, "node_modules/npm/node_modules/socks": { - "version": "2.7.0", + "version": "2.7.1", "dev": true, "inBundle": true, "license": "MIT", @@ -14636,7 +15210,7 @@ } }, "node_modules/npm/node_modules/spdx-correct": { - "version": "3.1.1", + "version": "3.2.0", "dev": true, "inBundle": true, "license": "Apache-2.0", @@ -14662,30 +15236,30 @@ } }, "node_modules/npm/node_modules/spdx-license-ids": { - "version": "3.0.11", + "version": "3.0.13", "dev": true, "inBundle": true, "license": "CC0-1.0" }, "node_modules/npm/node_modules/ssri": { - "version": "9.0.1", + "version": "10.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "minipass": "^3.1.1" + "minipass": "^4.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/string_decoder": { - "version": "1.3.0", + "version": "1.1.1", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "safe-buffer": "~5.2.0" + "safe-buffer": "~5.1.0" } }, "node_modules/npm/node_modules/string-width": { @@ -14727,20 +15301,44 @@ } }, "node_modules/npm/node_modules/tar": { - "version": "6.1.11", + "version": "6.1.13", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", + "minipass": "^4.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": ">=10" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/npm/node_modules/text-table": { @@ -14756,28 +15354,41 @@ "license": "MIT" }, "node_modules/npm/node_modules/treeverse": { - "version": "2.0.0", + "version": "3.0.0", "dev": true, "inBundle": true, "license": "ISC", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/models": "1.0.1", + "make-fetch-happen": "^11.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/unique-filename": { - "version": "2.0.1", + "version": "3.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "unique-slug": "^3.0.0" + "unique-slug": "^4.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/unique-slug": { - "version": "3.0.0", + "version": "4.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -14785,7 +15396,7 @@ "imurmurhash": "^0.1.4" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/util-deprecate": { @@ -14805,7 +15416,7 @@ } }, "node_modules/npm/node_modules/validate-npm-package-name": { - "version": "4.0.0", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -14813,7 +15424,7 @@ "builtins": "^5.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/walk-up-path": { @@ -14832,7 +15443,7 @@ } }, "node_modules/npm/node_modules/which": { - "version": "2.0.2", + "version": "3.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -14840,10 +15451,10 @@ "isexe": "^2.0.0" }, "bin": { - "node-which": "bin/node-which" + "node-which": "bin/which.js" }, "engines": { - "node": ">= 8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/wide-align": { @@ -14862,7 +15473,7 @@ "license": "ISC" }, "node_modules/npm/node_modules/write-file-atomic": { - "version": "4.0.2", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -14871,7 +15482,7 @@ "signal-exit": "^3.0.7" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/yallist": { @@ -16833,9 +17444,9 @@ "dev": true }, "node_modules/rimraf": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.0.tgz", - "integrity": "sha512-X36S+qpCUR0HjXlkDe4NAOhS//aHH0Z+h8Ckf2auGJk3PTnx5rLmrHkwNdbVQuCSUhOyFrlRvFEllZOYE+yZGQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", "dev": true, "dependencies": { "glob": "^9.2.0" @@ -16983,15 +17594,15 @@ "dev": true }, "node_modules/semantic-release": { - "version": "20.1.1", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-20.1.1.tgz", - "integrity": "sha512-jXDr8y7ozo42N4+G9m/P5Qyx5oQO4aOS66a+Up8XECzEOFIpEoo3ngnr4R5lSix/sVJW69/fgNkOUZhsGFiQ5g==", + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-21.0.0.tgz", + "integrity": "sha512-zks0jVk2Hbyhn014vshcwQ6e6gM9jDPr8SdujqfAzPJBvvvSXa8GHz/x+W0VaW2aBNawWFAlx6N45dp1H1XCCw==", "dev": true, "dependencies": { "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/error": "^3.0.0", "@semantic-release/github": "^8.0.0", - "@semantic-release/npm": "^9.0.0", + "@semantic-release/npm": "^10.0.2", "@semantic-release/release-notes-generator": "^10.0.0", "aggregate-error": "^4.0.1", "cosmiconfig": "^8.0.0", @@ -18717,43 +19328,42 @@ } }, "node_modules/tempy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz", - "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.0.0.tgz", + "integrity": "sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==", "dev": true, "dependencies": { - "del": "^6.0.0", - "is-stream": "^2.0.0", + "is-stream": "^3.0.0", "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" + "type-fest": "^2.12.2", + "unique-string": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/tempy/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/tempy/node_modules/type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true, "engines": { - "node": ">=10" + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -19091,16 +19701,16 @@ } }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.3.tgz", + "integrity": "sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=12.20" } }, "node_modules/uglify-js": { @@ -19220,15 +19830,18 @@ } }, "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", "dev": true, "dependencies": { - "crypto-random-string": "^2.0.0" + "crypto-random-string": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/universal-user-agent": { @@ -21291,6 +21904,12 @@ "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==", "dev": true + }, + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true } } }, @@ -21328,14 +21947,14 @@ "dev": true }, "@eslint/eslintrc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz", - "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.0", + "espree": "^9.5.1", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -21393,9 +22012,9 @@ } }, "@eslint/js": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz", - "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.37.0.tgz", + "integrity": "sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==", "dev": true }, "@gar/promisify": { @@ -22190,41 +22809,66 @@ } }, "@semantic-release/npm": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-9.0.2.tgz", - "integrity": "sha512-zgsynF6McdzxPnFet+a4iO9HpAlARXOM5adz7VGVCvj0ne8wtL2ZOQoDV2wZPDmdEotDIbVeJjafhelZjs9j6g==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-10.0.2.tgz", + "integrity": "sha512-Mo0XoBza4pUapxiBhLLYXeSZ9tkuHDUd/WvMbpilwuPRfJDnQXMqx5tBVon8d2mBk8JXmXpqB+ExhlWJmVT40A==", "dev": true, "requires": { "@semantic-release/error": "^3.0.0", - "aggregate-error": "^3.0.0", - "execa": "^5.0.0", + "aggregate-error": "^4.0.1", + "execa": "^7.0.0", "fs-extra": "^11.0.0", - "lodash": "^4.17.15", + "lodash-es": "^4.17.21", "nerf-dart": "^1.0.0", - "normalize-url": "^6.0.0", - "npm": "^8.3.0", + "normalize-url": "^8.0.0", + "npm": "^9.5.0", "rc": "^1.2.8", - "read-pkg": "^5.0.0", + "read-pkg": "^7.0.0", "registry-auth-token": "^5.0.0", "semver": "^7.1.2", - "tempy": "^1.0.0" + "tempy": "^3.0.0" }, "dependencies": { + "aggregate-error": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", + "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "dev": true, + "requires": { + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" + } + }, + "clean-stack": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", + "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "dev": true, + "requires": { + "escape-string-regexp": "5.0.0" + } + }, + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true + }, "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", + "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", "dev": true, "requires": { "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" } }, "get-stream": { @@ -22233,20 +22877,89 @@ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, + "human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true + }, + "indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true + }, "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true }, "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", "dev": true, "requires": { - "path-key": "^3.0.0" + "path-key": "^4.0.0" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true + }, + "read-pkg": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", + "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^2.0.0" } + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + }, + "type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true } } }, @@ -22361,15 +23074,64 @@ } }, "@typescript-eslint/parser": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.55.0.tgz", - "integrity": "sha512-ppvmeF7hvdhUUZWSd2EEWfzcFkjJzgNQzVST22nzg958CR+sphy8A6K7LXQZd6V75m1VKjp+J4g/PCEfSCmzhw==", + "version": "5.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.57.0.tgz", + "integrity": "sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.55.0", - "@typescript-eslint/types": "5.55.0", - "@typescript-eslint/typescript-estree": "5.55.0", + "@typescript-eslint/scope-manager": "5.57.0", + "@typescript-eslint/types": "5.57.0", + "@typescript-eslint/typescript-estree": "5.57.0", "debug": "^4.3.4" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.57.0.tgz", + "integrity": "sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.57.0", + "@typescript-eslint/visitor-keys": "5.57.0" + } + }, + "@typescript-eslint/types": { + "version": "5.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.57.0.tgz", + "integrity": "sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.57.0.tgz", + "integrity": "sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.57.0", + "@typescript-eslint/visitor-keys": "5.57.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.57.0.tgz", + "integrity": "sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.57.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "dev": true + } } }, "@typescript-eslint/scope-manager": { @@ -23770,10 +24532,21 @@ } }, "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "dev": true, + "requires": { + "type-fest": "^1.0.1" + }, + "dependencies": { + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + } + } }, "cssom": { "version": "0.3.8", @@ -23955,53 +24728,6 @@ "isobject": "^3.0.1" } }, - "del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "dev": true, - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -24507,15 +25233,15 @@ } }, "eslint": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz", - "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.1", - "@eslint/js": "8.36.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.37.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -24526,8 +25252,8 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.5.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -24605,9 +25331,9 @@ } }, "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true }, "find-up": { @@ -25164,9 +25890,9 @@ "requires": {} }, "eslint-plugin-typescript-sort-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-typescript-sort-keys/-/eslint-plugin-typescript-sort-keys-2.1.0.tgz", - "integrity": "sha512-ET7ABypdz19m47QnKynzNfWPi4CTNQ5jQQC1X5d0gojIwblkbGiCa5IilsqzBTmqxZ0yXDqKBO/GBkBFQCOFsg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-typescript-sort-keys/-/eslint-plugin-typescript-sort-keys-2.3.0.tgz", + "integrity": "sha512-3LAcYulo5gNYiPWee+TksITfvWeBuBjGgcSLTacPESFVKEoy8laOQuZvJlSCwTBHT2SCGIxr3bJ56zuux+3MCQ==", "dev": true, "requires": { "@typescript-eslint/experimental-utils": "^5.0.0", @@ -25262,20 +25988,20 @@ "dev": true }, "espree": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz", - "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", "dev": true, "requires": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true } } @@ -27109,12 +27835,6 @@ "obj-props": "^1.0.0" } }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true - }, "is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -29010,90 +29730,83 @@ "dev": true }, "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", "dev": true }, "npm": { - "version": "8.19.4", - "resolved": "https://registry.npmjs.org/npm/-/npm-8.19.4.tgz", - "integrity": "sha512-3HANl8i9DKnUA89P4KEgVNN28EjSeDCmvEqbzOAuxCFDzdBZzjUl99zgnGpOUumvW5lvJo2HKcjrsc+tfyv1Hw==", + "version": "9.6.3", + "resolved": "https://registry.npmjs.org/npm/-/npm-9.6.3.tgz", + "integrity": "sha512-KMAw6cJF5JGPJz/NtsU8H1sMqb34qPGnSMaSWrVO8bzxOdAXJNAtDXATvLl0lflrImIze1FZCqocM8wdIu3Sfg==", "dev": true, "requires": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^5.6.3", - "@npmcli/ci-detect": "^2.0.0", - "@npmcli/config": "^4.2.1", - "@npmcli/fs": "^2.1.0", - "@npmcli/map-workspaces": "^2.0.3", - "@npmcli/package-json": "^2.0.0", - "@npmcli/run-script": "^4.2.1", - "abbrev": "~1.1.1", + "@npmcli/arborist": "^6.2.6", + "@npmcli/config": "^6.1.5", + "@npmcli/map-workspaces": "^3.0.3", + "@npmcli/package-json": "^3.0.0", + "@npmcli/run-script": "^6.0.0", + "abbrev": "^2.0.0", "archy": "~1.0.0", - "cacache": "^16.1.3", + "cacache": "^17.0.5", "chalk": "^4.1.2", - "chownr": "^2.0.0", + "ci-info": "^3.8.0", "cli-columns": "^4.0.0", - "cli-table3": "^0.6.2", + "cli-table3": "^0.6.3", "columnify": "^1.6.0", - "fastest-levenshtein": "^1.0.12", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "graceful-fs": "^4.2.10", - "hosted-git-info": "^5.2.1", + "fastest-levenshtein": "^1.0.16", + "fs-minipass": "^3.0.1", + "glob": "^9.3.1", + "graceful-fs": "^4.2.11", + "hosted-git-info": "^6.1.1", "ini": "^3.0.1", - "init-package-json": "^3.0.2", + "init-package-json": "^5.0.0", "is-cidr": "^4.0.2", - "json-parse-even-better-errors": "^2.3.1", - "libnpmaccess": "^6.0.4", - "libnpmdiff": "^4.0.5", - "libnpmexec": "^4.0.14", - "libnpmfund": "^3.0.5", - "libnpmhook": "^8.0.4", - "libnpmorg": "^4.0.4", - "libnpmpack": "^4.1.3", - "libnpmpublish": "^6.0.5", - "libnpmsearch": "^5.0.4", - "libnpmteam": "^4.0.4", - "libnpmversion": "^3.0.7", - "make-fetch-happen": "^10.2.0", - "minimatch": "^5.1.0", - "minipass": "^3.1.6", + "json-parse-even-better-errors": "^3.0.0", + "libnpmaccess": "^7.0.2", + "libnpmdiff": "^5.0.14", + "libnpmexec": "^5.0.14", + "libnpmfund": "^4.0.14", + "libnpmhook": "^9.0.3", + "libnpmorg": "^5.0.3", + "libnpmpack": "^5.0.14", + "libnpmpublish": "^7.1.3", + "libnpmsearch": "^6.0.2", + "libnpmteam": "^5.0.3", + "libnpmversion": "^4.0.2", + "make-fetch-happen": "^11.0.3", + "minimatch": "^7.4.3", + "minipass": "^4.2.5", "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "mkdirp-infer-owner": "^2.0.0", "ms": "^2.1.2", - "node-gyp": "^9.1.0", - "nopt": "^6.0.0", - "npm-audit-report": "^3.0.0", - "npm-install-checks": "^5.0.0", - "npm-package-arg": "^9.1.0", - "npm-pick-manifest": "^7.0.2", - "npm-profile": "^6.2.0", - "npm-registry-fetch": "^13.3.1", - "npm-user-validate": "^1.0.1", - "npmlog": "^6.0.2", - "opener": "^1.5.2", + "node-gyp": "^9.3.1", + "nopt": "^7.1.0", + "npm-audit-report": "^4.0.0", + "npm-install-checks": "^6.1.0", + "npm-package-arg": "^10.1.0", + "npm-pick-manifest": "^8.0.1", + "npm-profile": "^7.0.1", + "npm-registry-fetch": "^14.0.3", + "npm-user-validate": "^2.0.0", + "npmlog": "^7.0.1", "p-map": "^4.0.0", - "pacote": "^13.6.2", - "parse-conflict-json": "^2.0.2", - "proc-log": "^2.0.1", + "pacote": "^15.1.1", + "parse-conflict-json": "^3.0.1", + "proc-log": "^3.0.0", "qrcode-terminal": "^0.12.0", - "read": "~1.0.7", - "read-package-json": "^5.0.2", - "read-package-json-fast": "^2.0.3", - "readdir-scoped-modules": "^1.1.0", - "rimraf": "^3.0.2", - "semver": "^7.3.7", - "ssri": "^9.0.1", - "tar": "^6.1.11", + "read": "^2.0.0", + "read-package-json": "^6.0.1", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.8", + "ssri": "^10.0.1", + "tar": "^6.1.13", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", - "treeverse": "^2.0.0", - "validate-npm-package-name": "^4.0.0", - "which": "^2.0.2", - "write-file-atomic": "^4.0.1" + "treeverse": "^3.0.0", + "validate-npm-package-name": "^5.0.0", + "which": "^3.0.0", + "write-file-atomic": "^5.0.0" }, "dependencies": { "@colors/colors": { @@ -29113,71 +29826,61 @@ "dev": true }, "@npmcli/arborist": { - "version": "5.6.3", + "version": "6.2.6", "bundled": true, "dev": true, "requires": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/installed-package-contents": "^1.0.7", - "@npmcli/map-workspaces": "^2.0.3", - "@npmcli/metavuln-calculator": "^3.0.1", - "@npmcli/move-file": "^2.0.0", - "@npmcli/name-from-folder": "^1.0.1", - "@npmcli/node-gyp": "^2.0.0", - "@npmcli/package-json": "^2.0.0", - "@npmcli/query": "^1.2.0", - "@npmcli/run-script": "^4.1.3", - "bin-links": "^3.0.3", - "cacache": "^16.1.3", + "@npmcli/fs": "^3.1.0", + "@npmcli/installed-package-contents": "^2.0.2", + "@npmcli/map-workspaces": "^3.0.2", + "@npmcli/metavuln-calculator": "^5.0.0", + "@npmcli/name-from-folder": "^2.0.0", + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^3.0.0", + "@npmcli/query": "^3.0.0", + "@npmcli/run-script": "^6.0.0", + "bin-links": "^4.0.1", + "cacache": "^17.0.4", "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^5.2.1", - "json-parse-even-better-errors": "^2.3.1", + "hosted-git-info": "^6.1.1", + "json-parse-even-better-errors": "^3.0.0", "json-stringify-nice": "^1.1.4", - "minimatch": "^5.1.0", - "mkdirp": "^1.0.4", - "mkdirp-infer-owner": "^2.0.0", - "nopt": "^6.0.0", - "npm-install-checks": "^5.0.0", - "npm-package-arg": "^9.0.0", - "npm-pick-manifest": "^7.0.2", - "npm-registry-fetch": "^13.0.0", - "npmlog": "^6.0.2", - "pacote": "^13.6.1", - "parse-conflict-json": "^2.0.1", - "proc-log": "^2.0.0", + "minimatch": "^7.4.2", + "nopt": "^7.0.0", + "npm-install-checks": "^6.0.0", + "npm-package-arg": "^10.1.0", + "npm-pick-manifest": "^8.0.1", + "npm-registry-fetch": "^14.0.3", + "npmlog": "^7.0.1", + "pacote": "^15.0.8", + "parse-conflict-json": "^3.0.0", + "proc-log": "^3.0.0", "promise-all-reject-late": "^1.0.0", "promise-call-limit": "^1.0.1", - "read-package-json-fast": "^2.0.2", - "readdir-scoped-modules": "^1.1.0", - "rimraf": "^3.0.2", + "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", - "ssri": "^9.0.0", - "treeverse": "^2.0.0", + "ssri": "^10.0.1", + "treeverse": "^3.0.0", "walk-up-path": "^1.0.0" } }, - "@npmcli/ci-detect": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, "@npmcli/config": { - "version": "4.2.2", + "version": "6.1.5", "bundled": true, "dev": true, "requires": { - "@npmcli/map-workspaces": "^2.0.2", + "@npmcli/map-workspaces": "^3.0.2", "ini": "^3.0.0", - "mkdirp-infer-owner": "^2.0.0", - "nopt": "^6.0.0", - "proc-log": "^2.0.0", - "read-package-json-fast": "^2.0.3", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "read-package-json-fast": "^3.0.2", "semver": "^7.3.5", "walk-up-path": "^1.0.0" } }, "@npmcli/disparity-colors": { - "version": "2.0.0", + "version": "3.0.0", "bundled": true, "dev": true, "requires": { @@ -29185,68 +29888,56 @@ } }, "@npmcli/fs": { - "version": "2.1.2", + "version": "3.1.0", "bundled": true, "dev": true, "requires": { - "@gar/promisify": "^1.1.3", "semver": "^7.3.5" } }, "@npmcli/git": { - "version": "3.0.2", + "version": "4.0.4", "bundled": true, "dev": true, "requires": { - "@npmcli/promise-spawn": "^3.0.0", + "@npmcli/promise-spawn": "^6.0.0", "lru-cache": "^7.4.4", - "mkdirp": "^1.0.4", - "npm-pick-manifest": "^7.0.0", - "proc-log": "^2.0.0", + "npm-pick-manifest": "^8.0.0", + "proc-log": "^3.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", - "which": "^2.0.2" + "which": "^3.0.0" } }, "@npmcli/installed-package-contents": { - "version": "1.0.7", + "version": "2.0.2", "bundled": true, "dev": true, "requires": { - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - }, - "dependencies": { - "npm-bundled": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - } + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" } }, "@npmcli/map-workspaces": { - "version": "2.0.4", + "version": "3.0.3", "bundled": true, "dev": true, "requires": { - "@npmcli/name-from-folder": "^1.0.1", - "glob": "^8.0.1", - "minimatch": "^5.0.1", - "read-package-json-fast": "^2.0.3" + "@npmcli/name-from-folder": "^2.0.0", + "glob": "^9.3.1", + "minimatch": "^7.4.2", + "read-package-json-fast": "^3.0.0" } }, "@npmcli/metavuln-calculator": { - "version": "3.1.1", + "version": "5.0.0", "bundled": true, "dev": true, "requires": { - "cacache": "^16.0.0", - "json-parse-even-better-errors": "^2.3.1", - "pacote": "^13.0.3", + "cacache": "^17.0.0", + "json-parse-even-better-errors": "^3.0.0", + "pacote": "^15.0.0", "semver": "^7.3.5" } }, @@ -29260,63 +29951,82 @@ } }, "@npmcli/name-from-folder": { - "version": "1.0.1", + "version": "2.0.0", "bundled": true, "dev": true }, "@npmcli/node-gyp": { - "version": "2.0.0", + "version": "3.0.0", "bundled": true, "dev": true }, "@npmcli/package-json": { - "version": "2.0.0", + "version": "3.0.0", "bundled": true, "dev": true, "requires": { - "json-parse-even-better-errors": "^2.3.1" + "json-parse-even-better-errors": "^3.0.0" } }, "@npmcli/promise-spawn": { - "version": "3.0.0", + "version": "6.0.2", "bundled": true, "dev": true, "requires": { - "infer-owner": "^1.0.4" + "which": "^3.0.0" } }, "@npmcli/query": { - "version": "1.2.0", + "version": "3.0.0", "bundled": true, "dev": true, "requires": { - "npm-package-arg": "^9.1.0", - "postcss-selector-parser": "^6.0.10", - "semver": "^7.3.7" + "postcss-selector-parser": "^6.0.10" } }, "@npmcli/run-script": { - "version": "4.2.1", + "version": "6.0.0", "bundled": true, "dev": true, "requires": { - "@npmcli/node-gyp": "^2.0.0", - "@npmcli/promise-spawn": "^3.0.0", + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/promise-spawn": "^6.0.0", "node-gyp": "^9.0.0", - "read-package-json-fast": "^2.0.3", - "which": "^2.0.2" + "read-package-json-fast": "^3.0.0", + "which": "^3.0.0" } }, + "@sigstore/protobuf-specs": { + "version": "0.1.0", + "bundled": true, + "dev": true + }, "@tootallnate/once": { "version": "2.0.0", "bundled": true, "dev": true }, + "@tufjs/models": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "minimatch": "^7.4.2" + } + }, "abbrev": { - "version": "1.1.1", + "version": "2.0.0", "bundled": true, "dev": true }, + "abort-controller": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "event-target-shim": "^5.0.0" + } + }, "agent-base": { "version": "6.0.2", "bundled": true, @@ -29326,12 +30036,12 @@ } }, "agentkeepalive": { - "version": "4.2.1", + "version": "4.3.0", "bundled": true, "dev": true, "requires": { "debug": "^4.1.0", - "depd": "^1.1.2", + "depd": "^2.0.0", "humanize-ms": "^1.2.1" } }, @@ -29368,42 +30078,33 @@ "dev": true }, "are-we-there-yet": { - "version": "3.0.1", + "version": "4.0.0", "bundled": true, "dev": true, "requires": { "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "readable-stream": "^4.1.0" } }, - "asap": { - "version": "2.0.6", + "balanced-match": { + "version": "1.0.2", "bundled": true, "dev": true }, - "balanced-match": { - "version": "1.0.2", + "base64-js": { + "version": "1.5.1", "bundled": true, "dev": true }, "bin-links": { - "version": "3.0.3", + "version": "4.0.1", "bundled": true, "dev": true, "requires": { - "cmd-shim": "^5.0.0", - "mkdirp-infer-owner": "^2.0.0", - "npm-normalize-package-bin": "^2.0.0", - "read-cmd-shim": "^3.0.0", - "rimraf": "^3.0.0", - "write-file-atomic": "^4.0.0" - }, - "dependencies": { - "npm-normalize-package-bin": { - "version": "2.0.0", - "bundled": true, - "dev": true - } + "cmd-shim": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "read-cmd-shim": "^4.0.0", + "write-file-atomic": "^5.0.0" } }, "binary-extensions": { @@ -29419,6 +30120,15 @@ "balanced-match": "^1.0.0" } }, + "buffer": { + "version": "6.0.3", + "bundled": true, + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "builtins": { "version": "5.0.1", "bundled": true, @@ -29428,28 +30138,23 @@ } }, "cacache": { - "version": "16.1.3", + "version": "17.0.5", "bundled": true, "dev": true, "requires": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^9.3.1", "lru-cache": "^7.7.1", - "minipass": "^3.1.6", + "minipass": "^4.0.0", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", "p-map": "^4.0.0", "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", + "ssri": "^10.0.0", "tar": "^6.1.11", - "unique-filename": "^2.0.0" + "unique-filename": "^3.0.0" } }, "chalk": { @@ -29466,6 +30171,11 @@ "bundled": true, "dev": true }, + "ci-info": { + "version": "3.8.0", + "bundled": true, + "dev": true + }, "cidr-regex": { "version": "3.1.1", "bundled": true, @@ -29489,7 +30199,7 @@ } }, "cli-table3": { - "version": "0.6.2", + "version": "0.6.3", "bundled": true, "dev": true, "requires": { @@ -29503,12 +30213,9 @@ "dev": true }, "cmd-shim": { - "version": "5.0.0", + "version": "6.0.1", "bundled": true, - "dev": true, - "requires": { - "mkdirp-infer-owner": "^2.0.0" - } + "dev": true }, "color-convert": { "version": "2.0.1", @@ -29572,13 +30279,8 @@ } } }, - "debuglog": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, "defaults": { - "version": "1.0.3", + "version": "1.0.4", "bundled": true, "dev": true, "requires": { @@ -29591,19 +30293,10 @@ "dev": true }, "depd": { - "version": "1.1.2", + "version": "2.0.0", "bundled": true, "dev": true }, - "dezalgo": { - "version": "1.0.4", - "bundled": true, - "dev": true, - "requires": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, "diff": { "version": "5.1.0", "bundled": true, @@ -29633,17 +30326,27 @@ "bundled": true, "dev": true }, + "event-target-shim": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "events": { + "version": "3.3.0", + "bundled": true, + "dev": true + }, "fastest-levenshtein": { - "version": "1.0.12", + "version": "1.0.16", "bundled": true, "dev": true }, "fs-minipass": { - "version": "2.1.0", + "version": "3.0.1", "bundled": true, "dev": true, "requires": { - "minipass": "^3.0.0" + "minipass": "^4.0.0" } }, "fs.realpath": { @@ -29657,7 +30360,7 @@ "dev": true }, "gauge": { - "version": "4.0.4", + "version": "5.0.0", "bundled": true, "dev": true, "requires": { @@ -29672,19 +30375,18 @@ } }, "glob": { - "version": "8.0.3", + "version": "9.3.1", "bundled": true, "dev": true, "requires": { "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "minimatch": "^7.4.1", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" } }, "graceful-fs": { - "version": "4.2.10", + "version": "4.2.11", "bundled": true, "dev": true }, @@ -29707,7 +30409,7 @@ "dev": true }, "hosted-git-info": { - "version": "5.2.1", + "version": "6.1.1", "bundled": true, "dev": true, "requires": { @@ -29755,12 +30457,17 @@ "safer-buffer": ">= 2.1.2 < 3.0.0" } }, + "ieee754": { + "version": "1.2.1", + "bundled": true, + "dev": true + }, "ignore-walk": { - "version": "5.0.1", + "version": "6.0.2", "bundled": true, "dev": true, "requires": { - "minimatch": "^5.0.1" + "minimatch": "^7.4.2" } }, "imurmurhash": { @@ -29798,17 +30505,17 @@ "dev": true }, "init-package-json": { - "version": "3.0.2", + "version": "5.0.0", "bundled": true, "dev": true, "requires": { - "npm-package-arg": "^9.0.1", - "promzard": "^0.3.0", - "read": "^1.0.7", - "read-package-json": "^5.0.0", + "npm-package-arg": "^10.0.0", + "promzard": "^1.0.0", + "read": "^2.0.0", + "read-package-json": "^6.0.0", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^4.0.0" + "validate-npm-package-name": "^5.0.0" } }, "ip": { @@ -29830,7 +30537,7 @@ } }, "is-core-module": { - "version": "2.10.0", + "version": "2.11.0", "bundled": true, "dev": true, "requires": { @@ -29853,7 +30560,7 @@ "dev": true }, "json-parse-even-better-errors": { - "version": "2.3.1", + "version": "3.0.0", "bundled": true, "dev": true }, @@ -29868,169 +30575,169 @@ "dev": true }, "just-diff": { - "version": "5.1.1", + "version": "6.0.0", "bundled": true, "dev": true }, "just-diff-apply": { - "version": "5.4.1", + "version": "5.5.0", "bundled": true, "dev": true }, "libnpmaccess": { - "version": "6.0.4", + "version": "7.0.2", "bundled": true, "dev": true, "requires": { - "aproba": "^2.0.0", - "minipass": "^3.1.1", - "npm-package-arg": "^9.0.1", - "npm-registry-fetch": "^13.0.0" + "npm-package-arg": "^10.1.0", + "npm-registry-fetch": "^14.0.3" } }, "libnpmdiff": { - "version": "4.0.5", + "version": "5.0.14", "bundled": true, "dev": true, "requires": { - "@npmcli/disparity-colors": "^2.0.0", - "@npmcli/installed-package-contents": "^1.0.7", + "@npmcli/arborist": "^6.2.6", + "@npmcli/disparity-colors": "^3.0.0", + "@npmcli/installed-package-contents": "^2.0.2", "binary-extensions": "^2.2.0", "diff": "^5.1.0", - "minimatch": "^5.0.1", - "npm-package-arg": "^9.0.1", - "pacote": "^13.6.1", - "tar": "^6.1.0" + "minimatch": "^7.4.2", + "npm-package-arg": "^10.1.0", + "pacote": "^15.0.8", + "tar": "^6.1.13" } }, "libnpmexec": { - "version": "4.0.14", + "version": "5.0.14", "bundled": true, "dev": true, "requires": { - "@npmcli/arborist": "^5.6.3", - "@npmcli/ci-detect": "^2.0.0", - "@npmcli/fs": "^2.1.1", - "@npmcli/run-script": "^4.2.0", + "@npmcli/arborist": "^6.2.6", + "@npmcli/run-script": "^6.0.0", "chalk": "^4.1.0", - "mkdirp-infer-owner": "^2.0.0", - "npm-package-arg": "^9.0.1", - "npmlog": "^6.0.2", - "pacote": "^13.6.1", - "proc-log": "^2.0.0", - "read": "^1.0.7", - "read-package-json-fast": "^2.0.2", + "ci-info": "^3.7.1", + "npm-package-arg": "^10.1.0", + "npmlog": "^7.0.1", + "pacote": "^15.0.8", + "proc-log": "^3.0.0", + "read": "^2.0.0", + "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", "walk-up-path": "^1.0.0" } }, "libnpmfund": { - "version": "3.0.5", + "version": "4.0.14", "bundled": true, "dev": true, "requires": { - "@npmcli/arborist": "^5.6.3" + "@npmcli/arborist": "^6.2.6" } }, "libnpmhook": { - "version": "8.0.4", + "version": "9.0.3", "bundled": true, "dev": true, "requires": { "aproba": "^2.0.0", - "npm-registry-fetch": "^13.0.0" + "npm-registry-fetch": "^14.0.3" } }, "libnpmorg": { - "version": "4.0.4", + "version": "5.0.3", "bundled": true, "dev": true, "requires": { "aproba": "^2.0.0", - "npm-registry-fetch": "^13.0.0" + "npm-registry-fetch": "^14.0.3" } }, "libnpmpack": { - "version": "4.1.3", + "version": "5.0.14", "bundled": true, "dev": true, "requires": { - "@npmcli/run-script": "^4.1.3", - "npm-package-arg": "^9.0.1", - "pacote": "^13.6.1" + "@npmcli/arborist": "^6.2.6", + "@npmcli/run-script": "^6.0.0", + "npm-package-arg": "^10.1.0", + "pacote": "^15.0.8" } }, "libnpmpublish": { - "version": "6.0.5", + "version": "7.1.3", "bundled": true, "dev": true, "requires": { - "normalize-package-data": "^4.0.0", - "npm-package-arg": "^9.0.1", - "npm-registry-fetch": "^13.0.0", + "ci-info": "^3.6.1", + "normalize-package-data": "^5.0.0", + "npm-package-arg": "^10.1.0", + "npm-registry-fetch": "^14.0.3", + "proc-log": "^3.0.0", "semver": "^7.3.7", - "ssri": "^9.0.0" + "sigstore": "^1.0.0", + "ssri": "^10.0.1" } }, "libnpmsearch": { - "version": "5.0.4", + "version": "6.0.2", "bundled": true, "dev": true, "requires": { - "npm-registry-fetch": "^13.0.0" + "npm-registry-fetch": "^14.0.3" } }, "libnpmteam": { - "version": "4.0.4", + "version": "5.0.3", "bundled": true, "dev": true, "requires": { "aproba": "^2.0.0", - "npm-registry-fetch": "^13.0.0" + "npm-registry-fetch": "^14.0.3" } }, "libnpmversion": { - "version": "3.0.7", + "version": "4.0.2", "bundled": true, "dev": true, "requires": { - "@npmcli/git": "^3.0.0", - "@npmcli/run-script": "^4.1.3", - "json-parse-even-better-errors": "^2.3.1", - "proc-log": "^2.0.0", + "@npmcli/git": "^4.0.1", + "@npmcli/run-script": "^6.0.0", + "json-parse-even-better-errors": "^3.0.0", + "proc-log": "^3.0.0", "semver": "^7.3.7" } }, "lru-cache": { - "version": "7.13.2", + "version": "7.18.3", "bundled": true, "dev": true }, "make-fetch-happen": { - "version": "10.2.1", + "version": "11.0.3", "bundled": true, "dev": true, "requires": { "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", + "minipass": "^4.0.0", + "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" + "ssri": "^10.0.0" } }, "minimatch": { - "version": "5.1.0", + "version": "7.4.3", "bundled": true, "dev": true, "requires": { @@ -30038,12 +30745,9 @@ } }, "minipass": { - "version": "3.3.4", + "version": "4.2.5", "bundled": true, - "dev": true, - "requires": { - "yallist": "^4.0.0" - } + "dev": true }, "minipass-collect": { "version": "1.0.2", @@ -30051,15 +30755,25 @@ "dev": true, "requires": { "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "bundled": true, + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } } }, "minipass-fetch": { - "version": "2.1.1", + "version": "3.0.1", "bundled": true, "dev": true, "requires": { "encoding": "^0.1.13", - "minipass": "^3.1.6", + "minipass": "^4.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" } @@ -30070,6 +30784,16 @@ "dev": true, "requires": { "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "bundled": true, + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } } }, "minipass-json-stream": { @@ -30079,6 +30803,16 @@ "requires": { "jsonparse": "^1.3.1", "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "bundled": true, + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } } }, "minipass-pipeline": { @@ -30087,6 +30821,16 @@ "dev": true, "requires": { "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "bundled": true, + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } } }, "minipass-sized": { @@ -30095,6 +30839,16 @@ "dev": true, "requires": { "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "bundled": true, + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } } }, "minizlib": { @@ -30104,6 +30858,16 @@ "requires": { "minipass": "^3.0.0", "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "bundled": true, + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } } }, "mkdirp": { @@ -30111,23 +30875,13 @@ "bundled": true, "dev": true }, - "mkdirp-infer-owner": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "chownr": "^2.0.0", - "infer-owner": "^1.0.4", - "mkdirp": "^1.0.3" - } - }, "ms": { "version": "2.1.3", "bundled": true, "dev": true }, "mute-stream": { - "version": "0.0.8", + "version": "1.0.0", "bundled": true, "dev": true }, @@ -30137,7 +30891,7 @@ "dev": true }, "node-gyp": { - "version": "9.1.0", + "version": "9.3.1", "bundled": true, "dev": true, "requires": { @@ -30145,7 +30899,7 @@ "glob": "^7.1.4", "graceful-fs": "^4.2.6", "make-fetch-happen": "^10.0.3", - "nopt": "^5.0.0", + "nopt": "^6.0.0", "npmlog": "^6.0.0", "rimraf": "^3.0.2", "semver": "^7.3.5", @@ -30153,6 +30907,29 @@ "which": "^2.0.2" }, "dependencies": { + "@npmcli/fs": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "requires": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + } + }, + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "are-we-there-yet": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, "brace-expansion": { "version": "1.1.11", "bundled": true, @@ -30162,6 +30939,84 @@ "concat-map": "0.0.1" } }, + "cacache": { + "version": "16.1.3", + "bundled": true, + "dev": true, + "requires": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.1.0", + "bundled": true, + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "minimatch": { + "version": "5.1.6", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "fs-minipass": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "gauge": { + "version": "4.0.4", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + } + }, "glob": { "version": "7.2.3", "bundled": true, @@ -30175,6 +31030,29 @@ "path-is-absolute": "^1.0.0" } }, + "make-fetch-happen": { + "version": "10.2.1", + "bundled": true, + "dev": true, + "requires": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + } + }, "minimatch": { "version": "3.1.2", "bundled": true, @@ -30183,37 +31061,109 @@ "brace-expansion": "^1.1.7" } }, + "minipass": { + "version": "3.3.6", + "bundled": true, + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-fetch": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "requires": { + "encoding": "^0.1.13", + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + } + }, "nopt": { - "version": "5.0.0", + "version": "6.0.0", + "bundled": true, + "dev": true, + "requires": { + "abbrev": "^1.0.0" + } + }, + "npmlog": { + "version": "6.0.2", + "bundled": true, + "dev": true, + "requires": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + } + }, + "readable-stream": { + "version": "3.6.2", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "ssri": { + "version": "9.0.1", + "bundled": true, + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "unique-filename": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "unique-slug": "^3.0.0" + } + }, + "unique-slug": { + "version": "3.0.0", "bundled": true, "dev": true, "requires": { - "abbrev": "1" + "imurmurhash": "^0.1.4" + } + }, + "which": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "isexe": "^2.0.0" } } } }, "nopt": { - "version": "6.0.0", + "version": "7.1.0", "bundled": true, "dev": true, "requires": { - "abbrev": "^1.0.0" + "abbrev": "^2.0.0" } }, "normalize-package-data": { - "version": "4.0.1", + "version": "5.0.0", "bundled": true, "dev": true, "requires": { - "hosted-git-info": "^5.0.0", + "hosted-git-info": "^6.0.0", "is-core-module": "^2.8.1", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" } }, "npm-audit-report": { - "version": "3.0.0", + "version": "4.0.0", "bundled": true, "dev": true, "requires": { @@ -30221,22 +31171,15 @@ } }, "npm-bundled": { - "version": "2.0.1", + "version": "3.0.0", "bundled": true, "dev": true, "requires": { - "npm-normalize-package-bin": "^2.0.0" - }, - "dependencies": { - "npm-normalize-package-bin": { - "version": "2.0.0", - "bundled": true, - "dev": true - } + "npm-normalize-package-bin": "^3.0.0" } }, "npm-install-checks": { - "version": "5.0.0", + "version": "6.1.0", "bundled": true, "dev": true, "requires": { @@ -30244,93 +31187,76 @@ } }, "npm-normalize-package-bin": { - "version": "1.0.1", + "version": "3.0.0", "bundled": true, "dev": true }, "npm-package-arg": { - "version": "9.1.0", + "version": "10.1.0", "bundled": true, "dev": true, "requires": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", + "hosted-git-info": "^6.0.0", + "proc-log": "^3.0.0", "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" + "validate-npm-package-name": "^5.0.0" } }, "npm-packlist": { - "version": "5.1.3", + "version": "7.0.4", "bundled": true, "dev": true, "requires": { - "glob": "^8.0.1", - "ignore-walk": "^5.0.1", - "npm-bundled": "^2.0.0", - "npm-normalize-package-bin": "^2.0.0" - }, - "dependencies": { - "npm-normalize-package-bin": { - "version": "2.0.0", - "bundled": true, - "dev": true - } + "ignore-walk": "^6.0.0" } }, "npm-pick-manifest": { - "version": "7.0.2", + "version": "8.0.1", "bundled": true, "dev": true, "requires": { - "npm-install-checks": "^5.0.0", - "npm-normalize-package-bin": "^2.0.0", - "npm-package-arg": "^9.0.0", + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^10.0.0", "semver": "^7.3.5" - }, - "dependencies": { - "npm-normalize-package-bin": { - "version": "2.0.0", - "bundled": true, - "dev": true - } } }, "npm-profile": { - "version": "6.2.1", + "version": "7.0.1", "bundled": true, "dev": true, "requires": { - "npm-registry-fetch": "^13.0.1", - "proc-log": "^2.0.0" + "npm-registry-fetch": "^14.0.0", + "proc-log": "^3.0.0" } }, "npm-registry-fetch": { - "version": "13.3.1", + "version": "14.0.3", "bundled": true, "dev": true, "requires": { - "make-fetch-happen": "^10.0.6", - "minipass": "^3.1.6", - "minipass-fetch": "^2.0.3", + "make-fetch-happen": "^11.0.0", + "minipass": "^4.0.0", + "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", - "npm-package-arg": "^9.0.1", - "proc-log": "^2.0.0" + "npm-package-arg": "^10.0.0", + "proc-log": "^3.0.0" } }, "npm-user-validate": { - "version": "1.0.1", + "version": "2.0.0", "bundled": true, "dev": true }, "npmlog": { - "version": "6.0.2", + "version": "7.0.1", "bundled": true, "dev": true, "requires": { - "are-we-there-yet": "^3.0.0", + "are-we-there-yet": "^4.0.0", "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", + "gauge": "^5.0.0", "set-blocking": "^2.0.0" } }, @@ -30342,11 +31268,6 @@ "wrappy": "1" } }, - "opener": { - "version": "1.5.2", - "bundled": true, - "dev": true - }, "p-map": { "version": "4.0.0", "bundled": true, @@ -30356,40 +31277,37 @@ } }, "pacote": { - "version": "13.6.2", + "version": "15.1.1", "bundled": true, "dev": true, "requires": { - "@npmcli/git": "^3.0.0", - "@npmcli/installed-package-contents": "^1.0.7", - "@npmcli/promise-spawn": "^3.0.0", - "@npmcli/run-script": "^4.1.0", - "cacache": "^16.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "infer-owner": "^1.0.4", - "minipass": "^3.1.6", - "mkdirp": "^1.0.4", - "npm-package-arg": "^9.0.0", - "npm-packlist": "^5.1.0", - "npm-pick-manifest": "^7.0.0", - "npm-registry-fetch": "^13.0.1", - "proc-log": "^2.0.0", + "@npmcli/git": "^4.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/promise-spawn": "^6.0.1", + "@npmcli/run-script": "^6.0.0", + "cacache": "^17.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^4.0.0", + "npm-package-arg": "^10.0.0", + "npm-packlist": "^7.0.0", + "npm-pick-manifest": "^8.0.0", + "npm-registry-fetch": "^14.0.0", + "proc-log": "^3.0.0", "promise-retry": "^2.0.1", - "read-package-json": "^5.0.0", - "read-package-json-fast": "^2.0.3", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", + "read-package-json": "^6.0.0", + "read-package-json-fast": "^3.0.0", + "sigstore": "^1.0.0", + "ssri": "^10.0.0", "tar": "^6.1.11" } }, "parse-conflict-json": { - "version": "2.0.2", + "version": "3.0.1", "bundled": true, "dev": true, "requires": { - "json-parse-even-better-errors": "^2.3.1", - "just-diff": "^5.0.1", + "json-parse-even-better-errors": "^3.0.0", + "just-diff": "^6.0.0", "just-diff-apply": "^5.2.0" } }, @@ -30398,8 +31316,17 @@ "bundled": true, "dev": true }, + "path-scurry": { + "version": "1.6.1", + "bundled": true, + "dev": true, + "requires": { + "lru-cache": "^7.14.1", + "minipass": "^4.0.2" + } + }, "postcss-selector-parser": { - "version": "6.0.10", + "version": "6.0.11", "bundled": true, "dev": true, "requires": { @@ -30408,7 +31335,12 @@ } }, "proc-log": { - "version": "2.0.1", + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "process": { + "version": "0.11.10", "bundled": true, "dev": true }, @@ -30437,11 +31369,11 @@ } }, "promzard": { - "version": "0.3.0", + "version": "1.0.0", "bundled": true, "dev": true, "requires": { - "read": "1" + "read": "^2.0.0" } }, "qrcode-terminal": { @@ -30450,64 +31382,47 @@ "dev": true }, "read": { - "version": "1.0.7", + "version": "2.0.0", "bundled": true, "dev": true, "requires": { - "mute-stream": "~0.0.4" + "mute-stream": "~1.0.0" } }, "read-cmd-shim": { - "version": "3.0.0", + "version": "4.0.0", "bundled": true, "dev": true }, "read-package-json": { - "version": "5.0.2", + "version": "6.0.1", "bundled": true, "dev": true, "requires": { - "glob": "^8.0.1", - "json-parse-even-better-errors": "^2.3.1", - "normalize-package-data": "^4.0.0", - "npm-normalize-package-bin": "^2.0.0" - }, - "dependencies": { - "npm-normalize-package-bin": { - "version": "2.0.0", - "bundled": true, - "dev": true - } + "glob": "^9.3.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^5.0.0", + "npm-normalize-package-bin": "^3.0.0" } }, "read-package-json-fast": { - "version": "2.0.3", + "version": "3.0.2", "bundled": true, "dev": true, "requires": { - "json-parse-even-better-errors": "^2.3.0", - "npm-normalize-package-bin": "^1.0.1" + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" } }, "readable-stream": { - "version": "3.6.0", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdir-scoped-modules": { - "version": "1.1.0", + "version": "4.3.0", "bundled": true, "dev": true, "requires": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" } }, "retry": { @@ -30556,7 +31471,7 @@ } }, "safe-buffer": { - "version": "5.2.1", + "version": "5.1.2", "bundled": true, "dev": true }, @@ -30567,7 +31482,7 @@ "optional": true }, "semver": { - "version": "7.3.7", + "version": "7.3.8", "bundled": true, "dev": true, "requires": { @@ -30594,13 +31509,23 @@ "bundled": true, "dev": true }, + "sigstore": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "@sigstore/protobuf-specs": "^0.1.0", + "make-fetch-happen": "^11.0.1", + "tuf-js": "^1.0.0" + } + }, "smart-buffer": { "version": "4.2.0", "bundled": true, "dev": true }, "socks": { - "version": "2.7.0", + "version": "2.7.1", "bundled": true, "dev": true, "requires": { @@ -30619,7 +31544,7 @@ } }, "spdx-correct": { - "version": "3.1.1", + "version": "3.2.0", "bundled": true, "dev": true, "requires": { @@ -30642,24 +31567,24 @@ } }, "spdx-license-ids": { - "version": "3.0.11", + "version": "3.0.13", "bundled": true, "dev": true }, "ssri": { - "version": "9.0.1", + "version": "10.0.1", "bundled": true, "dev": true, "requires": { - "minipass": "^3.1.1" + "minipass": "^4.0.0" } }, "string_decoder": { - "version": "1.3.0", + "version": "1.1.1", "bundled": true, "dev": true, "requires": { - "safe-buffer": "~5.2.0" + "safe-buffer": "~5.1.0" } }, "string-width": { @@ -30689,16 +31614,36 @@ } }, "tar": { - "version": "6.1.11", + "version": "6.1.13", "bundled": true, "dev": true, "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", + "minipass": "^4.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" + }, + "dependencies": { + "fs-minipass": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "bundled": true, + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } + } + } } }, "text-table": { @@ -30712,20 +31657,29 @@ "dev": true }, "treeverse": { - "version": "2.0.0", + "version": "3.0.0", "bundled": true, "dev": true }, + "tuf-js": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "@tufjs/models": "1.0.1", + "make-fetch-happen": "^11.0.1" + } + }, "unique-filename": { - "version": "2.0.1", + "version": "3.0.0", "bundled": true, "dev": true, "requires": { - "unique-slug": "^3.0.0" + "unique-slug": "^4.0.0" } }, "unique-slug": { - "version": "3.0.0", + "version": "4.0.0", "bundled": true, "dev": true, "requires": { @@ -30747,7 +31701,7 @@ } }, "validate-npm-package-name": { - "version": "4.0.0", + "version": "5.0.0", "bundled": true, "dev": true, "requires": { @@ -30768,7 +31722,7 @@ } }, "which": { - "version": "2.0.2", + "version": "3.0.0", "bundled": true, "dev": true, "requires": { @@ -30789,7 +31743,7 @@ "dev": true }, "write-file-atomic": { - "version": "4.0.2", + "version": "5.0.0", "bundled": true, "dev": true, "requires": { @@ -32332,9 +33286,9 @@ "dev": true }, "rimraf": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.0.tgz", - "integrity": "sha512-X36S+qpCUR0HjXlkDe4NAOhS//aHH0Z+h8Ckf2auGJk3PTnx5rLmrHkwNdbVQuCSUhOyFrlRvFEllZOYE+yZGQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", "dev": true, "requires": { "glob": "^9.2.0" @@ -32429,15 +33383,15 @@ "dev": true }, "semantic-release": { - "version": "20.1.1", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-20.1.1.tgz", - "integrity": "sha512-jXDr8y7ozo42N4+G9m/P5Qyx5oQO4aOS66a+Up8XECzEOFIpEoo3ngnr4R5lSix/sVJW69/fgNkOUZhsGFiQ5g==", + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-21.0.0.tgz", + "integrity": "sha512-zks0jVk2Hbyhn014vshcwQ6e6gM9jDPr8SdujqfAzPJBvvvSXa8GHz/x+W0VaW2aBNawWFAlx6N45dp1H1XCCw==", "dev": true, "requires": { "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/error": "^3.0.0", "@semantic-release/github": "^8.0.0", - "@semantic-release/npm": "^9.0.0", + "@semantic-release/npm": "^10.0.2", "@semantic-release/release-notes-generator": "^10.0.0", "aggregate-error": "^4.0.1", "cosmiconfig": "^8.0.0", @@ -33727,28 +34681,27 @@ "dev": true }, "tempy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz", - "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.0.0.tgz", + "integrity": "sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==", "dev": true, "requires": { - "del": "^6.0.0", - "is-stream": "^2.0.0", + "is-stream": "^3.0.0", "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" + "type-fest": "^2.12.2", + "unique-string": "^3.0.0" }, "dependencies": { "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true }, "type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true } } @@ -34024,9 +34977,9 @@ } }, "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.3.tgz", + "integrity": "sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==", "dev": true }, "uglify-js": { @@ -34115,12 +35068,12 @@ } }, "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", "dev": true, "requires": { - "crypto-random-string": "^2.0.0" + "crypto-random-string": "^4.0.0" } }, "universal-user-agent": { diff --git a/package.json b/package.json index 644222393..ec3c86c41 100644 --- a/package.json +++ b/package.json @@ -27,15 +27,15 @@ "@hkdobrev/run-if-changed": "^0.3.1", "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/github": "^8.0.7", - "@semantic-release/npm": "^9.0.2", - "@typescript-eslint/parser": "^5.55.0", + "@semantic-release/npm": "^10.0.2", + "@typescript-eslint/parser": "^5.57.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", "chai": "^4.3.7", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "^8.36.0", + "eslint": "^8.37.0", "eslint-config-canonical": "~33.0.1", "gitdown": "^3.1.5", "glob": "^8.1.0", @@ -46,9 +46,9 @@ "mocha": "^10.2.0", "nyc": "^15.1.0", "open-editor": "^3.0.0", - "rimraf": "^4.4.0", - "semantic-release": "^20.1.1", - "typescript": "^4.9.5" + "rimraf": "^4.4.1", + "semantic-release": "^21.0.0", + "typescript": "^5.0.3" }, "engines": { "node": "^14 || ^16 || ^17 || ^18 || ^19" From 0453fe65b5f1cfb6b564019f5523bf87b9af86d1 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 28 Mar 2023 08:28:57 -0700 Subject: [PATCH 011/273] chore: avoid reporting of flat config rules when single rule requested --- test/rules/index.js | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/test/rules/index.js b/test/rules/index.js index e0d620f3b..9419e48da 100644 --- a/test/rules/index.js +++ b/test/rules/index.js @@ -121,23 +121,25 @@ const main = async () => { ruleTester.run(ruleName, rule, assertions); } - // Catch syntax errors - let flatRuleNames; - try { - flatRuleNames = (await import('./assertions/flatConfig.js')).default; - } catch (error) { - // eslint-disable-next-line no-console -- Reporting back to tester - console.error(error); - return; - } + if (!process.env.npm_config_rule) { + // Catch syntax errors + let flatRuleNames; + try { + flatRuleNames = (await import('./assertions/flatConfig.js')).default; + } catch (error) { + // eslint-disable-next-line no-console -- Reporting back to tester + console.error(error); + return; + } - const fakeRuleTester = new FlatRuleTester(); - for (const [ - ruleName, - assertions, - ] of Object.entries(flatRuleNames)) { - const rule = config.rules[ruleName]; - fakeRuleTester.run(ruleName, rule, assertions); + const fakeRuleTester = new FlatRuleTester(); + for (const [ + ruleName, + assertions, + ] of Object.entries(flatRuleNames)) { + const rule = config.rules[ruleName]; + fakeRuleTester.run(ruleName, rule, assertions); + } } }; From d004f0863ae512e7884e5c36185cbd419f1d7870 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 31 Mar 2023 04:57:46 -0700 Subject: [PATCH 012/273] fix: handle case where `typeAnnotation` exists with `null` `typeAnnotation` child property; fixes #1008 --- src/jsdocUtils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index b9e3bc5f7..c6715dc35 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -135,7 +135,7 @@ const getFunctionParameterNames = ( if ('typeAnnotation' in param || hasLeftTypeAnnotation) { const typeAnnotation = hasLeftTypeAnnotation ? param.left.typeAnnotation : param.typeAnnotation; - if (typeAnnotation.typeAnnotation.type === 'TSTypeLiteral') { + if (typeAnnotation?.typeAnnotation?.type === 'TSTypeLiteral') { const propertyNames = typeAnnotation.typeAnnotation.members.map((member) => { return getPropertiesFromPropertySignature(member); }); From 49b4a6c87d6209cbc135aad528b75e2e8195331e Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 8 Apr 2023 13:22:26 -0700 Subject: [PATCH 013/273] fix: sp. to prevent `additionalProperties` Also: - chore: specify sample line number when creating sample error for rule --- src/bin/generateRule.js | 4 ++-- src/rules/matchName.js | 4 ++-- src/rules/multilineBlocks.js | 2 +- src/rules/noMultiAsterisks.js | 2 +- src/rules/sortTags.js | 2 +- src/rules/tagLines.js | 2 +- src/rules/textEscaping.js | 2 +- src/rules/validTypes.js | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/bin/generateRule.js b/src/bin/generateRule.js index f38f5138a..b83595bb8 100644 --- a/src/bin/generateRule.js +++ b/src/bin/generateRule.js @@ -68,7 +68,7 @@ export default iterateJsdoc(({ }, schema: [ { - additionalProperies: false, + additionalProperties: false, properties: { // Option properties here (or remove the object) }, @@ -95,7 +95,7 @@ export default iterateJsdoc(({ \`, errors: [ { - line: '', + line: 2, message: '', }, ], diff --git a/src/rules/matchName.js b/src/rules/matchName.js index 1a5f9fab0..203298747 100644 --- a/src/rules/matchName.js +++ b/src/rules/matchName.js @@ -103,10 +103,10 @@ export default iterateJsdoc(({ fixable: 'code', schema: [ { - additionalProperies: false, + additionalProperties: false, properties: { match: { - additionalProperies: false, + additionalProperties: false, items: { properties: { allowName: { diff --git a/src/rules/multilineBlocks.js b/src/rules/multilineBlocks.js index d31957853..f94ac433e 100644 --- a/src/rules/multilineBlocks.js +++ b/src/rules/multilineBlocks.js @@ -271,7 +271,7 @@ export default iterateJsdoc(({ fixable: 'code', schema: [ { - additionalProperies: false, + additionalProperties: false, properties: { allowMultipleTags: { type: 'boolean', diff --git a/src/rules/noMultiAsterisks.js b/src/rules/noMultiAsterisks.js index d2da3f134..49515a5e4 100644 --- a/src/rules/noMultiAsterisks.js +++ b/src/rules/noMultiAsterisks.js @@ -117,7 +117,7 @@ export default iterateJsdoc(({ fixable: 'code', schema: [ { - additionalProperies: false, + additionalProperties: false, properties: { allowWhitespace: { type: 'boolean', diff --git a/src/rules/sortTags.js b/src/rules/sortTags.js index cbb06c43f..47d8c5ff1 100644 --- a/src/rules/sortTags.js +++ b/src/rules/sortTags.js @@ -168,7 +168,7 @@ export default iterateJsdoc(({ fixable: 'code', schema: [ { - additionalProperies: false, + additionalProperties: false, properties: { alphabetizeExtras: { type: 'boolean', diff --git a/src/rules/tagLines.js b/src/rules/tagLines.js index 95e4576c3..ccc5e9d73 100644 --- a/src/rules/tagLines.js +++ b/src/rules/tagLines.js @@ -181,7 +181,7 @@ export default iterateJsdoc(({ type: 'string', }, { - additionalProperies: false, + additionalProperties: false, properties: { count: { type: 'integer', diff --git a/src/rules/textEscaping.js b/src/rules/textEscaping.js index 7f18716e9..13dcb5d20 100644 --- a/src/rules/textEscaping.js +++ b/src/rules/textEscaping.js @@ -112,7 +112,7 @@ export default iterateJsdoc(({ fixable: 'code', schema: [ { - additionalProperies: false, + additionalProperties: false, properties: { // Option properties here (or remove the object) escapeHTML: { diff --git a/src/rules/validTypes.js b/src/rules/validTypes.js index e4569991b..109229045 100644 --- a/src/rules/validTypes.js +++ b/src/rules/validTypes.js @@ -301,7 +301,7 @@ export default iterateJsdoc(({ }, schema: [ { - additionalProperies: false, + additionalProperties: false, properties: { allowEmptyNamepaths: { default: false, From bd373925ee3950a00f3eaa67260906e09e8e7ce7 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 8 Apr 2023 13:33:21 -0700 Subject: [PATCH 014/273] fix: remove/change unused properties --- README.md | 8 ++++---- test/rules/assertions/multilineBlocks.js | 6 +++--- test/rules/assertions/validTypes.js | 1 - 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index f1dd7f3d3..67411c18b 100644 --- a/README.md +++ b/README.md @@ -8537,12 +8537,12 @@ The following patterns are considered problems: /** * @someTag {aType} with Description */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noFinalLineBlocks":true}] +// "jsdoc/multiline-blocks": ["error"|"warn", {"noFinalLineText":true}] // Message: Should have no text on the final line (before the `*/`). /** * Description */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noFinalLineBlocks":true}] +// "jsdoc/multiline-blocks": ["error"|"warn", {"noFinalLineText":true}] // Message: Should have no text on the final line (before the `*/`). ```` @@ -8648,7 +8648,7 @@ The following patterns are not considered problems: // "jsdoc/multiline-blocks": ["error"|"warn", {"allowMultipleTags":false,"multilineTags":["oneTag"],"noMultilineBlocks":true}] /** @someTag with Description */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noFinalLineBlocks":true}] +// "jsdoc/multiline-blocks": ["error"|"warn", {"noFinalLineText":true}] ```` @@ -23647,7 +23647,7 @@ function quux ( id, options ) { function assign(employees) { // ... } -// "jsdoc/valid-types": ["error"|"warn", {"allowEmptyNamepaths":true,"checkSeesForNamepaths":false}] +// "jsdoc/valid-types": ["error"|"warn", {"allowEmptyNamepaths":true}] /** * @param {typeof obj["level1"]["level2"]} foo diff --git a/test/rules/assertions/multilineBlocks.js b/test/rules/assertions/multilineBlocks.js index d52d62f0d..0f71ac798 100644 --- a/test/rules/assertions/multilineBlocks.js +++ b/test/rules/assertions/multilineBlocks.js @@ -588,7 +588,7 @@ export default { ], options: [ { - noFinalLineBlocks: true, + noFinalLineText: true, }, ], output: ` @@ -610,7 +610,7 @@ export default { ], options: [ { - noFinalLineBlocks: true, + noFinalLineText: true, }, ], output: ` @@ -891,7 +891,7 @@ export default { `, options: [ { - noFinalLineBlocks: true, + noFinalLineText: true, }, ], }, diff --git a/test/rules/assertions/validTypes.js b/test/rules/assertions/validTypes.js index f387f313d..3c825ca66 100644 --- a/test/rules/assertions/validTypes.js +++ b/test/rules/assertions/validTypes.js @@ -1713,7 +1713,6 @@ export default { options: [ { allowEmptyNamepaths: true, - checkSeesForNamepaths: false, }, ], }, From d816c307f8059f0d75981825ea1d8034425d55a8 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Mon, 27 Mar 2023 14:05:39 -0400 Subject: [PATCH 015/273] feat: added typed option to check-tag-names --- .README/rules/check-tag-names.md | 56 ++++++ README.md | 134 ++++++++++++++ src/rules/checkTagNames.js | 130 ++++++++++++++ test/rules/assertions/checkTagNames.js | 231 +++++++++++++++++++++++++ 4 files changed, 551 insertions(+) diff --git a/.README/rules/check-tag-names.md b/.README/rules/check-tag-names.md index 3b0363e33..5c3ec3d05 100644 --- a/.README/rules/check-tag-names.md +++ b/.README/rules/check-tag-names.md @@ -200,6 +200,62 @@ jsxRuntime For more information, see the [babel documentation](https://babeljs.io/docs/en/babel-plugin-transform-react-jsx). +#### `typed` + +If this is set to `true`, additionally checks for tag names that are redundant when using a type checker such as TypeScript. + +These tags are always unnecessary when using TypeScript or similar: + +``` +augments +callback +class +enum +implements +private +property +protected +public +readonly +this +type +typedef +``` + +These tags are unnecessary except when inside a TypeScript `declare` context: + +``` +abstract +access +class +constant +constructs +default +enum +export +exports +function +global +inherits +instance +interface +member +memberof +memberOf +method +mixes +mixin +module +name +namespace +override +property +requires +static +this +``` + +Additionally, for `@param` and `@return` tags, the rule will flag unnecessary type descriptions (e.g. `@param {string}`). ||| |---|---| diff --git a/README.md b/README.md index 67411c18b..406b9c4bc 100644 --- a/README.md +++ b/README.md @@ -4501,6 +4501,64 @@ jsxRuntime For more information, see the [babel documentation](https://babeljs.io/docs/en/babel-plugin-transform-react-jsx). + + +#### typed + +If this is set to `true`, additionally checks for tag names that are redundant when using a type checker such as TypeScript. + +These tags are always unnecessary when using TypeScript or similar: + +``` +augments +callback +class +enum +implements +private +property +protected +public +readonly +this +type +typedef +``` + +These tags are unnecessary except when inside a TypeScript `declare` context: + +``` +abstract +access +class +constant +constructs +default +enum +export +exports +function +global +inherits +instance +interface +member +memberof +memberOf +method +mixes +mixin +module +name +namespace +override +property +requires +static +this +``` + +Additionally, for `@param` and `@return` tags, the rule will flag unnecessary type descriptions (e.g. `@param {string}`). ||| |---|---| @@ -4513,6 +4571,52 @@ For more information, see the [babel documentation](https://babeljs.io/docs/en/b The following patterns are considered problems: ````js +/** @type {string} */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@type' is redundant when using a type system. + +/** @abstract */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@abstract' is generally redundant outside of `declare` contexts when using a type system. + +const a = { + /** @abstract */ + b: true, +}; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@abstract' is generally redundant outside of `declare` contexts when using a type system. + +/** @template */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@template' without a name is redundant when using a type system. + +/** + * Prior description. + * + * @template + */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@template' without a name is redundant when using a type system. + +/** @param {string} */ +function takesOne(param) {} +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@param' without a description is redundant when using a type system. + +/** @param {boolean} param */ +function takesOne(param) {} +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@param' without a description is redundant when using a type system. + +/** @param {boolean} param - takes description */ +function takesOne(param) {} +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: Describing the type of '@param' is redundant when using a type system. + /** @typoo {string} */ let a; // Message: Invalid JSDoc tag name "typoo". @@ -4869,6 +4973,36 @@ function Test() { The following patterns are not considered problems: ````js +/** @abstract */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] + +/** @abstract */ +declare let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] + +/** @abstract */ +{ declare let a; } +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] + +function test() { + /** @abstract */ + declare let a; +} +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] + +/** @abstract - default */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] + +/** @template name */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"definedTags":["template"],"typed":true}] + +/** @param param - takes information */ +function takesOne(param) {} +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] + /** * @param foo */ diff --git a/src/rules/checkTagNames.js b/src/rules/checkTagNames.js index 5244ffd01..12c0b7238 100644 --- a/src/rules/checkTagNames.js +++ b/src/rules/checkTagNames.js @@ -9,18 +9,74 @@ const jsxTagNames = new Set([ 'jsxRuntime', ]); +const typedTagsAlwaysUnnecessary = new Set([ + 'augments', + 'callback', + 'class', + 'enum', + 'implements', + 'private', + 'property', + 'protected', + 'public', + 'readonly', + 'this', + 'type', + 'typedef', +]); + +const typedTagsUnnecessaryOutsideDeclare = new Set([ + 'abstract', + 'access', + 'class', + 'constant', + 'constructs', + 'default', + 'enum', + 'export', + 'exports', + 'function', + 'global', + 'inherits', + 'instance', + 'interface', + 'member', + 'memberof', + 'memberOf', + 'method', + 'mixes', + 'mixin', + 'module', + 'name', + 'namespace', + 'override', + 'property', + 'requires', + 'static', + 'this', +]); + +const typedTagsParamReturn = new Set([ + 'param', + 'parameter', + 'return', + 'returns', +]); + export default iterateJsdoc(({ sourceCode, jsdoc, report, utils, context, + node, settings, jsdocNode, }) => { const { definedTags = [], jsxTags, + typed, } = context.options[0] || {}; let definedPreferredTags = []; @@ -54,12 +110,83 @@ export default iterateJsdoc(({ }); } + const isInAmbientContext = (subNode) => { + return subNode.type === 'Program' ? + context.getFilename().endsWith('.d.ts') : + Boolean(subNode.declare) || isInAmbientContext(subNode.parent); + }; + + const tagIsRedundantWhenTyped = (jsdocTag) => { + if (!typedTagsUnnecessaryOutsideDeclare.has(jsdocTag.tag)) { + return false; + } + + if (jsdocTag.description.trim() === 'default' || jsdocTag.name === 'default') { + return false; + } + + if (context.getFilename().endsWith('.d.ts') && node.parent.type === 'Program') { + return false; + } + + if (isInAmbientContext(node)) { + return false; + } + + return true; + }; + + const tagRedundantlyChecksParamOrReturnTyped = (jsdocTag) => { + if (!typedTagsParamReturn.has(jsdocTag.tag)) { + return false; + } + + if (!jsdocTag.description) { + report(`'@${jsdocTag.tag}' without a description is redundant when using a type system.`, null, jsdocTag); + return true; + } + + if (jsdocTag.type) { + report(`Describing the type of '@${jsdocTag.tag}' is redundant when using a type system.`, null, jsdocTag); + return true; + } + + return false; + }; + + const checkTagForTypedValidity = (jsdocTag) => { + if (typedTagsAlwaysUnnecessary.has(jsdocTag.tag)) { + report(`'@${jsdocTag.tag}' is redundant when using a type system.`, null, jsdocTag); + return true; + } + + if (tagIsRedundantWhenTyped(jsdocTag)) { + report(`'@${jsdocTag.tag}' is generally redundant outside of \`declare\` contexts when using a type system.`, null, jsdocTag); + return true; + } + + if (jsdocTag.tag === 'template' && !jsdocTag.name) { + report('\'@template\' without a name is redundant when using a type system.', null, jsdocTag); + return true; + } + + if (tagRedundantlyChecksParamOrReturnTyped(jsdocTag)) { + return true; + } + + return false; + }; + for (const jsdocTag of jsdoc.tags) { const tagName = jsdocTag.tag; if (jsxTags && jsxTagNames.has(tagName)) { continue; } + if (typed && checkTagForTypedValidity(jsdocTag)) { + continue; + } + if (utils.isValidTag(tagName, [ ...definedTags, ...definedPreferredTags, ...definedNonPreferredTags, ...definedStructuredTags, @@ -120,6 +247,9 @@ export default iterateJsdoc(({ jsxTags: { type: 'boolean', }, + typed: { + type: 'boolean', + }, }, type: 'object', }, diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index 0cb06fb25..17e27324d 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -24,6 +24,148 @@ const ONE_CLOSURE_TAGS_COMMENT = buildTagBlock({ export default { invalid: [ + { + code: ` + /** @type {string} */ + let a; + `, + errors: [ + { + line: 2, + message: '\'@type\' is redundant when using a type system.', + }, + ], + options: [ + { + typed: true, + }, + ], + }, + { + code: ` + /** @abstract */ + let a; + `, + errors: [ + { + line: 2, + message: '\'@abstract\' is generally redundant outside of `declare` contexts when using a type system.', + }, + ], + options: [ + { + typed: true, + }, + ], + }, + { + code: ` + const a = { + /** @abstract */ + b: true, + }; + `, + errors: [ + { + line: 3, + message: '\'@abstract\' is generally redundant outside of `declare` contexts when using a type system.', + }, + ], + options: [ + { + typed: true, + }, + ], + }, + { + code: ` + /** @template */ + let a; + `, + errors: [ + { + line: 2, + message: '\'@template\' without a name is redundant when using a type system.', + }, + ], + options: [ + { + typed: true, + }, + ], + }, + { + code: ` + /** + * Prior description. + * + * @template + */ + let a; + `, + errors: [ + { + line: 5, + message: '\'@template\' without a name is redundant when using a type system.', + }, + ], + options: [ + { + typed: true, + }, + ], + }, + { + code: ` + /** @param {string} */ + function takesOne(param) {} + `, + errors: [ + { + line: 2, + message: '\'@param\' without a description is redundant when using a type system.', + }, + ], + options: [ + { + typed: true, + }, + ], + }, + { + code: ` + /** @param {boolean} param */ + function takesOne(param) {} + `, + errors: [ + { + line: 2, + message: '\'@param\' without a description is redundant when using a type system.', + }, + ], + options: [ + { + typed: true, + }, + ], + }, + { + code: ` + /** @param {boolean} param - takes description */ + function takesOne(param) {} + `, + errors: [ + { + line: 2, + message: 'Describing the type of \'@param\' is redundant when using a type system.', + }, + ], + options: [ + { + typed: true, + }, + ], + }, { code: ` /** @typoo {string} */ @@ -674,6 +816,95 @@ export default { }, ], valid: [ + { + code: ` + /** @abstract */ + let a; + `, + filename: 'file.d.ts', + options: [ + { + typed: true, + }, + ], + }, + { + code: ` + /** @abstract */ + declare let a; + `, + filename: 'file.d.ts', + options: [ + { + typed: true, + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + }, + { + code: ` + /** @abstract */ + { declare let a; } + `, + filename: 'file.d.ts', + options: [ + { + typed: true, + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + }, + { + code: ` + function test() { + /** @abstract */ + declare let a; + } + `, + filename: 'file.d.ts', + options: [ + { + typed: true, + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + }, + { + code: ` + /** @abstract - default */ + let a; + `, + options: [ + { + typed: true, + }, + ], + }, + { + code: ` + /** @template name */ + let a; + `, + options: [ + { + definedTags: [ + 'template', + ], + typed: true, + }, + ], + }, + { + code: ` + /** @param param - takes information */ + function takesOne(param) {} + `, + options: [ + { + typed: true, + }, + ], + }, { code: ` /** From 1104a9d308f9a1083fa8b04b6345c53cebec8f47 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Mon, 27 Mar 2023 21:43:24 -0400 Subject: [PATCH 016/273] utils.reportJSDoc and utils.removeTag: take one --- src/rules/checkTagNames.js | 11 +++++++---- test/rules/assertions/checkTagNames.js | 3 +++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/rules/checkTagNames.js b/src/rules/checkTagNames.js index 12c0b7238..478e6794c 100644 --- a/src/rules/checkTagNames.js +++ b/src/rules/checkTagNames.js @@ -154,9 +154,11 @@ export default iterateJsdoc(({ return false; }; - const checkTagForTypedValidity = (jsdocTag) => { + const checkTagForTypedValidity = (jsdocTag, tagIndex) => { if (typedTagsAlwaysUnnecessary.has(jsdocTag.tag)) { - report(`'@${jsdocTag.tag}' is redundant when using a type system.`, null, jsdocTag); + utils.reportJSDoc(`'@${jsdocTag.tag}' is redundant when using a type system.`, jsdocTag, () => { + utils.removeTag(tagIndex); + }, true); return true; } @@ -177,13 +179,14 @@ export default iterateJsdoc(({ return false; }; - for (const jsdocTag of jsdoc.tags) { + for (let tagIndex = 0; tagIndex < jsdoc.tags.length; tagIndex += 1) { + const jsdocTag = jsdoc.tags[tagIndex]; const tagName = jsdocTag.tag; if (jsxTags && jsxTagNames.has(tagName)) { continue; } - if (typed && checkTagForTypedValidity(jsdocTag)) { + if (typed && checkTagForTypedValidity(jsdocTag, tagIndex)) { continue; } diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index 17e27324d..48dfdd8c3 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -40,6 +40,9 @@ export default { typed: true, }, ], + output: ` + let a; + `, }, { code: ` From 872827f39f59cb6ebfbac5267dea34eb2de29225 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 28 Mar 2023 08:28:08 -0700 Subject: [PATCH 017/273] fix tag removal when item is 0 line --- src/iterateJsdoc.js | 53 +++++++++++++++++++++++++++++--------- src/rules/checkTagNames.js | 4 ++- src/rules/tagLines.js | 8 ++++-- 3 files changed, 50 insertions(+), 15 deletions(-) diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index 2288bd12f..d7f5161fc 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -136,6 +136,12 @@ const getUtils = ( handler(); const replacement = utils.stringify(jsdoc, specRewire); + if (!replacement) { + return fixer.removeRange([ + 0, jsdocNode.range[1], + ]); + } + return fixer.replaceText(jsdocNode, replacement); } : null, tag, data); }; @@ -288,11 +294,10 @@ const getUtils = ( ]; }; - utils.removeTag = (idx) => { - return utils.removeTagItem(idx); - }; - - utils.removeTagItem = (tagIndex, tagSourceOffset = 0) => { + utils.removeTag = (tagIndex, { + removeEmptyBlock = false, + tagSourceOffset = 0, + } = {}) => { const { source: tagSource, } = jsdoc.tags[tagIndex]; @@ -303,11 +308,8 @@ const getUtils = ( }, tagIdx) => { const sourceIndex = jsdoc.source.findIndex(({ number: srcNumber, - tokens: { - end, - }, }) => { - return number === srcNumber && !end; + return number === srcNumber; }); // istanbul ignore else if (sourceIndex > -1) { @@ -315,10 +317,10 @@ const getUtils = ( tagSource.slice(tagIdx + 1).some(({ tokens: { tag, - end, + end: ending, }, }) => { - if (!tag && !end) { + if (!tag && !ending) { spliceCount++; return false; @@ -326,7 +328,34 @@ const getUtils = ( return true; }); - jsdoc.source.splice(sourceIndex + tagSourceOffset, spliceCount - tagSourceOffset); + + const spliceIdx = sourceIndex + tagSourceOffset; + + const { + delimiter, + end, + } = jsdoc.source[spliceIdx].tokens; + + /* istanbul ignore if -- Currently want to clear entirely if removing tags */ + if (!removeEmptyBlock && (end || delimiter === '/**')) { + const { + tokens, + } = jsdoc.source[spliceIdx]; + for (const item of [ + 'tag', + 'postTag', + 'type', + 'postType', + 'name', + 'postName', + 'description', + ]) { + tokens[item] = ''; + } + } else { + jsdoc.source.splice(spliceIdx, spliceCount - tagSourceOffset); + } + tagSource.splice(tagIdx + tagSourceOffset, spliceCount - tagSourceOffset); lastIndex = sourceIndex; diff --git a/src/rules/checkTagNames.js b/src/rules/checkTagNames.js index 478e6794c..146073f45 100644 --- a/src/rules/checkTagNames.js +++ b/src/rules/checkTagNames.js @@ -157,7 +157,9 @@ export default iterateJsdoc(({ const checkTagForTypedValidity = (jsdocTag, tagIndex) => { if (typedTagsAlwaysUnnecessary.has(jsdocTag.tag)) { utils.reportJSDoc(`'@${jsdocTag.tag}' is redundant when using a type system.`, jsdocTag, () => { - utils.removeTag(tagIndex); + utils.removeTag(tagIndex, { + removeEmptyBlock: true, + }); }, true); return true; } diff --git a/src/rules/tagLines.js b/src/rules/tagLines.js index ccc5e9d73..d3a900fb1 100644 --- a/src/rules/tagLines.js +++ b/src/rules/tagLines.js @@ -64,7 +64,9 @@ export default iterateJsdoc(({ if (dropEndLines && lastEmpty !== null && tagIdx === jsdoc.tags.length - 1) { const fixer = () => { - utils.removeTagItem(tagIdx, lastEmpty); + utils.removeTag(tagIdx, { + tagSourceOffset: lastEmpty, + }); }; utils.reportJSDoc( @@ -80,7 +82,9 @@ export default iterateJsdoc(({ if (reportIndex !== null) { const fixer = () => { - utils.removeTagItem(tagIdx, reportIndex); + utils.removeTag(tagIdx, { + tagSourceOffset: reportIndex, + }); }; utils.reportJSDoc( From 830e92a3ff7a5f25d6e3de9e83c7f31cc3c1e347 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Tue, 28 Mar 2023 16:04:32 -0400 Subject: [PATCH 018/273] Mostly working fixers --- src/rules/checkTagNames.js | 39 ++++++--- test/rules/assertions/checkTagNames.js | 115 +++++++++++++++++++++++-- 2 files changed, 135 insertions(+), 19 deletions(-) diff --git a/src/rules/checkTagNames.js b/src/rules/checkTagNames.js index 146073f45..c3e622dc8 100644 --- a/src/rules/checkTagNames.js +++ b/src/rules/checkTagNames.js @@ -136,18 +136,34 @@ export default iterateJsdoc(({ return true; }; - const tagRedundantlyChecksParamOrReturnTyped = (jsdocTag) => { + const reportWithTypeRemovalFixer = (message, jsdocTag, tagIndex, additionalTagChanges) => { + utils.reportJSDoc(message, jsdocTag, () => { + if (jsdocTag.description.trim()) { + utils.changeTag(jsdocTag, { + postType: '', + type: '', + ...additionalTagChanges, + }); + } else { + utils.removeTag(tagIndex, { + removeEmptyBlock: true, + }); + } + }, true); + }; + + const tagRedundantlyChecksParamOrReturnTyped = (jsdocTag, tagIndex) => { if (!typedTagsParamReturn.has(jsdocTag.tag)) { return false; } - if (!jsdocTag.description) { - report(`'@${jsdocTag.tag}' without a description is redundant when using a type system.`, null, jsdocTag); + if (!jsdocTag.description.trim()) { + reportWithTypeRemovalFixer(`'@${jsdocTag.tag}' without a description is redundant when using a type system.`, jsdocTag, tagIndex); return true; } if (jsdocTag.type) { - report(`Describing the type of '@${jsdocTag.tag}' is redundant when using a type system.`, null, jsdocTag); + reportWithTypeRemovalFixer(`Describing the type of '@${jsdocTag.tag}' is redundant when using a type system.`, jsdocTag, tagIndex); return true; } @@ -156,25 +172,24 @@ export default iterateJsdoc(({ const checkTagForTypedValidity = (jsdocTag, tagIndex) => { if (typedTagsAlwaysUnnecessary.has(jsdocTag.tag)) { - utils.reportJSDoc(`'@${jsdocTag.tag}' is redundant when using a type system.`, jsdocTag, () => { - utils.removeTag(tagIndex, { - removeEmptyBlock: true, - }); - }, true); + reportWithTypeRemovalFixer(`'@${jsdocTag.tag}' is redundant when using a type system.`, jsdocTag, tagIndex, { + postTag: '', + tag: '', + }); return true; } if (tagIsRedundantWhenTyped(jsdocTag)) { - report(`'@${jsdocTag.tag}' is generally redundant outside of \`declare\` contexts when using a type system.`, null, jsdocTag); + reportWithTypeRemovalFixer(`'@${jsdocTag.tag}' is generally redundant outside of \`declare\` contexts when using a type system.`, jsdocTag, tagIndex); return true; } if (jsdocTag.tag === 'template' && !jsdocTag.name) { - report('\'@template\' without a name is redundant when using a type system.', null, jsdocTag); + reportWithTypeRemovalFixer('\'@template\' without a name is redundant when using a type system.', jsdocTag, tagIndex); return true; } - if (tagRedundantlyChecksParamOrReturnTyped(jsdocTag)) { + if (tagRedundantlyChecksParamOrReturnTyped(jsdocTag, tagIndex)) { return true; } diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index 48dfdd8c3..19df2f98d 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -46,13 +46,13 @@ export default { }, { code: ` - /** @abstract */ + /** @type {string} - extra info */ let a; `, errors: [ { line: 2, - message: '\'@abstract\' is generally redundant outside of `declare` contexts when using a type system.', + message: '\'@type\' is redundant when using a type system.', }, ], options: [ @@ -60,17 +60,45 @@ export default { typed: true, }, ], + output: ` + /** - extra info */ + let a; + `, }, { code: ` - const a = { - /** @abstract */ - b: true, - }; + /** + * Existing comment. + * @type {string} + */ + let a; `, errors: [ { - line: 3, + line: 4, + message: '\'@type\' is redundant when using a type system.', + }, + ], + options: [ + { + typed: true, + }, + ], + output: ` + /** + * Existing comment. + */ + let a; + `, + }, + { + code: ` + /** @abstract */ + let a; + `, + errors: [ + { + line: 2, message: '\'@abstract\' is generally redundant outside of `declare` contexts when using a type system.', }, ], @@ -79,7 +107,34 @@ export default { typed: true, }, ], + output: ` + let a; + `, }, + // { + // code: ` + // const a = { + // /** @abstract */ + // b: true, + // }; + // `, + // errors: [ + // { + // line: 3, + // message: '\'@abstract\' is generally redundant outside of `declare` contexts when using a type system.', + // }, + // ], + // options: [ + // { + // typed: true, + // }, + // ], + // output: ` + // const a = { + // b: true, + // }; + // `, + // }, { code: ` /** @template */ @@ -96,6 +151,9 @@ export default { typed: true, }, ], + output: ` + let a; + `, }, { code: ` @@ -117,6 +175,13 @@ export default { typed: true, }, ], + output: ` + /** + * Prior description. + * + */ + let a; + `, }, { code: ` @@ -134,6 +199,9 @@ export default { typed: true, }, ], + output: ` + function takesOne(param) {} + `, }, { code: ` @@ -151,6 +219,35 @@ export default { typed: true, }, ], + output: ` + function takesOne(param) {} + `, + }, + { + code: ` + /** + * Existing comment + * @param {boolean} param + */ + function takesOne(param) {} + `, + errors: [ + { + line: 4, + message: '\'@param\' without a description is redundant when using a type system.', + }, + ], + options: [ + { + typed: true, + }, + ], + output: ` + /** + * Existing comment + */ + function takesOne(param) {} + `, }, { code: ` @@ -168,6 +265,10 @@ export default { typed: true, }, ], + output: ` + /** @param param - takes description */ + function takesOne(param) {} + `, }, { code: ` From 667753a9b749f85297146bd1fec1e73f87e97215 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Tue, 28 Mar 2023 16:05:05 -0400 Subject: [PATCH 019/273] npm run create-readme --- README.md | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 406b9c4bc..60feaadd2 100644 --- a/README.md +++ b/README.md @@ -4576,15 +4576,21 @@ let a; // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] // Message: '@type' is redundant when using a type system. -/** @abstract */ +/** @type {string} - extra info */ let a; // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: '@abstract' is generally redundant outside of `declare` contexts when using a type system. +// Message: '@type' is redundant when using a type system. -const a = { - /** @abstract */ - b: true, -}; +/** + * Existing comment. + * @type {string} + */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@type' is redundant when using a type system. + +/** @abstract */ +let a; // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] // Message: '@abstract' is generally redundant outside of `declare` contexts when using a type system. @@ -4612,6 +4618,14 @@ function takesOne(param) {} // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] // Message: '@param' without a description is redundant when using a type system. +/** + * Existing comment + * @param {boolean} param + */ +function takesOne(param) {} +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@param' without a description is redundant when using a type system. + /** @param {boolean} param - takes description */ function takesOne(param) {} // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] From 2d84367505e4c9c23350ed9f732937635223c299 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Tue, 28 Mar 2023 16:36:33 -0400 Subject: [PATCH 020/273] Corrected output for clearing tags --- README.md | 7 ++++ src/iterateJsdoc.js | 4 +- test/rules/assertions/checkTagNames.js | 54 ++++++++++++++------------ 3 files changed, 38 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 60feaadd2..0e7a58336 100644 --- a/README.md +++ b/README.md @@ -4594,6 +4594,13 @@ let a; // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] // Message: '@abstract' is generally redundant outside of `declare` contexts when using a type system. +const a = { + /** @abstract */ + b: true, +}; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@abstract' is generally redundant outside of `declare` contexts when using a type system. + /** @template */ let a; // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index d7f5161fc..f563bce37 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -137,9 +137,7 @@ const getUtils = ( const replacement = utils.stringify(jsdoc, specRewire); if (!replacement) { - return fixer.removeRange([ - 0, jsdocNode.range[1], - ]); + return fixer.removeRange(jsdocNode.range); } return fixer.replaceText(jsdocNode, replacement); diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index 19df2f98d..5fd29a24d 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -41,6 +41,7 @@ export default { }, ], output: ` + let a; `, }, @@ -108,33 +109,35 @@ export default { }, ], output: ` + let a; `, }, - // { - // code: ` - // const a = { - // /** @abstract */ - // b: true, - // }; - // `, - // errors: [ - // { - // line: 3, - // message: '\'@abstract\' is generally redundant outside of `declare` contexts when using a type system.', - // }, - // ], - // options: [ - // { - // typed: true, - // }, - // ], - // output: ` - // const a = { - // b: true, - // }; - // `, - // }, + { + code: ` + const a = { + /** @abstract */ + b: true, + }; + `, + errors: [ + { + line: 3, + message: '\'@abstract\' is generally redundant outside of `declare` contexts when using a type system.', + }, + ], + options: [ + { + typed: true, + }, + ], + output: ` + const a = { + + b: true, + }; + `, + }, { code: ` /** @template */ @@ -152,6 +155,7 @@ export default { }, ], output: ` + let a; `, }, @@ -200,6 +204,7 @@ export default { }, ], output: ` + function takesOne(param) {} `, }, @@ -220,6 +225,7 @@ export default { }, ], output: ` + function takesOne(param) {} `, }, From 249a55b26de45f5d1abcb2d12c144a3ce0649225 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 29 Mar 2023 05:35:51 -0700 Subject: [PATCH 021/273] remove preceding whitespace --- README.md | 15 ++++++- src/iterateJsdoc.js | 18 +++++++- test/rules/assertions/checkTagNames.js | 62 ++++++++++++++++++++++---- 3 files changed, 85 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 0e7a58336..b0f4988d8 100644 --- a/README.md +++ b/README.md @@ -4571,6 +4571,19 @@ Additionally, for `@param` and `@return` tags, the rule will flag unnecessary ty The following patterns are considered problems: ````js +/** @type {string} */let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@type' is redundant when using a type system. + +/** @type {string} */ let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@type' is redundant when using a type system. + +/** @type {string} */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@type' is redundant when using a type system. + /** @type {string} */ let a; // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] @@ -4608,7 +4621,7 @@ let a; /** * Prior description. - * + * * @template */ let a; diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index f563bce37..a04dc9924 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -137,7 +137,23 @@ const getUtils = ( const replacement = utils.stringify(jsdoc, specRewire); if (!replacement) { - return fixer.removeRange(jsdocNode.range); + const text = sourceCode.getText(); + const lastLineBreakPos = text.slice( + 0, jsdocNode.range[0], + ).search(/\n[ \t]*$/u); + if (lastLineBreakPos > -1) { + return fixer.removeRange([ + lastLineBreakPos, jsdocNode.range[1], + ]); + } + + return fixer.removeRange( + (/\s/u).test(text.charAt(jsdocNode.range[1])) ? + [ + jsdocNode.range[0], jsdocNode.range[1] + 1, + ] : + jsdocNode.range, + ); } return fixer.replaceText(jsdocNode, replacement); diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index 5fd29a24d..522cc6878 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -24,6 +24,58 @@ const ONE_CLOSURE_TAGS_COMMENT = buildTagBlock({ export default { invalid: [ + { + code: `/** @type {string} */let a; + `, + errors: [ + { + line: 1, + message: '\'@type\' is redundant when using a type system.', + }, + ], + options: [ + { + typed: true, + }, + ], + output: `let a; + `, + }, + { + code: `/** @type {string} */ let a; + `, + errors: [ + { + line: 1, + message: '\'@type\' is redundant when using a type system.', + }, + ], + options: [ + { + typed: true, + }, + ], + output: `let a; + `, + }, + { + code: `/** @type {string} */ + let a; + `, + errors: [ + { + line: 1, + message: '\'@type\' is redundant when using a type system.', + }, + ], + options: [ + { + typed: true, + }, + ], + output: ` let a; + `, + }, { code: ` /** @type {string} */ @@ -41,7 +93,6 @@ export default { }, ], output: ` - let a; `, }, @@ -109,7 +160,6 @@ export default { }, ], output: ` - let a; `, }, @@ -133,7 +183,6 @@ export default { ], output: ` const a = { - b: true, }; `, @@ -155,7 +204,6 @@ export default { }, ], output: ` - let a; `, }, @@ -163,7 +211,7 @@ export default { code: ` /** * Prior description. - * + * * @template */ let a; @@ -182,7 +230,7 @@ export default { output: ` /** * Prior description. - * + * */ let a; `, @@ -204,7 +252,6 @@ export default { }, ], output: ` - function takesOne(param) {} `, }, @@ -225,7 +272,6 @@ export default { }, ], output: ` - function takesOne(param) {} `, }, From ede24942ece528f6c3268e8fe9129e834f203eed Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Fri, 31 Mar 2023 11:34:03 -0400 Subject: [PATCH 022/273] Remove no-types overlap --- README.md | 23 ------- src/rules/checkTagNames.js | 29 --------- test/rules/assertions/checkTagNames.js | 87 -------------------------- 3 files changed, 139 deletions(-) diff --git a/README.md b/README.md index b0f4988d8..1331504e2 100644 --- a/README.md +++ b/README.md @@ -4628,29 +4628,6 @@ let a; // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] // Message: '@template' without a name is redundant when using a type system. -/** @param {string} */ -function takesOne(param) {} -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: '@param' without a description is redundant when using a type system. - -/** @param {boolean} param */ -function takesOne(param) {} -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: '@param' without a description is redundant when using a type system. - -/** - * Existing comment - * @param {boolean} param - */ -function takesOne(param) {} -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: '@param' without a description is redundant when using a type system. - -/** @param {boolean} param - takes description */ -function takesOne(param) {} -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: Describing the type of '@param' is redundant when using a type system. - /** @typoo {string} */ let a; // Message: Invalid JSDoc tag name "typoo". diff --git a/src/rules/checkTagNames.js b/src/rules/checkTagNames.js index c3e622dc8..66811a62f 100644 --- a/src/rules/checkTagNames.js +++ b/src/rules/checkTagNames.js @@ -56,13 +56,6 @@ const typedTagsUnnecessaryOutsideDeclare = new Set([ 'this', ]); -const typedTagsParamReturn = new Set([ - 'param', - 'parameter', - 'return', - 'returns', -]); - export default iterateJsdoc(({ sourceCode, jsdoc, @@ -152,24 +145,6 @@ export default iterateJsdoc(({ }, true); }; - const tagRedundantlyChecksParamOrReturnTyped = (jsdocTag, tagIndex) => { - if (!typedTagsParamReturn.has(jsdocTag.tag)) { - return false; - } - - if (!jsdocTag.description.trim()) { - reportWithTypeRemovalFixer(`'@${jsdocTag.tag}' without a description is redundant when using a type system.`, jsdocTag, tagIndex); - return true; - } - - if (jsdocTag.type) { - reportWithTypeRemovalFixer(`Describing the type of '@${jsdocTag.tag}' is redundant when using a type system.`, jsdocTag, tagIndex); - return true; - } - - return false; - }; - const checkTagForTypedValidity = (jsdocTag, tagIndex) => { if (typedTagsAlwaysUnnecessary.has(jsdocTag.tag)) { reportWithTypeRemovalFixer(`'@${jsdocTag.tag}' is redundant when using a type system.`, jsdocTag, tagIndex, { @@ -189,10 +164,6 @@ export default iterateJsdoc(({ return true; } - if (tagRedundantlyChecksParamOrReturnTyped(jsdocTag, tagIndex)) { - return true; - } - return false; }; diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index 522cc6878..de58db2a5 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -235,93 +235,6 @@ export default { let a; `, }, - { - code: ` - /** @param {string} */ - function takesOne(param) {} - `, - errors: [ - { - line: 2, - message: '\'@param\' without a description is redundant when using a type system.', - }, - ], - options: [ - { - typed: true, - }, - ], - output: ` - function takesOne(param) {} - `, - }, - { - code: ` - /** @param {boolean} param */ - function takesOne(param) {} - `, - errors: [ - { - line: 2, - message: '\'@param\' without a description is redundant when using a type system.', - }, - ], - options: [ - { - typed: true, - }, - ], - output: ` - function takesOne(param) {} - `, - }, - { - code: ` - /** - * Existing comment - * @param {boolean} param - */ - function takesOne(param) {} - `, - errors: [ - { - line: 4, - message: '\'@param\' without a description is redundant when using a type system.', - }, - ], - options: [ - { - typed: true, - }, - ], - output: ` - /** - * Existing comment - */ - function takesOne(param) {} - `, - }, - { - code: ` - /** @param {boolean} param - takes description */ - function takesOne(param) {} - `, - errors: [ - { - line: 2, - message: 'Describing the type of \'@param\' is redundant when using a type system.', - }, - ], - options: [ - { - typed: true, - }, - ], - output: ` - /** @param param - takes description */ - function takesOne(param) {} - `, - }, { code: ` /** @typoo {string} */ From abf466d10e7e8692219a215951576cf22c1469cb Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Sat, 1 Apr 2023 11:02:48 -0400 Subject: [PATCH 023/273] Remove default text check --- src/rules/checkTagNames.js | 4 ++-- test/rules/assertions/checkTagNames.js | 15 ++------------- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/src/rules/checkTagNames.js b/src/rules/checkTagNames.js index 66811a62f..393c0357f 100644 --- a/src/rules/checkTagNames.js +++ b/src/rules/checkTagNames.js @@ -114,7 +114,7 @@ export default iterateJsdoc(({ return false; } - if (jsdocTag.description.trim() === 'default' || jsdocTag.name === 'default') { + if (jsdocTag.name === 'default') { return false; } @@ -155,7 +155,7 @@ export default iterateJsdoc(({ } if (tagIsRedundantWhenTyped(jsdocTag)) { - reportWithTypeRemovalFixer(`'@${jsdocTag.tag}' is generally redundant outside of \`declare\` contexts when using a type system.`, jsdocTag, tagIndex); + reportWithTypeRemovalFixer(`'@${jsdocTag.tag}' is redundant outside of ambient (\`declare\`/\`.d.ts\`) contexts when using a type system.`, jsdocTag, tagIndex); return true; } diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index de58db2a5..abb4bd918 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -151,7 +151,7 @@ export default { errors: [ { line: 2, - message: '\'@abstract\' is generally redundant outside of `declare` contexts when using a type system.', + message: '\'@abstract\' is redundant outside of ambient (`declare`/`.d.ts`) contexts when using a type system.', }, ], options: [ @@ -173,7 +173,7 @@ export default { errors: [ { line: 3, - message: '\'@abstract\' is generally redundant outside of `declare` contexts when using a type system.', + message: '\'@abstract\' is redundant outside of ambient (`declare`/`.d.ts`) contexts when using a type system.', }, ], options: [ @@ -938,17 +938,6 @@ export default { ], parser: require.resolve('@typescript-eslint/parser'), }, - { - code: ` - /** @abstract - default */ - let a; - `, - options: [ - { - typed: true, - }, - ], - }, { code: ` /** @template name */ From 7763b99e8b273d6a486c2c90c58b44fd298cab2a Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Sat, 1 Apr 2023 23:08:05 -0400 Subject: [PATCH 024/273] Fixed up defaulting and such --- README.md | 18 +++++++++------- src/rules/checkTagNames.js | 21 +++++++++++++------ test/rules/assertions/checkTagNames.js | 29 +++++++++++++++++++++++--- 3 files changed, 52 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 1331504e2..1f77c9324 100644 --- a/README.md +++ b/README.md @@ -4605,14 +4605,14 @@ let a; /** @abstract */ let a; // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: '@abstract' is generally redundant outside of `declare` contexts when using a type system. +// Message: '@abstract' is redundant outside of ambient (`declare`/`.d.ts`) contexts when using a type system. const a = { /** @abstract */ b: true, }; // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: '@abstract' is generally redundant outside of `declare` contexts when using a type system. +// Message: '@abstract' is redundant outside of ambient (`declare`/`.d.ts`) contexts when using a type system. /** @template */ let a; @@ -4984,6 +4984,14 @@ function Test() { The following patterns are not considered problems: ````js +/** @default 0 */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] + +/** @default 0 */ +declare let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] + /** @abstract */ let a; // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] @@ -5002,13 +5010,9 @@ function test() { } // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -/** @abstract - default */ -let a; -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] - /** @template name */ let a; -// "jsdoc/check-tag-names": ["error"|"warn", {"definedTags":["template"],"typed":true}] +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] /** @param param - takes information */ function takesOne(param) {} diff --git a/src/rules/checkTagNames.js b/src/rules/checkTagNames.js index 393c0357f..c4a76fc0f 100644 --- a/src/rules/checkTagNames.js +++ b/src/rules/checkTagNames.js @@ -25,6 +25,10 @@ const typedTagsAlwaysUnnecessary = new Set([ 'typedef', ]); +const typedTagsNeedingName = new Set([ + 'template', +]); + const typedTagsUnnecessaryOutsideDeclare = new Set([ 'abstract', 'access', @@ -114,7 +118,7 @@ export default iterateJsdoc(({ return false; } - if (jsdocTag.name === 'default') { + if (jsdocTag.tag === 'default') { return false; } @@ -159,8 +163,8 @@ export default iterateJsdoc(({ return true; } - if (jsdocTag.tag === 'template' && !jsdocTag.name) { - reportWithTypeRemovalFixer('\'@template\' without a name is redundant when using a type system.', jsdocTag, tagIndex); + if (typedTagsNeedingName.has(jsdocTag.tag) && !jsdocTag.name) { + reportWithTypeRemovalFixer(`'@${jsdocTag.tag}' without a name is redundant when using a type system.`, jsdocTag, tagIndex); return true; } @@ -178,10 +182,15 @@ export default iterateJsdoc(({ continue; } - if (utils.isValidTag(tagName, [ - ...definedTags, ...definedPreferredTags, ...definedNonPreferredTags, + const validTags = [ + ...definedTags, + ...definedPreferredTags, + ...definedNonPreferredTags, ...definedStructuredTags, - ])) { + ...typed ? typedTagsNeedingName : [], + ]; + + if (utils.isValidTag(tagName, validTags)) { let preferredTagName = utils.getPreferredTagName({ allowObjectReturn: true, defaultMessage: `Blacklisted tag found (\`@${tagName}\`)`, diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index abb4bd918..5b6c259d9 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -885,6 +885,32 @@ export default { }, ], valid: [ + { + code: ` + /** @default 0 */ + let a; + `, + filename: 'file.ts', + options: [ + { + typed: true, + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + }, + { + code: ` + /** @default 0 */ + declare let a; + `, + filename: 'file.d.ts', + options: [ + { + typed: true, + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + }, { code: ` /** @abstract */ @@ -945,9 +971,6 @@ export default { `, options: [ { - definedTags: [ - 'template', - ], typed: true, }, ], From f77cf2ac0b831a31c01cbebc498daa8ebe9e1ec2 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Mon, 3 Apr 2023 00:47:43 -0400 Subject: [PATCH 025/273] Added enableFixer option --- .README/rules/check-tag-names.md | 4 +++ README.md | 27 +++++++++++++++----- src/rules/checkTagNames.js | 16 +++++++----- test/rules/assertions/checkTagNames.js | 34 ++++++++++++++++++++++++++ 4 files changed, 69 insertions(+), 12 deletions(-) diff --git a/.README/rules/check-tag-names.md b/.README/rules/check-tag-names.md index 5c3ec3d05..7584aa04d 100644 --- a/.README/rules/check-tag-names.md +++ b/.README/rules/check-tag-names.md @@ -187,6 +187,10 @@ The format is as follows: } ``` +##### `enableFixer` + +Set to `false` to disable auto-removal of types that are redundant with the [`typed` option](#typed). + #### `jsxTags` If this is set to `true`, all of the following tags used to control JSX output are allowed: diff --git a/README.md b/README.md index 1f77c9324..395d34f82 100644 --- a/README.md +++ b/README.md @@ -4486,6 +4486,12 @@ The format is as follows: } ``` + + +##### enableFixer + +Set to `false` to disable auto-removal of types that are redundant with the [`typed` option](#user-content-typed). + #### jsxTags @@ -4575,6 +4581,10 @@ The following patterns are considered problems: // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] // Message: '@type' is redundant when using a type system. +/** @type {string} */let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"enableFixer":false,"typed":true}] +// Message: '@type' is redundant when using a type system. + /** @type {string} */ let a; // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] // Message: '@type' is redundant when using a type system. @@ -4607,6 +4617,11 @@ let a; // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] // Message: '@abstract' is redundant outside of ambient (`declare`/`.d.ts`) contexts when using a type system. +/** @abstract */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"enableFixer":false,"typed":true}] +// Message: '@abstract' is redundant outside of ambient (`declare`/`.d.ts`) contexts when using a type system. + const a = { /** @abstract */ b: true, @@ -12769,8 +12784,8 @@ A value indicating whether getters should be checked. Defaults to `false`. A value indicating whether setters should be checked. Defaults to `false`. - - + + ##### enableFixer A boolean on whether to enable the fixer (which adds an empty `@example` block). @@ -13708,8 +13723,8 @@ setters should be checked but only when there is no getter. This may be useful if one only wishes documentation on one of the two accessors. Defaults to `false`. - - + + ##### enableFixer A boolean on whether to enable the fixer (which adds an empty jsdoc block). @@ -16159,8 +16174,8 @@ function signature, it may appear that there is an actual property named An options object accepts the following optional properties: - - + + ##### enableFixer Whether to enable the fixer. Defaults to `true`. diff --git a/src/rules/checkTagNames.js b/src/rules/checkTagNames.js index c4a76fc0f..5950fc789 100644 --- a/src/rules/checkTagNames.js +++ b/src/rules/checkTagNames.js @@ -72,6 +72,7 @@ export default iterateJsdoc(({ }) => { const { definedTags = [], + enableFixer = true, jsxTags, typed, } = context.options[0] || {}; @@ -133,8 +134,8 @@ export default iterateJsdoc(({ return true; }; - const reportWithTypeRemovalFixer = (message, jsdocTag, tagIndex, additionalTagChanges) => { - utils.reportJSDoc(message, jsdocTag, () => { + const reportWithTagRemovalFixer = (message, jsdocTag, tagIndex, additionalTagChanges) => { + utils.reportJSDoc(message, jsdocTag, enableFixer ? () => { if (jsdocTag.description.trim()) { utils.changeTag(jsdocTag, { postType: '', @@ -146,12 +147,12 @@ export default iterateJsdoc(({ removeEmptyBlock: true, }); } - }, true); + } : null, true); }; const checkTagForTypedValidity = (jsdocTag, tagIndex) => { if (typedTagsAlwaysUnnecessary.has(jsdocTag.tag)) { - reportWithTypeRemovalFixer(`'@${jsdocTag.tag}' is redundant when using a type system.`, jsdocTag, tagIndex, { + reportWithTagRemovalFixer(`'@${jsdocTag.tag}' is redundant when using a type system.`, jsdocTag, tagIndex, { postTag: '', tag: '', }); @@ -159,12 +160,12 @@ export default iterateJsdoc(({ } if (tagIsRedundantWhenTyped(jsdocTag)) { - reportWithTypeRemovalFixer(`'@${jsdocTag.tag}' is redundant outside of ambient (\`declare\`/\`.d.ts\`) contexts when using a type system.`, jsdocTag, tagIndex); + reportWithTagRemovalFixer(`'@${jsdocTag.tag}' is redundant outside of ambient (\`declare\`/\`.d.ts\`) contexts when using a type system.`, jsdocTag, tagIndex); return true; } if (typedTagsNeedingName.has(jsdocTag.tag) && !jsdocTag.name) { - reportWithTypeRemovalFixer(`'@${jsdocTag.tag}' without a name is redundant when using a type system.`, jsdocTag, tagIndex); + reportWithTagRemovalFixer(`'@${jsdocTag.tag}' without a name is redundant when using a type system.`, jsdocTag, tagIndex); return true; } @@ -244,6 +245,9 @@ export default iterateJsdoc(({ }, type: 'array', }, + enableFixer: { + type: 'boolean', + }, jsxTags: { type: 'boolean', }, diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index 5b6c259d9..291bf9b2e 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -41,6 +41,22 @@ export default { output: `let a; `, }, + { + code: `/** @type {string} */let a; + `, + errors: [ + { + line: 1, + message: '\'@type\' is redundant when using a type system.', + }, + ], + options: [ + { + enableFixer: false, + typed: true, + }, + ], + }, { code: `/** @type {string} */ let a; `, @@ -163,6 +179,24 @@ export default { let a; `, }, + { + code: ` + /** @abstract */ + let a; + `, + errors: [ + { + line: 2, + message: '\'@abstract\' is redundant outside of ambient (`declare`/`.d.ts`) contexts when using a type system.', + }, + ], + options: [ + { + enableFixer: false, + typed: true, + }, + ], + }, { code: ` const a = { From d36b6d52693b45af42a7abd52a4ea125b5967745 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Mon, 10 Apr 2023 16:24:34 -0400 Subject: [PATCH 026/273] Account for null node --- README.md | 17 +++++++++++++++++ src/rules/checkTagNames.js | 4 +++- test/rules/assertions/checkTagNames.js | 21 +++++++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 395d34f82..7a4600eb2 100644 --- a/README.md +++ b/README.md @@ -5312,6 +5312,23 @@ export function transient(target?: T): T { * @internal */ // Settings: {"jsdoc":{"mode":"typescript"}} + +interface WebTwain { + /** + * Converts the images specified by the indices to base64 synchronously. + * @function WebTwain#ConvertToBase64 + * @returns {Base64Result} + + ConvertToBase64(): Base64Result; + */ + + /** + * Converts the images specified by the indices to base64 asynchronously. + * @function WebTwain#ConvertToBase64 + * @returns {boolean} + */ + ConvertToBase64(): boolean; +} ```` diff --git a/src/rules/checkTagNames.js b/src/rules/checkTagNames.js index 5950fc789..aa03da4c8 100644 --- a/src/rules/checkTagNames.js +++ b/src/rules/checkTagNames.js @@ -123,7 +123,9 @@ export default iterateJsdoc(({ return false; } - if (context.getFilename().endsWith('.d.ts') && node.parent.type === 'Program') { + if (context.getFilename().endsWith('.d.ts') && [ + 'Program', null, undefined, + ].includes(node?.parent?.type)) { return false; } diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index 291bf9b2e..9209145bc 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -1282,5 +1282,26 @@ export default { }, }, }, + { + code: ` + interface WebTwain { + /** + * Converts the images specified by the indices to base64 synchronously. + * @function WebTwain#ConvertToBase64 + * @returns {Base64Result} + + ConvertToBase64(): Base64Result; + */ + + /** + * Converts the images specified by the indices to base64 asynchronously. + * @function WebTwain#ConvertToBase64 + * @returns {boolean} + */ + ConvertToBase64(): boolean; + } + `, + parser: require.resolve('@typescript-eslint/parser'), + }, ], }; From cebf94ff5f0231530264d57c1db2175b3934fd9f Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 10 Apr 2023 14:22:48 -0700 Subject: [PATCH 027/273] fix: ensure `check-tag-names` is added to typescript configs --- src/index.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/index.js b/src/index.js index 65b8e1cbd..fca61ff90 100644 --- a/src/index.js +++ b/src/index.js @@ -173,6 +173,11 @@ const createRecommendedTypeScriptRuleset = (warnOrError) => { rules: { ...ruleset.rules, /* eslint-disable indent -- Extra indent to avoid use by auto-rule-editing */ + 'jsdoc/check-tag-names': [ + warnOrError, { + typed: true, + }, + ], 'jsdoc/no-types': warnOrError, 'jsdoc/require-param-type': 'off', 'jsdoc/require-property-type': 'off', From 47559e64a43476b862bcac491c9079e7de50ce4e Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 10 Apr 2023 14:32:29 -0700 Subject: [PATCH 028/273] docs(`check-tag-names`): minor doc issues --- .README/rules/check-tag-names.md | 8 +++----- README.md | 16 +++++++--------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/.README/rules/check-tag-names.md b/.README/rules/check-tag-names.md index 7584aa04d..83797184f 100644 --- a/.README/rules/check-tag-names.md +++ b/.README/rules/check-tag-names.md @@ -191,7 +191,7 @@ The format is as follows: Set to `false` to disable auto-removal of types that are redundant with the [`typed` option](#typed). -#### `jsxTags` +##### `jsxTags` If this is set to `true`, all of the following tags used to control JSX output are allowed: @@ -204,7 +204,7 @@ jsxRuntime For more information, see the [babel documentation](https://babeljs.io/docs/en/babel-plugin-transform-react-jsx). -#### `typed` +##### `typed` If this is set to `true`, additionally checks for tag names that are redundant when using a type checker such as TypeScript. @@ -259,14 +259,12 @@ static this ``` -Additionally, for `@param` and `@return` tags, the rule will flag unnecessary type descriptions (e.g. `@param {string}`). - ||| |---|---| |Context|everywhere| |Tags|N/A| |Recommended|true| -|Options|`definedTags`| +|Options|`definedTags`, `enableFixer`, `jsxTags`, `typed`| |Settings|`tagNamePreference`, `mode`| diff --git a/README.md b/README.md index 7a4600eb2..8905af2bb 100644 --- a/README.md +++ b/README.md @@ -4492,9 +4492,9 @@ The format is as follows: Set to `false` to disable auto-removal of types that are redundant with the [`typed` option](#user-content-typed). - - -#### jsxTags + + +##### jsxTags If this is set to `true`, all of the following tags used to control JSX output are allowed: @@ -4507,9 +4507,9 @@ jsxRuntime For more information, see the [babel documentation](https://babeljs.io/docs/en/babel-plugin-transform-react-jsx). - - -#### typed + + +##### typed If this is set to `true`, additionally checks for tag names that are redundant when using a type checker such as TypeScript. @@ -4564,14 +4564,12 @@ static this ``` -Additionally, for `@param` and `@return` tags, the rule will flag unnecessary type descriptions (e.g. `@param {string}`). - ||| |---|---| |Context|everywhere| |Tags|N/A| |Recommended|true| -|Options|`definedTags`| +|Options|`definedTags`, `enableFixer`, `jsxTags`, `typed`| |Settings|`tagNamePreference`, `mode`| The following patterns are considered problems: From 33628b4d5298b687288b2f3dcef58ed2215fd0af Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 8 Apr 2023 14:58:07 -0700 Subject: [PATCH 029/273] feat(`no-blank-block-descriptions`): add rule; fixes #982 --- .README/README.md | 1 + .README/rules/no-blank-block-descriptions.md | 17 ++++ README.md | 71 ++++++++++++++ src/index.js | 3 + src/iterateJsdoc.js | 46 +++++++++ src/rules/noBlankBlockDescriptions.js | 67 +++++++++++++ .../assertions/noBlankBlockDescriptions.js | 98 +++++++++++++++++++ test/rules/ruleNames.json | 1 + 8 files changed, 304 insertions(+) create mode 100644 .README/rules/no-blank-block-descriptions.md create mode 100644 src/rules/noBlankBlockDescriptions.js create mode 100644 test/rules/assertions/noBlankBlockDescriptions.js diff --git a/.README/README.md b/.README/README.md index 0141860f7..c641d8568 100644 --- a/.README/README.md +++ b/.README/README.md @@ -606,6 +606,7 @@ selector). {"gitdown": "include", "file": "./rules/multiline-blocks.md"} {"gitdown": "include", "file": "./rules/newline-after-description.md"} {"gitdown": "include", "file": "./rules/no-bad-blocks.md"} +{"gitdown": "include", "file": "./rules/no-blank-block-descriptions.md"} {"gitdown": "include", "file": "./rules/no-defaults.md"} {"gitdown": "include", "file": "./rules/no-missing-syntax.md"} {"gitdown": "include", "file": "./rules/no-multi-asterisks.md"} diff --git a/.README/rules/no-blank-block-descriptions.md b/.README/rules/no-blank-block-descriptions.md new file mode 100644 index 000000000..c175c0b09 --- /dev/null +++ b/.README/rules/no-blank-block-descriptions.md @@ -0,0 +1,17 @@ +### `no-blank-block-descriptions` + +If tags are present, this rule will prevent empty lines in the +block description. + +If no tags are present, this rule will prevent extra empty lines +in the block description. + +||| +|---|---| +|Context|everywhere| +|Tags|(Block description)| +|Recommended|false| +|Settings|| +|Options|| + + diff --git a/README.md b/README.md index 8905af2bb..3f684733a 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,7 @@ JSDoc linting rules for ESLint. * [`multiline-blocks`](#user-content-eslint-plugin-jsdoc-rules-multiline-blocks) * [`newline-after-description`](#user-content-eslint-plugin-jsdoc-rules-newline-after-description) * [`no-bad-blocks`](#user-content-eslint-plugin-jsdoc-rules-no-bad-blocks) + * [`no-blank-block-descriptions`](#user-content-eslint-plugin-jsdoc-rules-no-blank-block-descriptions) * [`no-defaults`](#user-content-eslint-plugin-jsdoc-rules-no-defaults) * [`no-missing-syntax`](#user-content-eslint-plugin-jsdoc-rules-no-missing-syntax) * [`no-multi-asterisks`](#user-content-eslint-plugin-jsdoc-rules-no-multi-asterisks) @@ -9225,6 +9226,76 @@ function quux (foo) { ```` + + +### no-blank-block-descriptions + +If tags are present, this rule will prevent empty lines in the +block description. + +If no tags are present, this rule will prevent extra empty lines +in the block description. + +||| +|---|---| +|Context|everywhere| +|Tags|(Block description)| +|Recommended|false| +|Settings|| +|Options|| + +The following patterns are considered problems: + +````js +/** + * + * @param {number} x + */ +function functionWithClearName(x) {} +// Message: There should be no blank lines in block descriptions followed by tags. + +/** + * + * + */ +function functionWithClearName() {} +// Message: There should be no extra blank lines in block descriptions not followed by tags. +```` + +The following patterns are not considered problems: + +````js +/** + * Non-empty description + * @param {number} x + */ +function functionWithClearName(x) {} + +/** + * @param {number} x + */ +function functionWithClearName(x) {} + +/** + * + */ +function functionWithClearName() {} + +/** + */ +function functionWithClearName() {} + +/** */ +function functionWithClearName() {} + +/** Some desc. */ +function functionWithClearName() {} + +/** @someTag */ +function functionWithClearName() {} +```` + + ### no-defaults diff --git a/src/index.js b/src/index.js index fca61ff90..cd20aee26 100644 --- a/src/index.js +++ b/src/index.js @@ -16,6 +16,7 @@ import matchName from './rules/matchName'; import multilineBlocks from './rules/multilineBlocks'; import newlineAfterDescription from './rules/newlineAfterDescription'; import noBadBlocks from './rules/noBadBlocks'; +import noBlankBlockDescriptions from './rules/noBlankBlockDescriptions'; import noDefaults from './rules/noDefaults'; import noMissingSyntax from './rules/noMissingSyntax'; import noMultiAsterisks from './rules/noMultiAsterisks'; @@ -70,6 +71,7 @@ const index = { 'multiline-blocks': multilineBlocks, 'newline-after-description': newlineAfterDescription, 'no-bad-blocks': noBadBlocks, + 'no-blank-block-descriptions': noBlankBlockDescriptions, 'no-defaults': noDefaults, 'no-missing-syntax': noMissingSyntax, 'no-multi-asterisks': noMultiAsterisks, @@ -129,6 +131,7 @@ const createRecommendedRuleset = (warnOrError) => { 'jsdoc/multiline-blocks': warnOrError, 'jsdoc/newline-after-description': warnOrError, 'jsdoc/no-bad-blocks': 'off', + 'jsdoc/no-blank-block-descriptions': 'off', 'jsdoc/no-defaults': 'off', 'jsdoc/no-missing-syntax': 'off', 'jsdoc/no-multi-asterisks': warnOrError, diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index a04dc9924..233002ead 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -254,6 +254,52 @@ const getUtils = ( }; }; + utils.setBlockDescription = (setter) => { + const descLines = []; + let startIdx; + let endIdx; + let info; + + jsdoc.source.some(({ + tokens: { + description, + start, + delimiter, + postDelimiter, + tag, + end, + }, + }, idx) => { + if (delimiter === '/**') { + return false; + } + + if (startIdx === undefined) { + startIdx = idx; + info = { + delimiter, + postDelimiter, + start, + }; + } + + if (tag || end) { + endIdx = idx; + return true; + } + + descLines.push(description); + return false; + }); + + /* istanbul ignore else -- Won't be called if missing */ + if (descLines.length) { + jsdoc.source.splice( + startIdx, endIdx - startIdx, ...setter(info, seedTokens, descLines), + ); + } + }; + utils.setDescriptionLines = (matcher, setter) => { let finalIdx = 0; jsdoc.source.some(({ diff --git a/src/rules/noBlankBlockDescriptions.js b/src/rules/noBlankBlockDescriptions.js new file mode 100644 index 000000000..97aae5e28 --- /dev/null +++ b/src/rules/noBlankBlockDescriptions.js @@ -0,0 +1,67 @@ +import iterateJsdoc from '../iterateJsdoc'; + +const anyWhitespaceLines = /^\s*$/u; +const atLeastTwoLinesWhitespace = /^[ \t]*\n[ \t]*\n\s*$/u; + +export default iterateJsdoc(({ + jsdoc, + utils, +}) => { + const { + description, + descriptions, + lastDescriptionLine, + } = utils.getDescription(); + + const regex = jsdoc.tags.length ? + anyWhitespaceLines : + atLeastTwoLinesWhitespace; + + if (descriptions.length && regex.test(description)) { + if (jsdoc.tags.length) { + utils.reportJSDoc( + 'There should be no blank lines in block descriptions followed by tags.', + { + line: lastDescriptionLine, + }, + () => { + utils.setBlockDescription(() => { + // Remove all lines + return []; + }); + }, + ); + } else { + utils.reportJSDoc( + 'There should be no extra blank lines in block descriptions not followed by tags.', + { + line: lastDescriptionLine, + }, + () => { + utils.setBlockDescription((info, seedTokens) => { + return [ + // Keep the starting line + { + tokens: seedTokens({ + ...info, + description: '', + }), + }, + ]; + }); + }, + ); + } + } +}, { + iterateAllJsdocs: true, + meta: { + docs: { + description: 'Detects and removes extra lines of a blank block description', + url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-blank-block-descriptions', + }, + fixable: 'whitespace', + schema: [], + type: 'layout', + }, +}); diff --git a/test/rules/assertions/noBlankBlockDescriptions.js b/test/rules/assertions/noBlankBlockDescriptions.js new file mode 100644 index 000000000..a4591cac9 --- /dev/null +++ b/test/rules/assertions/noBlankBlockDescriptions.js @@ -0,0 +1,98 @@ +export default { + invalid: [ + { + code: ` + /** + * + * @param {number} x + */ + function functionWithClearName(x) {} + `, + errors: [ + { + line: 3, + message: 'There should be no blank lines in block descriptions followed by tags.', + }, + ], + output: ` + /** + * @param {number} x + */ + function functionWithClearName(x) {} + `, + }, + { + code: ` + /** + * + * + */ + function functionWithClearName() {} + `, + errors: [ + { + line: 4, + message: 'There should be no extra blank lines in block descriptions not followed by tags.', + }, + ], + output: ` + /** + * + */ + function functionWithClearName() {} + `, + }, + ], + valid: [ + { + code: ` + /** + * Non-empty description + * @param {number} x + */ + function functionWithClearName(x) {} + `, + }, + { + code: ` + /** + * @param {number} x + */ + function functionWithClearName(x) {} + `, + }, + { + code: ` + /** + * + */ + function functionWithClearName() {} + `, + }, + { + code: ` + /** + */ + function functionWithClearName() {} + `, + }, + { + code: ` + /** */ + function functionWithClearName() {} + `, + }, + { + code: ` + /** Some desc. */ + function functionWithClearName() {} + `, + }, + { + code: ` + /** @someTag */ + function functionWithClearName() {} + `, + }, + ], +}; diff --git a/test/rules/ruleNames.json b/test/rules/ruleNames.json index c27aba5ae..bfb50b242 100644 --- a/test/rules/ruleNames.json +++ b/test/rules/ruleNames.json @@ -17,6 +17,7 @@ "multiline-blocks", "newline-after-description", "no-bad-blocks", + "no-blank-block-descriptions", "no-defaults", "no-missing-syntax", "no-multi-asterisks", From f1ea35219e54e63e95755ff8d4d881ae0c199600 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 10 Apr 2023 12:33:37 -0700 Subject: [PATCH 030/273] fix: for "typescript" mode, require object shorthand or index signatures; fixes #1001 BREAKING CHANGE: For typescript mode, one must use object shorthand or index signatures, e.g., `{[key: string]: number}` or `{a: string, b: number}` --- .README/rules/check-types.md | 13 +++++++--- README.md | 19 +++++++++----- src/rules/checkTypes.js | 39 ++++++++++++++++++++++++----- test/rules/assertions/checkTypes.js | 14 +++-------- 4 files changed, 59 insertions(+), 26 deletions(-) diff --git a/.README/rules/check-types.md b/.README/rules/check-types.md index 999f6fc64..c6cd0f319 100644 --- a/.README/rules/check-types.md +++ b/.README/rules/check-types.md @@ -103,7 +103,8 @@ object. However, `Object.create(null)` objects are not `instanceof Object`, however, so in the case of such a plain object we lower-case to indicate possible support -for these objects. Also, nowadays, TypeScript also discourages use of `Object` +for these objects. Also, nowadays, TypeScript also [discourages](https://www.typescriptlang.org/docs/handbook/declaration-files/do-s-and-don-ts.html#:~:text=%E2%9D%8C%20Don't%20ever%20use,used%20appropriately%20in%20JavaScript%20code.) +use of `Object` as a lone type. However, one additional complexity is that TypeScript allows and actually [currently requires](https://github.com/microsoft/TypeScript/issues/20555) `Object` (with the initial upper-case) if used in the syntax @@ -112,8 +113,14 @@ adhere to that which [JSDoc documents](https://jsdoc.app/tags-type.html). So, for optimal compatibility with TypeScript (especially since TypeScript tools can be used on plain JavaScript with JSDoc), we are now requiring this -TypeScript approach by default (if you set `object` type `preferredTypes` in -TypeScript mode, the defaults will not apply). +TypeScript approach by default in non-"typescript" mode (if you set +`object` type `preferredTypes` in TypeScript mode, the defaults will +not apply). + +However, for "typescript" mode, a still better choice exists—using index signatures such as `{[key: string]: string}` or using a more precise +shorthand object syntax (e.g., `{a: string, b: number}`). This is superior +for TypeScript because the likes of `Object` is not useable +in native TypeScript syntax, even if it is allowed within JSDoc. Basically, for primitives, we want to define the type as a primitive, because that's what we use in 99.9% of cases. For everything else, we use the type diff --git a/README.md b/README.md index 3f684733a..a05e96407 100644 --- a/README.md +++ b/README.md @@ -5442,7 +5442,8 @@ object. However, `Object.create(null)` objects are not `instanceof Object`, however, so in the case of such a plain object we lower-case to indicate possible support -for these objects. Also, nowadays, TypeScript also discourages use of `Object` +for these objects. Also, nowadays, TypeScript also [discourages](https://www.typescriptlang.org/docs/handbook/declaration-files/do-s-and-don-ts.html#:~:text=%E2%9D%8C%20Don't%20ever%20use,used%20appropriately%20in%20JavaScript%20code.) +use of `Object` as a lone type. However, one additional complexity is that TypeScript allows and actually [currently requires](https://github.com/microsoft/TypeScript/issues/20555) `Object` (with the initial upper-case) if used in the syntax @@ -5451,8 +5452,14 @@ adhere to that which [JSDoc documents](https://jsdoc.app/tags-type.html). So, for optimal compatibility with TypeScript (especially since TypeScript tools can be used on plain JavaScript with JSDoc), we are now requiring this -TypeScript approach by default (if you set `object` type `preferredTypes` in -TypeScript mode, the defaults will not apply). +TypeScript approach by default in non-"typescript" mode (if you set +`object` type `preferredTypes` in TypeScript mode, the defaults will +not apply). + +However, for "typescript" mode, a still better choice exists—using index signatures such as `{[key: string]: string}` or using a more precise +shorthand object syntax (e.g., `{a: string, b: number}`). This is superior +for TypeScript because the likes of `Object` is not useable +in native TypeScript syntax, even if it is allowed within JSDoc. Basically, for primitives, we want to define the type as a primitive, because that's what we use in 99.9% of cases. For everything else, we use the type @@ -6132,7 +6139,7 @@ function quux (foo) { } // Settings: {"jsdoc":{"mode":"typescript"}} -// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object<>". +// Message: Use object shorthand or index signatures instead of `object`, e.g., `{[key: string]: string}` /** * @@ -6414,7 +6421,7 @@ function b () {} function a () {} /** - * @typedef {Object} foo + * @typedef {{[key: string]: number}} foo */ function b () {} // Settings: {"jsdoc":{"mode":"typescript"}} @@ -6443,7 +6450,7 @@ function quux (foo) { } /** - * @param {Object} foo + * @param {{[key: string]: number}} foo */ function quux (foo) { diff --git a/src/rules/checkTypes.js b/src/rules/checkTypes.js index 746fd81b7..6778c5549 100644 --- a/src/rules/checkTypes.js +++ b/src/rules/checkTypes.js @@ -73,6 +73,11 @@ const adjustNames = (type, preferred, isGenericMatch, typeNodeName, node, parent } }; +const getMessage = (upperCase) => { + return 'Use object shorthand or index signatures instead of ' + + '`' + (upperCase ? 'O' : 'o') + 'bject`, e.g., `{[key: string]: string}`'; +}; + export default iterateJsdoc(({ jsdocNode, sourceCode, @@ -97,13 +102,35 @@ export default iterateJsdoc(({ 'Object.<>' in preferredTypesOriginal || 'object<>' in preferredTypesOriginal); - const preferredTypes = { - ...injectObjectPreferredTypes ? { + const info = { + message: getMessage(), + replacement: false, + }; + + const infoUC = { + message: getMessage(true), + replacement: false, + }; + + const typeToInject = mode === 'typescript' ? + { + Object: 'object', + 'object.<>': info, + 'Object.<>': infoUC, + 'object<>': info, + 'Object<>': infoUC, + } : + { Object: 'object', 'object.<>': 'Object<>', 'Object.<>': 'Object<>', 'object<>': 'Object<>', - } : {}, + }; + + const preferredTypes = { + ...injectObjectPreferredTypes ? + typeToInject : + {}, ...preferredTypesOriginal, }; @@ -364,7 +391,7 @@ export default iterateJsdoc(({ for (const [ badType, preferredType = '', - message, + msg, ] of invalidTypes) { const tagValue = jsdocTag.name ? ` "${jsdocTag.name}"` : ''; if (exemptTagContexts.some(({ @@ -378,13 +405,13 @@ export default iterateJsdoc(({ } report( - message || + msg || `Invalid JSDoc @${tagName}${tagValue} type "${badType}"` + (preferredType ? '; ' : '.') + (preferredType ? `prefer: ${JSON.stringify(preferredType)}.` : ''), preferredType ? fix : null, jsdocTag, - message ? { + msg ? { tagName, tagValue, } : null, diff --git a/test/rules/assertions/checkTypes.js b/test/rules/assertions/checkTypes.js index 67c45d163..33aa941af 100644 --- a/test/rules/assertions/checkTypes.js +++ b/test/rules/assertions/checkTypes.js @@ -2339,17 +2339,9 @@ export default { errors: [ { line: 3, - message: 'Invalid JSDoc @param "foo" type "object"; prefer: "Object<>".', + message: 'Use object shorthand or index signatures instead of `object`, e.g., `{[key: string]: string}`', }, ], - output: ` - /** - * @param {Object} foo - */ - function quux (foo) { - - } - `, settings: { jsdoc: { mode: 'typescript', @@ -2944,7 +2936,7 @@ export default { function a () {} /** - * @typedef {Object} foo + * @typedef {{[key: string]: number}} foo */ function b () {} `, @@ -3020,7 +3012,7 @@ export default { { code: ` /** - * @param {Object} foo + * @param {{[key: string]: number}} foo */ function quux (foo) { From 8e13fa7583c2d5f9609a53d9193e8b44099dc5c7 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Mon, 27 Mar 2023 12:23:34 -0400 Subject: [PATCH 031/273] feat: added informative-docs rule --- .README/README.md | 1 + .README/rules/informative-docs.md | 61 ++ README.md | 817 +++++++++++++++++------ src/index.js | 3 + src/rules/informativeDocs.js | 155 +++++ test/rules/assertions/informativeDocs.js | 753 +++++++++++++++++++++ test/rules/ruleNames.json | 1 + 7 files changed, 1569 insertions(+), 222 deletions(-) create mode 100644 .README/rules/informative-docs.md create mode 100644 src/rules/informativeDocs.js create mode 100644 test/rules/assertions/informativeDocs.js diff --git a/.README/README.md b/.README/README.md index c641d8568..430807cd3 100644 --- a/.README/README.md +++ b/.README/README.md @@ -601,6 +601,7 @@ selector). {"gitdown": "include", "file": "./rules/check-values.md"} {"gitdown": "include", "file": "./rules/empty-tags.md"} {"gitdown": "include", "file": "./rules/implements-on-classes.md"} +{"gitdown": "include", "file": "./rules/informative-docs.md"} {"gitdown": "include", "file": "./rules/match-description.md"} {"gitdown": "include", "file": "./rules/match-name.md"} {"gitdown": "include", "file": "./rules/multiline-blocks.md"} diff --git a/.README/rules/informative-docs.md b/.README/rules/informative-docs.md new file mode 100644 index 000000000..3da150ee3 --- /dev/null +++ b/.README/rules/informative-docs.md @@ -0,0 +1,61 @@ +### `informative-docs` + +Reports on JSDoc texts that serve only to restart their attached name. + +Devs sometimes write JSDoc descriptions that add no additional information just to fill out the doc: + +```js +/** The user id. */ +let userId; +``` + +Those "uninformative" docs comments take up space without being helpful. +This rule requires all docs comments contain at least one word not already in the code. + +#### Options + +#### `aliases` + +The `aliases` option allows indicating words as synonyms (aliases) of each other. + +For example, with `{ aliases: { emoji: ["smiley", "winkey"] } }`, the following comment would be considered uninformative: + +```js +/** A smiley/winkey. */ +let emoji; +``` + +The default `aliases` option is: + +```json +{ + "a": ["an", "our"] +} +``` + +#### `uselessWords` + +Words that are ignored when searching for one that adds meaning. + +For example, with `{ uselessWords: ["our"] }`, the following comment would be considered uninformative: + +```js +/** Our text. */ +let text; +``` + +The default `uselessWords` option is: + +```json +["a", "an", "i", "in", "of", "s", "the"] +``` + +||| +|---|---| +|Context|everywhere| +|Tags|any| +|Recommended|false| +|Settings|| +|Options|`aliases`, `uselessWords`| + + diff --git a/README.md b/README.md index a05e96407..cfda6f652 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ JSDoc linting rules for ESLint. * [`check-values`](#user-content-eslint-plugin-jsdoc-rules-check-values) * [`empty-tags`](#user-content-eslint-plugin-jsdoc-rules-empty-tags) * [`implements-on-classes`](#user-content-eslint-plugin-jsdoc-rules-implements-on-classes) + * [`informative-docs`](#user-content-eslint-plugin-jsdoc-rules-informative-docs) * [`match-description`](#user-content-eslint-plugin-jsdoc-rules-match-description) * [`match-name`](#user-content-eslint-plugin-jsdoc-rules-match-name) * [`multiline-blocks`](#user-content-eslint-plugin-jsdoc-rules-multiline-blocks) @@ -7279,6 +7280,378 @@ function quux () { ```` + + +### informative-docs + +Reports on JSDoc texts that serve only to restart their attached name. + +Devs sometimes write JSDoc descriptions that add no additional information just to fill out the doc: + +```js +/** The user id. */ +let userId; +``` + +Those "uninformative" docs comments take up space without being helpful. +This rule requires all docs comments contain at least one word not already in the code. + + + +#### Options + + + +#### aliases + +The `aliases` option allows indicating words as synonyms (aliases) of each other. + +For example, with `{ aliases: { emoji: ["smiley", "winkey"] } }`, the following comment would be considered uninformative: + +```js +/** A smiley/winkey. */ +let emoji; +``` + +The default `aliases` option is: + +```json +{ + "a": ["an", "our"] +} +``` + + + +#### uselessWords + +Words that are ignored when searching for one that adds meaning. + +For example, with `{ uselessWords: ["our"] }`, the following comment would be considered uninformative: + +```js +/** Our text. */ +let text; +``` + +The default `uselessWords` option is: + +```json +["a", "an", "i", "in", "of", "s", "the"] +``` + +||| +|---|---| +|Context|everywhere| +|Tags|any| +|Recommended|false| +|Settings|| +|Options|`aliases`, `uselessWords`| + +The following patterns are considered problems: + +````js +/** the */ +let myValue = 3; +// Message: This description only repeats the name it describes. + +/** The user id. */ +let userId: string; +// Message: This description only repeats the name it describes. + +/** the my value */ +let myValue = 3; +// Message: This description only repeats the name it describes. + +/** value **/ +let myValue, + count = 3; +// Message: This description only repeats the name it describes. + +let myValue, + /** count **/ + count = 3; +// Message: This description only repeats the name it describes. + +/** + * the foo. + */ +function foo() {} +// Message: This description only repeats the name it describes. + +/** + * the value foo. + */ +const value = function foo() {} +// Message: This description only repeats the name it describes. + +const value = { + /** + * the prop. + */ + prop: true, +} +// Message: This description only repeats the name it describes. + +/** + * name + */ +class Name {} +// Message: This description only repeats the name it describes. + +/** + * abc def + */ +const abc = class Def {} +// Message: This description only repeats the name it describes. + +class Abc { + /** the abc def! */ + def; +} +// Message: This description only repeats the name it describes. + +const _ = class Abc { + /** the abc def! */ + def; +} +// Message: This description only repeats the name it describes. + +class Abc { + /** the abc def! */ + def() {}; +} +// Message: This description only repeats the name it describes. + +class Abc { + /** def */ + accessor def; +} +// Message: This description only repeats the name it describes. + +class Abc { + /** def */ + def() {} +} +// Message: This description only repeats the name it describes. + +class Abc { + /** def */ + abstract accessor def; +} +// Message: This description only repeats the name it describes. + +class Abc { + /** def */ + abstract def(); +} +// Message: This description only repeats the name it describes. + +class Abc { + /** def */ + abstract def; +} +// Message: This description only repeats the name it describes. + +/** abc */ +namespace Abc {} +// Message: This description only repeats the name it describes. + +class Abc { + /** def */ + def(); + def() {} +} +// Message: This description only repeats the name it describes. + +/** abc */ +declare function abc(); +// Message: This description only repeats the name it describes. + +/** abc */ +enum Abc {} +// Message: This description only repeats the name it describes. + +enum Abc { + /** def */ + def, +} +// Message: This description only repeats the name it describes. + +/** def */ +interface Def {} +// Message: This description only repeats the name it describes. + +/** def */ +type Def = {}; +// Message: This description only repeats the name it describes. + +/** + * count + * + * @description the value + */ +let value = 3; +// Message: This tag description only repeats the name it describes. + +/** @param {number} param - the param */ +function takesOne(param) {} +// Message: This tag description only repeats the name it describes. + +/** @other param - takes one */ +function takesOne(param) {} +// Message: This tag description only repeats the name it describes. + +/** + * takes one + * @other param - takes one + */ +function takesOne(param) {} +// Message: This description only repeats the name it describes. + +/** + * - takes one + * @other param - takes one + */ +function takesOne(param) {} +// Message: This description only repeats the name it describes. +```` + +The following patterns are not considered problems: + +````js +/** */ +let myValue = 3; + +/** count */ +let myValue = 3; + +/** Informative info user id. */ +let userId: string; + +let myValue, + /** count value **/ + count = 3; + +/** + * Does X Y Z work. + */ +function foo() {} + +const value = { + /** + * the truthiness of the prop. + */ + prop: true, +} + +const value = { + /** + * the truthiness of the prop. + */ + ['prop']: true, +} + +/** + * abc def ghi + */ +const abc = function def() {} + +/** + * name extra + */ +class Name {} + +/** + * abc name extra + */ +const abc = class Name {} + +class Abc { + /** ghi */ + def; +} + +class Abc { + /** ghi */ + accessor def; +} + +class Abc { + /** ghi */ + def() {} +} + +class Abc { + /** ghi */ + abstract accessor def; +} + +class Abc { + /** ghi */ + abstract def(); +} + +class Abc { + /** ghi */ + abstract def; +} + +/** abc */ +namespace Def {} + +class Abc { + /** ghi */ + def(); + def() {} +} + +/** abc */ +declare function def(); + +/** abc */ +enum Def {} + +enum Abc { + /** def */ + ghi, +} + +/** abc */ +interface Def {} + +/** abc */ +type Def = {}; + +/** abc */ +type Def = {}; + +/** + * count + * + * @description increment value + */ +let value = 3; + +/** + * count + * + * @unknownTag - increment value + */ +let value = 3; + +/** + * @other param - takes one two + */ +function takesOne(param) {} + +/** + * takes abc param + */ +function takesOne(param) {} +```` + + ### match-description @@ -7307,12 +7680,12 @@ case-insensitive unless one opts in to add the `i` flag. You can add the `s` flag if you want `.` to match newlines. Note, however, that the trailing newlines of a description will not be matched. - - + + #### Options - - + + ##### matchDescription You can supply your own expression to override the default, passing a @@ -7324,8 +7697,8 @@ You can supply your own expression to override the default, passing a } ``` - - + + ##### message You may provide a custom default message by using the following format: @@ -7341,8 +7714,8 @@ You may provide a custom default message by using the following format: This can be overridden per tag or for the main block description by setting `message` within `tags` or `mainDescription`, respectively. - - + + ##### tags If you want different regular expressions to apply to tags, you may use @@ -7391,8 +7764,8 @@ its "description" (e.g., for `@returns {someType} some description`, the description is `some description` while for `@some-tag xyz`, the description is `xyz`). - - + + ##### mainDescription If you wish to override the main block description without changing the @@ -7432,8 +7805,8 @@ You may also provide an object with `message`: } ``` - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -8253,14 +8626,14 @@ that tag). Will replace `disallowName` with `replacement` if these are provided. - - + + #### Options A single options object with the following properties: - - + + ##### match `match` is a required option containing an array of objects which determine @@ -8475,14 +8848,14 @@ all jsdoc blocks! Also allows for preventing text at the very beginning or very end of blocks. - - + + #### Options A single options object with the following properties. - - + + ##### noZeroLineText (defaults to true) For multiline blocks, any non-whitespace text immediately after the `/**` and @@ -8490,8 +8863,8 @@ space will be reported. (Text after a newline is not reported.) `noMultilineBlocks` will have priority over this rule if it applies. - - + + ##### noFinalLineText (defaults to true) For multiline blocks, any non-whitespace text preceding the `*/` on the final @@ -8499,15 +8872,15 @@ line will be reported. (Text preceding a newline is not reported.) `noMultilineBlocks` will have priority over this rule if it applies. - - + + ##### noSingleLineBlocks (defaults to false) If this is `true`, any single line blocks will be reported, except those which are whitelisted in `singleLineTags`. - - + + ##### singleLineTags (defaults to ['lends', 'type']) An array of tags which can nevertheless be allowed as single line blocks when @@ -8516,16 +8889,16 @@ cause all single line blocks to be reported. If `'*'` is present, then the presence of a tag will allow single line blocks (but not if a tag is missing). - - + + ##### noMultilineBlocks (defaults to false) Requires that jsdoc blocks are restricted to single lines only unless impacted by the options `minimumLengthForMultiline`, `multilineTags`, or `allowMultipleTags`. - - + + ##### minimumLengthForMultiline (defaults to not being in effect) If `noMultilineBlocks` is set with this numeric option, multiline blocks will @@ -8534,8 +8907,8 @@ be permitted if containing at least the given amount of text. If not set, multiline blocks will not be permitted regardless of length unless a relevant tag is present and `multilineTags` is set. - - + + ##### multilineTags (defaults to ['*']) If `noMultilineBlocks` is set with this option, multiline blocks may be allowed @@ -8551,8 +8924,8 @@ such a tag will cause multiline blocks to be allowed. You may set this to an empty array to prevent any tag from permitting multiple lines. - - + + ##### allowMultipleTags (defaults to true) If `noMultilineBlocks` is set to `true` with this option and multiple tags are @@ -8845,8 +9218,8 @@ The following patterns are not considered problems: Enforces a consistent padding of the block description. - - + + #### Options This rule allows one optional string argument. If it is `"always"` then a @@ -9090,14 +9463,14 @@ asterisks, but which appear to be intended as jsdoc blocks due to the presence of whitespace followed by whitespace or asterisks, and an at-sign (`@`) and some non-whitespace (as with a jsdoc block tag). - - + + #### Options Takes an optional options object with the following. - - + + ##### ignore An array of directives that will not be reported if present at the beginning of @@ -9106,8 +9479,8 @@ a multi-comment block and at-sign `/* @`. Defaults to `['ts-check', 'ts-expect-error', 'ts-ignore', 'ts-nocheck']` (some directives [used by TypeScript](https://www.typescriptlang.org/docs/handbook/intro-to-js-ts.html#ts-check)). - - + + ##### preventAllMultiAsteriskBlocks A boolean (defaulting to `false`) which if `true` will prevent all @@ -9319,12 +9692,12 @@ tag is attached). Unless your `@default` is on a function, you will need to set `contexts` to an appropriate context, including, if you wish, "any". - - + + #### Options - - + + ##### noOptionalParamNames Set this to `true` to report the presence of optional parameters. May be @@ -9333,8 +9706,8 @@ the presence of ES6 default parameters (bearing in mind that such "defaults" are only applied when the supplied value is missing or `undefined` but not for `null` or other "falsey" values). - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -9520,12 +9893,12 @@ which are not adequate to satisfy a condition, e.g., not report if there were only a function declaration of the name "ignoreMe" (though it would report by function declarations of other names). - - + + #### Options - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -9741,12 +10114,12 @@ Note that if you wish to prevent multiple asterisks at the very beginning of the jsdoc block, you should use `no-bad-blocks` (as that is not proper jsdoc and that rule is for catching blocks which only seem like jsdoc). - - + + #### Options - - + + ##### allowWhitespace (defaults to false) Set to `true` if you wish to allow asterisks after a space (as with Markdown): @@ -9757,8 +10130,8 @@ Set to `true` if you wish to allow asterisks after a space (as with Markdown): */ ``` - - + + ##### preventAtMiddleLines (defaults to true) Prevent the likes of this: @@ -9770,8 +10143,8 @@ Prevent the likes of this: */ ``` - - + + ##### preventAtEnd (defaults to true) Prevent the likes of this: @@ -10006,12 +10379,12 @@ structures, (whether or not you add a specific `comment` condition). Note that if your parser supports comment AST (as [jsdoc-eslint-parser](https://github.com/brettz9/jsdoc-eslint-parser) is designed to do), you can just use ESLint's rule. - - + + #### Options - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -10336,12 +10709,12 @@ This rule reports types being used on `@param` or `@returns`. The rule is intended to prevent the indication of types on tags where the type information would be redundant with TypeScript. - - + + #### Options - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -10515,8 +10888,8 @@ reporting on use of that namepath elsewhere) and/or that a tag's `type` is `false` (and should not be checked for types). If the `type` is an array, that array's items will be considered as defined for the purposes of that tag. - - + + #### Options An option object may have the following key: @@ -11184,8 +11557,8 @@ class Foo { Requires that each JSDoc line starts with an `*`. - - + + #### Options This rule allows an optional string argument. If it is `"always"` then a @@ -11196,8 +11569,8 @@ and use the `tags` option to apply to specific tags only. After the string option, one may add an object with the following. - - + + ##### tags If you want different values to apply to specific tags, you may use @@ -11481,12 +11854,12 @@ If sentences do not end with terminal punctuation, a period will be added. If sentences do not start with an uppercase character, the initial letter will be capitalized. - - + + #### Options - - + + ##### tags If you want additional tags to be checked for their descriptions, you may @@ -11510,16 +11883,16 @@ its "description" (e.g., for `@returns {someType} some description`, the description is `some description` while for `@some-tag xyz`, the description is `xyz`). - - + + ##### abbreviations You can provide an `abbreviations` options array to avoid such strings of text being treated as sentence endings when followed by dots. The `.` is not necessary at the end of the array items. - - + + ##### newlineBeforeCapsAssumesBadSentenceEnd When `false` (the new default), we will not assume capital letters after @@ -12260,8 +12633,8 @@ Requires that all functions have a description. is `"tag"`) must have a non-empty description that explains the purpose of the method. - - + + #### Options An options object may have any of the following properties: @@ -12822,14 +13195,14 @@ Requires that all functions have examples. * Every example tag must have a non-empty description that explains the method's usage. - - + + #### Options This rule has an object option. - - + + ##### exemptedBy Array of tags (e.g., `['type']`) whose presence on the document @@ -12838,15 +13211,15 @@ block avoids the need for an `@example`. Defaults to an array with so be sure to add back `inheritdoc` if you wish its presence to cause exemption of the rule. - - + + ##### exemptNoArguments Boolean to indicate that no-argument functions should not be reported for missing `@example` declarations. - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -12858,27 +13231,27 @@ want the rule to apply to any jsdoc block throughout your files. See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. - - + + ##### checkConstructors A value indicating whether `constructor`s should be checked. Defaults to `true`. - - + + ##### checkGetters A value indicating whether getters should be checked. Defaults to `false`. - - + + ##### checkSetters A value indicating whether setters should be checked. Defaults to `false`. - - + + ##### enableFixer A boolean on whether to enable the fixer (which adds an empty `@example` block). @@ -13191,12 +13564,12 @@ Checks that: as being when the overview tag is not preceded by anything other than a comment. - - + + #### Options - - + + ##### tags The keys of this object are tag names, and the values are configuration @@ -13480,8 +13853,8 @@ function quux () { Requires (or disallows) a hyphen before the `@param` description. - - + + #### Options This rule takes one optional string argument and an optional options object. @@ -13713,14 +14086,14 @@ function main(argv) { Checks for presence of jsdoc comments, on class declarations as well as functions. - - + + #### Options Accepts one optional options object with the following optional keys. - - + + ##### publicOnly This option will insist that missing jsdoc blocks are only reported for @@ -13736,8 +14109,8 @@ otherwise noted): - `cjs` - CommonJS exports are checked for JSDoc comments (Defaults to `true`) - `window` - Window global exports are checked for JSDoc comments - - + + ##### require An object with the following optional boolean keys which all default to @@ -13750,8 +14123,8 @@ An object with the following optional boolean keys which all default to - `FunctionExpression` - `MethodDefinition` - - + + ##### contexts Set this to an array of strings or objects representing the additional AST @@ -13768,8 +14141,8 @@ if you are specifying a more precise form in `contexts` (e.g., `MethodDefinition See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. - - + + ##### exemptEmptyConstructors Default: true @@ -13778,8 +14151,8 @@ When `true`, the rule will not report missing jsdoc blocks above constructors with no parameters or return values (this is enabled by default as the class name or description should be seen as sufficient to convey intent). - - + + ##### exemptEmptyFunctions Default: false. @@ -13788,16 +14161,16 @@ When `true`, the rule will not report missing jsdoc blocks above functions/methods with no parameters or return values (intended where function/method names are sufficient for themselves as documentation). - - + + ##### checkConstructors A value indicating whether `constructor`s should be checked. Defaults to `true`. When `true`, `exemptEmptyConstructors` may still avoid reporting when no parameters or return values are found. - - + + ##### checkGetters A value indicating whether getters should be checked. Besides setting as a @@ -13806,8 +14179,8 @@ getters should be checked but only when there is no setter. This may be useful if one only wishes documentation on one of the two accessors. Defaults to `false`. - - + + ##### checkSetters A value indicating whether setters should be checked. Besides setting as a @@ -13816,15 +14189,15 @@ setters should be checked but only when there is no getter. This may be useful if one only wishes documentation on one of the two accessors. Defaults to `false`. - - + + ##### enableFixer A boolean on whether to enable the fixer (which adds an empty jsdoc block). Defaults to `true`. - - + + ##### minLineCount An integer to indicate a minimum number of lines expected for a node in order @@ -15516,12 +15889,12 @@ Will exempt destructured roots and their children if `@param {object} props` will be exempted from requiring a description given `function someFunc ({child1, child2})`). - - + + #### Options - - + + ##### setDefaultDestructuredRootDescription Whether to set a default destructured root description. For example, you may @@ -15530,15 +15903,15 @@ corresponding to a destructured root object as it should always be the same type of object. Uses `defaultDestructuredRootDescription` for the description string. Defaults to `false`. - - + + ##### defaultDestructuredRootDescription The description string to set by default for destructured roots. Defaults to "The root object". - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -15731,12 +16104,12 @@ Requires that all function parameters have names. > > [JSDoc](https://jsdoc.app/tags-param.html#overview) - - + + #### Options - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -15875,12 +16248,12 @@ Will exempt destructured roots and their children if `@param props` will be exempted from requiring a type given `function someFunc ({child1, child2})`). - - + + #### Options - - + + ##### setDefaultDestructuredRootType Whether to set a default destructured root type. For example, you may wish @@ -15889,14 +16262,14 @@ corresponding to a destructured root object as it is always going to be an object. Uses `defaultDestructuredRootType` for the type string. Defaults to `false`. - - + + ##### defaultDestructuredRootType The type string to set by default for destructured roots. Defaults to "object". - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -16261,35 +16634,35 @@ other properties, so in looking at the docs alone without looking at the function signature, it may appear that there is an actual property named `extra`. - - + + #### Options An options object accepts the following optional properties: - - + + ##### enableFixer Whether to enable the fixer. Defaults to `true`. - - + + ##### enableRootFixer Whether to enable the auto-adding of incrementing roots (see the "Fixer" section). Defaults to `true`. Has no effect if `enableFixer` is set to `false`. - - + + ##### enableRestElementFixer Whether to enable the rest element fixer (see "Rest Element (`RestElement`) insertions"). Defaults to `true`. - - + + ##### checkRestProperty If set to `true`, will report (and add fixer insertions) for missing rest @@ -16343,15 +16716,15 @@ function quux ({num, ...extra}) { } ``` - - + + ##### autoIncrementBase Numeric to indicate the number at which to begin auto-incrementing roots. Defaults to `0`. - - + + ##### unnamedRootBase An array of root names to use in the fixer when roots are missing. Defaults @@ -16377,8 +16750,8 @@ function quux ({foo}, [bar], {baz}) { */ ``` - - + + ##### exemptedBy Array of tags (e.g., `['type']`) whose presence on the document block @@ -16387,8 +16760,8 @@ avoids the need for a `@param`. Defaults to an array with so be sure to add back `inheritdoc` if you wish its presence to cause exemption of the rule. - - + + ##### checkTypesPattern When one specifies a type, unless it is of a generic type, like `object` @@ -16423,8 +16796,8 @@ You could set this regular expression to a more expansive list, or you could restrict it such that even types matching those strings would not need destructuring. - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -16436,33 +16809,33 @@ which are checked. See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. - - + + ##### checkConstructors A value indicating whether `constructor`s should be checked. Defaults to `true`. - - + + ##### checkGetters A value indicating whether getters should be checked. Defaults to `false`. - - + + ##### checkSetters A value indicating whether setters should be checked. Defaults to `false`. - - + + ##### checkDestructured Whether to require destructured properties. Defaults to `true`. - - + + ##### checkDestructuredRoots Whether to check the existence of a corresponding `@param` for root objects @@ -16475,8 +16848,8 @@ implied to be `false` (i.e., the inside of the roots will not be checked either, e.g., it will also not complain if `a` or `b` do not have their own documentation). Defaults to `true`. - - + + ##### useDefaultObjectProperties Set to `true` if you wish to expect documentation of properties on objects @@ -18161,8 +18534,8 @@ is found. Also reports if `@returns {never}` is discovered with a return value. Will also report if multiple `@returns` tags are present. - - + + #### Options - `exemptGenerators`- Because a generator might be labeled as having a @@ -19188,12 +19561,12 @@ Requires that the `@returns` tag has a `description` value. The error will not be reported if the return value is `void` or `undefined` or if it is `Promise` or `Promise`. - - + + #### Options - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -19347,12 +19720,12 @@ function quux () { Requires that `@returns` tag has `type` value. - - + + #### Options - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -19473,8 +19846,8 @@ Requires that returns are documented. Will also report if multiple `@returns` tags are present. - - + + #### Options - `checkConstructors` - A value indicating whether `constructor`s should @@ -20614,8 +20987,8 @@ for our desire for a separate tag to document rejection types and see [this discussion](https://stackoverflow.com/questions/50071115/typescript-promise-rejection-type) on why TypeScript doesn't offer such a feature. - - + + #### Options - `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the @@ -20919,8 +21292,8 @@ Will also report if multiple `@yields` tags are present. See the `next`, `forceRequireNext`, and `nextWithGeneratorTag` options for an option to expect a non-standard `@next` tag. - - + + #### Options - `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the @@ -21731,8 +22104,8 @@ function bodies. Will also report if multiple `@yields` tags are present. - - + + #### Options - `checkGeneratorsOnly` - Avoids checking the function body and merely insists @@ -22244,12 +22617,12 @@ Sorts tags by a specified sequence according to tag name. (Default order originally inspired by [`@homer0/prettier-plugin-jsdoc`](https://github.com/homer0/packages/tree/main/packages/public/prettier-plugin-jsdoc).) - - + + #### Options - - + + ##### tagSequence An array of tag names indicating the preferred sequence for sorting tags. @@ -22425,8 +22798,8 @@ a fixed order that doesn't change into the future, supply your own ]; ``` - - + + ##### alphabetizeExtras Defaults to `false`. Alphabetizes any items not within `tagSequence` after any @@ -22583,8 +22956,8 @@ function quux () {} Enforces lines (or no lines) between tags. - - + + #### Options The first option is a single string set to "always", "never", or "any" @@ -22595,27 +22968,27 @@ for particular tags) or with `dropEndLines`. The second option is an object with the following optional properties. - - + + ##### count (defaults to 1) Use with "always" to indicate the number of lines to require be present. - - + + ##### noEndLines (defaults to false) Use with "always" to indicate the normal lines to be added after tags should not be added after the final tag. - - + + ##### dropEndLines (defaults to false) If defined, will drop end lines for the final tag only. - - + + ##### tags (default to empty object) Overrides the default behavior depending on specific tags. @@ -22969,19 +23342,19 @@ Markdown and you therefore do not wish for it to be accidentally interpreted as such by the likes of Visual Studio Code or if you wish to view it escaped within it or your documentation. - - + + #### Options - - + + ##### escapeHTML This option escapes all `<` and `&` characters (except those followed by whitespace which are treated as literals by Visual Studio Code). - - + + ##### escapeMarkdown This option escapes the first backtick (`` ` ``) in a paired sequence. @@ -23188,8 +23561,8 @@ for valid types (based on the tag's `type` value), and either portion checked for presence (based on `false` `name` or `type` values or their `required` value). See the setting for more details. - - + + #### Options - `allowEmptyNamepaths` (default: true) - Set to `false` to bulk disallow diff --git a/src/index.js b/src/index.js index cd20aee26..6b14c288b 100644 --- a/src/index.js +++ b/src/index.js @@ -11,6 +11,7 @@ import checkTypes from './rules/checkTypes'; import checkValues from './rules/checkValues'; import emptyTags from './rules/emptyTags'; import implementsOnClasses from './rules/implementsOnClasses'; +import informativeDocs from './rules/informativeDocs'; import matchDescription from './rules/matchDescription'; import matchName from './rules/matchName'; import multilineBlocks from './rules/multilineBlocks'; @@ -66,6 +67,7 @@ const index = { 'check-values': checkValues, 'empty-tags': emptyTags, 'implements-on-classes': implementsOnClasses, + 'informative-docs': informativeDocs, 'match-description': matchDescription, 'match-name': matchName, 'multiline-blocks': multilineBlocks, @@ -126,6 +128,7 @@ const createRecommendedRuleset = (warnOrError) => { 'jsdoc/check-values': warnOrError, 'jsdoc/empty-tags': warnOrError, 'jsdoc/implements-on-classes': warnOrError, + 'jsdoc/informative-docs': warnOrError, 'jsdoc/match-description': 'off', 'jsdoc/match-name': 'off', 'jsdoc/multiline-blocks': warnOrError, diff --git a/src/rules/informativeDocs.js b/src/rules/informativeDocs.js new file mode 100644 index 000000000..97a0ab268 --- /dev/null +++ b/src/rules/informativeDocs.js @@ -0,0 +1,155 @@ +import iterateJsdoc from '../iterateJsdoc'; + +const defaultAliases = { + a: [ + 'an', 'our', + ], +}; + +const defaultUselessWords = [ + 'a', 'an', 'i', 'in', 'of', 's', 'the', +]; + +// eslint-disable-next-line complexity +const getNamesFromNode = (node) => { + switch (node?.type) { + case 'AccessorProperty': + case 'MethodDefinition': + case 'PropertyDefinition': + case 'TSAbstractAccessorProperty': + case 'TSAbstractMethodDefinition': + case 'TSAbstractPropertyDefinition': + return [ + ...getNamesFromNode(node.parent.parent), + ...getNamesFromNode(node.key), + ]; + case 'ClassDeclaration': + case 'ClassExpression': + case 'FunctionDeclaration': + case 'FunctionExpression': + case 'TSModuleDeclaration': + case 'TSMethodSignature': + case 'TSDeclareFunction': + case 'TSEnumDeclaration': + case 'TSEnumMember': + case 'TSInterfaceDeclaration': + case 'TSTypeAliasDeclaration': + return getNamesFromNode(node.id); + case 'Identifier': + return [ + node.name, + ]; + case 'Property': + return getNamesFromNode(node.key); + case 'VariableDeclaration': + return getNamesFromNode(node.declarations[0]); + case 'VariableDeclarator': + return [ + ...getNamesFromNode(node.id), + ...getNamesFromNode(node.init), + ].filter(Boolean); + default: + return []; + } +}; + +export default iterateJsdoc(({ + context, + jsdoc, + node, + report, + utils, +}) => { + const { + aliases = defaultAliases, + uselessWords = defaultUselessWords, + } = context.options[0] || {}; + const nodeNames = getNamesFromNode(node); + + const normalizeWord = (word) => { + const wordLower = word.toLowerCase(); + + return aliases[wordLower] ?? wordLower; + }; + + const splitTextIntoWords = (...names) => { + return names.flatMap((name) => { + return name + .replace(/\W+/gu, ' ') + .replace(/([a-z])([A-Z])/gu, '$1 $2') + .trim() + .split(' '); + }) + .map(normalizeWord); + }; + + const descriptionIsRedundant = (text, extraName = '') => { + if (!text) { + return false; + } + + const split = splitTextIntoWords(text); + const words = new Set(split); + + for (const nameWord of splitTextIntoWords(...nodeNames, extraName)) { + words.delete(nameWord); + } + + for (const uselessWord of uselessWords) { + words.delete(uselessWord); + } + + return !words.size; + }; + + const { + description, + lastDescriptionLine, + } = utils.getDescription(); + let descriptionReported = false; + + for (const tag of jsdoc.tags) { + if (descriptionIsRedundant(tag.description, tag.name)) { + utils.reportJSDoc( + 'This tag description only repeats the name it describes.', + tag, + ); + } + + descriptionReported ||= tag.description === description && tag.line === lastDescriptionLine; + } + + if (!descriptionReported && descriptionIsRedundant(description)) { + report('This description only repeats the name it describes.'); + } +}, { + iterateAllJsdocs: true, + meta: { + docs: { + description: + 'This rule reports doc comments that only restate their attached name.', + url: 'https://github.com/gajus/eslint-plugin-jsdoc#informative-docs', + }, + schema: [ + { + additionalProperties: false, + properties: { + aliases: { + items: { + type: 'string', + }, + type: 'array', + }, + uselessWords: { + items: { + type: 'string', + }, + type: 'array', + }, + }, + type: 'object', + }, + ], + type: 'suggestion', + }, +}); diff --git a/test/rules/assertions/informativeDocs.js b/test/rules/assertions/informativeDocs.js new file mode 100644 index 000000000..ee197d9fa --- /dev/null +++ b/test/rules/assertions/informativeDocs.js @@ -0,0 +1,753 @@ +export default { + invalid: [ + { + code: ` + /** the */ + let myValue = 3; + `, + errors: [ + { + line: 2, + message: 'This description only repeats the name it describes.', + }, + ], + }, + { + code: ` + /** The user id. */ + let userId: string; + `, + errors: [ + { + line: 2, + message: 'This description only repeats the name it describes.', + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + }, + { + code: ` + /** the my value */ + let myValue = 3; + `, + errors: [ + { + line: 2, + message: 'This description only repeats the name it describes.', + }, + ], + }, + { + code: ` + /** value **/ + let myValue, + count = 3; + `, + errors: [ + { + line: 2, + message: 'This description only repeats the name it describes.', + }, + ], + }, + { + code: ` + let myValue, + /** count **/ + count = 3; + `, + errors: [ + { + line: 3, + message: 'This description only repeats the name it describes.', + }, + ], + }, + { + code: ` + /** + * the foo. + */ + function foo() {} + `, + errors: [ + { + endLine: 4, + line: 2, + message: 'This description only repeats the name it describes.', + }, + ], + }, + { + code: ` + /** + * the value foo. + */ + const value = function foo() {} + `, + errors: [ + { + endLine: 4, + line: 2, + message: 'This description only repeats the name it describes.', + }, + ], + }, + { + code: ` + const value = { + /** + * the prop. + */ + prop: true, + } + `, + errors: [ + { + line: 3, + message: 'This description only repeats the name it describes.', + }, + ], + }, + { + code: ` + /** + * name + */ + class Name {} + `, + errors: [ + { + line: 2, + message: 'This description only repeats the name it describes.', + }, + ], + }, + { + code: ` + /** + * abc def + */ + const abc = class Def {} + `, + errors: [ + { + line: 2, + message: 'This description only repeats the name it describes.', + }, + ], + }, + { + code: ` + class Abc { + /** the abc def! */ + def; + } + `, + errors: [ + { + line: 3, + message: 'This description only repeats the name it describes.', + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + const _ = class Abc { + /** the abc def! */ + def; + } + `, + errors: [ + { + line: 3, + message: 'This description only repeats the name it describes.', + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + class Abc { + /** the abc def! */ + def() {}; + } + `, + errors: [ + { + line: 3, + message: 'This description only repeats the name it describes.', + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + class Abc { + /** def */ + accessor def; + } + `, + errors: [ + { + line: 3, + message: 'This description only repeats the name it describes.', + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + class Abc { + /** def */ + def() {} + } + `, + errors: [ + { + line: 3, + message: 'This description only repeats the name it describes.', + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + class Abc { + /** def */ + abstract accessor def; + } + `, + errors: [ + { + line: 3, + message: 'This description only repeats the name it describes.', + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + class Abc { + /** def */ + abstract def(); + } + `, + errors: [ + { + line: 3, + message: 'This description only repeats the name it describes.', + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + class Abc { + /** def */ + abstract def; + } + `, + errors: [ + { + line: 3, + message: 'This description only repeats the name it describes.', + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + /** abc */ + namespace Abc {} + `, + errors: [ + { + line: 2, + message: 'This description only repeats the name it describes.', + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + class Abc { + /** def */ + def(); + def() {} + } + `, + errors: [ + { + line: 3, + message: 'This description only repeats the name it describes.', + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + /** abc */ + declare function abc(); + `, + errors: [ + { + line: 2, + message: 'This description only repeats the name it describes.', + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + /** abc */ + enum Abc {} + `, + errors: [ + { + line: 2, + message: 'This description only repeats the name it describes.', + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + enum Abc { + /** def */ + def, + } + `, + errors: [ + { + line: 3, + message: 'This description only repeats the name it describes.', + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + /** def */ + interface Def {} + `, + errors: [ + { + line: 2, + message: 'This description only repeats the name it describes.', + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + /** def */ + type Def = {}; + `, + errors: [ + { + line: 2, + message: 'This description only repeats the name it describes.', + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + /** + * count + * + * @description the value + */ + let value = 3; + `, + errors: [ + { + line: 5, + message: 'This tag description only repeats the name it describes.', + }, + ], + }, + { + code: ` + /** @param {number} param - the param */ + function takesOne(param) {} + `, + errors: [ + { + line: 2, + message: 'This tag description only repeats the name it describes.', + }, + ], + }, + { + code: ` + /** @other param - takes one */ + function takesOne(param) {} + `, + errors: [ + { + line: 2, + message: 'This tag description only repeats the name it describes.', + }, + ], + }, + { + code: ` + /** + * takes one + * @other param - takes one + */ + function takesOne(param) {} + `, + errors: [ + { + line: 2, + message: 'This description only repeats the name it describes.', + }, + { + line: 4, + message: 'This tag description only repeats the name it describes.', + }, + ], + }, + { + code: ` + /** + * - takes one + * @other param - takes one + */ + function takesOne(param) {} + `, + errors: [ + { + line: 2, + message: 'This description only repeats the name it describes.', + }, + { + line: 4, + message: 'This tag description only repeats the name it describes.', + }, + ], + }, + ], + valid: [ + { + code: ` + /** */ + let myValue = 3; + `, + }, + { + code: ` + /** count */ + let myValue = 3; + `, + }, + { + code: ` + /** Informative info user id. */ + let userId: string; + `, + parser: require.resolve('@typescript-eslint/parser'), + }, + { + code: ` + let myValue, + /** count value **/ + count = 3; + `, + }, + { + code: ` + /** + * Does X Y Z work. + */ + function foo() {} + `, + }, + { + code: ` + const value = { + /** + * the truthiness of the prop. + */ + prop: true, + } + `, + }, + { + code: ` + const value = { + /** + * the truthiness of the prop. + */ + ['prop']: true, + } + `, + }, + { + code: ` + /** + * abc def ghi + */ + const abc = function def() {} + `, + }, + { + code: ` + /** + * name extra + */ + class Name {} + `, + }, + { + code: ` + /** + * abc name extra + */ + const abc = class Name {} + `, + }, + { + code: ` + class Abc { + /** ghi */ + def; + } + `, + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + class Abc { + /** ghi */ + accessor def; + } + `, + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + class Abc { + /** ghi */ + def() {} + } + `, + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + class Abc { + /** ghi */ + abstract accessor def; + } + `, + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + class Abc { + /** ghi */ + abstract def(); + } + `, + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + class Abc { + /** ghi */ + abstract def; + } + `, + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + /** abc */ + namespace Def {} + `, + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + class Abc { + /** ghi */ + def(); + def() {} + } + `, + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + /** abc */ + declare function def(); + `, + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + /** abc */ + enum Def {} + `, + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + enum Abc { + /** def */ + ghi, + } + `, + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + /** abc */ + interface Def {} + `, + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + /** abc */ + type Def = {}; + `, + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + /** abc */ + type Def = {}; + `, + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaVersion: 2_022, + }, + }, + { + code: ` + /** + * count + * + * @description increment value + */ + let value = 3; + `, + }, + { + code: ` + /** + * count + * + * @unknownTag - increment value + */ + let value = 3; + `, + }, + { + code: ` + /** + * @other param - takes one two + */ + function takesOne(param) {} + `, + }, + { + code: ` + /** + * takes abc param + */ + function takesOne(param) {} + `, + }, + ], +}; diff --git a/test/rules/ruleNames.json b/test/rules/ruleNames.json index bfb50b242..71de12d2d 100644 --- a/test/rules/ruleNames.json +++ b/test/rules/ruleNames.json @@ -12,6 +12,7 @@ "check-values", "empty-tags", "implements-on-classes", + "informative-docs", "match-description", "match-name", "multiline-blocks", From 009c055d7bec7ab35fb6c7793eca5822f7c6f7d4 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 10 Apr 2023 14:39:37 -0700 Subject: [PATCH 032/273] docs: bump indent level for specific options --- .README/rules/informative-docs.md | 4 ++-- README.md | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.README/rules/informative-docs.md b/.README/rules/informative-docs.md index 3da150ee3..2d44e2a26 100644 --- a/.README/rules/informative-docs.md +++ b/.README/rules/informative-docs.md @@ -14,7 +14,7 @@ This rule requires all docs comments contain at least one word not already in th #### Options -#### `aliases` +##### `aliases` The `aliases` option allows indicating words as synonyms (aliases) of each other. @@ -33,7 +33,7 @@ The default `aliases` option is: } ``` -#### `uselessWords` +##### `uselessWords` Words that are ignored when searching for one that adds meaning. diff --git a/README.md b/README.md index cfda6f652..3e098f720 100644 --- a/README.md +++ b/README.md @@ -7300,9 +7300,9 @@ This rule requires all docs comments contain at least one word not already in th #### Options - - -#### aliases + + +##### aliases The `aliases` option allows indicating words as synonyms (aliases) of each other. @@ -7321,9 +7321,9 @@ The default `aliases` option is: } ``` - - -#### uselessWords + + +##### uselessWords Words that are ignored when searching for one that adds meaning. From 9bc2406d1fb3cd1a146dd47bc8026679093c22c9 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 10 Apr 2023 14:42:13 -0700 Subject: [PATCH 033/273] avoid adding new rule to recommended ruleset (other stylistic rules like enforcing a complete sentence are similarly not enabled) --- src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 6b14c288b..61915a3ca 100644 --- a/src/index.js +++ b/src/index.js @@ -128,7 +128,7 @@ const createRecommendedRuleset = (warnOrError) => { 'jsdoc/check-values': warnOrError, 'jsdoc/empty-tags': warnOrError, 'jsdoc/implements-on-classes': warnOrError, - 'jsdoc/informative-docs': warnOrError, + 'jsdoc/informative-docs': 'off', 'jsdoc/match-description': 'off', 'jsdoc/match-name': 'off', 'jsdoc/multiline-blocks': warnOrError, From b7720038b5e04c11d6879c153ffca7b7589d2b5f Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Tue, 11 Apr 2023 11:49:26 -0400 Subject: [PATCH 034/273] switched to are-docs-informative package --- package-lock.json | 14 ++++++++++++ package.json | 1 + src/rules/informativeDocs.js | 42 ++++++++---------------------------- 3 files changed, 24 insertions(+), 33 deletions(-) diff --git a/package-lock.json b/package-lock.json index b11411852..114460f28 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "license": "BSD-3-Clause", "dependencies": { "@es-joy/jsdoccomment": "~0.37.0", + "are-docs-informative": "^0.0.1", "comment-parser": "1.3.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", @@ -4019,6 +4020,14 @@ "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", "dev": true }, + "node_modules/are-docs-informative": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.1.tgz", + "integrity": "sha512-iBN6NxFQTEH0au0K8EOz6BoXXs9Pz6bGOPOgQpstabUHlX7fFx72TXB/wy7hSGZ8QcMI+XalPeM3p8IG5ncGIA==", + "engines": { + "node": ">=18" + } + }, "node_modules/are-we-there-yet": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", @@ -23388,6 +23397,11 @@ "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", "dev": true }, + "are-docs-informative": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.1.tgz", + "integrity": "sha512-iBN6NxFQTEH0au0K8EOz6BoXXs9Pz6bGOPOgQpstabUHlX7fFx72TXB/wy7hSGZ8QcMI+XalPeM3p8IG5ncGIA==" + }, "are-we-there-yet": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", diff --git a/package.json b/package.json index ec3c86c41..ac02d575f 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ }, "dependencies": { "@es-joy/jsdoccomment": "~0.37.0", + "are-docs-informative": "^0.0.1", "comment-parser": "1.3.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", diff --git a/src/rules/informativeDocs.js b/src/rules/informativeDocs.js index 97a0ab268..98acdb6fc 100644 --- a/src/rules/informativeDocs.js +++ b/src/rules/informativeDocs.js @@ -1,3 +1,6 @@ +import { + areDocsInformative, +} from 'are-docs-informative'; import iterateJsdoc from '../iterateJsdoc'; const defaultAliases = { @@ -66,40 +69,13 @@ export default iterateJsdoc(({ } = context.options[0] || {}; const nodeNames = getNamesFromNode(node); - const normalizeWord = (word) => { - const wordLower = word.toLowerCase(); - - return aliases[wordLower] ?? wordLower; - }; - - const splitTextIntoWords = (...names) => { - return names.flatMap((name) => { - return name - .replace(/\W+/gu, ' ') - .replace(/([a-z])([A-Z])/gu, '$1 $2') - .trim() - .split(' '); - }) - .map(normalizeWord); - }; - const descriptionIsRedundant = (text, extraName = '') => { - if (!text) { - return false; - } - - const split = splitTextIntoWords(text); - const words = new Set(split); - - for (const nameWord of splitTextIntoWords(...nodeNames, extraName)) { - words.delete(nameWord); - } - - for (const uselessWord of uselessWords) { - words.delete(uselessWord); - } - - return !words.size; + return Boolean(text) && !areDocsInformative(text, [ + extraName, nodeNames, + ].filter(Boolean).join(' '), { + aliases, + uselessWords, + }); }; const { From cd01546081a74763a09e70e05e032b5f693ea113 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Tue, 11 Apr 2023 14:42:51 -0400 Subject: [PATCH 035/273] fix: are-docs-informative@0.0.2 --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 114460f28..973222964 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "BSD-3-Clause", "dependencies": { "@es-joy/jsdoccomment": "~0.37.0", - "are-docs-informative": "^0.0.1", + "are-docs-informative": "^0.0.2", "comment-parser": "1.3.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", @@ -4021,11 +4021,11 @@ "dev": true }, "node_modules/are-docs-informative": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.1.tgz", - "integrity": "sha512-iBN6NxFQTEH0au0K8EOz6BoXXs9Pz6bGOPOgQpstabUHlX7fFx72TXB/wy7hSGZ8QcMI+XalPeM3p8IG5ncGIA==", + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", "engines": { - "node": ">=18" + "node": ">=14" } }, "node_modules/are-we-there-yet": { @@ -23398,9 +23398,9 @@ "dev": true }, "are-docs-informative": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.1.tgz", - "integrity": "sha512-iBN6NxFQTEH0au0K8EOz6BoXXs9Pz6bGOPOgQpstabUHlX7fFx72TXB/wy7hSGZ8QcMI+XalPeM3p8IG5ncGIA==" + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==" }, "are-we-there-yet": { "version": "3.0.1", diff --git a/package.json b/package.json index ac02d575f..b1c8cc1c6 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ }, "dependencies": { "@es-joy/jsdoccomment": "~0.37.0", - "are-docs-informative": "^0.0.1", + "are-docs-informative": "^0.0.2", "comment-parser": "1.3.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", From b23a58799816ddbd0f64780467c37432374d6ab0 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 12 Apr 2023 08:12:45 -0700 Subject: [PATCH 036/273] docs: add non-recommended `informative-docs` and `no-blank-block-descriptions` rules to display --- .README/README.md | 2 ++ README.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.README/README.md b/.README/README.md index 430807cd3..53cd944fc 100644 --- a/.README/README.md +++ b/.README/README.md @@ -56,10 +56,12 @@ Finally, enable all of the rules that you would like to use. "jsdoc/check-values": 1, // Recommended "jsdoc/empty-tags": 1, // Recommended "jsdoc/implements-on-classes": 1, // Recommended + "jsdoc/informative-docs": 1, "jsdoc/match-description": 1, "jsdoc/multiline-blocks": 1, // Recommended "jsdoc/newline-after-description": 1, // Recommended "jsdoc/no-bad-blocks": 1, + "jsdoc/no-blank-block-descriptions": 1, "jsdoc/no-defaults": 1, "jsdoc/no-missing-syntax": 1, "jsdoc/no-multi-asterisks": 1, // Recommended diff --git a/README.md b/README.md index 3e098f720..f1fe9852a 100644 --- a/README.md +++ b/README.md @@ -130,10 +130,12 @@ Finally, enable all of the rules that you would like to use. "jsdoc/check-values": 1, // Recommended "jsdoc/empty-tags": 1, // Recommended "jsdoc/implements-on-classes": 1, // Recommended + "jsdoc/informative-docs": 1, "jsdoc/match-description": 1, "jsdoc/multiline-blocks": 1, // Recommended "jsdoc/newline-after-description": 1, // Recommended "jsdoc/no-bad-blocks": 1, + "jsdoc/no-blank-block-descriptions": 1, "jsdoc/no-defaults": 1, "jsdoc/no-missing-syntax": 1, "jsdoc/no-multi-asterisks": 1, // Recommended From 41d1cf355d594c7e1f7fe0d3fa35e9c03f9659ed Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 16 Apr 2023 20:53:10 -0700 Subject: [PATCH 037/273] fix(`require-returns`): regression with forcing all async returns to be ignored; fixes #1019 --- README.md | 23 +++++++---- src/rules/requireReturns.js | 2 +- test/rules/assertions/requireReturns.js | 52 ++++++++++++++++++------- 3 files changed, 56 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index f1fe9852a..b23418ff0 100644 --- a/README.md +++ b/README.md @@ -20446,6 +20446,22 @@ export function readFixture(path: string): void; export function readFixture(path: string); // "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] // Message: Missing JSDoc @returns declaration. + +/** + * @param {array} a + */ +async function foo(a) { + return Promise.all(a); +} +// Message: Missing JSDoc @returns declaration. + +/** + * Description. + */ +export default async function demo() { + return true; +} +// Message: Missing JSDoc @returns declaration. ```` The following patterns are not considered problems: @@ -20930,13 +20946,6 @@ async function foo() { return new Promise(resolve => resolve()); } -/** - * @param {array} a - */ -async function foo(a) { - return Promise.all(a); -} - /** * @param ms time in millis */ diff --git a/src/rules/requireReturns.js b/src/rules/requireReturns.js index db92f21ee..e06fe6cd8 100644 --- a/src/rules/requireReturns.js +++ b/src/rules/requireReturns.js @@ -90,7 +90,7 @@ export default iterateJsdoc(({ return true; } - return !isAsync && iteratingFunction && utils.hasValueOrExecutorHasNonEmptyResolveValue( + return iteratingFunction && utils.hasValueOrExecutorHasNonEmptyResolveValue( forceReturnsWithAsync, ); }; diff --git a/test/rules/assertions/requireReturns.js b/test/rules/assertions/requireReturns.js index 0589135bb..7c57f5e5c 100644 --- a/test/rules/assertions/requireReturns.js +++ b/test/rules/assertions/requireReturns.js @@ -1726,6 +1726,45 @@ export default { ], parser: require.resolve('@typescript-eslint/parser'), }, + { + code: ` + /** + * @param {array} a + */ + async function foo(a) { + return Promise.all(a); + } + `, + errors: [ + { + line: 2, + message: 'Missing JSDoc @returns declaration.', + }, + ], + parserOptions: { + ecmaVersion: 8, + }, + }, + { + code: ` + /** + * Description. + */ + export default async function demo() { + return true; + } + `, + errors: [ + { + line: 2, + message: 'Missing JSDoc @returns declaration.', + }, + ], + parserOptions: { + ecmaVersion: 8, + sourceType: 'module', + }, + }, ], valid: [ { @@ -2562,19 +2601,6 @@ export default { ], parser: require.resolve('@typescript-eslint/parser'), }, - { - code: ` - /** - * @param {array} a - */ - async function foo(a) { - return Promise.all(a); - } - `, - parserOptions: { - ecmaVersion: 8, - }, - }, { code: ` /** From 9e96b75aad72428bdbb2ce2bc27ca42a08c30df8 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 15 Apr 2023 07:39:57 -0700 Subject: [PATCH 038/273] feat: for `tag-lines`, add `endLines` in place of `dropEndLines` and `applyToEndTag` in place of `noEndLines`; add `startLines` in place of `newline-after-description` rule BREAKING CHANGE: 1. Removes `jsdoc/newline-after-description` rule in favor of `jsdoc/tag-lines` with option `startLines: 0` for "never" and `startLines: 1` for "always". Defaults now to `startLines: 0` 2. Removes `dropEndLines: true` from `jsdoc/tag-lines` in favor of option `endLines: 0` 3. Drops `jsdoc/tag-lines` rule's `noEndLines: true` in favor of `applyToEndTag: false` --- .README/README.md | 2 - .README/rules/newline-after-description.md | 19 - .README/rules/tag-lines.md | 30 +- README.md | 761 +++++++----------- src/index.js | 3 - src/rules/newlineAfterDescription.js | 74 -- src/rules/tagLines.js | 142 +++- .../assertions/newlineAfterDescription.js | 475 ----------- test/rules/assertions/tagLines.js | 282 ++++++- test/rules/ruleNames.json | 1 - 10 files changed, 733 insertions(+), 1056 deletions(-) delete mode 100644 .README/rules/newline-after-description.md delete mode 100644 src/rules/newlineAfterDescription.js delete mode 100644 test/rules/assertions/newlineAfterDescription.js diff --git a/.README/README.md b/.README/README.md index 53cd944fc..52e71e4e1 100644 --- a/.README/README.md +++ b/.README/README.md @@ -59,7 +59,6 @@ Finally, enable all of the rules that you would like to use. "jsdoc/informative-docs": 1, "jsdoc/match-description": 1, "jsdoc/multiline-blocks": 1, // Recommended - "jsdoc/newline-after-description": 1, // Recommended "jsdoc/no-bad-blocks": 1, "jsdoc/no-blank-block-descriptions": 1, "jsdoc/no-defaults": 1, @@ -607,7 +606,6 @@ selector). {"gitdown": "include", "file": "./rules/match-description.md"} {"gitdown": "include", "file": "./rules/match-name.md"} {"gitdown": "include", "file": "./rules/multiline-blocks.md"} -{"gitdown": "include", "file": "./rules/newline-after-description.md"} {"gitdown": "include", "file": "./rules/no-bad-blocks.md"} {"gitdown": "include", "file": "./rules/no-blank-block-descriptions.md"} {"gitdown": "include", "file": "./rules/no-defaults.md"} diff --git a/.README/rules/newline-after-description.md b/.README/rules/newline-after-description.md deleted file mode 100644 index c906831bf..000000000 --- a/.README/rules/newline-after-description.md +++ /dev/null @@ -1,19 +0,0 @@ -### `newline-after-description` - -Enforces a consistent padding of the block description. - -#### Options - -This rule allows one optional string argument. If it is `"always"` then a -problem is raised when there is no newline after the description. If it is -`"never"` then a problem is raised when there is a newline after the -description. The default value is `"always"`. - -||| -|---|---| -|Context|everywhere| -|Tags|N/A (doc block)| -|Options|(a string matching `"always" or "never"`)| -|Recommended|true| - - diff --git a/.README/rules/tag-lines.md b/.README/rules/tag-lines.md index 4d00a33d1..8e3b30b9c 100644 --- a/.README/rules/tag-lines.md +++ b/.README/rules/tag-lines.md @@ -2,13 +2,23 @@ Enforces lines (or no lines) between tags. +If you only want lines preceding all tags or after all tags, you can use +the "any" option along with `startLines` and/or `endLines`. + +The "always" or "never" options of this rule should not +be used with the linebreak-setting options of the `sort-tags` rule as both +may try to impose a conflicting number of lines. + #### Options The first option is a single string set to "always", "never", or "any" (defaults to "never"). "any" is only useful with `tags` (allowing non-enforcement of lines except -for particular tags) or with `dropEndLines`. +for particular tags) or with `startLines` or `endLines`. It is also +necessary if using the linebreak-setting options of the `sort-tags` rule +so that the two rules won't conflict in both attempting to set lines +between tags. The second option is an object with the following optional properties. @@ -16,14 +26,20 @@ The second option is an object with the following optional properties. Use with "always" to indicate the number of lines to require be present. -##### `noEndLines` (defaults to `false`) +##### `applyToEndTag` (defaults to `true`) + +Set to `false` and use with "always" to indicate the normal lines to be +added after tags should not be added after the final tag. + +##### `startLines` (defaults to `0`) -Use with "always" to indicate the normal lines to be added after tags should -not be added after the final tag. +If not set to `null`, will enforce end lines to the given count before the +first tag only. -##### `dropEndLines` (defaults to `false`) +##### `endLines` (defaults to `0`) -If defined, will drop end lines for the final tag only. +If not set to `null`, will enforce end lines to the given count on the +final tag only. ##### `tags` (default to empty object) @@ -41,6 +57,6 @@ following keys: |Tags|Any| |Recommended|true| |Settings|N/A| -|Options|(a string matching `"always" or "never"` and optional object with `count` and `noEndLines`)| +|Options|(a string matching `"always"`, `"never"`, or `"any"` and optional object with `count`, `applyToEndTag`, `startLines`, `endLines`)| diff --git a/README.md b/README.md index b23418ff0..b90b3b4ef 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,6 @@ JSDoc linting rules for ESLint. * [`match-description`](#user-content-eslint-plugin-jsdoc-rules-match-description) * [`match-name`](#user-content-eslint-plugin-jsdoc-rules-match-name) * [`multiline-blocks`](#user-content-eslint-plugin-jsdoc-rules-multiline-blocks) - * [`newline-after-description`](#user-content-eslint-plugin-jsdoc-rules-newline-after-description) * [`no-bad-blocks`](#user-content-eslint-plugin-jsdoc-rules-no-bad-blocks) * [`no-blank-block-descriptions`](#user-content-eslint-plugin-jsdoc-rules-no-blank-block-descriptions) * [`no-defaults`](#user-content-eslint-plugin-jsdoc-rules-no-defaults) @@ -133,7 +132,6 @@ Finally, enable all of the rules that you would like to use. "jsdoc/informative-docs": 1, "jsdoc/match-description": 1, "jsdoc/multiline-blocks": 1, // Recommended - "jsdoc/newline-after-description": 1, // Recommended "jsdoc/no-bad-blocks": 1, "jsdoc/no-blank-block-descriptions": 1, "jsdoc/no-defaults": 1, @@ -9214,247 +9212,6 @@ The following patterns are not considered problems: ```` - - -### newline-after-description - -Enforces a consistent padding of the block description. - - - -#### Options - -This rule allows one optional string argument. If it is `"always"` then a -problem is raised when there is no newline after the description. If it is -`"never"` then a problem is raised when there is a newline after the -description. The default value is `"always"`. - -||| -|---|---| -|Context|everywhere| -|Tags|N/A (doc block)| -|Options|(a string matching `"always" or "never"`)| -|Recommended|true| - -The following patterns are considered problems: - -````js -/** - * Foo. - * - * Foo. - * @foo - */ -function quux () { - -} -// "jsdoc/newline-after-description": ["error"|"warn", "always"] -// Message: There must be a newline after the description of the JSDoc block. - -/** - * Foo. - * @foo - * - * Foo. - */ -function quux () { - -} -// "jsdoc/newline-after-description": ["error"|"warn", "always"] -// Message: There must be a newline after the description of the JSDoc block. - -/** - * Foo. - * - * Foo. - * @foo - */ -function quux () { - -} -// Message: There must be a newline after the description of the JSDoc block. - -/** - * Bar. - * - * Bar. - * - * @bar - */ -function quux () { - -} -// "jsdoc/newline-after-description": ["error"|"warn", "never"] -// Message: There must be no newline after the description of the JSDoc block. - -/** - * Bar. - * - * @bar - * - * Bar. - */ -function quux () { - -} -// "jsdoc/newline-after-description": ["error"|"warn", "never"] -// Message: There must be no newline after the description of the JSDoc block. - - - /**\r - * Bar.\r - *\r - * Bar.\r - *\r - * @bar\r - */\r - function quux () {\r - - } -// "jsdoc/newline-after-description": ["error"|"warn", "never"] -// Message: There must be no newline after the description of the JSDoc block. - -/** - * A. - * - * @typedef {object} A - * @prop {boolean} a A. - */ -// "jsdoc/newline-after-description": ["error"|"warn", "never"] -// Message: There must be no newline after the description of the JSDoc block. - -/** - * A. - * @typedef {object} A - * @prop {boolean} a A. - */ -// "jsdoc/newline-after-description": ["error"|"warn", "always"] -// Message: There must be a newline after the description of the JSDoc block. - - - /**\r - * Service for fetching symbols.\r - * @param {object} $http - Injected http helper.\r - * @param {object} $q - Injected Promise api helper.\r - * @param {object} $location - Injected window location object.\r - * @param {object} REPORT_DIALOG_CONSTANTS - Injected handle.\r - */ -// Message: There must be a newline after the description of the JSDoc block. - -/** An example function. - * - * @returns {number} An example number. - */ -function example() { - return 42; -} -// "jsdoc/newline-after-description": ["error"|"warn", "never"] -// Message: There must be no newline after the description of the JSDoc block. - -/** An example function. - * @returns {number} An example number. - */ -function example() { - return 42; -} -// "jsdoc/newline-after-description": ["error"|"warn", "always"] -// Message: There must be a newline after the description of the JSDoc block. -```` - -The following patterns are not considered problems: - -````js -/** - * Foo. - */ -function quux () { - -} -// "jsdoc/newline-after-description": ["error"|"warn", "always"] - -/** - * Bar. - */ -function quux () { - -} -// "jsdoc/newline-after-description": ["error"|"warn", "never"] - -/** - * Foo. - * - * @foo - */ -function quux () { - -} -// "jsdoc/newline-after-description": ["error"|"warn", "always"] - -/** - * Bar. - * @bar - */ -function quux () { - -} -// "jsdoc/newline-after-description": ["error"|"warn", "never"] - - - /**\r - * @foo\r - * Test \r - * abc \r - * @bar \r - */ - - - /**\r - * \r - * @foo\r - * Test \r - * abc \r - * @bar \r - */ - -/*** - * - */ -function quux () { - -} -// "jsdoc/newline-after-description": ["error"|"warn", "always"] - -/**\r - * Parses query string to object containing URL parameters\r - * \r - * @param queryString\r - * Input string\r - * \r - * @returns\r - * Object containing URL parameters\r - */\r -export function parseQueryString(queryString: string): { [key: string]: string } { // <-- Line 10 that fails\r - -} - -/** An example function. - * - * @returns {number} An example number. - */ -function example() { - return 42; -} - -/** An example function. - * @returns {number} An example number. - */ -function example() { - return 42; -} -// "jsdoc/newline-after-description": ["error"|"warn", "never"] -```` - - ### no-bad-blocks @@ -9465,14 +9222,14 @@ asterisks, but which appear to be intended as jsdoc blocks due to the presence of whitespace followed by whitespace or asterisks, and an at-sign (`@`) and some non-whitespace (as with a jsdoc block tag). - - + + #### Options Takes an optional options object with the following. - - + + ##### ignore An array of directives that will not be reported if present at the beginning of @@ -9481,8 +9238,8 @@ a multi-comment block and at-sign `/* @`. Defaults to `['ts-check', 'ts-expect-error', 'ts-ignore', 'ts-nocheck']` (some directives [used by TypeScript](https://www.typescriptlang.org/docs/handbook/intro-to-js-ts.html#ts-check)). - - + + ##### preventAllMultiAsteriskBlocks A boolean (defaulting to `false`) which if `true` will prevent all @@ -9694,12 +9451,12 @@ tag is attached). Unless your `@default` is on a function, you will need to set `contexts` to an appropriate context, including, if you wish, "any". - - + + #### Options - - + + ##### noOptionalParamNames Set this to `true` to report the presence of optional parameters. May be @@ -9708,8 +9465,8 @@ the presence of ES6 default parameters (bearing in mind that such "defaults" are only applied when the supplied value is missing or `undefined` but not for `null` or other "falsey" values). - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -9895,12 +9652,12 @@ which are not adequate to satisfy a condition, e.g., not report if there were only a function declaration of the name "ignoreMe" (though it would report by function declarations of other names). - - + + #### Options - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -10116,12 +9873,12 @@ Note that if you wish to prevent multiple asterisks at the very beginning of the jsdoc block, you should use `no-bad-blocks` (as that is not proper jsdoc and that rule is for catching blocks which only seem like jsdoc). - - + + #### Options - - + + ##### allowWhitespace (defaults to false) Set to `true` if you wish to allow asterisks after a space (as with Markdown): @@ -10132,8 +9889,8 @@ Set to `true` if you wish to allow asterisks after a space (as with Markdown): */ ``` - - + + ##### preventAtMiddleLines (defaults to true) Prevent the likes of this: @@ -10145,8 +9902,8 @@ Prevent the likes of this: */ ``` - - + + ##### preventAtEnd (defaults to true) Prevent the likes of this: @@ -10381,12 +10138,12 @@ structures, (whether or not you add a specific `comment` condition). Note that if your parser supports comment AST (as [jsdoc-eslint-parser](https://github.com/brettz9/jsdoc-eslint-parser) is designed to do), you can just use ESLint's rule. - - + + #### Options - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -10711,12 +10468,12 @@ This rule reports types being used on `@param` or `@returns`. The rule is intended to prevent the indication of types on tags where the type information would be redundant with TypeScript. - - + + #### Options - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -10890,8 +10647,8 @@ reporting on use of that namepath elsewhere) and/or that a tag's `type` is `false` (and should not be checked for types). If the `type` is an array, that array's items will be considered as defined for the purposes of that tag. - - + + #### Options An option object may have the following key: @@ -11559,8 +11316,8 @@ class Foo { Requires that each JSDoc line starts with an `*`. - - + + #### Options This rule allows an optional string argument. If it is `"always"` then a @@ -11571,8 +11328,8 @@ and use the `tags` option to apply to specific tags only. After the string option, one may add an object with the following. - - + + ##### tags If you want different values to apply to specific tags, you may use @@ -11856,12 +11613,12 @@ If sentences do not end with terminal punctuation, a period will be added. If sentences do not start with an uppercase character, the initial letter will be capitalized. - - + + #### Options - - + + ##### tags If you want additional tags to be checked for their descriptions, you may @@ -11885,16 +11642,16 @@ its "description" (e.g., for `@returns {someType} some description`, the description is `some description` while for `@some-tag xyz`, the description is `xyz`). - - + + ##### abbreviations You can provide an `abbreviations` options array to avoid such strings of text being treated as sentence endings when followed by dots. The `.` is not necessary at the end of the array items. - - + + ##### newlineBeforeCapsAssumesBadSentenceEnd When `false` (the new default), we will not assume capital letters after @@ -12635,8 +12392,8 @@ Requires that all functions have a description. is `"tag"`) must have a non-empty description that explains the purpose of the method. - - + + #### Options An options object may have any of the following properties: @@ -13197,14 +12954,14 @@ Requires that all functions have examples. * Every example tag must have a non-empty description that explains the method's usage. - - + + #### Options This rule has an object option. - - + + ##### exemptedBy Array of tags (e.g., `['type']`) whose presence on the document @@ -13213,15 +12970,15 @@ block avoids the need for an `@example`. Defaults to an array with so be sure to add back `inheritdoc` if you wish its presence to cause exemption of the rule. - - + + ##### exemptNoArguments Boolean to indicate that no-argument functions should not be reported for missing `@example` declarations. - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -13233,27 +12990,27 @@ want the rule to apply to any jsdoc block throughout your files. See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. - - + + ##### checkConstructors A value indicating whether `constructor`s should be checked. Defaults to `true`. - - + + ##### checkGetters A value indicating whether getters should be checked. Defaults to `false`. - - + + ##### checkSetters A value indicating whether setters should be checked. Defaults to `false`. - - + + ##### enableFixer A boolean on whether to enable the fixer (which adds an empty `@example` block). @@ -13566,12 +13323,12 @@ Checks that: as being when the overview tag is not preceded by anything other than a comment. - - + + #### Options - - + + ##### tags The keys of this object are tag names, and the values are configuration @@ -13855,8 +13612,8 @@ function quux () { Requires (or disallows) a hyphen before the `@param` description. - - + + #### Options This rule takes one optional string argument and an optional options object. @@ -14088,14 +13845,14 @@ function main(argv) { Checks for presence of jsdoc comments, on class declarations as well as functions. - - + + #### Options Accepts one optional options object with the following optional keys. - - + + ##### publicOnly This option will insist that missing jsdoc blocks are only reported for @@ -14111,8 +13868,8 @@ otherwise noted): - `cjs` - CommonJS exports are checked for JSDoc comments (Defaults to `true`) - `window` - Window global exports are checked for JSDoc comments - - + + ##### require An object with the following optional boolean keys which all default to @@ -14125,8 +13882,8 @@ An object with the following optional boolean keys which all default to - `FunctionExpression` - `MethodDefinition` - - + + ##### contexts Set this to an array of strings or objects representing the additional AST @@ -14143,8 +13900,8 @@ if you are specifying a more precise form in `contexts` (e.g., `MethodDefinition See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. - - + + ##### exemptEmptyConstructors Default: true @@ -14153,8 +13910,8 @@ When `true`, the rule will not report missing jsdoc blocks above constructors with no parameters or return values (this is enabled by default as the class name or description should be seen as sufficient to convey intent). - - + + ##### exemptEmptyFunctions Default: false. @@ -14163,16 +13920,16 @@ When `true`, the rule will not report missing jsdoc blocks above functions/methods with no parameters or return values (intended where function/method names are sufficient for themselves as documentation). - - + + ##### checkConstructors A value indicating whether `constructor`s should be checked. Defaults to `true`. When `true`, `exemptEmptyConstructors` may still avoid reporting when no parameters or return values are found. - - + + ##### checkGetters A value indicating whether getters should be checked. Besides setting as a @@ -14181,8 +13938,8 @@ getters should be checked but only when there is no setter. This may be useful if one only wishes documentation on one of the two accessors. Defaults to `false`. - - + + ##### checkSetters A value indicating whether setters should be checked. Besides setting as a @@ -14191,15 +13948,15 @@ setters should be checked but only when there is no getter. This may be useful if one only wishes documentation on one of the two accessors. Defaults to `false`. - - + + ##### enableFixer A boolean on whether to enable the fixer (which adds an empty jsdoc block). Defaults to `true`. - - + + ##### minLineCount An integer to indicate a minimum number of lines expected for a node in order @@ -15891,12 +15648,12 @@ Will exempt destructured roots and their children if `@param {object} props` will be exempted from requiring a description given `function someFunc ({child1, child2})`). - - + + #### Options - - + + ##### setDefaultDestructuredRootDescription Whether to set a default destructured root description. For example, you may @@ -15905,15 +15662,15 @@ corresponding to a destructured root object as it should always be the same type of object. Uses `defaultDestructuredRootDescription` for the description string. Defaults to `false`. - - + + ##### defaultDestructuredRootDescription The description string to set by default for destructured roots. Defaults to "The root object". - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -16106,12 +15863,12 @@ Requires that all function parameters have names. > > [JSDoc](https://jsdoc.app/tags-param.html#overview) - - + + #### Options - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -16250,12 +16007,12 @@ Will exempt destructured roots and their children if `@param props` will be exempted from requiring a type given `function someFunc ({child1, child2})`). - - + + #### Options - - + + ##### setDefaultDestructuredRootType Whether to set a default destructured root type. For example, you may wish @@ -16264,14 +16021,14 @@ corresponding to a destructured root object as it is always going to be an object. Uses `defaultDestructuredRootType` for the type string. Defaults to `false`. - - + + ##### defaultDestructuredRootType The type string to set by default for destructured roots. Defaults to "object". - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -16636,35 +16393,35 @@ other properties, so in looking at the docs alone without looking at the function signature, it may appear that there is an actual property named `extra`. - - + + #### Options An options object accepts the following optional properties: - - + + ##### enableFixer Whether to enable the fixer. Defaults to `true`. - - + + ##### enableRootFixer Whether to enable the auto-adding of incrementing roots (see the "Fixer" section). Defaults to `true`. Has no effect if `enableFixer` is set to `false`. - - + + ##### enableRestElementFixer Whether to enable the rest element fixer (see "Rest Element (`RestElement`) insertions"). Defaults to `true`. - - + + ##### checkRestProperty If set to `true`, will report (and add fixer insertions) for missing rest @@ -16718,15 +16475,15 @@ function quux ({num, ...extra}) { } ``` - - + + ##### autoIncrementBase Numeric to indicate the number at which to begin auto-incrementing roots. Defaults to `0`. - - + + ##### unnamedRootBase An array of root names to use in the fixer when roots are missing. Defaults @@ -16752,8 +16509,8 @@ function quux ({foo}, [bar], {baz}) { */ ``` - - + + ##### exemptedBy Array of tags (e.g., `['type']`) whose presence on the document block @@ -16762,8 +16519,8 @@ avoids the need for a `@param`. Defaults to an array with so be sure to add back `inheritdoc` if you wish its presence to cause exemption of the rule. - - + + ##### checkTypesPattern When one specifies a type, unless it is of a generic type, like `object` @@ -16798,8 +16555,8 @@ You could set this regular expression to a more expansive list, or you could restrict it such that even types matching those strings would not need destructuring. - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -16811,33 +16568,33 @@ which are checked. See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. - - + + ##### checkConstructors A value indicating whether `constructor`s should be checked. Defaults to `true`. - - + + ##### checkGetters A value indicating whether getters should be checked. Defaults to `false`. - - + + ##### checkSetters A value indicating whether setters should be checked. Defaults to `false`. - - + + ##### checkDestructured Whether to require destructured properties. Defaults to `true`. - - + + ##### checkDestructuredRoots Whether to check the existence of a corresponding `@param` for root objects @@ -16850,8 +16607,8 @@ implied to be `false` (i.e., the inside of the roots will not be checked either, e.g., it will also not complain if `a` or `b` do not have their own documentation). Defaults to `true`. - - + + ##### useDefaultObjectProperties Set to `true` if you wish to expect documentation of properties on objects @@ -18536,8 +18293,8 @@ is found. Also reports if `@returns {never}` is discovered with a return value. Will also report if multiple `@returns` tags are present. - - + + #### Options - `exemptGenerators`- Because a generator might be labeled as having a @@ -19563,12 +19320,12 @@ Requires that the `@returns` tag has a `description` value. The error will not be reported if the return value is `void` or `undefined` or if it is `Promise` or `Promise`. - - + + #### Options - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -19722,12 +19479,12 @@ function quux () { Requires that `@returns` tag has `type` value. - - + + #### Options - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -19848,8 +19605,8 @@ Requires that returns are documented. Will also report if multiple `@returns` tags are present. - - + + #### Options - `checkConstructors` - A value indicating whether `constructor`s should @@ -20998,8 +20755,8 @@ for our desire for a separate tag to document rejection types and see [this discussion](https://stackoverflow.com/questions/50071115/typescript-promise-rejection-type) on why TypeScript doesn't offer such a feature. - - + + #### Options - `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the @@ -21303,8 +21060,8 @@ Will also report if multiple `@yields` tags are present. See the `next`, `forceRequireNext`, and `nextWithGeneratorTag` options for an option to expect a non-standard `@next` tag. - - + + #### Options - `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the @@ -22115,8 +21872,8 @@ function bodies. Will also report if multiple `@yields` tags are present. - - + + #### Options - `checkGeneratorsOnly` - Avoids checking the function body and merely insists @@ -22628,12 +22385,12 @@ Sorts tags by a specified sequence according to tag name. (Default order originally inspired by [`@homer0/prettier-plugin-jsdoc`](https://github.com/homer0/packages/tree/main/packages/public/prettier-plugin-jsdoc).) - - + + #### Options - - + + ##### tagSequence An array of tag names indicating the preferred sequence for sorting tags. @@ -22809,8 +22566,8 @@ a fixed order that doesn't change into the future, supply your own ]; ``` - - + + ##### alphabetizeExtras Defaults to `false`. Alphabetizes any items not within `tagSequence` after any @@ -22967,39 +22724,57 @@ function quux () {} Enforces lines (or no lines) between tags. - - +If you only want lines preceding all tags or after all tags, you can use +the "any" option along with `startLines` and/or `endLines`. + +The "always" or "never" options of this rule should not +be used with the linebreak-setting options of the `sort-tags` rule as both +may try to impose a conflicting number of lines. + + + #### Options The first option is a single string set to "always", "never", or "any" (defaults to "never"). "any" is only useful with `tags` (allowing non-enforcement of lines except -for particular tags) or with `dropEndLines`. +for particular tags) or with `startLines` or `endLines`. It is also +necessary if using the linebreak-setting options of the `sort-tags` rule +so that the two rules won't conflict in both attempting to set lines +between tags. The second option is an object with the following optional properties. - - + + ##### count (defaults to 1) Use with "always" to indicate the number of lines to require be present. - - -##### noEndLines (defaults to false) + + +##### applyToEndTag (defaults to true) + +Set to `false` and use with "always" to indicate the normal lines to be +added after tags should not be added after the final tag. -Use with "always" to indicate the normal lines to be added after tags should -not be added after the final tag. + + +##### startLines (defaults to 0) - - -##### dropEndLines (defaults to false) +If not set to `null`, will enforce end lines to the given count before the +first tag only. -If defined, will drop end lines for the final tag only. + + +##### endLines (defaults to 0) - - +If not set to `null`, will enforce end lines to the given count on the +final tag only. + + + ##### tags (default to empty object) Overrides the default behavior depending on specific tags. @@ -23016,7 +22791,7 @@ following keys: |Tags|Any| |Recommended|true| |Settings|N/A| -|Options|(a string matching `"always" or "never"` and optional object with `count` and `noEndLines`)| +|Options|(a string matching `"always"`, `"never"`, or `"any"` and optional object with `count`, `applyToEndTag`, `startLines`, `endLines`)| The following patterns are considered problems: @@ -23051,7 +22826,7 @@ The following patterns are considered problems: * @param {string} a * @param {number} b */ -// "jsdoc/tag-lines": ["error"|"warn", "always",{"noEndLines":true}] +// "jsdoc/tag-lines": ["error"|"warn", "always",{"applyToEndTag":false}] // Message: Expected 1 line between tags but found 0 /** @@ -23142,7 +22917,7 @@ The following patterns are considered problems: * @param {number} b * */ -// "jsdoc/tag-lines": ["error"|"warn", "always"] +// "jsdoc/tag-lines": ["error"|"warn", "always",{"endLines":null}] // Message: Expected 1 line between tags but found 0 /** @@ -23167,8 +22942,70 @@ The following patterns are considered problems: * This is still part of `@returns`. * */ -// "jsdoc/tag-lines": ["error"|"warn", "any",{"dropEndLines":true}] -// Message: Expected no trailing lines +// "jsdoc/tag-lines": ["error"|"warn", "any",{"endLines":0}] +// Message: Expected 0 trailing lines + +/** + * Some description + * @param {string} a + * @param {string} b + * + * @returns {SomeType} An extended + * description. + * + * This is still part of `@returns`. + * + * + * + */ +// "jsdoc/tag-lines": ["error"|"warn", "any",{"endLines":1}] +// Message: Expected 1 trailing lines + +/** + * Some description + * @param {string} a + * @param {string} b + * + * @returns {SomeType} An extended + * description. + * + * This is still part of `@returns`. + * + */ +// "jsdoc/tag-lines": ["error"|"warn", "any",{"endLines":2}] +// Message: Expected 2 trailing lines + +/** + * Some description + * + * + * @param {string} a + */ +// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":1}] +// Message: Expected only 1 line after block description + +/** + * Some description + * + * @param {string} a + */ +// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":0}] +// Message: Expected only 0 line after block description + +/** + * Some description + * + * @param {string} a + */ +// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":2}] +// Message: Expected 2 lines after block description + +/** + * Some description + * @param {string} a + */ +// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":1}] +// Message: Expected 1 lines after block description ```` The following patterns are not considered problems: @@ -23192,15 +23029,15 @@ The following patterns are not considered problems: * * @param {string} a */ -// "jsdoc/tag-lines": ["error"|"warn", "always",{"noEndLines":true}] +// "jsdoc/tag-lines": ["error"|"warn", "always",{"applyToEndTag":false}] /** * @param {string} a */ -// "jsdoc/tag-lines": ["error"|"warn", "never",{"noEndLines":true}] +// "jsdoc/tag-lines": ["error"|"warn", "never",{"applyToEndTag":false}] /** @param {number} b */ -// "jsdoc/tag-lines": ["error"|"warn", "never",{"noEndLines":true}] +// "jsdoc/tag-lines": ["error"|"warn", "never",{"applyToEndTag":false}] /** * Some description @@ -23209,7 +23046,7 @@ The following patterns are not considered problems: * @param {number} b * */ -// "jsdoc/tag-lines": ["error"|"warn", "always"] +// "jsdoc/tag-lines": ["error"|"warn", "always",{"endLines":null}] /** * Some description @@ -23220,7 +23057,7 @@ The following patterns are not considered problems: * * */ -// "jsdoc/tag-lines": ["error"|"warn", "always",{"count":2}] +// "jsdoc/tag-lines": ["error"|"warn", "always",{"count":2,"endLines":null}] /** * Some description @@ -23313,7 +23150,7 @@ The following patterns are not considered problems: * description. * */ -// "jsdoc/tag-lines": ["error"|"warn", "always"] +// "jsdoc/tag-lines": ["error"|"warn", "always",{"endLines":null}] /** * Some description @@ -23325,7 +23162,7 @@ The following patterns are not considered problems: * This is still part of `@returns`. * */ -// "jsdoc/tag-lines": ["error"|"warn", "always"] +// "jsdoc/tag-lines": ["error"|"warn", "always",{"endLines":null}] /** * Some description @@ -23337,7 +23174,35 @@ The following patterns are not considered problems: * * This is still part of `@returns`. */ -// "jsdoc/tag-lines": ["error"|"warn", "any",{"dropEndLines":true}] +// "jsdoc/tag-lines": ["error"|"warn", "any",{"endLines":0}] + +/** + * Some description + * + * @param {string} a + */ +// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":1}] + +/** + * Some description + * @param {string} a + * + */ +// "jsdoc/tag-lines": ["error"|"warn", "any",{"endLines":1}] + +/** + * Some description + * + * + * @param {string} a + */ +// "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":null}] + +/** + * Some description + * @param {string} a + */ +// "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":null}] ```` @@ -23353,19 +23218,19 @@ Markdown and you therefore do not wish for it to be accidentally interpreted as such by the likes of Visual Studio Code or if you wish to view it escaped within it or your documentation. - - + + #### Options - - + + ##### escapeHTML This option escapes all `<` and `&` characters (except those followed by whitespace which are treated as literals by Visual Studio Code). - - + + ##### escapeMarkdown This option escapes the first backtick (`` ` ``) in a paired sequence. @@ -23572,8 +23437,8 @@ for valid types (based on the tag's `type` value), and either portion checked for presence (based on `false` `name` or `type` values or their `required` value). See the setting for more details. - - + + #### Options - `allowEmptyNamepaths` (default: true) - Set to `false` to bulk disallow diff --git a/src/index.js b/src/index.js index 61915a3ca..2964dced5 100644 --- a/src/index.js +++ b/src/index.js @@ -15,7 +15,6 @@ import informativeDocs from './rules/informativeDocs'; import matchDescription from './rules/matchDescription'; import matchName from './rules/matchName'; import multilineBlocks from './rules/multilineBlocks'; -import newlineAfterDescription from './rules/newlineAfterDescription'; import noBadBlocks from './rules/noBadBlocks'; import noBlankBlockDescriptions from './rules/noBlankBlockDescriptions'; import noDefaults from './rules/noDefaults'; @@ -71,7 +70,6 @@ const index = { 'match-description': matchDescription, 'match-name': matchName, 'multiline-blocks': multilineBlocks, - 'newline-after-description': newlineAfterDescription, 'no-bad-blocks': noBadBlocks, 'no-blank-block-descriptions': noBlankBlockDescriptions, 'no-defaults': noDefaults, @@ -132,7 +130,6 @@ const createRecommendedRuleset = (warnOrError) => { 'jsdoc/match-description': 'off', 'jsdoc/match-name': 'off', 'jsdoc/multiline-blocks': warnOrError, - 'jsdoc/newline-after-description': warnOrError, 'jsdoc/no-bad-blocks': 'off', 'jsdoc/no-blank-block-descriptions': 'off', 'jsdoc/no-defaults': 'off', diff --git a/src/rules/newlineAfterDescription.js b/src/rules/newlineAfterDescription.js deleted file mode 100644 index 4610aab97..000000000 --- a/src/rules/newlineAfterDescription.js +++ /dev/null @@ -1,74 +0,0 @@ -import iterateJsdoc from '../iterateJsdoc'; - -export default iterateJsdoc(({ - jsdoc, - report, - context, - jsdocNode, - sourceCode, - indent, - utils, -}) => { - let always; - - if (!jsdoc.description.trim() || !jsdoc.tags.length) { - return; - } - - if (0 in context.options) { - always = context.options[0] === 'always'; - } else { - always = true; - } - - const { - description, - lastDescriptionLine, - } = utils.getDescription(); - const descriptionEndsWithANewline = (/\n\r?$/u).test(description); - - if (always) { - if (!descriptionEndsWithANewline) { - const sourceLines = sourceCode.getText(jsdocNode).split('\n'); - - report('There must be a newline after the description of the JSDoc block.', (fixer) => { - // Add the new line - const injectedLine = `${indent} *` + - (sourceLines[lastDescriptionLine].endsWith('\r') ? '\r' : ''); - sourceLines.splice(lastDescriptionLine + 1, 0, injectedLine); - - return fixer.replaceText(jsdocNode, sourceLines.join('\n')); - }, { - line: lastDescriptionLine, - }); - } - } else if (descriptionEndsWithANewline) { - const sourceLines = sourceCode.getText(jsdocNode).split('\n'); - report('There must be no newline after the description of the JSDoc block.', (fixer) => { - // Remove the extra line - sourceLines.splice(lastDescriptionLine, 1); - - return fixer.replaceText(jsdocNode, sourceLines.join('\n')); - }, { - line: lastDescriptionLine, - }); - } -}, { - iterateAllJsdocs: true, - meta: { - docs: { - description: 'Enforces a consistent padding of the block description.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-newline-after-description', - }, - fixable: 'whitespace', - schema: [ - { - enum: [ - 'always', 'never', - ], - type: 'string', - }, - ], - type: 'layout', - }, -}); diff --git a/src/rules/tagLines.js b/src/rules/tagLines.js index d3a900fb1..c651c1e16 100644 --- a/src/rules/tagLines.js +++ b/src/rules/tagLines.js @@ -9,17 +9,20 @@ export default iterateJsdoc(({ alwaysNever = 'never', { count = 1, - dropEndLines = false, - noEndLines = false, + endLines = 0, + startLines = 0, + applyToEndTag = true, tags = {}, } = {}, ] = context.options; + // eslint-disable-next-line complexity -- Temporary jsdoc.tags.some((tg, tagIdx) => { let lastTag; let lastEmpty = null; let reportIndex = null; + let emptyLinesCount = 0; for (const [ idx, { @@ -56,26 +59,51 @@ export default iterateJsdoc(({ } if (!end) { + if (empty) { + emptyLinesCount++; + } else { + emptyLinesCount = 0; + } + lastEmpty = empty ? idx : null; } lastTag = tag; } - if (dropEndLines && lastEmpty !== null && tagIdx === jsdoc.tags.length - 1) { - const fixer = () => { - utils.removeTag(tagIdx, { - tagSourceOffset: lastEmpty, - }); - }; + if ( + typeof endLines === 'number' && + lastEmpty !== null && tagIdx === jsdoc.tags.length - 1 + ) { + const lineDiff = endLines - emptyLinesCount; - utils.reportJSDoc( - 'Expected no trailing lines', - { - line: tg.source[lastEmpty].number, - }, - fixer, - ); + if (lineDiff < 0) { + const fixer = () => { + utils.removeTag(tagIdx, { + tagSourceOffset: lastEmpty + lineDiff + 1, + }); + }; + + utils.reportJSDoc( + `Expected ${endLines} trailing lines`, + { + line: tg.source[lastEmpty].number + lineDiff + 1, + }, + fixer, + ); + } else if (lineDiff > 0) { + const fixer = () => { + utils.addLines(tagIdx, lastEmpty, endLines - emptyLinesCount); + }; + + utils.reportJSDoc( + `Expected ${endLines} trailing lines`, + { + line: tg.source[lastEmpty].number, + }, + fixer, + ); + } return true; } @@ -101,7 +129,7 @@ export default iterateJsdoc(({ return false; }); - (noEndLines ? jsdoc.tags.slice(0, -1) : jsdoc.tags).some((tg, tagIdx) => { + (applyToEndTag ? jsdoc.tags : jsdoc.tags.slice(0, -1)).some((tg, tagIdx) => { const lines = []; let currentTag; @@ -169,6 +197,63 @@ export default iterateJsdoc(({ return false; }); + + if (typeof startLines === 'number') { + const { + description, + lastDescriptionLine, + } = utils.getDescription(); + const trailingLines = description.match(/\n+$/u)?.[0]?.length; + const trailingDiff = (trailingLines ?? 0) - startLines; + if (trailingDiff > 0) { + utils.reportJSDoc( + `Expected only ${startLines} line after block description`, + { + line: lastDescriptionLine - trailingDiff, + }, + () => { + utils.setBlockDescription((info, seedTokens, descLines) => { + return descLines.slice(0, -trailingDiff).map((desc) => { + return { + tokens: seedTokens({ + ...info, + description: desc, + postDelimiter: desc.trim() ? info.postDelimiter : '', + }), + }; + }); + }); + }, + ); + } else if (trailingDiff < 0) { + utils.reportJSDoc( + `Expected ${startLines} lines after block description`, + { + line: lastDescriptionLine, + }, + () => { + utils.setBlockDescription((info, seedTokens, descLines) => { + return [ + ...descLines, + ...Array.from({ + length: -trailingDiff, + }, () => { + return ''; + }), + ].map((desc) => { + return { + tokens: seedTokens({ + ...info, + description: desc, + postDelimiter: desc.trim() ? info.postDelimiter : '', + }), + }; + }); + }); + }, + ); + } + } }, { iterateAllJsdocs: true, meta: { @@ -187,14 +272,31 @@ export default iterateJsdoc(({ { additionalProperties: false, properties: { + applyToEndTag: { + type: 'boolean', + }, count: { type: 'integer', }, - dropEndLines: { - type: 'boolean', + endLines: { + anyOf: [ + { + type: 'integer', + }, + { + type: 'null', + }, + ], }, - noEndLines: { - type: 'boolean', + startLines: { + anyOf: [ + { + type: 'integer', + }, + { + type: 'null', + }, + ], }, tags: { patternProperties: { diff --git a/test/rules/assertions/newlineAfterDescription.js b/test/rules/assertions/newlineAfterDescription.js deleted file mode 100644 index f9adca7ae..000000000 --- a/test/rules/assertions/newlineAfterDescription.js +++ /dev/null @@ -1,475 +0,0 @@ -export default { - invalid: [ - { - code: ` - /** - * Foo. - * - * Foo. - * @foo - */ - function quux () { - - } - `, - errors: [ - { - line: 5, - message: 'There must be a newline after the description of the JSDoc block.', - }, - ], - options: [ - 'always', - ], - output: ` - /** - * Foo. - * - * Foo. - * - * @foo - */ - function quux () { - - } - `, - }, - { - code: ` - /** - * Foo. - * @foo - * - * Foo. - */ - function quux () { - - } - `, - errors: [ - { - line: 3, - message: 'There must be a newline after the description of the JSDoc block.', - }, - ], - options: [ - 'always', - ], - output: ` - /** - * Foo. - * - * @foo - * - * Foo. - */ - function quux () { - - } - `, - }, - { - code: ` - /** - * Foo. - * - * Foo. - * @foo - */ - function quux () { - - } - `, - errors: [ - { - line: 5, - message: 'There must be a newline after the description of the JSDoc block.', - }, - ], - output: ` - /** - * Foo. - * - * Foo. - * - * @foo - */ - function quux () { - - } - `, - }, - { - code: ` - /** - * Bar. - * - * Bar. - * - * @bar - */ - function quux () { - - } - `, - errors: [ - { - line: 6, - message: 'There must be no newline after the description of the JSDoc block.', - }, - ], - options: [ - 'never', - ], - output: ` - /** - * Bar. - * - * Bar. - * @bar - */ - function quux () { - - } - `, - }, - { - code: ` - /** - * Bar. - * - * @bar - * - * Bar. - */ - function quux () { - - } - `, - errors: [ - { - line: 4, - message: 'There must be no newline after the description of the JSDoc block.', - }, - ], - options: [ - 'never', - ], - output: ` - /** - * Bar. - * @bar - * - * Bar. - */ - function quux () { - - } - `, - }, - { - code: `\r - /**\r - * Bar.\r - *\r - * Bar.\r - *\r - * @bar\r - */\r - function quux () {\r -\r - }\r - `, - errors: [ - { - line: 6, - message: 'There must be no newline after the description of the JSDoc block.', - }, - ], - options: [ - 'never', - ], - output: `\r - /**\r - * Bar.\r - *\r - * Bar.\r - * @bar\r - */\r - function quux () {\r -\r - }\r - `, - }, - { - code: ` - /** - * A. - * - * @typedef {object} A - * @prop {boolean} a A. - */ - `, - errors: [ - { - line: 4, - message: 'There must be no newline after the description of the JSDoc block.', - }, - ], - options: [ - 'never', - ], - output: ` - /** - * A. - * @typedef {object} A - * @prop {boolean} a A. - */ - `, - }, - { - code: ` - /** - * A. - * @typedef {object} A - * @prop {boolean} a A. - */ - `, - errors: [ - { - line: 3, - message: 'There must be a newline after the description of the JSDoc block.', - }, - ], - options: [ - 'always', - ], - output: ` - /** - * A. - * - * @typedef {object} A - * @prop {boolean} a A. - */ - `, - }, - { - code: `\r - /**\r - * Service for fetching symbols.\r - * @param {object} $http - Injected http helper.\r - * @param {object} $q - Injected Promise api helper.\r - * @param {object} $location - Injected window location object.\r - * @param {object} REPORT_DIALOG_CONSTANTS - Injected handle.\r - */\r - `, - errors: [ - { - line: 3, - message: 'There must be a newline after the description of the JSDoc block.', - }, - ], - output: `\r - /**\r - * Service for fetching symbols.\r - *\r - * @param {object} $http - Injected http helper.\r - * @param {object} $q - Injected Promise api helper.\r - * @param {object} $location - Injected window location object.\r - * @param {object} REPORT_DIALOG_CONSTANTS - Injected handle.\r - */\r - `, - }, - { - code: ` - /** An example function. - * - * @returns {number} An example number. - */ - function example() { - return 42; - } - `, - errors: [ - { - line: 3, - message: 'There must be no newline after the description of the JSDoc block.', - }, - ], - options: [ - 'never', - ], - output: ` - /** An example function. - * @returns {number} An example number. - */ - function example() { - return 42; - } - `, - }, - { - code: ` - /** An example function. - * @returns {number} An example number. - */ - function example() { - return 42; - } - `, - errors: [ - { - line: 2, - message: 'There must be a newline after the description of the JSDoc block.', - }, - ], - options: [ - 'always', - ], - output: ` - /** An example function. - * - * @returns {number} An example number. - */ - function example() { - return 42; - } - `, - }, - ], - valid: [ - { - code: ` - /** - * Foo. - */ - function quux () { - - } - `, - options: [ - 'always', - ], - }, - { - code: ` - /** - * Bar. - */ - function quux () { - - } - `, - options: [ - 'never', - ], - }, - { - code: ` - /** - * Foo. - * - * @foo - */ - function quux () { - - } - `, - options: [ - 'always', - ], - }, - { - code: ` - /** - * Bar. - * @bar - */ - function quux () { - - } - `, - options: [ - 'never', - ], - }, - { - code: `\r - /**\r - * @foo\r - * Test\u00A0\r - * abc\u00A0\r - * @bar\u00A0\r - */\r - `, - }, - { - code: `\r - /**\r - * \r - * @foo\r - * Test\u00A0\r - * abc\u00A0\r - * @bar\u00A0\r - */\r - `, - }, - { - code: ` - /*** - * - */ - function quux () { - - }`, - options: [ - 'always', - ], - }, - { - // https://github.com/gajus/eslint-plugin-jsdoc/issues/437 - code: ` - /**\r - * Parses query string to object containing URL parameters\r - * \r - * @param queryString\r - * Input string\r - * \r - * @returns\r - * Object containing URL parameters\r - */\r - export function parseQueryString(queryString: string): { [key: string]: string } { // <-- Line 10 that fails\r -\r - }\r - `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { - sourceType: 'module', - }, - }, - { - code: ` - /** An example function. - * - * @returns {number} An example number. - */ - function example() { - return 42; - } - `, - }, - { - code: ` - /** An example function. - * @returns {number} An example number. - */ - function example() { - return 42; - } - `, - options: [ - 'never', - ], - }, - ], -}; diff --git a/test/rules/assertions/tagLines.js b/test/rules/assertions/tagLines.js index b49a0c571..839045380 100644 --- a/test/rules/assertions/tagLines.js +++ b/test/rules/assertions/tagLines.js @@ -102,7 +102,7 @@ export default { options: [ 'always', { - noEndLines: true, + applyToEndTag: false, }, ], output: ` @@ -415,6 +415,9 @@ export default { ], options: [ 'always', + { + endLines: null, + }, ], output: ` /** @@ -477,13 +480,94 @@ export default { errors: [ { line: 11, - message: 'Expected no trailing lines', + message: 'Expected 0 trailing lines', + }, + ], + options: [ + 'any', + { + endLines: 0, + }, + ], + output: ` + /** + * Some description + * @param {string} a + * @param {string} b + * + * @returns {SomeType} An extended + * description. + * + * This is still part of \`@returns\`. + */ + `, + }, + { + code: ` + /** + * Some description + * @param {string} a + * @param {string} b + * + * @returns {SomeType} An extended + * description. + * + * This is still part of \`@returns\`. + * + * + * + */ + `, + errors: [ + { + line: 12, + message: 'Expected 1 trailing lines', + }, + ], + options: [ + 'any', + { + endLines: 1, + }, + ], + output: ` + /** + * Some description + * @param {string} a + * @param {string} b + * + * @returns {SomeType} An extended + * description. + * + * This is still part of \`@returns\`. + * + */ + `, + }, + { + code: ` + /** + * Some description + * @param {string} a + * @param {string} b + * + * @returns {SomeType} An extended + * description. + * + * This is still part of \`@returns\`. + * + */ + `, + errors: [ + { + line: 11, + message: 'Expected 2 trailing lines', }, ], options: [ 'any', { - dropEndLines: true, + endLines: 2, }, ], output: ` @@ -496,9 +580,123 @@ export default { * description. * * This is still part of \`@returns\`. + * + * */ `, }, + { + code: ` + /** + * Some description + * + * + * @param {string} a + */ + `, + errors: [ + { + line: 4, + message: 'Expected only 1 line after block description', + }, + ], + options: [ + 'any', + { + startLines: 1, + }, + ], + output: ` + /** + * Some description + * + * @param {string} a + */ + `, + }, + { + code: ` + /** + * Some description + * + * @param {string} a + */ + `, + errors: [ + { + line: 3, + message: 'Expected only 0 line after block description', + }, + ], + options: [ + 'any', + { + startLines: 0, + }, + ], + output: ` + /** + * Some description + * @param {string} a + */ + `, + }, + { + code: ` + /** + * Some description + * + * @param {string} a + */ + `, + errors: [ + { + line: 4, + message: 'Expected 2 lines after block description', + }, + ], + options: [ + 'any', + { + startLines: 2, + }, + ], + output: ` + /** + * Some description + * + * + * @param {string} a + */ + `, + }, + { + code: ` + /** + * Some description + * @param {string} a + */ + `, + errors: [ + { + line: 3, + message: 'Expected 1 lines after block description', + }, + ], + options: [ + 'any', + { + startLines: 1, + }, + ], + output: ` + /** + * Some description + * + * @param {string} a + */ + `, + }, ], valid: [ { @@ -532,7 +730,7 @@ export default { `, options: [ 'always', { - noEndLines: true, + applyToEndTag: false, }, ], }, @@ -544,7 +742,7 @@ export default { `, options: [ 'never', { - noEndLines: true, + applyToEndTag: false, }, ], }, @@ -554,7 +752,7 @@ export default { `, options: [ 'never', { - noEndLines: true, + applyToEndTag: false, }, ], }, @@ -570,6 +768,9 @@ export default { `, options: [ 'always', + { + endLines: null, + }, ], }, { @@ -587,6 +788,7 @@ export default { options: [ 'always', { count: 2, + endLines: null, }, ], }, @@ -786,6 +988,9 @@ export default { `, options: [ 'always', + { + endLines: null, + }, ], }, { @@ -803,6 +1008,9 @@ export default { `, options: [ 'always', + { + endLines: null, + }, ], }, { @@ -821,7 +1029,67 @@ export default { options: [ 'any', { - dropEndLines: true, + endLines: 0, + }, + ], + }, + { + code: ` + /** + * Some description + * + * @param {string} a + */ + `, + options: [ + 'any', + { + startLines: 1, + }, + ], + }, + { + code: ` + /** + * Some description + * @param {string} a + * + */ + `, + options: [ + 'any', + { + endLines: 1, + }, + ], + }, + { + code: ` + /** + * Some description + * + * + * @param {string} a + */ + `, + options: [ + 'never', + { + startLines: null, + }, + ], + }, + { + code: ` + /** + * Some description + * @param {string} a + */ + `, + options: [ + 'never', + { + startLines: null, }, ], }, diff --git a/test/rules/ruleNames.json b/test/rules/ruleNames.json index 71de12d2d..f4a84e27d 100644 --- a/test/rules/ruleNames.json +++ b/test/rules/ruleNames.json @@ -16,7 +16,6 @@ "match-description", "match-name", "multiline-blocks", - "newline-after-description", "no-bad-blocks", "no-blank-block-descriptions", "no-defaults", From 9b8c6534362fe66d561d5f0c40f13831675c8697 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 11 Apr 2023 10:29:49 -0700 Subject: [PATCH 039/273] feat: allow specification of tag groups and lines between (and before and after) them and removal of whitespace within them; fixes #782 BREAKING CHANGE: `tagSequence` array of string tags argument must be specified instead as array of `{tags: []}` objects, with each object representing groups which can gain optional whitespace between them; if none are needed, just put all tags into the array of a single `{tags: []}` --- .README/rules/sort-tags.md | 60 +- README.md | 284 +++++- src/defaultTagOrder.js | 316 +++--- src/iterateJsdoc.js | 7 +- src/rules/sortTags.js | 320 +++++- test/rules/assertions/sortTags.js | 1546 ++++++++++++++++++++++++++++- 6 files changed, 2338 insertions(+), 195 deletions(-) diff --git a/.README/rules/sort-tags.md b/.README/rules/sort-tags.md index 2f24c9ccb..957bdcb6d 100644 --- a/.README/rules/sort-tags.md +++ b/.README/rules/sort-tags.md @@ -4,28 +4,48 @@ Sorts tags by a specified sequence according to tag name. (Default order originally inspired by [`@homer0/prettier-plugin-jsdoc`](https://github.com/homer0/packages/tree/main/packages/public/prettier-plugin-jsdoc).) +Optionally allows adding line breaks between tag groups and/or between tags +within a tag group. + +Please note: unless you are disabling reporting of line breaks, this rule +should not be used with the default "never" or "always" options of +`tag-lines` (a rule enabled by default with the recommended config) as +that rule adds its own line breaks after tags and may interfere with any +line break setting this rule will attempt to do when not disabled. + +You may, however, safely set the "any" option in that rule along with +`startLines` and/or `endLines`. + #### Options ##### `tagSequence` -An array of tag names indicating the preferred sequence for sorting tags. +An array of tag group objects indicating the preferred sequence for sorting tags. + +Each item in the array should be an object with a `tags` property set to an array +of tag names. Tag names earlier in the list will be arranged first. The relative position of tags of the same name will not be changed. -Tags not in the list will be sorted alphabetically at the end (or in place of -the pseudo-tag `-other` placed within `tagSequence`) if `alphabetizeExtras` is -enabled and in their order of appearance otherwise (so if you want all your -tags alphabetized, supply an empty array with `alphabetizeExtras` enabled). +Earlier groups will also be arranged before later groups, but with the added +feature that additional line breaks may be added between (or before or after) +such groups (depending on the setting of `linesBetween`). + +Tag names not in the list will be grouped together at the end. The pseudo-tag +`-other` can be used to place them anywhere else if desired. The tags will be +placed in their order of appearance, or alphabetized if `alphabetizeExtras` +is enabled, see more below about that option. -Defaults to the array below. +Defaults to the array below (noting that it is just a single tag group with +no lines between groups by default). Please note that this order is still experimental, so if you want to retain a fixed order that doesn't change into the future, supply your own `tagSequence`. ```js -[ +[{tags: [ // Brief descriptions 'summary', 'typeSummary', @@ -178,7 +198,7 @@ a fixed order that doesn't change into the future, supply your own 'since', 'deprecated', 'todo', -]; +]}]; ``` ##### `alphabetizeExtras` @@ -187,12 +207,34 @@ Defaults to `false`. Alphabetizes any items not within `tagSequence` after any items within `tagSequence` (or in place of the special `-other` pseudo-tag) are sorted. +If you want all your tags alphabetized, you can supply an empty array for +`tagSequence` along with setting this option to `true`. + +##### `linesBetween` + +Indicates the number of lines to be added between tag groups. Defaults to 1. +Do not set to 0 or 2+ if you are using `tag-lines` and `"always"` and do not +set to 1+ if you are using `tag-lines` and `"never"`. + +##### `reportTagGroupSpacing` + +Whether to enable reporting and fixing of line breaks between tag groups +as set by `linesBetween`. Defaults to `true`. Note that the very last tag +will not have spacing applied regardless. For adding line breaks there, you +may wish to use the `endLines` option of the `tag-lines` rule. + +##### `reportIntraTagGroupSpacing` + +Whether to enable reporting and fixing of line breaks within tags of a given +tag group. Defaults to `true` which will remove any line breaks at the end of +such tags. Do not use with `true` if you are using `tag-lines` and `always`. + ||| |---|---| |Context|everywhere| |Tags|any| |Recommended|false| |Settings|| -|Options|`tagSequence`, `alphabetizeExtras`| +|Options|`tagSequence`, `alphabetizeExtras`, `linesBetween`, `reportTagGroupSpacing`, `reportIntraTagGroupSpacing`| diff --git a/README.md b/README.md index b90b3b4ef..f2960da3f 100644 --- a/README.md +++ b/README.md @@ -22385,6 +22385,18 @@ Sorts tags by a specified sequence according to tag name. (Default order originally inspired by [`@homer0/prettier-plugin-jsdoc`](https://github.com/homer0/packages/tree/main/packages/public/prettier-plugin-jsdoc).) +Optionally allows adding line breaks between tag groups and/or between tags +within a tag group. + +Please note: unless you are disabling reporting of line breaks, this rule +should not be used with the default "never" or "always" options of +`tag-lines` (a rule enabled by default with the recommended config) as +that rule adds its own line breaks after tags and may interfere with any +line break setting this rule will attempt to do when not disabled. + +You may, however, safely set the "any" option in that rule along with +`startLines` and/or `endLines`. + #### Options @@ -22393,24 +22405,32 @@ Sorts tags by a specified sequence according to tag name. ##### tagSequence -An array of tag names indicating the preferred sequence for sorting tags. +An array of tag group objects indicating the preferred sequence for sorting tags. + +Each item in the array should be an object with a `tags` property set to an array +of tag names. Tag names earlier in the list will be arranged first. The relative position of tags of the same name will not be changed. -Tags not in the list will be sorted alphabetically at the end (or in place of -the pseudo-tag `-other` placed within `tagSequence`) if `alphabetizeExtras` is -enabled and in their order of appearance otherwise (so if you want all your -tags alphabetized, supply an empty array with `alphabetizeExtras` enabled). +Earlier groups will also be arranged before later groups, but with the added +feature that additional line breaks may be added between (or before or after) +such groups (depending on the setting of `linesBetween`). + +Tag names not in the list will be grouped together at the end. The pseudo-tag +`-other` can be used to place them anywhere else if desired. The tags will be +placed in their order of appearance, or alphabetized if `alphabetizeExtras` +is enabled, see more below about that option. -Defaults to the array below. +Defaults to the array below (noting that it is just a single tag group with +no lines between groups by default). Please note that this order is still experimental, so if you want to retain a fixed order that doesn't change into the future, supply your own `tagSequence`. ```js -[ +[{tags: [ // Brief descriptions 'summary', 'typeSummary', @@ -22563,7 +22583,7 @@ a fixed order that doesn't change into the future, supply your own 'since', 'deprecated', 'todo', -]; +]}]; ``` @@ -22574,13 +22594,41 @@ Defaults to `false`. Alphabetizes any items not within `tagSequence` after any items within `tagSequence` (or in place of the special `-other` pseudo-tag) are sorted. +If you want all your tags alphabetized, you can supply an empty array for +`tagSequence` along with setting this option to `true`. + + + +##### linesBetween + +Indicates the number of lines to be added between tag groups. Defaults to 1. +Do not set to 0 or 2+ if you are using `tag-lines` and `"always"` and do not +set to 1+ if you are using `tag-lines` and `"never"`. + + + +##### reportTagGroupSpacing + +Whether to enable reporting and fixing of line breaks between tag groups +as set by `linesBetween`. Defaults to `true`. Note that the very last tag +will not have spacing applied regardless. For adding line breaks there, you +may wish to use the `endLines` option of the `tag-lines` rule. + + + +##### reportIntraTagGroupSpacing + +Whether to enable reporting and fixing of line breaks within tags of a given +tag group. Defaults to `true` which will remove any line breaks at the end of +such tags. Do not use with `true` if you are using `tag-lines` and `always`. + ||| |---|---| |Context|everywhere| |Tags|any| |Recommended|false| |Settings|| -|Options|`tagSequence`, `alphabetizeExtras`| +|Options|`tagSequence`, `alphabetizeExtras`, `linesBetween`, `reportTagGroupSpacing`, `reportIntraTagGroupSpacing`| The following patterns are considered problems: @@ -22645,7 +22693,16 @@ function quux () {} * @abc */ function quux () {} -// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":["def","xyz","abc"]}] +// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["def","xyz","abc"]}]}] +// Message: Tags are not in the prescribed order: def, xyz, abc + +/** + * @xyz + * @def + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["def","xyz"]},{"tags":["abc"]}]}] // Message: Tags are not in the prescribed order: def, xyz, abc /** @@ -22677,6 +22734,135 @@ function quux () {} */ function quux () {} // Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo + +/** + * @def + * @xyz + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":2,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] +// Message: Tag groups do not have the expected whitespace + +/** + * @def + * @xyz + * + * + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":1,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] +// Message: Tag groups do not have the expected whitespace + +/** + * @def + * @xyz A multiline + * description + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":2,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] +// Message: Tag groups do not have the expected whitespace + +/** + * @def + * @xyz + * @xyz + * + * + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":1,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] +// Message: Tag groups do not have the expected whitespace + +/** + * Foo + * + * @param {( + * req: express.Request, + * done: (error: any, user?: any, info?: any) => void + * ) => void} verify - callback to excute custom authentication logic + * @see https://github.com/jaredhanson/passport/blob/v0.4.1/lib/middleware/authenticate.js#L217 + * + */ +// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["since","access"]},{"tags":["class","augments","mixes"]},{"tags":["alias","memberof"]},{"tags":["see","link","global"]},{"tags":["fires","listens"]},{"tags":["param"]},{"tags":["yields"]},{"tags":["returns"]}]}] +// Message: Tags are not in the prescribed order: since, access, class, augments, mixes, alias, memberof, see, link, global, fires, listens, param, yields, returns + +/** + * Summary. (use period) + * + * Description. (use period) + * + * @since 1.0.1 + * @access private + * + * @class + * @mixes mixin + * + * @alias realName + * @memberof namespace + * + * @see Function/class relied on + * @global + * + * @tutorial Asd + * @license MIT + * + * @fires eventName + * @fires className#eventName + * @listens event:eventName + * @listens className~event:eventName + * + * @tutorial Asd + * @license MIT + * + * @yields {string} Yielded value description. + * + * @param {string} var1 - Description. + * @param {string} var2 - Description of optional variable. + * @param {string} var3 - Description of optional variable with default variable. + * @param {object} objectVar - Description. + * @param {string} objectVar.key - Description of a key in the objectVar parameter. + * + * @returns {string} Return value description. + */ +// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["since","access"]},{"tags":["class","augments","mixes"]},{"tags":["alias","memberof"]},{"tags":["see","link","global"]},{"tags":["fires","listens"]},{"tags":["param"]},{"tags":["yields"]},{"tags":["returns"]}]}] +// Message: Tags are not in the prescribed order: since, access, class, augments, mixes, alias, memberof, see, link, global, fires, listens, param, yields, returns + +/** + * @def + * @zzz + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":1,"tagSequence":[{"tags":["qrs"]},{"tags":["def","-other","xyz"]},{"tags":["abc"]}]}] +// Message: Tag groups do not have the expected whitespace + +/** + * @xyz + * @def + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"alphabetizeExtras":true,"tagSequence":[]}] +// Message: Tags are not in the prescribed order: (alphabetical) + +/** + * @example + * enum Color { Red, Green, Blue } + * faker.helpers.enumValue(Color) // 1 (Green) + * + * enum Direction { North = 'North', South = 'South'} + * faker.helpers.enumValue(Direction) // 'South' + * + * enum HttpStatus { Ok = 200, Created = 201, BadRequest = 400, Unauthorized = 401 } + * faker.helpers.enumValue(HttpStatus) // 200 (Ok) + * @since 8.0.0 + */ +// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["internal"]},{"tags":["template","param"]},{"tags":["returns"]},{"tags":["throws"]},{"tags":["see"]},{"tags":["example"]},{"tags":["since"]},{"tags":["deprecated"]}]}] +// Message: Tag groups do not have the expected whitespace ```` The following patterns are not considered problems: @@ -22711,10 +22897,86 @@ function quux () {} * @abc */ function quux () {} -// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":["def","xyz","abc"]}] +// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["def","xyz","abc"]}]}] /** @def */ function quux () {} + +/** + * @def + * @xyz + * + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":1,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] + +/** + * @def + * @xyz A multiline + * description + * + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":1,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] + +/** + * Foo + * + * @see https://github.com/jaredhanson/passport/blob/v0.4.1/lib/middleware/authenticate.js#L217 + * + * @param {( + * req: express.Request, + * done: (error: any, user?: any, info?: any) => void + * ) => void} verify - callback to excute custom authentication logic + */ +// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["since","access"]},{"tags":["class","augments","mixes"]},{"tags":["alias","memberof"]},{"tags":["see","link","global"]},{"tags":["fires","listens"]},{"tags":["param"]},{"tags":["yields"]},{"tags":["returns"]}]}] + +/** + * Constructor. + * + * @public + * + * @param {string} [message] - Error message. + */ +// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["since","access"]},{"tags":["class","augments","mixes"]},{"tags":["alias","memberof"]},{"tags":["public","protected","private","override"]},{"tags":["override","async"]},{"tags":["see","link","global"]},{"tags":["param"]},{"tags":["yields"]},{"tags":["returns"]},{"tags":["fires","-other","listens"]}]}] + +/** + * @param options.mode The mode to generate the birthdate. Supported modes are `'age'` and `'year'` . + * + * There are two modes available `'age'` and `'year'`: + * - `'age'`: The min and max options define the age of the person (e.g. `18` - `42`). + * - `'year'`: The min and max options define the range the birthdate may be in (e.g. `1900` - `2000`). + * + * Defaults to `year`. + * + * @example + */ +// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["internal"]},{"tags":["template","param"]},{"tags":["returns"]},{"tags":["throws"]},{"tags":["see"]},{"tags":["example"]},{"tags":["since"]},{"tags":["deprecated"]}]}] + +/** + * @example + * enum Color { Red, Green, Blue } + * faker.helpers.enumValue(Color) // 1 (Green) + * + * enum Direction { North = 'North', South = 'South'} + * faker.helpers.enumValue(Direction) // 'South' + * + * enum HttpStatus { Ok = 200, Created = 201, BadRequest = 400, Unauthorized = 401 } + * faker.helpers.enumValue(HttpStatus) // 200 (Ok) + * + * @since 8.0.0 + */ +// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["internal"]},{"tags":["template","param"]},{"tags":["returns"]},{"tags":["throws"]},{"tags":["see"]},{"tags":["example"]},{"tags":["since"]},{"tags":["deprecated"]}]}] + +/** + * @def + * @xyz + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":2,"reportTagGroupSpacing":false,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] ```` diff --git a/src/defaultTagOrder.js b/src/defaultTagOrder.js index fdc566b13..e94494689 100644 --- a/src/defaultTagOrder.js +++ b/src/defaultTagOrder.js @@ -1,160 +1,164 @@ const defaultTagOrder = [ - // Brief descriptions - 'summary', - 'typeSummary', - - // Module/file-level - 'module', - 'exports', - 'file', - 'fileoverview', - 'overview', - - // Identifying (name, type) - 'typedef', - 'interface', - 'record', - 'template', - 'name', - 'kind', - 'type', - 'alias', - 'external', - 'host', - 'callback', - 'func', - 'function', - 'method', - 'class', - 'constructor', - - // Relationships - 'modifies', - 'mixes', - 'mixin', - 'mixinClass', - 'mixinFunction', - 'namespace', - 'borrows', - 'constructs', - 'lends', - 'implements', - 'requires', - - // Long descriptions - 'desc', - 'description', - 'classdesc', - 'tutorial', - 'copyright', - 'license', - - // Simple annotations - - // TypeScript - 'internal', - - 'const', - 'constant', - 'final', - 'global', - 'readonly', - 'abstract', - 'virtual', - 'var', - 'member', - 'memberof', - 'memberof!', - 'inner', - 'instance', - 'inheritdoc', - 'inheritDoc', - 'override', - 'hideconstructor', - - // Core function/object info - 'param', - 'arg', - 'argument', - 'prop', - 'property', - 'return', - 'returns', - - // Important behavior details - 'async', - 'generator', - 'default', - 'defaultvalue', - 'enum', - 'augments', - 'extends', - 'throws', - 'exception', - 'yield', - 'yields', - 'event', - 'fires', - 'emits', - 'listens', - 'this', - - // Access - 'static', - 'private', - 'protected', - 'public', - 'access', - 'package', - - '-other', - - // Supplementary descriptions - 'see', - 'example', - - // METADATA - - // Other Closure (undocumented) metadata - 'closurePrimitive', - 'customElement', - 'expose', - 'hidden', - 'idGenerator', - 'meaning', - 'ngInject', - 'owner', - 'wizaction', - - // Other Closure (documented) metadata - 'define', - 'dict', - 'export', - 'externs', - 'implicitCast', - 'noalias', - 'nocollapse', - 'nocompile', - 'noinline', - 'nosideeffects', - 'polymer', - 'polymerBehavior', - 'preserve', - 'struct', - 'suppress', - 'unrestricted', - - // @homer0/prettier-plugin-jsdoc metadata - 'category', - - // Non-Closure metadata - 'ignore', - 'author', - 'version', - 'variation', - 'since', - 'deprecated', - 'todo', + { + tags: [ + // Brief descriptions + 'summary', + 'typeSummary', + + // Module/file-level + 'module', + 'exports', + 'file', + 'fileoverview', + 'overview', + + // Identifying (name, type) + 'typedef', + 'interface', + 'record', + 'template', + 'name', + 'kind', + 'type', + 'alias', + 'external', + 'host', + 'callback', + 'func', + 'function', + 'method', + 'class', + 'constructor', + + // Relationships + 'modifies', + 'mixes', + 'mixin', + 'mixinClass', + 'mixinFunction', + 'namespace', + 'borrows', + 'constructs', + 'lends', + 'implements', + 'requires', + + // Long descriptions + 'desc', + 'description', + 'classdesc', + 'tutorial', + 'copyright', + 'license', + + // Simple annotations + + // TypeScript + 'internal', + + 'const', + 'constant', + 'final', + 'global', + 'readonly', + 'abstract', + 'virtual', + 'var', + 'member', + 'memberof', + 'memberof!', + 'inner', + 'instance', + 'inheritdoc', + 'inheritDoc', + 'override', + 'hideconstructor', + + // Core function/object info + 'param', + 'arg', + 'argument', + 'prop', + 'property', + 'return', + 'returns', + + // Important behavior details + 'async', + 'generator', + 'default', + 'defaultvalue', + 'enum', + 'augments', + 'extends', + 'throws', + 'exception', + 'yield', + 'yields', + 'event', + 'fires', + 'emits', + 'listens', + 'this', + + // Access + 'static', + 'private', + 'protected', + 'public', + 'access', + 'package', + + '-other', + + // Supplementary descriptions + 'see', + 'example', + + // METADATA + + // Other Closure (undocumented) metadata + 'closurePrimitive', + 'customElement', + 'expose', + 'hidden', + 'idGenerator', + 'meaning', + 'ngInject', + 'owner', + 'wizaction', + + // Other Closure (documented) metadata + 'define', + 'dict', + 'export', + 'externs', + 'implicitCast', + 'noalias', + 'nocollapse', + 'nocompile', + 'noinline', + 'nosideeffects', + 'polymer', + 'polymerBehavior', + 'preserve', + 'struct', + 'suppress', + 'unrestricted', + + // @homer0/prettier-plugin-jsdoc metadata + 'category', + + // Non-Closure metadata + 'ignore', + 'author', + 'version', + 'variation', + 'since', + 'deprecated', + 'todo', + ], + }, ]; export default defaultTagOrder; diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index 233002ead..66227ffe9 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -128,7 +128,12 @@ const getUtils = ( }; utils.stringify = (tagBlock, specRewire) => { - return commentStringify(specRewire ? rewireSpecs(tagBlock) : tagBlock); + let block; + if (specRewire) { + block = rewireSpecs(tagBlock); + } + + return commentStringify(specRewire ? block : tagBlock); }; utils.reportJSDoc = (msg, tag, handler, specRewire, data) => { diff --git a/src/rules/sortTags.js b/src/rules/sortTags.js index 47d8c5ff1..3d4e19129 100644 --- a/src/rules/sortTags.js +++ b/src/rules/sortTags.js @@ -1,18 +1,27 @@ import defaultTagOrder from '../defaultTagOrder'; import iterateJsdoc from '../iterateJsdoc'; +// eslint-disable-next-line complexity -- Temporary export default iterateJsdoc(({ context, jsdoc, utils, }) => { const { + linesBetween = 1, tagSequence = defaultTagOrder, alphabetizeExtras = false, + reportTagGroupSpacing = true, + reportIntraTagGroupSpacing = true, } = context.options[0] || {}; - const otherPos = tagSequence.indexOf('-other'); - const endPos = otherPos > -1 ? otherPos : tagSequence.length; + const tagList = tagSequence.flatMap((obj) => { + /* typeof obj === 'string' ? obj : */ + return obj.tags; + }); + + const otherPos = tagList.indexOf('-other'); + const endPos = otherPos > -1 ? otherPos : tagList.length; let ongoingCount = 0; for (const [ @@ -46,8 +55,8 @@ export default iterateJsdoc(({ } }; - const newPos = tagSequence.indexOf(tagNew); - const oldPos = tagSequence.indexOf(tagOld); + const newPos = tagList.indexOf(tagNew); + const oldPos = tagList.indexOf(tagOld); const preferredNewPos = newPos === -1 ? endPos : newPos; const preferredOldPos = oldPos === -1 ? endPos : oldPos; @@ -83,6 +92,284 @@ export default iterateJsdoc(({ }); if (firstChangedTagLine === undefined) { + // Should be ordered by now + + const lastTagsOfGroup = []; + const badLastTagsOfGroup = []; + + const countTagEmptyLines = (tag) => { + return tag.source.reduce((acc, { + tokens: { + description, + name, + type, + end, + tag: tg, + }, + }) => { + const empty = !tg && !type && !name && !description; + // Reset the count so long as there is content + return empty ? acc + (empty && !end) : 0; + }, 0); + }; + + let idx = 0; + for (const { + tags, + } of tagSequence) { + let innerIdx; + let currentTag; + let lastTag; + do { + currentTag = jsdoc.tags[idx]; + if (!currentTag) { + idx++; + break; + } + + innerIdx = tags.indexOf(currentTag.tag); + + if ( + innerIdx === -1 && + // eslint-disable-next-line no-loop-func -- Safe + (!tags.includes('-other') || tagSequence.some(({ + tags: tgs, + }) => { + return tgs.includes(currentTag.tag); + })) + ) { + idx++; + break; + } + + lastTag = currentTag; + + idx++; + } while (true); + + idx--; + + if (lastTag) { + lastTagsOfGroup.push(lastTag); + const ct = countTagEmptyLines(lastTag); + if ( + ct !== linesBetween && + // Use another rule for adding to end (should be of interest outside this rule) + jsdoc.tags[idx] + ) { + badLastTagsOfGroup.push([ + lastTag, ct, + ]); + } + } + } + + if (reportTagGroupSpacing && badLastTagsOfGroup.length) { + const fixer = (tg) => { + return () => { + // Due to https://github.com/syavorsky/comment-parser/issues/110 , + // we have to modify `jsdoc.source` rather than just modify tags + // directly + for (const [ + currIdx, + { + tokens, + }, + ] of jsdoc.source.entries()) { + if (tokens.tag !== '@' + tg.tag) { + continue; + } + + // Cannot be `tokens.end`, as dropped off last tag, so safe to + // go on + let newIdx = currIdx; + + const emptyLine = () => { + return { + tokens: utils.seedTokens({ + delimiter: '*', + start: jsdoc.source[newIdx - 1].tokens.start, + }), + }; + }; + + let existingEmptyLines = 0; + while (true) { + const nextTokens = jsdoc.source[++newIdx]?.tokens; + + /* istanbul ignore if -- Guard */ + if (!nextTokens) { + return; + } + + // Should be no `nextTokens.end` to worry about since ignored + // if not followed by tag + + if (nextTokens.tag) { + // Haven't made it to last tag instance yet, so keep looking + if (nextTokens.tag === tokens.tag) { + existingEmptyLines = 0; + continue; + } + + const lineDiff = linesBetween - existingEmptyLines; + if (lineDiff > 0) { + const lines = Array.from({ + length: lineDiff, + }, () => { + return emptyLine(); + }); + jsdoc.source.splice(newIdx, 0, ...lines); + } else { + // lineDiff < 0 + jsdoc.source.splice( + newIdx + lineDiff, + -lineDiff, + ); + } + + break; + } + + const empty = !nextTokens.type && !nextTokens.name && + !nextTokens.description; + + if (empty) { + existingEmptyLines++; + } else { + // Has content again, so reset empty line count + existingEmptyLines = 0; + } + } + + break; + } + + for (const [ + srcIdx, + src, + ] of jsdoc.source.entries()) { + src.number = srcIdx; + } + }; + }; + + for (const [ + tg, + ct, + ] of badLastTagsOfGroup) { + utils.reportJSDoc( + 'Tag groups do not have the expected whitespace', + tg, + fixer(tg, ct), + ); + } + + return; + } + + if (!reportIntraTagGroupSpacing) { + return; + } + + for (const [ + tagIdx, + tag, + ] of jsdoc.tags.entries()) { + if (!jsdoc.tags[tagIdx + 1] || lastTagsOfGroup.includes(tag)) { + continue; + } + + const ct = countTagEmptyLines(tag); + if (ct) { + // eslint-disable-next-line complexity -- Temporary + const fixer = () => { + let foundFirstTag = false; + let currentTag; + for (const [ + currIdx, + { + tokens: { + description, + name, + type, + end, + tag: tg, + }, + }, + ] of jsdoc.source.entries()) { + if (tg) { + foundFirstTag = true; + currentTag = tg; + } + + if (!foundFirstTag) { + continue; + } + + if (currentTag && !tg && !type && !name && !description && !end) { + let nextIdx = currIdx; + + let ignore = true; + // Even if a tag of the same name as the last tags in a group, + // could still be an earlier tag in that group + + // eslint-disable-next-line no-loop-func -- Safe + if (lastTagsOfGroup.some((lastTagOfGroup) => { + return currentTag === '@' + lastTagOfGroup.tag; + })) { + while (true) { + const nextTokens = jsdoc.source[++nextIdx]?.tokens; + if (!nextTokens) { + break; + } + + if (!nextTokens.tag) { + continue; + } + + // Followed by the same tag name, so not actually last in group, + // and of interest + if (nextTokens.tag === currentTag) { + ignore = false; + } + } + } else { + while (true) { + const nextTokens = jsdoc.source[++nextIdx]?.tokens; + if (!nextTokens || nextTokens.end) { + break; + } + + // Not the very last tag, so don't ignore + if (nextTokens.tag) { + ignore = false; + break; + } + } + } + + if (!ignore) { + jsdoc.source.splice(currIdx, 1); + for (const [ + srcIdx, + src, + ] of jsdoc.source.entries()) { + src.number = srcIdx; + } + } + } + } + }; + + utils.reportJSDoc( + 'Intra-group tags have unexpected whitespace', + tag, + fixer, + ); + } + } + return; } @@ -153,7 +440,9 @@ export default iterateJsdoc(({ }; utils.reportJSDoc( - `Tags are not in the prescribed order: ${tagSequence.join(', ')}`, + `Tags are not in the prescribed order: ${ + tagList.join(', ') || '(alphabetical)' + }`, jsdoc.tags[firstChangedTagIndex], fix, true, @@ -162,7 +451,7 @@ export default iterateJsdoc(({ iterateAllJsdocs: true, meta: { docs: { - description: '', + description: 'Sorts tags by a specified sequence according to tag name.', url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-sort-tags', }, fixable: 'code', @@ -173,9 +462,26 @@ export default iterateJsdoc(({ alphabetizeExtras: { type: 'boolean', }, + linesBetween: { + type: 'integer', + }, + reportIntraTagGroupSpacing: { + type: 'boolean', + }, + reportTagGroupSpacing: { + type: 'boolean', + }, tagSequence: { items: { - type: 'string', + properties: { + tags: { + items: { + type: 'string', + }, + type: 'array', + }, + }, + type: 'object', }, type: 'array', }, diff --git a/test/rules/assertions/sortTags.js b/test/rules/assertions/sortTags.js index 464f38b18..41f73e092 100644 --- a/test/rules/assertions/sortTags.js +++ b/test/rules/assertions/sortTags.js @@ -1,5 +1,99 @@ import defaultTagOrder from '../../../src/defaultTagOrder'; +const tagList = defaultTagOrder.flatMap((obj) => { + return obj.tags; +}); + +const tagSequenceUser = [ + { + tags: [ + 'since', 'access', + ], + }, + { + tags: [ + 'class', 'augments', 'mixes', + ], + }, + { + tags: [ + 'alias', 'memberof', + ], + }, + { + tags: [ + 'see', 'link', 'global', + ], + }, + { + tags: [ + 'fires', 'listens', + ], + }, + { + tags: [ + 'param', + ], + }, + { + tags: [ + 'yields', + ], + }, + { + tags: [ + 'returns', + ], + }, +]; + +const tagSequenceUser2 = [ + { + tags: [ + 'since', 'access', + ], + }, + { + tags: [ + 'class', 'augments', 'mixes', + ], + }, + { + tags: [ + 'alias', 'memberof', + ], + }, + { + tags: [ + 'see', 'link', 'global', + ], + }, + { + tags: [ + 'fires', '-other', 'listens', + ], + }, + { + tags: [ + 'param', + ], + }, + { + tags: [ + 'yields', + ], + }, + { + tags: [ + 'returns', + ], + }, +]; + +const tagListUser = tagSequenceUser.flatMap((obj) => { + return obj.tags; +}); + export default { invalid: [ { @@ -14,7 +108,7 @@ export default { errors: [ { line: 3, - message: 'Tags are not in the prescribed order: ' + defaultTagOrder.join(', '), + message: 'Tags are not in the prescribed order: ' + tagList.join(', '), }, ], output: ` @@ -39,7 +133,7 @@ export default { errors: [ { line: 4, - message: 'Tags are not in the prescribed order: ' + defaultTagOrder.join(', '), + message: 'Tags are not in the prescribed order: ' + tagList.join(', '), }, ], output: ` @@ -65,7 +159,7 @@ export default { errors: [ { line: 3, - message: 'Tags are not in the prescribed order: ' + defaultTagOrder.join(', '), + message: 'Tags are not in the prescribed order: ' + tagList.join(', '), }, ], output: ` @@ -92,7 +186,7 @@ export default { errors: [ { line: 4, - message: 'Tags are not in the prescribed order: ' + defaultTagOrder.join(', '), + message: 'Tags are not in the prescribed order: ' + tagList.join(', '), }, ], output: ` @@ -119,7 +213,7 @@ export default { errors: [ { line: 5, - message: 'Tags are not in the prescribed order: ' + defaultTagOrder.join(', '), + message: 'Tags are not in the prescribed order: ' + tagList.join(', '), }, ], output: ` @@ -144,7 +238,7 @@ export default { errors: [ { line: 3, - message: 'Tags are not in the prescribed order: ' + defaultTagOrder.join(', '), + message: 'Tags are not in the prescribed order: ' + tagList.join(', '), }, ], options: [ @@ -179,7 +273,51 @@ export default { options: [ { tagSequence: [ - 'def', 'xyz', 'abc', + { + tags: [ + 'def', 'xyz', 'abc', + ], + }, + ], + }, + ], + output: ` + /** + * @def + * @xyz + * @abc + */ + function quux () {} + `, + }, + { + code: ` + /** + * @xyz + * @def + * @abc + */ + function quux () {} + `, + errors: [ + { + line: 3, + message: 'Tags are not in the prescribed order: def, xyz, abc', + }, + ], + options: [ + { + tagSequence: [ + { + tags: [ + 'def', 'xyz', + ], + }, + { + tags: [ + 'abc', + ], + }, ], }, ], @@ -207,7 +345,7 @@ export default { errors: [ { line: 3, - message: 'Tags are not in the prescribed order: ' + defaultTagOrder.join(', '), + message: 'Tags are not in the prescribed order: ' + tagList.join(', '), }, ], output: ` @@ -236,7 +374,7 @@ export default { errors: [ { line: 3, - message: 'Tags are not in the prescribed order: ' + defaultTagOrder.join(', '), + message: 'Tags are not in the prescribed order: ' + tagList.join(', '), }, ], options: [ @@ -267,7 +405,7 @@ export default { errors: [ { line: 3, - message: 'Tags are not in the prescribed order: ' + defaultTagOrder.join(', '), + message: 'Tags are not in the prescribed order: ' + tagList.join(', '), }, ], output: ` @@ -279,6 +417,1028 @@ export default { function quux () {} `, }, + { + code: ` + /** + * @def + * @xyz + * @abc + */ + function quux () {} + `, + errors: [ + { + line: 4, + message: 'Tag groups do not have the expected whitespace', + }, + ], + options: [ + { + linesBetween: 2, + tagSequence: [ + { + tags: [ + 'qrs', + ], + }, + { + tags: [ + 'def', 'xyz', + ], + }, + { + tags: [ + 'abc', + ], + }, + ], + }, + ], + output: ` + /** + * @def + * @xyz + * + * + * @abc + */ + function quux () {} + `, + }, + { + code: ` + /** + * @def + * @xyz + * + * + * @abc + */ + function quux () {} + `, + errors: [ + { + line: 4, + message: 'Tag groups do not have the expected whitespace', + }, + ], + options: [ + { + linesBetween: 1, + tagSequence: [ + { + tags: [ + 'qrs', + ], + }, + { + tags: [ + 'def', 'xyz', + ], + }, + { + tags: [ + 'abc', + ], + }, + ], + }, + ], + output: ` + /** + * @def + * @xyz + * + * @abc + */ + function quux () {} + `, + }, + { + code: ` + /** + * @def + * @xyz A multiline + * description + * @abc + */ + function quux () {} + `, + errors: [ + { + line: 4, + message: 'Tag groups do not have the expected whitespace', + }, + ], + options: [ + { + linesBetween: 2, + tagSequence: [ + { + tags: [ + 'qrs', + ], + }, + { + tags: [ + 'def', 'xyz', + ], + }, + { + tags: [ + 'abc', + ], + }, + ], + }, + ], + output: ` + /** + * @def + * @xyz A multiline + * description + * + * + * @abc + */ + function quux () {} + `, + }, + { + code: ` + /** + * @def + * @xyz + * @xyz + * + * + * @abc + */ + function quux () {} + `, + errors: [ + { + line: 5, + message: 'Tag groups do not have the expected whitespace', + }, + ], + options: [ + { + linesBetween: 1, + tagSequence: [ + { + tags: [ + 'qrs', + ], + }, + { + tags: [ + 'def', 'xyz', + ], + }, + { + tags: [ + 'abc', + ], + }, + ], + }, + ], + output: ` + /** + * @def + * @xyz + * @xyz + * + * @abc + */ + function quux () {} + `, + }, + { + code: ` + /** + * Foo + * + * @param {( + * req: express.Request, + * done: (error: any, user?: any, info?: any) => void + * ) => void} verify - callback to excute custom authentication logic + * @see https://github.com/jaredhanson/passport/blob/v0.4.1/lib/middleware/authenticate.js#L217 + * + */ + `, + errors: [ + { + line: 5, + message: 'Tags are not in the prescribed order: ' + tagListUser.join(', '), + }, + ], + options: [ + { + tagSequence: tagSequenceUser, + }, + ], + output: ` + /** + * Foo + * + * @see https://github.com/jaredhanson/passport/blob/v0.4.1/lib/middleware/authenticate.js#L217 + * + * @param {( + * req: express.Request, + * done: (error: any, user?: any, info?: any) => void + * ) => void} verify - callback to excute custom authentication logic + */ + `, + }, + { + code: ` + /** + * Summary. (use period) + * + * Description. (use period) + * + * @since 1.0.1 + * @access private + * + * @class + * @mixes mixin + * + * @alias realName + * @memberof namespace + * + * @see Function/class relied on + * @global + * + * @tutorial Asd + * @license MIT + * + * @fires eventName + * @fires className#eventName + * @listens event:eventName + * @listens className~event:eventName + * + * @tutorial Asd + * @license MIT + * + * @yields {string} Yielded value description. + * + * @param {string} var1 - Description. + * @param {string} var2 - Description of optional variable. + * @param {string} var3 - Description of optional variable with default variable. + * @param {object} objectVar - Description. + * @param {string} objectVar.key - Description of a key in the objectVar parameter. + * + * @returns {string} Return value description. + */ + `, + errors: [ + { + line: 19, + message: 'Tags are not in the prescribed order: ' + tagListUser.join(', '), + }, + ], + options: [ + { + tagSequence: tagSequenceUser, + }, + ], + output: ` + /** + * Summary. (use period) + * + * Description. (use period) + * + * @since 1.0.1 + * @access private + * + * @class + * @mixes mixin + * + * @alias realName + * @memberof namespace + * + * @see Function/class relied on + * @global + * + * @fires eventName + * @fires className#eventName + * @listens event:eventName + * @listens className~event:eventName + * + * @param {string} var1 - Description. + * @param {string} var2 - Description of optional variable. + * @param {string} var3 - Description of optional variable with default variable. + * @param {object} objectVar - Description. + * @param {string} objectVar.key - Description of a key in the objectVar parameter. + * + * @yields {string} Yielded value description. + * + * @returns {string} Return value description. + * @tutorial Asd + * @license MIT + * + * @tutorial Asd + * @license MIT + * + */ + `, + }, + { + code: ` + /** + * Summary. (use period) + * + * Description. (use period) + * + * @since 1.0.1 + * @access private + * + * @class + * @mixes mixin + * + * @alias realName + * @memberof namespace + * + * @see Function/class relied on + * @global + * + * @fires eventName + * @fires className#eventName + * @listens event:eventName + * @listens className~event:eventName + * + * @param {string} var1 - Description. + * @param {string} var2 - Description of optional variable. + * @param {string} var3 - Description of optional variable with default variable. + * @param {object} objectVar - Description. + * @param {string} objectVar.key - Description of a key in the objectVar parameter. + * + * @yields {string} Yielded value description. + * + * @returns {string} Return value description. + * @tutorial Asd + * @license MIT + * + * @tutorial Asd + * @license MIT + * + */ + `, + errors: [ + { + line: 32, + message: 'Tag groups do not have the expected whitespace', + }, + ], + ignoreReadme: true, + options: [ + { + tagSequence: tagSequenceUser, + }, + ], + output: ` + /** + * Summary. (use period) + * + * Description. (use period) + * + * @since 1.0.1 + * @access private + * + * @class + * @mixes mixin + * + * @alias realName + * @memberof namespace + * + * @see Function/class relied on + * @global + * + * @fires eventName + * @fires className#eventName + * @listens event:eventName + * @listens className~event:eventName + * + * @param {string} var1 - Description. + * @param {string} var2 - Description of optional variable. + * @param {string} var3 - Description of optional variable with default variable. + * @param {object} objectVar - Description. + * @param {string} objectVar.key - Description of a key in the objectVar parameter. + * + * @yields {string} Yielded value description. + * + * @returns {string} Return value description. + * + * @tutorial Asd + * @license MIT + * + * @tutorial Asd + * @license MIT + * + */ + `, + }, + { + code: ` + /** + * Summary. (use period) + * + * Description. (use period) + * + * @since 1.0.1 + * @access private + * + * @class + * @mixes mixin + * + * @alias realName + * @memberof namespace + * + * @see Function/class relied on + * @global + * + * @fires eventName + * @fires className#eventName + * @listens event:eventName + * @listens className~event:eventName + * + * @param {string} var1 - Description. + * @param {string} var2 - Description of optional variable. + * @param {string} var3 - Description of optional variable with default variable. + * @param {object} objectVar - Description. + * @param {string} objectVar.key - Description of a key in the objectVar parameter. + * + * @yields {string} Yielded value description. + * + * @returns {string} Return value description. + * + * @tutorial Asd + * @license MIT + * + * @tutorial Asd + * @license MIT + * + */ + `, + errors: [ + { + line: 35, + message: 'Intra-group tags have unexpected whitespace', + }, + ], + ignoreReadme: true, + options: [ + { + tagSequence: tagSequenceUser, + }, + ], + output: ` + /** + * Summary. (use period) + * + * Description. (use period) + * + * @since 1.0.1 + * @access private + * + * @class + * @mixes mixin + * + * @alias realName + * @memberof namespace + * + * @see Function/class relied on + * @global + * + * @fires eventName + * @fires className#eventName + * @listens event:eventName + * @listens className~event:eventName + * + * @param {string} var1 - Description. + * @param {string} var2 - Description of optional variable. + * @param {string} var3 - Description of optional variable with default variable. + * @param {object} objectVar - Description. + * @param {string} objectVar.key - Description of a key in the objectVar parameter. + * + * @yields {string} Yielded value description. + * + * @returns {string} Return value description. + * + * @tutorial Asd + * @license MIT + * @tutorial Asd + * @license MIT + * + */ + `, + }, + { + code: ` + /** + * Summary. (use period) + * + * Description. (use period) + * + * @since 1.0.1 + * @access private + * + * @class + * @mixes mixin + * + * @alias realName + * @memberof namespace + * + * @see Function/class relied on + * @global + * + * @fires eventName + * + * @fires className#eventName + * @listens event:eventName + * @listens className~event:eventName + * + * @param {string} var1 - Description. + * @param {string} var2 - Description of optional variable. + * @param {string} var3 - Description of optional variable with default variable. + * @param {object} objectVar - Description. + * @param {string} objectVar.key - Description of a key in the objectVar parameter. + * + * @yields {string} Yielded value description. + * + * @returns {string} Return value description. + * + * @tutorial Asd + * @license MIT + * @tutorial Asd + * @license MIT + * + */ + `, + errors: [ + { + line: 19, + message: 'Intra-group tags have unexpected whitespace', + }, + ], + ignoreReadme: true, + options: [ + { + tagSequence: tagSequenceUser, + }, + ], + output: ` + /** + * Summary. (use period) + * + * Description. (use period) + * + * @since 1.0.1 + * @access private + * + * @class + * @mixes mixin + * + * @alias realName + * @memberof namespace + * + * @see Function/class relied on + * @global + * + * @fires eventName + * @fires className#eventName + * @listens event:eventName + * @listens className~event:eventName + * + * @param {string} var1 - Description. + * @param {string} var2 - Description of optional variable. + * @param {string} var3 - Description of optional variable with default variable. + * @param {object} objectVar - Description. + * @param {string} objectVar.key - Description of a key in the objectVar parameter. + * + * @yields {string} Yielded value description. + * + * @returns {string} Return value description. + * + * @tutorial Asd + * @license MIT + * @tutorial Asd + * @license MIT + * + */ + `, + }, + { + code: ` + /** + * Summary. (use period) + * + * Description. (use period) + * + * @since 1.0.1 + * @access private + * + * @class + * @mixes mixin + * + * @alias realName + * @memberof namespace + * + * @see Function/class relied on + * @global + * + * @fires eventName + * @fires className#eventName + * @listens event:eventName + * + * @listens className~event:eventName + * + * @param {string} var1 - Description. + * @param {string} var2 - Description of optional variable. + * @param {string} var3 - Description of optional variable with default variable. + * @param {object} objectVar - Description. + * @param {string} objectVar.key - Description of a key in the objectVar parameter. + * + * @yields {string} Yielded value description. + * + * @returns {string} Return value description. + * + * @tutorial Asd + * @license MIT + * @tutorial Asd + * @license MIT + * + */ + `, + errors: [ + { + line: 21, + message: 'Intra-group tags have unexpected whitespace', + }, + ], + ignoreReadme: true, + options: [ + { + tagSequence: tagSequenceUser, + }, + ], + output: ` + /** + * Summary. (use period) + * + * Description. (use period) + * + * @since 1.0.1 + * @access private + * + * @class + * @mixes mixin + * + * @alias realName + * @memberof namespace + * + * @see Function/class relied on + * @global + * + * @fires eventName + * @fires className#eventName + * @listens event:eventName + * @listens className~event:eventName + * + * @param {string} var1 - Description. + * @param {string} var2 - Description of optional variable. + * @param {string} var3 - Description of optional variable with default variable. + * @param {object} objectVar - Description. + * @param {string} objectVar.key - Description of a key in the objectVar parameter. + * + * @yields {string} Yielded value description. + * + * @returns {string} Return value description. + * + * @tutorial Asd + * @license MIT + * @tutorial Asd + * @license MIT + * + */ + `, + }, + { + code: ` + /** + * Summary. (use period) + * + * Description. (use period) + * + * @since 1.0.1 + * @access private + * + * @class + * @mixes mixin + * + * @alias realName + * @memberof namespace + * + * @see Function/class relied on + * @global + * + * @fires eventName + * @fires className#eventName + * @tutorial Asd + * @license MIT + * + * @listens event:eventName + * @listens className~event:eventName + * + * @param {string} var1 - Description. + * @param {string} var2 - Description of optional variable. + * @param {string} var3 - Description of optional variable with default variable. + * @param {object} objectVar - Description. + * @param {string} objectVar.key - Description of a key in the objectVar parameter. + * + * @yields {string} Yielded value description. + * + * @returns {string} Return value description. + */ + `, + errors: [ + { + line: 22, + message: 'Intra-group tags have unexpected whitespace', + }, + ], + ignoreReadme: true, + options: [ + { + tagSequence: tagSequenceUser2, + }, + ], + output: ` + /** + * Summary. (use period) + * + * Description. (use period) + * + * @since 1.0.1 + * @access private + * + * @class + * @mixes mixin + * + * @alias realName + * @memberof namespace + * + * @see Function/class relied on + * @global + * + * @fires eventName + * @fires className#eventName + * @tutorial Asd + * @license MIT + * @listens event:eventName + * @listens className~event:eventName + * + * @param {string} var1 - Description. + * @param {string} var2 - Description of optional variable. + * @param {string} var3 - Description of optional variable with default variable. + * @param {object} objectVar - Description. + * @param {string} objectVar.key - Description of a key in the objectVar parameter. + * + * @yields {string} Yielded value description. + * + * @returns {string} Return value description. + */ + `, + }, + { + code: ` + /** + * @def + * @zzz + * @abc + */ + function quux () {} + `, + errors: [ + { + line: 4, + message: 'Tag groups do not have the expected whitespace', + }, + ], + options: [ + { + linesBetween: 1, + tagSequence: [ + { + tags: [ + 'qrs', + ], + }, + { + tags: [ + 'def', '-other', 'xyz', + ], + }, + { + tags: [ + 'abc', + ], + }, + ], + }, + ], + output: ` + /** + * @def + * @zzz + * + * @abc + */ + function quux () {} + `, + }, + { + code: ` + /** + * Summary. (use period) + * + * Description. (use period) + * + * @since 1.0.1 + * @access private + * + * @class + * @mixes mixin + * + * @alias realName + * @memberof namespace + * + * @see Function/class relied on + * @global + * + * @fires eventName + * @fires className#eventName + * @tutorial Asd + * + * @license MIT + * + * + */ + `, + errors: [ + { + line: 21, + message: 'Intra-group tags have unexpected whitespace', + }, + ], + ignoreReadme: true, + options: [ + { + tagSequence: tagSequenceUser2, + }, + ], + output: ` + /** + * Summary. (use period) + * + * Description. (use period) + * + * @since 1.0.1 + * @access private + * + * @class + * @mixes mixin + * + * @alias realName + * @memberof namespace + * + * @see Function/class relied on + * @global + * + * @fires eventName + * @fires className#eventName + * @tutorial Asd + * @license MIT + * + * + */ + `, + }, + { + code: ` + /** + * @xyz + * @def + * @abc + */ + function quux () {} + `, + errors: [ + { + line: 3, + message: 'Tags are not in the prescribed order: (alphabetical)', + }, + ], + options: [ + { + alphabetizeExtras: true, + tagSequence: [], + }, + ], + output: ` + /** + * @abc + * @def + * @xyz + */ + function quux () {} + `, + }, + { + code: ` + /** + * @example + * enum Color { Red, Green, Blue } + * faker.helpers.enumValue(Color) // 1 (Green) + * + * enum Direction { North = 'North', South = 'South'} + * faker.helpers.enumValue(Direction) // 'South' + * + * enum HttpStatus { Ok = 200, Created = 201, BadRequest = 400, Unauthorized = 401 } + * faker.helpers.enumValue(HttpStatus) // 200 (Ok) + * @since 8.0.0 + */ + `, + errors: [ + { + line: 3, + message: 'Tag groups do not have the expected whitespace', + }, + ], + options: [ + { + tagSequence: [ + { + tags: [ + 'internal', + ], + }, + { + tags: [ + 'template', 'param', + ], + }, + { + tags: [ + 'returns', + ], + }, + { + tags: [ + 'throws', + ], + }, + { + tags: [ + 'see', + ], + }, + { + tags: [ + 'example', + ], + }, + { + tags: [ + 'since', + ], + }, + { + tags: [ + 'deprecated', + ], + }, + ], + }, + ], + output: ` + /** + * @example + * enum Color { Red, Green, Blue } + * faker.helpers.enumValue(Color) // 1 (Green) + * + * enum Direction { North = 'North', South = 'South'} + * faker.helpers.enumValue(Direction) // 'South' + * + * enum HttpStatus { Ok = 200, Created = 201, BadRequest = 400, Unauthorized = 401 } + * faker.helpers.enumValue(HttpStatus) // 200 (Ok) + * + * @since 8.0.0 + */ + `, + }, ], valid: [ { @@ -333,7 +1493,11 @@ export default { options: [ { tagSequence: [ - 'def', 'xyz', 'abc', + { + tags: [ + 'def', 'xyz', 'abc', + ], + }, ], }, ], @@ -344,5 +1508,365 @@ export default { function quux () {} `, }, + { + code: ` + /** + * @def + * @xyz + * + * @abc + */ + function quux () {} + `, + options: [ + { + linesBetween: 1, + tagSequence: [ + { + tags: [ + 'qrs', + ], + }, + { + tags: [ + 'def', 'xyz', + ], + }, + { + tags: [ + 'abc', + ], + }, + ], + }, + ], + }, + { + code: ` + /** + * @def + * @xyz A multiline + * description + * + * @abc + */ + function quux () {} + `, + options: [ + { + linesBetween: 1, + tagSequence: [ + { + tags: [ + 'qrs', + ], + }, + { + tags: [ + 'def', 'xyz', + ], + }, + { + tags: [ + 'abc', + ], + }, + ], + }, + ], + }, + { + code: ` + /** + * Foo + * + * @see https://github.com/jaredhanson/passport/blob/v0.4.1/lib/middleware/authenticate.js#L217 + * + * @param {( + * req: express.Request, + * done: (error: any, user?: any, info?: any) => void + * ) => void} verify - callback to excute custom authentication logic + */ + `, + options: [ + { + tagSequence: tagSequenceUser, + }, + ], + }, + { + code: ` + /** + * Constructor. + * + * @public + * + * @param {string} [message] - Error message. + */ + `, + options: [ + { + tagSequence: [ + { + tags: [ + 'since', 'access', + ], + }, + { + tags: [ + 'class', 'augments', 'mixes', + ], + }, + { + tags: [ + 'alias', 'memberof', + ], + }, + { + tags: [ + 'public', 'protected', 'private', 'override', + ], + }, + { + tags: [ + 'override', 'async', + ], + }, + { + tags: [ + 'see', 'link', 'global', + ], + }, + { + tags: [ + 'param', + ], + }, + { + tags: [ + 'yields', + ], + }, + { + tags: [ + 'returns', + ], + }, + { + tags: [ + 'fires', '-other', 'listens', + ], + }, + ], + }, + ], + }, + { + code: ` + /** + * @param options.mode The mode to generate the birthdate. Supported modes are \`'age'\` and \`'year'\` . + * + * There are two modes available \`'age'\` and \`'year'\`: + * - \`'age'\`: The min and max options define the age of the person (e.g. \`18\` - \`42\`). + * - \`'year'\`: The min and max options define the range the birthdate may be in (e.g. \`1900\` - \`2000\`). + * + * Defaults to \`year\`. + * + * @example + */ + `, + options: [ + { + tagSequence: [ + { + tags: [ + 'internal', + ], + }, + { + tags: [ + 'template', 'param', + ], + }, + { + tags: [ + 'returns', + ], + }, + { + tags: [ + 'throws', + ], + }, + { + tags: [ + 'see', + ], + }, + { + tags: [ + 'example', + ], + }, + { + tags: [ + 'since', + ], + }, + { + tags: [ + 'deprecated', + ], + }, + ], + }, + ], + }, + { + code: ` + /** + * @example + * enum Color { Red, Green, Blue } + * faker.helpers.enumValue(Color) // 1 (Green) + * + * enum Direction { North = 'North', South = 'South'} + * faker.helpers.enumValue(Direction) // 'South' + * + * enum HttpStatus { Ok = 200, Created = 201, BadRequest = 400, Unauthorized = 401 } + * faker.helpers.enumValue(HttpStatus) // 200 (Ok) + * + * @since 8.0.0 + */ + `, + options: [ + { + tagSequence: [ + { + tags: [ + 'internal', + ], + }, + { + tags: [ + 'template', 'param', + ], + }, + { + tags: [ + 'returns', + ], + }, + { + tags: [ + 'throws', + ], + }, + { + tags: [ + 'see', + ], + }, + { + tags: [ + 'example', + ], + }, + { + tags: [ + 'since', + ], + }, + { + tags: [ + 'deprecated', + ], + }, + ], + }, + ], + }, + { + code: ` + /** + * @def + * @xyz + * @abc + */ + function quux () {} + `, + options: [ + { + linesBetween: 2, + reportTagGroupSpacing: false, + tagSequence: [ + { + tags: [ + 'qrs', + ], + }, + { + tags: [ + 'def', 'xyz', + ], + }, + { + tags: [ + 'abc', + ], + }, + ], + }, + ], + }, + { + code: ` + /** + * Summary. (use period) + * + * Description. (use period) + * + * @since 1.0.1 + * @access private + * + * @class + * @mixes mixin + * + * @alias realName + * @memberof namespace + * + * @see Function/class relied on + * @global + * + * @fires eventName + * @fires className#eventName + * @listens event:eventName + * @listens className~event:eventName + * + * @param {string} var1 - Description. + * @param {string} var2 - Description of optional variable. + * @param {string} var3 - Description of optional variable with default variable. + * @param {object} objectVar - Description. + * @param {string} objectVar.key - Description of a key in the objectVar parameter. + * + * @yields {string} Yielded value description. + * + * @returns {string} Return value description. + * + * @tutorial Asd + * @license MIT + * + * @tutorial Asd + * @license MIT + * + */ + `, + ignoreReadme: true, + options: [ + { + reportIntraTagGroupSpacing: false, + tagSequence: tagSequenceUser, + }, + ], + }, ], }; From 9bb4bfd3bd973f085439e3d792db1e0820a5d72e Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 18 Apr 2023 05:59:37 -0700 Subject: [PATCH 040/273] fix(`tag-lines`): `startLines` is intended to apply after tags only; fixes #1022 --- .README/rules/tag-lines.md | 3 ++- README.md | 18 +++++++++++++++++- src/rules/tagLines.js | 4 ++++ test/rules/assertions/tagLines.js | 31 +++++++++++++++++++++++++++++++ 4 files changed, 54 insertions(+), 2 deletions(-) diff --git a/.README/rules/tag-lines.md b/.README/rules/tag-lines.md index 8e3b30b9c..ddabee506 100644 --- a/.README/rules/tag-lines.md +++ b/.README/rules/tag-lines.md @@ -34,7 +34,8 @@ added after tags should not be added after the final tag. ##### `startLines` (defaults to `0`) If not set to `null`, will enforce end lines to the given count before the -first tag only. +first tag only, unless there is only whitespace content, in which case, +a line count will not be enforced. ##### `endLines` (defaults to `0`) diff --git a/README.md b/README.md index f2960da3f..c055ef60d 100644 --- a/README.md +++ b/README.md @@ -23026,7 +23026,8 @@ added after tags should not be added after the final tag. ##### startLines (defaults to 0) If not set to `null`, will enforce end lines to the given count before the -first tag only. +first tag only, unless there is only whitespace content, in which case, +a line count will not be enforced. @@ -23465,6 +23466,21 @@ The following patterns are not considered problems: * @param {string} a */ // "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":null}] + +/** + * @param {string} input + */ +function processSass (input) { +} +// "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":1}] + +/** + * + * @param {string} input + */ +function processSass (input) { +} +// "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":1}] ```` diff --git a/src/rules/tagLines.js b/src/rules/tagLines.js index c651c1e16..7afc6e9b3 100644 --- a/src/rules/tagLines.js +++ b/src/rules/tagLines.js @@ -203,6 +203,10 @@ export default iterateJsdoc(({ description, lastDescriptionLine, } = utils.getDescription(); + if (!(/\S/u).test(description)) { + return; + } + const trailingLines = description.match(/\n+$/u)?.[0]?.length; const trailingDiff = (trailingLines ?? 0) - startLines; if (trailingDiff > 0) { diff --git a/test/rules/assertions/tagLines.js b/test/rules/assertions/tagLines.js index 839045380..1610f383f 100644 --- a/test/rules/assertions/tagLines.js +++ b/test/rules/assertions/tagLines.js @@ -1093,5 +1093,36 @@ export default { }, ], }, + { + code: ` + /** + * @param {string} input + */ + function processSass (input) { + } + `, + options: [ + 'never', + { + startLines: 1, + }, + ], + }, + { + code: ` + /** + * + * @param {string} input + */ + function processSass (input) { + } + `, + options: [ + 'never', + { + startLines: 1, + }, + ], + }, ], }; From a9cd1db8db305fb7b100a315d77417d99f2a989a Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 18 Apr 2023 06:29:57 -0700 Subject: [PATCH 041/273] fix(`tag-lines`): avoid new `startLines` option expecting whitespace when no tags are present; fixes #1024 --- README.md | 7 +++++++ src/rules/tagLines.js | 4 ++++ test/rules/assertions/tagLines.js | 15 +++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/README.md b/README.md index c055ef60d..5f54b8215 100644 --- a/README.md +++ b/README.md @@ -23481,6 +23481,13 @@ function processSass (input) { function processSass (input) { } // "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":1}] + +/** + * Toggles the deselect all icon button action + */ +function updateIconButton () { +} +// "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":1}] ```` diff --git a/src/rules/tagLines.js b/src/rules/tagLines.js index 7afc6e9b3..45a79fb99 100644 --- a/src/rules/tagLines.js +++ b/src/rules/tagLines.js @@ -199,6 +199,10 @@ export default iterateJsdoc(({ }); if (typeof startLines === 'number') { + if (!jsdoc.tags.length) { + return; + } + const { description, lastDescriptionLine, diff --git a/test/rules/assertions/tagLines.js b/test/rules/assertions/tagLines.js index 1610f383f..eef984925 100644 --- a/test/rules/assertions/tagLines.js +++ b/test/rules/assertions/tagLines.js @@ -1124,5 +1124,20 @@ export default { }, ], }, + { + code: ` + /** + * Toggles the deselect all icon button action + */ + function updateIconButton () { + } + `, + options: [ + 'never', + { + startLines: 1, + }, + ], + }, ], }; From ffef25416306871436fa832f1157c5c1b6d65bf5 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 18 Apr 2023 06:38:40 -0700 Subject: [PATCH 042/273] fix: update semver and devDeps. --- package-lock.json | 893 ++++++++++++++++++++++++++++------------------ package.json | 20 +- 2 files changed, 552 insertions(+), 361 deletions(-) diff --git a/package-lock.json b/package-lock.json index 973222964..30ddd9040 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,44 +15,44 @@ "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", - "semver": "^7.3.8", + "semver": "^7.5.0", "spdx-expression-parse": "^3.0.1" }, "devDependencies": { "@babel/cli": "^7.21.0", - "@babel/core": "^7.21.3", + "@babel/core": "^7.21.4", "@babel/eslint-parser": "^7.21.3", "@babel/node": "^7.20.7", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-transform-flow-strip-types": "^7.21.0", - "@babel/preset-env": "^7.20.2", + "@babel/preset-env": "^7.21.4", "@babel/register": "^7.21.0", "@es-joy/jsdoc-eslint-parser": "^0.17.0", "@hkdobrev/run-if-changed": "^0.3.1", "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/github": "^8.0.7", - "@semantic-release/npm": "^10.0.2", - "@typescript-eslint/parser": "^5.57.0", + "@semantic-release/npm": "^10.0.3", + "@typescript-eslint/parser": "^5.59.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", "chai": "^4.3.7", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "^8.37.0", + "eslint": "^8.38.0", "eslint-config-canonical": "~33.0.1", "gitdown": "^3.1.5", "glob": "^8.1.0", "husky": "^8.0.3", "jsdoc-type-pratt-parser": "^4.0.0", - "lint-staged": "^13.2.0", + "lint-staged": "^13.2.1", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.2.0", "nyc": "^15.1.0", "open-editor": "^3.0.0", - "rimraf": "^4.4.1", - "semantic-release": "^21.0.0", - "typescript": "^5.0.3" + "rimraf": "^5.0.0", + "semantic-release": "^21.0.1", + "typescript": "^5.0.4" }, "engines": { "node": "^14 || ^16 || ^17 || ^18 || ^19" @@ -136,9 +136,9 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "dev": true, "dependencies": { "@babel/highlight": "^7.18.6" @@ -148,30 +148,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", - "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", + "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.3.tgz", - "integrity": "sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", + "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", - "@babel/helper-compilation-targets": "^7.20.7", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", "@babel/helper-module-transforms": "^7.21.2", "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.3", + "@babel/parser": "^7.21.4", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.3", - "@babel/types": "^7.21.3", + "@babel/traverse": "^7.21.4", + "@babel/types": "^7.21.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -239,12 +239,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.3.tgz", - "integrity": "sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", + "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", "dev": true, "dependencies": { - "@babel/types": "^7.21.3", + "@babel/types": "^7.21.4", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -293,13 +293,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", + "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", + "@babel/compat-data": "^7.21.4", + "@babel/helper-validator-option": "^7.21.0", "browserslist": "^4.21.3", "lru-cache": "^5.1.1", "semver": "^6.3.0" @@ -659,9 +659,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz", - "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", + "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -1718,31 +1718,31 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.4.tgz", + "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", + "@babel/compat-data": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", + "@babel/helper-validator-option": "^7.21.0", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", + "@babel/plugin-proposal-async-generator-functions": "^7.20.7", "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.21.0", "@babel/plugin-proposal-dynamic-import": "^7.18.6", "@babel/plugin-proposal-export-namespace-from": "^7.18.9", "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-object-rest-spread": "^7.20.7", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.21.0", "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.21.0", "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", @@ -1759,40 +1759,40 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.20.7", + "@babel/plugin-transform-async-to-generator": "^7.20.7", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-block-scoping": "^7.21.0", + "@babel/plugin-transform-classes": "^7.21.0", + "@babel/plugin-transform-computed-properties": "^7.20.7", + "@babel/plugin-transform-destructuring": "^7.21.3", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-for-of": "^7.21.0", "@babel/plugin-transform-function-name": "^7.18.9", "@babel/plugin-transform-literals": "^7.18.9", "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-amd": "^7.20.11", + "@babel/plugin-transform-modules-commonjs": "^7.21.2", + "@babel/plugin-transform-modules-systemjs": "^7.20.11", "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-parameters": "^7.21.3", "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.20.5", "@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-spread": "^7.20.7", "@babel/plugin-transform-sticky-regex": "^7.18.6", "@babel/plugin-transform-template-literals": "^7.18.9", "@babel/plugin-transform-typeof-symbol": "^7.18.9", "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.20.2", + "@babel/types": "^7.21.4", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -1883,19 +1883,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.3.tgz", - "integrity": "sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", + "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.21.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.3", - "@babel/types": "^7.21.3", + "@babel/parser": "^7.21.4", + "@babel/types": "^7.21.4", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1904,9 +1904,9 @@ } }, "node_modules/@babel/types": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.3.tgz", - "integrity": "sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", + "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.19.4", @@ -2121,9 +2121,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.37.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.37.0.tgz", - "integrity": "sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", + "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3024,6 +3024,16 @@ "node": ">=10.12.0" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@pnpm/config.env-replace": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.0.0.tgz", @@ -3145,9 +3155,9 @@ } }, "node_modules/@semantic-release/npm": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-10.0.2.tgz", - "integrity": "sha512-Mo0XoBza4pUapxiBhLLYXeSZ9tkuHDUd/WvMbpilwuPRfJDnQXMqx5tBVon8d2mBk8JXmXpqB+ExhlWJmVT40A==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-10.0.3.tgz", + "integrity": "sha512-Chbv3kX4o+y+r1X6hsqBVB8NFbSVfiNlYOqMG6o9Wc8r5Y4cjxfbaMCuJ++XAtw3YXYX/NVD05cPzBi4Orjusg==", "dev": true, "dependencies": { "@semantic-release/error": "^3.0.0", @@ -3159,7 +3169,7 @@ "normalize-url": "^8.0.0", "npm": "^9.5.0", "rc": "^1.2.8", - "read-pkg": "^7.0.0", + "read-pkg": "^8.0.0", "registry-auth-token": "^5.0.0", "semver": "^7.1.2", "tempy": "^3.0.0" @@ -3249,6 +3259,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@semantic-release/npm/node_modules/hosted-git-info": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", + "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", + "dev": true, + "dependencies": { + "lru-cache": "^7.5.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/@semantic-release/npm/node_modules/human-signals": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", @@ -3282,6 +3304,33 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@semantic-release/npm/node_modules/json-parse-even-better-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@semantic-release/npm/node_modules/lines-and-columns": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/@semantic-release/npm/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/@semantic-release/npm/node_modules/mimic-fn": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", @@ -3294,6 +3343,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@semantic-release/npm/node_modules/normalize-package-data": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", + "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", + "dev": true, + "dependencies": { + "hosted-git-info": "^6.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/@semantic-release/npm/node_modules/npm-run-path": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", @@ -3325,18 +3389,19 @@ } }, "node_modules/@semantic-release/npm/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.0.0.tgz", + "integrity": "sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "@babel/code-frame": "^7.21.4", + "error-ex": "^1.3.2", + "json-parse-even-better-errors": "^3.0.0", + "lines-and-columns": "^2.0.3", + "type-fest": "^3.8.0" }, "engines": { - "node": ">=8" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3355,18 +3420,18 @@ } }, "node_modules/@semantic-release/npm/node_modules/read-pkg": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", - "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.0.0.tgz", + "integrity": "sha512-Ajb9oSjxXBw0YyOiwtQ2dKbAA/vMnUPnY63XcCk+mXo0BwIdQEMgZLZiMWGttQHcUhUgbK0mH85ethMPKXxziw==", "dev": true, "dependencies": { "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^2.0.0" + "normalize-package-data": "^5.0.0", + "parse-json": "^7.0.0", + "type-fest": "^3.8.0" }, "engines": { - "node": ">=12.20" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3385,12 +3450,12 @@ } }, "node_modules/@semantic-release/npm/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.8.0.tgz", + "integrity": "sha512-FVNSzGQz9Th+/9R6Lvv7WIAkstylfHN2/JYxkyhhmKFYh9At2DST8t6L6Lref9eYO8PXFTfG9Sg1Agg0K3vq3Q==", "dev": true, "engines": { - "node": ">=12.20" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3546,14 +3611,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.57.0.tgz", - "integrity": "sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.0.tgz", + "integrity": "sha512-qK9TZ70eJtjojSUMrrEwA9ZDQ4N0e/AuoOIgXuNBorXYcBDk397D2r5MIe1B3cok/oCtdNC5j+lUUpVB+Dpb+w==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.57.0", - "@typescript-eslint/types": "5.57.0", - "@typescript-eslint/typescript-estree": "5.57.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/typescript-estree": "5.59.0", "debug": "^4.3.4" }, "engines": { @@ -3573,13 +3638,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.57.0.tgz", - "integrity": "sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.0.tgz", + "integrity": "sha512-tsoldKaMh7izN6BvkK6zRMINj4Z2d6gGhO2UsI8zGZY3XhLq1DndP3Ycjhi1JwdwPRwtLMW4EFPgpuKhbCGOvQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.57.0", - "@typescript-eslint/visitor-keys": "5.57.0" + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/visitor-keys": "5.59.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3590,9 +3655,9 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.57.0.tgz", - "integrity": "sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.0.tgz", + "integrity": "sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3603,13 +3668,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.57.0.tgz", - "integrity": "sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.0.tgz", + "integrity": "sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.57.0", - "@typescript-eslint/visitor-keys": "5.57.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/visitor-keys": "5.59.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -3630,12 +3695,12 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.57.0.tgz", - "integrity": "sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.0.tgz", + "integrity": "sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.57.0", + "@typescript-eslint/types": "5.59.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -6032,27 +6097,27 @@ "dev": true }, "node_modules/env-ci": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-8.0.0.tgz", - "integrity": "sha512-W+3BqGZozFua9MPeXpmTm5eYEBtGgL76jGu/pwMVp/L8PdECSCEWaIp7d4Mw7kuUrbUldK0oV0bNd6ZZjLiMiA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-9.0.0.tgz", + "integrity": "sha512-Q3cjr1tX9xwigprw4G8M3o7PIOO/1LYji6TyGsbD1WfMmD23etZvhgmPXJqkP788yH4dgSSK7oaIMuaayUJIfg==", "dev": true, "dependencies": { - "execa": "^6.1.0", + "execa": "^7.0.0", "java-properties": "^1.0.2" }, "engines": { - "node": "^16.10 || >=18" + "node": "^16.14 || >=18" } }, "node_modules/env-ci/node_modules/execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", + "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", - "human-signals": "^3.0.1", + "human-signals": "^4.3.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", @@ -6061,7 +6126,7 @@ "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" @@ -6080,12 +6145,12 @@ } }, "node_modules/env-ci/node_modules/human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "dev": true, "engines": { - "node": ">=12.20.0" + "node": ">=14.18.0" } }, "node_modules/env-ci/node_modules/is-stream": { @@ -6422,15 +6487,15 @@ } }, "node_modules/eslint": { - "version": "8.37.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.37.0.tgz", - "integrity": "sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", + "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.37.0", + "@eslint/js": "8.38.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -10392,6 +10457,24 @@ "node": ">=8" } }, + "node_modules/jackspeak": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.0.3.tgz", + "integrity": "sha512-0Jud3OMUdMbrlr3PyUMKESq51LXVAB+a239Ywdvd+Kgxj3MaBRml/nVRxf8tQFyfthMjuRkxkv7Vg58pmIMfuQ==", + "dev": true, + "dependencies": { + "cliui": "^7.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/java-properties": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", @@ -10724,9 +10807,9 @@ "dev": true }, "node_modules/lint-staged": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.0.tgz", - "integrity": "sha512-GbyK5iWinax5Dfw5obm2g2ccUiZXNGtAS4mCbJ0Lv4rq6iEtfBSjOYdcbOtAIFtM114t0vdpViDDetjVTSd8Vw==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.1.tgz", + "integrity": "sha512-8gfzinVXoPfga5Dz/ZOn8I2GOhf81Wvs+KwbEXQn/oWZAvCVS2PivrXfVbFJc93zD16uC0neS47RXHIjXKYZQw==", "dev": true, "dependencies": { "chalk": "5.2.0", @@ -16473,34 +16556,34 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz", - "integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.7.0.tgz", + "integrity": "sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==", "dev": true, "dependencies": { - "lru-cache": "^7.14.1", - "minipass": "^4.0.2" + "lru-cache": "^9.0.0", + "minipass": "^5.0.0" }, "engines": { - "node": ">=14" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.0.tgz", + "integrity": "sha512-qFXQEwchrZcMVen2uIDceR8Tii6kCJak5rzDStfEM0qA3YLMswaxIEZO0DhIbJ3aqaJiDjt+3crlplOb0tDtKQ==", "dev": true, "engines": { - "node": ">=12" + "node": "14 || >=16.14" } }, "node_modules/path-scurry/node_modules/minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, "engines": { "node": ">=8" @@ -17453,12 +17536,12 @@ "dev": true }, "node_modules/rimraf": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", - "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.0.tgz", + "integrity": "sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==", "dev": true, "dependencies": { - "glob": "^9.2.0" + "glob": "^10.0.0" }, "bin": { "rimraf": "dist/cjs/src/bin.js" @@ -17479,16 +17562,37 @@ "balanced-match": "^1.0.0" } }, + "node_modules/rimraf/node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/rimraf/node_modules/glob": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.0.tgz", - "integrity": "sha512-EAZejC7JvnQINayvB/7BJbpZpNOJ8Lrw2OZNEvQxe0vaLn1SuwMcfV7/MNaX8L/T0wmptBFI4YMtDvSBxYDc7w==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.1.tgz", + "integrity": "sha512-ngom3wq2UhjdbmRE/krgkD8BQyi1KZ5l+D2dVm4+Yj+jJIBp74/ZGunL6gNGc/CYuQmvUBiavWEXIotRiv5R6A==", "dev": true, "dependencies": { + "foreground-child": "^3.1.0", "fs.realpath": "^1.0.0", - "minimatch": "^7.4.1", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" + "jackspeak": "^2.0.3", + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.7.0" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -17498,29 +17602,41 @@ } }, "node_modules/rimraf/node_modules/minimatch": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz", - "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/rimraf/node_modules/minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, "engines": { "node": ">=8" } }, + "node_modules/rimraf/node_modules/signal-exit": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.1.tgz", + "integrity": "sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -17603,9 +17719,9 @@ "dev": true }, "node_modules/semantic-release": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-21.0.0.tgz", - "integrity": "sha512-zks0jVk2Hbyhn014vshcwQ6e6gM9jDPr8SdujqfAzPJBvvvSXa8GHz/x+W0VaW2aBNawWFAlx6N45dp1H1XCCw==", + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-21.0.1.tgz", + "integrity": "sha512-UhGxTUXHJQCBFgEQRZszLOHDpMduDSHGq3Q+30Bu+g0GbXh/EW508+kuFHezP5m0mN8xINW8hooiR3dzSV5ZLA==", "dev": true, "dependencies": { "@semantic-release/commit-analyzer": "^9.0.2", @@ -17616,7 +17732,7 @@ "aggregate-error": "^4.0.1", "cosmiconfig": "^8.0.0", "debug": "^4.0.0", - "env-ci": "^8.0.0", + "env-ci": "^9.0.0", "execa": "^7.0.0", "figures": "^5.0.0", "find-versions": "^5.1.0", @@ -18146,9 +18262,9 @@ } }, "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -19710,9 +19826,9 @@ } }, "node_modules/typescript": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.3.tgz", - "integrity": "sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -20637,36 +20753,36 @@ } }, "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "dev": true, "requires": { "@babel/highlight": "^7.18.6" } }, "@babel/compat-data": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", - "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", + "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", "dev": true }, "@babel/core": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.3.tgz", - "integrity": "sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", + "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", "dev": true, "requires": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", - "@babel/helper-compilation-targets": "^7.20.7", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", "@babel/helper-module-transforms": "^7.21.2", "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.3", + "@babel/parser": "^7.21.4", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.3", - "@babel/types": "^7.21.3", + "@babel/traverse": "^7.21.4", + "@babel/types": "^7.21.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -20711,12 +20827,12 @@ } }, "@babel/generator": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.3.tgz", - "integrity": "sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", + "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", "dev": true, "requires": { - "@babel/types": "^7.21.3", + "@babel/types": "^7.21.4", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -20755,13 +20871,13 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", + "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", "dev": true, "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", + "@babel/compat-data": "^7.21.4", + "@babel/helper-validator-option": "^7.21.0", "browserslist": "^4.21.3", "lru-cache": "^5.1.1", "semver": "^6.3.0" @@ -21026,9 +21142,9 @@ } }, "@babel/parser": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz", - "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", + "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -21704,31 +21820,31 @@ } }, "@babel/preset-env": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.4.tgz", + "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", "dev": true, "requires": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", + "@babel/compat-data": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", + "@babel/helper-validator-option": "^7.21.0", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", + "@babel/plugin-proposal-async-generator-functions": "^7.20.7", "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.21.0", "@babel/plugin-proposal-dynamic-import": "^7.18.6", "@babel/plugin-proposal-export-namespace-from": "^7.18.9", "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-object-rest-spread": "^7.20.7", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.21.0", "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.21.0", "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", @@ -21745,40 +21861,40 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.20.7", + "@babel/plugin-transform-async-to-generator": "^7.20.7", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-block-scoping": "^7.21.0", + "@babel/plugin-transform-classes": "^7.21.0", + "@babel/plugin-transform-computed-properties": "^7.20.7", + "@babel/plugin-transform-destructuring": "^7.21.3", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-for-of": "^7.21.0", "@babel/plugin-transform-function-name": "^7.18.9", "@babel/plugin-transform-literals": "^7.18.9", "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-amd": "^7.20.11", + "@babel/plugin-transform-modules-commonjs": "^7.21.2", + "@babel/plugin-transform-modules-systemjs": "^7.20.11", "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-parameters": "^7.21.3", "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.20.5", "@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-spread": "^7.20.7", "@babel/plugin-transform-sticky-regex": "^7.18.6", "@babel/plugin-transform-template-literals": "^7.18.9", "@babel/plugin-transform-typeof-symbol": "^7.18.9", "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.20.2", + "@babel/types": "^7.21.4", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -21847,27 +21963,27 @@ } }, "@babel/traverse": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.3.tgz", - "integrity": "sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", + "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", "dev": true, "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.21.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.3", - "@babel/types": "^7.21.3", + "@babel/parser": "^7.21.4", + "@babel/types": "^7.21.4", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.3.tgz", - "integrity": "sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", + "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", "dev": true, "requires": { "@babel/helper-string-parser": "^7.19.4", @@ -22021,9 +22137,9 @@ } }, "@eslint/js": { - "version": "8.37.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.37.0.tgz", - "integrity": "sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", + "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", "dev": true }, "@gar/promisify": { @@ -22722,6 +22838,13 @@ "webcrypto-core": "^1.7.4" } }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true + }, "@pnpm/config.env-replace": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.0.0.tgz", @@ -22818,9 +22941,9 @@ } }, "@semantic-release/npm": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-10.0.2.tgz", - "integrity": "sha512-Mo0XoBza4pUapxiBhLLYXeSZ9tkuHDUd/WvMbpilwuPRfJDnQXMqx5tBVon8d2mBk8JXmXpqB+ExhlWJmVT40A==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-10.0.3.tgz", + "integrity": "sha512-Chbv3kX4o+y+r1X6hsqBVB8NFbSVfiNlYOqMG6o9Wc8r5Y4cjxfbaMCuJ++XAtw3YXYX/NVD05cPzBi4Orjusg==", "dev": true, "requires": { "@semantic-release/error": "^3.0.0", @@ -22832,7 +22955,7 @@ "normalize-url": "^8.0.0", "npm": "^9.5.0", "rc": "^1.2.8", - "read-pkg": "^7.0.0", + "read-pkg": "^8.0.0", "registry-auth-token": "^5.0.0", "semver": "^7.1.2", "tempy": "^3.0.0" @@ -22886,6 +23009,15 @@ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, + "hosted-git-info": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", + "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", + "dev": true, + "requires": { + "lru-cache": "^7.5.1" + } + }, "human-signals": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", @@ -22904,12 +23036,42 @@ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true }, + "json-parse-even-better-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "dev": true + }, + "lines-and-columns": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", + "dev": true + }, + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true + }, "mimic-fn": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true }, + "normalize-package-data": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", + "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", + "dev": true, + "requires": { + "hosted-git-info": "^6.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + } + }, "npm-run-path": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", @@ -22929,15 +23091,16 @@ } }, "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.0.0.tgz", + "integrity": "sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "@babel/code-frame": "^7.21.4", + "error-ex": "^1.3.2", + "json-parse-even-better-errors": "^3.0.0", + "lines-and-columns": "^2.0.3", + "type-fest": "^3.8.0" } }, "path-key": { @@ -22947,15 +23110,15 @@ "dev": true }, "read-pkg": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", - "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.0.0.tgz", + "integrity": "sha512-Ajb9oSjxXBw0YyOiwtQ2dKbAA/vMnUPnY63XcCk+mXo0BwIdQEMgZLZiMWGttQHcUhUgbK0mH85ethMPKXxziw==", "dev": true, "requires": { "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^2.0.0" + "normalize-package-data": "^5.0.0", + "parse-json": "^7.0.0", + "type-fest": "^3.8.0" } }, "strip-final-newline": { @@ -22965,9 +23128,9 @@ "dev": true }, "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.8.0.tgz", + "integrity": "sha512-FVNSzGQz9Th+/9R6Lvv7WIAkstylfHN2/JYxkyhhmKFYh9At2DST8t6L6Lref9eYO8PXFTfG9Sg1Agg0K3vq3Q==", "dev": true } } @@ -23083,41 +23246,41 @@ } }, "@typescript-eslint/parser": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.57.0.tgz", - "integrity": "sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.0.tgz", + "integrity": "sha512-qK9TZ70eJtjojSUMrrEwA9ZDQ4N0e/AuoOIgXuNBorXYcBDk397D2r5MIe1B3cok/oCtdNC5j+lUUpVB+Dpb+w==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.57.0", - "@typescript-eslint/types": "5.57.0", - "@typescript-eslint/typescript-estree": "5.57.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/typescript-estree": "5.59.0", "debug": "^4.3.4" }, "dependencies": { "@typescript-eslint/scope-manager": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.57.0.tgz", - "integrity": "sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.0.tgz", + "integrity": "sha512-tsoldKaMh7izN6BvkK6zRMINj4Z2d6gGhO2UsI8zGZY3XhLq1DndP3Ycjhi1JwdwPRwtLMW4EFPgpuKhbCGOvQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.57.0", - "@typescript-eslint/visitor-keys": "5.57.0" + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/visitor-keys": "5.59.0" } }, "@typescript-eslint/types": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.57.0.tgz", - "integrity": "sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.0.tgz", + "integrity": "sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.57.0.tgz", - "integrity": "sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.0.tgz", + "integrity": "sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.57.0", - "@typescript-eslint/visitor-keys": "5.57.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/visitor-keys": "5.59.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -23126,12 +23289,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.57.0.tgz", - "integrity": "sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.0.tgz", + "integrity": "sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.57.0", + "@typescript-eslint/types": "5.59.0", "eslint-visitor-keys": "^3.3.0" } }, @@ -24964,24 +25127,24 @@ "dev": true }, "env-ci": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-8.0.0.tgz", - "integrity": "sha512-W+3BqGZozFua9MPeXpmTm5eYEBtGgL76jGu/pwMVp/L8PdECSCEWaIp7d4Mw7kuUrbUldK0oV0bNd6ZZjLiMiA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-9.0.0.tgz", + "integrity": "sha512-Q3cjr1tX9xwigprw4G8M3o7PIOO/1LYji6TyGsbD1WfMmD23etZvhgmPXJqkP788yH4dgSSK7oaIMuaayUJIfg==", "dev": true, "requires": { - "execa": "^6.1.0", + "execa": "^7.0.0", "java-properties": "^1.0.2" }, "dependencies": { "execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", + "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", "dev": true, "requires": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", - "human-signals": "^3.0.1", + "human-signals": "^4.3.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", @@ -24997,9 +25160,9 @@ "dev": true }, "human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "dev": true }, "is-stream": { @@ -25247,15 +25410,15 @@ } }, "eslint": { - "version": "8.37.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.37.0.tgz", - "integrity": "sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", + "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.37.0", + "@eslint/js": "8.38.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -28192,6 +28355,16 @@ "istanbul-lib-report": "^3.0.0" } }, + "jackspeak": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.0.3.tgz", + "integrity": "sha512-0Jud3OMUdMbrlr3PyUMKESq51LXVAB+a239Ywdvd+Kgxj3MaBRml/nVRxf8tQFyfthMjuRkxkv7Vg58pmIMfuQ==", + "dev": true, + "requires": { + "@pkgjs/parseargs": "^0.11.0", + "cliui": "^7.0.4" + } + }, "java-properties": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", @@ -28452,9 +28625,9 @@ "dev": true }, "lint-staged": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.0.tgz", - "integrity": "sha512-GbyK5iWinax5Dfw5obm2g2ccUiZXNGtAS4mCbJ0Lv4rq6iEtfBSjOYdcbOtAIFtM114t0vdpViDDetjVTSd8Vw==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.1.tgz", + "integrity": "sha512-8gfzinVXoPfga5Dz/ZOn8I2GOhf81Wvs+KwbEXQn/oWZAvCVS2PivrXfVbFJc93zD16uC0neS47RXHIjXKYZQw==", "dev": true, "requires": { "chalk": "5.2.0", @@ -32551,25 +32724,25 @@ "dev": true }, "path-scurry": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz", - "integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.7.0.tgz", + "integrity": "sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==", "dev": true, "requires": { - "lru-cache": "^7.14.1", - "minipass": "^4.0.2" + "lru-cache": "^9.0.0", + "minipass": "^5.0.0" }, "dependencies": { "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.0.tgz", + "integrity": "sha512-qFXQEwchrZcMVen2uIDceR8Tii6kCJak5rzDStfEM0qA3YLMswaxIEZO0DhIbJ3aqaJiDjt+3crlplOb0tDtKQ==", "dev": true }, "minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true } } @@ -33300,12 +33473,12 @@ "dev": true }, "rimraf": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", - "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.0.tgz", + "integrity": "sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==", "dev": true, "requires": { - "glob": "^9.2.0" + "glob": "^10.0.0" }, "dependencies": { "brace-expansion": { @@ -33317,31 +33490,49 @@ "balanced-match": "^1.0.0" } }, + "foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + } + }, "glob": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.0.tgz", - "integrity": "sha512-EAZejC7JvnQINayvB/7BJbpZpNOJ8Lrw2OZNEvQxe0vaLn1SuwMcfV7/MNaX8L/T0wmptBFI4YMtDvSBxYDc7w==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.1.tgz", + "integrity": "sha512-ngom3wq2UhjdbmRE/krgkD8BQyi1KZ5l+D2dVm4+Yj+jJIBp74/ZGunL6gNGc/CYuQmvUBiavWEXIotRiv5R6A==", "dev": true, "requires": { + "foreground-child": "^3.1.0", "fs.realpath": "^1.0.0", - "minimatch": "^7.4.1", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" + "jackspeak": "^2.0.3", + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.7.0" } }, "minimatch": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz", - "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "requires": { "brace-expansion": "^2.0.1" } }, "minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true + }, + "signal-exit": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.1.tgz", + "integrity": "sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==", "dev": true } } @@ -33397,9 +33588,9 @@ "dev": true }, "semantic-release": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-21.0.0.tgz", - "integrity": "sha512-zks0jVk2Hbyhn014vshcwQ6e6gM9jDPr8SdujqfAzPJBvvvSXa8GHz/x+W0VaW2aBNawWFAlx6N45dp1H1XCCw==", + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-21.0.1.tgz", + "integrity": "sha512-UhGxTUXHJQCBFgEQRZszLOHDpMduDSHGq3Q+30Bu+g0GbXh/EW508+kuFHezP5m0mN8xINW8hooiR3dzSV5ZLA==", "dev": true, "requires": { "@semantic-release/commit-analyzer": "^9.0.2", @@ -33410,7 +33601,7 @@ "aggregate-error": "^4.0.1", "cosmiconfig": "^8.0.0", "debug": "^4.0.0", - "env-ci": "^8.0.0", + "env-ci": "^9.0.0", "execa": "^7.0.0", "figures": "^5.0.0", "find-versions": "^5.1.0", @@ -33758,9 +33949,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "requires": { "lru-cache": "^6.0.0" }, @@ -34991,9 +35182,9 @@ } }, "typescript": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.3.tgz", - "integrity": "sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", "dev": true }, "uglify-js": { diff --git a/package.json b/package.json index b1c8cc1c6..ff8f45ec5 100644 --- a/package.json +++ b/package.json @@ -11,45 +11,45 @@ "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", - "semver": "^7.3.8", + "semver": "^7.5.0", "spdx-expression-parse": "^3.0.1" }, "description": "JSDoc linting rules for ESLint.", "devDependencies": { "@babel/cli": "^7.21.0", - "@babel/core": "^7.21.3", + "@babel/core": "^7.21.4", "@babel/eslint-parser": "^7.21.3", "@babel/node": "^7.20.7", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-transform-flow-strip-types": "^7.21.0", - "@babel/preset-env": "^7.20.2", + "@babel/preset-env": "^7.21.4", "@babel/register": "^7.21.0", "@es-joy/jsdoc-eslint-parser": "^0.17.0", "@hkdobrev/run-if-changed": "^0.3.1", "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/github": "^8.0.7", - "@semantic-release/npm": "^10.0.2", - "@typescript-eslint/parser": "^5.57.0", + "@semantic-release/npm": "^10.0.3", + "@typescript-eslint/parser": "^5.59.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", "chai": "^4.3.7", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "^8.37.0", + "eslint": "^8.38.0", "eslint-config-canonical": "~33.0.1", "gitdown": "^3.1.5", "glob": "^8.1.0", "husky": "^8.0.3", "jsdoc-type-pratt-parser": "^4.0.0", - "lint-staged": "^13.2.0", + "lint-staged": "^13.2.1", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.2.0", "nyc": "^15.1.0", "open-editor": "^3.0.0", - "rimraf": "^4.4.1", - "semantic-release": "^21.0.0", - "typescript": "^5.0.3" + "rimraf": "^5.0.0", + "semantic-release": "^21.0.1", + "typescript": "^5.0.4" }, "engines": { "node": "^14 || ^16 || ^17 || ^18 || ^19" From eab4fb4574027e2edac8d70dc9501a2f8d60bbf5 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 18 Apr 2023 12:47:04 -0700 Subject: [PATCH 043/273] fix: bump engines; fixes #1027 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 30ddd9040..299848604 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55,7 +55,7 @@ "typescript": "^5.0.4" }, "engines": { - "node": "^14 || ^16 || ^17 || ^18 || ^19" + "node": "^14 || ^16 - ^20" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0" diff --git a/package.json b/package.json index ff8f45ec5..2b4c2c9c6 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "typescript": "^5.0.4" }, "engines": { - "node": "^14 || ^16 || ^17 || ^18 || ^19" + "node": "^14 || ^16 - ^20" }, "keywords": [ "eslint", From cf1d88502f0a6e4673dce8dfbf44b9edf43aa030 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 18 Apr 2023 13:04:17 -0700 Subject: [PATCH 044/273] fix: avoid range; #1027 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2b4c2c9c6..b84c5be6b 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "typescript": "^5.0.4" }, "engines": { - "node": "^14 || ^16 - ^20" + "node": "^14 || ^16 || ^17 || ^18 || ^19 || ^20" }, "keywords": [ "eslint", From 131454f6998e1326563a3b25f34c6f7012b4104c Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 18 Apr 2023 14:41:43 -0700 Subject: [PATCH 045/273] fix: bump jsdoccomment --- package-lock.json | 22 +++++++++++----------- package.json | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index 299848604..fad090965 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "BSD-3-Clause", "dependencies": { - "@es-joy/jsdoccomment": "~0.37.0", + "@es-joy/jsdoccomment": "~0.37.1", "are-docs-informative": "^0.0.2", "comment-parser": "1.3.1", "debug": "^4.3.4", @@ -55,7 +55,7 @@ "typescript": "^5.0.4" }, "engines": { - "node": "^14 || ^16 - ^20" + "node": "^14 || ^16 || ^17 || ^18 || ^19 || ^20" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0" @@ -1982,16 +1982,16 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.37.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.37.0.tgz", - "integrity": "sha512-hjK0wnsPCYLlF+HHB4R/RbUjOWeLW2SlarB67+Do5WsKILOkmIZvvPJFbtWSmbypxcjpoECLAMzoao0D4Bg5ZQ==", + "version": "0.37.1", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.37.1.tgz", + "integrity": "sha512-5vxWJ1gEkEF0yRd0O+uK6dHJf7adrxwQSX8PuRiPfFSAbNLnY0ZJfXaZucoz14Jj2N11xn2DnlEPwWRpYpvRjg==", "dependencies": { "comment-parser": "1.3.1", - "esquery": "^1.4.0", + "esquery": "^1.5.0", "jsdoc-type-pratt-parser": "~4.0.0" }, "engines": { - "node": "^14 || ^16 || ^17 || ^18 || ^19" + "node": "^14 || ^16 || ^17 || ^18 || ^19 || ^20" } }, "node_modules/@eslint-community/eslint-utils": { @@ -22039,12 +22039,12 @@ } }, "@es-joy/jsdoccomment": { - "version": "0.37.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.37.0.tgz", - "integrity": "sha512-hjK0wnsPCYLlF+HHB4R/RbUjOWeLW2SlarB67+Do5WsKILOkmIZvvPJFbtWSmbypxcjpoECLAMzoao0D4Bg5ZQ==", + "version": "0.37.1", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.37.1.tgz", + "integrity": "sha512-5vxWJ1gEkEF0yRd0O+uK6dHJf7adrxwQSX8PuRiPfFSAbNLnY0ZJfXaZucoz14Jj2N11xn2DnlEPwWRpYpvRjg==", "requires": { "comment-parser": "1.3.1", - "esquery": "^1.4.0", + "esquery": "^1.5.0", "jsdoc-type-pratt-parser": "~4.0.0" } }, diff --git a/package.json b/package.json index b84c5be6b..51a635257 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "url": "http://gajus.com" }, "dependencies": { - "@es-joy/jsdoccomment": "~0.37.0", + "@es-joy/jsdoccomment": "~0.37.1", "are-docs-informative": "^0.0.2", "comment-parser": "1.3.1", "debug": "^4.3.4", From 3a90e951cc31ad11a151ae84a881f6eabdc13124 Mon Sep 17 00:00:00 2001 From: Remco Haszing Date: Thu, 20 Apr 2023 14:44:53 +0200 Subject: [PATCH 046/273] Update the node engine in package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 51a635257..3e4b50760 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "typescript": "^5.0.4" }, "engines": { - "node": "^14 || ^16 || ^17 || ^18 || ^19 || ^20" + "node": ">=14" }, "keywords": [ "eslint", From f5e21cbbd09c075ee7ba9527731acfdbc229e41c Mon Sep 17 00:00:00 2001 From: Remco Haszing Date: Thu, 20 Apr 2023 15:06:38 +0200 Subject: [PATCH 047/273] Drop support for Node.js 14 --- .babelrc.json | 2 +- .github/workflows/feature.yaml | 1 - package.json | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.babelrc.json b/.babelrc.json index 8ee4abc64..5b50df38e 100644 --- a/.babelrc.json +++ b/.babelrc.json @@ -7,7 +7,7 @@ "@babel/preset-env", { "targets": { - "node": 14 + "node": 16 } } ] diff --git a/.github/workflows/feature.yaml b/.github/workflows/feature.yaml index 3102b24e2..b94f457d4 100644 --- a/.github/workflows/feature.yaml +++ b/.github/workflows/feature.yaml @@ -33,7 +33,6 @@ jobs: fail-fast: false matrix: node_js_version: - - '14.17.0' - '16' - '18' build: diff --git a/package.json b/package.json index 3e4b50760..7c1a61767 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "typescript": "^5.0.4" }, "engines": { - "node": ">=14" + "node": ">=16" }, "keywords": [ "eslint", From f7eae9c76e6b496fa1667ef0bc64ce8c0bb4513c Mon Sep 17 00:00:00 2001 From: Remco Haszing Date: Thu, 20 Apr 2023 15:18:15 +0200 Subject: [PATCH 048/273] Use Node.js 20 in CI --- .github/workflows/feature.yaml | 5 +++-- .github/workflows/main.yaml | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/feature.yaml b/.github/workflows/feature.yaml index b94f457d4..58c580d15 100644 --- a/.github/workflows/feature.yaml +++ b/.github/workflows/feature.yaml @@ -10,7 +10,7 @@ jobs: - name: setup node.js uses: actions/setup-node@v3 with: - node-version: '18' + node-version: '20' - run: npm ci - run: npm run lint timeout-minutes: 10 @@ -35,6 +35,7 @@ jobs: node_js_version: - '16' - '18' + - '20' build: runs-on: ubuntu-latest name: Build @@ -46,7 +47,7 @@ jobs: - name: setup node.js uses: actions/setup-node@v3 with: - node-version: '18' + node-version: '20' - run: npm ci - run: npm run build timeout-minutes: 10 diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 27f7a7116..fbc4586ab 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -11,7 +11,7 @@ jobs: - name: setup node.js uses: actions/setup-node@v3 with: - node-version: "18" + node-version: "20" - run: npm ci - run: npm run build - run: npx semantic-release From d7e0fbd684b6504bbd3ff3d36cc3e5770389d443 Mon Sep 17 00:00:00 2001 From: Remco Haszing Date: Thu, 20 Apr 2023 15:42:51 +0200 Subject: [PATCH 049/273] Update .ncurc.js --- .ncurc.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.ncurc.js b/.ncurc.js index bac8b45c8..1dcb0edb0 100644 --- a/.ncurc.js +++ b/.ncurc.js @@ -7,9 +7,5 @@ module.exports = { 'decamelize', 'escape-string-regexp', 'open-editor', - - // Todo[engine:node@>=16]: Requires Node 16 - 'eslint-config-canonical', - 'glob', ], }; From 217264f3eb0fad0a5735ff04ac48c2e5e3e8a4fc Mon Sep 17 00:00:00 2001 From: Remco Haszing Date: Thu, 20 Apr 2023 15:46:43 +0200 Subject: [PATCH 050/273] Use lockfile-version 3 --- package-lock.json | 15158 +------------------------------------------- 1 file changed, 2 insertions(+), 15156 deletions(-) diff --git a/package-lock.json b/package-lock.json index fad090965..c300909d0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "eslint-plugin-jsdoc", "version": "1.0.0", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -55,7 +55,7 @@ "typescript": "^5.0.4" }, "engines": { - "node": "^14 || ^16 || ^17 || ^18 || ^19 || ^20" + "node": ">=16" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0" @@ -20698,15159 +20698,5 @@ "url": "https://github.com/sponsors/sindresorhus" } } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@ardatan/sync-fetch": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz", - "integrity": "sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==", - "dev": true, - "requires": { - "node-fetch": "^2.6.1" - } - }, - "@babel/cli": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.21.0.tgz", - "integrity": "sha512-xi7CxyS8XjSyiwUGCfwf+brtJxjW1/ZTcBUkP10xawIEXLX5HzLn+3aXkgxozcP2UhRhtKTmQurw9Uaes7jZrA==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.17", - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", - "chokidar": "^3.4.0", - "commander": "^4.0.1", - "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.2.0", - "make-dir": "^2.1.0", - "slash": "^2.0.0" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", - "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", - "dev": true - }, - "@babel/core": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", - "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.4", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.4", - "@babel/types": "^7.21.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/eslint-parser": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz", - "integrity": "sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg==", - "dev": true, - "requires": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/eslint-plugin": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/eslint-plugin/-/eslint-plugin-7.19.1.tgz", - "integrity": "sha512-ElGPkQPapKMa3zVqXHkZYzuL7I5LbRw9UWBUArgWsdWDDb9XcACqOpBib5tRPA9XvbVZYrFUkoQPbiJ4BFvu4w==", - "dev": true, - "requires": { - "eslint-rule-composer": "^0.3.0" - } - }, - "@babel/generator": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", - "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", - "dev": true, - "requires": { - "@babel/types": "^7.21.4", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", - "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz", - "integrity": "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz", - "integrity": "sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.3.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "dev": true, - "requires": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", - "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", - "dev": true, - "requires": { - "@babel/types": "^7.21.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-replace-supers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", - "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.20.7", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" - } - }, - "@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, - "requires": { - "@babel/types": "^7.20.2" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", - "dev": true, - "requires": { - "@babel/types": "^7.20.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" - } - }, - "@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", - "dev": true, - "requires": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/node": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.20.7.tgz", - "integrity": "sha512-AQt3gVcP+fpFuoFn4FmIW/+5JovvEoA9og4Y1LrRw0pv3jkl4tujZMMy3X/3ugjLrEy3k1aNywo3JIl3g+jVXQ==", - "dev": true, - "requires": { - "@babel/register": "^7.18.9", - "commander": "^4.0.1", - "core-js": "^3.26.0", - "node-environment-flags": "^1.0.5", - "regenerator-runtime": "^0.13.11", - "v8flags": "^3.1.1" - } - }, - "@babel/parser": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", - "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", - "dev": true - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", - "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", - "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-flow": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz", - "integrity": "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.19.0" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", - "dev": true, - "peer": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", - "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", - "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", - "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", - "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", - "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/template": "^7.20.7" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", - "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz", - "integrity": "sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-flow": "^7.18.6" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", - "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", - "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", - "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-simple-access": "^7.20.2" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", - "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz", - "integrity": "sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg==", - "dev": true, - "peer": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-jsx": "^7.18.6", - "@babel/types": "^7.21.0" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", - "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "regenerator-transform": "^0.15.1" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", - "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/preset-env": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.4.tgz", - "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", - "@babel/plugin-proposal-async-generator-functions": "^7.20.7", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.21.0", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.21.0", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.21.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.20.7", - "@babel/plugin-transform-async-to-generator": "^7.20.7", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.21.0", - "@babel/plugin-transform-classes": "^7.21.0", - "@babel/plugin-transform-computed-properties": "^7.20.7", - "@babel/plugin-transform-destructuring": "^7.21.3", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.21.0", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.20.11", - "@babel/plugin-transform-modules-commonjs": "^7.21.2", - "@babel/plugin-transform-modules-systemjs": "^7.20.11", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.21.3", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.20.5", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.20.7", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.21.4", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/register": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.21.0.tgz", - "integrity": "sha512-9nKsPmYDi5DidAqJaQooxIhsLJiNMkGr8ypQ8Uic7cIox7UCDsM7HuUGxdGT7mSDTYbqzIdsOWzfBton/YJrMw==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "find-cache-dir": "^2.0.0", - "make-dir": "^2.1.0", - "pirates": "^4.0.5", - "source-map-support": "^0.5.16" - } - }, - "@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "@babel/runtime": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", - "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.11" - } - }, - "@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - } - }, - "@babel/traverse": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", - "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.4", - "@babel/types": "^7.21.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", - "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - }, - "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "dev": true, - "optional": true - }, - "@es-joy/jsdoc-eslint-parser": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoc-eslint-parser/-/jsdoc-eslint-parser-0.17.0.tgz", - "integrity": "sha512-QYmORkVbSmejgrI7zFCJmsZJPiO+yhQoIILLjMrC99XPQfqBO+2GidtWEcP8cDSFWbUDbJeCgXNoRvMq00hI5Q==", - "dev": true, - "requires": { - "@babel/core": "^7.17.12", - "@babel/eslint-parser": "^7.17.0", - "@es-joy/jsdoccomment": "0.30.0", - "@typescript-eslint/parser": "^5.25.0", - "eslint": "^8.15.0", - "esquery": "^1.4.0", - "typescript": "^4.6.4" - }, - "dependencies": { - "@es-joy/jsdoccomment": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.30.0.tgz", - "integrity": "sha512-U30cjaHCjdUqtbMgChJl80BP25GSRWg0/1R3UdB2ksitAo2oDYdRMrvzwuM21jcsFbEcLNAqwQGTCg+5CVbSIA==", - "dev": true, - "requires": { - "comment-parser": "1.3.1", - "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "~3.1.0" - } - }, - "jsdoc-type-pratt-parser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", - "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==", - "dev": true - }, - "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true - } - } - }, - "@es-joy/jsdoccomment": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.37.1.tgz", - "integrity": "sha512-5vxWJ1gEkEF0yRd0O+uK6dHJf7adrxwQSX8PuRiPfFSAbNLnY0ZJfXaZucoz14Jj2N11xn2DnlEPwWRpYpvRjg==", - "requires": { - "comment-parser": "1.3.1", - "esquery": "^1.5.0", - "jsdoc-type-pratt-parser": "~4.0.0" - } - }, - "@eslint-community/eslint-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz", - "integrity": "sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - } - } - }, - "@eslint-community/regexpp": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz", - "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.1", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } - } - }, - "@eslint/js": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", - "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", - "dev": true - }, - "@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, - "@graphql-eslint/eslint-plugin": { - "version": "3.16.1", - "resolved": "https://registry.npmjs.org/@graphql-eslint/eslint-plugin/-/eslint-plugin-3.16.1.tgz", - "integrity": "sha512-sKmtlwVWjxCXlmgpNJSdvBqapluyrp6PA7FbSnpkyHD0ejkp3mhwZtCiR6843LmVFgWSzfAtEdjPCT2TcJ5p/w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@graphql-tools/code-file-loader": "^7.3.6", - "@graphql-tools/graphql-tag-pluck": "^7.3.6", - "@graphql-tools/utils": "^9.0.0", - "chalk": "^4.1.2", - "debug": "^4.3.4", - "fast-glob": "^3.2.12", - "graphql-config": "^4.4.0", - "graphql-depth-limit": "^1.1.0", - "lodash.lowercase": "^4.3.0", - "tslib": "^2.4.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@graphql-tools/batch-execute": { - "version": "8.5.18", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.18.tgz", - "integrity": "sha512-mNv5bpZMLLwhkmPA6+RP81A6u3KF4CSKLf3VX9hbomOkQR4db8pNs8BOvpZU54wKsUzMzdlws/2g/Dabyb2Vsg==", - "dev": true, - "requires": { - "@graphql-tools/utils": "9.2.1", - "dataloader": "2.2.2", - "tslib": "^2.4.0", - "value-or-promise": "1.0.12" - } - }, - "@graphql-tools/code-file-loader": { - "version": "7.3.21", - "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.3.21.tgz", - "integrity": "sha512-dj+OLnz1b8SYkXcuiy0CUQ25DWnOEyandDlOcdBqU3WVwh5EEVbn0oXUYm90fDlq2/uut00OrtC5Wpyhi3tAvA==", - "dev": true, - "requires": { - "@graphql-tools/graphql-tag-pluck": "7.5.0", - "@graphql-tools/utils": "9.2.1", - "globby": "^11.0.3", - "tslib": "^2.4.0", - "unixify": "^1.0.0" - } - }, - "@graphql-tools/delegate": { - "version": "9.0.28", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-9.0.28.tgz", - "integrity": "sha512-8j23JCs2mgXqnp+5K0v4J3QBQU/5sXd9miaLvMfRf/6963DznOXTECyS9Gcvj1VEeR5CXIw6+aX/BvRDKDdN1g==", - "dev": true, - "requires": { - "@graphql-tools/batch-execute": "^8.5.18", - "@graphql-tools/executor": "^0.0.15", - "@graphql-tools/schema": "^9.0.16", - "@graphql-tools/utils": "^9.2.1", - "dataloader": "^2.2.2", - "tslib": "^2.5.0", - "value-or-promise": "^1.0.12" - } - }, - "@graphql-tools/executor": { - "version": "0.0.15", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-0.0.15.tgz", - "integrity": "sha512-6U7QLZT8cEUxAMXDP4xXVplLi6RBwx7ih7TevlBto66A/qFp3PDb6o/VFo07yBKozr8PGMZ4jMfEWBGxmbGdxA==", - "dev": true, - "requires": { - "@graphql-tools/utils": "9.2.1", - "@graphql-typed-document-node/core": "3.1.2", - "@repeaterjs/repeater": "3.0.4", - "tslib": "^2.4.0", - "value-or-promise": "1.0.12" - } - }, - "@graphql-tools/executor-graphql-ws": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.12.tgz", - "integrity": "sha512-aFD79i9l282Ob5dOZ7JsyhhXXP1o8eQh0prYkSSVo/OU2ndzWigfANz4DJgWgS3LwBjLDlMcmaXPZZeXt3m4Tg==", - "dev": true, - "requires": { - "@graphql-tools/utils": "9.2.1", - "@repeaterjs/repeater": "3.0.4", - "@types/ws": "^8.0.0", - "graphql-ws": "5.12.0", - "isomorphic-ws": "5.0.0", - "tslib": "^2.4.0", - "ws": "8.12.1" - }, - "dependencies": { - "ws": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz", - "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==", - "dev": true, - "requires": {} - } - } - }, - "@graphql-tools/executor-http": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-0.1.9.tgz", - "integrity": "sha512-tNzMt5qc1ptlHKfpSv9wVBVKCZ7gks6Yb/JcYJluxZIT4qRV+TtOFjpptfBU63usgrGVOVcGjzWc/mt7KhmmpQ==", - "dev": true, - "requires": { - "@graphql-tools/utils": "^9.2.1", - "@repeaterjs/repeater": "^3.0.4", - "@whatwg-node/fetch": "^0.8.1", - "dset": "^3.1.2", - "extract-files": "^11.0.0", - "meros": "^1.2.1", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - } - }, - "@graphql-tools/executor-legacy-ws": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.9.tgz", - "integrity": "sha512-L7oDv7R5yoXzMH+KLKDB2WHVijfVW4dB2H+Ae1RdW3MFvwbYjhnIB6QzHqKEqksjp/FndtxZkbuTIuAOsYGTYw==", - "dev": true, - "requires": { - "@graphql-tools/utils": "9.2.1", - "@types/ws": "^8.0.0", - "isomorphic-ws": "5.0.0", - "tslib": "^2.4.0", - "ws": "8.12.1" - }, - "dependencies": { - "ws": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz", - "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==", - "dev": true, - "requires": {} - } - } - }, - "@graphql-tools/graphql-file-loader": { - "version": "7.5.16", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.16.tgz", - "integrity": "sha512-lK1N3Y2I634FS12nd4bu7oAJbai3bUc28yeX+boT+C83KTO4ujGHm+6hPC8X/FRGwhKOnZBxUM7I5nvb3HiUxw==", - "dev": true, - "requires": { - "@graphql-tools/import": "6.7.17", - "@graphql-tools/utils": "9.2.1", - "globby": "^11.0.3", - "tslib": "^2.4.0", - "unixify": "^1.0.0" - } - }, - "@graphql-tools/graphql-tag-pluck": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.5.0.tgz", - "integrity": "sha512-76SYzhSlH50ZWkhWH6OI94qrxa8Ww1ZeOU04MdtpSeQZVT2rjGWeTb3xM3kjTVWQJsr/YJBhDeNPGlwNUWfX4Q==", - "dev": true, - "requires": { - "@babel/parser": "^7.16.8", - "@babel/plugin-syntax-import-assertions": "7.20.0", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8", - "@graphql-tools/utils": "9.2.1", - "tslib": "^2.4.0" - } - }, - "@graphql-tools/import": { - "version": "6.7.17", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.7.17.tgz", - "integrity": "sha512-bn9SgrECXq3WIasgNP7ful/uON51wBajPXtxdY+z/ce7jLWaFE6lzwTDB/GAgiZ+jo7nb0ravlxteSAz2qZmuA==", - "dev": true, - "requires": { - "@graphql-tools/utils": "9.2.1", - "resolve-from": "5.0.0", - "tslib": "^2.4.0" - } - }, - "@graphql-tools/json-file-loader": { - "version": "7.4.17", - "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-7.4.17.tgz", - "integrity": "sha512-KOSTP43nwjPfXgas90rLHAFgbcSep4nmiYyR9xRVz4ZAmw8VYHcKhOLTSGylCAzi7KUfyBXajoW+6Z7dQwdn3g==", - "dev": true, - "requires": { - "@graphql-tools/utils": "9.2.1", - "globby": "^11.0.3", - "tslib": "^2.4.0", - "unixify": "^1.0.0" - } - }, - "@graphql-tools/load": { - "version": "7.8.13", - "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.8.13.tgz", - "integrity": "sha512-c97/GuUl81Wpa38cx3E6nMz8gUrvVcFokoPfDOaA5uTWSTXA1UxaF4KrvM9P5rNFaKVAtF9f6nMIusRE5B0mag==", - "dev": true, - "requires": { - "@graphql-tools/schema": "9.0.17", - "@graphql-tools/utils": "9.2.1", - "p-limit": "3.1.0", - "tslib": "^2.4.0" - } - }, - "@graphql-tools/merge": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.0.tgz", - "integrity": "sha512-3XYCWe0d3I4F1azNj1CdShlbHfTIfiDgj00R9uvFH8tHKh7i1IWN3F7QQYovcHKhayaR6zPok3YYMESYQcBoaA==", - "dev": true, - "requires": { - "@graphql-tools/utils": "9.2.1", - "tslib": "^2.4.0" - } - }, - "@graphql-tools/schema": { - "version": "9.0.17", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.17.tgz", - "integrity": "sha512-HVLq0ecbkuXhJlpZ50IHP5nlISqH2GbNgjBJhhRzHeXhfwlUOT4ISXGquWTmuq61K0xSaO0aCjMpxe4QYbKTng==", - "dev": true, - "requires": { - "@graphql-tools/merge": "8.4.0", - "@graphql-tools/utils": "9.2.1", - "tslib": "^2.4.0", - "value-or-promise": "1.0.12" - } - }, - "@graphql-tools/url-loader": { - "version": "7.17.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.17.14.tgz", - "integrity": "sha512-7boEmrZlbViqQSSvu2VFCGi9YAY7E0BCVObiv1sLYbFR+62mo825As0haU5l7wlx1zCDyUlOleNz+X2jVvBbSQ==", - "dev": true, - "requires": { - "@ardatan/sync-fetch": "^0.0.1", - "@graphql-tools/delegate": "^9.0.27", - "@graphql-tools/executor-graphql-ws": "^0.0.12", - "@graphql-tools/executor-http": "^0.1.7", - "@graphql-tools/executor-legacy-ws": "^0.0.9", - "@graphql-tools/utils": "^9.2.1", - "@graphql-tools/wrap": "^9.3.8", - "@types/ws": "^8.0.0", - "@whatwg-node/fetch": "^0.8.0", - "isomorphic-ws": "^5.0.0", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.11", - "ws": "^8.12.0" - } - }, - "@graphql-tools/utils": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", - "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", - "dev": true, - "requires": { - "@graphql-typed-document-node/core": "^3.1.1", - "tslib": "^2.4.0" - } - }, - "@graphql-tools/wrap": { - "version": "9.3.8", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-9.3.8.tgz", - "integrity": "sha512-MGsExYPiILMw4Qff7HcvE9MMSYdjb/tr5IQYJbxJIU4/TrBHox1/smne8HG+Bd7kmDlTTj7nU/Z8sxmoRd0hOQ==", - "dev": true, - "requires": { - "@graphql-tools/delegate": "9.0.28", - "@graphql-tools/schema": "9.0.17", - "@graphql-tools/utils": "9.2.1", - "tslib": "^2.4.0", - "value-or-promise": "1.0.12" - } - }, - "@graphql-typed-document-node/core": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.2.tgz", - "integrity": "sha512-9anpBMM9mEgZN4wr2v8wHJI2/u5TnnggewRN6OlvXTTnuVyoY19X6rOv9XTqKRw6dcGKwZsBi8n0kDE2I5i4VA==", - "dev": true, - "requires": {} - }, - "@hkdobrev/run-if-changed": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@hkdobrev/run-if-changed/-/run-if-changed-0.3.1.tgz", - "integrity": "sha512-kxu18zdSoTwYpTuwIw4Zsc/cWa+1c/HayXA290TSD97WKBzodntiqm6pPCoXhGDZu2F6/yg5VChJNSjrfMiTSA==", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.7", - "execa": "^1.0.0", - "micromatch": "^3.1.10", - "npm-which": "^3.0.1", - "string-argv": "^0.1.1" - } - }, - "@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "@next/eslint-plugin-next": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.3.4.tgz", - "integrity": "sha512-BFwj8ykJY+zc1/jWANsDprDIu2MgwPOIKxNVnrKvPs+f5TPegrVnem8uScND+1veT4B7F6VeqgaNLFW1Hzl9Og==", - "dev": true, - "requires": { - "glob": "7.1.7" - }, - "dependencies": { - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "@nicolo-ribaudo/chokidar-2": { - "version": "2.1.8-no-fsevents.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", - "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", - "dev": true, - "optional": true - }, - "@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "dev": true, - "requires": { - "eslint-scope": "5.1.1" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "dev": true, - "requires": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - } - }, - "@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "@octokit/auth-token": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.3.tgz", - "integrity": "sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==", - "dev": true, - "requires": { - "@octokit/types": "^9.0.0" - } - }, - "@octokit/core": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.0.tgz", - "integrity": "sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg==", - "dev": true, - "requires": { - "@octokit/auth-token": "^3.0.0", - "@octokit/graphql": "^5.0.0", - "@octokit/request": "^6.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^9.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/endpoint": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.5.tgz", - "integrity": "sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==", - "dev": true, - "requires": { - "@octokit/types": "^9.0.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/graphql": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.5.tgz", - "integrity": "sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==", - "dev": true, - "requires": { - "@octokit/request": "^6.0.0", - "@octokit/types": "^9.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/openapi-types": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-16.0.0.tgz", - "integrity": "sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==", - "dev": true - }, - "@octokit/plugin-paginate-rest": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.0.0.tgz", - "integrity": "sha512-Sq5VU1PfT6/JyuXPyt04KZNVsFOSBaYOAq2QRZUwzVlI10KFvcbUo8lR258AAQL1Et60b0WuVik+zOWKLuDZxw==", - "dev": true, - "requires": { - "@octokit/types": "^9.0.0" - } - }, - "@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "dev": true, - "requires": {} - }, - "@octokit/plugin-rest-endpoint-methods": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.0.1.tgz", - "integrity": "sha512-pnCaLwZBudK5xCdrR823xHGNgqOzRnJ/mpC/76YPpNP7DybdsJtP7mdOwh+wYZxK5jqeQuhu59ogMI4NRlBUvA==", - "dev": true, - "requires": { - "@octokit/types": "^9.0.0", - "deprecation": "^2.3.1" - } - }, - "@octokit/request": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.3.tgz", - "integrity": "sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==", - "dev": true, - "requires": { - "@octokit/endpoint": "^7.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^9.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/request-error": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", - "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", - "dev": true, - "requires": { - "@octokit/types": "^9.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - } - }, - "@octokit/rest": { - "version": "19.0.7", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.7.tgz", - "integrity": "sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA==", - "dev": true, - "requires": { - "@octokit/core": "^4.1.0", - "@octokit/plugin-paginate-rest": "^6.0.0", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^7.0.0" - } - }, - "@octokit/types": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.0.0.tgz", - "integrity": "sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw==", - "dev": true, - "requires": { - "@octokit/openapi-types": "^16.0.0" - } - }, - "@peculiar/asn1-schema": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz", - "integrity": "sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA==", - "dev": true, - "requires": { - "asn1js": "^3.0.5", - "pvtsutils": "^1.3.2", - "tslib": "^2.4.0" - } - }, - "@peculiar/json-schema": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", - "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", - "dev": true, - "requires": { - "tslib": "^2.0.0" - } - }, - "@peculiar/webcrypto": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.1.tgz", - "integrity": "sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw==", - "dev": true, - "requires": { - "@peculiar/asn1-schema": "^2.3.0", - "@peculiar/json-schema": "^1.1.12", - "pvtsutils": "^1.3.2", - "tslib": "^2.4.1", - "webcrypto-core": "^1.7.4" - } - }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true - }, - "@pnpm/config.env-replace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.0.0.tgz", - "integrity": "sha512-ZVPVDi1E8oeXlYqkGRtX0CkzLTwE2zt62bjWaWKaAvI8NZqHzlMvGeSNDpW+JB3+aKanYb4UETJOF1/CxGPemA==", - "dev": true - }, - "@pnpm/network.ca-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", - "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", - "dev": true, - "requires": { - "graceful-fs": "4.2.10" - } - }, - "@pnpm/npm-conf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.1.0.tgz", - "integrity": "sha512-Oe6ntvgsMTE3hDIqy6sajqHF+MnzJrOF06qC2QSiUEybLL7cp6tjoKUa32gpd9+KPVl4QyMs3E3nsXrx/Vdnlw==", - "dev": true, - "requires": { - "@pnpm/config.env-replace": "^1.0.0", - "@pnpm/network.ca-file": "^1.0.1", - "config-chain": "^1.1.11" - } - }, - "@repeaterjs/repeater": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.4.tgz", - "integrity": "sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==", - "dev": true - }, - "@rushstack/eslint-patch": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz", - "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==", - "dev": true - }, - "@semantic-release/commit-analyzer": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-9.0.2.tgz", - "integrity": "sha512-E+dr6L+xIHZkX4zNMe6Rnwg4YQrWNXK+rNsvwOPpdFppvZO1olE2fIgWhv89TkQErygevbjsZFSIxp+u6w2e5g==", - "dev": true, - "requires": { - "conventional-changelog-angular": "^5.0.0", - "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.2.3", - "debug": "^4.0.0", - "import-from": "^4.0.0", - "lodash": "^4.17.4", - "micromatch": "^4.0.2" - }, - "dependencies": { - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - } - } - }, - "@semantic-release/error": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz", - "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==", - "dev": true - }, - "@semantic-release/github": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.0.7.tgz", - "integrity": "sha512-VtgicRIKGvmTHwm//iqTh/5NGQwsncOMR5vQK9pMT92Aem7dv37JFKKRuulUsAnUOIlO4G8wH3gPiBAA0iW0ww==", - "dev": true, - "requires": { - "@octokit/rest": "^19.0.0", - "@semantic-release/error": "^3.0.0", - "aggregate-error": "^3.0.0", - "bottleneck": "^2.18.1", - "debug": "^4.0.0", - "dir-glob": "^3.0.0", - "fs-extra": "^11.0.0", - "globby": "^11.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "issue-parser": "^6.0.0", - "lodash": "^4.17.4", - "mime": "^3.0.0", - "p-filter": "^2.0.0", - "p-retry": "^4.0.0", - "url-join": "^4.0.0" - } - }, - "@semantic-release/npm": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-10.0.3.tgz", - "integrity": "sha512-Chbv3kX4o+y+r1X6hsqBVB8NFbSVfiNlYOqMG6o9Wc8r5Y4cjxfbaMCuJ++XAtw3YXYX/NVD05cPzBi4Orjusg==", - "dev": true, - "requires": { - "@semantic-release/error": "^3.0.0", - "aggregate-error": "^4.0.1", - "execa": "^7.0.0", - "fs-extra": "^11.0.0", - "lodash-es": "^4.17.21", - "nerf-dart": "^1.0.0", - "normalize-url": "^8.0.0", - "npm": "^9.5.0", - "rc": "^1.2.8", - "read-pkg": "^8.0.0", - "registry-auth-token": "^5.0.0", - "semver": "^7.1.2", - "tempy": "^3.0.0" - }, - "dependencies": { - "aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", - "dev": true, - "requires": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - } - }, - "clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", - "dev": true, - "requires": { - "escape-string-regexp": "5.0.0" - } - }, - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true - }, - "execa": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "requires": { - "lru-cache": "^7.5.1" - } - }, - "human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", - "dev": true - }, - "indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true - }, - "is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", - "dev": true - }, - "lines-and-columns": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", - "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", - "dev": true - }, - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - }, - "mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true - }, - "normalize-package-data": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", - "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", - "dev": true, - "requires": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - } - }, - "npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "requires": { - "path-key": "^4.0.0" - } - }, - "onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "requires": { - "mimic-fn": "^4.0.0" - } - }, - "parse-json": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.0.0.tgz", - "integrity": "sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.21.4", - "error-ex": "^1.3.2", - "json-parse-even-better-errors": "^3.0.0", - "lines-and-columns": "^2.0.3", - "type-fest": "^3.8.0" - } - }, - "path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true - }, - "read-pkg": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.0.0.tgz", - "integrity": "sha512-Ajb9oSjxXBw0YyOiwtQ2dKbAA/vMnUPnY63XcCk+mXo0BwIdQEMgZLZiMWGttQHcUhUgbK0mH85ethMPKXxziw==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^5.0.0", - "parse-json": "^7.0.0", - "type-fest": "^3.8.0" - } - }, - "strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true - }, - "type-fest": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.8.0.tgz", - "integrity": "sha512-FVNSzGQz9Th+/9R6Lvv7WIAkstylfHN2/JYxkyhhmKFYh9At2DST8t6L6Lref9eYO8PXFTfG9Sg1Agg0K3vq3Q==", - "dev": true - } - } - }, - "@semantic-release/release-notes-generator": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-10.0.3.tgz", - "integrity": "sha512-k4x4VhIKneOWoBGHkx0qZogNjCldLPRiAjnIpMnlUh6PtaWXp/T+C9U7/TaNDDtgDa5HMbHl4WlREdxHio6/3w==", - "dev": true, - "requires": { - "conventional-changelog-angular": "^5.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.2.3", - "debug": "^4.0.0", - "get-stream": "^6.0.0", - "import-from": "^4.0.0", - "into-stream": "^6.0.0", - "lodash": "^4.17.4", - "read-pkg-up": "^7.0.0" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - } - } - }, - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "@types/node": { - "version": "18.15.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.3.tgz", - "integrity": "sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw==", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "dev": true - }, - "@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", - "dev": true - }, - "@types/ws": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", - "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.55.0.tgz", - "integrity": "sha512-IZGc50rtbjk+xp5YQoJvmMPmJEYoC53SiKPXyqWfv15XoD2Y5Kju6zN0DwlmaGJp1Iw33JsWJcQ7nw0lGCGjVg==", - "dev": true, - "requires": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.55.0", - "@typescript-eslint/type-utils": "5.55.0", - "@typescript-eslint/utils": "5.55.0", - "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/experimental-utils": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.55.0.tgz", - "integrity": "sha512-3ZqXIZhdGyGQAIIGATeMtg7prA6VlyxGtcy5hYIR/3qUqp3t18pWWUYhL9mpsDm7y8F9mr3ISMt83TiqCt7OPQ==", - "dev": true, - "requires": { - "@typescript-eslint/utils": "5.55.0" - } - }, - "@typescript-eslint/parser": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.0.tgz", - "integrity": "sha512-qK9TZ70eJtjojSUMrrEwA9ZDQ4N0e/AuoOIgXuNBorXYcBDk397D2r5MIe1B3cok/oCtdNC5j+lUUpVB+Dpb+w==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.59.0", - "@typescript-eslint/types": "5.59.0", - "@typescript-eslint/typescript-estree": "5.59.0", - "debug": "^4.3.4" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.0.tgz", - "integrity": "sha512-tsoldKaMh7izN6BvkK6zRMINj4Z2d6gGhO2UsI8zGZY3XhLq1DndP3Ycjhi1JwdwPRwtLMW4EFPgpuKhbCGOvQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.0", - "@typescript-eslint/visitor-keys": "5.59.0" - } - }, - "@typescript-eslint/types": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.0.tgz", - "integrity": "sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.0.tgz", - "integrity": "sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.0", - "@typescript-eslint/visitor-keys": "5.59.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.0.tgz", - "integrity": "sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.0", - "eslint-visitor-keys": "^3.3.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", - "dev": true - } - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.55.0.tgz", - "integrity": "sha512-OK+cIO1ZGhJYNCL//a3ROpsd83psf4dUJ4j7pdNVzd5DmIk+ffkuUIX2vcZQbEW/IR41DYsfJTB19tpCboxQuw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.55.0", - "@typescript-eslint/visitor-keys": "5.55.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.55.0.tgz", - "integrity": "sha512-ObqxBgHIXj8rBNm0yh8oORFrICcJuZPZTqtAFh0oZQyr5DnAHZWfyw54RwpEEH+fD8suZaI0YxvWu5tYE/WswA==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "5.55.0", - "@typescript-eslint/utils": "5.55.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/types": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.55.0.tgz", - "integrity": "sha512-M4iRh4AG1ChrOL6Y+mETEKGeDnT7Sparn6fhZ5LtVJF1909D5O4uqK+C5NPbLmpfZ0XIIxCdwzKiijpZUOvOug==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.55.0.tgz", - "integrity": "sha512-I7X4A9ovA8gdpWMpr7b1BN9eEbvlEtWhQvpxp/yogt48fy9Lj3iE3ild/1H3jKBBIYj5YYJmS2+9ystVhC7eaQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.55.0", - "@typescript-eslint/visitor-keys": "5.55.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.55.0.tgz", - "integrity": "sha512-FkW+i2pQKcpDC3AY6DU54yl8Lfl14FVGYDgBTyGKB75cCwV3KpkpTMFi9d9j2WAJ4271LR2HeC5SEWF/CZmmfw==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.55.0", - "@typescript-eslint/types": "5.55.0", - "@typescript-eslint/typescript-estree": "5.55.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.55.0.tgz", - "integrity": "sha512-q2dlHHwWgirKh1D3acnuApXG+VNXpEY5/AwRxDVuEQpxWaB0jCDe0jFMVMALJ3ebSfuOVE8/rMS+9ZOYGg1GWw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.55.0", - "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - } - } - }, - "@whatwg-node/events": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.0.2.tgz", - "integrity": "sha512-WKj/lI4QjnLuPrim0cfO7i+HsDSXHxNv1y0CrJhdntuO3hxWZmnXCwNDnwOvry11OjRin6cgWNF+j/9Pn8TN4w==", - "dev": true - }, - "@whatwg-node/fetch": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.8.2.tgz", - "integrity": "sha512-6u1xGzFZvskJpQXhWreR9s1/4nsuY4iFRsTb4BC3NiDHmzgj/Hu1Ovt4iHs5KAjLzbnsjaQOI5f5bQPucqvPsQ==", - "dev": true, - "requires": { - "@peculiar/webcrypto": "^1.4.0", - "@whatwg-node/node-fetch": "^0.3.1", - "busboy": "^1.6.0", - "urlpattern-polyfill": "^6.0.2", - "web-streams-polyfill": "^3.2.1" - } - }, - "@whatwg-node/node-fetch": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.3.2.tgz", - "integrity": "sha512-MFPehIybgtPJG7vN4+wNk2i5ek4/qIl+1hzchGCdq7gObWsXWH+L+rvyazIoj8lo8Mt8EZeES8Cg+aPsl+7gPw==", - "dev": true, - "requires": { - "@whatwg-node/events": "^0.0.2", - "busboy": "^1.6.0", - "fast-querystring": "^1.1.1", - "fast-url-parser": "^1.1.3", - "tslib": "^2.3.1" - } - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true - }, - "acorn-globals": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz", - "integrity": "sha512-j3/4pkfih8W4NK22gxVSXcEonTpAHOHh0hu5BoZrKcOsW/4oBPxTi4Yk3SAj+FhC1f3+bRTkXdm4019gw1vg9g==", - "dev": true, - "requires": { - "acorn": "^2.1.0" - }, - "dependencies": { - "acorn": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", - "integrity": "sha512-pXK8ez/pVjqFdAgBkF1YPVRacuLQ9EXBKaKWaeh58WNfMkCmZhOZzu+NtKSPD5PHmCCHheQ5cD29qM1K4QTxIg==", - "dev": true - } - } - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "agentkeepalive": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", - "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "depd": "^2.0.0", - "humanize-ms": "^1.2.1" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", - "dev": true - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "requires": { - "default-require-extensions": "^3.0.0" - } - }, - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true - }, - "are-docs-informative": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", - "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==" - }, - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "argv-formatter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", - "integrity": "sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==", - "dev": true - }, - "aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", - "dev": true, - "requires": { - "deep-equal": "^2.0.5" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "dev": true - }, - "array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - } - }, - "array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "dev": true - }, - "array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "dev": true - }, - "array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.reduce": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz", - "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - } - }, - "array.prototype.tosorted": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", - "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.1.3" - } - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1js": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", - "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", - "dev": true, - "requires": { - "pvtsutils": "^1.3.2", - "pvutils": "^1.1.3", - "tslib": "^2.4.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", - "dev": true - }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", - "dev": true - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "dev": true - }, - "aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", - "dev": true - }, - "axe-core": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.3.tgz", - "integrity": "sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==", - "dev": true - }, - "axobject-query": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", - "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", - "dev": true, - "requires": { - "deep-equal": "^2.0.5" - } - }, - "babel-plugin-add-module-exports": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.4.tgz", - "integrity": "sha512-g+8yxHUZ60RcyaUpfNzy56OtWW+x9cyEe9j+CranqLiqbju2yf/Cy6ZtYK40EZxtrdHllzlVZgLmcOUCTlJ7Jg==", - "dev": true - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "bottleneck": { - "version": "2.19.5", - "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", - "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-request": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz", - "integrity": "sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg==", - "dev": true - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true - }, - "busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dev": true, - "requires": { - "streamsearch": "^1.1.0" - } - }, - "cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dev": true, - "requires": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - } - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "requires": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", - "dev": true, - "requires": { - "callsites": "^2.0.0" - } - }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", - "dev": true, - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", - "dev": true - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - } - } - }, - "caniuse-lite": { - "version": "1.0.30001466", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001466.tgz", - "integrity": "sha512-ewtFBSfWjEmxUgNBSZItFSmVtvk9zkwkl1OfRZlKA8slltRN+/C/tuGVrF9styXkN36Yu3+SeJ1qkXxDEyNZ5w==", - "dev": true - }, - "cardinal": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", - "dev": true, - "requires": { - "ansicolors": "~0.3.2", - "redeyed": "~2.1.0" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true - }, - "chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - } - } - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", - "dev": true - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, - "ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "clean-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", - "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", - "dev": true, - "requires": { - "@colors/colors": "1.5.0", - "string-width": "^4.2.0" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", - "dev": true, - "requires": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "comment-parser": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", - "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "dev": true, - "requires": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - } - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "dev": true, - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, - "contents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/contents/-/contents-5.0.0.tgz", - "integrity": "sha512-wnnGorqo07ZSIzMQmUc4vUv1NEXl7elBtqoz5UcysV+pbSvphZYfI763rXgpFK2H9o5rvjQQ8kZxp7hOOwIe3A==", - "dev": true, - "requires": { - "lodash": "^4.17.10", - "sister": "^3.0.1" - } - }, - "conventional-changelog-angular": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", - "dev": true, - "requires": { - "compare-func": "^2.0.0", - "q": "^1.5.1" - } - }, - "conventional-changelog-writer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", - "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", - "dev": true, - "requires": { - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", - "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "conventional-commits-filter": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", - "dev": true, - "requires": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" - } - }, - "conventional-commits-parser": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", - "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", - "dev": true, - "requires": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - } - }, - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", - "dev": true - }, - "core-js": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.1.tgz", - "integrity": "sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw==", - "dev": true - }, - "core-js-compat": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.1.tgz", - "integrity": "sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA==", - "dev": true, - "requires": { - "browserslist": "^4.21.5" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true - }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "create-eslint-index": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/create-eslint-index/-/create-eslint-index-1.0.0.tgz", - "integrity": "sha512-nXvJjnfDytOOaPOonX0h0a1ggMoqrhdekGeZkD6hkcWYvlCWhU719tKFVh8eU04CnMwu3uwe1JjwuUF2C3k2qg==", - "dev": true, - "requires": { - "lodash.get": "^4.3.0" - } - }, - "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.1" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-random-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", - "dev": true, - "requires": { - "type-fest": "^1.0.1" - }, - "dependencies": { - "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true - } - } - }, - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "cssstyle": { - "version": "0.2.37", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", - "integrity": "sha512-FUpKc+1FNBsHUr9IsfSGCovr8VuGOiiuzlgCyppKBjJi2jYTOFLN3oiiNRMIvYqbFzF38mqKj4BgcevzU5/kIA==", - "dev": true, - "requires": { - "cssom": "0.3.x" - } - }, - "damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "dataloader": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", - "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==", - "dev": true - }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true - }, - "deadlink": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/deadlink/-/deadlink-1.1.3.tgz", - "integrity": "sha512-m1h/xFi5eqcByMT7AGBt0BCygIifVyUw6CtEh1NpS/x0yeyS709+nCY5ByK255J/5hiRb9O/8dx6mmx3t6qSIQ==", - "dev": true, - "requires": { - "bluebird": "^2.10.1", - "jsdom": "^6.5.1", - "url-regexp": "^1.0.2" - }, - "dependencies": { - "bluebird": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", - "integrity": "sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==", - "dev": true - } - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", - "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true - } - } - }, - "decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true - }, - "deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-equal": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", - "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-get-iterator": "^1.1.2", - "get-intrinsic": "^1.1.3", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.1", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "default-require-extensions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", - "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", - "dev": true, - "requires": { - "strip-bom": "^4.0.0" - } - }, - "define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, - "deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - } - } - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "dset": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.2.tgz", - "integrity": "sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==", - "dev": true - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "electron-to-chromium": { - "version": "1.4.328", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz", - "integrity": "sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw==", - "dev": true - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "requires": { - "iconv-lite": "^0.6.2" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enhance-visitors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/enhance-visitors/-/enhance-visitors-1.0.0.tgz", - "integrity": "sha512-+29eJLiUixTEDRaZ35Vu8jP3gPLNcQQkQkOQjLp2X+6cZGGPDD/uasbFzvLsJKnGZnvmyZ0srxudwOtskHeIDA==", - "dev": true, - "requires": { - "lodash": "^4.13.1" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "env-ci": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-9.0.0.tgz", - "integrity": "sha512-Q3cjr1tX9xwigprw4G8M3o7PIOO/1LYji6TyGsbD1WfMmD23etZvhgmPXJqkP788yH4dgSSK7oaIMuaayUJIfg==", - "dev": true, - "requires": { - "execa": "^7.0.0", - "java-properties": "^1.0.2" - }, - "dependencies": { - "execa": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", - "dev": true - }, - "is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true - }, - "mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true - }, - "npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "requires": { - "path-key": "^4.0.0" - } - }, - "onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "requires": { - "mimic-fn": "^4.0.0" - } - }, - "path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true - }, - "strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true - } - } - }, - "env-editor": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", - "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==", - "dev": true - }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true - }, - "err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.21.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", - "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" - } - }, - "es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true - }, - "es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - } - }, - "es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - } - }, - "es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" - }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - } - } - }, - "eslint": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", - "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.38.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", - "dev": true - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } - } - }, - "eslint-ast-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-ast-utils/-/eslint-ast-utils-1.1.0.tgz", - "integrity": "sha512-otzzTim2/1+lVrlH19EfQQJEhVJSu0zOb9ygb3iapN6UlyaDtyRq4b5U1FuW0v1lRa9Fp/GJyHkSwm6NqABgCA==", - "dev": true, - "requires": { - "lodash.get": "^4.4.2", - "lodash.zip": "^4.2.0" - } - }, - "eslint-config-canonical": { - "version": "33.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-canonical/-/eslint-config-canonical-33.0.1.tgz", - "integrity": "sha512-g5hyJr5s4WnyAp5FdfMyItz72hOgXAB/4tsFMBP944bcei2QJyMvwslpKdiQL299HSJBpJ9xbNBhx7oeFI7zIQ==", - "dev": true, - "requires": { - "@babel/eslint-parser": "^7.16.3", - "@babel/eslint-plugin": "^7.14.5", - "@graphql-eslint/eslint-plugin": "^3.2.0", - "@next/eslint-plugin-next": "^12.0.7", - "@rushstack/eslint-patch": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^5.6.0", - "@typescript-eslint/parser": "^5.6.0", - "eslint-plugin-ava": "^13.1.0", - "eslint-plugin-canonical": "^2.4.1", - "eslint-plugin-cypress": "^2.12.1", - "eslint-plugin-eslint-comments": "^3.2.0", - "eslint-plugin-flowtype": "^8.0.3", - "eslint-plugin-fp": "^2.3.0", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^25.3.0", - "eslint-plugin-jsdoc": "^37.2.0", - "eslint-plugin-jsonc": "^2.0.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-lodash": "^7.3.0", - "eslint-plugin-mocha": "^10.0.1", - "eslint-plugin-modules-newline": "0.0.6", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-react": "^7.27.1", - "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-typescript-sort-keys": "^2.1.0", - "eslint-plugin-unicorn": "^39.0.0", - "eslint-plugin-yml": "^0.12.0", - "yaml-eslint-parser": "^0.5.0" - } - }, - "eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", - "dev": true, - "requires": { - "debug": "^3.2.7" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-plugin-ava": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-ava/-/eslint-plugin-ava-13.2.0.tgz", - "integrity": "sha512-i5B5izsEdERKQLruk1nIWzTTE7C26/ju8qQf7JeyRv32XT2lRMW0zMFZNhIrEf5/5VvpSz2rqrV7UcjClGbKsw==", - "dev": true, - "requires": { - "enhance-visitors": "^1.0.0", - "eslint-utils": "^3.0.0", - "espree": "^9.0.0", - "espurify": "^2.1.1", - "import-modules": "^2.1.0", - "micro-spelling-correcter": "^1.1.1", - "pkg-dir": "^5.0.0", - "resolve-from": "^5.0.0" - } - }, - "eslint-plugin-canonical": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-canonical/-/eslint-plugin-canonical-2.6.0.tgz", - "integrity": "sha512-KMcx/bX9j97nllRjluykArtoT34CHXJAQOfBBk3uc1oAZgMOyAlU3yJw5Os6yeL6gBBjd+CIf74f7zUlNF3wwg==", - "dev": true, - "requires": { - "is-get-set-prop": "^1.0.0", - "is-js-type": "^2.0.0", - "is-obj-prop": "^1.0.0", - "is-proto-prop": "^2.0.0", - "lodash": "^4.17.21", - "natural-compare": "^1.4.0" - } - }, - "eslint-plugin-cypress": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.12.1.tgz", - "integrity": "sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA==", - "dev": true, - "requires": { - "globals": "^11.12.0" - } - }, - "eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", - "dev": true, - "requires": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "dependencies": { - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "eslint-plugin-eslint-comments": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", - "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "ignore": "^5.0.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - } - } - }, - "eslint-plugin-flowtype": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", - "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", - "dev": true, - "requires": { - "lodash": "^4.17.21", - "string-natural-compare": "^3.0.1" - } - }, - "eslint-plugin-fp": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-fp/-/eslint-plugin-fp-2.3.0.tgz", - "integrity": "sha512-3n2oHibwoIxAht9/+ZaTldhI6brXORgl8oNXqZd+d9xuAQt2SBJ2/aml0oQRMWvXrgsz2WG6wfC++NjzSG3prA==", - "dev": true, - "requires": { - "create-eslint-index": "^1.0.0", - "eslint-ast-utils": "^1.0.0", - "lodash": "^4.13.1", - "req-all": "^0.1.0" - } - }, - "eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", - "dev": true, - "requires": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "eslint-plugin-jest": { - "version": "25.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", - "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "^5.0.0" - } - }, - "eslint-plugin-jsdoc": { - "version": "37.9.7", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.9.7.tgz", - "integrity": "sha512-8alON8yYcStY94o0HycU2zkLKQdcS+qhhOUNQpfONHHwvI99afbmfpYuPqf6PbLz5pLZldG3Te5I0RbAiTN42g==", - "dev": true, - "requires": { - "@es-joy/jsdoccomment": "~0.20.1", - "comment-parser": "1.3.0", - "debug": "^4.3.3", - "escape-string-regexp": "^4.0.0", - "esquery": "^1.4.0", - "regextras": "^0.8.0", - "semver": "^7.3.5", - "spdx-expression-parse": "^3.0.1" - }, - "dependencies": { - "@es-joy/jsdoccomment": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.20.1.tgz", - "integrity": "sha512-oeJK41dcdqkvdZy/HctKklJNkt/jh+av3PZARrZEl+fs/8HaHeeYoAvEwOV0u5I6bArTF17JEsTZMY359e/nfQ==", - "dev": true, - "requires": { - "comment-parser": "1.3.0", - "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "~2.2.3" - } - }, - "comment-parser": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.0.tgz", - "integrity": "sha512-hRpmWIKgzd81vn0ydoWoyPoALEOnF4wt8yKD35Ib1D6XC2siLiYaiqfGkYrunuKdsXGwpBpHU3+9r+RVw2NZfA==", - "dev": true - }, - "jsdoc-type-pratt-parser": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.5.tgz", - "integrity": "sha512-2a6eRxSxp1BW040hFvaJxhsCMI9lT8QB8t14t+NY5tC5rckIR0U9cr2tjOeaFirmEOy6MHvmJnY7zTBHq431Lw==", - "dev": true - } - } - }, - "eslint-plugin-jsonc": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.6.0.tgz", - "integrity": "sha512-4bA9YTx58QaWalua1Q1b82zt7eZMB7i+ed8q8cKkbKP75ofOA2SXbtFyCSok7RY6jIXeCqQnKjN9If8zCgv6PA==", - "dev": true, - "requires": { - "eslint-utils": "^3.0.0", - "jsonc-eslint-parser": "^2.0.4", - "natural-compare": "^1.4.0" - } - }, - "eslint-plugin-jsx-a11y": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", - "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.20.7", - "aria-query": "^5.1.3", - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.6.2", - "axobject-query": "^3.1.1", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.3.3", - "language-tags": "=1.0.5", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "eslint-plugin-lodash": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-lodash/-/eslint-plugin-lodash-7.4.0.tgz", - "integrity": "sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==", - "dev": true, - "requires": { - "lodash": "^4.17.21" - } - }, - "eslint-plugin-mocha": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.1.0.tgz", - "integrity": "sha512-xLqqWUF17llsogVOC+8C6/jvQ+4IoOREbN7ZCHuOHuD6cT5cDD4h7f2LgsZuzMAiwswWE21tO7ExaknHVDrSkw==", - "dev": true, - "requires": { - "eslint-utils": "^3.0.0", - "rambda": "^7.1.0" - } - }, - "eslint-plugin-modules-newline": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-modules-newline/-/eslint-plugin-modules-newline-0.0.6.tgz", - "integrity": "sha512-69NpBr68U6pmXL+y+KHl/64PwRarceC3/sCNUVxRbe0gPI32SIw8AtdpkqNiJYCa2yMd4lRrkrnU09Yio7KVzA==", - "dev": true, - "requires": { - "requireindex": "~1.1.0" - } - }, - "eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "requires": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, - "dependencies": { - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "eslint-plugin-react": { - "version": "7.32.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", - "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", - "dev": true, - "requires": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.8" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", - "dev": true, - "requires": {} - }, - "eslint-plugin-typescript-sort-keys": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-typescript-sort-keys/-/eslint-plugin-typescript-sort-keys-2.3.0.tgz", - "integrity": "sha512-3LAcYulo5gNYiPWee+TksITfvWeBuBjGgcSLTacPESFVKEoy8laOQuZvJlSCwTBHT2SCGIxr3bJ56zuux+3MCQ==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "^5.0.0", - "json-schema": "^0.4.0", - "natural-compare-lite": "^1.4.0" - } - }, - "eslint-plugin-unicorn": { - "version": "39.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-39.0.0.tgz", - "integrity": "sha512-fd5RK2FtYjGcIx3wra7csIE/wkkmBo22T1gZtRTsLr1Mb+KsFKJ+JOdSqhHXQUrI/JTs/Mon64cEYzTgSCbltw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "ci-info": "^3.2.0", - "clean-regexp": "^1.0.0", - "eslint-template-visitor": "^2.3.2", - "eslint-utils": "^3.0.0", - "esquery": "^1.4.0", - "indent-string": "4", - "is-builtin-module": "^3.1.0", - "lodash": "^4.17.21", - "pluralize": "^8.0.0", - "read-pkg-up": "^7.0.1", - "regexp-tree": "^0.1.23", - "safe-regex": "^2.1.1", - "semver": "^7.3.5", - "strip-indent": "^3.0.0" - } - }, - "eslint-plugin-yml": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-0.12.0.tgz", - "integrity": "sha512-aS82M+diohZTusadiByzh/bKDrfi+Y6VBQkD3ym/7JH+KF9WUB9qKCizLfTaCACwtRrHpqaLz3G8GKmslshyiw==", - "dev": true, - "requires": { - "debug": "^4.3.2", - "lodash": "^4.17.21", - "natural-compare": "^1.4.0", - "yaml-eslint-parser": "^0.5.0" - } - }, - "eslint-rule-composer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", - "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", - "dev": true - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "dependencies": { - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - } - } - }, - "eslint-template-visitor": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.3.2.tgz", - "integrity": "sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA==", - "dev": true, - "requires": { - "@babel/core": "^7.12.16", - "@babel/eslint-parser": "^7.12.16", - "eslint-visitor-keys": "^2.0.0", - "esquery": "^1.3.1", - "multimap": "^1.1.0" - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, - "espree": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", - "dev": true - } - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "espurify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/espurify/-/espurify-2.1.1.tgz", - "integrity": "sha512-zttWvnkhcDyGOhSH4vO2qCBILpdCMv/MX8lp4cqgRkQoDRGK2oZxi2GfWhlP2dIXmk7BaKeOTuzbHhyC68o8XQ==", - "dev": true - }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - } - } - }, - "extract-files": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-11.0.0.tgz", - "integrity": "sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==", - "dev": true - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true - }, - "fast-decode-uri-component": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", - "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fast-querystring": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.1.tgz", - "integrity": "sha512-qR2r+e3HvhEFmpdHMv//U8FnFlnYjaC6QKDuaXALDkw2kvHO8WDjxH+f/rHGR4Me4pnk8p9JAkRNTjYHAKRn2Q==", - "dev": true, - "requires": { - "fast-decode-uri-component": "^1.0.1" - } - }, - "fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", - "dev": true, - "requires": { - "punycode": "^1.3.2" - } - }, - "fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", - "dev": true, - "requires": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true - }, - "is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true - } - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "filesize": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.4.0.tgz", - "integrity": "sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - } - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "find-versions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-5.1.0.tgz", - "integrity": "sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==", - "dev": true, - "requires": { - "semver-regex": "^4.0.5" - } - }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true - }, - "foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true - }, - "fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-set-props": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-set-props/-/get-set-props-0.1.0.tgz", - "integrity": "sha512-7oKuKzAGKj0ag+eWZwcGw2fjiZ78tXnXQoBgY0aU7ZOxTu4bB7hSuQSDgtKy978EDH062P5FmD2EWiDpQS9K9Q==", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "get-urls": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/get-urls/-/get-urls-10.0.1.tgz", - "integrity": "sha512-5usUMF4FE0cTS7yUuRvBsB4tSs5u8KFn7v01+IDGL/18tuoADu5ehthqw+y2EHnJsWhsp1443K5P+C/XWZQ04g==", - "dev": true, - "requires": { - "normalize-url": "^5.1.0", - "url-regex-safe": "^2.0.2" - }, - "dependencies": { - "normalize-url": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-5.3.1.tgz", - "integrity": "sha512-K1c7+vaAP+Yh5bOGmA10PGPpp+6h7WZrl7GwqKhUflBc9flU9pzG27DDeB9+iuhZkE3BJZOcgN1P/2sS5pqrWw==", - "dev": true - } - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "git-log-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz", - "integrity": "sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==", - "dev": true, - "requires": { - "argv-formatter": "~1.0.0", - "spawn-error-forwarder": "~1.0.0", - "split2": "~1.0.0", - "stream-combiner2": "~1.1.1", - "through2": "~2.0.0", - "traverse": "~0.6.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "split2": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", - "integrity": "sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==", - "dev": true, - "requires": { - "through2": "~2.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "gitdown": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/gitdown/-/gitdown-3.1.5.tgz", - "integrity": "sha512-nvdK4qp8yQdzbdHgnEUuC0ubfAvv27fHNpsX9/0FLJvAJk687zGkptRNvls4U5UNYMKdunIL84QR+qQKyHMDaw==", - "dev": true, - "requires": { - "bluebird": "^3.7.2", - "deadlink": "^1.1.3", - "filesize": "^6.1.0", - "get-urls": "^10.0.0", - "gitinfo": "^2.4.0", - "glob": "^7.1.6", - "jsonfile": "^6.1.0", - "lodash": "^4.17.20", - "markdown-contents": "^1.0.11", - "marked": "^2.0.0", - "moment": "^2.29.1", - "stack-trace": "^0.0.10", - "yargs": "^16.2.0" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "gitinfo": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/gitinfo/-/gitinfo-2.4.0.tgz", - "integrity": "sha512-cQU3oInRu7+LaPwFNlppP0NmJa1SBdZtNCUoo+XT/nGRbmwlhssbjkN7gQmfQZAuMxphghx0ACfbIQmMBmPT2w==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "ramda": "^0.26.1" - } - }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "graphql": { - "version": "16.6.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", - "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==", - "dev": true, - "peer": true - }, - "graphql-config": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-4.5.0.tgz", - "integrity": "sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==", - "dev": true, - "requires": { - "@graphql-tools/graphql-file-loader": "^7.3.7", - "@graphql-tools/json-file-loader": "^7.3.7", - "@graphql-tools/load": "^7.5.5", - "@graphql-tools/merge": "^8.2.6", - "@graphql-tools/url-loader": "^7.9.7", - "@graphql-tools/utils": "^9.0.0", - "cosmiconfig": "8.0.0", - "jiti": "1.17.1", - "minimatch": "4.2.3", - "string-env-interpolation": "1.0.1", - "tslib": "^2.4.0" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", - "dev": true, - "requires": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - } - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "minimatch": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.3.tgz", - "integrity": "sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } - } - }, - "graphql-depth-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/graphql-depth-limit/-/graphql-depth-limit-1.1.0.tgz", - "integrity": "sha512-+3B2BaG8qQ8E18kzk9yiSdAa75i/hnnOwgSeAxVJctGQPvmeiLtqKOYF6HETCyRjiF7Xfsyal0HbLlxCQkgkrw==", - "dev": true, - "requires": { - "arrify": "^1.0.1" - } - }, - "graphql-ws": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.12.0.tgz", - "integrity": "sha512-PA3ImUp8utrpEjoxBMhvxsjkStvFEdU0E1gEBREt8HZIWkxOUymwJBhFnBL7t/iHhUq1GVPeZevPinkZFENxTw==", - "dev": true, - "requires": {} - }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "requires": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "dependencies": { - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hook-std": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-3.0.0.tgz", - "integrity": "sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==", - "dev": true - }, - "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dev": true, - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - } - }, - "http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dev": true, - "requires": { - "ms": "^2.0.0" - } - }, - "husky": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", - "dev": true - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", - "dev": true - } - } - }, - "import-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", - "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==", - "dev": true - }, - "import-modules": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-modules/-/import-modules-2.1.0.tgz", - "integrity": "sha512-8HEWcnkbGpovH9yInoisxaSoIg9Brbul+Ju3Kqe2UsYDUBJD/iQjSgEj0zPcTDPKfPp2fs5xlv1i+JSye/m1/A==", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "install-artifact-from-github": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/install-artifact-from-github/-/install-artifact-from-github-1.3.2.tgz", - "integrity": "sha512-yCFcLvqk0yQdxx0uJz4t9Z3adDMLAYrcGYv546uRXCSvxE+GqNYhhz/KmrGcUKGI/gVLR9n/e/zM9jX/+ASMJQ==", - "dev": true - }, - "internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "into-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", - "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", - "dev": true, - "requires": { - "from2": "^2.3.0", - "p-is-promise": "^3.0.0" - } - }, - "ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "dev": true - }, - "ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "dev": true - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-builtin-module": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", - "dev": true, - "requires": { - "builtin-modules": "^3.3.0" - } - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true - }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", - "dev": true - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - }, - "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true - }, - "is-get-set-prop": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-get-set-prop/-/is-get-set-prop-1.0.0.tgz", - "integrity": "sha512-DvAYZ1ZgGUz4lzxKMPYlt08qAUqyG9ckSg2pIjfvcQ7+pkVNUHk8yVLXOnCLe5WKXhLop8oorWFBJHpwWQpszQ==", - "dev": true, - "requires": { - "get-set-props": "^0.1.0", - "lowercase-keys": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-js-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-js-type/-/is-js-type-2.0.0.tgz", - "integrity": "sha512-Aj13l47+uyTjlQNHtXBV8Cji3jb037vxwMWCgopRR8h6xocgBGW3qG8qGlIOEmbXQtkKShKuBM9e8AA1OeQ+xw==", - "dev": true, - "requires": { - "js-types": "^1.0.0" - } - }, - "is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true - }, - "is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "is-obj-prop": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-obj-prop/-/is-obj-prop-1.0.0.tgz", - "integrity": "sha512-5Idb61slRlJlsAzi0Wsfwbp+zZY+9LXKUAZpvT/1ySw+NxKLRWfa0Bzj+wXI3fX5O9hiddm5c3DAaRSNP/yl2w==", - "dev": true, - "requires": { - "lowercase-keys": "^1.0.0", - "obj-props": "^1.0.0" - } - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - }, - "is-proto-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-proto-prop/-/is-proto-prop-2.0.0.tgz", - "integrity": "sha512-jl3NbQ/fGLv5Jhan4uX+Ge9ohnemqyblWVVCpAvtTQzNFvV2xhJq+esnkIbYQ9F1nITXoLfDDQLp7LBw/zzncg==", - "dev": true, - "requires": { - "lowercase-keys": "^1.0.0", - "proto-props": "^2.0.0" - } - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "dev": true - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", - "dev": true, - "requires": { - "text-extensions": "^1.0.0" - } - }, - "is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true - }, - "is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "dev": true - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true - }, - "isomorphic-ws": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", - "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", - "dev": true, - "requires": {} - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true - }, - "issue-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz", - "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==", - "dev": true, - "requires": { - "lodash.capitalize": "^4.2.1", - "lodash.escaperegexp": "^4.1.2", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.uniqby": "^4.7.0" - } - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "requires": { - "append-transform": "^2.0.0" - } - }, - "istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-processinfo": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", - "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", - "dev": true, - "requires": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^8.3.2" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jackspeak": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.0.3.tgz", - "integrity": "sha512-0Jud3OMUdMbrlr3PyUMKESq51LXVAB+a239Ywdvd+Kgxj3MaBRml/nVRxf8tQFyfthMjuRkxkv7Vg58pmIMfuQ==", - "dev": true, - "requires": { - "@pkgjs/parseargs": "^0.11.0", - "cliui": "^7.0.4" - } - }, - "java-properties": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", - "integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==", - "dev": true - }, - "jiti": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.17.1.tgz", - "integrity": "sha512-NZIITw8uZQFuzQimqjUxIrIcEdxYDFIe/0xYfIlVXTkiBjjyBEvgasj5bb0/cHtPRD/NziPbT312sFrkI5ALpw==", - "dev": true - }, - "js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-types": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/js-types/-/js-types-1.0.0.tgz", - "integrity": "sha512-bfwqBW9cC/Lp7xcRpug7YrXm0IVw+T9e3g4mCYnv0Pjr3zIzU9PCQElYU9oSGAWzXlbdl9X5SAMPejO9sxkeUw==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true - }, - "jsdoc-type-pratt-parser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", - "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==" - }, - "jsdom": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-6.5.1.tgz", - "integrity": "sha512-KeCN3yqR+MmjAZDnVZgIaL2tP9BxSFlsYZw9Z+zy64+jJzHc1m8ruccb83Qe8AG0xKUjpo2kxEGFCMtiF4MmAg==", - "dev": true, - "requires": { - "acorn": "^2.4.0", - "acorn-globals": "^1.0.4", - "browser-request": ">= 0.3.1 < 0.4.0", - "cssom": ">= 0.3.0 < 0.4.0", - "cssstyle": ">= 0.2.29 < 0.3.0", - "escodegen": "^1.6.1", - "htmlparser2": ">= 3.7.3 < 4.0.0", - "nwmatcher": ">= 1.3.6 < 2.0.0", - "parse5": "^1.4.2", - "request": "^2.55.0", - "symbol-tree": ">= 3.1.0 < 4.0.0", - "tough-cookie": "^2.0.0", - "whatwg-url-compat": "~0.6.5", - "xml-name-validator": ">= 2.0.1 < 3.0.0", - "xmlhttprequest": ">= 1.6.0 < 2.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "acorn": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", - "integrity": "sha512-pXK8ez/pVjqFdAgBkF1YPVRacuLQ9EXBKaKWaeh58WNfMkCmZhOZzu+NtKSPD5PHmCCHheQ5cD29qM1K4QTxIg==", - "dev": true - } - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true - }, - "jsonc-eslint-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-2.2.0.tgz", - "integrity": "sha512-x5QjzBOORd+T2EjErIxJnkOEbLVEdD1ILEeBbIJt8Eq/zUn7P7M8qdnWiNVBK5f8oxnJpc6SBHOeeIEl/swPjg==", - "dev": true, - "requires": { - "acorn": "^8.5.0", - "eslint-visitor-keys": "^3.0.0", - "espree": "^9.0.0", - "semver": "^7.3.5" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - } - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "jsx-ast-utils": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", - "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", - "dev": true, - "requires": { - "array-includes": "^3.1.5", - "object.assign": "^4.1.3" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "language-subtag-registry": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", - "dev": true - }, - "language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", - "dev": true, - "requires": { - "language-subtag-registry": "~0.3.2" - } - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true - }, - "line-column-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/line-column-path/-/line-column-path-2.0.0.tgz", - "integrity": "sha512-nz3A+vi4bElhwd62E9+Qk/f9BDYLSzD/4Hy1rir0I4GnMxSTezSymzANyph5N1PgRZ3sSbA+yR5hOuXxc71a0Q==", - "dev": true, - "requires": { - "type-fest": "^0.4.1" - }, - "dependencies": { - "type-fest": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", - "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", - "dev": true - } - } - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "lint-staged": { - "version": "13.2.1", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.1.tgz", - "integrity": "sha512-8gfzinVXoPfga5Dz/ZOn8I2GOhf81Wvs+KwbEXQn/oWZAvCVS2PivrXfVbFJc93zD16uC0neS47RXHIjXKYZQw==", - "dev": true, - "requires": { - "chalk": "5.2.0", - "cli-truncate": "^3.1.0", - "commander": "^10.0.0", - "debug": "^4.3.4", - "execa": "^7.0.0", - "lilconfig": "2.1.0", - "listr2": "^5.0.7", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-inspect": "^1.12.3", - "pidtree": "^0.6.0", - "string-argv": "^0.3.1", - "yaml": "^2.2.1" - }, - "dependencies": { - "chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", - "dev": true - }, - "commander": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", - "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", - "dev": true - }, - "execa": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.0.tgz", - "integrity": "sha512-T6nIJO3LHxUZ6ahVRaxXz9WLEruXLqdcluA+UuTptXmLM7nDAn9lx9IfkxPyzEL21583qSt4RmL44pO71EHaJQ==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "human-signals": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.0.tgz", - "integrity": "sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ==", - "dev": true - }, - "is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true - }, - "npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "requires": { - "path-key": "^4.0.0" - } - }, - "onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "requires": { - "mimic-fn": "^4.0.0" - } - }, - "path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true - }, - "string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true - }, - "strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true - } - } - }, - "listr2": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.8.tgz", - "integrity": "sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==", - "dev": true, - "requires": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.19", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.8.0", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - } - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true - }, - "lodash.capitalize": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", - "integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "lodash.defaultsdeep": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", - "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", - "dev": true - }, - "lodash.escaperegexp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", - "dev": true - }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true - }, - "lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", - "dev": true - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", - "dev": true - }, - "lodash.lowercase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.lowercase/-/lodash.lowercase-4.3.0.tgz", - "integrity": "sha512-UcvP1IZYyDKyEL64mmrwoA1AbFu5ahojhTtkOUr1K9dbuxzS9ev8i4TxMMGCqRC9TE8uDaSoufNAXxRPNTseVA==", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.uniqby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", - "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==", - "dev": true - }, - "lodash.zip": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", - "integrity": "sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==", - "dev": true - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "dev": true, - "requires": { - "get-func-name": "^2.0.0" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - } - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true - }, - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "markdown-contents": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/markdown-contents/-/markdown-contents-1.0.11.tgz", - "integrity": "sha512-6o8It0JhmoN398ATp8zOWHAniTB3/tEXUVTCP00gTqwZNc465DIoHTTaspyEkaov93QLhrqirxizJ29E/i8/0Q==", - "dev": true, - "requires": { - "contents": "^5.0.0", - "lodash": "^4.17.10" - } - }, - "marked": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz", - "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==", - "dev": true - }, - "marked-terminal": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.1.1.tgz", - "integrity": "sha512-+cKTOx9P4l7HwINYhzbrBSyzgxO2HaHKGZGuB1orZsMIgXYaJyfidT81VXRdpelW/PcHEWxywscePVgI/oUF6g==", - "dev": true, - "requires": { - "ansi-escapes": "^5.0.0", - "cardinal": "^2.1.1", - "chalk": "^5.0.0", - "cli-table3": "^0.6.1", - "node-emoji": "^1.11.0", - "supports-hyperlinks": "^2.2.0" - }, - "dependencies": { - "ansi-escapes": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", - "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", - "dev": true, - "requires": { - "type-fest": "^1.0.2" - } - }, - "chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", - "dev": true - }, - "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true - } - } - }, - "meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "dependencies": { - "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true - } - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "meros": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/meros/-/meros-1.2.1.tgz", - "integrity": "sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g==", - "dev": true, - "requires": {} - }, - "micro-spelling-correcter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/micro-spelling-correcter/-/micro-spelling-correcter-1.1.1.tgz", - "integrity": "sha512-lkJ3Rj/mtjlRcHk6YyCbvZhyWTOzdBvTHsxMmZSk5jxN1YyVSQ+JETAom55mdzfcyDrY/49Z7UCW760BK30crg==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "dev": true - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - } - }, - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "dev": true, - "requires": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "dependencies": { - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - } - } - }, - "modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true - }, - "moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multimap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multimap/-/multimap-1.1.0.tgz", - "integrity": "sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==", - "dev": true - }, - "nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", - "dev": true - }, - "nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "nerf-dart": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz", - "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", - "dev": true, - "requires": { - "lodash": "^4.17.21" - } - }, - "node-environment-flags": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", - "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", - "dev": true, - "requires": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-gyp": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", - "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", - "dev": true, - "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "requires": { - "process-on-spawn": "^1.0.0" - } - }, - "node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", - "dev": true - }, - "nopt": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", - "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", - "dev": true, - "requires": { - "abbrev": "^1.0.0" - } - }, - "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", - "dev": true - }, - "npm": { - "version": "9.6.3", - "resolved": "https://registry.npmjs.org/npm/-/npm-9.6.3.tgz", - "integrity": "sha512-KMAw6cJF5JGPJz/NtsU8H1sMqb34qPGnSMaSWrVO8bzxOdAXJNAtDXATvLl0lflrImIze1FZCqocM8wdIu3Sfg==", - "dev": true, - "requires": { - "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^6.2.6", - "@npmcli/config": "^6.1.5", - "@npmcli/map-workspaces": "^3.0.3", - "@npmcli/package-json": "^3.0.0", - "@npmcli/run-script": "^6.0.0", - "abbrev": "^2.0.0", - "archy": "~1.0.0", - "cacache": "^17.0.5", - "chalk": "^4.1.2", - "ci-info": "^3.8.0", - "cli-columns": "^4.0.0", - "cli-table3": "^0.6.3", - "columnify": "^1.6.0", - "fastest-levenshtein": "^1.0.16", - "fs-minipass": "^3.0.1", - "glob": "^9.3.1", - "graceful-fs": "^4.2.11", - "hosted-git-info": "^6.1.1", - "ini": "^3.0.1", - "init-package-json": "^5.0.0", - "is-cidr": "^4.0.2", - "json-parse-even-better-errors": "^3.0.0", - "libnpmaccess": "^7.0.2", - "libnpmdiff": "^5.0.14", - "libnpmexec": "^5.0.14", - "libnpmfund": "^4.0.14", - "libnpmhook": "^9.0.3", - "libnpmorg": "^5.0.3", - "libnpmpack": "^5.0.14", - "libnpmpublish": "^7.1.3", - "libnpmsearch": "^6.0.2", - "libnpmteam": "^5.0.3", - "libnpmversion": "^4.0.2", - "make-fetch-happen": "^11.0.3", - "minimatch": "^7.4.3", - "minipass": "^4.2.5", - "minipass-pipeline": "^1.2.4", - "ms": "^2.1.2", - "node-gyp": "^9.3.1", - "nopt": "^7.1.0", - "npm-audit-report": "^4.0.0", - "npm-install-checks": "^6.1.0", - "npm-package-arg": "^10.1.0", - "npm-pick-manifest": "^8.0.1", - "npm-profile": "^7.0.1", - "npm-registry-fetch": "^14.0.3", - "npm-user-validate": "^2.0.0", - "npmlog": "^7.0.1", - "p-map": "^4.0.0", - "pacote": "^15.1.1", - "parse-conflict-json": "^3.0.1", - "proc-log": "^3.0.0", - "qrcode-terminal": "^0.12.0", - "read": "^2.0.0", - "read-package-json": "^6.0.1", - "read-package-json-fast": "^3.0.2", - "semver": "^7.3.8", - "ssri": "^10.0.1", - "tar": "^6.1.13", - "text-table": "~0.2.0", - "tiny-relative-date": "^1.3.0", - "treeverse": "^3.0.0", - "validate-npm-package-name": "^5.0.0", - "which": "^3.0.0", - "write-file-atomic": "^5.0.0" - }, - "dependencies": { - "@colors/colors": { - "version": "1.5.0", - "bundled": true, - "dev": true, - "optional": true - }, - "@gar/promisify": { - "version": "1.1.3", - "bundled": true, - "dev": true - }, - "@isaacs/string-locale-compare": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "@npmcli/arborist": { - "version": "6.2.6", - "bundled": true, - "dev": true, - "requires": { - "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/fs": "^3.1.0", - "@npmcli/installed-package-contents": "^2.0.2", - "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/metavuln-calculator": "^5.0.0", - "@npmcli/name-from-folder": "^2.0.0", - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^3.0.0", - "@npmcli/query": "^3.0.0", - "@npmcli/run-script": "^6.0.0", - "bin-links": "^4.0.1", - "cacache": "^17.0.4", - "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^6.1.1", - "json-parse-even-better-errors": "^3.0.0", - "json-stringify-nice": "^1.1.4", - "minimatch": "^7.4.2", - "nopt": "^7.0.0", - "npm-install-checks": "^6.0.0", - "npm-package-arg": "^10.1.0", - "npm-pick-manifest": "^8.0.1", - "npm-registry-fetch": "^14.0.3", - "npmlog": "^7.0.1", - "pacote": "^15.0.8", - "parse-conflict-json": "^3.0.0", - "proc-log": "^3.0.0", - "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^1.0.1", - "read-package-json-fast": "^3.0.2", - "semver": "^7.3.7", - "ssri": "^10.0.1", - "treeverse": "^3.0.0", - "walk-up-path": "^1.0.0" - } - }, - "@npmcli/config": { - "version": "6.1.5", - "bundled": true, - "dev": true, - "requires": { - "@npmcli/map-workspaces": "^3.0.2", - "ini": "^3.0.0", - "nopt": "^7.0.0", - "proc-log": "^3.0.0", - "read-package-json-fast": "^3.0.2", - "semver": "^7.3.5", - "walk-up-path": "^1.0.0" - } - }, - "@npmcli/disparity-colors": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-styles": "^4.3.0" - } - }, - "@npmcli/fs": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "semver": "^7.3.5" - } - }, - "@npmcli/git": { - "version": "4.0.4", - "bundled": true, - "dev": true, - "requires": { - "@npmcli/promise-spawn": "^6.0.0", - "lru-cache": "^7.4.4", - "npm-pick-manifest": "^8.0.0", - "proc-log": "^3.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^3.0.0" - } - }, - "@npmcli/installed-package-contents": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - } - }, - "@npmcli/map-workspaces": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "requires": { - "@npmcli/name-from-folder": "^2.0.0", - "glob": "^9.3.1", - "minimatch": "^7.4.2", - "read-package-json-fast": "^3.0.0" - } - }, - "@npmcli/metavuln-calculator": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "cacache": "^17.0.0", - "json-parse-even-better-errors": "^3.0.0", - "pacote": "^15.0.0", - "semver": "^7.3.5" - } - }, - "@npmcli/move-file": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "@npmcli/name-from-folder": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "@npmcli/node-gyp": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "@npmcli/package-json": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "json-parse-even-better-errors": "^3.0.0" - } - }, - "@npmcli/promise-spawn": { - "version": "6.0.2", - "bundled": true, - "dev": true, - "requires": { - "which": "^3.0.0" - } - }, - "@npmcli/query": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.10" - } - }, - "@npmcli/run-script": { - "version": "6.0.0", - "bundled": true, - "dev": true, - "requires": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^6.0.0", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^3.0.0", - "which": "^3.0.0" - } - }, - "@sigstore/protobuf-specs": { - "version": "0.1.0", - "bundled": true, - "dev": true - }, - "@tootallnate/once": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "@tufjs/models": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "minimatch": "^7.4.2" - } - }, - "abbrev": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "abort-controller": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "agent-base": { - "version": "6.0.2", - "bundled": true, - "dev": true, - "requires": { - "debug": "4" - } - }, - "agentkeepalive": { - "version": "4.3.0", - "bundled": true, - "dev": true, - "requires": { - "debug": "^4.1.0", - "depd": "^2.0.0", - "humanize-ms": "^1.2.1" - } - }, - "aggregate-error": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ansi-regex": { - "version": "5.0.1", - "bundled": true, - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "bundled": true, - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "aproba": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "archy": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "are-we-there-yet": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^4.1.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "base64-js": { - "version": "1.5.1", - "bundled": true, - "dev": true - }, - "bin-links": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "requires": { - "cmd-shim": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "read-cmd-shim": "^4.0.0", - "write-file-atomic": "^5.0.0" - } - }, - "binary-extensions": { - "version": "2.2.0", - "bundled": true, - "dev": true - }, - "brace-expansion": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "buffer": { - "version": "6.0.3", - "bundled": true, - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "builtins": { - "version": "5.0.1", - "bundled": true, - "dev": true, - "requires": { - "semver": "^7.0.0" - } - }, - "cacache": { - "version": "17.0.5", - "bundled": true, - "dev": true, - "requires": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^9.3.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - } - }, - "chalk": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "chownr": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "ci-info": { - "version": "3.8.0", - "bundled": true, - "dev": true - }, - "cidr-regex": { - "version": "3.1.1", - "bundled": true, - "dev": true, - "requires": { - "ip-regex": "^4.1.0" - } - }, - "clean-stack": { - "version": "2.2.0", - "bundled": true, - "dev": true - }, - "cli-columns": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - } - }, - "cli-table3": { - "version": "0.6.3", - "bundled": true, - "dev": true, - "requires": { - "@colors/colors": "1.5.0", - "string-width": "^4.2.0" - } - }, - "clone": { - "version": "1.0.4", - "bundled": true, - "dev": true - }, - "cmd-shim": { - "version": "6.0.1", - "bundled": true, - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "bundled": true, - "dev": true - }, - "color-support": { - "version": "1.1.3", - "bundled": true, - "dev": true - }, - "columnify": { - "version": "1.6.0", - "bundled": true, - "dev": true, - "requires": { - "strip-ansi": "^6.0.1", - "wcwidth": "^1.0.0" - } - }, - "common-ancestor-path": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "debug": { - "version": "4.3.4", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "bundled": true, - "dev": true - } - } - }, - "defaults": { - "version": "1.0.4", - "bundled": true, - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "depd": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "diff": { - "version": "5.1.0", - "bundled": true, - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "bundled": true, - "dev": true - }, - "encoding": { - "version": "0.1.13", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "iconv-lite": "^0.6.2" - } - }, - "env-paths": { - "version": "2.2.1", - "bundled": true, - "dev": true - }, - "err-code": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "event-target-shim": { - "version": "5.0.1", - "bundled": true, - "dev": true - }, - "events": { - "version": "3.3.0", - "bundled": true, - "dev": true - }, - "fastest-levenshtein": { - "version": "1.0.16", - "bundled": true, - "dev": true - }, - "fs-minipass": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^4.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "function-bind": { - "version": "1.1.1", - "bundled": true, - "dev": true - }, - "gauge": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "glob": { - "version": "9.3.1", - "bundled": true, - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "minimatch": "^7.4.1", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" - } - }, - "graceful-fs": { - "version": "4.2.11", - "bundled": true, - "dev": true - }, - "has": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "bundled": true, - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "hosted-git-info": { - "version": "6.1.1", - "bundled": true, - "dev": true, - "requires": { - "lru-cache": "^7.5.1" - } - }, - "http-cache-semantics": { - "version": "4.1.1", - "bundled": true, - "dev": true - }, - "http-proxy-agent": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "humanize-ms": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "requires": { - "ms": "^2.0.0" - } - }, - "iconv-lite": { - "version": "0.6.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "ieee754": { - "version": "1.2.1", - "bundled": true, - "dev": true - }, - "ignore-walk": { - "version": "6.0.2", - "bundled": true, - "dev": true, - "requires": { - "minimatch": "^7.4.2" - } - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true, - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "bundled": true, - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "bundled": true, - "dev": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "bundled": true, - "dev": true - }, - "ini": { - "version": "3.0.1", - "bundled": true, - "dev": true - }, - "init-package-json": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "npm-package-arg": "^10.0.0", - "promzard": "^1.0.0", - "read": "^2.0.0", - "read-package-json": "^6.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^5.0.0" - } - }, - "ip": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "ip-regex": { - "version": "4.3.0", - "bundled": true, - "dev": true - }, - "is-cidr": { - "version": "4.0.2", - "bundled": true, - "dev": true, - "requires": { - "cidr-regex": "^3.1.1" - } - }, - "is-core-module": { - "version": "2.11.0", - "bundled": true, - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "is-lambda": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "json-parse-even-better-errors": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "json-stringify-nice": { - "version": "1.1.4", - "bundled": true, - "dev": true - }, - "jsonparse": { - "version": "1.3.1", - "bundled": true, - "dev": true - }, - "just-diff": { - "version": "6.0.0", - "bundled": true, - "dev": true - }, - "just-diff-apply": { - "version": "5.5.0", - "bundled": true, - "dev": true - }, - "libnpmaccess": { - "version": "7.0.2", - "bundled": true, - "dev": true, - "requires": { - "npm-package-arg": "^10.1.0", - "npm-registry-fetch": "^14.0.3" - } - }, - "libnpmdiff": { - "version": "5.0.14", - "bundled": true, - "dev": true, - "requires": { - "@npmcli/arborist": "^6.2.6", - "@npmcli/disparity-colors": "^3.0.0", - "@npmcli/installed-package-contents": "^2.0.2", - "binary-extensions": "^2.2.0", - "diff": "^5.1.0", - "minimatch": "^7.4.2", - "npm-package-arg": "^10.1.0", - "pacote": "^15.0.8", - "tar": "^6.1.13" - } - }, - "libnpmexec": { - "version": "5.0.14", - "bundled": true, - "dev": true, - "requires": { - "@npmcli/arborist": "^6.2.6", - "@npmcli/run-script": "^6.0.0", - "chalk": "^4.1.0", - "ci-info": "^3.7.1", - "npm-package-arg": "^10.1.0", - "npmlog": "^7.0.1", - "pacote": "^15.0.8", - "proc-log": "^3.0.0", - "read": "^2.0.0", - "read-package-json-fast": "^3.0.2", - "semver": "^7.3.7", - "walk-up-path": "^1.0.0" - } - }, - "libnpmfund": { - "version": "4.0.14", - "bundled": true, - "dev": true, - "requires": { - "@npmcli/arborist": "^6.2.6" - } - }, - "libnpmhook": { - "version": "9.0.3", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" - } - }, - "libnpmorg": { - "version": "5.0.3", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" - } - }, - "libnpmpack": { - "version": "5.0.14", - "bundled": true, - "dev": true, - "requires": { - "@npmcli/arborist": "^6.2.6", - "@npmcli/run-script": "^6.0.0", - "npm-package-arg": "^10.1.0", - "pacote": "^15.0.8" - } - }, - "libnpmpublish": { - "version": "7.1.3", - "bundled": true, - "dev": true, - "requires": { - "ci-info": "^3.6.1", - "normalize-package-data": "^5.0.0", - "npm-package-arg": "^10.1.0", - "npm-registry-fetch": "^14.0.3", - "proc-log": "^3.0.0", - "semver": "^7.3.7", - "sigstore": "^1.0.0", - "ssri": "^10.0.1" - } - }, - "libnpmsearch": { - "version": "6.0.2", - "bundled": true, - "dev": true, - "requires": { - "npm-registry-fetch": "^14.0.3" - } - }, - "libnpmteam": { - "version": "5.0.3", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" - } - }, - "libnpmversion": { - "version": "4.0.2", - "bundled": true, - "dev": true, - "requires": { - "@npmcli/git": "^4.0.1", - "@npmcli/run-script": "^6.0.0", - "json-parse-even-better-errors": "^3.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.7" - } - }, - "lru-cache": { - "version": "7.18.3", - "bundled": true, - "dev": true - }, - "make-fetch-happen": { - "version": "11.0.3", - "bundled": true, - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - } - }, - "minimatch": { - "version": "7.4.3", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minipass": { - "version": "4.2.5", - "bundled": true, - "dev": true - }, - "minipass-collect": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "bundled": true, - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "minipass-fetch": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^4.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - }, - "minipass-flush": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "bundled": true, - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "minipass-json-stream": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "bundled": true, - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "bundled": true, - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "minipass-sized": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "bundled": true, - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "minizlib": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "bundled": true, - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "mkdirp": { - "version": "1.0.4", - "bundled": true, - "dev": true - }, - "ms": { - "version": "2.1.3", - "bundled": true, - "dev": true - }, - "mute-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "negotiator": { - "version": "0.6.3", - "bundled": true, - "dev": true - }, - "node-gyp": { - "version": "9.3.1", - "bundled": true, - "dev": true, - "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "dependencies": { - "@npmcli/fs": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "requires": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - } - }, - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true - }, - "are-we-there-yet": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "cacache": { - "version": "16.1.3", - "bundled": true, - "dev": true, - "requires": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.1.0", - "bundled": true, - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "minimatch": { - "version": "5.1.6", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "fs-minipass": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "gauge": { - "version": "4.0.4", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "glob": { - "version": "7.2.3", - "bundled": true, - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "make-fetch-happen": { - "version": "10.2.1", - "bundled": true, - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - } - }, - "minimatch": { - "version": "3.1.2", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minipass": { - "version": "3.3.6", - "bundled": true, - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-fetch": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - }, - "nopt": { - "version": "6.0.0", - "bundled": true, - "dev": true, - "requires": { - "abbrev": "^1.0.0" - } - }, - "npmlog": { - "version": "6.0.2", - "bundled": true, - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - }, - "readable-stream": { - "version": "3.6.2", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "ssri": { - "version": "9.0.1", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "unique-filename": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "unique-slug": "^3.0.0" - } - }, - "unique-slug": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "which": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "nopt": { - "version": "7.1.0", - "bundled": true, - "dev": true, - "requires": { - "abbrev": "^2.0.0" - } - }, - "normalize-package-data": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - } - }, - "npm-audit-report": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "chalk": "^4.0.0" - } - }, - "npm-bundled": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "npm-normalize-package-bin": "^3.0.0" - } - }, - "npm-install-checks": { - "version": "6.1.0", - "bundled": true, - "dev": true, - "requires": { - "semver": "^7.1.1" - } - }, - "npm-normalize-package-bin": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "npm-package-arg": { - "version": "10.1.0", - "bundled": true, - "dev": true, - "requires": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - } - }, - "npm-packlist": { - "version": "7.0.4", - "bundled": true, - "dev": true, - "requires": { - "ignore-walk": "^6.0.0" - } - }, - "npm-pick-manifest": { - "version": "8.0.1", - "bundled": true, - "dev": true, - "requires": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^10.0.0", - "semver": "^7.3.5" - } - }, - "npm-profile": { - "version": "7.0.1", - "bundled": true, - "dev": true, - "requires": { - "npm-registry-fetch": "^14.0.0", - "proc-log": "^3.0.0" - } - }, - "npm-registry-fetch": { - "version": "14.0.3", - "bundled": true, - "dev": true, - "requires": { - "make-fetch-happen": "^11.0.0", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^10.0.0", - "proc-log": "^3.0.0" - } - }, - "npm-user-validate": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "npmlog": { - "version": "7.0.1", - "bundled": true, - "dev": true, - "requires": { - "are-we-there-yet": "^4.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^5.0.0", - "set-blocking": "^2.0.0" - } - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "p-map": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "pacote": { - "version": "15.1.1", - "bundled": true, - "dev": true, - "requires": { - "@npmcli/git": "^4.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^6.0.1", - "@npmcli/run-script": "^6.0.0", - "cacache": "^17.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^4.0.0", - "npm-package-arg": "^10.0.0", - "npm-packlist": "^7.0.0", - "npm-pick-manifest": "^8.0.0", - "npm-registry-fetch": "^14.0.0", - "proc-log": "^3.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^6.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^1.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - } - }, - "parse-conflict-json": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "json-parse-even-better-errors": "^3.0.0", - "just-diff": "^6.0.0", - "just-diff-apply": "^5.2.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "path-scurry": { - "version": "1.6.1", - "bundled": true, - "dev": true, - "requires": { - "lru-cache": "^7.14.1", - "minipass": "^4.0.2" - } - }, - "postcss-selector-parser": { - "version": "6.0.11", - "bundled": true, - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "proc-log": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "process": { - "version": "0.11.10", - "bundled": true, - "dev": true - }, - "promise-all-reject-late": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "promise-call-limit": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "promise-retry": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - } - }, - "promzard": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "read": "^2.0.0" - } - }, - "qrcode-terminal": { - "version": "0.12.0", - "bundled": true, - "dev": true - }, - "read": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "mute-stream": "~1.0.0" - } - }, - "read-cmd-shim": { - "version": "4.0.0", - "bundled": true, - "dev": true - }, - "read-package-json": { - "version": "6.0.1", - "bundled": true, - "dev": true, - "requires": { - "glob": "^9.3.0", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "npm-normalize-package-bin": "^3.0.0" - } - }, - "read-package-json-fast": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "requires": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - } - }, - "readable-stream": { - "version": "4.3.0", - "bundled": true, - "dev": true, - "requires": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10" - } - }, - "retry": { - "version": "0.12.0", - "bundled": true, - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "requires": { - "glob": "^7.1.3" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "glob": { - "version": "7.2.3", - "bundled": true, - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "minimatch": { - "version": "3.1.2", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "7.3.8", - "bundled": true, - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "bundled": true, - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "signal-exit": { - "version": "3.0.7", - "bundled": true, - "dev": true - }, - "sigstore": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "@sigstore/protobuf-specs": "^0.1.0", - "make-fetch-happen": "^11.0.1", - "tuf-js": "^1.0.0" - } - }, - "smart-buffer": { - "version": "4.2.0", - "bundled": true, - "dev": true - }, - "socks": { - "version": "2.7.1", - "bundled": true, - "dev": true, - "requires": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - } - }, - "socks-proxy-agent": { - "version": "7.0.0", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - }, - "spdx-correct": { - "version": "3.2.0", - "bundled": true, - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "bundled": true, - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.13", - "bundled": true, - "dev": true - }, - "ssri": { - "version": "10.0.1", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^4.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "string-width": { - "version": "4.2.3", - "bundled": true, - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "supports-color": { - "version": "7.2.0", - "bundled": true, - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "tar": { - "version": "6.1.13", - "bundled": true, - "dev": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "fs-minipass": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "bundled": true, - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } - } - } - } - }, - "text-table": { - "version": "0.2.0", - "bundled": true, - "dev": true - }, - "tiny-relative-date": { - "version": "1.3.0", - "bundled": true, - "dev": true - }, - "treeverse": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "tuf-js": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "requires": { - "@tufjs/models": "1.0.1", - "make-fetch-happen": "^11.0.1" - } - }, - "unique-filename": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "unique-slug": "^4.0.0" - } - }, - "unique-slug": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "validate-npm-package-name": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "builtins": "^5.0.0" - } - }, - "walk-up-path": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "wcwidth": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "which": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wide-align": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "write-file-atomic": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } - }, - "yallist": { - "version": "4.0.0", - "bundled": true, - "dev": true - } - } - }, - "npm-path": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz", - "integrity": "sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==", - "dev": true, - "requires": { - "which": "^1.2.10" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", - "dev": true, - "requires": { - "path-key": "^2.0.0" - }, - "dependencies": { - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true - } - } - }, - "npm-which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz", - "integrity": "sha512-CM8vMpeFQ7MAPin0U3wzDhSGV0hMHNwHU0wjo402IVizPDrs45jSfSuoC+wThevY88LQti8VvaAnqYAeVy3I1A==", - "dev": true, - "requires": { - "commander": "^2.9.0", - "npm-path": "^2.0.2", - "which": "^1.2.10" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - }, - "nwmatcher": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz", - "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==", - "dev": true - }, - "nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "requires": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "obj-props": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/obj-props/-/obj-props-1.4.0.tgz", - "integrity": "sha512-p7p/7ltzPDiBs6DqxOrIbtRdwxxVRBj5ROukeNb9RgA+fawhrz5n2hpNz8DDmYR//tviJSj7nUnlppGmONkjiQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz", - "integrity": "sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw==", - "dev": true, - "requires": { - "array.prototype.reduce": "^1.0.5", - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "object.hasown": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", - "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", - "dev": true, - "requires": { - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dev": true, - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - } - }, - "open-editor": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/open-editor/-/open-editor-3.0.0.tgz", - "integrity": "sha512-00Nqoa7k8F4AK1oSFMIIhYku+essXiCljR2L2kV+bl5j90ANgbQgzEeTdZu23LsikDoz+KfhyRHpGLAwpQhugA==", - "dev": true, - "requires": { - "env-editor": "^0.4.1", - "execa": "^5.0.0", - "line-column-path": "^2.0.0", - "open": "^7.3.0" - }, - "dependencies": { - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - } - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "p-each-series": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-3.0.0.tgz", - "integrity": "sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==", - "dev": true - }, - "p-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", - "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", - "dev": true, - "requires": { - "p-map": "^2.0.0" - }, - "dependencies": { - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - } - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true - }, - "p-is-promise": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", - "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - } - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-reduce": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", - "integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==", - "dev": true - }, - "p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "dev": true, - "requires": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - }, - "dependencies": { - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - } - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", - "dev": true - }, - "parse5": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", - "integrity": "sha512-w2jx/0tJzvgKwZa58sj2vAYq/S/K1QJfIB3cWYea/Iu1scFPDQQ3IQiVZTHWtRBwAjv2Yd7S/xeZf3XqLDb3bA==", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-scurry": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.7.0.tgz", - "integrity": "sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==", - "dev": true, - "requires": { - "lru-cache": "^9.0.0", - "minipass": "^5.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.0.tgz", - "integrity": "sha512-qFXQEwchrZcMVen2uIDceR8Tii6kCJak5rzDStfEM0qA3YLMswaxIEZO0DhIbJ3aqaJiDjt+3crlplOb0tDtKQ==", - "dev": true - }, - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true - } - } - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pidtree": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true - }, - "pkg-conf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", - "integrity": "sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true - } - } - }, - "pkg-dir": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", - "dev": true, - "requires": { - "find-up": "^5.0.0" - }, - "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - } - } - }, - "pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "requires": { - "fromentries": "^1.2.0" - } - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true - }, - "promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "dependencies": { - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true - } - } - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true - }, - "proto-props": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/proto-props/-/proto-props-2.0.0.tgz", - "integrity": "sha512-2yma2tog9VaRZY2mn3Wq51uiSW4NcPYT1cQdBagwyrznrilKSZwIZ0UG3ZPL/mx+axEns0hE35T5ufOYZXEnBQ==", - "dev": true - }, - "psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, - "pvtsutils": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.2.tgz", - "integrity": "sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==", - "dev": true, - "requires": { - "tslib": "^2.4.0" - } - }, - "pvutils": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", - "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", - "dev": true - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", - "dev": true - }, - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true - }, - "rambda": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", - "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", - "dev": true - }, - "ramda": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz", - "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true - } - } - }, - "re2": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/re2/-/re2-1.18.0.tgz", - "integrity": "sha512-MoCYZlJ9YUgksND9asyNF2/x532daXU/ARp1UeJbQ5flMY6ryKNEhrWt85aw3YluzOJlC3vXpGgK2a1jb0b4GA==", - "dev": true, - "requires": { - "install-artifact-from-github": "^1.3.1", - "nan": "^2.17.0", - "node-gyp": "^9.3.0" - } - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "redeyed": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==", - "dev": true, - "requires": { - "esprima": "~4.0.0" - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - }, - "regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - } - } - }, - "regexp-tree": { - "version": "0.1.24", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", - "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==", - "dev": true - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "requires": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - } - }, - "regextras": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.8.0.tgz", - "integrity": "sha512-k519uI04Z3SaY0fLX843MRXnDeG2+vHOFsyhiPZvNLe7r8rD2YNRjq4BQLZZ0oAr2NrtvZlICsXysGNFPGa3CQ==", - "dev": true - }, - "registry-auth-token": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", - "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", - "dev": true, - "requires": { - "@pnpm/npm-conf": "^2.1.0" - } - }, - "regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true - } - } - }, - "release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", - "dev": true, - "requires": { - "es6-error": "^4.0.1" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "dev": true - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "dev": true - }, - "req-all": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/req-all/-/req-all-0.1.0.tgz", - "integrity": "sha512-ZdvPr8uXy9ujX3KujwE2P1HWkMYgogIhqeAeyb47MqWjSfyxERSm0TNbN/IapCCmWDufXab04AYrRgObaJCJ6Q==", - "dev": true - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "requireindex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.1.0.tgz", - "integrity": "sha512-LBnkqsDE7BZKvqylbmn7lTIVdpx4K/QCduRATpO5R+wtPmky/a8pN1bO2D6wXppn1497AJF9mNjqAXr6bdl9jg==", - "dev": true - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", - "dev": true - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "rimraf": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.0.tgz", - "integrity": "sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==", - "dev": true, - "requires": { - "glob": "^10.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - } - }, - "glob": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.1.tgz", - "integrity": "sha512-ngom3wq2UhjdbmRE/krgkD8BQyi1KZ5l+D2dVm4+Yj+jJIBp74/ZGunL6gNGc/CYuQmvUBiavWEXIotRiv5R6A==", - "dev": true, - "requires": { - "foreground-child": "^3.1.0", - "fs.realpath": "^1.0.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.0", - "minipass": "^5.0.0", - "path-scurry": "^1.7.0" - } - }, - "minimatch": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", - "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true - }, - "signal-exit": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.1.tgz", - "integrity": "sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==", - "dev": true - } - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "safe-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", - "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", - "dev": true, - "requires": { - "regexp-tree": "~0.1.1" - } - }, - "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "semantic-release": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-21.0.1.tgz", - "integrity": "sha512-UhGxTUXHJQCBFgEQRZszLOHDpMduDSHGq3Q+30Bu+g0GbXh/EW508+kuFHezP5m0mN8xINW8hooiR3dzSV5ZLA==", - "dev": true, - "requires": { - "@semantic-release/commit-analyzer": "^9.0.2", - "@semantic-release/error": "^3.0.0", - "@semantic-release/github": "^8.0.0", - "@semantic-release/npm": "^10.0.2", - "@semantic-release/release-notes-generator": "^10.0.0", - "aggregate-error": "^4.0.1", - "cosmiconfig": "^8.0.0", - "debug": "^4.0.0", - "env-ci": "^9.0.0", - "execa": "^7.0.0", - "figures": "^5.0.0", - "find-versions": "^5.1.0", - "get-stream": "^6.0.0", - "git-log-parser": "^1.2.0", - "hook-std": "^3.0.0", - "hosted-git-info": "^6.0.0", - "lodash-es": "^4.17.21", - "marked": "^4.1.0", - "marked-terminal": "^5.1.1", - "micromatch": "^4.0.2", - "p-each-series": "^3.0.0", - "p-reduce": "^3.0.0", - "read-pkg-up": "^9.1.0", - "resolve-from": "^5.0.0", - "semver": "^7.3.2", - "semver-diff": "^4.0.0", - "signale": "^1.2.1", - "yargs": "^17.5.1" - }, - "dependencies": { - "aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", - "dev": true, - "requires": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", - "dev": true, - "requires": { - "escape-string-regexp": "5.0.0" - } - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "cosmiconfig": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.0.tgz", - "integrity": "sha512-0tLZ9URlPGU7JsKq0DQOQ3FoRsYX8xDZ7xMiATQfaiGMz7EHowNkbU9u1coAOmnh9p/1ySpm0RB3JNWRXM5GCg==", - "dev": true, - "requires": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true - }, - "execa": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.0.tgz", - "integrity": "sha512-T6nIJO3LHxUZ6ahVRaxXz9WLEruXLqdcluA+UuTptXmLM7nDAn9lx9IfkxPyzEL21583qSt4RmL44pO71EHaJQ==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - } - }, - "find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dev": true, - "requires": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "requires": { - "lru-cache": "^7.5.1" - } - }, - "human-signals": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.0.tgz", - "integrity": "sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } - } - }, - "indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "requires": { - "p-locate": "^6.0.0" - } - }, - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - }, - "marked": { - "version": "4.2.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.12.tgz", - "integrity": "sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true - }, - "npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "requires": { - "path-key": "^4.0.0" - } - }, - "onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "requires": { - "mimic-fn": "^4.0.0" - } - }, - "p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "requires": { - "yocto-queue": "^1.0.0" - } - }, - "p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "requires": { - "p-limit": "^4.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true - }, - "path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true - }, - "read-pkg": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", - "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", - "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", - "dev": true, - "requires": { - "find-up": "^6.3.0", - "read-pkg": "^7.1.0", - "type-fest": "^2.5.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true - }, - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true - }, - "yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - }, - "yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true - } - } - }, - "semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", - "requires": { - "lru-cache": "^6.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "semver-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", - "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", - "dev": true, - "requires": { - "semver": "^7.3.5" - } - }, - "semver-regex": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-4.0.5.tgz", - "integrity": "sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==", - "dev": true - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } - } - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "signale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", - "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", - "dev": true, - "requires": { - "chalk": "^2.3.2", - "figures": "^2.0.0", - "pkg-conf": "^2.1.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - } - } - }, - "sister": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/sister/-/sister-3.0.2.tgz", - "integrity": "sha512-p19rtTs+NksBRKW9qn0UhZ8/TUI9BPw9lmtHny+Y3TinWlOa9jWh9xB0AtPSdmOy49NJJJSSe0Ey4C7h0TrcYA==", - "dev": true - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true - } - } - }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "dev": true, - "requires": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - } - }, - "socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true - }, - "spawn-error-forwarder": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", - "integrity": "sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==", - "dev": true - }, - "spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "requires": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==" - }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "requires": { - "through": "2" - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "requires": { - "readable-stream": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "dev": true, - "requires": { - "internal-slot": "^1.0.4" - } - }, - "stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", - "dev": true, - "requires": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-argv": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.1.2.tgz", - "integrity": "sha512-mBqPGEOMNJKXRo7z0keX0wlAhbBAjilUdPW13nN0PecVryZxdHIeM7TqbsSUA7VYuS00HGC6mojP7DlQzfa9ZA==", - "dev": true - }, - "string-env-interpolation": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz", - "integrity": "sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==", - "dev": true - }, - "string-natural-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", - "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==", - "dev": true - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4" - } - }, - "string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "requires": { - "min-indent": "^1.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", - "dev": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "dev": true - }, - "tempy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.0.0.tgz", - "integrity": "sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==", - "dev": true, - "requires": { - "is-stream": "^3.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^2.12.2", - "unique-string": "^3.0.0" - }, - "dependencies": { - "is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true - }, - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true - } - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "requires": { - "readable-stream": "3" - } - }, - "tlds": { - "version": "1.237.0", - "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.237.0.tgz", - "integrity": "sha512-4IA6zR7jQop4pEdziQaptOgkIwnnZ537fXM3MKAzOXjXLjiHm77SA3/E0nXWJGSVRnKcn/JxDJmwTqyPgQ+ozg==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - } - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - }, - "dependencies": { - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - } - } - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "dependencies": { - "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true - } - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "traverse": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz", - "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==", - "dev": true - }, - "trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true - }, - "tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - } - } - }, - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - }, - "typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - } - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", - "dev": true - }, - "uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "dev": true, - "optional": true - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - } - } - }, - "unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, - "requires": { - "unique-slug": "^3.0.0" - } - }, - "unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unique-string": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", - "dev": true, - "requires": { - "crypto-random-string": "^4.0.0" - } - }, - "universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", - "dev": true - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "unixify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", - "integrity": "sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==", - "dev": true, - "requires": { - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - } - } - }, - "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true - } - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "dev": true - }, - "url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", - "dev": true - }, - "url-regex-safe": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/url-regex-safe/-/url-regex-safe-2.1.0.tgz", - "integrity": "sha512-nfrmOb62+kN4JJRkY/w9QzZeuc63/ddIFfqS9ntok0UYsJW3C5J/jGvYZecwk8V68og2zWA7fcVn4GUXIi5qbg==", - "dev": true, - "requires": { - "ip-regex": "^4.3.0", - "re2": "^1.16.0", - "tlds": "^1.217.0" - } - }, - "url-regexp": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/url-regexp/-/url-regexp-1.0.2.tgz", - "integrity": "sha512-Tt0N/yu3iNSCqZ7wJ6AxTtF/QSemtfzLH+astikB0CR/u/7X132VaBdiNEXbiAGiU+LXsIpyB2Hqz8OY4zw8MA==", - "dev": true - }, - "urlpattern-polyfill": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-6.0.2.tgz", - "integrity": "sha512-5vZjFlH9ofROmuWmXM9yj2wljYKgWstGwe8YTyiqM7hVum/g9LyCizPZtb3UqsuppVwety9QJmfc42VggLpTgg==", - "dev": true, - "requires": { - "braces": "^3.0.2" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - }, - "v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "value-or-promise": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", - "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", - "dev": true - }, - "webcrypto-core": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.6.tgz", - "integrity": "sha512-TBPiewB4Buw+HI3EQW+Bexm19/W4cP/qZG/02QJCXN+iN+T5sl074vZ3rJcle/ZtDBQSgjkbsQO/1eFcxnSBUA==", - "dev": true, - "requires": { - "@peculiar/asn1-schema": "^2.1.6", - "@peculiar/json-schema": "^1.1.12", - "asn1js": "^3.0.1", - "pvtsutils": "^1.3.2", - "tslib": "^2.4.0" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "whatwg-url-compat": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz", - "integrity": "sha512-vbg5+JVNwGtHRI3GheZGWrcUlxF9BXHbA80dLa+2XqJjlV/BK6upoi2j8dIRW9FGPUUyaMm7Hf1pTexHnsk85g==", - "dev": true, - "requires": { - "tr46": "~0.0.1" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dev": true, - "requires": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", - "dev": true - }, - "which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - } - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "dev": true, - "requires": {} - }, - "xml-name-validator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", - "integrity": "sha512-jRKe/iQYMyVJpzPH+3HL97Lgu5HrCfii+qSo+TfjKHtOnvbnvdVfMYrn9Q34YV81M2e5sviJlI6Ko9y+nByzvA==", - "dev": true - }, - "xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "yaml": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", - "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", - "dev": true - }, - "yaml-eslint-parser": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-0.5.0.tgz", - "integrity": "sha512-nJeyLA3YHAzhBTZbRAbu3W6xrSCucyxExmA+ZDtEdUFpGllxAZpto2Zxo2IG0r0eiuEiBM4e+wiAdxTziTq94g==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.0.0", - "lodash": "^4.17.21", - "yaml": "^1.10.2" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - } - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - }, - "yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "dependencies": { - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - } - } - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } } } From ef02d5b5a7c385d83792f1d3c6ba6f472c7abc76 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 20 Apr 2023 08:36:41 -0700 Subject: [PATCH 051/273] fix: description retrieval logic was problematic for single line tags; fixes #1036 --- README.md | 12 ++++++++++++ src/iterateJsdoc.js | 9 +++++++-- .../requireDescriptionCompleteSentence.js | 6 ++++++ test/rules/assertions/tagLines.js | 18 ++++++++++++++++++ 4 files changed, 43 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5f54b8215..4e7ee052c 100644 --- a/README.md +++ b/README.md @@ -12329,6 +12329,9 @@ export default (foo) => { /** @file To learn more, * see: https://github.com/d3/d3-ease. */ +/** To learn more, + * see: https://github.com/d3/d3-ease. */ + /** * This is a complete sentence... */ @@ -23488,6 +23491,15 @@ function processSass (input) { function updateIconButton () { } // "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":1}] + +/** A class. */ +class _Foo { + /** @param arg Argument. */ + conststructor(arg: string) { + console.log(arg); + } +} +// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":1}] ```` diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index 66227ffe9..a59382bb9 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -229,6 +229,7 @@ const getUtils = ( utils.getDescription = () => { const descriptions = []; let lastDescriptionLine = 0; + let tagsBegun = false; jsdoc.source.some(({ tokens: { description, @@ -236,16 +237,20 @@ const getUtils = ( end, }, }, idx) => { + if (tag) { + tagsBegun = true; + } + if (idx && (tag || end)) { lastDescriptionLine = idx - 1; - if (!tag && description) { + if (!tagsBegun && description) { descriptions.push(description); } return true; } - if (idx || description) { + if (!tagsBegun && (idx || description)) { descriptions.push(description || (descriptions.length ? '' : '\n')); } diff --git a/test/rules/assertions/requireDescriptionCompleteSentence.js b/test/rules/assertions/requireDescriptionCompleteSentence.js index 2261cd884..b7ca18d65 100644 --- a/test/rules/assertions/requireDescriptionCompleteSentence.js +++ b/test/rules/assertions/requireDescriptionCompleteSentence.js @@ -1486,6 +1486,12 @@ export default { * see: https://github.com/d3/d3-ease. */ `, }, + { + code: ` + /** To learn more, + * see: https://github.com/d3/d3-ease. */ + `, + }, { code: ` /** diff --git a/test/rules/assertions/tagLines.js b/test/rules/assertions/tagLines.js index eef984925..15b732974 100644 --- a/test/rules/assertions/tagLines.js +++ b/test/rules/assertions/tagLines.js @@ -1139,5 +1139,23 @@ export default { }, ], }, + { + code: ` + /** A class. */ + class _Foo { + /** @param arg Argument. */ + conststructor(arg: string) { + console.log(arg); + } + } + `, + options: [ + 'any', + { + startLines: 1, + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + }, ], }; From f3faa251ee3e015bc5162e6b8da4d91212684e85 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Sat, 22 Apr 2023 17:56:13 -0400 Subject: [PATCH 052/273] fix(informative-docs): trim description text --- README.md | 7 +++++++ src/rules/informativeDocs.js | 3 ++- test/rules/assertions/informativeDocs.js | 10 ++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4e7ee052c..00c6b6e8d 100644 --- a/README.md +++ b/README.md @@ -7649,6 +7649,13 @@ function takesOne(param) {} * takes abc param */ function takesOne(param) {} + +/** + * @class + * + * @param {number} value - Some useful text + */ +function MyAmazingThing(value) {} ```` diff --git a/src/rules/informativeDocs.js b/src/rules/informativeDocs.js index 98acdb6fc..01e1f499e 100644 --- a/src/rules/informativeDocs.js +++ b/src/rules/informativeDocs.js @@ -70,7 +70,8 @@ export default iterateJsdoc(({ const nodeNames = getNamesFromNode(node); const descriptionIsRedundant = (text, extraName = '') => { - return Boolean(text) && !areDocsInformative(text, [ + const textTrimmed = text.trim(); + return Boolean(textTrimmed) && !areDocsInformative(textTrimmed, [ extraName, nodeNames, ].filter(Boolean).join(' '), { aliases, diff --git a/test/rules/assertions/informativeDocs.js b/test/rules/assertions/informativeDocs.js index ee197d9fa..bbdfbfa17 100644 --- a/test/rules/assertions/informativeDocs.js +++ b/test/rules/assertions/informativeDocs.js @@ -749,5 +749,15 @@ export default { function takesOne(param) {} `, }, + { + code: ` + /** + * @class + * + * @param {number} value - Some useful text + */ + function MyAmazingThing(value) {} + `, + }, ], }; From 95f126d988f6638bbdbf35fa70fce6e9e6abc4c2 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 21 Apr 2023 17:50:01 -0700 Subject: [PATCH 053/273] docs(`check-tag-names`): add docs on rejecting tags --- .README/rules/check-tag-names.md | 16 ++++++++++++++++ README.md | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/.README/rules/check-tag-names.md b/.README/rules/check-tag-names.md index 83797184f..f5d20f8ef 100644 --- a/.README/rules/check-tag-names.md +++ b/.README/rules/check-tag-names.md @@ -174,6 +174,22 @@ typeSummary wizaction ``` +If you instead wish to reject a normally valid tag, e.g., `@todo`, one may set the +tag to `false`: + +```json +{ + "rules": {}, + "settings": { + "jsdoc": { + "tagNamePreference": { + "todo": false + } + } + } +} +``` + #### Options ##### `definedTags` diff --git a/README.md b/README.md index 00c6b6e8d..40b144a13 100644 --- a/README.md +++ b/README.md @@ -4471,6 +4471,22 @@ typeSummary wizaction ``` +If you instead wish to reject a normally valid tag, e.g., `@todo`, one may set the +tag to `false`: + +```json +{ + "rules": {}, + "settings": { + "jsdoc": { + "tagNamePreference": { + "todo": false + } + } + } +} +``` + #### Options From ee2bae38c7f712f45f9d9e28b4da43514083e276 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 22 Apr 2023 20:14:00 -0700 Subject: [PATCH 054/273] fix(`check-tag-names`, `empty-tags`, `sort-tags`, `valid-types`): support new TypeScript `overload` and `satisfies`; fixes #1045 --- README.md | 28 +++++++++++++++++--------- src/defaultTagOrder.js | 4 ++++ src/getDefaultTagStructureForMode.js | 9 +++++++++ src/rules/emptyTags.js | 1 + src/tagNames.js | 8 ++++++++ test/rules/assertions/checkTagNames.js | 25 +++++++++++++++++++++-- 6 files changed, 64 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 40b144a13..02d13f1a2 100644 --- a/README.md +++ b/README.md @@ -4985,6 +4985,8 @@ function quux (foo) {} * @version * @yields * @internal + * @overload + * @satisfies * @template */ function quux (foo) {} @@ -5260,6 +5262,8 @@ function quux (foo) {} * @version * @yields * @internal + * @overload + * @satisfies * @template */ function quux (foo) {} @@ -5345,6 +5349,12 @@ interface WebTwain { */ ConvertToBase64(): boolean; } + +/** + * @overload + * @satisfies + */ +// Settings: {"jsdoc":{"mode":"typescript"}} ```` @@ -22665,7 +22675,7 @@ The following patterns are considered problems: * @param a */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * Some description @@ -22674,7 +22684,7 @@ function quux () {} * @param a */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @returns {string} @@ -22683,7 +22693,7 @@ function quux () {} * @param a */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * Some description @@ -22693,7 +22703,7 @@ function quux () {} * @param a */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @param b A long @@ -22702,7 +22712,7 @@ function quux () {} * @param a */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @def @@ -22711,7 +22721,7 @@ function quux () {} */ function quux () {} // "jsdoc/sort-tags": ["error"|"warn", {"alphabetizeExtras":true}] -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @xyz @@ -22740,7 +22750,7 @@ function quux () {} * @module */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @xyz @@ -22751,7 +22761,7 @@ function quux () {} */ function quux () {} // "jsdoc/sort-tags": ["error"|"warn", {"alphabetizeExtras":true}] -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @param b A long @@ -22759,7 +22769,7 @@ function quux () {} * @module */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @def diff --git a/src/defaultTagOrder.js b/src/defaultTagOrder.js index e94494689..15a463d60 100644 --- a/src/defaultTagOrder.js +++ b/src/defaultTagOrder.js @@ -55,6 +55,7 @@ const defaultTagOrder = [ // TypeScript 'internal', + 'overload', 'const', 'constant', @@ -101,6 +102,9 @@ const defaultTagOrder = [ 'listens', 'this', + // TypeScript + 'satisfies', + // Access 'static', 'private', diff --git a/src/getDefaultTagStructureForMode.js b/src/getDefaultTagStructureForMode.js index b01cc3765..1dc01860a 100644 --- a/src/getDefaultTagStructureForMode.js +++ b/src/getDefaultTagStructureForMode.js @@ -756,6 +756,15 @@ const getDefaultTagStructureForMode = (mode) => { ]), ], + [ + 'satisfies', new Map([ + // Shows curly brackets in the doc signature and examples + [ + 'typeRequired', true, + ], + ]), + ], + [ 'see', new Map([ // Signature allows for "namepath" or text, so user must configure to diff --git a/src/rules/emptyTags.js b/src/rules/emptyTags.js index 9454df674..148291ed4 100644 --- a/src/rules/emptyTags.js +++ b/src/rules/emptyTags.js @@ -10,6 +10,7 @@ const defaultEmptyTags = new Set([ // jsdoc doesn't use but allow for TypeScript 'internal', + 'overload', ]); const emptyIfNotClosure = new Set([ diff --git a/src/tagNames.js b/src/tagNames.js index 22e4d1b12..868ab668d 100644 --- a/src/tagNames.js +++ b/src/tagNames.js @@ -124,6 +124,12 @@ const typeScriptTags = { // https://www.typescriptlang.org/tsconfig/#stripInternal internal: [], + // https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/#overload-support-in-jsdoc + overload: [], + + // https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/#satisfies-support-in-jsdoc + satisfies: [], + // `@template` is also in TypeScript per: // https://www.typescriptlang.org/docs/handbook/type-checking-javascript-files.html#supported-jsdoc template: [], @@ -150,6 +156,8 @@ const { /* eslint-disable no-unused-vars */ inheritdoc, internal, + overload, + satisfies, // Will be inverted to prefer `return` returns, diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index 9209145bc..e89d92495 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -842,9 +842,17 @@ export default { code: `${ALL_TYPESCRIPT_TAGS_COMMENT}\nfunction quux (foo) {}`, errors: [ { - line: lineCount(ALL_TYPESCRIPT_TAGS_COMMENT) - 1, + line: lineCount(ALL_TYPESCRIPT_TAGS_COMMENT) - 3, message: 'Invalid JSDoc tag name "internal".', }, + { + line: lineCount(ALL_TYPESCRIPT_TAGS_COMMENT) - 2, + message: 'Invalid JSDoc tag name "overload".', + }, + { + line: lineCount(ALL_TYPESCRIPT_TAGS_COMMENT) - 1, + message: 'Invalid JSDoc tag name "satisfies".', + }, { line: lineCount(ALL_TYPESCRIPT_TAGS_COMMENT), message: 'Invalid JSDoc tag name "template".', @@ -1289,7 +1297,7 @@ export default { * Converts the images specified by the indices to base64 synchronously. * @function WebTwain#ConvertToBase64 * @returns {Base64Result} - + ConvertToBase64(): Base64Result; */ @@ -1303,5 +1311,18 @@ export default { `, parser: require.resolve('@typescript-eslint/parser'), }, + { + code: ` + /** + * @overload + * @satisfies + */ + `, + settings: { + jsdoc: { + mode: 'typescript', + }, + }, + }, ], }; From 152e8c2debad7943c8854c3b19dd4bd938910928 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 21 Apr 2023 18:14:41 -0700 Subject: [PATCH 055/273] feat(`no-blank-blocks`): add new rule; fixes #1042 --- .README/README.md | 1 + .README/rules/no-blank-blocks.md | 19 ++ README.md | 455 +++++++++++++++---------- src/index.js | 3 + src/rules/noBlankBlocks.js | 53 +++ test/rules/assertions/noBlankBlocks.js | 136 ++++++++ test/rules/ruleNames.json | 1 + 7 files changed, 480 insertions(+), 188 deletions(-) create mode 100644 .README/rules/no-blank-blocks.md create mode 100644 src/rules/noBlankBlocks.js create mode 100644 test/rules/assertions/noBlankBlocks.js diff --git a/.README/README.md b/.README/README.md index 52e71e4e1..6ef0f05f2 100644 --- a/.README/README.md +++ b/.README/README.md @@ -608,6 +608,7 @@ selector). {"gitdown": "include", "file": "./rules/multiline-blocks.md"} {"gitdown": "include", "file": "./rules/no-bad-blocks.md"} {"gitdown": "include", "file": "./rules/no-blank-block-descriptions.md"} +{"gitdown": "include", "file": "./rules/no-blank-blocks.md"} {"gitdown": "include", "file": "./rules/no-defaults.md"} {"gitdown": "include", "file": "./rules/no-missing-syntax.md"} {"gitdown": "include", "file": "./rules/no-multi-asterisks.md"} diff --git a/.README/rules/no-blank-blocks.md b/.README/rules/no-blank-blocks.md new file mode 100644 index 000000000..96da97840 --- /dev/null +++ b/.README/rules/no-blank-blocks.md @@ -0,0 +1,19 @@ +### `no-blank-blocks` + +Reports and optionally removes blocks with whitespace only. + +#### Options + +##### `enableFixer` + +Whether or not to auto-remove the blank block. Defaults to `false`. + +||| +|---|---| +|Context|everywhere| +|Tags|N/A| +|Recommended|false| +|Settings|| +|Options|`enableFixer`| + + diff --git a/README.md b/README.md index 02d13f1a2..cebb03c96 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,7 @@ JSDoc linting rules for ESLint. * [`multiline-blocks`](#user-content-eslint-plugin-jsdoc-rules-multiline-blocks) * [`no-bad-blocks`](#user-content-eslint-plugin-jsdoc-rules-no-bad-blocks) * [`no-blank-block-descriptions`](#user-content-eslint-plugin-jsdoc-rules-no-blank-block-descriptions) + * [`no-blank-blocks`](#user-content-eslint-plugin-jsdoc-rules-no-blank-blocks) * [`no-defaults`](#user-content-eslint-plugin-jsdoc-rules-no-defaults) * [`no-missing-syntax`](#user-content-eslint-plugin-jsdoc-rules-no-missing-syntax) * [`no-multi-asterisks`](#user-content-eslint-plugin-jsdoc-rules-no-multi-asterisks) @@ -9468,6 +9469,84 @@ function functionWithClearName() {} ```` + + +### no-blank-blocks + +Reports and optionally removes blocks with whitespace only. + + + +#### Options + + + +##### enableFixer + +Whether or not to auto-remove the blank block. Defaults to `false`. + +||| +|---|---| +|Context|everywhere| +|Tags|N/A| +|Recommended|false| +|Settings|| +|Options|`enableFixer`| + +The following patterns are considered problems: + +````js +/** */ +// "jsdoc/no-blank-blocks": ["error"|"warn", {"enableFixer":true}] +// Message: No empty blocks + +/** + */ +// "jsdoc/no-blank-blocks": ["error"|"warn", {"enableFixer":true}] +// Message: No empty blocks + +/** + * + */ +// "jsdoc/no-blank-blocks": ["error"|"warn", {"enableFixer":true}] +// Message: No empty blocks + +/** + * + * + */ +// "jsdoc/no-blank-blocks": ["error"|"warn", {"enableFixer":true}] +// Message: No empty blocks + +/** + * + * + */ +// "jsdoc/no-blank-blocks": ["error"|"warn", {"enableFixer":false}] +// Message: No empty blocks + +/** + * + * + */ +// Message: No empty blocks +```` + +The following patterns are not considered problems: + +````js +/** @tag */ + +/** + * Text + */ + +/** + * @tag + */ +```` + + ### no-defaults @@ -9484,12 +9563,12 @@ tag is attached). Unless your `@default` is on a function, you will need to set `contexts` to an appropriate context, including, if you wish, "any". - - + + #### Options - - + + ##### noOptionalParamNames Set this to `true` to report the presence of optional parameters. May be @@ -9498,8 +9577,8 @@ the presence of ES6 default parameters (bearing in mind that such "defaults" are only applied when the supplied value is missing or `undefined` but not for `null` or other "falsey" values). - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -9685,12 +9764,12 @@ which are not adequate to satisfy a condition, e.g., not report if there were only a function declaration of the name "ignoreMe" (though it would report by function declarations of other names). - - + + #### Options - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -9906,12 +9985,12 @@ Note that if you wish to prevent multiple asterisks at the very beginning of the jsdoc block, you should use `no-bad-blocks` (as that is not proper jsdoc and that rule is for catching blocks which only seem like jsdoc). - - + + #### Options - - + + ##### allowWhitespace (defaults to false) Set to `true` if you wish to allow asterisks after a space (as with Markdown): @@ -9922,8 +10001,8 @@ Set to `true` if you wish to allow asterisks after a space (as with Markdown): */ ``` - - + + ##### preventAtMiddleLines (defaults to true) Prevent the likes of this: @@ -9935,8 +10014,8 @@ Prevent the likes of this: */ ``` - - + + ##### preventAtEnd (defaults to true) Prevent the likes of this: @@ -10171,12 +10250,12 @@ structures, (whether or not you add a specific `comment` condition). Note that if your parser supports comment AST (as [jsdoc-eslint-parser](https://github.com/brettz9/jsdoc-eslint-parser) is designed to do), you can just use ESLint's rule. - - + + #### Options - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -10501,12 +10580,12 @@ This rule reports types being used on `@param` or `@returns`. The rule is intended to prevent the indication of types on tags where the type information would be redundant with TypeScript. - - + + #### Options - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -10680,8 +10759,8 @@ reporting on use of that namepath elsewhere) and/or that a tag's `type` is `false` (and should not be checked for types). If the `type` is an array, that array's items will be considered as defined for the purposes of that tag. - - + + #### Options An option object may have the following key: @@ -11349,8 +11428,8 @@ class Foo { Requires that each JSDoc line starts with an `*`. - - + + #### Options This rule allows an optional string argument. If it is `"always"` then a @@ -11361,8 +11440,8 @@ and use the `tags` option to apply to specific tags only. After the string option, one may add an object with the following. - - + + ##### tags If you want different values to apply to specific tags, you may use @@ -11646,12 +11725,12 @@ If sentences do not end with terminal punctuation, a period will be added. If sentences do not start with an uppercase character, the initial letter will be capitalized. - - + + #### Options - - + + ##### tags If you want additional tags to be checked for their descriptions, you may @@ -11675,16 +11754,16 @@ its "description" (e.g., for `@returns {someType} some description`, the description is `some description` while for `@some-tag xyz`, the description is `xyz`). - - + + ##### abbreviations You can provide an `abbreviations` options array to avoid such strings of text being treated as sentence endings when followed by dots. The `.` is not necessary at the end of the array items. - - + + ##### newlineBeforeCapsAssumesBadSentenceEnd When `false` (the new default), we will not assume capital letters after @@ -12428,8 +12507,8 @@ Requires that all functions have a description. is `"tag"`) must have a non-empty description that explains the purpose of the method. - - + + #### Options An options object may have any of the following properties: @@ -12990,14 +13069,14 @@ Requires that all functions have examples. * Every example tag must have a non-empty description that explains the method's usage. - - + + #### Options This rule has an object option. - - + + ##### exemptedBy Array of tags (e.g., `['type']`) whose presence on the document @@ -13006,15 +13085,15 @@ block avoids the need for an `@example`. Defaults to an array with so be sure to add back `inheritdoc` if you wish its presence to cause exemption of the rule. - - + + ##### exemptNoArguments Boolean to indicate that no-argument functions should not be reported for missing `@example` declarations. - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -13026,27 +13105,27 @@ want the rule to apply to any jsdoc block throughout your files. See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. - - + + ##### checkConstructors A value indicating whether `constructor`s should be checked. Defaults to `true`. - - + + ##### checkGetters A value indicating whether getters should be checked. Defaults to `false`. - - + + ##### checkSetters A value indicating whether setters should be checked. Defaults to `false`. - - + + ##### enableFixer A boolean on whether to enable the fixer (which adds an empty `@example` block). @@ -13359,12 +13438,12 @@ Checks that: as being when the overview tag is not preceded by anything other than a comment. - - + + #### Options - - + + ##### tags The keys of this object are tag names, and the values are configuration @@ -13648,8 +13727,8 @@ function quux () { Requires (or disallows) a hyphen before the `@param` description. - - + + #### Options This rule takes one optional string argument and an optional options object. @@ -13881,14 +13960,14 @@ function main(argv) { Checks for presence of jsdoc comments, on class declarations as well as functions. - - + + #### Options Accepts one optional options object with the following optional keys. - - + + ##### publicOnly This option will insist that missing jsdoc blocks are only reported for @@ -13904,8 +13983,8 @@ otherwise noted): - `cjs` - CommonJS exports are checked for JSDoc comments (Defaults to `true`) - `window` - Window global exports are checked for JSDoc comments - - + + ##### require An object with the following optional boolean keys which all default to @@ -13918,8 +13997,8 @@ An object with the following optional boolean keys which all default to - `FunctionExpression` - `MethodDefinition` - - + + ##### contexts Set this to an array of strings or objects representing the additional AST @@ -13936,8 +14015,8 @@ if you are specifying a more precise form in `contexts` (e.g., `MethodDefinition See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. - - + + ##### exemptEmptyConstructors Default: true @@ -13946,8 +14025,8 @@ When `true`, the rule will not report missing jsdoc blocks above constructors with no parameters or return values (this is enabled by default as the class name or description should be seen as sufficient to convey intent). - - + + ##### exemptEmptyFunctions Default: false. @@ -13956,16 +14035,16 @@ When `true`, the rule will not report missing jsdoc blocks above functions/methods with no parameters or return values (intended where function/method names are sufficient for themselves as documentation). - - + + ##### checkConstructors A value indicating whether `constructor`s should be checked. Defaults to `true`. When `true`, `exemptEmptyConstructors` may still avoid reporting when no parameters or return values are found. - - + + ##### checkGetters A value indicating whether getters should be checked. Besides setting as a @@ -13974,8 +14053,8 @@ getters should be checked but only when there is no setter. This may be useful if one only wishes documentation on one of the two accessors. Defaults to `false`. - - + + ##### checkSetters A value indicating whether setters should be checked. Besides setting as a @@ -13984,15 +14063,15 @@ setters should be checked but only when there is no getter. This may be useful if one only wishes documentation on one of the two accessors. Defaults to `false`. - - + + ##### enableFixer A boolean on whether to enable the fixer (which adds an empty jsdoc block). Defaults to `true`. - - + + ##### minLineCount An integer to indicate a minimum number of lines expected for a node in order @@ -15684,12 +15763,12 @@ Will exempt destructured roots and their children if `@param {object} props` will be exempted from requiring a description given `function someFunc ({child1, child2})`). - - + + #### Options - - + + ##### setDefaultDestructuredRootDescription Whether to set a default destructured root description. For example, you may @@ -15698,15 +15777,15 @@ corresponding to a destructured root object as it should always be the same type of object. Uses `defaultDestructuredRootDescription` for the description string. Defaults to `false`. - - + + ##### defaultDestructuredRootDescription The description string to set by default for destructured roots. Defaults to "The root object". - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -15899,12 +15978,12 @@ Requires that all function parameters have names. > > [JSDoc](https://jsdoc.app/tags-param.html#overview) - - + + #### Options - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -16043,12 +16122,12 @@ Will exempt destructured roots and their children if `@param props` will be exempted from requiring a type given `function someFunc ({child1, child2})`). - - + + #### Options - - + + ##### setDefaultDestructuredRootType Whether to set a default destructured root type. For example, you may wish @@ -16057,14 +16136,14 @@ corresponding to a destructured root object as it is always going to be an object. Uses `defaultDestructuredRootType` for the type string. Defaults to `false`. - - + + ##### defaultDestructuredRootType The type string to set by default for destructured roots. Defaults to "object". - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -16429,35 +16508,35 @@ other properties, so in looking at the docs alone without looking at the function signature, it may appear that there is an actual property named `extra`. - - + + #### Options An options object accepts the following optional properties: - - + + ##### enableFixer Whether to enable the fixer. Defaults to `true`. - - + + ##### enableRootFixer Whether to enable the auto-adding of incrementing roots (see the "Fixer" section). Defaults to `true`. Has no effect if `enableFixer` is set to `false`. - - + + ##### enableRestElementFixer Whether to enable the rest element fixer (see "Rest Element (`RestElement`) insertions"). Defaults to `true`. - - + + ##### checkRestProperty If set to `true`, will report (and add fixer insertions) for missing rest @@ -16511,15 +16590,15 @@ function quux ({num, ...extra}) { } ``` - - + + ##### autoIncrementBase Numeric to indicate the number at which to begin auto-incrementing roots. Defaults to `0`. - - + + ##### unnamedRootBase An array of root names to use in the fixer when roots are missing. Defaults @@ -16545,8 +16624,8 @@ function quux ({foo}, [bar], {baz}) { */ ``` - - + + ##### exemptedBy Array of tags (e.g., `['type']`) whose presence on the document block @@ -16555,8 +16634,8 @@ avoids the need for a `@param`. Defaults to an array with so be sure to add back `inheritdoc` if you wish its presence to cause exemption of the rule. - - + + ##### checkTypesPattern When one specifies a type, unless it is of a generic type, like `object` @@ -16591,8 +16670,8 @@ You could set this regular expression to a more expansive list, or you could restrict it such that even types matching those strings would not need destructuring. - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -16604,33 +16683,33 @@ which are checked. See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. - - + + ##### checkConstructors A value indicating whether `constructor`s should be checked. Defaults to `true`. - - + + ##### checkGetters A value indicating whether getters should be checked. Defaults to `false`. - - + + ##### checkSetters A value indicating whether setters should be checked. Defaults to `false`. - - + + ##### checkDestructured Whether to require destructured properties. Defaults to `true`. - - + + ##### checkDestructuredRoots Whether to check the existence of a corresponding `@param` for root objects @@ -16643,8 +16722,8 @@ implied to be `false` (i.e., the inside of the roots will not be checked either, e.g., it will also not complain if `a` or `b` do not have their own documentation). Defaults to `true`. - - + + ##### useDefaultObjectProperties Set to `true` if you wish to expect documentation of properties on objects @@ -18329,8 +18408,8 @@ is found. Also reports if `@returns {never}` is discovered with a return value. Will also report if multiple `@returns` tags are present. - - + + #### Options - `exemptGenerators`- Because a generator might be labeled as having a @@ -19356,12 +19435,12 @@ Requires that the `@returns` tag has a `description` value. The error will not be reported if the return value is `void` or `undefined` or if it is `Promise` or `Promise`. - - + + #### Options - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -19515,12 +19594,12 @@ function quux () { Requires that `@returns` tag has `type` value. - - + + #### Options - - + + ##### contexts Set this to an array of strings representing the AST context (or an object with @@ -19641,8 +19720,8 @@ Requires that returns are documented. Will also report if multiple `@returns` tags are present. - - + + #### Options - `checkConstructors` - A value indicating whether `constructor`s should @@ -20791,8 +20870,8 @@ for our desire for a separate tag to document rejection types and see [this discussion](https://stackoverflow.com/questions/50071115/typescript-promise-rejection-type) on why TypeScript doesn't offer such a feature. - - + + #### Options - `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the @@ -21096,8 +21175,8 @@ Will also report if multiple `@yields` tags are present. See the `next`, `forceRequireNext`, and `nextWithGeneratorTag` options for an option to expect a non-standard `@next` tag. - - + + #### Options - `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the @@ -21908,8 +21987,8 @@ function bodies. Will also report if multiple `@yields` tags are present. - - + + #### Options - `checkGeneratorsOnly` - Avoids checking the function body and merely insists @@ -22433,12 +22512,12 @@ line break setting this rule will attempt to do when not disabled. You may, however, safely set the "any" option in that rule along with `startLines` and/or `endLines`. - - + + #### Options - - + + ##### tagSequence An array of tag group objects indicating the preferred sequence for sorting tags. @@ -22622,8 +22701,8 @@ a fixed order that doesn't change into the future, supply your own ]}]; ``` - - + + ##### alphabetizeExtras Defaults to `false`. Alphabetizes any items not within `tagSequence` after any @@ -22633,16 +22712,16 @@ are sorted. If you want all your tags alphabetized, you can supply an empty array for `tagSequence` along with setting this option to `true`. - - + + ##### linesBetween Indicates the number of lines to be added between tag groups. Defaults to 1. Do not set to 0 or 2+ if you are using `tag-lines` and `"always"` and do not set to 1+ if you are using `tag-lines` and `"never"`. - - + + ##### reportTagGroupSpacing Whether to enable reporting and fixing of line breaks between tag groups @@ -22650,8 +22729,8 @@ as set by `linesBetween`. Defaults to `true`. Note that the very last tag will not have spacing applied regardless. For adding line breaks there, you may wish to use the `endLines` option of the `tag-lines` rule. - - + + ##### reportIntraTagGroupSpacing Whether to enable reporting and fixing of line breaks within tags of a given @@ -23029,8 +23108,8 @@ The "always" or "never" options of this rule should not be used with the linebreak-setting options of the `sort-tags` rule as both may try to impose a conflicting number of lines. - - + + #### Options The first option is a single string set to "always", "never", or "any" @@ -23044,36 +23123,36 @@ between tags. The second option is an object with the following optional properties. - - + + ##### count (defaults to 1) Use with "always" to indicate the number of lines to require be present. - - + + ##### applyToEndTag (defaults to true) Set to `false` and use with "always" to indicate the normal lines to be added after tags should not be added after the final tag. - - + + ##### startLines (defaults to 0) If not set to `null`, will enforce end lines to the given count before the first tag only, unless there is only whitespace content, in which case, a line count will not be enforced. - - + + ##### endLines (defaults to 0) If not set to `null`, will enforce end lines to the given count on the final tag only. - - + + ##### tags (default to empty object) Overrides the default behavior depending on specific tags. @@ -23548,19 +23627,19 @@ Markdown and you therefore do not wish for it to be accidentally interpreted as such by the likes of Visual Studio Code or if you wish to view it escaped within it or your documentation. - - + + #### Options - - + + ##### escapeHTML This option escapes all `<` and `&` characters (except those followed by whitespace which are treated as literals by Visual Studio Code). - - + + ##### escapeMarkdown This option escapes the first backtick (`` ` ``) in a paired sequence. @@ -23767,8 +23846,8 @@ for valid types (based on the tag's `type` value), and either portion checked for presence (based on `false` `name` or `type` values or their `required` value). See the setting for more details. - - + + #### Options - `allowEmptyNamepaths` (default: true) - Set to `false` to bulk disallow diff --git a/src/index.js b/src/index.js index 2964dced5..257f0245c 100644 --- a/src/index.js +++ b/src/index.js @@ -17,6 +17,7 @@ import matchName from './rules/matchName'; import multilineBlocks from './rules/multilineBlocks'; import noBadBlocks from './rules/noBadBlocks'; import noBlankBlockDescriptions from './rules/noBlankBlockDescriptions'; +import noBlankBlocks from './rules/noBlankBlocks'; import noDefaults from './rules/noDefaults'; import noMissingSyntax from './rules/noMissingSyntax'; import noMultiAsterisks from './rules/noMultiAsterisks'; @@ -72,6 +73,7 @@ const index = { 'multiline-blocks': multilineBlocks, 'no-bad-blocks': noBadBlocks, 'no-blank-block-descriptions': noBlankBlockDescriptions, + 'no-blank-blocks': noBlankBlocks, 'no-defaults': noDefaults, 'no-missing-syntax': noMissingSyntax, 'no-multi-asterisks': noMultiAsterisks, @@ -132,6 +134,7 @@ const createRecommendedRuleset = (warnOrError) => { 'jsdoc/multiline-blocks': warnOrError, 'jsdoc/no-bad-blocks': 'off', 'jsdoc/no-blank-block-descriptions': 'off', + 'jsdoc/no-blank-blocks': 'off', 'jsdoc/no-defaults': 'off', 'jsdoc/no-missing-syntax': 'off', 'jsdoc/no-multi-asterisks': warnOrError, diff --git a/src/rules/noBlankBlocks.js b/src/rules/noBlankBlocks.js new file mode 100644 index 000000000..28f5e88cc --- /dev/null +++ b/src/rules/noBlankBlocks.js @@ -0,0 +1,53 @@ +import iterateJsdoc from '../iterateJsdoc'; + +export default iterateJsdoc(({ + context, + jsdoc, + utils, +}) => { + if (jsdoc.tags.length) { + return; + } + + const { + description, + lastDescriptionLine, + } = utils.getDescription(); + if (description.trim()) { + return; + } + + const { + enableFixer, + } = context.options[0] || {}; + + utils.reportJSDoc( + 'No empty blocks', + { + line: lastDescriptionLine, + }, + enableFixer ? () => { + jsdoc.source.splice(0, jsdoc.source.length); + } : null, + ); +}, { + iterateAllJsdocs: true, + meta: { + docs: { + description: 'Removes empty blocks with nothing but possibly line breaks', + url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-blank-blocks', + }, + fixable: 'code', + schema: [ + { + additionalProperties: false, + properties: { + enableFixer: { + type: 'boolean', + }, + }, + }, + ], + type: 'suggestion', + }, +}); diff --git a/test/rules/assertions/noBlankBlocks.js b/test/rules/assertions/noBlankBlocks.js new file mode 100644 index 000000000..93a8ef7f0 --- /dev/null +++ b/test/rules/assertions/noBlankBlocks.js @@ -0,0 +1,136 @@ +export default { + invalid: [ + { + code: ` + /** */ + `, + errors: [ + { + line: 2, + message: 'No empty blocks', + }, + ], + options: [ + { + enableFixer: true, + }, + ], + output: ` + `, + }, + { + code: ` + /** + */ + `, + errors: [ + { + line: 2, + message: 'No empty blocks', + }, + ], + options: [ + { + enableFixer: true, + }, + ], + output: ` + `, + }, + { + code: ` + /** + * + */ + `, + errors: [ + { + line: 3, + message: 'No empty blocks', + }, + ], + options: [ + { + enableFixer: true, + }, + ], + output: ` + `, + }, + { + code: ` + /** + * + * + */ + `, + errors: [ + { + line: 4, + message: 'No empty blocks', + }, + ], + options: [ + { + enableFixer: true, + }, + ], + output: ` + `, + }, + { + code: ` + /** + * + * + */ + `, + errors: [ + { + line: 4, + message: 'No empty blocks', + }, + ], + options: [ + { + enableFixer: false, + }, + ], + }, + { + code: ` + /** + * + * + */ + `, + errors: [ + { + line: 4, + message: 'No empty blocks', + }, + ], + }, + ], + valid: [ + { + code: ` + /** @tag */ + `, + }, + { + code: ` + /** + * Text + */ + `, + }, + { + code: ` + /** + * @tag + */ + `, + }, + ], +}; diff --git a/test/rules/ruleNames.json b/test/rules/ruleNames.json index f4a84e27d..7cff81eab 100644 --- a/test/rules/ruleNames.json +++ b/test/rules/ruleNames.json @@ -18,6 +18,7 @@ "multiline-blocks", "no-bad-blocks", "no-blank-block-descriptions", + "no-blank-blocks", "no-defaults", "no-missing-syntax", "no-multi-asterisks", From 4f3c48eed95456513c53eacfe61ab5451da1c698 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 21 Apr 2023 07:43:20 -0700 Subject: [PATCH 056/273] fix: tag removal for 0-line tags (if other tags present, only blank out the tag; otherwise, remove to end of block); fixes #1040 --- README.md | 21 +++++++ src/iterateJsdoc.js | 10 ++- test/rules/assertions/checkTagNames.js | 87 ++++++++++++++++++++++++++ 3 files changed, 115 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index cebb03c96..7515c216d 100644 --- a/README.md +++ b/README.md @@ -5013,6 +5013,27 @@ function Test() { } // Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}} // Message: Invalid JSDoc tag (preference). Replace "constructor" JSDoc tag with "class". + +/** @typedef {Object} MyObject + * @property {string} id - my id + */ +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@typedef' is redundant when using a type system. + +/** + * @property {string} id - my id + */ +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@property' is redundant when using a type system. + +/** @typedef {Object} MyObject */ +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@typedef' is redundant when using a type system. + +/** @typedef {Object} MyObject + */ +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@typedef' is redundant when using a type system. ```` The following patterns are not considered problems: diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index a59382bb9..d41ab0fe3 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -407,11 +407,15 @@ const getUtils = ( } = jsdoc.source[spliceIdx].tokens; /* istanbul ignore if -- Currently want to clear entirely if removing tags */ - if (!removeEmptyBlock && (end || delimiter === '/**')) { + if ( + spliceIdx === 0 && jsdoc.tags.length >= 2 || + !removeEmptyBlock && (end || delimiter === '/**') + ) { const { tokens, } = jsdoc.source[spliceIdx]; for (const item of [ + 'postDelimiter', 'tag', 'postTag', 'type', @@ -423,10 +427,10 @@ const getUtils = ( tokens[item] = ''; } } else { - jsdoc.source.splice(spliceIdx, spliceCount - tagSourceOffset); + jsdoc.source.splice(spliceIdx, spliceCount - tagSourceOffset + (spliceIdx ? 0 : jsdoc.source.length)); + tagSource.splice(tagIdx + tagSourceOffset, spliceCount - tagSourceOffset + (spliceIdx ? 0 : jsdoc.source.length)); } - tagSource.splice(tagIdx + tagSourceOffset, spliceCount - tagSourceOffset); lastIndex = sourceIndex; return true; diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index e89d92495..87b2864ab 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -925,6 +925,93 @@ export default { }, }, }, + { + code: ` + /** @typedef {Object} MyObject + * @property {string} id - my id + */ + `, + errors: [ + { + line: 2, + message: '\'@typedef\' is redundant when using a type system.', + }, + { + line: 3, + message: '\'@property\' is redundant when using a type system.', + }, + ], + options: [ + { + typed: true, + }, + ], + output: ` + /** + * @property {string} id - my id + */ + `, + }, + { + code: ` + /** + * @property {string} id - my id + */ + `, + errors: [ + { + line: 3, + message: '\'@property\' is redundant when using a type system.', + }, + ], + options: [ + { + typed: true, + }, + ], + output: ` + /** + * id - my id + */ + `, + }, + { + code: ` + /** @typedef {Object} MyObject */ + `, + errors: [ + { + line: 2, + message: '\'@typedef\' is redundant when using a type system.', + }, + ], + options: [ + { + typed: true, + }, + ], + output: ` + `, + }, + { + code: ` + /** @typedef {Object} MyObject + */ + `, + errors: [ + { + line: 2, + message: '\'@typedef\' is redundant when using a type system.', + }, + ], + options: [ + { + typed: true, + }, + ], + output: ` + `, + }, ], valid: [ { From ed25149f049ecdae3604dc92e961a3cb442796cd Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 24 Apr 2023 15:34:22 -0700 Subject: [PATCH 057/273] docs: multi-document README; fixes #365 ; fixes #886 --- .README/README.md | 516 +- .README/advanced.md | 88 + .README/rules/sort-tags.md | 3 +- .README/settings.md | 326 + README.md | 24451 +--------------- docs/advanced.md | 102 + docs/rules/check-access.md | 178 + docs/rules/check-alignment.md | 147 + docs/rules/check-examples.md | 761 + docs/rules/check-indentation.md | 279 + docs/rules/check-line-alignment.md | 968 + docs/rules/check-param-names.md | 1003 + docs/rules/check-property-names.md | 220 + docs/rules/check-syntax.md | 65 + docs/rules/check-tag-names.md | 1089 + docs/rules/check-types.md | 1168 + docs/rules/check-values.md | 389 + docs/rules/empty-tags.md | 201 + docs/rules/implements-on-classes.md | 202 + docs/rules/informative-docs.md | 382 + docs/rules/match-description.md | 958 + docs/rules/match-name.md | 231 + docs/rules/multiline-blocks.md | 380 + docs/rules/no-bad-blocks.md | 156 + docs/rules/no-blank-block-descriptions.md | 73 + docs/rules/no-blank-blocks.md | 81 + docs/rules/no-defaults.md | 182 + docs/rules/no-missing-syntax.md | 252 + docs/rules/no-multi-asterisks.md | 260 + docs/rules/no-restricted-syntax.md | 342 + docs/rules/no-types.md | 144 + docs/rules/no-undefined-types.md | 713 + docs/rules/require-asterisk-prefix.md | 279 + .../require-description-complete-sentence.md | 568 + docs/rules/require-description.md | 799 + docs/rules/require-example.md | 368 + docs/rules/require-file-overview.md | 300 + ...require-hyphen-before-param-description.md | 235 + docs/rules/require-jsdoc.md | 1802 ++ docs/rules/require-param-description.md | 1780 ++ docs/rules/require-param-name.md | 219 + docs/rules/require-param-type.md | 146 + docs/rules/require-param.md | 208 + docs/rules/require-property-description.md | 112 + docs/rules/require-property-name.md | 73 + docs/rules/require-property-type.md | 64 + docs/rules/require-property.md | 64 + docs/rules/require-returns-check.md | 1148 + docs/rules/require-returns-description.md | 1036 + docs/rules/require-returns-type.md | 164 + docs/rules/require-returns.md | 127 + docs/rules/require-throws.md | 310 + docs/rules/require-yields-check.md | 807 + docs/rules/require-yields.md | 527 + docs/rules/sort-tags.md | 607 + docs/rules/tag-lines.md | 523 + docs/rules/text-escaping.md | 152 + docs/rules/valid-types.md | 815 + docs/settings.md | 355 + package.json | 4 +- src/bin/generateDocs.js | 256 + src/bin/generateReadme.js | 167 - 62 files changed, 25304 insertions(+), 25021 deletions(-) create mode 100644 .README/advanced.md create mode 100644 .README/settings.md create mode 100644 docs/advanced.md create mode 100644 docs/rules/check-access.md create mode 100644 docs/rules/check-alignment.md create mode 100644 docs/rules/check-examples.md create mode 100644 docs/rules/check-indentation.md create mode 100644 docs/rules/check-line-alignment.md create mode 100644 docs/rules/check-param-names.md create mode 100644 docs/rules/check-property-names.md create mode 100644 docs/rules/check-syntax.md create mode 100644 docs/rules/check-tag-names.md create mode 100644 docs/rules/check-types.md create mode 100644 docs/rules/check-values.md create mode 100644 docs/rules/empty-tags.md create mode 100644 docs/rules/implements-on-classes.md create mode 100644 docs/rules/informative-docs.md create mode 100644 docs/rules/match-description.md create mode 100644 docs/rules/match-name.md create mode 100644 docs/rules/multiline-blocks.md create mode 100644 docs/rules/no-bad-blocks.md create mode 100644 docs/rules/no-blank-block-descriptions.md create mode 100644 docs/rules/no-blank-blocks.md create mode 100644 docs/rules/no-defaults.md create mode 100644 docs/rules/no-missing-syntax.md create mode 100644 docs/rules/no-multi-asterisks.md create mode 100644 docs/rules/no-restricted-syntax.md create mode 100644 docs/rules/no-types.md create mode 100644 docs/rules/no-undefined-types.md create mode 100644 docs/rules/require-asterisk-prefix.md create mode 100644 docs/rules/require-description-complete-sentence.md create mode 100644 docs/rules/require-description.md create mode 100644 docs/rules/require-example.md create mode 100644 docs/rules/require-file-overview.md create mode 100644 docs/rules/require-hyphen-before-param-description.md create mode 100644 docs/rules/require-jsdoc.md create mode 100644 docs/rules/require-param-description.md create mode 100644 docs/rules/require-param-name.md create mode 100644 docs/rules/require-param-type.md create mode 100644 docs/rules/require-param.md create mode 100644 docs/rules/require-property-description.md create mode 100644 docs/rules/require-property-name.md create mode 100644 docs/rules/require-property-type.md create mode 100644 docs/rules/require-property.md create mode 100644 docs/rules/require-returns-check.md create mode 100644 docs/rules/require-returns-description.md create mode 100644 docs/rules/require-returns-type.md create mode 100644 docs/rules/require-returns.md create mode 100644 docs/rules/require-throws.md create mode 100644 docs/rules/require-yields-check.md create mode 100644 docs/rules/require-yields.md create mode 100644 docs/rules/sort-tags.md create mode 100644 docs/rules/tag-lines.md create mode 100644 docs/rules/text-escaping.md create mode 100644 docs/rules/valid-types.md create mode 100644 docs/settings.md create mode 100644 src/bin/generateDocs.js delete mode 100644 src/bin/generateReadme.js diff --git a/.README/README.md b/.README/README.md index 6ef0f05f2..5a241d1e5 100644 --- a/.README/README.md +++ b/.README/README.md @@ -177,467 +177,67 @@ object supplied as the second argument in an array after the error level ## Settings -### Allow tags (`@private` or `@internal`) to disable rules for that comment block - -- `settings.jsdoc.ignorePrivate` - Disables all rules for the comment block - on which a `@private` tag (or `@access private`) occurs. Defaults to - `false`. Note: This has no effect with the rule `check-access` (whose - purpose is to check access modifiers) or `empty-tags` (which checks - `@private` itself). -- `settings.jsdoc.ignoreInternal` - Disables all rules for the comment block - on which a `@internal` tag occurs. Defaults to `false`. Note: This has no - effect with the rule `empty-tags` (which checks `@internal` itself). - -### `maxLines` and `minLines` - -One can use `minLines` and `maxLines` to indicate how many line breaks -(if any) will be checked to find a jsdoc comment block before the given -code block. These settings default to `0` and `1` respectively. - -In conjunction with the `require-jsdoc` rule, these settings can -be enforced so as to report problems if a jsdoc block is not found within -the specified boundaries. The settings are also used in the fixer to determine -how many line breaks to add when a block is missing. - -### Mode - -- `settings.jsdoc.mode` - Set to `typescript`, `closure`, or `jsdoc` (the - default unless the `@typescript-eslint` parser is in use in which case - `typescript` will be the default). - Note that if you do not wish to use separate `.eslintrc.*` files for a - project containing both JavaScript and TypeScript, you can also use - [`overrides`](https://eslint.org/docs/user-guide/configuring). You may also - set to `"permissive"` to try to be as accommodating to any of the styles, - but this is not recommended. Currently is used for the following: - - `check-tag-names`: Determine valid tags and aliases - - `no-undefined-types`: Only check `@template` for types in "closure" and - "typescript" modes - - `check-syntax`: determines aspects that may be enforced - - `valid-types`: in non-Closure mode, `@extends`, `@package` and access tags - (e.g., `@private`) with a bracketed type are reported as are missing - names with `@typedef` - - For type/namepath-checking rules, determine which tags will be checked for - types/namepaths (Closure allows types on some tags which the others do not, - so these tags will additionally be checked in "closure" mode) - - For type-checking rules, impacts parsing of types (through - [jsdoc-type-pratt-parser](https://github.com/simonseyock/jsdoc-type-pratt-parser) - dependency) - - Check preferred tag names - - Disallows namepath on `@interface` for "closure" mode in `valid-types` (and - avoids checking in other rules) - -### Alias Preference - -Use `settings.jsdoc.tagNamePreference` to configure a preferred alias name for -a JSDoc tag. The format of the configuration is: -`: `, e.g. - -```json -{ - "rules": {}, - "settings": { - "jsdoc": { - "tagNamePreference": { - "param": "arg", - "returns": "return" - } - } - } -} -``` - -Note: ESLint does not allow settings to have keys which conflict with -`Object.prototype` e.g. `'constructor'`. To work around this, you can use the -key `'tag constructor'`. - -One may also use an object with a `message` and `replacement`. - -The following will report the message -`@extends is to be used over @augments as it is more evocative of classes than @augments` -upon encountering `@augments`. - -```json -{ - "rules": {}, - "settings": { - "jsdoc": { - "tagNamePreference": { - "augments": { - "message": "@extends is to be used over @augments as it is more evocative of classes than @augments", - "replacement": "extends" - } - } - } - } -} -``` - -If one wishes to reject a normally valid tag, e.g., `@todo`, one may set the -tag to `false`: - -```json -{ - "rules": {}, - "settings": { - "jsdoc": { - "tagNamePreference": { - "todo": false - } - } - } -} -``` - -A project wishing to ensure no blocks are left excluded from entering the -documentation, might wish to prevent the `@ignore` tag in the above manner. - -Or one may set the targeted tag to an object with a custom `message`, but -without a `replacement` property: - -```json -{ - "rules": {}, - "settings": { - "jsdoc": { - "tagNamePreference": { - "todo": { - "message": "We expect immediate perfection, so don't leave to-dos in your code." - } - } - } - } -} -``` - -Note that the preferred tags indicated in the -`settings.jsdoc.tagNamePreference` map will be assumed to be defined by -`check-tag-names`. - -See `check-tag-names` for how that fact can be used to set an alias to itself -to allow both the alias and the default (since aliases are otherwise not -permitted unless used in `tagNamePreference`). - -#### Default Preferred Aliases - -The defaults in `eslint-plugin-jsdoc` (for tags which offer -aliases) are as follows: - -- `@abstract` (over `@virtual`) -- `@augments` (over `@extends`) -- `@class` (over `@constructor`) -- `@constant` (over `@const`) -- `@default` (over `@defaultvalue`) -- `@description` (over `@desc`) -- `@external` (over `@host`) -- `@file` (over `@fileoverview`, `@overview`) -- `@fires` (over `@emits`) -- `@function` (over `@func`, `@method`) -- `@member` (over `@var`) -- `@param` (over `@arg`, `@argument`) -- `@property` (over `@prop`) -- `@returns` (over `@return`) -- `@throws` (over `@exception`) -- `@yields` (over `@yield`) - -This setting is utilized by the the rule for tag name checking -(`check-tag-names`) as well as in the `@param` and `@require` rules: - -- `check-param-names` -- `check-tag-names` -- `require-hyphen-before-param-description` -- `require-description` -- `require-param` -- `require-param-description` -- `require-param-name` -- `require-param-type` -- `require-returns` -- `require-returns-check` -- `require-returns-description` -- `require-returns-type` - -### `@override`/`@augments`/`@extends`/`@implements`/`@ignore` Without Accompanying `@param`/`@description`/`@example`/`@returns`/`@throws`/`@yields` - -The following settings allows the element(s) they reference to be omitted -on the JSDoc comment block of the function or that of its parent class -for any of the "require" rules (i.e., `require-param`, `require-description`, -`require-example`, `require-returns`, `require-throws`, `require-yields`). - -* `settings.jsdoc.ignoreReplacesDocs` (`@ignore`) - Defaults to `true` -* `settings.jsdoc.overrideReplacesDocs` (`@override`) - Defaults to `true` -* `settings.jsdoc.augmentsExtendsReplacesDocs` (`@augments` or its alias - `@extends`) - Defaults to `false`. -* `settings.jsdoc.implementsReplacesDocs` (`@implements`) - Defaults to `false` - -The format of the configuration is as follows: - -```json -{ - "rules": {}, - "settings": { - "jsdoc": { - "ignoreReplacesDocs": true, - "overrideReplacesDocs": true, - "augmentsExtendsReplacesDocs": true, - "implementsReplacesDocs": true - } - } -} -``` - -### Settings to Configure `check-types` and `no-undefined-types` - -- `settings.jsdoc.preferredTypes` An option map to indicate preferred - or forbidden types (if default types are indicated here, these will - have precedence over the default recommendations for `check-types`). - The keys of this map are the types to be replaced (or forbidden). - These keys may include: - 1. The "ANY" type, `*` - 1. The pseudo-type `[]` which we use to denote the parent (array) - types used in the syntax `string[]`, `number[]`, etc. - 1. The pseudo-type `.<>` (or `.`) to represent the format `Array.` - or `Object.` - 1. The pseudo-type `<>` to represent the format `Array` or - `Object` - 1. A plain string type, e.g., `MyType` - 1. A plain string type followed by one of the above pseudo-types (except - for `[]` which is always assumed to be an `Array`), e.g., `Array.`, or - `SpecialObject<>`. - - If a bare pseudo-type is used, it will match all parent types of that form. - If a pseudo-type prefixed with a type name is used, it will only match - parent types of that form and type name. - - The values can be: - - `false` to forbid the type - - a string to indicate the type that should be preferred in its place - (and which `fix` mode can replace); this can be one of the formats - of the keys described above. - - Note that the format will not be changed unless you use a pseudo-type - in the replacement. (For example, `'Array.<>': 'MyArray'` will change - `Array.` to `MyArray.`, preserving the dot. To get rid - of the dot, you must use the pseudo-type with `<>`, i.e., - `'Array.<>': 'MyArray<>'`, which will change `Array.` to - `MyArray`). - - If you use a _bare_ pseudo-type in the replacement (e.g., - `'MyArray.<>': '<>'`), the type will be converted to the format - of the pseudo-type without changing the type name. For example, - `MyArray.` will become `MyArray` but `Array.` - will not be modified. - - an object with: - - the key `message` to provide a specific error message - when encountering the discouraged type. - - The message string will have the substrings with special meaning, - `{{tagName}}` and `{{tagValue}}`, replaced with their - corresponding value. - - an optional key `replacement` with either of the following values: - - a string type to be preferred in its place (and which `fix` mode - can replace) - - `false` (for forbidding the type) - - an optional key `skipRootChecking` (for `check-types`) to allow for this - type in the context of a root (i.e., a parent object of some child type) - -Note that the preferred types indicated as targets in -`settings.jsdoc.preferredTypes` map will be assumed to be defined by -`no-undefined-types`. - -See the option of `check-types`, `unifyParentAndChildTypeChecks`, for -how the keys of `preferredTypes` may have `<>` or `.<>` (or just `.`) -appended and its bearing on whether types are checked as parents/children -only (e.g., to match `Array` if the type is `Array` vs. `Array.`). - -Note that if a value is present both as a key and as a value, neither the -key nor the value will be reported. Thus in `check-types`, this fact can -be used to allow both `object` and `Object` if one has a `preferredTypes` -key `object: 'Object'` and `Object: 'object'`. - -### `structuredTags` - -An object indicating tags whose types and names/namepaths (whether defining or -referencing namepaths) will be checked, subject to configuration. If the tags -have predefined behavior or `allowEmptyNamepaths` behavior, this option will -override that behavior for any specified tags, though this option can also be -used for tags without predefined behavior. Its keys are tag names and its -values are objects with the following optional properties: - - `name` - String set to one of the following: - - `"text"` - When a name is present, plain text will be allowed in the - name position (non-whitespace immediately after the tag and whitespace), - e.g., in `@throws This is an error`, "This" would normally be the name, - but "text" allows non-name text here also. This is the default. - - `"namepath-defining"` - As with `namepath-referencing`, but also - indicates the tag adds a namepath to definitions, e.g., to prevent - `no-undefined-types` from reporting references to that namepath. - - `"namepath-referencing"` - This will cause any name position to be - checked to ensure it is a valid namepath. You might use this to ensure - that tags which normally allow free text, e.g., `@see` will instead - require a namepath. - - `false` - This will disallow any text in the name position. - - `type`: - - `true` - Allows valid types within brackets. This is the default. - - `false` - Explicitly disallows any brackets or bracketed type. You - might use this with `@throws` to suggest that only free form text - is being input or with `@augments` (for jsdoc mode) to disallow - Closure-style bracketed usage along with a required namepath. - - (An array of strings) - A list of permissible types. - - `required` - Array of one of the following (defaults to an empty array, - meaning none are required): - - One or both of the following strings (if both are included, then both - are required): - - `"name"` - Indicates that a name position is required (not just that - if present, it is a valid namepath). You might use this with `see` - to insist that a value (or namepath, depending on the `name` value) - is always present. - - `"type"` - Indicates that the type position (within curly brackets) - is required (not just that if present, it is a valid type). You - might use this with `@throws` or `@typedef` which might otherwise - normally have their types optional. See the type groups 3-5 above. - - `"typeOrName"` - Must have either type (e.g., `@throws {aType}`) or - name (`@throws Some text`); does not require that both exist but - disallows just an empty tag. - -### `contexts` - -`settings.jsdoc.contexts` can be used as the default for any rules -with a `contexts` property option. See the "AST and Selectors" section -for more on this format. +See [Settings](./docs/settings.md#readme). ## Advanced -### AST and Selectors - -For various rules, one can add to the environments to which the rule applies -by using the `contexts` option. - -This option works with [ESLint's selectors](https://eslint.org/docs/developer-guide/selectors) which are [esquery](https://github.com/estools/esquery/#readme) -expressions one may use to target a specific node type or types, including -subsets of the type(s) such as nodes with certain children or attributes. - -These expressions are used within ESLint plugins to find those parts of -your files' code which are of interest to check. However, in -`eslint-plugin-jsdoc`, we also allow you to use these selectors to define -additional contexts where you wish our own rules to be applied. - -#### `contexts` format - -While at their simplest, these can be an array of string selectors, one can -also supply an object with `context` (in place of the string) and one of two -properties: - -1. For `require-jsdoc`, there are also `inlineCommentBlock` and - `minLineCount` properties. See that rule for details. -1. For `no-missing-syntax` and `no-restricted-syntax`, there is also a - `message` property which allows customization of the message to be shown - when the rule is triggered. -1. For `no-missing-syntax`, there is also a `minimum` property. See that rule. -1. For other rules, there is a `comment` property which adds to the `context` - in requiring that the `comment` AST condition is also met, e.g., to - require that certain tags are present and/or or types and type operators - are in use. Note that this AST (either for `Jsdoc*` or `JsdocType*` AST) - has not been standardized and should be considered experimental. - Note that this property might also become obsolete if parsers begin to - include JSDoc-structured AST. A - [parser](https://github.com/brettz9/jsdoc-eslint-parser/) is available - which aims to support comment AST as - a first class citizen where comment/comment types can be used anywhere - within a normal AST selector but this should only be considered - experimental. When using such a parser, you need not use `comment` and - can just use a plain string context. The determination of the node on - which the comment is attached is based more on actual location than - semantics (e.g., it will be attached to a `VariableDeclaration` if above - that rather than to the `FunctionExpression` it is fundamentally - describing). See - [@es-joy/jsdoccomment](https://github.com/es-joy/jsdoccomment) - for the precise structure of the comment (and comment type) nodes. - -#### Discovering available AST definitions - -To know all of the AST definitions one may target, it will depend on the -[parser](https://eslint.org/docs/user-guide/configuring#specifying-parser) -you are using with ESLint (e.g., `espree` is the default parser for ESLint, -and this follows [EStree AST](https://github.com/estree/estree) but -to support the the latest experimental features of JavaScript, one may use -`@babel/eslint-parser` or to be able to have one's rules (including JSDoc rules) -apply to TypeScript, one may use `@typescript-eslint/parser`, etc. - -So you can look up a particular parser to see its rules, e.g., browse through -the [ESTree docs](https://github.com/estree/estree) as used by Espree or see -ESLint's [overview of the structure of AST](https://eslint.org/docs/developer-guide/working-with-custom-parsers#the-ast-specification). - -However, it can sometimes be even more helpful to get an idea of AST by just -providing some of your JavaScript to the wonderful -[AST Explorer](https://astexplorer.net/) tool and see what AST is built out -of your code. You can set the tool to the specific parser which you are using. - -#### Uses/Tips for AST - -And if you wish to introspect on the AST of code within your projects, you can -use [eslint-plugin-query](https://github.com/brettz9/eslint-plugin-query). -Though it also works as a plugin, you can use it with its own CLI, e.g., -to search your files for matching esquery selectors, optionally showing -it as AST JSON. - -Tip: If you want to more deeply understand not just the resulting AST tree -structures for any given code but also the syntax for esquery selectors so -that you can, for example, find only those nodes with a child of a certain -type, you can set the "Transform" feature to ESLint and test out -esquery selectors in place of the selector expression (e.g., replace -`'VariableDeclaration > VariableDeclarator > Identifier[name="someVar"]'` as -we have -[here](https://astexplorer.net/#/gist/71a93130c19599d6f197bddb29c13a59/latest)) -to the selector you wish so as to get messages reported in the bottom right -pane which match your [esquery](https://github.com/estools/esquery/#readme) -selector). +See [Advanced](./docs/advanced.md#readme). ## Rules -{"gitdown": "include", "file": "./rules/check-access.md"} -{"gitdown": "include", "file": "./rules/check-alignment.md"} -{"gitdown": "include", "file": "./rules/check-examples.md"} -{"gitdown": "include", "file": "./rules/check-indentation.md"} -{"gitdown": "include", "file": "./rules/check-line-alignment.md"} -{"gitdown": "include", "file": "./rules/check-param-names.md"} -{"gitdown": "include", "file": "./rules/check-property-names.md"} -{"gitdown": "include", "file": "./rules/check-syntax.md"} -{"gitdown": "include", "file": "./rules/check-tag-names.md"} -{"gitdown": "include", "file": "./rules/check-types.md"} -{"gitdown": "include", "file": "./rules/check-values.md"} -{"gitdown": "include", "file": "./rules/empty-tags.md"} -{"gitdown": "include", "file": "./rules/implements-on-classes.md"} -{"gitdown": "include", "file": "./rules/informative-docs.md"} -{"gitdown": "include", "file": "./rules/match-description.md"} -{"gitdown": "include", "file": "./rules/match-name.md"} -{"gitdown": "include", "file": "./rules/multiline-blocks.md"} -{"gitdown": "include", "file": "./rules/no-bad-blocks.md"} -{"gitdown": "include", "file": "./rules/no-blank-block-descriptions.md"} -{"gitdown": "include", "file": "./rules/no-blank-blocks.md"} -{"gitdown": "include", "file": "./rules/no-defaults.md"} -{"gitdown": "include", "file": "./rules/no-missing-syntax.md"} -{"gitdown": "include", "file": "./rules/no-multi-asterisks.md"} -{"gitdown": "include", "file": "./rules/no-restricted-syntax.md"} -{"gitdown": "include", "file": "./rules/no-types.md"} -{"gitdown": "include", "file": "./rules/no-undefined-types.md"} -{"gitdown": "include", "file": "./rules/require-asterisk-prefix.md"} -{"gitdown": "include", "file": "./rules/require-description-complete-sentence.md"} -{"gitdown": "include", "file": "./rules/require-description.md"} -{"gitdown": "include", "file": "./rules/require-example.md"} -{"gitdown": "include", "file": "./rules/require-file-overview.md"} -{"gitdown": "include", "file": "./rules/require-hyphen-before-param-description.md"} -{"gitdown": "include", "file": "./rules/require-jsdoc.md"} -{"gitdown": "include", "file": "./rules/require-param-description.md"} -{"gitdown": "include", "file": "./rules/require-param-name.md"} -{"gitdown": "include", "file": "./rules/require-param-type.md"} -{"gitdown": "include", "file": "./rules/require-param.md"} -{"gitdown": "include", "file": "./rules/require-property.md"} -{"gitdown": "include", "file": "./rules/require-property-description.md"} -{"gitdown": "include", "file": "./rules/require-property-name.md"} -{"gitdown": "include", "file": "./rules/require-property-type.md"} -{"gitdown": "include", "file": "./rules/require-returns-check.md"} -{"gitdown": "include", "file": "./rules/require-returns-description.md"} -{"gitdown": "include", "file": "./rules/require-returns-type.md"} -{"gitdown": "include", "file": "./rules/require-returns.md"} -{"gitdown": "include", "file": "./rules/require-throws.md"} -{"gitdown": "include", "file": "./rules/require-yields.md"} -{"gitdown": "include", "file": "./rules/require-yields-check.md"} -{"gitdown": "include", "file": "./rules/sort-tags.md"} -{"gitdown": "include", "file": "./rules/tag-lines.md"} -{"gitdown": "include", "file": "./rules/text-escaping.md"} -{"gitdown": "include", "file": "./rules/valid-types.md"} +Problems reported by rules which have a wrench :wrench: below can be fixed automatically by running ESLint on the command line with `--fix` option. + +|recommended|fixable|rule|description| +|-|-|-|-| +|:heavy_check_mark:|| [check-access](./docs/rules/check-access.md#readme) | Enforces valid `@access` tags| +|:heavy_check_mark:|:wrench:| [check-alignment](./docs/rules/check-alignment.md#readme)|Enforces alignment of JSDoc block asterisks| +|||[check-examples](./docs/rules/check-examples.md#readme)|Linting of JavaScript within `@example`| +|||[check-indentation](./docs/rules/check-indentation.md#readme)|Checks for invalid padding inside JSDoc blocks| +||:wrench:|[check-line-alignment](./docs/rules/check-line-alignment.md#readme)|Reports invalid alignment of JSDoc block lines.| +|:heavy_check_mark:|:wrench:|[check-param-names](./docs/rules/check-param-names.md#readme)|Checks for dupe `@param` names, that nested param names have roots, and that parameter names in function declarations match jsdoc param names.| +|:heavy_check_mark:|:wrench:|[check-property-names](./docs/rules/check-property-names.md#readme)|Checks for dupe `@property` names, that nested property names have roots| +|||[check-syntax](./docs/rules/check-syntax.md#readme)|Reports use against current mode (currently only prohibits Closure-specific syntax)| +|:heavy_check_mark:|:wrench:|[check-tag-names](./docs/rules/check-tag-names.md#readme)|Reports invalid jsdoc (block) tag names| +|:heavy_check_mark:|:wrench:|[check-types](./docs/rules/check-types.md#readme)|Reports types deemed invalid (customizable and with defaults, for preventing and/or recommending replacements)| +|:heavy_check_mark:||[check-values](./docs/rules/check-values.md#readme)|Checks for expected content within some miscellaneous tags (`@version`, `@since`, `@license`, `@author`)| +|:heavy_check_mark:|:wrench:|[empty-tags](./docs/rules/empty-tags.md#readme)|Checks tags that are expected to be empty (e.g., `@abstract` or `@async`), reporting if they have content| +|:heavy_check_mark:||[implements-on-classes](./docs/rules/implements-on-classes.md#readme)|Prohibits use of `@implements` on non-constructor functions (to enforce the tag only being used on classes/constructors)| +|||[informative-docs](./docs/rules/informative-docs.md#readme)|Reports on JSDoc texts that serve only to restart their attached name.| +|||[match-description](./docs/rules/match-description.md#readme)|Defines customizable regular expression rules for your tag descriptions| +||:wrench:|[match-name](./docs/rules/match-name.md#readme)|Reports the name portion of a JSDoc tag if matching or not matching a given regular expression| +|:heavy_check_mark:|:wrench:|[multiline-blocks](./docs/rules/multiline-blocks.md#readme)|Controls how and whether jsdoc blocks can be expressed as single or multiple line blocks| +||:wrench:|[no-bad-blocks](./docs/rules/no-bad-blocks.md#readme)|This rule checks for multi-line-style comments which fail to meet the criteria of a jsdoc block| +||:wrench:|[no-blank-block-descriptions](./docs/rules/no-blank-block-descriptions.md#readme)|If tags are present, this rule will prevent empty lines in the block description. If no tags are present, this rule will prevent extra empty lines in the block description.| +||:wrench:|[no-blank-blocks](./docs/rules/no-blank-blocks.md#readme)|Reports and optionally removes blocks with whitespace only| +||:wrench:|[no-defaults](./docs/rules/no-defaults.md#readme)|This rule reports defaults being used on the relevant portion of `@param` or `@default`| +|||[no-missing-syntax](./docs/rules/no-missing-syntax.md#readme)|This rule lets you report if certain always expected comment structures are missing.| +|:heavy_check_mark:|:wrench:|[no-multi-asterisks](./docs/rules/no-multi-asterisks.md#readme)|Prevents use of multiple asterisks at the beginning of lines| +|||[no-restricted-syntax](./docs/rules/no-restricted-syntax.md#readme)|Reports when certain comment structures are present| +||:wrench:|[no-types](./docs/rules/no-types.md#readme)|Prohibits types on `@param` or `@returns` (redundant with TypeScript)| +|:heavy_check_mark:||[no-undefined-types](./docs/rules/no-undefined-types.md#readme)|Besides some expected built-in types, prohibits any types not specified as globals or within `@typedef` | +||:wrench:|[require-asterisk-prefix](./docs/rules/require-asterisk-prefix.md#readme)|Requires that each JSDoc line starts with an `*`| +|||[require-description](./docs/rules/require-description.md#readme)|Requires that all functions (and potentially other contexts) have a description.| +||:wrench:|[require-description-complete-sentence](./docs/rules/require-description-complete-sentence.md#readme)|Requires that block description, explicit `@description`, and `@param`/`@returns` tag descriptions are written in complete sentences| +||:wrench:|[require-example](./docs/rules/require-example.md#readme)|Requires that all functions (and potentially other contexts) have examples.| +|||[require-file-overview](./docs/rules/require-file-overview.md#readme)|By default, requires a single `@file` tag at the beginning of each linted file| +||:wrench:|[require-hyphen-before-param-description](./docs/rules/require-hyphen-before-param-description.md#readme)|Requires a hyphen before `@param` descriptions (and optionally before `@property` descriptions)| +|:heavy_check_mark:|:wrench:|[require-jsdoc](./docs/rules/require-jsdoc.md#readme)|Checks for presence of jsdoc comments, on functions and potentially other contexts (optionally limited to exports).| +|:heavy_check_mark:|:wrench:|[require-param](./docs/rules/require-param.md#readme)|Requires that all function parameters are documented with a `@param` tag.| +|:heavy_check_mark:||[require-param-description](./docs/rules/require-param-description.md#readme)|Requires that each `@param` tag has a `description` value.| +|:heavy_check_mark:||[require-param-name](./docs/rules/require-param-name.md#readme)|Requires that all `@param` tags have names.| +|:heavy_check_mark:||[require-param-type](./docs/rules/require-param-type.md#readme)|Requires that each `@param` tag has a type value (within curly brackets).| +|:heavy_check_mark:|:wrench:|[require-property](./docs/rules/require-property.md#readme)|Requires that all `@typedef` and `@namespace` tags have `@property` tags when their type is a plain `object`, `Object`, or `PlainObject`.| +|:heavy_check_mark:||[require-property-description](./docs/rules/require-property-description.md#readme)|Requires that each `@property` tag has a `description` value.| +|:heavy_check_mark:||[require-property-name](./docs/rules/require-property-name.md#readme)|Requires that all `@property` tags have names.| +|:heavy_check_mark:||[require-property-type](./docs/rules/require-property-type.md#readme)|Requires that each `@property` tag has a type value (within curly brackets).| +|:heavy_check_mark:||[require-returns](./docs/rules/require-returns.md#readme)|Requires that return statements are documented.| +|:heavy_check_mark:||[require-returns-check](./docs/rules/require-returns-check.md#readme)|Requires a return statement be present in a function body if a `@returns` tag is specified in the jsdoc comment block (and reports if multiple `@returns` tags are present).| +|:heavy_check_mark:||[require-returns-description](./docs/rules/require-returns-description.md#readme)|Requires that the `@returns` tag has a `description` value (not including `void`/`undefined` type returns).| +|:heavy_check_mark:||[require-returns-type](./docs/rules/require-returns-type.md#readme)|Requires that `@returns` tag has a type value (in curly brackets).| +|||[require-throws](./docs/rules/require-throws.md#readme)|Requires that throw statements are documented| +|:heavy_check_mark:||[require-yields](./docs/rules/require-yields.md#readme)|Requires that yields are documented| +|:heavy_check_mark:||[require-yields-check](./docs/rules/require-yields-check.md#readme)|Ensures that if a `@yields` is present that a `yield` (or `yield` with a value) is present in the function body (or that if a `@next` is present that there is a `yield` with a return value present)| +|||[sort-tags](./docs/rules/sort-tags.md#readme)|Sorts tags by a specified sequence according to tag name, optionally adding line breaks between tag groups| +|:heavy_check_mark:|:wrench:|[tag-lines](./docs/rules/tag-lines.md#readme)|Enforces lines (or no lines) between tags| +||:wrench:|[text-escaping](./docs/rules/text-escaping.md#readme)|This rule can auto-escape certain characters that are input within block and tag descriptions| +|:heavy_check_mark:||[valid-types](./docs/rules/valid-types.md#readme)|Requires all types/namepaths to be valid JSDoc, Closure compiler, or TypeScript types (configurable in settings)| diff --git a/.README/advanced.md b/.README/advanced.md new file mode 100644 index 000000000..70bece04e --- /dev/null +++ b/.README/advanced.md @@ -0,0 +1,88 @@ +## Advanced + +{"gitdown": "contents", "maxLevel": 6, "rootId": "advanced"} + +### AST and Selectors + +For various rules, one can add to the environments to which the rule applies +by using the `contexts` option. + +This option works with [ESLint's selectors](https://eslint.org/docs/developer-guide/selectors) which are [esquery](https://github.com/estools/esquery/#readme) +expressions one may use to target a specific node type or types, including +subsets of the type(s) such as nodes with certain children or attributes. + +These expressions are used within ESLint plugins to find those parts of +your files' code which are of interest to check. However, in +`eslint-plugin-jsdoc`, we also allow you to use these selectors to define +additional contexts where you wish our own rules to be applied. + +#### `contexts` format + +While at their simplest, these can be an array of string selectors, one can +also supply an object with `context` (in place of the string) and one of two +properties: + +1. For `require-jsdoc`, there are also `inlineCommentBlock` and + `minLineCount` properties. See that rule for details. +1. For `no-missing-syntax` and `no-restricted-syntax`, there is also a + `message` property which allows customization of the message to be shown + when the rule is triggered. +1. For `no-missing-syntax`, there is also a `minimum` property. See that rule. +1. For other rules, there is a `comment` property which adds to the `context` + in requiring that the `comment` AST condition is also met, e.g., to + require that certain tags are present and/or or types and type operators + are in use. Note that this AST (either for `Jsdoc*` or `JsdocType*` AST) + has not been standardized and should be considered experimental. + Note that this property might also become obsolete if parsers begin to + include JSDoc-structured AST. A + [parser](https://github.com/brettz9/jsdoc-eslint-parser/) is available + which aims to support comment AST as + a first class citizen where comment/comment types can be used anywhere + within a normal AST selector but this should only be considered + experimental. When using such a parser, you need not use `comment` and + can just use a plain string context. The determination of the node on + which the comment is attached is based more on actual location than + semantics (e.g., it will be attached to a `VariableDeclaration` if above + that rather than to the `FunctionExpression` it is fundamentally + describing). See + [@es-joy/jsdoccomment](https://github.com/es-joy/jsdoccomment) + for the precise structure of the comment (and comment type) nodes. + +#### Discovering available AST definitions + +To know all of the AST definitions one may target, it will depend on the +[parser](https://eslint.org/docs/user-guide/configuring#specifying-parser) +you are using with ESLint (e.g., `espree` is the default parser for ESLint, +and this follows [EStree AST](https://github.com/estree/estree) but +to support the the latest experimental features of JavaScript, one may use +`@babel/eslint-parser` or to be able to have one's rules (including JSDoc rules) +apply to TypeScript, one may use `@typescript-eslint/parser`, etc. + +So you can look up a particular parser to see its rules, e.g., browse through +the [ESTree docs](https://github.com/estree/estree) as used by Espree or see +ESLint's [overview of the structure of AST](https://eslint.org/docs/developer-guide/working-with-custom-parsers#the-ast-specification). + +However, it can sometimes be even more helpful to get an idea of AST by just +providing some of your JavaScript to the wonderful +[AST Explorer](https://astexplorer.net/) tool and see what AST is built out +of your code. You can set the tool to the specific parser which you are using. + +#### Uses/Tips for AST + +And if you wish to introspect on the AST of code within your projects, you can +use [eslint-plugin-query](https://github.com/brettz9/eslint-plugin-query). +Though it also works as a plugin, you can use it with its own CLI, e.g., +to search your files for matching esquery selectors, optionally showing +it as AST JSON. + +Tip: If you want to more deeply understand not just the resulting AST tree +structures for any given code but also the syntax for esquery selectors so +that you can, for example, find only those nodes with a child of a certain +type, you can set the "Transform" feature to ESLint and test out +esquery selectors in place of the selector expression (e.g., replace +`'VariableDeclaration > VariableDeclarator > Identifier[name="someVar"]'` as +we have +[here](https://astexplorer.net/#/gist/71a93130c19599d6f197bddb29c13a59/latest)) +to the selector you wish so as to get messages reported in the bottom right +pane which match your [esquery](https://github.com/estools/esquery/#readme) +selector). diff --git a/.README/rules/sort-tags.md b/.README/rules/sort-tags.md index 957bdcb6d..0e4b0469a 100644 --- a/.README/rules/sort-tags.md +++ b/.README/rules/sort-tags.md @@ -1,6 +1,7 @@ ### `sort-tags` -Sorts tags by a specified sequence according to tag name. +Sorts tags by a specified sequence according to tag name, optionally +adding line breaks between tag groups. (Default order originally inspired by [`@homer0/prettier-plugin-jsdoc`](https://github.com/homer0/packages/tree/main/packages/public/prettier-plugin-jsdoc).) diff --git a/.README/settings.md b/.README/settings.md new file mode 100644 index 000000000..ae107dd6b --- /dev/null +++ b/.README/settings.md @@ -0,0 +1,326 @@ +## Settings + +{"gitdown": "contents", "maxLevel": 6, "rootId": "settings"} + +### Allow tags (`@private` or `@internal`) to disable rules for that comment block + +- `settings.jsdoc.ignorePrivate` - Disables all rules for the comment block + on which a `@private` tag (or `@access private`) occurs. Defaults to + `false`. Note: This has no effect with the rule `check-access` (whose + purpose is to check access modifiers) or `empty-tags` (which checks + `@private` itself). +- `settings.jsdoc.ignoreInternal` - Disables all rules for the comment block + on which a `@internal` tag occurs. Defaults to `false`. Note: This has no + effect with the rule `empty-tags` (which checks `@internal` itself). + +### `maxLines` and `minLines` + +One can use `minLines` and `maxLines` to indicate how many line breaks +(if any) will be checked to find a jsdoc comment block before the given +code block. These settings default to `0` and `1` respectively. + +In conjunction with the `require-jsdoc` rule, these settings can +be enforced so as to report problems if a jsdoc block is not found within +the specified boundaries. The settings are also used in the fixer to determine +how many line breaks to add when a block is missing. + +### Mode + +- `settings.jsdoc.mode` - Set to `typescript`, `closure`, or `jsdoc` (the + default unless the `@typescript-eslint` parser is in use in which case + `typescript` will be the default). + Note that if you do not wish to use separate `.eslintrc.*` files for a + project containing both JavaScript and TypeScript, you can also use + [`overrides`](https://eslint.org/docs/user-guide/configuring). You may also + set to `"permissive"` to try to be as accommodating to any of the styles, + but this is not recommended. Currently is used for the following: + - `check-tag-names`: Determine valid tags and aliases + - `no-undefined-types`: Only check `@template` for types in "closure" and + "typescript" modes + - `check-syntax`: determines aspects that may be enforced + - `valid-types`: in non-Closure mode, `@extends`, `@package` and access tags + (e.g., `@private`) with a bracketed type are reported as are missing + names with `@typedef` + - For type/namepath-checking rules, determine which tags will be checked for + types/namepaths (Closure allows types on some tags which the others do not, + so these tags will additionally be checked in "closure" mode) + - For type-checking rules, impacts parsing of types (through + [jsdoc-type-pratt-parser](https://github.com/simonseyock/jsdoc-type-pratt-parser) + dependency) + - Check preferred tag names + - Disallows namepath on `@interface` for "closure" mode in `valid-types` (and + avoids checking in other rules) + +### Alias Preference + +Use `settings.jsdoc.tagNamePreference` to configure a preferred alias name for +a JSDoc tag. The format of the configuration is: +`: `, e.g. + +```json +{ + "rules": {}, + "settings": { + "jsdoc": { + "tagNamePreference": { + "param": "arg", + "returns": "return" + } + } + } +} +``` + +Note: ESLint does not allow settings to have keys which conflict with +`Object.prototype` e.g. `'constructor'`. To work around this, you can use the +key `'tag constructor'`. + +One may also use an object with a `message` and `replacement`. + +The following will report the message +`@extends is to be used over @augments as it is more evocative of classes than @augments` +upon encountering `@augments`. + +```json +{ + "rules": {}, + "settings": { + "jsdoc": { + "tagNamePreference": { + "augments": { + "message": "@extends is to be used over @augments as it is more evocative of classes than @augments", + "replacement": "extends" + } + } + } + } +} +``` + +If one wishes to reject a normally valid tag, e.g., `@todo`, one may set the +tag to `false`: + +```json +{ + "rules": {}, + "settings": { + "jsdoc": { + "tagNamePreference": { + "todo": false + } + } + } +} +``` + +A project wishing to ensure no blocks are left excluded from entering the +documentation, might wish to prevent the `@ignore` tag in the above manner. + +Or one may set the targeted tag to an object with a custom `message`, but +without a `replacement` property: + +```json +{ + "rules": {}, + "settings": { + "jsdoc": { + "tagNamePreference": { + "todo": { + "message": "We expect immediate perfection, so don't leave to-dos in your code." + } + } + } + } +} +``` + +Note that the preferred tags indicated in the +`settings.jsdoc.tagNamePreference` map will be assumed to be defined by +`check-tag-names`. + +See `check-tag-names` for how that fact can be used to set an alias to itself +to allow both the alias and the default (since aliases are otherwise not +permitted unless used in `tagNamePreference`). + +#### Default Preferred Aliases + +The defaults in `eslint-plugin-jsdoc` (for tags which offer +aliases) are as follows: + +- `@abstract` (over `@virtual`) +- `@augments` (over `@extends`) +- `@class` (over `@constructor`) +- `@constant` (over `@const`) +- `@default` (over `@defaultvalue`) +- `@description` (over `@desc`) +- `@external` (over `@host`) +- `@file` (over `@fileoverview`, `@overview`) +- `@fires` (over `@emits`) +- `@function` (over `@func`, `@method`) +- `@member` (over `@var`) +- `@param` (over `@arg`, `@argument`) +- `@property` (over `@prop`) +- `@returns` (over `@return`) +- `@throws` (over `@exception`) +- `@yields` (over `@yield`) + +This setting is utilized by the the rule for tag name checking +(`check-tag-names`) as well as in the `@param` and `@require` rules: + +- `check-param-names` +- `check-tag-names` +- `require-hyphen-before-param-description` +- `require-description` +- `require-param` +- `require-param-description` +- `require-param-name` +- `require-param-type` +- `require-returns` +- `require-returns-check` +- `require-returns-description` +- `require-returns-type` + +### `@override`/`@augments`/`@extends`/`@implements`/`@ignore` Without Accompanying `@param`/`@description`/`@example`/`@returns`/`@throws`/`@yields` + +The following settings allows the element(s) they reference to be omitted +on the JSDoc comment block of the function or that of its parent class +for any of the "require" rules (i.e., `require-param`, `require-description`, +`require-example`, `require-returns`, `require-throws`, `require-yields`). + +* `settings.jsdoc.ignoreReplacesDocs` (`@ignore`) - Defaults to `true` +* `settings.jsdoc.overrideReplacesDocs` (`@override`) - Defaults to `true` +* `settings.jsdoc.augmentsExtendsReplacesDocs` (`@augments` or its alias + `@extends`) - Defaults to `false`. +* `settings.jsdoc.implementsReplacesDocs` (`@implements`) - Defaults to `false` + +The format of the configuration is as follows: + +```json +{ + "rules": {}, + "settings": { + "jsdoc": { + "ignoreReplacesDocs": true, + "overrideReplacesDocs": true, + "augmentsExtendsReplacesDocs": true, + "implementsReplacesDocs": true + } + } +} +``` + +### Settings to Configure `check-types` and `no-undefined-types` + +- `settings.jsdoc.preferredTypes` An option map to indicate preferred + or forbidden types (if default types are indicated here, these will + have precedence over the default recommendations for `check-types`). + The keys of this map are the types to be replaced (or forbidden). + These keys may include: + 1. The "ANY" type, `*` + 1. The pseudo-type `[]` which we use to denote the parent (array) + types used in the syntax `string[]`, `number[]`, etc. + 1. The pseudo-type `.<>` (or `.`) to represent the format `Array.` + or `Object.` + 1. The pseudo-type `<>` to represent the format `Array` or + `Object` + 1. A plain string type, e.g., `MyType` + 1. A plain string type followed by one of the above pseudo-types (except + for `[]` which is always assumed to be an `Array`), e.g., `Array.`, or + `SpecialObject<>`. + + If a bare pseudo-type is used, it will match all parent types of that form. + If a pseudo-type prefixed with a type name is used, it will only match + parent types of that form and type name. + + The values can be: + - `false` to forbid the type + - a string to indicate the type that should be preferred in its place + (and which `fix` mode can replace); this can be one of the formats + of the keys described above. + - Note that the format will not be changed unless you use a pseudo-type + in the replacement. (For example, `'Array.<>': 'MyArray'` will change + `Array.` to `MyArray.`, preserving the dot. To get rid + of the dot, you must use the pseudo-type with `<>`, i.e., + `'Array.<>': 'MyArray<>'`, which will change `Array.` to + `MyArray`). + - If you use a _bare_ pseudo-type in the replacement (e.g., + `'MyArray.<>': '<>'`), the type will be converted to the format + of the pseudo-type without changing the type name. For example, + `MyArray.` will become `MyArray` but `Array.` + will not be modified. + - an object with: + - the key `message` to provide a specific error message + when encountering the discouraged type. + - The message string will have the substrings with special meaning, + `{{tagName}}` and `{{tagValue}}`, replaced with their + corresponding value. + - an optional key `replacement` with either of the following values: + - a string type to be preferred in its place (and which `fix` mode + can replace) + - `false` (for forbidding the type) + - an optional key `skipRootChecking` (for `check-types`) to allow for this + type in the context of a root (i.e., a parent object of some child type) + +Note that the preferred types indicated as targets in +`settings.jsdoc.preferredTypes` map will be assumed to be defined by +`no-undefined-types`. + +See the option of `check-types`, `unifyParentAndChildTypeChecks`, for +how the keys of `preferredTypes` may have `<>` or `.<>` (or just `.`) +appended and its bearing on whether types are checked as parents/children +only (e.g., to match `Array` if the type is `Array` vs. `Array.`). + +Note that if a value is present both as a key and as a value, neither the +key nor the value will be reported. Thus in `check-types`, this fact can +be used to allow both `object` and `Object` if one has a `preferredTypes` +key `object: 'Object'` and `Object: 'object'`. + +### `structuredTags` + +An object indicating tags whose types and names/namepaths (whether defining or +referencing namepaths) will be checked, subject to configuration. If the tags +have predefined behavior or `allowEmptyNamepaths` behavior, this option will +override that behavior for any specified tags, though this option can also be +used for tags without predefined behavior. Its keys are tag names and its +values are objects with the following optional properties: + - `name` - String set to one of the following: + - `"text"` - When a name is present, plain text will be allowed in the + name position (non-whitespace immediately after the tag and whitespace), + e.g., in `@throws This is an error`, "This" would normally be the name, + but "text" allows non-name text here also. This is the default. + - `"namepath-defining"` - As with `namepath-referencing`, but also + indicates the tag adds a namepath to definitions, e.g., to prevent + `no-undefined-types` from reporting references to that namepath. + - `"namepath-referencing"` - This will cause any name position to be + checked to ensure it is a valid namepath. You might use this to ensure + that tags which normally allow free text, e.g., `@see` will instead + require a namepath. + - `false` - This will disallow any text in the name position. + - `type`: + - `true` - Allows valid types within brackets. This is the default. + - `false` - Explicitly disallows any brackets or bracketed type. You + might use this with `@throws` to suggest that only free form text + is being input or with `@augments` (for jsdoc mode) to disallow + Closure-style bracketed usage along with a required namepath. + - (An array of strings) - A list of permissible types. + - `required` - Array of one of the following (defaults to an empty array, + meaning none are required): + - One or both of the following strings (if both are included, then both + are required): + - `"name"` - Indicates that a name position is required (not just that + if present, it is a valid namepath). You might use this with `see` + to insist that a value (or namepath, depending on the `name` value) + is always present. + - `"type"` - Indicates that the type position (within curly brackets) + is required (not just that if present, it is a valid type). You + might use this with `@throws` or `@typedef` which might otherwise + normally have their types optional. See the type groups 3-5 above. + - `"typeOrName"` - Must have either type (e.g., `@throws {aType}`) or + name (`@throws Some text`); does not require that both exist but + disallows just an empty tag. + +### `contexts` + +`settings.jsdoc.contexts` can be used as the default for any rules +with a `contexts` property option. See the "AST and Selectors" section +for more on this format. diff --git a/README.md b/README.md index 7515c216d..19ed07970 100644 --- a/README.md +++ b/README.md @@ -14,69 +14,8 @@ JSDoc linting rules for ESLint. * [Configuration](#user-content-eslint-plugin-jsdoc-configuration) * [Options](#user-content-eslint-plugin-jsdoc-options) * [Settings](#user-content-eslint-plugin-jsdoc-settings) - * [Allow tags (`@private` or `@internal`) to disable rules for that comment block](#user-content-eslint-plugin-jsdoc-settings-allow-tags-private-or-internal-to-disable-rules-for-that-comment-block) - * [`maxLines` and `minLines`](#user-content-eslint-plugin-jsdoc-settings-maxlines-and-minlines) - * [Mode](#user-content-eslint-plugin-jsdoc-settings-mode) - * [Alias Preference](#user-content-eslint-plugin-jsdoc-settings-alias-preference) - * [`@override`/`@augments`/`@extends`/`@implements`/`@ignore` Without Accompanying `@param`/`@description`/`@example`/`@returns`/`@throws`/`@yields`](#user-content-eslint-plugin-jsdoc-settings-override-augments-extends-implements-ignore-without-accompanying-param-description-example-returns-throws-yields) - * [Settings to Configure `check-types` and `no-undefined-types`](#user-content-eslint-plugin-jsdoc-settings-settings-to-configure-check-types-and-no-undefined-types) - * [`structuredTags`](#user-content-eslint-plugin-jsdoc-settings-structuredtags) - * [`contexts`](#user-content-eslint-plugin-jsdoc-settings-contexts) * [Advanced](#user-content-eslint-plugin-jsdoc-advanced) - * [AST and Selectors](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) * [Rules](#user-content-eslint-plugin-jsdoc-rules) - * [`check-access`](#user-content-eslint-plugin-jsdoc-rules-check-access) - * [`check-alignment`](#user-content-eslint-plugin-jsdoc-rules-check-alignment) - * [`check-examples`](#user-content-eslint-plugin-jsdoc-rules-check-examples) - * [`check-indentation`](#user-content-eslint-plugin-jsdoc-rules-check-indentation) - * [`check-line-alignment`](#user-content-eslint-plugin-jsdoc-rules-check-line-alignment) - * [`check-param-names`](#user-content-eslint-plugin-jsdoc-rules-check-param-names) - * [`check-property-names`](#user-content-eslint-plugin-jsdoc-rules-check-property-names) - * [`check-syntax`](#user-content-eslint-plugin-jsdoc-rules-check-syntax) - * [`check-tag-names`](#user-content-eslint-plugin-jsdoc-rules-check-tag-names) - * [`check-types`](#user-content-eslint-plugin-jsdoc-rules-check-types) - * [`check-values`](#user-content-eslint-plugin-jsdoc-rules-check-values) - * [`empty-tags`](#user-content-eslint-plugin-jsdoc-rules-empty-tags) - * [`implements-on-classes`](#user-content-eslint-plugin-jsdoc-rules-implements-on-classes) - * [`informative-docs`](#user-content-eslint-plugin-jsdoc-rules-informative-docs) - * [`match-description`](#user-content-eslint-plugin-jsdoc-rules-match-description) - * [`match-name`](#user-content-eslint-plugin-jsdoc-rules-match-name) - * [`multiline-blocks`](#user-content-eslint-plugin-jsdoc-rules-multiline-blocks) - * [`no-bad-blocks`](#user-content-eslint-plugin-jsdoc-rules-no-bad-blocks) - * [`no-blank-block-descriptions`](#user-content-eslint-plugin-jsdoc-rules-no-blank-block-descriptions) - * [`no-blank-blocks`](#user-content-eslint-plugin-jsdoc-rules-no-blank-blocks) - * [`no-defaults`](#user-content-eslint-plugin-jsdoc-rules-no-defaults) - * [`no-missing-syntax`](#user-content-eslint-plugin-jsdoc-rules-no-missing-syntax) - * [`no-multi-asterisks`](#user-content-eslint-plugin-jsdoc-rules-no-multi-asterisks) - * [`no-restricted-syntax`](#user-content-eslint-plugin-jsdoc-rules-no-restricted-syntax) - * [`no-types`](#user-content-eslint-plugin-jsdoc-rules-no-types) - * [`no-undefined-types`](#user-content-eslint-plugin-jsdoc-rules-no-undefined-types) - * [`require-asterisk-prefix`](#user-content-eslint-plugin-jsdoc-rules-require-asterisk-prefix) - * [`require-description-complete-sentence`](#user-content-eslint-plugin-jsdoc-rules-require-description-complete-sentence) - * [`require-description`](#user-content-eslint-plugin-jsdoc-rules-require-description) - * [`require-example`](#user-content-eslint-plugin-jsdoc-rules-require-example) - * [`require-file-overview`](#user-content-eslint-plugin-jsdoc-rules-require-file-overview) - * [`require-hyphen-before-param-description`](#user-content-eslint-plugin-jsdoc-rules-require-hyphen-before-param-description) - * [`require-jsdoc`](#user-content-eslint-plugin-jsdoc-rules-require-jsdoc) - * [`require-param-description`](#user-content-eslint-plugin-jsdoc-rules-require-param-description) - * [`require-param-name`](#user-content-eslint-plugin-jsdoc-rules-require-param-name) - * [`require-param-type`](#user-content-eslint-plugin-jsdoc-rules-require-param-type) - * [`require-param`](#user-content-eslint-plugin-jsdoc-rules-require-param) - * [`require-property`](#user-content-eslint-plugin-jsdoc-rules-require-property) - * [`require-property-description`](#user-content-eslint-plugin-jsdoc-rules-require-property-description) - * [`require-property-name`](#user-content-eslint-plugin-jsdoc-rules-require-property-name) - * [`require-property-type`](#user-content-eslint-plugin-jsdoc-rules-require-property-type) - * [`require-returns-check`](#user-content-eslint-plugin-jsdoc-rules-require-returns-check) - * [`require-returns-description`](#user-content-eslint-plugin-jsdoc-rules-require-returns-description) - * [`require-returns-type`](#user-content-eslint-plugin-jsdoc-rules-require-returns-type) - * [`require-returns`](#user-content-eslint-plugin-jsdoc-rules-require-returns) - * [`require-throws`](#user-content-eslint-plugin-jsdoc-rules-require-throws) - * [`require-yields`](#user-content-eslint-plugin-jsdoc-rules-require-yields) - * [`require-yields-check`](#user-content-eslint-plugin-jsdoc-rules-require-yields-check) - * [`sort-tags`](#user-content-eslint-plugin-jsdoc-rules-sort-tags) - * [`tag-lines`](#user-content-eslint-plugin-jsdoc-rules-tag-lines) - * [`text-escaping`](#user-content-eslint-plugin-jsdoc-rules-text-escaping) - * [`valid-types`](#user-content-eslint-plugin-jsdoc-rules-valid-types) @@ -255,24345 +194,71 @@ object supplied as the second argument in an array after the error level ## Settings - - -### Allow tags (@private or @internal) to disable rules for that comment block - -- `settings.jsdoc.ignorePrivate` - Disables all rules for the comment block - on which a `@private` tag (or `@access private`) occurs. Defaults to - `false`. Note: This has no effect with the rule `check-access` (whose - purpose is to check access modifiers) or `empty-tags` (which checks - `@private` itself). -- `settings.jsdoc.ignoreInternal` - Disables all rules for the comment block - on which a `@internal` tag occurs. Defaults to `false`. Note: This has no - effect with the rule `empty-tags` (which checks `@internal` itself). - - - -### maxLines and minLines - -One can use `minLines` and `maxLines` to indicate how many line breaks -(if any) will be checked to find a jsdoc comment block before the given -code block. These settings default to `0` and `1` respectively. - -In conjunction with the `require-jsdoc` rule, these settings can -be enforced so as to report problems if a jsdoc block is not found within -the specified boundaries. The settings are also used in the fixer to determine -how many line breaks to add when a block is missing. - - - -### Mode - -- `settings.jsdoc.mode` - Set to `typescript`, `closure`, or `jsdoc` (the - default unless the `@typescript-eslint` parser is in use in which case - `typescript` will be the default). - Note that if you do not wish to use separate `.eslintrc.*` files for a - project containing both JavaScript and TypeScript, you can also use - [`overrides`](https://eslint.org/docs/user-guide/configuring). You may also - set to `"permissive"` to try to be as accommodating to any of the styles, - but this is not recommended. Currently is used for the following: - - `check-tag-names`: Determine valid tags and aliases - - `no-undefined-types`: Only check `@template` for types in "closure" and - "typescript" modes - - `check-syntax`: determines aspects that may be enforced - - `valid-types`: in non-Closure mode, `@extends`, `@package` and access tags - (e.g., `@private`) with a bracketed type are reported as are missing - names with `@typedef` - - For type/namepath-checking rules, determine which tags will be checked for - types/namepaths (Closure allows types on some tags which the others do not, - so these tags will additionally be checked in "closure" mode) - - For type-checking rules, impacts parsing of types (through - [jsdoc-type-pratt-parser](https://github.com/simonseyock/jsdoc-type-pratt-parser) - dependency) - - Check preferred tag names - - Disallows namepath on `@interface` for "closure" mode in `valid-types` (and - avoids checking in other rules) - - - -### Alias Preference - -Use `settings.jsdoc.tagNamePreference` to configure a preferred alias name for -a JSDoc tag. The format of the configuration is: -`: `, e.g. - -```json -{ - "rules": {}, - "settings": { - "jsdoc": { - "tagNamePreference": { - "param": "arg", - "returns": "return" - } - } - } -} -``` - -Note: ESLint does not allow settings to have keys which conflict with -`Object.prototype` e.g. `'constructor'`. To work around this, you can use the -key `'tag constructor'`. - -One may also use an object with a `message` and `replacement`. - -The following will report the message -`@extends is to be used over @augments as it is more evocative of classes than @augments` -upon encountering `@augments`. - -```json -{ - "rules": {}, - "settings": { - "jsdoc": { - "tagNamePreference": { - "augments": { - "message": "@extends is to be used over @augments as it is more evocative of classes than @augments", - "replacement": "extends" - } - } - } - } -} -``` - -If one wishes to reject a normally valid tag, e.g., `@todo`, one may set the -tag to `false`: - -```json -{ - "rules": {}, - "settings": { - "jsdoc": { - "tagNamePreference": { - "todo": false - } - } - } -} -``` - -A project wishing to ensure no blocks are left excluded from entering the -documentation, might wish to prevent the `@ignore` tag in the above manner. - -Or one may set the targeted tag to an object with a custom `message`, but -without a `replacement` property: - -```json -{ - "rules": {}, - "settings": { - "jsdoc": { - "tagNamePreference": { - "todo": { - "message": "We expect immediate perfection, so don't leave to-dos in your code." - } - } - } - } -} -``` - -Note that the preferred tags indicated in the -`settings.jsdoc.tagNamePreference` map will be assumed to be defined by -`check-tag-names`. - -See `check-tag-names` for how that fact can be used to set an alias to itself -to allow both the alias and the default (since aliases are otherwise not -permitted unless used in `tagNamePreference`). - - - -#### Default Preferred Aliases - -The defaults in `eslint-plugin-jsdoc` (for tags which offer -aliases) are as follows: - -- `@abstract` (over `@virtual`) -- `@augments` (over `@extends`) -- `@class` (over `@constructor`) -- `@constant` (over `@const`) -- `@default` (over `@defaultvalue`) -- `@description` (over `@desc`) -- `@external` (over `@host`) -- `@file` (over `@fileoverview`, `@overview`) -- `@fires` (over `@emits`) -- `@function` (over `@func`, `@method`) -- `@member` (over `@var`) -- `@param` (over `@arg`, `@argument`) -- `@property` (over `@prop`) -- `@returns` (over `@return`) -- `@throws` (over `@exception`) -- `@yields` (over `@yield`) - -This setting is utilized by the the rule for tag name checking -(`check-tag-names`) as well as in the `@param` and `@require` rules: - -- `check-param-names` -- `check-tag-names` -- `require-hyphen-before-param-description` -- `require-description` -- `require-param` -- `require-param-description` -- `require-param-name` -- `require-param-type` -- `require-returns` -- `require-returns-check` -- `require-returns-description` -- `require-returns-type` - - - -### @override/@augments/@extends/@implements/@ignore Without Accompanying @param/@description/@example/@returns/@throws/@yields - -The following settings allows the element(s) they reference to be omitted -on the JSDoc comment block of the function or that of its parent class -for any of the "require" rules (i.e., `require-param`, `require-description`, -`require-example`, `require-returns`, `require-throws`, `require-yields`). - -* `settings.jsdoc.ignoreReplacesDocs` (`@ignore`) - Defaults to `true` -* `settings.jsdoc.overrideReplacesDocs` (`@override`) - Defaults to `true` -* `settings.jsdoc.augmentsExtendsReplacesDocs` (`@augments` or its alias - `@extends`) - Defaults to `false`. -* `settings.jsdoc.implementsReplacesDocs` (`@implements`) - Defaults to `false` - -The format of the configuration is as follows: - -```json -{ - "rules": {}, - "settings": { - "jsdoc": { - "ignoreReplacesDocs": true, - "overrideReplacesDocs": true, - "augmentsExtendsReplacesDocs": true, - "implementsReplacesDocs": true - } - } -} -``` - - - -### Settings to Configure check-types and no-undefined-types - -- `settings.jsdoc.preferredTypes` An option map to indicate preferred - or forbidden types (if default types are indicated here, these will - have precedence over the default recommendations for `check-types`). - The keys of this map are the types to be replaced (or forbidden). - These keys may include: - 1. The "ANY" type, `*` - 1. The pseudo-type `[]` which we use to denote the parent (array) - types used in the syntax `string[]`, `number[]`, etc. - 1. The pseudo-type `.<>` (or `.`) to represent the format `Array.` - or `Object.` - 1. The pseudo-type `<>` to represent the format `Array` or - `Object` - 1. A plain string type, e.g., `MyType` - 1. A plain string type followed by one of the above pseudo-types (except - for `[]` which is always assumed to be an `Array`), e.g., `Array.`, or - `SpecialObject<>`. - - If a bare pseudo-type is used, it will match all parent types of that form. - If a pseudo-type prefixed with a type name is used, it will only match - parent types of that form and type name. - - The values can be: - - `false` to forbid the type - - a string to indicate the type that should be preferred in its place - (and which `fix` mode can replace); this can be one of the formats - of the keys described above. - - Note that the format will not be changed unless you use a pseudo-type - in the replacement. (For example, `'Array.<>': 'MyArray'` will change - `Array.` to `MyArray.`, preserving the dot. To get rid - of the dot, you must use the pseudo-type with `<>`, i.e., - `'Array.<>': 'MyArray<>'`, which will change `Array.` to - `MyArray`). - - If you use a _bare_ pseudo-type in the replacement (e.g., - `'MyArray.<>': '<>'`), the type will be converted to the format - of the pseudo-type without changing the type name. For example, - `MyArray.` will become `MyArray` but `Array.` - will not be modified. - - an object with: - - the key `message` to provide a specific error message - when encountering the discouraged type. - - The message string will have the substrings with special meaning, - `{{tagName}}` and `{{tagValue}}`, replaced with their - corresponding value. - - an optional key `replacement` with either of the following values: - - a string type to be preferred in its place (and which `fix` mode - can replace) - - `false` (for forbidding the type) - - an optional key `skipRootChecking` (for `check-types`) to allow for this - type in the context of a root (i.e., a parent object of some child type) - -Note that the preferred types indicated as targets in -`settings.jsdoc.preferredTypes` map will be assumed to be defined by -`no-undefined-types`. - -See the option of `check-types`, `unifyParentAndChildTypeChecks`, for -how the keys of `preferredTypes` may have `<>` or `.<>` (or just `.`) -appended and its bearing on whether types are checked as parents/children -only (e.g., to match `Array` if the type is `Array` vs. `Array.`). - -Note that if a value is present both as a key and as a value, neither the -key nor the value will be reported. Thus in `check-types`, this fact can -be used to allow both `object` and `Object` if one has a `preferredTypes` -key `object: 'Object'` and `Object: 'object'`. - - - -### structuredTags - -An object indicating tags whose types and names/namepaths (whether defining or -referencing namepaths) will be checked, subject to configuration. If the tags -have predefined behavior or `allowEmptyNamepaths` behavior, this option will -override that behavior for any specified tags, though this option can also be -used for tags without predefined behavior. Its keys are tag names and its -values are objects with the following optional properties: - - `name` - String set to one of the following: - - `"text"` - When a name is present, plain text will be allowed in the - name position (non-whitespace immediately after the tag and whitespace), - e.g., in `@throws This is an error`, "This" would normally be the name, - but "text" allows non-name text here also. This is the default. - - `"namepath-defining"` - As with `namepath-referencing`, but also - indicates the tag adds a namepath to definitions, e.g., to prevent - `no-undefined-types` from reporting references to that namepath. - - `"namepath-referencing"` - This will cause any name position to be - checked to ensure it is a valid namepath. You might use this to ensure - that tags which normally allow free text, e.g., `@see` will instead - require a namepath. - - `false` - This will disallow any text in the name position. - - `type`: - - `true` - Allows valid types within brackets. This is the default. - - `false` - Explicitly disallows any brackets or bracketed type. You - might use this with `@throws` to suggest that only free form text - is being input or with `@augments` (for jsdoc mode) to disallow - Closure-style bracketed usage along with a required namepath. - - (An array of strings) - A list of permissible types. - - `required` - Array of one of the following (defaults to an empty array, - meaning none are required): - - One or both of the following strings (if both are included, then both - are required): - - `"name"` - Indicates that a name position is required (not just that - if present, it is a valid namepath). You might use this with `see` - to insist that a value (or namepath, depending on the `name` value) - is always present. - - `"type"` - Indicates that the type position (within curly brackets) - is required (not just that if present, it is a valid type). You - might use this with `@throws` or `@typedef` which might otherwise - normally have their types optional. See the type groups 3-5 above. - - `"typeOrName"` - Must have either type (e.g., `@throws {aType}`) or - name (`@throws Some text`); does not require that both exist but - disallows just an empty tag. - - - -### contexts - -`settings.jsdoc.contexts` can be used as the default for any rules -with a `contexts` property option. See the "AST and Selectors" section -for more on this format. +See [Settings](./docs/settings.md#readme). ## Advanced - - -### AST and Selectors - -For various rules, one can add to the environments to which the rule applies -by using the `contexts` option. - -This option works with [ESLint's selectors](https://eslint.org/docs/developer-guide/selectors) which are [esquery](https://github.com/estools/esquery/#readme) -expressions one may use to target a specific node type or types, including -subsets of the type(s) such as nodes with certain children or attributes. - -These expressions are used within ESLint plugins to find those parts of -your files' code which are of interest to check. However, in -`eslint-plugin-jsdoc`, we also allow you to use these selectors to define -additional contexts where you wish our own rules to be applied. - - - -#### contexts format - -While at their simplest, these can be an array of string selectors, one can -also supply an object with `context` (in place of the string) and one of two -properties: - -1. For `require-jsdoc`, there are also `inlineCommentBlock` and - `minLineCount` properties. See that rule for details. -1. For `no-missing-syntax` and `no-restricted-syntax`, there is also a - `message` property which allows customization of the message to be shown - when the rule is triggered. -1. For `no-missing-syntax`, there is also a `minimum` property. See that rule. -1. For other rules, there is a `comment` property which adds to the `context` - in requiring that the `comment` AST condition is also met, e.g., to - require that certain tags are present and/or or types and type operators - are in use. Note that this AST (either for `Jsdoc*` or `JsdocType*` AST) - has not been standardized and should be considered experimental. - Note that this property might also become obsolete if parsers begin to - include JSDoc-structured AST. A - [parser](https://github.com/brettz9/jsdoc-eslint-parser/) is available - which aims to support comment AST as - a first class citizen where comment/comment types can be used anywhere - within a normal AST selector but this should only be considered - experimental. When using such a parser, you need not use `comment` and - can just use a plain string context. The determination of the node on - which the comment is attached is based more on actual location than - semantics (e.g., it will be attached to a `VariableDeclaration` if above - that rather than to the `FunctionExpression` it is fundamentally - describing). See - [@es-joy/jsdoccomment](https://github.com/es-joy/jsdoccomment) - for the precise structure of the comment (and comment type) nodes. - - - -#### Discovering available AST definitions - -To know all of the AST definitions one may target, it will depend on the -[parser](https://eslint.org/docs/user-guide/configuring#specifying-parser) -you are using with ESLint (e.g., `espree` is the default parser for ESLint, -and this follows [EStree AST](https://github.com/estree/estree) but -to support the the latest experimental features of JavaScript, one may use -`@babel/eslint-parser` or to be able to have one's rules (including JSDoc rules) -apply to TypeScript, one may use `@typescript-eslint/parser`, etc. - -So you can look up a particular parser to see its rules, e.g., browse through -the [ESTree docs](https://github.com/estree/estree) as used by Espree or see -ESLint's [overview of the structure of AST](https://eslint.org/docs/developer-guide/working-with-custom-parsers#the-ast-specification). - -However, it can sometimes be even more helpful to get an idea of AST by just -providing some of your JavaScript to the wonderful -[AST Explorer](https://astexplorer.net/) tool and see what AST is built out -of your code. You can set the tool to the specific parser which you are using. - - - -#### Uses/Tips for AST - -And if you wish to introspect on the AST of code within your projects, you can -use [eslint-plugin-query](https://github.com/brettz9/eslint-plugin-query). -Though it also works as a plugin, you can use it with its own CLI, e.g., -to search your files for matching esquery selectors, optionally showing -it as AST JSON. - -Tip: If you want to more deeply understand not just the resulting AST tree -structures for any given code but also the syntax for esquery selectors so -that you can, for example, find only those nodes with a child of a certain -type, you can set the "Transform" feature to ESLint and test out -esquery selectors in place of the selector expression (e.g., replace -`'VariableDeclaration > VariableDeclarator > Identifier[name="someVar"]'` as -we have -[here](https://astexplorer.net/#/gist/71a93130c19599d6f197bddb29c13a59/latest)) -to the selector you wish so as to get messages reported in the bottom right -pane which match your [esquery](https://github.com/estools/esquery/#readme) -selector). +See [Advanced](./docs/advanced.md#readme). ## Rules - - -### check-access - -Checks that `@access` tags use one of the following values: - -- "package", "private", "protected", "public" - -Also reports: - -- Mixing of `@access` with `@public`, `@private`, `@protected`, or `@package` - on the same doc block. -- Use of multiple instances of `@access` (or the `@public`, etc. style tags) - on the same doc block. - -||| -|---|---| -|Context|everywhere| -|Tags|`@access`| -|Recommended|false| -|Settings|| -|Options|| - -The following patterns are considered problems: - -````js -/** - * @access foo - */ -function quux (foo) { - -} -// Message: Missing valid JSDoc @access level. - -/** - * @access foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"ignorePrivate":true}} -// Message: Missing valid JSDoc @access level. - -/** - * @accessLevel foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"access":"accessLevel"}}} -// Message: Missing valid JSDoc @accessLevel level. - -/** - * @access - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"access":false}}} -// Message: Unexpected tag `@access` - -class MyClass { - /** - * @access - */ - myClassField = 1 -} -// Message: Missing valid JSDoc @access level. - -/** - * @access public - * @public - */ -function quux (foo) { - -} -// Message: The @access tag may not be used with specific access-control tags (@package, @private, @protected, or @public). - -/** - * @access public - * @access private - */ -function quux (foo) { - -} -// Message: At most one access-control tag may be present on a jsdoc block. - -/** - * @access public - * @access private - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"ignorePrivate":true}} -// Message: At most one access-control tag may be present on a jsdoc block. - -/** - * @public - * @private - */ -function quux (foo) { - -} -// Message: At most one access-control tag may be present on a jsdoc block. - -/** - * @public - * @private - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"ignorePrivate":true}} -// Message: At most one access-control tag may be present on a jsdoc block. - -/** - * @public - * @public - */ -function quux (foo) { - -} -// Message: At most one access-control tag may be present on a jsdoc block. -```` - -The following patterns are not considered problems: - -````js -/** - * - */ -function quux (foo) { - -} - -/** - * @access public - */ -function quux (foo) { - -} - -/** - * @accessLevel package - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"access":"accessLevel"}}} - -class MyClass { - /** - * @access private - */ - myClassField = 1 -} - -/** - * @public - */ -function quux (foo) { - -} - -/** - * @private - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"ignorePrivate":true}} -```` - - - - -### check-alignment - -Reports invalid alignment of JSDoc block asterisks. - -||| -|---|---| -|Context|everywhere| -|Tags|N/A| -|Recommended|true| - -The following patterns are considered problems: - -````js -/** - * @param {Number} foo - */ -function quux (foo) { - // with spaces -} -// Message: Expected JSDoc block to be aligned. - -/** - * @param {Number} foo - */ -function quux (foo) { - // with tabs -} -// Message: Expected JSDoc block to be aligned. - -/** - * @param {Number} foo - */ -function quux (foo) { - // with spaces -} -// Message: Expected JSDoc block to be aligned. - -/** -* @param {Number} foo -*/ -function quux (foo) { - // with spaces -} -// Message: Expected JSDoc block to be aligned. - -/** - * @param {Number} foo - */ -function quux (foo) { - -} -// Message: Expected JSDoc block to be aligned. - - /** - * @param {Number} foo - */ -function quux (foo) { - -} -// Message: Expected JSDoc block to be aligned. - - /** - * @param {Number} foo - */ -function quux (foo) { - -} -// Message: Expected JSDoc block to be aligned. - -/** - * @param {Number} foo - */ - function quux (foo) { - - } -// Message: Expected JSDoc block to be aligned. - -/** - * A jsdoc not attached to any node. - */ -// Message: Expected JSDoc block to be aligned. - -class Foo { - /** - * Some method - * @param a - */ - quux(a) {} -} -// Message: Expected JSDoc block to be aligned. -```` - -The following patterns are not considered problems: - -````js -/** - * Desc - * - * @param {Number} foo - */ -function quux (foo) { - -} - -/** - * Desc - * - * @param {{ - foo: Bar, - bar: Baz - * }} foo - * - */ -function quux (foo) { - -} - -/* <- JSDoc must start with 2 stars. - * So this is unchecked. - */ -function quux (foo) {} - -/** - * @param {Number} foo - * @private - */ -function quux (foo) { - // with spaces -} -// Settings: {"jsdoc":{"ignorePrivate":true}} - -/** - * @param {Number} foo - * @access private - */ -function quux (foo) { - // with spaces -} -// Settings: {"jsdoc":{"ignorePrivate":true}} -```` - - - - -### check-examples - -> **NOTE**: This rule currently does not work in ESLint 8 (we are waiting for -> [issue 14745](https://github.com/eslint/eslint/issues/14745)). - -Ensures that (JavaScript) examples within JSDoc adhere to ESLint rules. Also -has options to lint the default values of optional `@param`/`@arg`/`@argument` -and `@property`/`@prop` tags or the values of `@default`/`@defaultvalue` tags. - - - -#### Options - -The options below all default to no-op/`false` except as noted. - - - -##### captionRequired - -JSDoc specs use of an optional `` element at the beginning of -`@example`. - -The option `captionRequired` insists on a `` being present at -the beginning of any `@example`. - -Used only for `@example`. - - - -##### exampleCodeRegex and rejectExampleCodeRegex - -JSDoc does not specify a formal means for delimiting code blocks within -`@example` (it uses generic syntax highlighting techniques for its own -syntax highlighting). The following options determine whether a given -`@example` tag will have the `check-examples` checks applied to it: - -* `exampleCodeRegex` - Regex which whitelists lintable - examples. If a parenthetical group is used, the first one will be used, - so you may wish to use `(?:...)` groups where you do not wish the - first such group treated as one to include. If no parenthetical group - exists or matches, the whole matching expression will be used. - An example might be ````"^```(?:js|javascript)([\\s\\S]*)```\s*$"```` - to only match explicitly fenced JavaScript blocks. Defaults to only - using the `u` flag, so to add your own flags, encapsulate your - expression as a string, but like a literal, e.g., ````/```js.*```/gi````. - Note that specifying a global regular expression (i.e., with `g`) will - allow independent linting of matched blocks within a single `@example`. -* `rejectExampleCodeRegex` - Regex blacklist which rejects - non-lintable examples (has priority over `exampleCodeRegex`). An example - might be ```"^`"``` to avoid linting fenced blocks which may indicate - a non-JavaScript language. See `exampleCodeRegex` on how to add flags - if the default `u` is not sufficient. - -If neither is in use, all examples will be matched. Note also that even if -`captionRequired` is not set, any initial `` will be stripped out -before doing the regex matching. - - - -##### paddedIndent - -This integer property allows one to add a fixed amount of whitespace at the -beginning of the second or later lines of the example to be stripped so as -to avoid linting issues with the decorative whitespace. For example, if set -to a value of `4`, the initial whitespace below will not trigger `indent` -rule errors as the extra 4 spaces on each subsequent line will be stripped -out before evaluation. - -```js -/** - * @example - * anArray.filter((a) => { - * return a.b; - * }); - */ -``` - -Only applied to `@example` linting. - - - -##### reportUnusedDisableDirectives - -If not set to `false`, `reportUnusedDisableDirectives` will report disabled -directives which are not used (and thus not needed). Defaults to `true`. -Corresponds to ESLint's [`--report-unused-disable-directives`](https://eslint.org/docs/user-guide/command-line-interface#--report-unused-disable-directives). - -Inline ESLint config within `@example` JavaScript is allowed (or within -`@default`, etc.), though the disabling of ESLint directives which are not -needed by the resolved rules will be reported as with the ESLint -`--report-unused-disable-directives` command. - - - -#### Options for Determining ESLint Rule Applicability (allowInlineConfig, noDefaultExampleRules, matchingFileName, configFile, checkEslintrc, and baseConfig) - -The following options determine which individual ESLint rules will be -applied to the JavaScript found within the `@example` tags (as determined -to be applicable by the above regex options) or for the other tags checked by -`checkDefaults`, `checkParams`, or `checkProperties` options. They are ordered -by decreasing precedence: - -* `allowInlineConfig` - If not set to `false`, will allow - inline config within the `@example` to override other config. Defaults - to `true`. -* `noDefaultExampleRules` - Setting to `true` will disable the - default rules which are expected to be troublesome for most documentation - use. See the section below for the specific default rules. -* `configFile` - A config file. Corresponds to ESLint's [`-c`](https://eslint.org/docs/user-guide/command-line-interface#-c---config). -* `matchingFileName` - Option for a file name (even non-existent) to trigger - specific rules defined in one's config; usable with ESLint `.eslintrc.*` - `overrides` -> `files` globs, to apply a desired subset of rules with - `@example` (besides allowing for rules specific to examples, this option - can be useful for enabling reuse of the same rules within `@example` as - with JavaScript Markdown lintable by - [other plugins](https://github.com/eslint/eslint-plugin-markdown), e.g., - if one sets `matchingFileName` to `dummy.md/*.js` so that `@example` - rules will follow rules for fenced JavaScript blocks within one's Markdown - rules). (In ESLint 6's processor API and `eslint-plugin-markdown` < 2, one - would instead use `dummy.md`.) For `@example` only. -* `matchingFileNameDefaults` - As with `matchingFileName` but for use with - `checkDefaults` and defaulting to `.jsdoc-defaults` as extension. -* `matchingFileNameParams` - As with `matchingFileName` but for use with - `checkParams` and defaulting to `.jsdoc-params` as extension. -* `matchingFileNameProperties` As with `matchingFileName` but for use with - `checkProperties` and defaulting to `.jsdoc-properties` as extension. -* `checkEslintrc` - Defaults to `true` in adding rules - based on an `.eslintrc.*` file. Setting to `false` corresponds to - ESLint's [`--no-eslintrc`](https://eslint.org/docs/user-guide/command-line-interface#--no-eslintrc). - If `matchingFileName` is set, this will automatically be `true` and - will use the config corresponding to that file. If `matchingFileName` is - not set and this value is set to `false`, the `.eslintrc.*` configs will - not be checked. If `matchingFileName` is not set, and this is unset or - set to `true`, the `.eslintrc.*` configs will be checked as though the file - name were the same as the file containing the example, with any file - extension changed to `".md/*.js"` (and if there is no file extension, - `"dummy.md/*.js"` will be the result). This allows convenient sharing of - similar rules with often also context-free Markdown as well as use of - `overrides` as described under `matchingFileName`. Note that this option - (whether set by `matchingFileName` or set manually to `true`) may come at - somewhat of a performance penalty as the file's existence is checked by - eslint. -* `baseConfig` - Set to an object of rules with the same schema - as `.eslintrc.*` for defaults. - - - -##### Rules Disabled by Default Unless noDefaultExampleRules is Set to true - -* `eol-last` - Insisting that a newline "always" be at the end is less likely - to be desired in sample code as with the code file convention. -* `no-console` - This rule is unlikely to have inadvertent temporary debugging - within examples. -* `no-multiple-empty-lines` - This rule may be problematic for projects which - use an initial newline just to start an example. Also, projects may wish to - use extra lines within examples just for easier illustration - purposes. -* `no-undef` - Many variables in examples will be `undefined`. -* `no-unused-vars` - It is common to define variables for clarity without - always using them within examples. -* `padded-blocks` - It can generally look nicer to pad a little even if one's - code follows more stringency as far as block padding. -* `jsdoc/require-file-overview` - Shouldn't check example for jsdoc blocks. -* `jsdoc/require-jsdoc` - Wouldn't expect jsdoc blocks within jsdoc blocks. -* `import/no-unresolved` - One wouldn't generally expect example paths to - resolve relative to the current JavaScript file as one would with real code. -* `import/unambiguous` - Snippets in examples are likely too short to always - include full import/export info. -* `node/no-missing-import` - See `import/no-unresolved`. -* `node/no-missing-require` - See `import/no-unresolved`. - -For `checkDefaults`, `checkParams`, and `checkProperties`, the following -expression-oriented rules will be used by default as well: - -* `quotes` - Will insist on "double". -* `semi` - Will insist on "never". -* `strict` - Disabled. -* `no-empty-function` - Disabled. -* `no-new` - Disabled. -* `no-unused-expressions` - Disabled. -* `chai-friendly/no-unused-expressions` - Disabled. - - - -##### Options for checking other than @example (checkDefaults, checkParams, or checkProperties) - -* `checkDefaults` - Whether to check the values of `@default`/`@defaultvalue` tags -* `checkParams` - Whether to check `@param`/`@arg`/`@argument` default values -* `checkProperties` - Whether to check `@property`/`@prop` default values - -||| -|---|---| -|Context|everywhere| -|Tags|`example`| -|Recommended|false| -|Options| *See above* | - -The following patterns are considered problems: - -````js -/** - * @example alert('hello') - */ -function quux () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"no-alert":2,"semi":["error","always"]}},"checkEslintrc":false}] -// Message: @example error (no-alert): Unexpected alert. - -/** - * @example alert('hello') - */ -class quux { - -} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"no-alert":2,"semi":["error","always"]}},"checkEslintrc":false}] -// Message: @example error (no-alert): Unexpected alert. - -/** - * @example ```js - alert('hello'); - ``` - */ -function quux () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"semi":["error","never"]}},"checkEslintrc":false,"exampleCodeRegex":"```js([\\s\\S]*)```"}] -// Message: @example error (semi): Extra semicolon. - -/** - * @example - * - * ```js alert('hello'); ``` - */ -function quux () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"semi":["error","never"]}},"checkEslintrc":false,"exampleCodeRegex":"```js ([\\s\\S]*)```"}] -// Message: @example error (semi): Extra semicolon. - -/** - * @example - * ```js alert('hello'); ``` - */ -var quux = { - -}; -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"semi":["error","never"]}},"checkEslintrc":false,"exampleCodeRegex":"```js ([\\s\\S]*)```"}] -// Message: @example error (semi): Extra semicolon. - -/** - * @example ``` - * js alert('hello'); ``` - */ -function quux () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"semi":["error","never"]}},"checkEslintrc":false,"exampleCodeRegex":"```\njs ([\\s\\S]*)```"}] -// Message: @example error (semi): Extra semicolon. - -/** - * @example Not JavaScript - */ -function quux () { - -} -/** - * @example quux2(); - */ -function quux2 () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"semi":["error","never"]}},"checkEslintrc":false,"rejectExampleCodeRegex":"^\\s*<.*>\\s*$"}] -// Message: @example error (semi): Extra semicolon. - -/** - * @example - * quux(); // does something useful - */ -function quux () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"no-undef":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":true}] -// Message: @example error (no-undef): 'quux' is not defined. - -/** - * @example Valid usage - * quux(); // does something useful - * - * @example - * quux('random unwanted arg'); // results in an error - */ -function quux () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"captionRequired":true,"checkEslintrc":false}] -// Message: Caption is expected for examples. - -/** - * @example quux(); - */ -function quux () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"indent":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":false}] -// Message: @example error (indent): Expected indentation of 0 spaces but found 1. - -/** - * @example test() // eslint-disable-line semi - */ -function quux () {} -// "jsdoc/check-examples": ["error"|"warn", {"checkEslintrc":false,"noDefaultExampleRules":true,"reportUnusedDisableDirectives":true}] -// Message: @example error: Unused eslint-disable directive (no problems were reported from 'semi'). - -/** - * @example - test() // eslint-disable-line semi - */ -function quux () {} -// "jsdoc/check-examples": ["error"|"warn", {"allowInlineConfig":false,"baseConfig":{"rules":{"semi":["error","always"]}},"checkEslintrc":false,"noDefaultExampleRules":true}] -// Message: @example error (semi): Missing semicolon. - -/** - * @example const j = 5; - * quux2(); - */ -function quux2 () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"matchingFileName":"../../jsdocUtils.js"}] -// Message: @example warning (id-length): Identifier name 'j' is too short (< 2). - -/** - * @example const k = 5; - * quux2(); - */ -function quux2 () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"configFile":".eslintrc.json","matchingFileName":"../../jsdocUtils.js"}] -// Message: @example warning (id-length): Identifier name 'k' is too short (< 2). - -/** - * @example const m = 5; - * quux2(); - */ -function quux2 () { - -} -// Message: @example warning (id-length): Identifier name 'm' is too short (< 2). - -/** - * @example const i = 5; - * quux2() - */ -function quux2 () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"paddedIndent":2}] -// Message: @example warning (id-length): Identifier name 'i' is too short (< 2). - -/** - * @example - * const i = 5; - * quux2() - */ -function quux2 () { - -} -// Message: @example warning (id-length): Identifier name 'i' is too short (< 2). - -/** - * @example const idx = 5; - * quux2() - */ -function quux2 () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"matchingFileName":"dummy.js"}] -// Message: @example error (semi): Missing semicolon. - -/** - * @example const idx = 5; - * - * quux2() - */ -function quux2 () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"matchingFileName":"dummy.js"}] -// Message: @example error (semi): Missing semicolon. - -/** - * @example const idx = 5; - * - * quux2() - */ -function quux2 () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"checkEslintrc":false,"matchingFileName":"dummy.js"}] -// Message: @example error: Parsing error: The keyword 'const' is reserved - -/** - * @example // begin - alert('hello') - // end - */ -function quux () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"semi":["warn","always"]}},"checkEslintrc":false,"exampleCodeRegex":"// begin[\\s\\S]*// end","noDefaultExampleRules":true}] -// Message: @example warning (semi): Missing semicolon. - -/** - * @typedef {string} Foo - * @example - * 'foo' - */ -// "jsdoc/check-examples": ["error"|"warn", {"captionRequired":true,"checkEslintrc":false}] -// Message: Caption is expected for examples. - -/** - * @example - * const list: number[] = [1, 2, 3] - * quux(list); - */ -function quux () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"parser":"@typescript-eslint/parser","parserOptions":{"ecmaVersion":6},"rules":{"semi":["error","always"]}},"checkEslintrc":false}] -// Message: @example error (semi): Missing semicolon. - -/** - * @example - * const test = something.find((_) => { - * return _ - * }); - */ -function quux () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"parserOptions":{"ecmaVersion":6},"rules":{"semi":["error","always"]}}}] -// Message: @example error (semi): Missing semicolon. - -/** - * @example Say `Hello!` to the user. - * First, import the function: - * - * ```js - * import popup from './popup' - * const aConstInSameScope = 5; - * ``` - * - * Then use it like this: - * - * ```js - * const aConstInSameScope = 7; - * popup('Hello!') - * ``` - * - * Here is the result on macOS: - * - * ![Screenshot](path/to/screenshot.jpg) - */ -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"parserOptions":{"ecmaVersion":2015,"sourceType":"module"},"rules":{"semi":["error","always"]}},"checkEslintrc":false,"exampleCodeRegex":"/^```(?:js|javascript)\\n([\\s\\S]*?)```$/gm"}] -// Message: @example error (semi): Missing semicolon. - -/** - * @example // begin - alert('hello') - // end - * And here is another example: - // begin - alert('there') - // end - */ -function quux () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"semi":["warn","always"]}},"checkEslintrc":false,"exampleCodeRegex":"/\\/\\/ begin[\\s\\S]*?// end/g","noDefaultExampleRules":true}] -// Message: @example warning (semi): Missing semicolon. - -/** - * @example - * quux(); - */ -function quux () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"indent":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":false}] -// Message: @example error (indent): Expected indentation of 0 spaces but found 2. - -/** - * @default 'abc' - */ -const str = 'abc'; -// "jsdoc/check-examples": ["error"|"warn", {"checkDefaults":true}] -// Message: @default error (quotes): Strings must use doublequote. - -/** - * @param {myType} [name='abc'] - */ -function quux () { -} -// "jsdoc/check-examples": ["error"|"warn", {"checkParams":true}] -// Message: @param error (quotes): Strings must use doublequote. - -/** - * @property {myType} [name='abc'] - */ -const obj = {}; -// "jsdoc/check-examples": ["error"|"warn", {"checkProperties":true}] -// Message: @property error (quotes): Strings must use doublequote. - -/** - * Test function. - * - * @example functionName (paramOne: string, paramTwo?: any, - * paramThree?: any): boolean test() - * - * @param {string} paramOne Parameter description. - * @param {any} [paramTwo] Parameter description. - * @param {any} [paramThree] Parameter description. - * @returns {boolean} Return description. - */ -const functionName = function (paramOne, paramTwo, - paramThree) { - return false; -}; -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"parserOptions":{"ecmaVersion":2015,"sourceType":"module"},"rules":{"semi":["error","always"]}},"captionRequired":true,"checkEslintrc":false}] -// Message: @example error (semi): Missing semicolon. -```` - -The following patterns are not considered problems: - -````js -/** - * @example ```js - alert('hello'); - ``` - */ -function quux () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"semi":["error","always"]}},"checkEslintrc":false,"exampleCodeRegex":"```js([\\s\\S]*)```"}] - -/** - * @example ```js - alert('hello'); - ``` - */ -function quux () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"semi":["error","always"]}},"checkEslintrc":false,"exampleCodeRegex":"/```js([\\s\\S]*)```/"}] - -/** - * @example - * // arbitrary example content - */ -function quux () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"checkEslintrc":false}] - -/** - * @example - * quux(); // does something useful - */ -function quux () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"no-undef":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":false}] - -/** - * @example quux(); - */ -function quux () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"indent":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":false}] - -/** - * @example Valid usage - * quux(); // does something useful - * - * @example Invalid usage - * quux('random unwanted arg'); // results in an error - */ -function quux () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"captionRequired":true,"checkEslintrc":false}] - -/** - * @example test() // eslint-disable-line semi - */ -function quux () {} -// "jsdoc/check-examples": ["error"|"warn", {"checkEslintrc":false,"noDefaultExampleRules":true,"reportUnusedDisableDirectives":false}] - -/** - * @example - test() // eslint-disable-line semi - */ -function quux () {} -// "jsdoc/check-examples": ["error"|"warn", {"allowInlineConfig":true,"baseConfig":{"rules":{"semi":["error","always"]}},"checkEslintrc":false,"noDefaultExampleRules":true}] - -/** - * @example ```js - alert('hello') - ``` - */ -var quux = { - -}; -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"semi":["error","never"]}},"checkEslintrc":false,"exampleCodeRegex":"```js([\\s\\S]*)```"}] - -/** - * @example - * foo(function (err) { - * throw err; - * }); - */ -function quux () {} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"indent":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":false}] - -/** - * @example - * const list: number[] = [1, 2, 3]; - * quux(list); - */ -function quux () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"parser":"@typescript-eslint/parser","parserOptions":{"ecmaVersion":6},"rules":{"semi":["error","always"]}},"checkEslintrc":false}] - -/** - * @example const ident = 5; - * quux2(); - * bar(); - */ -function quux2 () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"paddedIndent":2}] - -/** - * @example - * function quux() { - * bar(); - * } - */ -function quux () { - -} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"indent":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":false}] - -// Comment -a(); - -export default {}; - -/** - * - */ -function f () { - -} - -/** - * Does quux - * @example - * // Do it! - * quux(); - */ -function quux () { -} -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"plugins":["jsdoc"],"rules":{"jsdoc/require-file-overview":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":false}] - -/** - * @default "abc" - */ -const str = 'abc'; -// "jsdoc/check-examples": ["error"|"warn", {"checkDefaults":true}] - -/** - * @default - */ -const str = 'abc'; -// "jsdoc/check-examples": ["error"|"warn", {"checkDefaults":true}] - -/** - * @param {myType} [name="abc"] - */ -function quux () { -} -// "jsdoc/check-examples": ["error"|"warn", {"checkParams":true}] - -/** - * @param {myType} name - */ -function quux () { -} -// "jsdoc/check-examples": ["error"|"warn", {"checkParams":true}] - -/** - * @property {myType} [name="abc"] - */ -const obj = {}; -// "jsdoc/check-examples": ["error"|"warn", {"checkProperties":true}] - -/** - * @property {myType} [name] - */ -const obj = {}; -// "jsdoc/check-examples": ["error"|"warn", {"checkProperties":true}] - -/** - * @default 'abc' - */ -const str = 'abc'; -// "jsdoc/check-examples": ["error"|"warn", {"checkDefaults":false,"matchingFileNameDefaults":"dummy.js"}] - -/** - * @param {myType} [name='abc'] - */ -function quux () { -} -// "jsdoc/check-examples": ["error"|"warn", {"checkParams":false,"matchingFileNameParams":"dummy.js"}] - -/** - * @property {myType} [name='abc'] - */ -const obj = {}; -// "jsdoc/check-examples": ["error"|"warn", {"checkProperties":false,"matchingFileNameProperties":"dummy.js"}] - -/** - * Test function. - * - * @example functionName (paramOne: string, paramTwo?: any, - * paramThree?: any): boolean test(); - * - * @param {string} paramOne Parameter description. - * @param {any} [paramTwo] Parameter description. - * @param {any} [paramThree] Parameter description. - * @returns {boolean} Return description. - */ -const functionName = function (paramOne, paramTwo, - paramThree) { - return false; -}; -// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"parserOptions":{"ecmaVersion":2015,"sourceType":"module"},"rules":{"semi":["error","always"]}},"captionRequired":true,"checkEslintrc":false}] -```` - - - - -### check-indentation - -Reports invalid padding inside JSDoc blocks. - -Ignores parts enclosed in Markdown "code block"'s. For example, -the following description is not reported: - -```js -/** - * Some description: - * ```html - *
- * test - *
- * ``` - */ -``` - - - -#### Options - -This rule has an object option. - - - -##### excludeTags - -Array of tags (e.g., `['example', 'description']`) whose content will be -"hidden" from the `check-indentation` rule. Defaults to `['example']`. - -By default, the whole JSDoc block will be checked for invalid padding. -That would include `@example` blocks too, which can get in the way -of adding full, readable examples of code without ending up with multiple -linting issues. - -When disabled (by passing `excludeTags: []` option), the following code *will* -report a padding issue: - -```js -/** - * @example - * anArray.filter((a) => { - * return a.b; - * }); - */ -``` - -||| -|---|---| -|Context|everywhere| -|Tags|N/A| -|Recommended|false| -|Options| `excludeTags` | - -The following patterns are considered problems: - -````js -/** foo */ -function quux () { - -} -// Message: There must be no indentation. - -/** - * foo - * - * @param bar - * baz - */ -function quux () { - -} -// Message: There must be no indentation. - -/** - * Foo - * bar - */ -class Moo {} -// Message: There must be no indentation. - -/** - * foo - * - * @example - * anArray.filter((a) => { - * return a.b; - * }); - */ -function quux () { - -} -// "jsdoc/check-indentation": ["error"|"warn", {"excludeTags":[]}] -// Message: There must be no indentation. - -/** - * foo - * - * @example - * aaaa - * @returns - * eeee - */ -function quux () { - -} -// Message: There must be no indentation. - -/** - * foo - * ```html - *
- * test - *
- * ``` - * @returns - * eeee - */ -function quux () { - -} -// Message: There must be no indentation. - -/** - * foo - * ``` aaaa``` - * @returns - * eeee - */ -function quux () { - -} -// Message: There must be no indentation. - -/** -* @example -* Here is a long -* indented summary of this -* example -* -* ```js -* function hi () { -* alert('Hello'); -* } -* ``` -*/ -// "jsdoc/check-indentation": ["error"|"warn", {"excludeTags":[]}] -// Message: There must be no indentation. - -/** -* @example -* Here is a long -* summary of this -* example -* -* // Code is not wrapped into fenced code block -* function hi () { -* alert('Hello'); -* } -*/ -// "jsdoc/check-indentation": ["error"|"warn", {"excludeTags":[]}] -// Message: There must be no indentation. -```` - -The following patterns are not considered problems: - -````js -/** - * foo - * - * @param bar - * baz - */ -function quux () { - -} - -/*** foo */ -function quux () { - -} - -/** - * foo - * - * @example - * anArray.filter((a) => { - * return a.b; - * }); - */ -function quux () { - -} - -/** - * foo - * - * @example - * anArray.filter((a) => { - * return a.b; - * }); - * @returns - * eeee - */ -function quux () { - -} -// "jsdoc/check-indentation": ["error"|"warn", {"excludeTags":["example","returns"]}] - -/** - * foo - * ```html - *
- * test - *
- * ``` - * @returns eeee - */ -function quux () { - -} - -/** - * foo - * ``` aaaa``` - * @returns eeee - */ -function quux () { - -} - -/** -* @example -* Here is a long -* summary of this -* example -* -* ```js -* function hi () { -* alert('Hello'); -* } -* ``` -*/ -// "jsdoc/check-indentation": ["error"|"warn", {"excludeTags":[]}] - -/** - * @example - * ``` - * @MyDecorator({ - * myOptions: 42 - * }) - * export class MyClass {} - * ``` - */ -function MyDecorator(options: { myOptions: number }) { - return (Base: Function) => {}; -} -// "jsdoc/check-indentation": ["error"|"warn", {"excludeTags":["example","MyDecorator"]}] - -/** - * @example ``` - * @MyDecorator({ - * myOptions: 42 - * }) - * export class MyClass {} - * ``` - */ -function MyDecorator(options: { myOptions: number }) { - return (Base: Function) => {}; -} -```` - - - - -### check-line-alignment - -Reports invalid alignment of JSDoc block lines. This is a -[standard recommended to WordPress code](https://make.wordpress.org/core/handbook/best-practices/inline-documentation-standards/javascript/#aligning-comments), -for example. - - - -#### Options - -This rule allows one optional string argument. If it is `"always"` then a -problem is raised when the lines are not aligned. If it is `"never"` then -a problem should be raised when there is more than one space between each -line's parts. If it is `"any"`, no alignment is made. Defaults to `"never"`. - -Note that in addition to alignment, the "never" and "always" options will both -ensure that at least one space is present after the asterisk delimiter. - -After the string, an options object is allowed with the following properties. - - - -##### tags - -Use this to change the tags which are sought for alignment changes. Defaults to an array of -`['param', 'arg', 'argument', 'property', 'prop', 'returns', 'return']`. - - - -##### customSpacings - -An object with any of the following keys set to an integer. Affects spacing: - -- `postDelimiter` - after the asterisk (e.g., `* @param`) -- `postTag` - after the tag (e.g., `* @param `) -- `postType` - after the type (e.g., `* @param {someType} `) -- `postName` - after the name (e.g., `* @param {someType} name `) -- `postHyphen` - after any hyphens in the description (e.g., `* @param {someType} name - A description`) - -If a spacing is not defined, it defaults to one. - - - -##### preserveMainDescriptionPostDelimiter - -A boolean to determine whether to preserve the post-delimiter spacing of the -main description. If `false` or unset, will be set to a single space. - - - -##### wrapIndent - -The indent that will be applied for tag text after the first line. -Default to the empty string (no indent). - -||| -|---|---| -|Context|everywhere| -|Options|(a string matching `"always"`, `"never"`, or `"any"` and optional object with `tags`, `customSpacings`, `preserveMainDescriptionPostDelimiter`, and `wrapIndent`)| -|Tags|`param`, `property`, `returns` and others added by `tags`| -|Aliases|`arg`, `argument`, `prop`, `return`| -|Recommended|false| - -The following patterns are considered problems: - -````js -/** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] -// Message: Expected JSDoc block lines to be aligned. - -/** - * With tabs. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ - const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] -// Message: Expected JSDoc block lines to be aligned. - -/** - * Function description. - * - * @param {string} lorem - Description. - * @param {int} sit - Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] -// Message: Expected JSDoc block lines to be aligned. - -/** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] -// Message: Expected JSDoc block lines to be aligned. - -/** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] -// Message: Expected JSDoc block lines to be aligned. - -/** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] -// Message: Expected JSDoc block lines to be aligned. - -/** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] -// Message: Expected JSDoc block lines to be aligned. - -/** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ -function fn( lorem, sit ) {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] -// Message: Expected JSDoc block lines to be aligned. - -const object = { - /** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ - fn( lorem, sit ) {} -} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] -// Message: Expected JSDoc block lines to be aligned. - -class ClassName { - /** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ - fn( lorem, sit ) {} -} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] -// Message: Expected JSDoc block lines to be aligned. - -/** - * Function description. - * - * @arg {string} lorem Description. - * @arg {int} sit Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] -// Message: Expected JSDoc block lines to be aligned. - -/** - * @namespace - * @property {object} defaults Description. - * @property {int} defaults.lorem Description multi words. - */ -const config = { - defaults: { - lorem: 1 - } -} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] -// Message: Expected JSDoc block lines to be aligned. - -/** - * My object. - * - * @typedef {Object} MyObject - * - * @property {string} lorem Description. - * @property {int} sit Description multi words. - */ -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] -// Message: Expected JSDoc block lines to be aligned. - -/** - * My object. - * - * @typedef {Object} MyObject - * - * @property {{a: number, b: string, c}} lorem Description. - * @property {Object.} sit Description multi words. - * @property {Object.} amet Description} weird {multi} {{words}}. - * @property {Object.} dolor - */ -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] -// Message: Expected JSDoc block lines to be aligned. - -/** - * My object. - * - * @typedef {Object} MyObject - * - * @property {{a: number, b: string, c}} lorem Description. - * @property {Object.} sit Description multi words. - * @property {Object.} amet Description} weird {multi} {{words}}. - * @property {Object.} dolor - */ -// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"tags":["typedef","property"]}] -// Message: Expected JSDoc block lines to be aligned. - -/** - * My function. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never"] -// Message: Expected JSDoc block lines to not be aligned. - -/** - * My function. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never"] -// Message: Expected JSDoc block lines to not be aligned. - -/** - * My function. - * - * @param {string} lorem Description. - * @param {int} sit - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never"] -// Message: Expected JSDoc block lines to not be aligned. - -/** - * My function. - * - * @param {string} lorem Description. - * @param {int} sit - */ -const fn = ( lorem, sit ) => {} -// Message: Expected JSDoc block lines to not be aligned. - -/** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi - line without *. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] -// Message: Expected JSDoc block lines to be aligned. - -/** - * My function. - * - * @param {string} lorem Description. - * @param {int} sit - * - * @return {string} Return description - * with multi line, but don't touch. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"tags":["param"]}] -// Message: Expected JSDoc block lines to be aligned. - -/** - * Only return doc. - * - * @return {boolean} Return description. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] -// Message: Expected JSDoc block lines to be aligned. - -/** - * Creates OS based shortcuts for files, folders, and applications. - * - * @param {object} options Options object for each OS. - * @return {boolean} True = success, false = failed to create the icon - */ - function quux () {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never"] -// Message: Expected JSDoc block lines to not be aligned. - -/** - * Creates OS based shortcuts for files, folders, and applications. - * - * @param {object} options Options object for each OS. - * @return {boolean} True = success, false = failed to create the icon - */ - function quux () {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never"] -// Message: Expected JSDoc block lines to not be aligned. - -/** - * Creates OS based shortcuts for files, folders, and applications. - * - * @param {object} options Options object for each OS. - * @return True = success, false = failed to create the icon - */ - function quux () {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never"] -// Message: Expected JSDoc block lines to not be aligned. - -/** - * Creates OS based shortcuts for files, folders, and applications. - * - * @param options Options object for each OS. - * @return True = success, false = failed to create the icon - */ - function quux () {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never"] -// Message: Expected JSDoc block lines to not be aligned. - -/** - * Creates OS based shortcuts for files, folders, and applications. - * - * @param {object} options Options object for each OS. - * @param {object} other Other. - * @return True = success, false = failed to create the icon - */ - function quux () {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"tags":["param","return"]}] -// Message: Expected JSDoc block lines to not be aligned. - -/** - * Returns the value stored in the process.env for a given - * environment variable. - * - * @param {string} withPercents '%USERNAME%' - * @param {string} withoutPercents 'USERNAME' - * @return {string} 'bob' || '%USERNAME%' - */ -function quux () {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never"] -// Message: Expected JSDoc block lines to not be aligned. - -/** - * Function description - * description with post delimiter. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] -// Message: Expected JSDoc block lines to be aligned. - -/** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - * - * @return {string} Return description. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"customSpacings":{"postDelimiter":2,"postTag":3,"postType":2}}] -// Message: Expected JSDoc block lines to be aligned. - -/** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - * - * @return {string} Return description. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"customSpacings":{"postName":3}}] -// Message: Expected JSDoc block lines to be aligned. - -/** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"customSpacings":{"postDelimiter":2,"postTag":3,"postType":2}}] -// Message: Expected JSDoc block lines to not be aligned. - -/** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"customSpacings":{"postName":3}}] -// Message: Expected JSDoc block lines to not be aligned. - - - /**\r - * Function description.\r - *\r - * @param {string} lorem Description.\r - * @param {int} sit Description multi words.\r - * @param {string} sth Multi\r - * line description.\r - */\r - const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] -// Message: Expected JSDoc block lines to be aligned. - -/** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi - * line with asterisks. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] -// Message: Expected JSDoc block lines to be aligned. - -/** - * Function description. - * - * @param {string} lorem - Description. - * @param {int} sit - Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never"] -// Message: Expected JSDoc block lines to not be aligned. - -/** - * Function description. - * - * @param {string} lorem - Description. - * @param {int} sit - Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"customSpacings":{"postHyphen":2}}] -// Message: Expected JSDoc block lines to not be aligned. - -/** - * Function description. - * - * @param {string} lorem - Description. - * @param {int} sit - Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"customSpacings":{"postHyphen":2}}] -// Message: Expected JSDoc block lines to not be aligned. - -/** - * Function description. - * - * @param {string} lorem - Description. - * @param {int} sit - Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"customSpacings":{"postHyphen":2}}] -// Message: Expected JSDoc block lines to be aligned. - -/** - * Function description. - * - * @param {string} lorem - Description. - * @param {int} sit - Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"customSpacings":{"postHyphen":2}}] -// Message: Expected JSDoc block lines to be aligned. - -/** - * Function description. - * - * @param {string} lorem - Description. - * @param {int} sit - Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"customSpacings":{"postHyphen":2}}] -// Message: Expected JSDoc block lines to not be aligned. - -/** - * @param {string} lorem Description - * with multiple lines. - */ -function quux () { -} -// "jsdoc/check-line-alignment": ["error"|"warn", "any",{"wrapIndent":" "}] -// Message: Expected wrap indent - -/** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi - * line with asterisks. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"wrapIndent":" "}] -// Message: Expected JSDoc block lines to be aligned. - -/** - * My function. - * - * @param {string} lorem Description. - * @param {int} sit Description multiple - * lines. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"wrapIndent":" "}] -// Message: Expected JSDoc block lines to not be aligned. - -/** - * @property {boolean} tls_verify_client_certificate - Whether our API should - * enable TLS client authentication - */ -function quux () {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"wrapIndent":" "}] -// Message: Expected wrap indent - -/** - * @property {boolean} tls_verify_client_certificate - Whether our API should - * enable TLS client authentication - */ -function quux () {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"wrapIndent":""}] -// Message: Expected wrap indent -```` - -The following patterns are not considered problems: - -````js -/** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * With tabs. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ - const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * Function description. - * - * @param {string} lorem - Description. - * @param {int} sit - Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * @param {string} lorem Description. - * @param {int} sit - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * @param {int} sit - * @param {string} lorem Description. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * No params. - */ -const fn = () => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ -function fn( lorem, sit ) {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -const object = { - /** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ - fn( lorem, sit ) {}, -} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -class ClassName { - /** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ - fn( lorem, sit ) {} -} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * Function description. - * - * @arg {string} lorem Description. - * @arg {int} sit Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * @namespace - * @property {object} defaults Description. - * @property {int} defaults.lorem Description multi words. - */ -const config = { - defaults: { - lorem: 1 - } -} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * My object. - * - * @typedef {Object} MyObject - * - * @property {string} lorem Description. - * @property {int} sit Description multi words. - */ -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * My object. - * - * @typedef {Object} MyObject - * - * @property {{a: number, b: string, c}} lorem Description. - * @property {Object.} sit Description multi words. - * @property {Object.} amet Description} weird {multi} {{words}}. - * @property {Object.} dolor - */ -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * My object. - * - * @typedef {Object} MyObject - * - * @property {{a: number, b: string, c}} lorem Description. - * @property {Object.} sit Description multi words. - * @property {Object.} amet Description} weird {multi} {{words}}. - * @property {Object.} dolor - */ -// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"tags":["typedef","property"]}] - -/** - * My object. - * - * @template T - * @template W,X,Y,Z - * @template {string} K - K must be a string or string literal - * @template {{ serious(): string }} Seriousalizable - must have a serious method - * - * @param {{a: number, b: string, c}} lorem Description. - */ -// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"tags":["template","param"]}] - -/** @param {number} lorem */ -const fn = ( lorem ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * Creates OS based shortcuts for files, folders, and applications. - * - * @param {object} options Options object for each OS. - * @return {boolean} True = success, false = failed to create the icon - */ - function quux () {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * Creates OS based shortcuts for files, folders, and applications. - * - * @param {object} options Options object for each OS. - * @return {boolean} - */ - function quux () {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * Only return doc. - * - * @return {boolean} Return description. - */ - function quux () {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * Not validating without option. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ -const fn = ( lorem, sit ) => {} - -/** - * Creates OS based shortcuts for files, folders, and applications. - * - * @param {object} options Options object for each OS. - * @return {boolean} True = success, false = failed to create the icon - */ -function quux (options) {} - -/** - * Creates OS based shortcuts for files, folders, and applications. - * - * @param {object} options Options object for each OS. - * @param {object} other Other. - * @return True = success, false = failed to create the icon - */ - function quux () {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"tags":["param"]}] - -/** - * @param parameter Description. - */ -function func(parameter){ - -} - -/** - * Function description - * description with post delimiter. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"preserveMainDescriptionPostDelimiter":true}] - -/** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - * - * @return {string} Return description. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"customSpacings":{"postDelimiter":2,"postTag":3,"postType":2}}] - -/** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - * - * @return {string} Return description. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"customSpacings":{"postDelimiter":2,"postTag":3,"postType":2}}] - -/** - * @param {{ - * ids: number[] - * }} params - */ -const fn = ({ids}) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - - - /**\r - * Function description.\r - *\r - * @param {string} lorem Description.\r - * @param {int} sit Description multi words.\r - * @param {string} sth Multi\r - * line description.\r - */\r - const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * Function description. - * - * @param lorem Description. - * @param sit Description multi words. - */ -const fn = ( lorem, sit ) => {}; - -/** - * Function description. - * - * @return Return description. - */ -const fn2 = () => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * Function description. - * - * @param lorem Description. - * @param sit Description multi words. - * @return Return description. - */ -const fn = ( lorem, sit ) => {}; - -/** - * Function description. - * - * @param lorem Description. - * @param sit Description multi words. - * @returns Return description. - */ -const fn2 = ( lorem, sit ) => {}; - -/** - * Function description. - * - * @param a Description. - * @param b Description multi words. - * @returns Return description. - */ -const fn3 = ( a, b ) => {}; -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * Function description. - * - * @argument lorem Description. - * @return Return description. - */ -const fn = ( lorem ) => {}; - -/** - * Function description. - * - * @argument lorem Description. - * @returns Return description. - */ -const fn2 = ( lorem ) => {}; -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * Function description. - * - * @arg a Description. - * @returns Return description. - */ -const fn = ( a ) => {}; -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * Function description. - * - * @arg lorem Description. - * @param sit Return description. - */ -const fn = ( lorem, sit ) => {}; -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * Function description. - * - * @arg a Description. - * @argument b Second description. - * @returns Return description. - */ -const fn = ( a, b ) => {}; -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] - -/** - * @param {string} lorem Description - * with multiple lines. - */ -function quux () { -} -// "jsdoc/check-line-alignment": ["error"|"warn", "any",{"wrapIndent":" "}] - -/** - * @param {string} lorem Description - * with multiple lines. - */ -function quux () { -} -// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"wrapIndent":" "}] - -/** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi - * line with asterisks. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"wrapIndent":" "}] - -/** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi - * line with - * asterisks. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"wrapIndent":" "}] - -/** - * @param { - * string | number - * } lorem Description - * with multiple lines. - */ -function quux () { -} -// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"wrapIndent":" "}] - -/** - * @param {string|string[]|TemplateResult|TemplateResult[]} event.detail.description - - * Notification description - */ -function quux () {} -// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"wrapIndent":" "}] -```` - - - - -### check-param-names - -Ensures that parameter names in JSDoc are matched by corresponding items in -the function declaration. - - - -#### Destructuring - -Note that by default the rule will not report parameters present on the docs -but non-existing on the function signature when an object rest property is part -of that function signature since the seemingly non-existing properties might -actually be a part of the object rest property. - -```js -/** - * @param options - * @param options.foo - */ -function quux ({foo, ...extra}) {} -``` - -To require that `extra` be documented--and that any extraneous properties -get reported--e.g., if there had been a `@param options.bar` above--you -can use the `checkRestProperty` option which insists that the rest -property be documented (and that there be no other implicit properties). -Note, however, that jsdoc [does not appear](https://github.com/jsdoc/jsdoc/issues/1773) -to currently support syntax or output to distinguish rest properties from -other properties, so in looking at the docs alone without looking at the -function signature, the disadvantage of enabling this option is that it -may appear that there is an actual property named `extra`. - - - -#### Options - - - -##### checkRestProperty - -See the "Destructuring" section. Defaults to `false`. - - - -##### checkTypesPattern - -See `require-param` under the option of the same name. - - - -##### enableFixer - -Set to `true` to auto-remove `@param` duplicates (based on identical -names). - -Note that this option will remove duplicates of the same name even if -the definitions do not match in other ways (e.g., the second param will -be removed even if it has a different type or description). - - - -##### allowExtraTrailingParamDocs - -If set to `true`, this option will allow extra `@param` definitions (e.g., -representing future expected or virtual params) to be present without needing -their presence within the function signature. Other inconsistencies between -`@param`'s and present function parameters will still be reported. - - - -##### checkDestructured - -Whether to check destructured properties. Defaults to `true`. - - - -##### useDefaultObjectProperties - -Set to `true` if you wish to avoid reporting of child property documentation -where instead of destructuring, a whole plain object is supplied as default -value but you wish its keys to be considered as signalling that the properties -are present and can therefore be documented. Defaults to `false`. - - - -##### disableExtraPropertyReporting - -Whether to check for extra destructured properties. Defaults to `false`. Change -to `true` if you want to be able to document properties which are not actually -destructured. Keep as `false` if you expect properties to be documented in -their own types. Note that extra properties will always be reported if another -item at the same level is destructured as destructuring will prevent other -access and this option is only intended to permit documenting extra properties -that are available and actually used in the function. - -||| -|---|---| -|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| -|Options|`allowExtraTrailingParamDocs`, `checkDestructured`, `checkRestProperty`, `checkTypesPattern`, `useDefaultObjectProperties`, `disableExtraPropertyReporting`| -|Tags|`param`| -|Aliases|`arg`, `argument`| -|Recommended|true| -The following patterns are considered problems: - -````js -/** - * @param Foo - */ -function quux (foo = 'FOO') { - -} -// Message: Expected @param names to be "foo". Got "Foo". - -/** - * @arg Foo - */ -function quux (foo = 'FOO') { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} -// Message: Expected @arg names to be "foo". Got "Foo". - -/** - * @param Foo - */ -function quux (foo) { - -} -// Message: Expected @param names to be "foo". Got "Foo". - -/** - * @param Foo.Bar - */ -function quux (foo) { - -} -// Message: @param path declaration ("Foo.Bar") appears before any real parameter. - -/** - * @param foo - * @param Foo.Bar - */ -function quux (foo) { - -} -// Message: @param path declaration ("Foo.Bar") root node name ("Foo") does not match previous real parameter name ("foo"). - -/** - * Assign the project to a list of employees. - * @param {string} employees[].name - The name of an employee. - * @param {string} employees[].department - The employee's department. - */ -function assign (employees) { - -}; -// Message: @param path declaration ("employees[].name") appears before any real parameter. - -/** - * Assign the project to a list of employees. - * @param {string} employees[].name - The name of an employee. - * @param {string} employees[].name - The employee's department. - */ -function assign (employees) { - -}; -// "jsdoc/check-param-names": ["error"|"warn", {"enableFixer":true}] -// Message: Duplicate @param "employees[].name" - -/** - * @param foo - * @param foo.bar - * @param bar - */ -function quux (bar, foo) { - -} -// Message: Expected @param names to be "bar, foo". Got "foo, bar". - -/** - * @param foo - * @param bar - */ -function quux (foo) { - -} -// Message: @param "bar" does not match an existing function parameter. - -/** - * @param foo - * @param foo - */ -function quux (foo) { - -} -// "jsdoc/check-param-names": ["error"|"warn", {"enableFixer":true}] -// Message: Duplicate @param "foo" - -class bar { - /** - * @param foo - * @param foo - */ - quux (foo) { - - } -} -// "jsdoc/check-param-names": ["error"|"warn", {"enableFixer":true}] -// Message: Duplicate @param "foo" - -/** - * @param foo - * @param foo - */ -function quux (foo, bar) { - -} -// "jsdoc/check-param-names": ["error"|"warn", {"enableFixer":true}] -// Message: Duplicate @param "foo" - -/** - * @param foo - * @param foo - */ -function quux (foo, foo) { - -} -// "jsdoc/check-param-names": ["error"|"warn", {"enableFixer":true}] -// Message: Duplicate @param "foo" - -/** - * @param cfg - * @param cfg.foo - * @param cfg.foo - */ -function quux ({foo}) { - -} -// "jsdoc/check-param-names": ["error"|"warn", {"enableFixer":true}] -// Message: Duplicate @param "cfg.foo" - -/** - * @param cfg - * @param cfg.foo - * @param cfg.foo - */ -function quux ({foo}) { - -} -// Message: Duplicate @param "cfg.foo" - -/** - * @param cfg - * @param cfg.foo - */ -function quux ({foo, bar}) { - -} -// Message: Missing @param "cfg.bar" - -/** - * @param cfg - * @param cfg.foo - * @param [cfg.foo] - * @param baz - */ -function quux ({foo}, baz) { - -} -// "jsdoc/check-param-names": ["error"|"warn", {"enableFixer":true}] -// Message: Duplicate @param "cfg.foo" - -/** - * @param cfg - * @param cfg.foo - * @param [cfg.foo="with a default"] - * @param baz - */ -function quux ({foo, bar}, baz) { - -} -// Message: Missing @param "cfg.bar" - -/** - * @param cfg - * @param cfg.foo - * @param [cfg.foo="with a default"] - * @param baz - */ -function quux ({foo}, baz) { - -} -// "jsdoc/check-param-names": ["error"|"warn", {"enableFixer":true}] -// Message: Duplicate @param "cfg.foo" - -/** - * @param cfg - * @param [cfg.foo="with a default"] - * @param baz - */ -function quux ({foo, bar}, baz) { - -} -// Message: Missing @param "cfg.bar" - -/** - * @param args - */ -function quux ({a, b}) { - -} -// Message: Missing @param "args.a" - -/** - * @param args - */ -function quux ({a, b} = {}) { - -} -// Message: Missing @param "args.a" - -export class SomeClass { - /** - * @param prop - */ - constructor(private property: string) {} -} -// Message: Expected @param names to be "property". Got "prop". - -export class SomeClass { - /** - * @param prop - * @param prop.foo - */ - constructor(prop: { foo: string, bar: string }) {} -} -// Message: Missing @param "prop.bar" - -export class SomeClass { - /** - * @param prop - * @param prop.foo - * @param prop.bar - */ - constructor(options: { foo: string, bar: string }) {} -} -// Message: @param "prop" does not match parameter name "options" - -export class SomeClass { - /** - * @param options - * @param options.foo - * @param options.bar - */ - constructor(options: { foo: string }) {} -} -// Message: @param "options.bar" does not exist on options - -/** - * @param foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}} -// Message: Unexpected tag `@param` - -/** - * @param {Error} error Exit code - * @param {number} [code = 1] Exit code - */ -function quux (error, cde = 1) { -}; -// Message: Expected @param names to be "error, cde". Got "error, code". - -/** - * @param foo - */ -function quux ([a, b] = []) { - -} -// Message: Missing @param "foo."0"" - -/** - * @param options - * @param options.foo - */ -function quux ({foo, ...extra}) { -} -// "jsdoc/check-param-names": ["error"|"warn", {"checkRestProperty":true}] -// Message: Missing @param "options.extra" - -/** - * @param cfg - * @param cfg.foo - * @param cfg.bar - * @param cfg.extra - */ -function quux ({foo, ...extra}) { - -} -// "jsdoc/check-param-names": ["error"|"warn", {"checkRestProperty":true}] -// Message: @param "cfg.bar" does not exist on cfg - -/** - * Converts an SVGRect into an object. - * @param {SVGRect} bbox - a SVGRect - */ -const bboxToObj = function ({x, y, width, height}) { - return {x, y, width, height}; -}; -// "jsdoc/check-param-names": ["error"|"warn", {"checkTypesPattern":"SVGRect"}] -// Message: Missing @param "bbox.x" - -/** - * Converts an SVGRect into an object. - * @param {object} bbox - a SVGRect - */ -const bboxToObj = function ({x, y, width, height}) { - return {x, y, width, height}; -}; -// Message: Missing @param "bbox.x" - -module.exports = class GraphQL { - /** - * @param fetchOptions - * @param cacheKey - */ - fetch = ({ url, ...options }, cacheKey) => { - } -}; -// "jsdoc/check-param-names": ["error"|"warn", {"checkRestProperty":true}] -// Message: Missing @param "fetchOptions.url" - -/** - * Testing - * - * @param options - * @param options.one One - * @param options.two Two - * @param options.four Four - */ -function testingEslint(options: { - one: string; - two: string; - three: string; -}): string { - return one + two + three; -} -// Message: Missing @param "options.three" - -/** - * - */ -function quux() { - -} -// Settings: {"jsdoc":{"structuredTags":{"see":{"name":false,"required":["name"]}}}} -// Message: Cannot add "name" to `require` with the tag's `name` set to `false` - -/** - * @param root - * @param foo - */ -function quux ({foo, bar}, baz) { - -} -// "jsdoc/check-param-names": ["error"|"warn", {"checkDestructured":false}] -// Message: Expected @param names to be "root, baz". Got "root, foo". - -/** - * Description. - * @param {Object} options - * @param {FooBar} foo - */ -function quux ({ foo: { bar } }) {} -// Message: Missing @param "options.foo" - -/** - * Description. - * @param {Object} options - * @param options.foo - */ -function quux ({ foo: { bar } }) {} -// Message: Missing @param "options.foo.bar" - -/** - * Description. - * @param {object} options Options. - * @param {object} options.foo A description. - * @param {object} options.foo.bar - */ -function foo({ foo: { bar: { baz } }}) {} -// Message: Missing @param "options.foo.bar.baz" - -/** -* Returns a number. -* @param {Object} props Props. -* @param {Object} props.prop Prop. -* @param {string} props.prop.a String. -* @param {string} props.prop.b String. -* @return {number} A number. -*/ -export function testFn1 ({ prop = { a: 1, b: 2 } }) { -} -// "jsdoc/check-param-names": ["error"|"warn", {"useDefaultObjectProperties":false}] -// Message: @param "props.prop.a" does not exist on props - -/** - * @param {object} cfg - * @param {string} cfg.foo - * @param {string} cfg.bar - * @param {object} cfg.extra - */ -function quux ({foo}) { - -} -// Message: @param "cfg.bar" does not exist on cfg - -/** - * @param {object} cfg - * @param {string} cfg.foo - * @param {string} cfg.bar - * @param {object} cfg.extra - */ -function quux ({foo}) { - -} -// "jsdoc/check-param-names": ["error"|"warn", {"disableExtraPropertyReporting":true}] -// Message: @param "cfg.bar" does not exist on cfg - -/** - * @param {object} root - * @param {object} root.cfg - * @param {object} root.cfg.a - * @param {string} root.cfg.a.foo - * @param {string} root.cfg.a.bar - * @param {object} root.cfg.a.extra - */ -function quux ({cfg: {a: {foo}}}) { - -} -// Message: @param "root.cfg.a.bar" does not exist on root - -/** - * @param {object} root - * @param {object} root.cfg - * @param {object} root.cfg.a - * @param {string} root.cfg.a.foo - * @param {string} root.cfg.a.bar - * @param {object} root.cfg.a.extra - */ -function quux ({cfg: {a: {foo}}}) { - -} -// "jsdoc/check-param-names": ["error"|"warn", {"disableExtraPropertyReporting":true}] -// Message: @param "root.cfg.a.bar" does not exist on root - -/** - * @param {object} root - * @param {object} root.cfg - * @param {string} root.cfg.foo - * @param {string} root.cfg.bar - * @param {object} root.cfg.extra - */ -function quux ({cfg}) { - -} -// Message: @param "root.cfg.foo" does not exist on root - -/** - * @param foo - * @param foo - * on another line - */ -function quux (foo) { - -} -// "jsdoc/check-param-names": ["error"|"warn", {"enableFixer":true}] -// Message: Duplicate @param "foo" - -/** - * @param barr This is the description of bar. Oops, we misspelled "bar" as "barr". - */ -declare function foo(bar: number) {} -// Message: Expected @param names to be "bar". Got "barr". -```` - -The following patterns are not considered problems: - -````js -/** - * - */ -function quux (foo) { - -} - -/** - * @param foo - */ -function quux (foo) { - -} - -/** - * @param foo - * @param bar - */ -function quux (foo, bar) { - -} - -/** - * @param foo - * @param bar - */ -function quux (foo, bar, baz) { - -} - -/** - * @param foo - * @param foo.foo - * @param bar - */ -function quux (foo, bar) { - -} - -/** - * @param args - */ -function quux (...args) { - -} - -/** - * @param foo - * @param foo.a - * @param foo.b - */ -function quux ({a, b}) { - -} - -/** - * @param foo - * @param foo.a - * @param foo.b - */ -function quux ({"a": A, b}) { - -} - -/** - * @param foo - * @param foo."a" - * @param foo.b - */ -function quux ({a: A, b}) { - -} - -/** - * @param foo - * @param foo."a-b" - * @param foo.b - */ -function quux ({"a-b": A, b}) { - -} - -/** - * @param foo - * @param foo.bar - * @param foo.baz - * @param bar - */ -function quux (foo, bar) { - -} - -/** - * Assign the project to a list of employees. - * @param {object[]} employees - The employees who are responsible for the project. - * @param {string} employees[].name - The name of an employee. - * @param {string} employees[].department - The employee's department. - */ -function assign (employees) { - -}; - -export class SomeClass { - /** - * @param property - */ - constructor(private property: string) {} -} - -export class SomeClass { - /** - * @param options - * @param options.foo - * @param options.bar - */ - constructor(options: { foo: string, bar: string }) {} -} - -export class SomeClass { - /** - * @param options - * @param options.foo - * @param options.bar - */ - constructor({ foo, bar }: { foo: string, bar: string }) {} -} - -export class SomeClass { - /** - * @param options - * @param options.foo - * @param options.bar - */ - constructor({ foo, bar }: { foo: string, bar: string }) {} -} - -/** - * @param {Error} error Exit code - * @param {number} [code = 1] Exit code - */ -function quux (error, code = 1) { -}; - -/** - * @param foo - * @param bar - */ -function quux (foo) { - -} -// "jsdoc/check-param-names": ["error"|"warn", {"allowExtraTrailingParamDocs":true}] - -/** - * @param cfg - * @param cfg.foo - * @param baz - */ -function quux ({foo}, baz) { - -} - -/** - * @param cfg - * @param cfg.foo - * @param cfg2 - */ -function quux ({foo}, cfg2) { - -} - -/** - * @param cfg - * @param cfg.foo - * @param baz - * @param baz.cfg - */ -function quux ({foo}, {cfg}) { - -} - -/** - * @param options - * @param options.foo - */ -function quux ({foo, ...extra}) { -} - -/** - * @param foo - * @param bar - */ -function quux (foo, bar, ...extra) { - -} - -/** -* Converts an SVGRect into an object. -* @param {SVGRect} bbox - a SVGRect -*/ -const bboxToObj = function ({x, y, width, height}) { - return {x, y, width, height}; -}; - -/** -* Converts an SVGRect into an object. -* @param {SVGRect} bbox - a SVGRect -*/ -const bboxToObj = function ({x, y, width, height}) { - return {x, y, width, height}; -}; - -/** -* Converts an SVGRect into an object. -* @param {object} bbox - a SVGRect -*/ -const bboxToObj = function ({x, y, width, height}) { - return {x, y, width, height}; -}; -// "jsdoc/check-param-names": ["error"|"warn", {"checkTypesPattern":"SVGRect"}] - -class CSS { - /** - * Set one or more CSS properties for the set of matched elements. - * - * @param {Object} propertyObject - An object of property-value pairs to set. - */ - setCssObject(propertyObject: {[key: string]: string | number}): void { - } -} - -/** - * Logs a string. - * - * @param input - String to output. - */ -export default function (input: { - [foo: string]: { a: string; b: string }; -}): void { - input; -} - -export class Thing { - foo: any; - - /** - * @param {} C - */ - constructor(C: { new (): any }) { - this.foo = new C(); - } -} - -/** - * @param foo - * @param root - */ -function quux (foo, {bar}) { - -} -// "jsdoc/check-param-names": ["error"|"warn", {"checkDestructured":false}] - -class A { - /** - * Show a prompt. - * @param hideButton true if button should be hidden, false otherwise - * @param onHidden delegate to call when the prompt is hidden - */ - public async showPrompt(hideButton: boolean, onHidden: {(): void}): Promise - { - } -} - -/** - * Description. - * @param {Object} options Options. - * @param {FooBar} options.foo foo description. - */ -function quux ({ foo: { bar }}) {} - -/** - * Description. - * @param {FooBar} options - * @param {Object} options.foo - */ -function quux ({ foo: { bar } }) {} -// "jsdoc/check-param-names": ["error"|"warn", {"checkTypesPattern":"FooBar"}] - -/** - * Description. - * @param {Object} options - * @param {FooBar} options.foo - * @param {FooBar} options.baz - */ -function quux ({ foo: { bar }, baz: { cfg } }) {} - -/** - * Item - * - * @param {object} props - * @param {object} props.data - case data - * @param {string} props.data.className - additional css class - * @param props.val - */ -export default function Item({ - data: { - className, - } = {}, - val = 4 -}) { -} - -/** - * @param obj - * @param obj.data - * @param obj.data."0" - * @param obj.data."1" - * @param obj.data."2" - * @param obj.defaulting - * @param obj.defaulting."0" - * @param obj.defaulting."1" - */ -function Item({ - data: [foo, bar, ...baz], - defaulting: [quux, xyz] = [] -}) { -} - -/** -* Returns a number. -* @param {Object} props Props. -* @param {Object} props.prop Prop. -* @param {string} props.prop.a String. -* @param {string} props.prop.b String. -* @return {number} A number. -*/ -export function testFn1 ({ prop = { a: 1, b: 2 } }) { -} -// "jsdoc/check-param-names": ["error"|"warn", {"useDefaultObjectProperties":true}] - -/** - * @param {object} root - * @param {object} root.cfg - * @param {string} root.cfg.foo - * @param {string} root.cfg.bar - * @param {object} root.cfg.extra - */ -function quux ({cfg}) { - -} -// "jsdoc/check-param-names": ["error"|"warn", {"disableExtraPropertyReporting":true}] - -class A { - /** - * @param cfg - * @param cfg.abc - */ - constructor({ - [new.target.prop]: cX, - abc - }) { - } -} - -/** - * @param root - * @param root."0" Ignored - * @param root."1" Our "b" - */ -const foo = ([, b]) => b; - -/** - * @param arg1 This is the description for arg1. - */ -function foo(this: void, arg1: number): void; - -declare global { - /** - * @param arg1 This is the number for foo. - */ - function foo(this: void, arg1: number): void; -} - -declare global { - /** - * @param r Range is 0-1. - * @param g Range is 0-1. - * @param b Range is 0-1. - */ - function Color( - this: void, - r: float, - g: float, - b: float, - ): Color; -} - -/** - * @param this desc - * @param bar number to return - * @returns number returned back to caller - */ -function foo(this: T, bar: number): number { - console.log(this.name); - return bar; -} -```` - - - - -### check-property-names - -Ensures that property names in JSDoc are not duplicated on the same block -and that nested properties have defined roots. - - - -#### Options - - - -##### enableFixer - -Set to `true` to auto-remove `@property` duplicates (based on -identical names). - -Note that this option will remove duplicates of the same name even if -the definitions do not match in other ways (e.g., the second property will -be removed even if it has a different type or description). - -||| -|---|---| -|Context|Everywhere| -|Options|`enableFixer`| -|Tags|`property`| -|Aliases|`prop`| -|Recommended|true| - -The following patterns are considered problems: - -````js -/** - * @typedef (SomeType) SomeTypedef - * @property Foo.Bar - */ -// Message: @property path declaration ("Foo.Bar") appears before any real property. - -/** - * @typedef (SomeType) SomeTypedef - * @property foo - * @property Foo.Bar - */ -// Message: @property path declaration ("Foo.Bar") root node name ("Foo") does not match previous real property name ("foo"). - -/** - * Assign the project to a list of employees. - * @typedef (SomeType) SomeTypedef - * @property {string} employees[].name - The name of an employee. - * @property {string} employees[].department - The employee's department. - */ -// Message: @property path declaration ("employees[].name") appears before any real property. - -/** - * Assign the project to a list of employees. - * @typedef (SomeType) SomeTypedef - * @property {string} employees[].name - The name of an employee. - * @property {string} employees[].name - The employee's department. - */ -// "jsdoc/check-property-names": ["error"|"warn", {"enableFixer":true}] -// Message: Duplicate @property "employees[].name" - -/** - * @typedef (SomeType) SomeTypedef - * @property foo - * @property foo - */ -// "jsdoc/check-property-names": ["error"|"warn", {"enableFixer":true}] -// Message: Duplicate @property "foo" - -/** - * @typedef (SomeType) SomeTypedef - * @property foo - * @property foo - */ -// Message: Duplicate @property "foo" - -/** - * @typedef (SomeType) SomeTypedef - * @property cfg - * @property cfg.foo - * @property cfg.foo - */ -function quux ({foo, bar}) { - -} -// "jsdoc/check-property-names": ["error"|"warn", {"enableFixer":true}] -// Message: Duplicate @property "cfg.foo" - -class Test { - /** - * @typedef (SomeType) SomeTypedef - * @property cfg - * @property cfg.foo - * @property cfg.foo - */ - quux ({foo, bar}) { - - } -} -// "jsdoc/check-property-names": ["error"|"warn", {"enableFixer":true}] -// Message: Duplicate @property "cfg.foo" - -/** - * @typedef (SomeType) SomeTypedef - * @property cfg - * @property cfg.foo - * @property [cfg.foo] - * @property baz - */ -function quux ({foo, bar}, baz) { - -} -// "jsdoc/check-property-names": ["error"|"warn", {"enableFixer":true}] -// Message: Duplicate @property "cfg.foo" - -/** - * @typedef (SomeType) SomeTypedef - * @property cfg - * @property cfg.foo - * @property [cfg.foo="with a default"] - * @property baz - */ -function quux ({foo, bar}, baz) { - -} -// "jsdoc/check-property-names": ["error"|"warn", {"enableFixer":true}] -// Message: Duplicate @property "cfg.foo" - -/** - * @typedef (SomeType) SomeTypedef - * @prop foo - * @prop foo - */ -// Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}} -// "jsdoc/check-property-names": ["error"|"warn", {"enableFixer":true}] -// Message: Duplicate @prop "foo" - -/** - * @typedef (SomeType) SomeTypedef - * @property foo - */ -// Settings: {"jsdoc":{"tagNamePreference":{"property":false}}} -// Message: Unexpected tag `@property` -```` - -The following patterns are not considered problems: - -````js -/** - * - */ - -/** - * @typedef (SomeType) SomeTypedef - * @property foo - */ - -/** - * @typedef (SomeType) SomeTypedef - * @prop foo - */ - -/** - * @typedef (SomeType) SomeTypedef - * @property foo - * @property bar - */ - -/** - * @typedef (SomeType) SomeTypedef - * @property foo - * @property foo.foo - * @property bar - */ - -/** - * Assign the project to a list of employees. - * @typedef (SomeType) SomeTypedef - * @property {object[]} employees - The employees who are responsible for the project. - * @property {string} employees[].name - The name of an employee. - * @property {string} employees[].department - The employee's department. - */ - -/** - * @typedef (SomeType) SomeTypedef - * @property {Error} error Exit code - * @property {number} [code = 1] Exit code - */ - -/** - * @namespace (SomeType) SomeNamespace - * @property {Error} error Exit code - * @property {number} [code = 1] Exit code - */ - -/** - * @class - * @property {Error} error Exit code - * @property {number} [code = 1] Exit code - */ -function quux (code = 1) { - this.error = new Error('oops'); - this.code = code; -} - -/** - * @typedef (SomeType) SomeTypedef - * @property foo - * @property foo.bar - * @property foo.baz - * @property bar - */ -```` - - - - -### check-syntax - -Reports against syntax not encouraged for the mode (e.g., Google Closure -Compiler in "jsdoc" or "typescript" mode). Note that this rule will not check -for types that are wholly invalid for a given mode, as that is covered by -`valid-types`. - -Currently checks against: - -- Use of `=` in "jsdoc" or "typescript" mode - -Note that "jsdoc" actually allows Closure syntax, but with another -option available for optional parameters (enclosing the name in brackets), the -rule is enforced (except under "permissive" and "closure" modes). - -||| -|---|---| -|Context|everywhere| -|Tags|N/A| -|Recommended|false| - -The following patterns are considered problems: - -````js -/** - * @param {string=} foo - */ -function quux (foo) { - -} -// Message: Syntax should not be Google Closure Compiler style. -```` - -The following patterns are not considered problems: - -````js -/** - * @param {string=} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @param {string} [foo] - */ -function quux (foo) { - -} - -/** - * - */ -function quux (foo) { - -} -```` - - - - -### check-tag-names - -Reports invalid block tag names. - -Valid [JSDoc 3 Block Tags](https://jsdoc.app/#block-tags) are: - -``` -abstract -access -alias -async -augments -author -borrows -callback -class -classdesc -constant -constructs -copyright -default -deprecated -description -enum -event -example -exports -external -file -fires -function -generator -global -hideconstructor -ignore -implements -inheritdoc -inner -instance -interface -kind -lends -license -listens -member -memberof -memberof! -mixes -mixin -module -name -namespace -override -package -param -private -property -protected -public -readonly -requires -returns -see -since -static -summary -this -throws -todo -tutorial -type -typedef -variation -version -yields -``` - -`modifies` is also supported (see [source](https://github.com/jsdoc/jsdoc/blob/master/packages/jsdoc/lib/jsdoc/tag/dictionary/definitions.js#L594)) -but is undocumented. - -The following synonyms are also recognized if you set them in -`tagNamePreference` as a key (or replacement): - -``` -arg -argument -const -constructor -defaultvalue -desc -emits -exception -extends -fileoverview -func -host -method -overview -prop -return -var -virtual -yield -``` - -If you wish to allow in certain cases both a primary tag name and its -alias(es), you can set a normally non-preferred tag name to itself to indicate -that you want to allow both the default tag (in this case `@returns`) and a -non-default (in this case `return`): - -```js -"tagNamePreference": { - "return": "return", -} -``` - -Because the tags indicated as replacements in -`settings.jsdoc.tagNamePreference` will automatically be considered as valid, -the above works. - -Likewise are the tag keys of `settings.jsdoc.structuredTags` automatically -considered as valid (as their defining an expected structure for tags implies -the tags may be used). - -For [TypeScript](https://www.typescriptlang.org/docs/handbook/type-checking-javascript-files.html#supported-jsdoc) -(or Closure), when `settings.jsdoc.mode` is set to `typescript` or `closure`, -one may also use the following: - -``` -template -``` - -And for [Closure](https://github.com/google/closure-compiler/wiki/Annotating-JavaScript-for-the-Closure-Compiler), -when `settings.jsdoc.mode` is set to `closure`, one may use the following (in -addition to the jsdoc and TypeScript tags–though replacing `returns` with -`return`): - -``` -define (synonym of `const` per jsdoc source) -dict -export -externs -final -implicitCast (casing distinct from that recognized by jsdoc internally) -inheritDoc (casing distinct from that recognized by jsdoc internally) -noalias -nocollapse -nocompile -noinline -nosideeffects -polymer -polymerBehavior -preserve -record (synonym of `interface` per jsdoc source) -struct -suppress -unrestricted -``` - -...and these undocumented tags which are only in [source](https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/parsing/Annotation.java): - -``` -closurePrimitive -customElement -expose -hidden -idGenerator -meaning -mixinClass -mixinFunction -ngInject -owner -typeSummary -wizaction -``` - -If you instead wish to reject a normally valid tag, e.g., `@todo`, one may set the -tag to `false`: - -```json -{ - "rules": {}, - "settings": { - "jsdoc": { - "tagNamePreference": { - "todo": false - } - } - } -} -``` - - - -#### Options - - - -##### definedTags - -Use an array of `definedTags` strings to configure additional, allowed tags. -The format is as follows: - -```json -{ - "definedTags": ["note", "record"] -} -``` - - - -##### enableFixer - -Set to `false` to disable auto-removal of types that are redundant with the [`typed` option](#user-content-typed). - - - -##### jsxTags - -If this is set to `true`, all of the following tags used to control JSX output are allowed: - -``` -jsx -jsxFrag -jsxImportSource -jsxRuntime -``` - -For more information, see the [babel documentation](https://babeljs.io/docs/en/babel-plugin-transform-react-jsx). - - - -##### typed - -If this is set to `true`, additionally checks for tag names that are redundant when using a type checker such as TypeScript. - -These tags are always unnecessary when using TypeScript or similar: - -``` -augments -callback -class -enum -implements -private -property -protected -public -readonly -this -type -typedef -``` - -These tags are unnecessary except when inside a TypeScript `declare` context: - -``` -abstract -access -class -constant -constructs -default -enum -export -exports -function -global -inherits -instance -interface -member -memberof -memberOf -method -mixes -mixin -module -name -namespace -override -property -requires -static -this -``` - -||| -|---|---| -|Context|everywhere| -|Tags|N/A| -|Recommended|true| -|Options|`definedTags`, `enableFixer`, `jsxTags`, `typed`| -|Settings|`tagNamePreference`, `mode`| - -The following patterns are considered problems: - -````js -/** @type {string} */let a; -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: '@type' is redundant when using a type system. - -/** @type {string} */let a; -// "jsdoc/check-tag-names": ["error"|"warn", {"enableFixer":false,"typed":true}] -// Message: '@type' is redundant when using a type system. - -/** @type {string} */ let a; -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: '@type' is redundant when using a type system. - -/** @type {string} */ -let a; -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: '@type' is redundant when using a type system. - -/** @type {string} */ -let a; -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: '@type' is redundant when using a type system. - -/** @type {string} - extra info */ -let a; -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: '@type' is redundant when using a type system. - -/** - * Existing comment. - * @type {string} - */ -let a; -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: '@type' is redundant when using a type system. - -/** @abstract */ -let a; -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: '@abstract' is redundant outside of ambient (`declare`/`.d.ts`) contexts when using a type system. - -/** @abstract */ -let a; -// "jsdoc/check-tag-names": ["error"|"warn", {"enableFixer":false,"typed":true}] -// Message: '@abstract' is redundant outside of ambient (`declare`/`.d.ts`) contexts when using a type system. - -const a = { - /** @abstract */ - b: true, -}; -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: '@abstract' is redundant outside of ambient (`declare`/`.d.ts`) contexts when using a type system. - -/** @template */ -let a; -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: '@template' without a name is redundant when using a type system. - -/** - * Prior description. - * - * @template - */ -let a; -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: '@template' without a name is redundant when using a type system. - -/** @typoo {string} */ -let a; -// Message: Invalid JSDoc tag name "typoo". - -/** @typoo {string} */ -let a; -// Settings: {"jsdoc":{"structuredTags":{"parameter":{"name":"namepath-referencing","required":["type","name"],"type":true}}}} -// Message: Invalid JSDoc tag name "typoo". - -/** - * @Param - */ -function quux () { - -} -// Message: Invalid JSDoc tag name "Param". - -/** - * @foo - */ -function quux () { - -} -// Message: Invalid JSDoc tag name "foo". - -/** - * @arg foo - */ -function quux (foo) { - -} -// Message: Invalid JSDoc tag (preference). Replace "arg" JSDoc tag with "param". - -/** - * @param foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} -// Message: Invalid JSDoc tag (preference). Replace "param" JSDoc tag with "arg". - -/** - * @constructor foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"tag constructor":"cons"}}} -// Message: Invalid JSDoc tag (preference). Replace "constructor" JSDoc tag with "cons". - -/** - * @arg foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"arg":"somethingDifferent"}}} -// Message: Invalid JSDoc tag (preference). Replace "arg" JSDoc tag with "somethingDifferent". - -/** - * @param foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"param":"parameter"}}} -// Message: Invalid JSDoc tag (preference). Replace "param" JSDoc tag with "parameter". - -/** - * @bar foo - */ -function quux (foo) { - -} -// Message: Invalid JSDoc tag name "bar". - -/** - * @baz @bar foo - */ -function quux (foo) { - -} -// "jsdoc/check-tag-names": ["error"|"warn", {"definedTags":["bar"]}] -// Message: Invalid JSDoc tag name "baz". - -/** - * @bar - * @baz - */ -function quux (foo) { - -} -// "jsdoc/check-tag-names": ["error"|"warn", {"definedTags":["bar"]}] -// Message: Invalid JSDoc tag name "baz". - -/** - * @todo - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"todo":false}}} -// Message: Blacklisted tag found (`@todo`) - -/** - * @todo - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"todo":{"message":"Please resolve to-dos or add to the tracker"}}}} -// Message: Please resolve to-dos or add to the tracker - -/** - * @todo - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"todo":{"message":"Please use x-todo instead of todo","replacement":"x-todo"}}}} -// Message: Please use x-todo instead of todo - -/** - * @todo - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"todo":{"message":"Please use x-todo instead of todo","replacement":"x-todo"}}}} -// Message: Please use x-todo instead of todo - -/** - * @todo - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"todo":55}}} -// Message: Invalid `settings.jsdoc.tagNamePreference`. Values must be falsy, a string, or an object. - -/** - * @property {object} a - * @prop {boolean} b - */ -function quux () { - -} -// Message: Invalid JSDoc tag (preference). Replace "prop" JSDoc tag with "property". - -/** - * @abc foo - * @abcd bar - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"abc":"abcd"}}} -// "jsdoc/check-tag-names": ["error"|"warn", {"definedTags":["abcd"]}] -// Message: Invalid JSDoc tag (preference). Replace "abc" JSDoc tag with "abcd". - -/** - * @abc - * @abcd - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"abc":"abcd"}}} -// Message: Invalid JSDoc tag (preference). Replace "abc" JSDoc tag with "abcd". - -/** - * @returns - */ -function quux (foo) {} -// Settings: {"jsdoc":{"mode":"closure"}} -// Message: Invalid JSDoc tag (preference). Replace "returns" JSDoc tag with "return". - -/** - * @modifies - * @abstract - * @access - * @alias - * @async - * @augments - * @author - * @borrows - * @callback - * @class - * @classdesc - * @constant - * @constructs - * @copyright - * @default - * @deprecated - * @description - * @enum - * @event - * @example - * @exports - * @external - * @file - * @fires - * @function - * @generator - * @global - * @hideconstructor - * @ignore - * @implements - * @inheritdoc - * @inheritDoc - * @inner - * @instance - * @interface - * @kind - * @lends - * @license - * @listens - * @member - * @memberof - * @memberof! - * @mixes - * @mixin - * @module - * @name - * @namespace - * @override - * @package - * @param - * @private - * @property - * @protected - * @public - * @readonly - * @requires - * @returns - * @see - * @since - * @static - * @summary - * @this - * @throws - * @todo - * @tutorial - * @type - * @typedef - * @variation - * @version - * @yields - */ -function quux (foo) {} -// Settings: {"jsdoc":{"mode":"badMode"}} -// Message: Unrecognized value `badMode` for `settings.jsdoc.mode`. - -/** - * @modifies - * @abstract - * @access - * @alias - * @async - * @augments - * @author - * @borrows - * @callback - * @class - * @classdesc - * @constant - * @constructs - * @copyright - * @default - * @deprecated - * @description - * @enum - * @event - * @example - * @exports - * @external - * @file - * @fires - * @function - * @generator - * @global - * @hideconstructor - * @ignore - * @implements - * @inheritdoc - * @inheritDoc - * @inner - * @instance - * @interface - * @kind - * @lends - * @license - * @listens - * @member - * @memberof - * @memberof! - * @mixes - * @mixin - * @module - * @name - * @namespace - * @override - * @package - * @param - * @private - * @property - * @protected - * @public - * @readonly - * @requires - * @returns - * @see - * @since - * @static - * @summary - * @this - * @throws - * @todo - * @tutorial - * @type - * @typedef - * @variation - * @version - * @yields - * @internal - * @overload - * @satisfies - * @template - */ -function quux (foo) {} -// Message: Invalid JSDoc tag name "internal". - -/** - * @externs - */ -function quux (foo) {} -// Message: Invalid JSDoc tag name "externs". - -/** @jsx h */ -/** @jsxFrag Fragment */ -/** @jsxImportSource preact */ -/** @jsxRuntime automatic */ -// Message: Invalid JSDoc tag name "jsx". - -/** - * @constructor - */ -function Test() { - this.works = false; -} -// Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}} -// Message: Invalid JSDoc tag (preference). Replace "constructor" JSDoc tag with "class". - -/** @typedef {Object} MyObject - * @property {string} id - my id - */ -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: '@typedef' is redundant when using a type system. - -/** - * @property {string} id - my id - */ -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: '@property' is redundant when using a type system. - -/** @typedef {Object} MyObject */ -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: '@typedef' is redundant when using a type system. - -/** @typedef {Object} MyObject - */ -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] -// Message: '@typedef' is redundant when using a type system. -```` - -The following patterns are not considered problems: - -````js -/** @default 0 */ -let a; -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] - -/** @default 0 */ -declare let a; -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] - -/** @abstract */ -let a; -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] - -/** @abstract */ -declare let a; -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] - -/** @abstract */ -{ declare let a; } -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] - -function test() { - /** @abstract */ - declare let a; -} -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] - -/** @template name */ -let a; -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] - -/** @param param - takes information */ -function takesOne(param) {} -// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] - -/** - * @param foo - */ -function quux (foo) { - -} - -/** - * @memberof! foo - */ -function quux (foo) { - -} - -/** - * @arg foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} - -/** - * @parameter foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"structuredTags":{"parameter":{"name":"namepath-referencing","required":["type","name"],"type":true}}}} - -/** - * @bar foo - */ -function quux (foo) { - -} -// "jsdoc/check-tag-names": ["error"|"warn", {"definedTags":["bar"]}] - -/** - * @baz @bar foo - */ -function quux (foo) { - -} -// "jsdoc/check-tag-names": ["error"|"warn", {"definedTags":["baz","bar"]}] - -/** - * @baz @bar foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"param":"baz","returns":{"message":"Prefer `bar`","replacement":"bar"},"todo":false}}} - -/** - * @returns - */ -function quux (foo) {} - -/** - * @return - */ -function quux (foo) {} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @modifies - * @abstract - * @access - * @alias - * @async - * @augments - * @author - * @borrows - * @callback - * @class - * @classdesc - * @constant - * @constructs - * @copyright - * @default - * @deprecated - * @description - * @enum - * @event - * @example - * @exports - * @external - * @file - * @fires - * @function - * @generator - * @global - * @hideconstructor - * @ignore - * @implements - * @inheritdoc - * @inheritDoc - * @inner - * @instance - * @interface - * @kind - * @lends - * @license - * @listens - * @member - * @memberof - * @memberof! - * @mixes - * @mixin - * @module - * @name - * @namespace - * @override - * @package - * @param - * @private - * @property - * @protected - * @public - * @readonly - * @requires - * @returns - * @see - * @since - * @static - * @summary - * @this - * @throws - * @todo - * @tutorial - * @type - * @typedef - * @variation - * @version - * @yields - */ -function quux (foo) {} - -/** - * @modifies - * @abstract - * @access - * @alias - * @async - * @augments - * @author - * @borrows - * @callback - * @class - * @classdesc - * @constant - * @constructs - * @copyright - * @default - * @deprecated - * @description - * @enum - * @event - * @example - * @exports - * @external - * @file - * @fires - * @function - * @generator - * @global - * @hideconstructor - * @ignore - * @implements - * @inheritdoc - * @inheritDoc - * @inner - * @instance - * @interface - * @kind - * @lends - * @license - * @listens - * @member - * @memberof - * @memberof! - * @mixes - * @mixin - * @module - * @name - * @namespace - * @override - * @package - * @param - * @private - * @property - * @protected - * @public - * @readonly - * @requires - * @returns - * @see - * @since - * @static - * @summary - * @this - * @throws - * @todo - * @tutorial - * @type - * @typedef - * @variation - * @version - * @yields - * @internal - * @overload - * @satisfies - * @template - */ -function quux (foo) {} -// Settings: {"jsdoc":{"mode":"typescript"}} - -/** - * @externs - */ -function quux (foo) {} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * - */ -function quux (foo) { - -} - -/** - * @todo - */ -function quux () { - -} - -/** - * @extends Foo - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"augments":{"message":"@extends is to be used over @augments.","replacement":"extends"}}}} - -/** - * (Set tag name preference to itself to get aliases to - * work along with main tag name.) - * @augments Bar - * @extends Foo - */ -function quux () { -} -// Settings: {"jsdoc":{"tagNamePreference":{"extends":"extends"}}} - -/** - * Registers the `target` class as a transient dependency; each time the dependency is resolved a new instance will be created. - * - * @param target - The class / constructor function to register as transient. - * - * @example ```ts -@transient() -class Foo { } -``` - * @param Time for a new tag - */ -export function transient(target?: T): T { - // ... -} - -/** @jsx h */ -/** @jsxFrag Fragment */ -/** @jsxImportSource preact */ -/** @jsxRuntime automatic */ -// "jsdoc/check-tag-names": ["error"|"warn", {"jsxTags":true}] - -/** - * @internal - */ -// Settings: {"jsdoc":{"mode":"typescript"}} - -interface WebTwain { - /** - * Converts the images specified by the indices to base64 synchronously. - * @function WebTwain#ConvertToBase64 - * @returns {Base64Result} - - ConvertToBase64(): Base64Result; - */ - - /** - * Converts the images specified by the indices to base64 asynchronously. - * @function WebTwain#ConvertToBase64 - * @returns {boolean} - */ - ConvertToBase64(): boolean; -} - -/** - * @overload - * @satisfies - */ -// Settings: {"jsdoc":{"mode":"typescript"}} -```` - - - - -### check-types - -Reports invalid types. - -By default, ensures that the casing of native types is the same as in this -list: - -``` -undefined -null -boolean -number -bigint -string -symbol -object (For TypeScript's sake, however, using `Object` when specifying child types on it like `Object`) -Array -Function -Date -RegExp -``` - - - -#### Options - -`check-types` allows one option: - -- An option object: - - with the key `noDefaults` to insist that only the supplied option type - map is to be used, and that the default preferences (such as "string" - over "String") will not be enforced. The option's default is `false`. - - with the key `exemptTagContexts` which will avoid reporting when a - bad type is found on a specified tag. Set to an array of objects with - a key `tag` set to the tag to exempt, and a `types` key which can - either be `true` to indicate that any types on that tag will be allowed, - or to an array of strings which will only allow specific bad types. - If an array of strings is given, these must match the type exactly, - e.g., if you only allow `"object"`, it will not allow - `"object"`. Note that this is different from the - behavior of `settings.jsdoc.preferredTypes`. This option is useful - for normally restricting generic types like `object` with - `preferredTypes`, but allowing `typedef` to indicate that its base - type is `object`. - - with the key `unifyParentAndChildTypeChecks` which will treat - `settings.jsdoc.preferredTypes` keys such as `SomeType` as matching - not only child types such as an unadorned `SomeType` but also - `SomeType` and `SomeType.` (and if the type is - instead `Array` (or `[]`), it will match `aChildType[]`). If this - option is `false` or - unset, the former format will only apply to types which are not parent - types/unions whereas the latter formats will only apply for parent - types/unions. The special types `[]`, `.<>` (or `.`), and `<>` - act only as parent types (and will not match a bare child type such as - `Array` even when unified, though, as mentioned, `Array` will match - say `string[]` or `Array.` when unified). The special type - `*` is only a child type. Note that there is no detection of parent - and child type together, e.g., you cannot specify preferences for - `string[]` specifically as distinct from say `number[]`, but you can - target both with `[]` or the child types `number` or `string`. - -If a value is present both as a key and as a value, neither the key nor the -value will be reported. Thus one can use this fact to allow both `object` -and `Object`, for example. Note that in "typescript" mode, this is the default -behavior. - -See also the documentation on `settings.jsdoc.preferredTypes` which impacts -the behavior of `check-types`. - -Note that if there is an error [parsing](https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser) -types for a tag, the function will silently ignore that tag, leaving it to -the `valid-types` rule to report parsing errors. - - - -#### Why not capital case everything? - -Why are `boolean`, `number` and `string` exempt from starting with a capital -letter? Let's take `string` as an example. In Javascript, everything is an -object. The `String` object has prototypes for string functions such as -`.toUpperCase()`. - -Fortunately we don't have to write `new String()` everywhere in our code. -Javascript will automatically wrap string primitives into string Objects when -we're applying a string function to a string primitive. This way the memory -footprint is a tiny little bit smaller, and the -[GC](https://en.wikipedia.org/wiki/Garbage_collection_(computer_science)) has -less work to do. - -So in a sense, there are two types of strings in Javascript: -1. `{string}` literals, also called primitives -2. `{String}` Objects. - -We use the primitives because it's easier to write and uses less memory. -`{String}` and `{string}` are technically both valid, but they are not the same. - -```js -new String('lard') // String {0: "l", 1: "a", 2: "r", 3: "d", length: 4} -'lard' // "lard" -new String('lard') === 'lard' // false -``` - -To make things more confusing, there are also object literals (like `{}`) and -`Object` objects. But object literals are still static `Object`s and `Object` -objects are instantiated objects. So an object primitive is still an `Object` -object. - -However, `Object.create(null)` objects are not `instanceof Object`, however, so -in the case of such a plain object we lower-case to indicate possible support -for these objects. Also, nowadays, TypeScript also [discourages](https://www.typescriptlang.org/docs/handbook/declaration-files/do-s-and-don-ts.html#:~:text=%E2%9D%8C%20Don't%20ever%20use,used%20appropriately%20in%20JavaScript%20code.) -use of `Object` -as a lone type. However, one additional complexity is that TypeScript allows and -actually [currently requires](https://github.com/microsoft/TypeScript/issues/20555) -`Object` (with the initial upper-case) if used in the syntax -`Object.` or `Object` is not useable -in native TypeScript syntax, even if it is allowed within JSDoc. - -Basically, for primitives, we want to define the type as a primitive, because -that's what we use in 99.9% of cases. For everything else, we use the type -rather than the primitive. Otherwise it would all just be `{object}` (with the -additional exception of the special case of `Object.<>` just mentioned). - -In short: It's not about consistency, rather about the 99.9% use case. (And -some functions might not even support the objects if they are checking for -identity.) - -type name | `typeof` | check-types | testcase ---|--|--|-- -**Array** | object | **Array** | `([]) instanceof Array` -> `true` -**Function** | function | **Function** | `(function f () {}) instanceof Function` -> `true` -**Date** | object | **Date** | `(new Date()) instanceof Date` -> `true` -**RegExp** | object | **RegExp** | `(new RegExp(/.+/)) instanceof RegExp` -> `true` -Object | **object** | **object** | `({}) instanceof Object` -> `true` but `Object.create(null) instanceof Object` -> `false` -Boolean | **boolean** | **boolean** | `(true) instanceof Boolean` -> **`false`** -Number | **number** | **number** | `(41) instanceof Number` -> **`false`** -String | **string** | **string** | `("test") instanceof String` -> **`false`** - -If you define your own tags and don't wish their bracketed portions checked -for types, you can use `settings.jsdoc.structuredTags` with a tag `type` of -`false`. If you set their `type` to an array, only those values will be -permitted. - -||| -|---|---| -|Context|everywhere| -|Tags|`augments`, `class`, `constant`, `enum`, `implements`, `member`, `module`, `namespace`, `param`, `property`, `returns`, `throws`, `type`, `typedef`, `yields`| -|Aliases|`constructor`, `const`, `extends`, `var`, `arg`, `argument`, `prop`, `return`, `exception`, `yield`| -|Closure-only|`package`, `private`, `protected`, `public`, `static`| -|Recommended|true| -|Options|`noDefaults`, `exemptTagContexts`, `unifyParentAndChildTypeChecks`| -|Settings|`preferredTypes`, `mode`, `structuredTags`| - -The following patterns are considered problems: - -````js -/** - * @param {abc} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"abc":100}}} -// Message: Invalid `settings.jsdoc.preferredTypes`. Values must be falsy, a string, or an object. - -/** - * @param {Number} foo - */ -function quux (foo) { - -} -// Message: Invalid JSDoc @param "foo" type "Number"; prefer: "number". - -/** - * @arg {Number} foo - */ -function quux (foo) { - -} -// Message: Invalid JSDoc @arg "foo" type "Number"; prefer: "number". - -/** - * @returns {Number} foo - * @throws {Number} foo - */ -function quux () { - -} -// Message: Invalid JSDoc @returns type "Number"; prefer: "number". - -/** - * @param {(Number | string | Boolean)=} foo - */ -function quux (foo, bar, baz) { - -} -// Message: Invalid JSDoc @param "foo" type "Number"; prefer: "number". - -/** - * @param {Array.} foo - */ -function quux (foo, bar, baz) { - -} -// Message: Invalid JSDoc @param "foo" type "Number"; prefer: "number". - -/** - * @param {(Number | String)[]} foo - */ -function quux (foo, bar, baz) { - -} -// Message: Invalid JSDoc @param "foo" type "Number"; prefer: "number". - -/** - * @param {abc} foo - */ -function qux(foo) { -} -// Settings: {"jsdoc":{"preferredTypes":{"abc":"Abc","string":"Str"}}} -// Message: Invalid JSDoc @param "foo" type "abc"; prefer: "Abc". - -/** - * @param {abc} foo - */ -function qux(foo) { -} -// Settings: {"jsdoc":{"preferredTypes":{"abc":{"replacement":"Abc"},"string":"Str"}}} -// Message: Invalid JSDoc @param "foo" type "abc"; prefer: "Abc". - -/** - * @param {abc} foo - */ -function qux(foo) { -} -// Settings: {"jsdoc":{"preferredTypes":{"abc":{"message":"Messed up JSDoc @{{tagName}}{{tagValue}} type \"abc\"; prefer: \"Abc\".","replacement":"Abc"},"string":"Str"}}} -// Message: Messed up JSDoc @param "foo" type "abc"; prefer: "Abc". - -/** - * @param {abc} foo - * @param {cde} bar - * @param {object} baz - */ -function qux(foo, bar, baz) { -} -// Settings: {"jsdoc":{"preferredTypes":{"abc":{"message":"Messed up JSDoc @{{tagName}}{{tagValue}} type \"abc\"; prefer: \"Abc\".","replacement":"Abc"},"cde":{"message":"More messed up JSDoc @{{tagName}}{{tagValue}} type \"cde\"; prefer: \"Cde\".","replacement":"Cde"},"object":"Object"}}} -// Message: Messed up JSDoc @param "foo" type "abc"; prefer: "Abc". - -/** - * @param {abc} foo - */ -function qux(foo) { -} -// Settings: {"jsdoc":{"preferredTypes":{"abc":{"message":"Messed up JSDoc @{{tagName}}{{tagValue}} type \"abc\".","replacement":false},"string":"Str"}}} -// Message: Messed up JSDoc @param "foo" type "abc". - -/** - * @param {abc} foo - */ -function qux(foo) { -} -// Settings: {"jsdoc":{"preferredTypes":{"abc":{"message":"Messed up JSDoc @{{tagName}}{{tagValue}} type \"abc\"."},"string":"Str"}}} -// Message: Messed up JSDoc @param "foo" type "abc". - -/** - * @param {abc} foo - * @param {Number} bar - */ -function qux(foo, bar) { -} -// Settings: {"jsdoc":{"preferredTypes":{"abc":"Abc","string":"Str"}}} -// "jsdoc/check-types": ["error"|"warn", {"noDefaults":true}] -// Message: Invalid JSDoc @param "foo" type "abc"; prefer: "Abc". - -/** - * @param {abc} foo - * @param {Number} bar - */ -function qux(foo, bar) { -} -// Settings: {"jsdoc":{"preferredTypes":{"abc":"Abc","string":"Str"}}} -// Message: Invalid JSDoc @param "foo" type "abc"; prefer: "Abc". - -/** - * @param {abc} foo - */ -function qux(foo) { -} -// Settings: {"jsdoc":{"preferredTypes":{"abc":false,"string":"Str"}}} -// Message: Invalid JSDoc @param "foo" type "abc". - -/** - * @param {abc} foo - */ -function qux(foo) { -} -// Settings: {"jsdoc":{"preferredTypes":{"abc":false}}} -// Message: Invalid JSDoc @param "foo" type "abc". - -/** - * @param {*} baz - */ -function qux(baz) { -} -// Settings: {"jsdoc":{"preferredTypes":{"*":false,"abc":"Abc","string":"Str"}}} -// Message: Invalid JSDoc @param "baz" type "*". - -/** - * @param {*} baz - */ -function qux(baz) { -} -// Settings: {"jsdoc":{"preferredTypes":{"*":"aaa","abc":"Abc","string":"Str"}}} -// Message: Invalid JSDoc @param "baz" type "*"; prefer: "aaa". - -/** - * @param {abc} foo - * @param {Number} bar - */ -function qux(foo, bar) { -} -// Settings: {"jsdoc":{"preferredTypes":{"abc":"Abc","string":"Str"}}} -// Message: Invalid JSDoc @param "foo" type "abc"; prefer: "Abc". - -/** - * @param {Array} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"Array":"GenericArray"}}} -// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "GenericArray". - -/** - * @param {Array} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"Array":"GenericArray","Array.<>":"GenericArray"}}} -// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "GenericArray". - -/** - * @param {Array.} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"Array.<>":"GenericArray"}}} -// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "GenericArray". - -/** - * @param {Array} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"Array<>":"GenericArray"}}} -// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "GenericArray". - -/** - * @param {string[]} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"[]":"SpecialTypeArray"}}} -// Message: Invalid JSDoc @param "foo" type "[]"; prefer: "SpecialTypeArray". - -/** - * @param {string[]} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"[]":"SpecialTypeArray"}}} -// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] -// Message: Invalid JSDoc @param "foo" type "[]"; prefer: "SpecialTypeArray". - -/** - * @param {string[]} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"Array":"SpecialTypeArray"}}} -// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] -// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "SpecialTypeArray". - -/** - * @param {object} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}} -// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". - -/** - * @param {object} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject","object.<>":"GenericObject"}}} -// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". - -/** - * @param {object} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject","object<>":"GenericObject"}}} -// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". - -/** - * @param {object.} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object.<>":"GenericObject"}}} -// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". - -/** - * @param {object} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object<>":"GenericObject"}}} -// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". - -/** - * @param {object.} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object.<>":"GenericObject"}}} -// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". - -/** - * @param {object} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object<>":"GenericObject"}}} -// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". - -/** - * @param {object.} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}} -// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] -// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". - -/** - * @param {object} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}} -// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] -// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". - -/** - * @param {object} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}} -// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] -// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". - -/** - * @param {object} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object":false}}} -// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] -// Message: Invalid JSDoc @param "foo" type "object". - -/** - * @param {object} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object":false}}} -// Message: Invalid JSDoc @param "foo" type "object". - -/** - * @param {object.} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}} -// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] -// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". - -/** - * @param {object} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}} -// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] -// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". - -/** - * - * @param {string[][]} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"[]":"Array."}}} -// Message: Invalid JSDoc @param "foo" type "[]"; prefer: "Array.". - -/** - * - * @param {string[][]} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"[]":"Array.<>"}}} -// Message: Invalid JSDoc @param "foo" type "[]"; prefer: "Array.<>". - -/** - * - * @param {string[][]} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"[]":"Array<>"}}} -// Message: Invalid JSDoc @param "foo" type "[]"; prefer: "Array<>". - -/** - * - * @param {object.>} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object.":"Object"}}} -// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object". - -/** - * - * @param {object.>} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object.":"Object<>"}}} -// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object<>". - -/** - * - * @param {object>} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object<>":"Object."}}} -// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object.". - -/** - * - * @param {Array.>} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"Array.":"[]"}}} -// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "[]". - -/** - * - * @param {Array.>} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"Array.":"Array<>"}}} -// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "Array<>". - -/** - * - * @param {Array.>} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"Array.":"<>"}}} -// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "<>". - -/** - * - * @param {Array.>} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"Array.":"<>"}}} -// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "<>". - -/** - * - * @param {Array.>} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"MyArray.":"<>"}}} -// Message: Invalid JSDoc @param "foo" type "MyArray"; prefer: "<>". - -/** - * - * @param {Array>} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"<>":"Array."}}} -// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "Array.". - -/** - * - * @param {Array>} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"Array":"Array."}}} -// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] -// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "Array.". - -/** - * - * @param {Array>} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"<>":"[]"}}} -// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "[]". - -/** @typedef {String} foo */ -// Message: Invalid JSDoc @typedef "foo" type "String"; prefer: "string". - -/** - * @this {array} - */ -function quux () {} -// Settings: {"jsdoc":{"mode":"closure"}} -// Message: Invalid JSDoc @this type "array"; prefer: "Array". - -/** - * @export {array} - */ -function quux () {} -// Settings: {"jsdoc":{"mode":"closure"}} -// Message: Invalid JSDoc @export type "array"; prefer: "Array". - -/** - * @typedef {object} foo - * @property {object} bar - */ -// Settings: {"jsdoc":{"preferredTypes":{"object":"Object"}}} -// "jsdoc/check-types": ["error"|"warn", {"exemptTagContexts":[{"tag":"typedef","types":true}]}] -// Message: Invalid JSDoc @property "bar" type "object"; prefer: "Object". - -/** @typedef {object} foo */ -// Settings: {"jsdoc":{"preferredTypes":{"object":"Object"}}} -// "jsdoc/check-types": ["error"|"warn", {"exemptTagContexts":[{"tag":"typedef","types":["array"]}]}] -// Message: Invalid JSDoc @typedef "foo" type "object"; prefer: "Object". - -/** - * @typedef {object} foo - * @property {object} bar - */ -// Settings: {"jsdoc":{"preferredTypes":{"object":"Object"}}} -// "jsdoc/check-types": ["error"|"warn", {"exemptTagContexts":[{"tag":"typedef","types":["object"]}]}] -// Message: Invalid JSDoc @property "bar" type "object"; prefer: "Object". - -/** @typedef {object} foo */ -// Settings: {"jsdoc":{"preferredTypes":{"object<>":"Object<>"}}} -// "jsdoc/check-types": ["error"|"warn", {"exemptTagContexts":[{"tag":"typedef","types":["object"]}]}] -// Message: Invalid JSDoc @typedef "foo" type "object"; prefer: "Object<>". - -/** - * @param {Array} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"Array.<>":"[]","Array<>":"[]"}}} -// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "[]". - -/** - * @typedef {object} foo - */ -function a () {} - -/** - * @typedef {Object} foo - */ -function b () {} -// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"object":"Object"}}} -// Message: Invalid JSDoc @typedef "foo" type "object"; prefer: "Object". - -/** - * @aCustomTag {Number} foo - */ -// Settings: {"jsdoc":{"structuredTags":{"aCustomTag":{"type":true}}}} -// Message: Invalid JSDoc @aCustomTag "foo" type "Number"; prefer: "number". - -/** - * @aCustomTag {Number} foo - */ -// Settings: {"jsdoc":{"structuredTags":{"aCustomTag":{"type":["otherType","anotherType"]}}}} -// Message: Invalid JSDoc @aCustomTag "foo" type "Number"; prefer: ["otherType","anotherType"]. - -/** - * @param {Object[]} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"Object":"object"}}} -// Message: Invalid JSDoc @param "foo" type "Object"; prefer: "object". - -/** - * @param {object.} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"object.<>":"Object"}}} -// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object". - -/** - * @param {object.} foo - */ -function quux (foo) { -} -// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"Object":"object","object.<>":"Object<>","Object.<>":"Object<>","object<>":"Object<>"}}} -// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object<>". - -/** - * @param {Object.} foo - */ -function quux (foo) { -} -// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"Object":"object","object.<>":"Object<>","Object.<>":"Object<>","object<>":"Object<>"}}} -// Message: Invalid JSDoc @param "foo" type "Object"; prefer: "Object<>". - -/** - * @param {object} foo - */ -function quux (foo) { -} -// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"Object":"object","object.<>":"Object<>","Object.<>":"Object<>","object<>":"Object<>"}}} -// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object<>". - -/** - * @param {object.} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"Object":"object","object.<>":"Object<>","Object.<>":"Object<>","object<>":"Object<>"}}} -// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object<>". - -/** - * @param {object.} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"mode":"typescript"}} -// Message: Use object shorthand or index signatures instead of `object`, e.g., `{[key: string]: string}` - -/** - * - * @param {Object} param - * @return {Object | String} - */ -function abc(param) { - if (param.a) - return {}; - return 'abc'; -} -// Message: Invalid JSDoc @param "param" type "Object"; prefer: "object". - -/** - * @param {object} root - * @param {number} root.a - * @param {object} b - */ -function a () {} -// Settings: {"jsdoc":{"preferredTypes":{"object":{"skipRootChecking":true}}}} -// Message: Invalid JSDoc @param "b" type "object". -```` - -The following patterns are not considered problems: - -````js -/** - * @param {number} foo - * @param {Bar} bar - * @param {*} baz - */ -function quux (foo, bar, baz) { - -} - -/** - * @arg {number} foo - * @arg {Bar} bar - * @arg {*} baz - */ -function quux (foo, bar, baz) { - -} - -/** - * @param {(number | string | boolean)=} foo - */ -function quux (foo, bar, baz) { - -} - -/** - * @param {typeof bar} foo - */ -function qux(foo) { -} - -/** - * @param {import('./foo').bar.baz} foo - */ -function qux(foo) { -} - -/** - * @param {(x: number, y: string) => string} foo - */ -function qux(foo) { -} - -/** - * @param {() => string} foo - */ -function qux(foo) { -} - -/** - * @returns {Number} foo - * @throws {Number} foo - */ -function quux () { - -} -// "jsdoc/check-types": ["error"|"warn", {"noDefaults":true}] - -/** - * @param {Object} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object":"Object"}}} - -/** - * @param {Array} foo - */ -function quux (foo) { - -} - -/** - * @param {Array.} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"Array":"GenericArray"}}} - -/** - * @param {Array} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"Array":"GenericArray"}}} - -/** - * @param {string[]} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"Array":"SpecialTypeArray","Array.<>":"SpecialTypeArray","Array<>":"SpecialTypeArray"}}} - -/** - * @param {string[]} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"Array.<>":"SpecialTypeArray","Array<>":"SpecialTypeArray"}}} -// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] - -/** - * @param {Array} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"[]":"SpecialTypeArray"}}} - -/** - * @param {Array} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"[]":"SpecialTypeArray"}}} -// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] - -/** - * @param {Array} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"Array.<>":"GenericArray"}}} - -/** - * @param {Array} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"Array<>":"GenericArray"}}} - -/** - * @param {object} foo - */ -function quux (foo) { - -} - -/** - * @param {object.} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}} - -/** - * @param {object} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}} - -/** - * @param {object.} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}} - -/** - * @param {object} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}} - -/** - * @param {object} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object.<>":"GenericObject"}}} - -/** - * @param {object} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"object<>":"GenericObject"}}} - -/** - * @param {Number<} Ignore the error as not a validating rule - */ -function quux (foo) { - -} - -/** @param {function(...)} callback The function to invoke. */ -var subscribe = function(callback) {}; - -/** - * @this {Array} - */ -function quux () {} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @export {Array} - */ -function quux () {} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** @type {new() => EntityBase} */ - -/** @typedef {object} foo */ -// Settings: {"jsdoc":{"preferredTypes":{"object":"Object"}}} -// "jsdoc/check-types": ["error"|"warn", {"exemptTagContexts":[{"tag":"typedef","types":true}]}] - -/** @typedef {object} foo */ -// Settings: {"jsdoc":{"preferredTypes":{"object":"Object"}}} - -/** @typedef {object} foo */ -// Settings: {"jsdoc":{"preferredTypes":{"object<>":"Object<>"}}} -// "jsdoc/check-types": ["error"|"warn", {"exemptTagContexts":[{"tag":"typedef","types":["object"]}]}] - -/** - * @typedef {object} foo - */ - - /** - * @typedef {Object} foo - */ -// Settings: {"jsdoc":{"preferredTypes":{"object":"Object","Object":"object"}}} - -/** - * @typedef {object} foo - */ -function a () {} - -/** - * @typedef {Object} foo - */ -function b () {} -// Settings: {"jsdoc":{"preferredTypes":{"object":"Object","Object":"object"}}} - -/** - * @typedef {object} foo - */ -function a () {} - -/** - * @typedef {{[key: string]: number}} foo - */ -function b () {} -// Settings: {"jsdoc":{"mode":"typescript"}} - -/** - * @aCustomTag {Number} foo - */ -// Settings: {"jsdoc":{"structuredTags":{"aCustomTag":{"type":false}}}} - -/** - * @aCustomTag {otherType} foo - */ -// Settings: {"jsdoc":{"structuredTags":{"aCustomTag":{"type":["otherType","anotherType"]}}}} - -/** - * @aCustomTag {anotherType|otherType} foo - */ -// Settings: {"jsdoc":{"structuredTags":{"aCustomTag":{"type":["otherType","anotherType"]}}}} - -/** - * Bad types handled by `valid-types` instead. - * @param {str(} foo - */ -function quux (foo) { - -} - -/** - * @param {{[key: string]: number}} foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"mode":"typescript"}} - -/** - * @typedef {object} foo - */ -function a () {} -// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"Object":"object","object.<>":"Object<>","object<>":"Object<>"}}} - -/** - * @typedef {Object} foo - */ -function a () {} -// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"Object":"object","object.<>":"Object<>","object<>":"Object<>"}}} - -/** - * Does something. - * - * @param {Object} spec - Foo. - */ -function foo(spec) { - return spec; -} - -foo() - -/** - * @param {object} root - * @param {number} root.a - */ -function a () {} -// Settings: {"jsdoc":{"preferredTypes":{"object":{"message":"Won't see this message","skipRootChecking":true}}}} - -/** - * @returns {string | undefined} a string or undefined - */ -function quux () {} -// Settings: {"jsdoc":{"preferredTypes":{"[]":{"message":"Do not use *[], use Array<*> instead","replacement":"Array"}}}} -// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] -```` - - - - -### check-values - -This rule checks the values for a handful of tags: - -1. `@version` - Checks that there is a present and valid - [semver](https://semver.org/) version value. -2. `@since` - As with `@version` -3. `@license` - Checks that there is a present and valid SPDX identifier - or is present within an `allowedLicenses` option. -4. `@author` - Checks that there is a value present, and if the option - `allowedAuthors` is present, ensure that the author value is one - of these array items. -5. `@variation` - If `numericOnlyVariation` is set, will checks that there - is a value present, and that it is an integer (otherwise, jsdoc allows any - value). -6. `@kind` - Insists that it be one of the allowed values: 'class', - 'constant', 'event', 'external', 'file', 'function', 'member', 'mixin', - 'module', 'namespace', 'typedef', - - - -#### Options - - - -##### allowedAuthors - -An array of allowable author values. If absent, only non-whitespace will -be checked for. - - - -##### allowedLicenses - -An array of allowable license values or `true` to allow any license text. -If present as an array, will be used in place of SPDX identifiers. - - - -##### licensePattern - -A string to be converted into a `RegExp` (with `u` flag) and whose first -parenthetical grouping, if present, will match the portion of the license -description to check (if no grouping is present, then the whole portion -matched will be used). Defaults to `/([^\n\r]*)/gu`, i.e., the SPDX expression -is expected before any line breaks. - -Note that the `/` delimiters are optional, but necessary to add flags. - -Defaults to using the `u` flag, so to add your own flags, encapsulate -your expression as a string, but like a literal, e.g., `/^mit$/ui`. - - - -##### numericOnlyVariation - -Whether to enable validation that `@variation` must be a number. Defaults to -`false`. - -||| -|---|---| -|Context|everywhere| -|Tags|`@version`, `@since`, `@kind`, `@license`, `@author`, `@variation`| -|Recommended|true| -|Options|`allowedAuthors`, `allowedLicenses`, `licensePattern`| -|Settings|`tagNamePreference`| - -The following patterns are considered problems: - -````js -/** - * @version - */ -function quux (foo) { - -} -// Message: Missing JSDoc @version value. - -/** - * @version 3.1 - */ -function quux (foo) { - -} -// Message: Invalid JSDoc @version: "3.1". - -/** - * @kind - */ -function quux (foo) { - -} -// Message: Missing JSDoc @kind value. - -/** - * @kind -3 - */ -function quux (foo) { - -} -// Message: Invalid JSDoc @kind: "-3"; must be one of: class, constant, event, external, file, function, member, mixin, module, namespace, typedef. - -/** - * @variation -3 - */ -function quux (foo) { - -} -// "jsdoc/check-values": ["error"|"warn", {"numericOnlyVariation":true}] -// Message: Invalid JSDoc @variation: "-3". - -/** - * @since - */ -function quux (foo) { - -} -// Message: Missing JSDoc @since value. - -/** - * @since 3.1 - */ -function quux (foo) { - -} -// Message: Invalid JSDoc @since: "3.1". - -/** - * @license - */ -function quux (foo) { - -} -// Message: Missing JSDoc @license value. - -/** - * @license FOO - */ -function quux (foo) { - -} -// Message: Invalid JSDoc @license: "FOO"; expected SPDX expression: https://spdx.org/licenses/. - -/** - * @license FOO - */ -function quux (foo) { - -} -// "jsdoc/check-values": ["error"|"warn", {"allowedLicenses":["BAR","BAX"]}] -// Message: Invalid JSDoc @license: "FOO"; expected one of BAR, BAX. - -/** - * @license MIT-7 - * Some extra text... - */ -function quux (foo) { - -} -// Message: Invalid JSDoc @license: "MIT-7"; expected SPDX expression: https://spdx.org/licenses/. - -/** - * @license (MIT OR GPL-2.5) - */ -function quux (foo) { - -} -// Message: Invalid JSDoc @license: "(MIT OR GPL-2.5)"; expected SPDX expression: https://spdx.org/licenses/. - -/** - * @license MIT - * Some extra text - */ -function quux (foo) { - -} -// "jsdoc/check-values": ["error"|"warn", {"licensePattern":"[\\s\\S]*"}] -// Message: Invalid JSDoc @license: "MIT -Some extra text"; expected SPDX expression: https://spdx.org/licenses/. - -/** - * @author - */ -function quux (foo) { - -} -// Message: Missing JSDoc @author value. - -/** - * @author Brett Zamir - */ -function quux (foo) { - -} -// "jsdoc/check-values": ["error"|"warn", {"allowedAuthors":["Gajus Kuizinas","golopot"]}] -// Message: Invalid JSDoc @author: "Brett Zamir"; expected one of Gajus Kuizinas, golopot. - -/** - * @variation - */ -function quux (foo) { - -} -// "jsdoc/check-values": ["error"|"warn", {"numericOnlyVariation":true}] -// Message: Missing JSDoc @variation value. - -/** - * @variation 5.2 - */ -function quux (foo) { - -} -// "jsdoc/check-values": ["error"|"warn", {"numericOnlyVariation":true}] -// Message: Invalid JSDoc @variation: "5.2". - -/** - * @license license-prefix Oops - */ -function quux (foo) { - -} -// "jsdoc/check-values": ["error"|"warn", {"licensePattern":"(?<=license-prefix ).*"}] -// Message: Invalid JSDoc @license: "Oops"; expected SPDX expression: https://spdx.org/licenses/. - -/** - * @license Oops - * Copyright 2022 - */ -function quux (foo) { - -} -// "jsdoc/check-values": ["error"|"warn", {"licensePattern":"^([^\n]+)\nCopyright"}] -// Message: Invalid JSDoc @license: "Oops"; expected SPDX expression: https://spdx.org/licenses/. -```` - -The following patterns are not considered problems: - -````js -/** - * @version 3.4.1 - */ -function quux (foo) { - -} - -/** - * @version 3.4.1 - */ -function quux (foo) { - -} - -/** - * @since 3.4.1 - */ -function quux (foo) { - -} - -/** - * @since 3.4.1 - */ -function quux (foo) { - -} - -/** - * @license MIT - */ -function quux (foo) { - -} - -/** - * @license MIT - * Some extra text... - */ -function quux (foo) { - -} - -/** - * @license (MIT OR GPL-2.0) - */ -function quux (foo) { - -} - -/** - * @license FOO - */ -function quux (foo) { - -} -// "jsdoc/check-values": ["error"|"warn", {"allowedLicenses":["FOO","BAR","BAX"]}] - -/** - * @license FOO - */ -function quux (foo) { - -} -// "jsdoc/check-values": ["error"|"warn", {"allowedLicenses":true}] - -/** - * @license MIT - * Some extra text - */ -function quux (foo) { - -} -// "jsdoc/check-values": ["error"|"warn", {"licensePattern":"[^\n]*"}] - -/** - * @author Gajus Kuizinas - */ -function quux (foo) { - -} - -/** - * @author Brett Zamir - */ -function quux (foo) { - -} -// "jsdoc/check-values": ["error"|"warn", {"allowedAuthors":["Gajus Kuizinas","golopot","Brett Zamir"]}] - -/** - * @variation 3 - */ -function quux (foo) { - -} -// "jsdoc/check-values": ["error"|"warn", {"numericOnlyVariation":true}] - -/** - * @variation abc - */ -function quux (foo) { - -} - -/** - * @module test - * @license MIT\r - */ -'use strict'; - -/** - * @kind function - */ -function quux (foo) { - -} - -/** - * @license license-prefix MIT - */ -function quux (foo) { - -} -// "jsdoc/check-values": ["error"|"warn", {"licensePattern":"(?<=license-prefix )MIT|GPL3.0"}] - -/** - * @license - * Copyright 2022 - */ -function quux (foo) { - -} -// "jsdoc/check-values": ["error"|"warn", {"licensePattern":"^([^\n]+)(?!\nCopyright)"}] - -/** - * @license MIT - * Copyright 2022 - */ -function quux (foo) { - -} -// "jsdoc/check-values": ["error"|"warn", {"licensePattern":"^([^\n]+)\nCopyright"}] -```` - - - - -### empty-tags - -Expects the following tags to be empty of any content: - -- `@abstract` -- `@async` -- `@generator` -- `@global` -- `@hideconstructor` -- `@ignore` -- `@inheritdoc` -- `@inner` -- `@instance` -- `@internal` (used by TypeScript) -- `@override` -- `@readonly` - -The following will also be expected to be empty unless `settings.jsdoc.mode` -is set to "closure" (which allows types). - -- `@package` -- `@private` -- `@protected` -- `@public` -- `@static` - -Note that `@private` will still be checked for content by this rule even with -`settings.jsdoc.ignorePrivate` set to `true` (a setting which normally -causes rules not to take effect). - -Similarly, `@internal` will still be checked for content by this rule even with -`settings.jsdoc.ignoreInternal` set to `true`. - - - -#### Options - - - -##### tags - -If you want additional tags to be checked for their descriptions, you may -add them within this option. - -```js -{ - 'jsdoc/empty-tags': ['error', {tags: ['event']}] -} -``` - -||| -|---|---| -|Context|everywhere| -|Tags| `abstract`, `async`, `generator`, `global`, `hideconstructor`, `ignore`, `inheritdoc`, `inner`, `instance`, `internal`, `override`, `readonly`, `package`, `private`, `protected`, `public`, `static` and others added by `tags`| -|Recommended|true| -|Options|`tags`| -The following patterns are considered problems: - -````js -/** - * @abstract extra text - */ -function quux () { - -} -// Message: @abstract should be empty. - -/** - * @interface extra text - */ -// Settings: {"jsdoc":{"mode":"closure"}} -// Message: @interface should be empty. - -class Test { - /** - * @abstract extra text - */ - quux () { - - } -} -// Message: @abstract should be empty. - -/** - * @abstract extra text - * @inheritdoc - * @async out of place - */ -function quux () { - -} -// Message: @abstract should be empty. - -/** - * @event anEvent - */ -function quux () { - -} -// "jsdoc/empty-tags": ["error"|"warn", {"tags":["event"]}] -// Message: @event should be empty. - -/** - * @private {someType} - */ -function quux () { - -} -// Message: @private should be empty. - -/** - * @internal {someType} - */ -function quux () { - -} -// Message: @internal should be empty. - -/** - * @private {someType} - */ -function quux () { - -} -// Settings: {"jsdoc":{"ignorePrivate":true}} -// Message: @private should be empty. -```` - -The following patterns are not considered problems: - -````js -/** - * @abstract - */ -function quux () { - -} - -/** - * - */ -function quux () { - -} - -/** - * @param aName - */ -function quux () { - -} - -/** - * @abstract - * @inheritdoc - * @async - */ -function quux () { - -} - -/** - * @private {someType} - */ -function quux () { - -} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @private - */ -function quux () { - -} - -/** - * @internal - */ -function quux () { - -} - -/** - * Create an array. - * - * @private - * - * @param {string[]} [elem] - Elements to make an array of. - * @param {boolean} [clone] - Optionally clone nodes. - * @returns {string[]} The array of nodes. - */ -function quux () {} -```` - - - - -### implements-on-classes - -Reports an issue with any non-constructor function using `@implements`. - -Constructor functions, whether marked with `@class`, `@constructs`, or being -an ES6 class constructor, will not be flagged. - -To indicate that a function follows another function's signature, one might -instead use `@type` to indicate the `@function` or `@callback` to which the -function is adhering. - - - -#### Options - - - -##### contexts - -Set this to an array of strings representing the AST context (or an object with -`context` and `comment` properties) where you wish the rule to be applied. - -Overrides the default contexts (see below). Set to `"any"` if you want -the rule to apply to any jsdoc block throughout your files (as is necessary -for finding function blocks not attached to a function declaration or -expression, i.e., `@callback` or `@function` (or its aliases `@func` or -`@method`) (including those associated with an `@interface`). - -See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) -section of our README for more on the expected format. - -||| -|---|---| -|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| -|Tags|`implements` (prevented)| -|Recommended|true| -|Options|`contexts`| - -The following patterns are considered problems: - -````js -/** - * @implements {SomeClass} - */ -function quux () { - -} -// Message: @implements used on a non-constructor function - -/** - * @implements {SomeClass} - */ -function quux () { - -} -// "jsdoc/implements-on-classes": ["error"|"warn", {"contexts":["any"]}] -// Message: @implements used on a non-constructor function - -/** - * @function - * @implements {SomeClass} - */ -function quux () { - -} -// "jsdoc/implements-on-classes": ["error"|"warn", {"contexts":["any"]}] -// Message: @implements used on a non-constructor function - -/** - * @callback - * @implements {SomeClass} - */ -// "jsdoc/implements-on-classes": ["error"|"warn", {"contexts":["any"]}] -// Message: @implements used on a non-constructor function - -/** - * @implements {SomeClass} - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"implements":false}}} -// Message: Unexpected tag `@implements` - -class Foo { - /** - * @implements {SomeClass} - */ - constructor() {} - - /** - * @implements {SomeClass} - */ - bar() {} -} -// "jsdoc/implements-on-classes": ["error"|"warn", {"contexts":["MethodDefinition"]}] -// Message: @implements used on a non-constructor function - -class Foo { - /** - * @implements {SomeClass} - */ - constructor() {} - - /** - * @implements {SomeClass} - */ - bar() {} -} -// "jsdoc/implements-on-classes": ["error"|"warn", {"contexts":["any"]}] -// Message: @implements used on a non-constructor function -```` - -The following patterns are not considered problems: - -````js -/** - * @implements {SomeClass} - * @class - */ -function quux () { - -} - -/** - * @implements {SomeClass} - * @class - */ -function quux () { - -} -// "jsdoc/implements-on-classes": ["error"|"warn", {"contexts":["any"]}] - -/** - * @implements {SomeClass} - */ -// "jsdoc/implements-on-classes": ["error"|"warn", {"contexts":["any"]}] - -/** - * @implements {SomeClass} - * @constructor - */ -function quux () { - -} - -/** - * - */ -class quux { - /** - * @implements {SomeClass} - */ - constructor () { - - } -} - -/** - * - */ -const quux = class { - /** - * @implements {SomeClass} - */ - constructor () { - - } -} - -/** - * - */ -function quux () { - -} - -/** - * - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"implements":false}}} - -/** - * @function - * @implements {SomeClass} - */ - -/** - * @callback - * @implements {SomeClass} - */ -```` - - - - -### informative-docs - -Reports on JSDoc texts that serve only to restart their attached name. - -Devs sometimes write JSDoc descriptions that add no additional information just to fill out the doc: - -```js -/** The user id. */ -let userId; -``` - -Those "uninformative" docs comments take up space without being helpful. -This rule requires all docs comments contain at least one word not already in the code. - - - -#### Options - - - -##### aliases - -The `aliases` option allows indicating words as synonyms (aliases) of each other. - -For example, with `{ aliases: { emoji: ["smiley", "winkey"] } }`, the following comment would be considered uninformative: - -```js -/** A smiley/winkey. */ -let emoji; -``` - -The default `aliases` option is: - -```json -{ - "a": ["an", "our"] -} -``` - - - -##### uselessWords - -Words that are ignored when searching for one that adds meaning. - -For example, with `{ uselessWords: ["our"] }`, the following comment would be considered uninformative: - -```js -/** Our text. */ -let text; -``` - -The default `uselessWords` option is: - -```json -["a", "an", "i", "in", "of", "s", "the"] -``` - -||| -|---|---| -|Context|everywhere| -|Tags|any| -|Recommended|false| -|Settings|| -|Options|`aliases`, `uselessWords`| - -The following patterns are considered problems: - -````js -/** the */ -let myValue = 3; -// Message: This description only repeats the name it describes. - -/** The user id. */ -let userId: string; -// Message: This description only repeats the name it describes. - -/** the my value */ -let myValue = 3; -// Message: This description only repeats the name it describes. - -/** value **/ -let myValue, - count = 3; -// Message: This description only repeats the name it describes. - -let myValue, - /** count **/ - count = 3; -// Message: This description only repeats the name it describes. - -/** - * the foo. - */ -function foo() {} -// Message: This description only repeats the name it describes. - -/** - * the value foo. - */ -const value = function foo() {} -// Message: This description only repeats the name it describes. - -const value = { - /** - * the prop. - */ - prop: true, -} -// Message: This description only repeats the name it describes. - -/** - * name - */ -class Name {} -// Message: This description only repeats the name it describes. - -/** - * abc def - */ -const abc = class Def {} -// Message: This description only repeats the name it describes. - -class Abc { - /** the abc def! */ - def; -} -// Message: This description only repeats the name it describes. - -const _ = class Abc { - /** the abc def! */ - def; -} -// Message: This description only repeats the name it describes. - -class Abc { - /** the abc def! */ - def() {}; -} -// Message: This description only repeats the name it describes. - -class Abc { - /** def */ - accessor def; -} -// Message: This description only repeats the name it describes. - -class Abc { - /** def */ - def() {} -} -// Message: This description only repeats the name it describes. - -class Abc { - /** def */ - abstract accessor def; -} -// Message: This description only repeats the name it describes. - -class Abc { - /** def */ - abstract def(); -} -// Message: This description only repeats the name it describes. - -class Abc { - /** def */ - abstract def; -} -// Message: This description only repeats the name it describes. - -/** abc */ -namespace Abc {} -// Message: This description only repeats the name it describes. - -class Abc { - /** def */ - def(); - def() {} -} -// Message: This description only repeats the name it describes. - -/** abc */ -declare function abc(); -// Message: This description only repeats the name it describes. - -/** abc */ -enum Abc {} -// Message: This description only repeats the name it describes. - -enum Abc { - /** def */ - def, -} -// Message: This description only repeats the name it describes. - -/** def */ -interface Def {} -// Message: This description only repeats the name it describes. - -/** def */ -type Def = {}; -// Message: This description only repeats the name it describes. - -/** - * count - * - * @description the value - */ -let value = 3; -// Message: This tag description only repeats the name it describes. - -/** @param {number} param - the param */ -function takesOne(param) {} -// Message: This tag description only repeats the name it describes. - -/** @other param - takes one */ -function takesOne(param) {} -// Message: This tag description only repeats the name it describes. - -/** - * takes one - * @other param - takes one - */ -function takesOne(param) {} -// Message: This description only repeats the name it describes. - -/** - * - takes one - * @other param - takes one - */ -function takesOne(param) {} -// Message: This description only repeats the name it describes. -```` - -The following patterns are not considered problems: - -````js -/** */ -let myValue = 3; - -/** count */ -let myValue = 3; - -/** Informative info user id. */ -let userId: string; - -let myValue, - /** count value **/ - count = 3; - -/** - * Does X Y Z work. - */ -function foo() {} - -const value = { - /** - * the truthiness of the prop. - */ - prop: true, -} - -const value = { - /** - * the truthiness of the prop. - */ - ['prop']: true, -} - -/** - * abc def ghi - */ -const abc = function def() {} - -/** - * name extra - */ -class Name {} - -/** - * abc name extra - */ -const abc = class Name {} - -class Abc { - /** ghi */ - def; -} - -class Abc { - /** ghi */ - accessor def; -} - -class Abc { - /** ghi */ - def() {} -} - -class Abc { - /** ghi */ - abstract accessor def; -} - -class Abc { - /** ghi */ - abstract def(); -} - -class Abc { - /** ghi */ - abstract def; -} - -/** abc */ -namespace Def {} - -class Abc { - /** ghi */ - def(); - def() {} -} - -/** abc */ -declare function def(); - -/** abc */ -enum Def {} - -enum Abc { - /** def */ - ghi, -} - -/** abc */ -interface Def {} - -/** abc */ -type Def = {}; - -/** abc */ -type Def = {}; - -/** - * count - * - * @description increment value - */ -let value = 3; - -/** - * count - * - * @unknownTag - increment value - */ -let value = 3; - -/** - * @other param - takes one two - */ -function takesOne(param) {} - -/** - * takes abc param - */ -function takesOne(param) {} - -/** - * @class - * - * @param {number} value - Some useful text - */ -function MyAmazingThing(value) {} -```` - - - - -### match-description - -Enforces a regular expression pattern on descriptions. - -The default is this basic expression to match English sentences (Support -for Unicode upper case may be added in a future version when it can be handled -by our supported Node versions): - -``^\n?([A-Z`\\d_][\\s\\S]*[.?!`]\\s*)?$`` - -Applies to the jsdoc block description and `@description` (or `@desc`) -by default but the `tags` option (see below) may be used to match other tags. - -The default (and all regex options) defaults to using (only) the `u` flag, so -to add your own flags, encapsulate your expression as a string, but like a -literal, e.g., `/[A-Z].*\\./ui`. - -Note that `/` delimiters are optional, but necessary to add flags (besides -`u`). - -Also note that the default or optional regular expressions is *not* -case-insensitive unless one opts in to add the `i` flag. - -You can add the `s` flag if you want `.` to match newlines. Note, however, -that the trailing newlines of a description will not be matched. - - - -#### Options - - - -##### matchDescription - -You can supply your own expression to override the default, passing a -`matchDescription` string on the options object. - -```js -{ - 'jsdoc/match-description': ['error', {matchDescription: '[A-Z].*\\.'}] -} -``` - - - -##### message - -You may provide a custom default message by using the following format: - -```js -{ - 'jsdoc/match-description': ['error', { - message: 'The default description should begin with a capital letter.' - }] -} -``` - -This can be overridden per tag or for the main block description by setting -`message` within `tags` or `mainDescription`, respectively. - - - -##### tags - -If you want different regular expressions to apply to tags, you may use -the `tags` option object: - -```js -{ - 'jsdoc/match-description': ['error', {tags: { - param: '\\- [A-Z].*\\.', - returns: '[A-Z].*\\.' - }}] -} -``` - -In place of a string, you can also add `true` to indicate that a particular -tag should be linted with the `matchDescription` value (or the default). - -```js -{ - 'jsdoc/match-description': ['error', {tags: { - param: true, - returns: true - }}] -} -``` - -Alternatively, you may supply an object with a `message` property to indicate -the error message for that tag. - -```js -{ - 'jsdoc/match-description': ['error', {tags: { - param: {message: 'Begin with a hyphen', match: '\\- [A-Z].*\\.'}, - returns: {message: 'Capitalize for returns (the default)', match: true} - }}] -} -``` - -The tags `@param`/`@arg`/`@argument` and `@property`/`@prop` will be properly -parsed to ensure that the matched "description" text includes only the text -after the name. - -All other tags will treat the text following the tag name, a space, and -an optional curly-bracketed type expression (and another space) as part of -its "description" (e.g., for `@returns {someType} some description`, the -description is `some description` while for `@some-tag xyz`, the description -is `xyz`). - - - -##### mainDescription - -If you wish to override the main block description without changing the -default `match-description` (which can cascade to the `tags` with `true`), -you may use `mainDescription`: - -```js -{ - 'jsdoc/match-description': ['error', { - mainDescription: '[A-Z].*\\.', - tags: { - param: true, - returns: true - } - }] -} -``` - -There is no need to add `mainDescription: true`, as by default, the main -block description (and only the main block description) is linted, though you -may disable checking it by setting it to `false`. - -You may also provide an object with `message`: - -```js -{ - 'jsdoc/match-description': ['error', { - mainDescription: { - message: 'Capitalize first word of JSDoc block descriptions', - match: '[A-Z].*\\.' - }, - tags: { - param: true, - returns: true - } - }] -} -``` - - - -##### contexts - -Set this to an array of strings representing the AST context (or an object with -`context` and `comment` properties) where you wish the rule to be applied. -(e.g., `ClassDeclaration` for ES6 -classes). Overrides the default contexts (see below). Set to `"any"` if you -want the rule to apply to any jsdoc block throughout your files. - -See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) -section of our README for more on the expected format. - -||| -|---|---| -|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| -|Tags|docblock and `@description` by default but more with `tags`| -|Aliases|`@desc`| -|Recommended|false| -|Settings|| -|Options|`contexts`, `tags` (accepts tags with names and optional type such as 'param', 'arg', 'argument', 'property', and 'prop', and accepts arbitrary list of other tags with an optional type (but without names), e.g., 'returns', 'return'), `mainDescription`, `matchDescription`| - -The following patterns are considered problems: - -````js -/** - * foo. - */ -const q = class { - -} -// "jsdoc/match-description": ["error"|"warn", {"contexts":["ClassExpression"]}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * foo. - */ -const q = class { - -} -// "jsdoc/match-description": ["error"|"warn", {"contexts":["ClassExpression"],"message":"Needs to begin with a capital letter and end with an end mark."}] -// Message: Needs to begin with a capital letter and end with an end mark. - -/** - * foo. - */ -// "jsdoc/match-description": ["error"|"warn", {"contexts":["any"]}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * foo. - */ -// "jsdoc/match-description": ["error"|"warn", {"contexts":["any"]}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * foo. - */ -const q = { - -}; -// "jsdoc/match-description": ["error"|"warn", {"contexts":["ObjectExpression"]}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * foo. - */ -function quux () { - -} -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * Foo) - */ -function quux () { - -} -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * тест. - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"matchDescription":"[А-Я][А-я]+\\."}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * тест. - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"matchDescription":"[А-Я][А-я]+\\.","message":"Needs to begin with a capital letter and end with an end mark."}] -// Message: Needs to begin with a capital letter and end with an end mark. - -/** - * Abc. - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"mainDescription":"[А-Я][А-я]+\\.","tags":{"param":true}}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * Abc. - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"mainDescription":{"match":"[А-Я][А-я]+\\.","message":"Needs to begin with a Cyrillic capital letter and end with a period."},"tags":{"param":true}}] -// Message: Needs to begin with a Cyrillic capital letter and end with a period. - -/** - * Foo - */ -function quux () { - -} -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * Foo. - * - * @param foo foo. - */ -function quux (foo) { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"param":true}}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * Foo. - * - * @template Abc, Def foo. - */ -function quux (foo) { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"template":true}}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * Foo. - * - * @prop foo foo. - */ -function quux (foo) { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"prop":true}}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * Foo. - * - * @summary foo. - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"summary":true}}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * Foo. - * - * @author - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"author":".+"}}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * Foo. - * - * @x-tag - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"x-tag":".+"}}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * Foo. - * - * @description foo foo. - */ -function quux (foo) { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"description":true}}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * Foo - * - * @param foo foo. - */ -function quux (foo) { - -} -// "jsdoc/match-description": ["error"|"warn", {"mainDescription":"^[a-zA-Z]*\\s*$","tags":{"param":true}}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * Foo - * - * @param foo foo. - */ -function quux (foo) { - -} -// "jsdoc/match-description": ["error"|"warn", {"mainDescription":{"match":"^[a-zA-Z]*\\s*$","message":"Letters only"},"tags":{"param":{"match":true,"message":"Needs to begin with a capital letter and end with a period."}}}] -// Message: Needs to begin with a capital letter and end with a period. - -/** - * Foo - * - * @param foo foo. - */ -function quux (foo) { - -} -// "jsdoc/match-description": ["error"|"warn", {"mainDescription":false,"tags":{"param":true}}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * Foo. - * - * @param foo bar - */ -function quux (foo) { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"param":true}}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * {@see Foo.bar} buz - */ -function quux (foo) { - -} -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * Foo. - * - * @returns {number} foo - */ -function quux (foo) { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"returns":true}}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * Foo. - * - * @returns foo. - */ -function quux (foo) { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"returns":true}}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * lorem ipsum dolor sit amet, consectetur adipiscing elit. pellentesque elit diam, - * iaculis eu dignissim sed, ultrices sed nisi. nulla at ligula auctor, consectetur neque sed, - * tincidunt nibh. vivamus sit amet vulputate ligula. vivamus interdum elementum nisl, - * vitae rutrum tortor semper ut. morbi porta ante vitae dictum fermentum. - * proin ut nulla at quam convallis gravida in id elit. sed dolor mauris, blandit quis ante at, - * consequat auctor magna. duis pharetra purus in porttitor mollis. - */ -function longDescription (foo) { - -} -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * @arg {number} foo - Foo - */ -function quux (foo) { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"arg":true}}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * @argument {number} foo - Foo - */ -function quux (foo) { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"argument":true}}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * @return {number} foo - */ -function quux (foo) { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"return":true}}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * Returns bar. - * - * @return {number} bar - */ -function quux (foo) { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"return":true}}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * @param notRet - * @returns Тест. - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"param":"[А-Я][А-я]+\\."}}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * @description notRet - * @returns Тест. - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"description":"[А-Я][А-я]+\\."}}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * foo. - */ -class quux { - -} -// "jsdoc/match-description": ["error"|"warn", {"contexts":["ClassDeclaration"]}] -// Message: JSDoc description does not satisfy the regex pattern. - -class MyClass { - /** - * Abc - */ - myClassField = 1 -} -// "jsdoc/match-description": ["error"|"warn", {"contexts":["PropertyDefinition"]}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * foo. - */ -interface quux { - -} -// "jsdoc/match-description": ["error"|"warn", {"contexts":["TSInterfaceDeclaration"]}] -// Message: JSDoc description does not satisfy the regex pattern. - -const myObject = { - /** - * Bad description - */ - myProp: true -}; -// "jsdoc/match-description": ["error"|"warn", {"contexts":["Property"]}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * @param foo Foo bar - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"param":true}}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * Foo bar - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * Description with extra new line - * - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"matchDescription":"[\\s\\S]*\\S$"}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * - * This function does lots of things. - */ - function quux () { - - } -// "jsdoc/match-description": ["error"|"warn", {"matchDescription":"^\\S[\\s\\S]*\\S$"}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** - * - * @param - */ -// "jsdoc/match-description": ["error"|"warn", {"contexts":["any"],"matchDescription":"^\\S[\\s\\S]*\\S$"}] -// Message: JSDoc description does not satisfy the regex pattern. - -/** Does something very important. */ -function foo(): string; -// "jsdoc/match-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[endLine=0]"}],"matchDescription":"^\\S[\\s\\S]*\\S$"}] -// Message: JSDoc description does not satisfy the regex pattern. -```` - -The following patterns are not considered problems: - -````js -/** - * - */ - -/** - * - */ - function quux () { - - } - -/** - * @param foo - Foo. - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"param":true}}] - -/** - * Foo. - */ -function quux () { - -} - -/** - * Foo. - * Bar. - */ -function quux () { - -} - -/** - * Foo. - * - * Bar. - */ -function quux () { - -} - -/** - * Foo. - * - * Bar. - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"message":"This won't be shown"}] - -/** - * Тест. - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"matchDescription":"[А-Я][А-я]+\\."}] - -/** - * @param notRet - * @returns Тест. - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"returns":"[А-Я][А-я]+\\."}}] - -/** - * @param notRet - * @description Тест. - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"description":"[А-Я][А-я]+\\."}}] - -/** - * Foo - * bar. - */ -function quux () { - -} - -/** - * @returns Foo bar. - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"returns":true}}] - -/** - * @returns {type1} Foo bar. - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"returns":true}}] - -/** - * @description Foo bar. - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"description":true}}] - -/** - * @description Foo - * bar. - * @param - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"description":true}}] - -/** @description Foo bar. */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"description":true}}] - -/** - * @description Foo - * bar. - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"description":true}}] - -/** - * Foo. {@see Math.sin}. - */ -function quux () { - -} - -/** - * Foo {@see Math.sin} bar. - */ -function quux () { - -} - -/** - * Foo? - * - * Bar! - * - * Baz: - * 1. Foo. - * 2. Bar. - */ -function quux () { - -} - -/** - * Hello: - * World. - */ -function quux () { - -} - -/** - * Hello: world. - */ -function quux () { - -} - -/** - * Foo - * Bar. - */ -function quux () { - -} - -/** - * Foo. - * - * foo. - */ -function quux () { - -} - -/** - * foo. - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"mainDescription":false}] - -/** - * foo. - */ -class quux { - -} - -/** - * foo. - */ -class quux { - -} -// "jsdoc/match-description": ["error"|"warn", {"mainDescription":true}] - -class MyClass { - /** - * Abc. - */ - myClassField = 1 -} -// "jsdoc/match-description": ["error"|"warn", {"contexts":["PropertyDefinition"]}] - -/** - * Foo. - */ -interface quux { - -} -// "jsdoc/match-description": ["error"|"warn", {"contexts":["TSInterfaceDeclaration"]}] - -const myObject = { - /** - * Bad description - */ - myProp: true -}; -// "jsdoc/match-description": ["error"|"warn", {"contexts":[]}] - -/** - * foo. - */ -const q = class { - -} -// "jsdoc/match-description": ["error"|"warn", {"contexts":[]}] - -/** - * foo. - */ -const q = { - -}; -// "jsdoc/match-description": ["error"|"warn", {"contexts":[]}] - -/** - * @description foo. - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"param":true}}] - -/** - * Foo. - * - * @summary Foo. - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"summary":true}}] - -/** - * Foo. - * - * @author Somebody - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"author":".+"}}] - -/** - * Foo. - * - * @x-tag something - */ -function quux () { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"x-tag":".+"}}] - -/** - * Foo. - * - * @prop foo Foo. - */ -function quux (foo) { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"prop":true}}] - -/** - * @param foo Foo bar. - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} - -/** - * - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} - -/** - * Foo. - * - * @template Abc, Def Foo. - */ -function quux (foo) { - -} -// "jsdoc/match-description": ["error"|"warn", {"tags":{"template":true}}] - -/** - * Enable or disable plugin. - * - * When enabling with this function, the script will be attached to the `document` if:. - * - the script runs in browser context. - * - the `document` doesn't have the script already attached. - * - the `loadScript` option is set to `true`. - * @param enabled `true` to enable, `false` to disable. Default: `true`. - */ -// "jsdoc/match-description": ["error"|"warn", {"contexts":["any"],"mainDescription":"/^[A-Z`-].*\\.$/us","matchDescription":"^([A-Z`-].*(\\.|:)|-\\s.*)$","tags":{"param":true,"returns":true}}] - -/** - * @constructor - * @todo Ok. - */ -function quux () { -} -// "jsdoc/match-description": ["error"|"warn", {"mainDescription":false,"tags":{"todo":true}}] - -/** Does something very important. */ -function foo(): string; -// "jsdoc/match-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[endLine!=0]"}],"matchDescription":"^\\S[\\s\\S]*\\S$"}] - -/** - * This is my favorite function, foo. - * - * @returns Nothing. - */ -function foo(): void; -// "jsdoc/match-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[endLine!=0]:not(:has(JsdocTag))"}],"matchDescription":"^\\S[\\s\\S]*\\S$"}] -```` - - - - -### match-name - -Reports the name portion of a JSDoc tag if matching or not matching -a given regular expression. - -Note that some tags do not possess names and anything appearing to be a -name will actually be part of the description (e.g., for -`@returns {type} notAName`). If you are defining your own tags, see the -`structuredTags` setting (if `name: false`, this rule will not apply to -that tag). - - - -#### Fixer - -Will replace `disallowName` with `replacement` if these are provided. - - - -#### Options - -A single options object with the following properties: - - - -##### match - -`match` is a required option containing an array of objects which determine -the conditions whereby a name is reported as being problematic. - -These objects can have any combination of the following groups of optional -properties, all of which act to confine one another: - -- `tags` - This array should include tag names or `*` to indicate the - match will apply for all tags (except as confined by any context - properties). If `*` is not used, then these rules will only apply to - the specified tags. If `tags` is omitted, then `*` is assumed. - -- `allowName` - Indicates which names are allowed for the given tag (or `*`). - Accepts a string regular expression (optionally wrapped between two - `/` delimiters followed by optional flags) used to match the name. -- `disallowName` - As with `allowName` but indicates names that are not - allowed. -- `replacement` - If `disallowName` is supplied and this value is present, it - will replace the matched `disallowName` text. - -- `context` - AST to confine the allowing or disallowing to jsdoc blocks - associated with a particular context. See the - ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) - section of our README for more on the expected format. -- `comment` - As with `context` but AST for the JSDoc block comment and types - -- `message` - An optional custom message to use when there is a match. - -Note that `comment`, even if targeting a specific tag, is used to match the -whole block. So if a `comment` finds its specific tag, it may still apply -fixes found by the likes of `disallowName` even when a different tag has the -disallowed name. An alternative is to ensure that `comment` finds the specific -tag of the desired tag and/or name and no `disallowName` (or `allowName`) is -supplied. In such a case, only one error will be reported, but no fixer will -be applied, however. - -||| -|---|---| -|Context|everywhere| -|Tags|(The tags specified by `tags`, including any tag if `*` is set)| -|Recommended|false| -|Settings|`structuredTags`| -|Options|`match`| - -The following patterns are considered problems: - -````js -/** - * @param opt_a - * @param opt_b - */ -// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^opt_/i"}]}] -// Message: Only allowing names not matching `/^opt_/i` but found "opt_a". - -/** - * @param opt_a - * @param opt_b - */ -// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^opt_/i","replacement":""}]}] -// Message: Only allowing names not matching `/^opt_/i` but found "opt_a". - -/** - * @param a - * @param opt_b - */ -// "jsdoc/match-name": ["error"|"warn", {"match":[{"allowName":"/^[a-z]+$/i"}]}] -// Message: Only allowing names matching `/^[a-z]+$/i` but found "opt_b". - -/** - * @param arg - * @param opt_b - */ -// "jsdoc/match-name": ["error"|"warn", {"match":[{"allowName":"/^[a-z]+$/i","disallowName":"/^arg/i"}]}] -// Message: Only allowing names not matching `/^arg/i` but found "arg". - -/** - * @param opt_a - * @param arg - */ -// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^arg$/i"},{"disallowName":"/^opt_/i"}]}] -// Message: Only allowing names not matching `/^opt_/i` but found "opt_a". - -/** - * @property opt_a - * @param opt_b - */ -// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^opt_/i","tags":["param"]}]}] -// Message: Only allowing names not matching `/^opt_/i` but found "opt_b". - -/** - * @someTag opt_a - * @param opt_b - */ -// Settings: {"jsdoc":{"structuredTags":{"someTag":{"name":"namepath-defining"}}}} -// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^opt_/i","tags":["param"]}]}] -// Message: Only allowing names not matching `/^opt_/i` but found "opt_b". - -/** - * @property opt_a - * @param opt_b - */ -// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^opt_/i","tags":["*"]}]}] -// Message: Only allowing names not matching `/^opt_/i` but found "opt_a". - -/** - * @param opt_a - * @param opt_b - */ -function quux () { -} -// "jsdoc/match-name": ["error"|"warn", {"match":[{"context":"FunctionDeclaration","disallowName":"/^opt_/i"}]}] -// Message: Only allowing names not matching `/^opt_/i` but found "opt_a". - -/** - * @property opt_a - * @param {Bar|Foo} opt_b - */ -// "jsdoc/match-name": ["error"|"warn", {"match":[{"comment":"JsdocBlock:has(JsdocTag[tag=\"param\"][name=/opt_/] > JsdocTypeUnion:has(JsdocTypeName[value=\"Bar\"]:nth-child(1)))"}]}] -// Message: Prohibited context for "opt_a". - -/** - * @property opt_a - * @param {Bar|Foo} opt_b - */ -// "jsdoc/match-name": ["error"|"warn", {"match":[{"comment":"JsdocBlock:has(JsdocTag[tag=\"param\"][name=/opt_/] > JsdocTypeUnion:has(JsdocTypeName[value=\"Bar\"]:nth-child(1)))","message":"Don't use `opt_` prefixes with Bar|..."}]}] -// Message: Don't use `opt_` prefixes with Bar|... - -/** - * @param opt_a - * @param opt_b - */ -function quux () {} -// "jsdoc/match-name": ["error"|"warn", ] -// Message: Rule `no-restricted-syntax` is missing a `match` option. - -/** - * @param { - * someType - * } opt_a - */ -// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^opt_/i","replacement":""}]}] -// Message: Only allowing names not matching `/^opt_/i` but found "opt_a". -```` - -The following patterns are not considered problems: - -````js -/** - * @param opt_a - * @param opt_b - */ -// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^arg/i"}]}] - -/** - * @param a - * @param opt_b - */ -// "jsdoc/match-name": ["error"|"warn", {"match":[{"allowName":"/^[a-z_]+$/i"}]}] - -/** - * @param someArg - * @param anotherArg - */ -// "jsdoc/match-name": ["error"|"warn", {"match":[{"allowName":"/^[a-z]+$/i","disallowName":"/^arg/i"}]}] - -/** - * @param elem1 - * @param elem2 - */ -// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^arg$/i"},{"disallowName":"/^opt_/i"}]}] - -/** - * @someTag opt_a - * @param opt_b - */ -// Settings: {"jsdoc":{"structuredTags":{"someTag":{"name":"namepath-defining"}}}} -// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^opt_/i","tags":["property"]}]}] - -/** - * @property opt_a - * @param opt_b - */ -// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^arg/i","tags":["*"]}]}] - -/** - * @param opt_a - * @param opt_b - */ -class A { -} -// "jsdoc/match-name": ["error"|"warn", {"match":[{"context":"FunctionDeclaration","disallowName":"/^opt_/i"}]}] - -/** - * @property opt_a - * @param {Foo|Bar} opt_b - */ -// "jsdoc/match-name": ["error"|"warn", {"match":[{"comment":"JsdocBlock:has(JsdocTag[tag=\"param\"]:has(JsdocTypeUnion:has(JsdocTypeName[value=\"Bar\"]:nth-child(1))))","disallowName":"/^opt_/i"}]}] -```` - - - - -### multiline-blocks - -Controls how and whether jsdoc blocks can be expressed as single or multiple -line blocks. - -Note that if you set `noSingleLineBlocks` and `noMultilineBlocks` to `true` -and configure them in a certain manner, you might effectively be prohibiting -all jsdoc blocks! - -Also allows for preventing text at the very beginning or very end of blocks. - - - -#### Options - -A single options object with the following properties. - - - -##### noZeroLineText (defaults to true) - -For multiline blocks, any non-whitespace text immediately after the `/**` and -space will be reported. (Text after a newline is not reported.) - -`noMultilineBlocks` will have priority over this rule if it applies. - - - -##### noFinalLineText (defaults to true) - -For multiline blocks, any non-whitespace text preceding the `*/` on the final -line will be reported. (Text preceding a newline is not reported.) - -`noMultilineBlocks` will have priority over this rule if it applies. - - - -##### noSingleLineBlocks (defaults to false) - -If this is `true`, any single line blocks will be reported, except those which -are whitelisted in `singleLineTags`. - - - -##### singleLineTags (defaults to ['lends', 'type']) - -An array of tags which can nevertheless be allowed as single line blocks when -`noSingleLineBlocks` is set. You may set this to a empty array to -cause all single line blocks to be reported. If `'*'` is present, then -the presence of a tag will allow single line blocks (but not if a tag is -missing). - - - -##### noMultilineBlocks (defaults to false) - -Requires that jsdoc blocks are restricted to single lines only unless impacted -by the options `minimumLengthForMultiline`, `multilineTags`, or -`allowMultipleTags`. - - - -##### minimumLengthForMultiline (defaults to not being in effect) - -If `noMultilineBlocks` is set with this numeric option, multiline blocks will -be permitted if containing at least the given amount of text. - -If not set, multiline blocks will not be permitted regardless of length unless -a relevant tag is present and `multilineTags` is set. - - - -##### multilineTags (defaults to ['*']) - -If `noMultilineBlocks` is set with this option, multiline blocks may be allowed -regardless of length as long as a tag or a tag of a certain type is present. - -If `*` is included in the array, the presence of a tags will allow for -multiline blocks (but not when without any tags unless the amount of text is -over an amount specified by `minimumLengthForMultiline`). - -If the array does not include `*` but lists certain tags, the presence of -such a tag will cause multiline blocks to be allowed. - -You may set this to an empty array to prevent any tag from permitting multiple -lines. - - - -##### allowMultipleTags (defaults to true) - -If `noMultilineBlocks` is set to `true` with this option and multiple tags are -found in a block, an error will not be reported. - -Since multiple-tagged lines cannot be collapsed into a single line, this option -prevents them from being reported. Set to `false` if you really want to report -any blocks. - -This option will also be applied when there is a block description and a single -tag (since a description cannot precede a tag on a single line, and also -cannot be reliably added after the tag either). - -||| -|---|---| -|Context|everywhere| -|Tags|Any (though `singleLineTags` and `multilineTags` control the application)| -|Recommended|true| -|Settings|| -|Options|`noZeroLineText`, `noSingleLineBlocks`, `singleLineTags`, `noMultilineBlocks`, `minimumLengthForMultiline`, `multilineTags`, `allowMultipleTags`, `noFinalLineText`| - -The following patterns are considered problems: - -````js -/** Reported up here - * because the rest is multiline - */ -// Message: Should have no text on the "0th" line (after the `/**`). - -/** Reported up here - * because the rest is multiline - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noZeroLineText":true}] -// Message: Should have no text on the "0th" line (after the `/**`). - -/** @abc {aType} aName Reported up here - * because the rest is multiline - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noZeroLineText":true}] -// Message: Should have no text on the "0th" line (after the `/**`). - -/** @tag */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noSingleLineBlocks":true}] -// Message: Single line blocks are not permitted by your configuration. - -/** @tag {someType} */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noSingleLineBlocks":true}] -// Message: Single line blocks are not permitted by your configuration. - -/** @tag {someType} aName */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noSingleLineBlocks":true}] -// Message: Single line blocks are not permitted by your configuration. - -/** @tag */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noSingleLineBlocks":true,"singleLineTags":["someOtherTag"]}] -// Message: Single line blocks are not permitted by your configuration. - -/** desc */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noSingleLineBlocks":true,"singleLineTags":["*"]}] -// Message: Single line blocks are not permitted by your configuration. - -/** - * Desc. - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noMultilineBlocks":true}] -// Message: Multiline jsdoc blocks are prohibited by your configuration. - -/** desc - * - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noMultilineBlocks":true}] -// Message: Multiline jsdoc blocks are prohibited by your configuration. - -/** desc - * - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noMultilineBlocks":true,"noSingleLineBlocks":true}] -// Message: Multiline jsdoc blocks are prohibited by your configuration but fixing would result in a single line block which you have prohibited with `noSingleLineBlocks`. - -/** - * - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noMultilineBlocks":true}] -// Message: Multiline jsdoc blocks are prohibited by your configuration. - -/** - * This is not long enough to be permitted. - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"minimumLengthForMultiline":100,"noMultilineBlocks":true}] -// Message: Multiline jsdoc blocks are prohibited by your configuration. - -/** - * This is not long enough to be permitted. - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"allowMultipleTags":true,"minimumLengthForMultiline":100,"noMultilineBlocks":true}] -// Message: Multiline jsdoc blocks are prohibited by your configuration. - -/** - * This has the wrong tags so is not permitted. - * @notTheRightTag - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"allowMultipleTags":false,"multilineTags":["onlyThisIsExempted"],"noMultilineBlocks":true}] -// Message: Multiline jsdoc blocks are prohibited by your configuration but the block has a description with a tag. - -/** - * This has too many tags so cannot be fixed ot a single line. - * @oneTag - * @anotherTag - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"allowMultipleTags":false,"multilineTags":[],"noMultilineBlocks":true}] -// Message: Multiline jsdoc blocks are prohibited by your configuration but the block has multiple tags. - -/** - * This has a tag and description so cannot be fixed ot a single line. - * @oneTag - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"allowMultipleTags":false,"multilineTags":[],"noMultilineBlocks":true}] -// Message: Multiline jsdoc blocks are prohibited by your configuration but the block has a description with a tag. - -/** - * This has no tags so is not permitted. - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"multilineTags":["*"],"noMultilineBlocks":true}] -// Message: Multiline jsdoc blocks are prohibited by your configuration. - -/** - * This has the wrong tags so is not permitted. - * @notTheRightTag - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"allowMultipleTags":false,"minimumLengthForMultiline":500,"multilineTags":["onlyThisIsExempted"],"noMultilineBlocks":true}] -// Message: Multiline jsdoc blocks are prohibited by your configuration but the block has a description with a tag. - -/** - * @lends This can be safely fixed to a single line. - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"multilineTags":[],"noMultilineBlocks":true,"noSingleLineBlocks":true}] -// Message: Multiline jsdoc blocks are prohibited by your configuration. - -/** - * @type {aType} This can be safely fixed to a single line. - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"multilineTags":[],"noMultilineBlocks":true,"noSingleLineBlocks":true}] -// Message: Multiline jsdoc blocks are prohibited by your configuration. - -/** - * @aTag - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"multilineTags":[],"noMultilineBlocks":true}] -// Message: Multiline jsdoc blocks are prohibited by your configuration. - -/** - * This is a problem when single and multiline are blocked. - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noMultilineBlocks":true,"noSingleLineBlocks":true}] -// Message: Multiline jsdoc blocks are prohibited by your configuration but fixing would result in a single line block which you have prohibited with `noSingleLineBlocks`. - -/** This comment is bad - * It should not have text on line zero - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"minimumLengthForMultiline":50,"noMultilineBlocks":true,"noZeroLineText":true}] -// Message: Should have no text on the "0th" line (after the `/**`). - -/** - * @lends This can be safely fixed - * to a single - * line. */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"multilineTags":[],"noMultilineBlocks":true}] -// Message: Multiline jsdoc blocks are prohibited by your configuration. - -/** - * @someTag {aType} with Description */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noFinalLineText":true}] -// Message: Should have no text on the final line (before the `*/`). - -/** - * Description */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noFinalLineText":true}] -// Message: Should have no text on the final line (before the `*/`). -```` - -The following patterns are not considered problems: - -````js -/** Not reported */ - -/** - * Not reported - */ - -/** Reported up here - * because the rest is multiline - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noZeroLineText":false}] - -/** @tag */ - -/** @lends */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noSingleLineBlocks":true}] - -/** @tag */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noSingleLineBlocks":true,"singleLineTags":["tag"]}] - -/** @tag */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noSingleLineBlocks":true,"singleLineTags":["*"]}] - -/** - * - */ - -/** - * - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noMultilineBlocks":false}] - -/** Test */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noMultilineBlocks":true}] - -/** - * This is long enough to be permitted by our config. - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"minimumLengthForMultiline":25,"noMultilineBlocks":true}] - -/** - * This is long enough to be permitted by our config. - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"minimumLengthForMultiline":50,"noMultilineBlocks":true}] - -/** - * This has the right tag so is permitted. - * @theRightTag - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"multilineTags":["theRightTag"],"noMultilineBlocks":true}] - -/** This has no tags but is single line so is not permitted. */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"multilineTags":["*"],"noMultilineBlocks":true}] - -/** - * This has the wrong tags so is not permitted. - * @notTheRightTag - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"minimumLengthForMultiline":10,"multilineTags":["onlyThisIsExempted"],"noMultilineBlocks":true}] - -/** - * This has the wrong tags so is not permitted. - * @theRightTag - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"minimumLengthForMultiline":500,"multilineTags":["theRightTag"],"noMultilineBlocks":true}] - -/** tag */ - -/** - * @lends This is ok per multiline - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noMultilineBlocks":true,"noSingleLineBlocks":true}] - -/** - * This has too many tags so cannot be fixed ot a single line. - * @oneTag - * @anotherTag - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"multilineTags":[],"noMultilineBlocks":true}] - -/** - * This has too many tags so cannot be fixed ot a single line. - * @oneTag - * @anotherTag - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"allowMultipleTags":true,"multilineTags":[],"noMultilineBlocks":true}] - -/** - * This has a tag and description so cannot be fixed ot a single line. - * @oneTag - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"allowMultipleTags":true,"multilineTags":[],"noMultilineBlocks":true}] - -/** - * This has a tag and description so cannot be fixed ot a single line. - * @oneTag - */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"allowMultipleTags":false,"multilineTags":["oneTag"],"noMultilineBlocks":true}] - -/** @someTag with Description */ -// "jsdoc/multiline-blocks": ["error"|"warn", {"noFinalLineText":true}] -```` - - - - -### no-bad-blocks - -This rule checks for multi-line-style comments which fail to meet the -criteria of a jsdoc block, namely that it should begin with two and only two -asterisks, but which appear to be intended as jsdoc blocks due to the presence -of whitespace followed by whitespace or asterisks, and -an at-sign (`@`) and some non-whitespace (as with a jsdoc block tag). - - - -#### Options - -Takes an optional options object with the following. - - - -##### ignore - -An array of directives that will not be reported if present at the beginning of -a multi-comment block and at-sign `/* @`. - -Defaults to `['ts-check', 'ts-expect-error', 'ts-ignore', 'ts-nocheck']` -(some directives [used by TypeScript](https://www.typescriptlang.org/docs/handbook/intro-to-js-ts.html#ts-check)). - - - -##### preventAllMultiAsteriskBlocks - -A boolean (defaulting to `false`) which if `true` will prevent all -JSDoc-like blocks with more than two initial asterisks even those without -apparent tag content. - -||| -|---|---| -|Context|Everywhere| -|Tags|N/A| -|Recommended|false| -|Options|`ignore`, `preventAllMultiAsteriskBlocks`| - -The following patterns are considered problems: - -````js -/* - * @param foo - */ -function quux (foo) { - -} -// Message: Expected JSDoc-like comment to begin with two asterisks. - -/* - * @property foo - */ -// Message: Expected JSDoc-like comment to begin with two asterisks. - -function quux() { - -} -// Settings: {"jsdoc":{"structuredTags":{"see":{"name":false,"required":["name"]}}}} -// Message: Cannot add "name" to `require` with the tag's `name` set to `false` - -/* @ts-ignore */ -// "jsdoc/no-bad-blocks": ["error"|"warn", {"ignore":[]}] -// Message: Expected JSDoc-like comment to begin with two asterisks. - -/* - * Some description. - * - * @returns {string} Some string - */ -function echo() { - return 'Something'; -} -// Message: Expected JSDoc-like comment to begin with two asterisks. - -/*** - * @param foo - */ -function quux (foo) { - -} -// Message: Expected JSDoc-like comment to begin with two asterisks. - -/*** - * - */ -function quux (foo) { - -} -// "jsdoc/no-bad-blocks": ["error"|"warn", {"preventAllMultiAsteriskBlocks":true}] -// Message: Expected JSDoc-like comment to begin with two asterisks. -```` - -The following patterns are not considered problems: - -````js -/** - * @property foo - */ - -/** - * @param foo - */ - function quux () { - - } - -function quux () { - -} - -/* This could just be intended as a regular multiline comment, - so don't report this */ -function quux () { - -} - -/* Just a regular multiline comment with an `@` but not appearing - like a tag in a jsdoc-block, so don't report */ -function quux () { - -} - -/* @ts-check */ - -/* @ts-expect-error */ - -/* @ts-ignore */ - -/* @ts-nocheck */ - -/* */ - -/** */ - -/* @custom */ -// "jsdoc/no-bad-blocks": ["error"|"warn", {"ignore":["custom"]}] - -/*** - * This is not JSDoc because of the 3 asterisks, but - * is allowed without `preventAllMultiAsteriskBlocks`, as - * some might wish normal multiline comments. - */ -function quux (foo) { - -} - -/***/ -```` - - - - -### no-blank-block-descriptions - -If tags are present, this rule will prevent empty lines in the -block description. - -If no tags are present, this rule will prevent extra empty lines -in the block description. - -||| -|---|---| -|Context|everywhere| -|Tags|(Block description)| -|Recommended|false| -|Settings|| -|Options|| - -The following patterns are considered problems: - -````js -/** - * - * @param {number} x - */ -function functionWithClearName(x) {} -// Message: There should be no blank lines in block descriptions followed by tags. - -/** - * - * - */ -function functionWithClearName() {} -// Message: There should be no extra blank lines in block descriptions not followed by tags. -```` - -The following patterns are not considered problems: - -````js -/** - * Non-empty description - * @param {number} x - */ -function functionWithClearName(x) {} - -/** - * @param {number} x - */ -function functionWithClearName(x) {} - -/** - * - */ -function functionWithClearName() {} - -/** - */ -function functionWithClearName() {} - -/** */ -function functionWithClearName() {} - -/** Some desc. */ -function functionWithClearName() {} - -/** @someTag */ -function functionWithClearName() {} -```` - - - - -### no-blank-blocks - -Reports and optionally removes blocks with whitespace only. - - - -#### Options - - - -##### enableFixer - -Whether or not to auto-remove the blank block. Defaults to `false`. - -||| -|---|---| -|Context|everywhere| -|Tags|N/A| -|Recommended|false| -|Settings|| -|Options|`enableFixer`| - -The following patterns are considered problems: - -````js -/** */ -// "jsdoc/no-blank-blocks": ["error"|"warn", {"enableFixer":true}] -// Message: No empty blocks - -/** - */ -// "jsdoc/no-blank-blocks": ["error"|"warn", {"enableFixer":true}] -// Message: No empty blocks - -/** - * - */ -// "jsdoc/no-blank-blocks": ["error"|"warn", {"enableFixer":true}] -// Message: No empty blocks - -/** - * - * - */ -// "jsdoc/no-blank-blocks": ["error"|"warn", {"enableFixer":true}] -// Message: No empty blocks - -/** - * - * - */ -// "jsdoc/no-blank-blocks": ["error"|"warn", {"enableFixer":false}] -// Message: No empty blocks - -/** - * - * - */ -// Message: No empty blocks -```` - -The following patterns are not considered problems: - -````js -/** @tag */ - -/** - * Text - */ - -/** - * @tag - */ -```` - - - - -### no-defaults - -This rule reports defaults being used on the relevant portion of `@param` -or `@default`. It also optionally reports the presence of the -square-bracketed optional arguments at all. - -The rule is intended to prevent the indication of defaults on tags where -this would be redundant with ES6 default parameters (or for `@default`, -where it would be redundant with the context to which the `@default` -tag is attached). - -Unless your `@default` is on a function, you will need to set `contexts` -to an appropriate context, including, if you wish, "any". - - - -#### Options - - - -##### noOptionalParamNames - -Set this to `true` to report the presence of optional parameters. May be -used if the project is insisting on optionality being indicated by -the presence of ES6 default parameters (bearing in mind that such -"defaults" are only applied when the supplied value is missing or -`undefined` but not for `null` or other "falsey" values). - - - -##### contexts - -Set this to an array of strings representing the AST context (or an object with -`context` and `comment` properties) where you wish the rule to be applied. -Overrides the default contexts (see below). Set to `"any"` if you want -the rule to apply to any jsdoc block throughout your files (as is necessary -for finding function blocks not attached to a function declaration or -expression, i.e., `@callback` or `@function` (or its aliases `@func` or -`@method`) (including those associated with an `@interface`). - -See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) -section of our README for more on the expected format. - -||| -|---|---| -|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| -|Tags|`param`, `default`| -|Aliases|`arg`, `argument`, `defaultvalue`| -|Recommended|false| -|Options|`contexts`, `noOptionalParamNames`| - -The following patterns are considered problems: - -````js -/** - * @param {number} [foo="7"] - */ -function quux (foo) { - -} -// Message: Defaults are not permitted on @param. - -class Test { - /** - * @param {number} [foo="7"] - */ - quux (foo) { - - } -} -// Message: Defaults are not permitted on @param. - -/** - * @param {number} [foo="7"] - */ -function quux (foo) { - -} -// "jsdoc/no-defaults": ["error"|"warn", {"noOptionalParamNames":true}] -// Message: Optional param names are not permitted on @param. - -/** - * @arg {number} [foo="7"] - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} -// Message: Defaults are not permitted on @arg. - -/** - * @param {number} [foo="7"] - */ -function quux (foo) { - -} -// "jsdoc/no-defaults": ["error"|"warn", {"contexts":["any"]}] -// Message: Defaults are not permitted on @param. - -/** - * @function - * @param {number} [foo="7"] - */ -// "jsdoc/no-defaults": ["error"|"warn", {"contexts":["any"]}] -// Message: Defaults are not permitted on @param. - -/** - * @callback - * @param {number} [foo="7"] - */ -// "jsdoc/no-defaults": ["error"|"warn", {"contexts":["any"]}] -// Message: Defaults are not permitted on @param. - -/** - * @default {} - */ -const a = {}; -// "jsdoc/no-defaults": ["error"|"warn", {"contexts":["any"]}] -// Message: Default values are not permitted on @default. - -/** - * @defaultvalue {} - */ -const a = {}; -// Settings: {"jsdoc":{"tagNamePreference":{"default":"defaultvalue"}}} -// "jsdoc/no-defaults": ["error"|"warn", {"contexts":["any"]}] -// Message: Default values are not permitted on @defaultvalue. -```` - -The following patterns are not considered problems: - -````js -/** - * @param foo - */ -function quux (foo) { - -} - -/** - * @param {number} foo - */ -function quux (foo) { - -} - -/** - * @param foo - */ -// "jsdoc/no-defaults": ["error"|"warn", {"contexts":["any"]}] - -/** - * @function - * @param {number} foo - */ - -/** - * @callback - * @param {number} foo - */ - -/** - * @param {number} foo - */ -function quux (foo) { - -} -// "jsdoc/no-defaults": ["error"|"warn", {"noOptionalParamNames":true}] - -/** - * @default - */ -const a = {}; -// "jsdoc/no-defaults": ["error"|"warn", {"contexts":["any"]}] -```` - - - - -### no-missing-syntax - -This rule lets you report if certain always expected comment structures are -missing. - -This (along with `no-restricted-syntax`) is a bit similar to Schematron for -XML or jsontron for JSON--you can validate expectations of there being -arbitrary structures. - -This differs from the rule of the same name in -[`eslint-plugin-query`](https://github.com/brettz9/eslint-plugin-query) -in that this rule always looks for a comment above a structure (whether or not -you have a `comment` condition). - -This rule might be especially useful with [`overrides`](https://eslint.org/docs/user-guide/configuring/configuration-files#how-do-overrides-work) -where you need only require tags and/or types within specific directories -(e.g., to enforce that a plugins or locale directory always has a certain form -of export and comment therefor). - -In addition to being generally useful for precision in requiring contexts, -it is hoped that the ability to specify required tags on structures can -be used for requiring `@type` or other types for a minimalist yet adequate -specification of types which can be used to compile JavaScript+JSDoc (JJ) -to WebAssembly (e.g., by converting it to TypeSscript and then using -AssemblyScript to convert to WebAssembly). (It may be possible that one -will need to require types with certain structures beyond function -declarations and the like, as well as optionally requiring specification -of number types.) - -Note that you can use selectors which make use of negators like `:not()` -including with asterisk, e.g., `*:not(FunctionDeclaration)` to indicate types -which are not adequate to satisfy a condition, e.g., -`FunctionDeclaration:not(FunctionDeclaration[id.name="ignoreMe"])` would -not report if there were only a function declaration of the name "ignoreMe" -(though it would report by function declarations of other names). - - - -#### Options - - - -##### contexts - -Set this to an array of strings representing the AST context (or an object with -`context` and `comment` properties) where you wish the rule to be applied. - -Use the `minimum` property (defaults to 1) to indicate how many are required -for the rule to be reported. - -Use the `message` property to indicate the specific error to be shown when an -error is reported for that context being found missing. You may use -`{{context}}` and `{{comment}}` with such messages. - -Set to `"any"` if you want the rule to apply to any jsdoc block throughout -your files (as is necessary for finding function blocks not attached to a -function declaration or expression, i.e., `@callback` or `@function` (or its -aliases `@func` or `@method`) (including those associated with an `@interface`). - -See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) -section of our README for more on the expected format. - -||| -|---|---| -|Context|None except those indicated by `contexts`| -|Tags|Any if indicated by AST| -|Recommended|false| -|Options|`contexts`| - -The following patterns are considered problems: - -````js -/** - * @implements {Bar|Foo} - */ -function quux () { - -} -// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Foo\"]:nth-child(1))","context":"FunctionDeclaration"}]}] -// Message: Syntax is required: FunctionDeclaration with JsdocBlock[postDelimiter=""]:has(JsdocTypeUnion > JsdocTypeName[value="Foo"]:nth-child(1)) - -/** - * @implements {Bar|Foo} - */ -function quux () { - -} -// Settings: {"jsdoc":{"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Foo\"]:nth-child(1))","context":"FunctionDeclaration"}]}} -// Message: Syntax is required: FunctionDeclaration with JsdocBlock[postDelimiter=""]:has(JsdocTypeUnion > JsdocTypeName[value="Foo"]:nth-child(1)) - -/** - * @implements {Bar|Foo} - */ -function quux () { - -} -// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"FunctionDeclaration"},{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Foo\"]:nth-child(1))","context":"FunctionDeclaration"}]}] -// Message: Syntax is required: FunctionDeclaration with JsdocBlock[postDelimiter=""]:has(JsdocTypeUnion > JsdocTypeName[value="Foo"]:nth-child(1)) - -/** - * @implements {Bar|Foo} - */ -function quux () { - -} -// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"any"},{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Foo\"]:nth-child(1))","context":":function"}]}] -// Message: Syntax is required: :function with JsdocBlock[postDelimiter=""]:has(JsdocTypeUnion > JsdocTypeName[value="Foo"]:nth-child(1)) - -/** - * @private - * Object holding values of some custom enum - */ -const MY_ENUM = Object.freeze({ - VAL_A: "myvala" -} as const); -// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[tag=/private|protected/])","context":":declaration","message":"Requiring private/protected tags here"},{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[tag=\"enum\"])","context":"any","message":"@enum required on declarations"}]}] -// Message: @enum required on declarations - -/** - * @implements {Bar|Foo} - */ -function quux () { - -} -// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Foo\"]:nth-child(1))","context":"FunctionDeclaration","message":"Problematically missing function syntax: `{{context}}` with `{{comment}}`."}]}] -// Message: Problematically missing function syntax: `FunctionDeclaration` with `JsdocBlock[postDelimiter=""]:has(JsdocTypeUnion > JsdocTypeName[value="Foo"]:nth-child(1))`. - -/** - * @implements {Bar|Foo} - */ -function quux () { - -} -// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":["FunctionDeclaration"]}] -// Message: Syntax is required: FunctionDeclaration - -/** - * @implements {Bar|Foo} - */ -function quux () { - -} -// Message: Rule `no-missing-syntax` is missing a `contexts` option. - -/** - * @implements {Bar|Foo} - */ -function quux () { - -} -// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"FunctionDeclaration","minimum":2}]}] -// Message: Syntax is required: FunctionDeclaration with JsdocBlock[postDelimiter=""]:has(JsdocTypeUnion > JsdocTypeName[value="Bar"]:nth-child(1)) - -/** - * @param ab - * @param cd - */ -// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"any","message":"Require names matching `/^opt_/i`."}]}] -// Message: Require names matching `/^opt_/i`. - -/** - * @param ab - * @param cd - */ -// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","message":"Require names matching `/^opt_/i`."}]}] -// Message: Require names matching `/^opt_/i`. - -/** - * @param ab - * @param cd - */ -function quux () {} -// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"any","message":"Require names matching `/^opt_/i`."}]}] -// Message: Require names matching `/^opt_/i`. -```` - -The following patterns are not considered problems: - -````js -/** - * @implements {Bar|Foo} - */ -function quux () { - -} -// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"FunctionDeclaration"}]}] - -/** - * @implements {Bar|Foo} - */ -function quux () { - -} - -/** - * @implements {Bar|Foo} - */ -function bar () { - -} - -/** - * @implements {Bar|Foo} - */ -function baz () { - -} -// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"FunctionDeclaration","minimum":2}]}] - -/** - * @param opt_a - * @param opt_b - */ -// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"any","message":"Require names matching `/^opt_/i`."}]}] - -/** - * @param opt_a - * @param opt_b - */ -function quux () {} -// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"any","message":"Require names matching `/^opt_/i`."}]}] - -/** - * @param opt_a - * @param opt_b - */ -function quux () {} -// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","message":"Require names matching `/^opt_/i`."}]}] - -/** - * @implements {Bar|Foo} - */ -function quux () { - -} -// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"FunctionDeclaration"},{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Foo\"]:nth-child(2))","context":"FunctionDeclaration"}]}] - -/** - * @implements {Bar|Foo} - */ -function quux () { - -} -// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"any"},{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Foo\"]:nth-child(2))","context":"FunctionDeclaration"}]}] -```` - - - - -### no-multi-asterisks - -Prevents use of multiple asterisks at the beginning of lines. - -Note that if you wish to prevent multiple asterisks at the very beginning of -the jsdoc block, you should use `no-bad-blocks` (as that is not proper jsdoc -and that rule is for catching blocks which only seem like jsdoc). - - - -#### Options - - - -##### allowWhitespace (defaults to false) - -Set to `true` if you wish to allow asterisks after a space (as with Markdown): - -```js -/** - * *bold* text - */ -``` - - - -##### preventAtMiddleLines (defaults to true) - -Prevent the likes of this: - -```js -/** - * - ** - */ -``` - - - -##### preventAtEnd (defaults to true) - -Prevent the likes of this: - -```js -/** - * - * - **/ -``` - -||| -|---|---| -|Context|everywhere| -|Tags|(any)| -|Recommended|true| -|Settings|| -|Options|`preventAtEnd`, `preventAtMiddleLines`| - -The following patterns are considered problems: - -````js -/** - * - ** - */ -// Message: Should be no multiple asterisks on middle lines. - -/** - * - ** - */ -// "jsdoc/no-multi-asterisks": ["error"|"warn", {"preventAtMiddleLines":true}] -// Message: Should be no multiple asterisks on middle lines. - -/** - * - ** - */ -// "jsdoc/no-multi-asterisks": ["error"|"warn", {"preventAtEnd":false}] -// Message: Should be no multiple asterisks on middle lines. - -/** - * With a description - * @tag {SomeType} and a tag with details - ** - */ -// Message: Should be no multiple asterisks on middle lines. - -/** - ** - * - */ -// Message: Should be no multiple asterisks on middle lines. - -/** - * Desc. - * - **/ -// Message: Should be no multiple asterisks on end lines. - -/** - * Desc. - * - **/ -// "jsdoc/no-multi-asterisks": ["error"|"warn", {"preventAtEnd":true}] -// Message: Should be no multiple asterisks on end lines. - -/** - * Desc. - * - abc * **/ -// "jsdoc/no-multi-asterisks": ["error"|"warn", {"preventAtEnd":true}] -// Message: Should be no multiple asterisks on end lines. - -/** - * Desc. - * - **/ -// "jsdoc/no-multi-asterisks": ["error"|"warn", {"preventAtMiddleLines":false}] -// Message: Should be no multiple asterisks on end lines. - -/** Desc. **/ -// Message: Should be no multiple asterisks on end lines. - -/** @someTag name desc. **/ -// Message: Should be no multiple asterisks on end lines. - -/** abc * */ -// Message: Should be no multiple asterisks on end lines. - -/** - * Preserve user's whitespace when fixing (though one may also - * use an align rule) - * - * */ -// "jsdoc/no-multi-asterisks": ["error"|"warn", {"preventAtEnd":true}] -// Message: Should be no multiple asterisks on end lines. - -/** - * The method does 2 things: - * * Thing 1 - * * Thing 2 - */ -// "jsdoc/no-multi-asterisks": ["error"|"warn", {"allowWhitespace":false}] -// Message: Should be no multiple asterisks on middle lines. - -/** - * This muti-line comment contains some - * *non-standard bold* syntax - */ -// "jsdoc/no-multi-asterisks": ["error"|"warn", {"allowWhitespace":false}] -// Message: Should be no multiple asterisks on middle lines. - -/** Desc. **/ -// "jsdoc/no-multi-asterisks": ["error"|"warn", {"allowWhitespace":true}] -// Message: Should be no multiple asterisks on end lines. -```` - -The following patterns are not considered problems: - -````js -/** - * - * Desc. *** - */ - -/** - * Desc. *** - * - */ - -/** - * Desc. - * - * sth */ - -/** - ** - * - */ -// "jsdoc/no-multi-asterisks": ["error"|"warn", {"preventAtMiddleLines":false}] - -/** - * - * - **/ -// "jsdoc/no-multi-asterisks": ["error"|"warn", {"preventAtEnd":false}] - -/** - * With a desc. - * and *** - */ - -/** - * and *** - * With a desc. - */ - -/** - * With a desc. - * With a desc. - * Desc. */ - -/** - * With a description - * @tag {SomeType} and a tag with details - * - */ - -/** abc */ -function foo() { - // -} - -/** foo */ -function foo(): void { - // -} - -/** @aTag abc */ -function foo() { - // -} - -/** - * **Bold** - */ - -/** - * Preserve user's bold statement when fixing. - * - * **Bold example:** Hi there. - */ - -/** - * The method does 2 things: - * * Thing 1 - * * Thing 2 - */ -// "jsdoc/no-multi-asterisks": ["error"|"warn", {"allowWhitespace":true}] - -/** - * This muti-line comment contains some - * *non-standard bold* syntax - */ -// "jsdoc/no-multi-asterisks": ["error"|"warn", {"allowWhitespace":true}] - -/** abc */ -function foo() { - // -} -// "jsdoc/no-multi-asterisks": ["error"|"warn", {"allowWhitespace":true}] -```` - - - - -### no-restricted-syntax - -Reports when certain comment structures are present. - -Note that this rule differs from ESLint's [no-restricted-syntax](https://eslint.org/docs/rules/no-restricted-syntax) -rule in expecting values within a single options object's -`contexts` property, and with the property `context` being used in place of -`selector` (as well as allowing for `comment`). The format also differs from -the format expected by [`eslint-plugin-query`](https://github.com/brettz9/eslint-plugin-query). - -Unlike those rules, this is specific to finding comments attached to -structures, (whether or not you add a specific `comment` condition). - -Note that if your parser supports comment AST (as [jsdoc-eslint-parser](https://github.com/brettz9/jsdoc-eslint-parser) -is designed to do), you can just use ESLint's rule. - - - -#### Options - - - -##### contexts - -Set this to an array of strings representing the AST context (or an object with -`context` and `comment` properties) where you wish the rule to be applied. - -Use the `message` property to indicate the specific error to be shown when an -error is reported for that context being found. - -Set to `"any"` if you want the rule to apply to any jsdoc block throughout -your files (as is necessary for finding function blocks not attached to a -function declaration or expression, i.e., `@callback` or `@function` (or its -aliases `@func` or `@method`) (including those associated with an `@interface`). - -See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) -section of our README for more on the expected format. - -||| -|---|---| -|Context|None except those indicated by `contexts`| -|Tags|Any if indicated by AST| -|Recommended|false| -|Options|`contexts`| - -The following patterns are considered problems: - -````js -/** - * - */ -function quux () { - -} -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":["FunctionDeclaration"]}] -// Message: Syntax is restricted: FunctionDeclaration - -/** - * - */ -function quux () { - -} -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"context":"FunctionDeclaration","message":"Oops: `{{context}}`."}]}] -// Message: Oops: `FunctionDeclaration`. - -/** - * @implements {Bar|Foo} - */ -function quux () { - -} -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"FunctionDeclaration"}]}] -// Message: Syntax is restricted: FunctionDeclaration with JsdocBlock[postDelimiter=""]:has(JsdocTypeUnion > JsdocTypeName[value="Bar"]:nth-child(1)) - -/** - * @implements {Bar|Foo} - */ -function quux () { - -} -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Foo\"]:nth-child(1))","context":"FunctionDeclaration","message":"The foo one: {{context}}."},{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"FunctionDeclaration","message":"The bar one: {{context}}."}]}] -// Message: The bar one: FunctionDeclaration. - -/** - * @implements {Bar|Foo} - */ -function quux () { - -} -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"FunctionDeclaration","message":"The bar one: {{context}}."},{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Foo\"]:nth-child(1))","context":"FunctionDeclaration","message":"The foo one: {{context}}."}]}] -// Message: The bar one: FunctionDeclaration. - -/** - * @implements {Bar|Foo} - */ -function quux () { - -} -// Message: Rule `no-restricted-syntax` is missing a `contexts` option. - -/** - * @implements {Bar|Foo} - */ -function quux () { - -} -// Settings: {"jsdoc":{"contexts":["FunctionDeclaration"]}} -// Message: Rule `no-restricted-syntax` is missing a `contexts` option. - -/** - * @param opt_a - * @param opt_b - */ -function a () {} -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"FunctionDeclaration","message":"Only allowing names not matching `/^opt_/i`."}]}] -// Message: Only allowing names not matching `/^opt_/i`. - -/** - * @param opt_a - * @param opt_b - */ -function a () {} -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"any","message":"Only allowing names not matching `/^opt_/i`."}]}] -// Message: Only allowing names not matching `/^opt_/i`. - -/** - * @param opt_a - * @param opt_b - */ -function a () {} -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","message":"Only allowing names not matching `/^opt_/i`."}]}] -// Message: Only allowing names not matching `/^opt_/i`. - -/** - * @param opt_a - * @param opt_b - */ -function a () {} -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/not-this/])","context":"any","message":"Only allowing names not matching `/^not-this/i`."},{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"any","message":"Only allowing names not matching `/^opt_/i`."}]}] -// Message: Only allowing names not matching `/^opt_/i`. - -/** - * @param opt_a - * @param opt_b - */ -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"any","message":"Only allowing names not matching `/^opt_/i`."}]}] -// Message: Only allowing names not matching `/^opt_/i`. - -/** - * @enum {String} - * Object holding values of some custom enum - */ -const MY_ENUM = Object.freeze({ - VAL_A: "myvala" -} as const); -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag ~ JsdocTag[tag=/private|protected/])","context":"any","message":"Access modifier tags must come first"},{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[tag=\"enum\"])","context":":declaration","message":"@enum not allowed on declarations"}]}] -// Message: @enum not allowed on declarations - -/** @type {React.FunctionComponent<{ children: React.ReactNode }>}*/ -const MyComponent = ({ children }) => { - return children; -} -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[tag=\"type\"]:has([value=/FunctionComponent/]))","context":"any","message":"The `FunctionComponent` type is not allowed. Please use `FC` instead."}]}] -// Message: The `FunctionComponent` type is not allowed. Please use `FC` instead. - -/** Some text and more */ -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[descriptionStartLine=0][descriptionEndLine=0]","context":"any","message":"Requiring descriptive text on 0th line only"}]}] -// Message: Requiring descriptive text on 0th line only - -/** Some text and -* more -*/ -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[descriptionStartLine=0][hasPreterminalDescription=0]","context":"any","message":"Requiring descriptive text on 0th line and no preterminal description"}]}] -// Message: Requiring descriptive text on 0th line and no preterminal description - -/** Some text -* @param sth Param text followed by no newline */ -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[descriptionStartLine=0][hasPreterminalTagDescription=1]","context":"any","message":"Requiring descriptive text on 0th line but no preterminal description"}]}] -// Message: Requiring descriptive text on 0th line but no preterminal description - -/** - * - */ -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(*:has(JsdocTag[tag=see]))","context":"any","message":"@see required on each block"}]}] -// Message: @see required on each block - -/** - * @type {{a: string}} - */ -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[tag=type][parsedType.type!=JsdocTypeStringValue][parsedType.type!=JsdocTypeNumber][parsedType.type!=JsdocTypeName])","context":"any","message":"@type should be limited to numeric or string literals and names"},{"comment":"JsdocBlock:has(JsdocTag[tag=type][parsedType.type=JsdocTypeName]:not(*[parsedType.value=/^(true|false|null|undefined|boolean|number|string)$/]))","context":"any","message":"@type names should only be recognized primitive types or literals"}]}] -// Message: @type should be limited to numeric or string literals and names - -/** - * @type {abc} - */ -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[tag=type][parsedType.type!=JsdocTypeStringValue][parsedType.type!=JsdocTypeNumber][parsedType.type!=JsdocTypeName])","context":"any","message":"@type should be limited to numeric or string literals and names"},{"comment":"JsdocBlock:has(JsdocTag[tag=type][parsedType.type=JsdocTypeName]:not(*[parsedType.value=/^(true|false|null|undefined|boolean|number|string)$/]))","context":"any","message":"@type names should only be recognized primitive types or literals"}]}] -// Message: @type names should only be recognized primitive types or literals - -/** - * - */ -function test(): string { } -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(*:has(JsdocTag[tag=/returns/]))","context":"FunctionDeclaration[returnType.typeAnnotation.type!=/TSVoidKeyword|TSUndefinedKeyword/]","message":"Functions with non-void return types must have a @returns tag"}]}] -// Message: Functions with non-void return types must have a @returns tag - -/** - * - */ -let test = (): string => { }; -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(*:has(JsdocTag[tag=/returns/]))","context":"ArrowFunctionExpression[returnType.typeAnnotation.type!=/TSVoidKeyword|TSUndefinedKeyword/]","message":"Functions with non-void return types must have a @returns tag"}]}] -// Message: Functions with non-void return types must have a @returns tag - -/** - * @returns - */ -let test: () => string; -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(*:has(JsdocTag[tag=/returns/]:has(JsdocDescriptionLine)))","context":"VariableDeclaration:has(*[typeAnnotation.typeAnnotation.type=/TSFunctionType/][typeAnnotation.typeAnnotation.returnType.typeAnnotation.type!=/TSVoidKeyword|TSUndefinedKeyword/])","message":"FunctionType's with non-void return types must have a @returns tag with a description"}]}] -// Message: FunctionType's with non-void return types must have a @returns tag with a description - -/** - * - */ -class Test { - abstract Test(): string; -} -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(*:has(JsdocTag[tag=/returns/]))","context":"TSEmptyBodyFunctionExpression[returnType.typeAnnotation.type!=/TSVoidKeyword|TSUndefinedKeyword/]","message":"methods with non-void return types must have a @returns tag"}]}] -// Message: methods with non-void return types must have a @returns tag -```` - -The following patterns are not considered problems: - -````js -/** - * - */ -function quux () { - -} -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":["FunctionExpression"]}] - -/** - * @implements {Bar|Foo} - */ -function quux () { - -} -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Foo\"]:nth-child(1))","context":"FunctionDeclaration"}]}] - -/** - * @param ab - * @param cd - */ -function a () {} -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"any","message":"Only allowing names not matching `/^opt_/i`."}]}] - -/** - * @param ab - * @param cd - */ -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"any","message":"Only allowing names not matching `/^opt_/i`."}]}] - -/** - * @param ab - * @param cd - */ -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","message":"Only allowing names not matching `/^opt_/i`."}]}] - -/** - * @enum {String} - * Object holding values of some custom enum - */ -const MY_ENUM = Object.freeze({ - VAL_A: "myvala" -} as const); -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag ~ JsdocTag[tag=/private|protected/])","context":"any","message":"Access modifier tags must come first"},{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[tag=\"enum\"])","context":":declaration:not(TSEnumDeclaration):not(:has(ObjectExpression)), :function","message":"@enum is only allowed on potential enum types"}]}] - -/** - * @param {(...args: any[]) => any} fn - * @returns {(...args: any[]) => any} - */ -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[tag=\"type\"]:has([value=/FunctionComponent/]))","context":"any","message":"The `FunctionComponent` type is not allowed. Please use `FC` instead."}]}] - -/** Does something very important. */ -function foo(): string; -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[endLine=0][description!=/^\\S[\\s\\S]*\\S\\s$/]"}]}] - -/** Some text and more */ -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[descriptionStartLine=0][descriptionEndLine=1]","context":"any","message":"Requiring descriptive text on 0th line and no final newline"}]}] - -/** Some text and -* more */ -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[descriptionStartLine=0][hasPreterminalDescription=0]","context":"any","message":"Requiring descriptive text on 0th line and no preterminal description"}]}] - -/** Some text -* @param sth Param text followed by newline -*/ -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[descriptionStartLine=0][hasPreterminalTagDescription=1]","context":"any","message":"Requiring descriptive text on 0th line but no preterminal description"}]}] - -/** - * @type {123} - */ -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[tag=type][parsedType.type!=JsdocTypeStringValue][parsedType.type!=JsdocTypeNumber][parsedType.type!=JsdocTypeName])","context":"any","message":"@type should be limited to numeric or string literals and names"},{"comment":"JsdocBlock:has(JsdocTag[tag=type][parsedType.type=JsdocTypeName]:not(*[parsedType.value=/^(true|false|null|undefined|boolean|number|string)$/]))","context":"any","message":"@type names should only be recognized primitive types or literals"}]}] - -/** - * @type {boolean} - */ -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[tag=type][parsedType.type!=JsdocTypeStringValue][parsedType.type!=JsdocTypeNumber][parsedType.type!=JsdocTypeName])","context":"any","message":"@type should be limited to numeric or string literals and names"},{"comment":"JsdocBlock:has(JsdocTag[tag=type][parsedType.type=JsdocTypeName]:not(*[parsedType.value=/^(true|false|null|undefined|boolean|number|string)$/]))","context":"any","message":"@type names should only be recognized primitive types or literals"}]}] - -/** - * - */ -function test(): void { } -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(*:has(JsdocTag[tag=/returns/]))","context":"FunctionDeclaration[returnType.typeAnnotation.type!=/TSVoidKeyword|TSUndefinedKeyword/]","message":"Functions with return types must have a @returns tag"}]}] - -/** - * - */ -let test = (): undefined => { }; -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(*:has(JsdocTag[tag=/returns/]))","context":"ArrowFunctionExpression[returnType.typeAnnotation.type!=/TSVoidKeyword|TSUndefinedKeyword/]","message":"Functions with non-void return types must have a @returns tag"}]}] - -/** - * @returns A description - */ -let test: () => string; -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(*:has(JsdocTag[tag=/returns/]:has(JsdocDescriptionLine)))","context":"VariableDeclaration:has(*[typeAnnotation.typeAnnotation.type=/TSFunctionType/])","message":"FunctionType's with non-void return types must have a @returns tag"}]}] - -/** - * - */ -class Test { - abstract Test(): void; -} -// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(*:has(JsdocTag[tag=/returns/]))","context":"TSEmptyBodyFunctionExpression[returnType.typeAnnotation.type!=/TSVoidKeyword|TSUndefinedKeyword/]","message":"methods with non-void return types must have a @returns tag"}]}] -```` - - - - -### no-types - -This rule reports types being used on `@param` or `@returns`. - -The rule is intended to prevent the indication of types on tags where -the type information would be redundant with TypeScript. - - - -#### Options - - - -##### contexts - -Set this to an array of strings representing the AST context (or an object with -`context` and `comment` properties) where you wish the rule to be applied. -Overrides the default contexts (see below). Set to `"any"` if you want -the rule to apply to any jsdoc block throughout your files (as is necessary -for finding function blocks not attached to a function declaration or -expression, i.e., `@callback` or `@function` (or its aliases `@func` or -`@method`) (including those associated with an `@interface`). - -See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) -section of our README for more on the expected format. - -||| -|---|---| -|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| -|Tags|`param`, `returns`| -|Aliases|`arg`, `argument`, `return`| -|Recommended|false| -|Options|`contexts`| - -The following patterns are considered problems: - -````js -/** - * @param {number} foo - */ -function quux (foo) { - -} -// Message: Types are not permitted on @param. - -class quux { - /** - * @param {number} foo - */ - bar (foo) { - - } -} -// Message: Types are not permitted on @param. - -/** - * @param {number} foo - */ -function quux (foo) { - -} -// "jsdoc/no-types": ["error"|"warn", {"contexts":["any"]}] -// Message: Types are not permitted on @param. - -class quux { - /** - * @param {number} foo - */ - quux (foo) { - - } -} -// "jsdoc/no-types": ["error"|"warn", {"contexts":["any"]}] -// Message: Types are not permitted on @param. - -/** - * @function - * @param {number} foo - */ -// "jsdoc/no-types": ["error"|"warn", {"contexts":["any"]}] -// Message: Types are not permitted on @param. - -/** - * @callback - * @param {number} foo - */ -// "jsdoc/no-types": ["error"|"warn", {"contexts":["any"]}] -// Message: Types are not permitted on @param. - -/** - * @returns {number} - */ -function quux () { - -} -// Message: Types are not permitted on @returns. - -/** - * Beep - * Boop - * - * @returns {number} - */ -function quux () { - -} -// Message: Types are not permitted on @returns. -```` - -The following patterns are not considered problems: - -````js -/** - * @param foo - */ -function quux (foo) { - -} - -/** - * @param foo - */ -// "jsdoc/no-types": ["error"|"warn", {"contexts":["any"]}] - -/** - * @function - * @param {number} foo - */ - -/** - * @callback - * @param {number} foo - */ - -/*** Oops that's too many asterisks by accident **/ -function a () {} -```` - - - - -### no-undefined-types - -Checks that types in jsdoc comments are defined. This can be used to check -unimported types. - -When enabling this rule, types in jsdoc comments will resolve as used -variables, i.e. will not be marked as unused by `no-unused-vars`. - -In addition to considering globals found in code (or in ESLint-indicated -`globals`) as defined, the following tags will also be checked for -name(path) definitions to also serve as a potential "type" for checking -the tag types in the table below: - -`@callback`, `@class` (or `@constructor`), `@constant` (or `@const`), -`@event`, `@external` (or `@host`), `@function` (or `@func` or `@method`), -`@interface`, `@member` (or `@var`), `@mixin`, `@name`, `@namespace`, -`@template` (for "closure" or "typescript" `settings.jsdoc.mode` only), -`@typedef`. - -The following tags will also be checked but only when the mode is `closure`: - -`@package`, `@private`, `@protected`, `@public`, `@static` - -The following types are always considered defined. - -- `null`, `undefined`, `void`, `string`, `boolean`, `object`, - `function`, `symbol` -- `number`, `bigint`, `NaN`, `Infinity` -- `any`, `*`, `never`, `unknown`, `const` -- `this`, `true`, `false` -- `Array`, `Object`, `RegExp`, `Date`, `Function` - -Note that preferred types indicated within `settings.jsdoc.preferredTypes` will -also be assumed to be defined. - -Also note that if there is an error [parsing](https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser) -types for a tag, the function will silently ignore that tag, leaving it to -the `valid-types` rule to report parsing errors. - -If you define your own tags, you can use `settings.jsdoc.structuredTags` -to indicate that a tag's `name` is "namepath-defining" (and should prevent -reporting on use of that namepath elsewhere) and/or that a tag's `type` is -`false` (and should not be checked for types). If the `type` is an array, that -array's items will be considered as defined for the purposes of that tag. - - - -#### Options - -An option object may have the following key: - -- `definedTypes` - This array can be populated to indicate other types which - are automatically considered as defined (in addition to globals, etc.). - Defaults to an empty array. - -||| -|---|---| -|Context|everywhere| -|Tags|`augments`, `class`, `constant`, `enum`, `implements`, `member`, `module`, `namespace`, `param`, `property`, `returns`, `throws`, `type`, `typedef`, `yields`| -|Aliases|`constructor`, `const`, `extends`, `var`, `arg`, `argument`, `prop`, `return`, `exception`, `yield`| -|Closure-only|`package`, `private`, `protected`, `public`, `static`| -|Recommended|true| -|Options|`definedTypes`| -|Settings|`preferredTypes`, `mode`, `structuredTags`| - -The following patterns are considered problems: - -````js -/** - * @param {HerType} baz - Foo. - */ -function quux(foo, bar, baz) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"HerType":1000}}} -// Message: Invalid `settings.jsdoc.preferredTypes`. Values must be falsy, a string, or an object. - -/** - * @param {HerType} baz - Foo. - */ -function quux(foo, bar, baz) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"HerType":false}}} -// Message: The type 'HerType' is undefined. - -/** - * @param {strnig} foo - Bar. - */ -function quux(foo) { - -} -// Message: The type 'strnig' is undefined. - -/** - * @param {MyType} foo - Bar. - * @param {HisType} bar - Foo. - */ -function quux(foo, bar) { - -} -// "jsdoc/no-undefined-types": ["error"|"warn", {"definedTypes":["MyType"]}] -// Message: The type 'HisType' is undefined. - -/** - * @param {MyType} foo - Bar. - * @param {HisType} bar - Foo. - * @param {HerType} baz - Foo. - */ -function quux(foo, bar, baz) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"hertype":{"replacement":"HerType"}}}} -// "jsdoc/no-undefined-types": ["error"|"warn", {"definedTypes":["MyType"]}] -// Message: The type 'HisType' is undefined. - - /** - * @param {MyType} foo - Bar. - * @param {HisType} bar - Foo. - * @param {HerType} baz - Foo. - */ -function quux(foo, bar, baz) { - -} -// Settings: {"jsdoc":{"preferredTypes":{"hertype":{"replacement":false},"histype":"HisType"}}} -// "jsdoc/no-undefined-types": ["error"|"warn", {"definedTypes":["MyType"]}] -// Message: The type 'HerType' is undefined. - -/** - * @template TEMPLATE_TYPE - * @param {WRONG_TEMPLATE_TYPE} bar - */ -function foo (bar) { -}; -// Settings: {"jsdoc":{"mode":"closure"}} -// Message: The type 'WRONG_TEMPLATE_TYPE' is undefined. - -class Foo { - /** - * @return {TEMPLATE_TYPE} - */ - bar () { - } -} -// Message: The type 'TEMPLATE_TYPE' is undefined. - -class Foo { - /** - * @return {TEMPLATE_TYPE} - */ - invalidTemplateReference () { - } -} - -/** - * @template TEMPLATE_TYPE - */ -class Bar { - /** - * @return {TEMPLATE_TYPE} - */ - validTemplateReference () { - } -} -// Settings: {"jsdoc":{"mode":"typescript"}} -// Message: The type 'TEMPLATE_TYPE' is undefined. - -/** - * @type {strnig} - */ -var quux = { - -}; -// Message: The type 'strnig' is undefined. - -/** - * @template TEMPLATE_TYPE_A, TEMPLATE_TYPE_B - */ -class Foo { - /** - * @param {TEMPLATE_TYPE_A} baz - * @return {TEMPLATE_TYPE_B} - */ - bar (baz) { - } -} -// Message: The type 'TEMPLATE_TYPE_A' is undefined. - -/** - * @param {...VAR_TYPE} varargs - */ -function quux (varargs) { -} -// Message: The type 'VAR_TYPE' is undefined. - -/** - * @this {Navigator} - */ -function quux () {} -// Settings: {"jsdoc":{"mode":"closure"}} -// Message: The type 'Navigator' is undefined. - -/** - * @export {SomeType} - */ -function quux () {} -// Settings: {"jsdoc":{"mode":"closure"}} -// Message: The type 'SomeType' is undefined. - -/** - * @aCustomTag {SomeType} - */ -function quux () {} -// Settings: {"jsdoc":{"structuredTags":{"aCustomTag":{"type":true}}}} -// Message: The type 'SomeType' is undefined. - -/** - * @aCustomTag {SomeType} - */ -function quux () {} -// Settings: {"jsdoc":{"structuredTags":{"aCustomTag":{"type":["aType","anotherType"]}}}} -// Message: The type 'SomeType' is undefined. - -/** - * @namepathDefiner SomeType - */ -/** - * @type {SomeType} - */ -// Settings: {"jsdoc":{"structuredTags":{"namepathDefiner":{"name":"namepath-referencing"}}}} -// Message: The type 'SomeType' is undefined. - -/** - * @namepathDefiner SomeType - */ -/** - * @type {SomeType} - */ -// Message: The type 'SomeType' is undefined. - -/** - * @template abc TEMPLATE_TYPE - * @param {TEMPLATE_TYPE} bar - */ -function foo (bar) { -}; -// Settings: {"jsdoc":{"mode":"closure"}} -// Message: The type 'TEMPLATE_TYPE' is undefined. - -/** - * @suppress {visibility} - */ -function foo () { -} -// Settings: {"jsdoc":{"mode":"jsdoc"}} -// Message: The type 'visibility' is undefined. - -/** -* @typedef Todo -* @property description -* @property otherStuff -*/ -/** - * @type {Omit} - */ -const a = new Todo(); -// Settings: {"jsdoc":{"mode":"jsdoc"}} -// Message: The type 'Omit' is undefined. -```` - -The following patterns are not considered problems: - -````js -/** - * @param {string} foo - Bar. - */ -function quux(foo) { - -} - -/** - * @param {Promise} foo - Bar. - */ -function quux(foo) { - -} - -class MyClass {} - -/** - * @param {MyClass} foo - Bar. - */ -function quux(foo) { - console.log(foo); -} - -quux(0); - -const MyType = require('my-library').MyType; - -/** - * @param {MyType} foo - Bar. - */ - function quux(foo) { - -} - -const MyType = require('my-library').MyType; - -/** - * @param {MyType} foo - Bar. - */ - function quux(foo) { - -} - -const MyType = require('my-library').MyType; - -/** - * @param {MyType} foo - Bar. - */ - function quux(foo) { - -} - -import {MyType} from 'my-library'; - -/** - * @param {MyType} foo - Bar. - * @param {object} foo - * @param {Array} baz - */ - function quux(foo, bar, baz) { - -} - -/*globals MyType*/ - -/** - * @param {MyType} foo - Bar. - * @param {HisType} bar - Foo. - */ - function quux(foo, bar) { - -} - -/** - * @typedef {object} hello - * @property {string} a - a. - */ - -/** - * @param {hello} foo - */ -function quux(foo) { - -} - -/** - * @param {Array"},"histype":"HisType.<>"}}} -// "jsdoc/no-undefined-types": ["error"|"warn", {"definedTypes":["MyType"]}] - -/** - * @template TEMPLATE_TYPE - * @param {TEMPLATE_TYPE} bar - * @return {TEMPLATE_TYPE} - */ -function foo (bar) { -}; -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @template TEMPLATE_TYPE - */ -class Foo { - /** - * @return {TEMPLATE_TYPE} - */ - bar () { - } -} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @template TEMPLATE_TYPE - */ -class Foo { - /** - * @return {TEMPLATE_TYPE} - */ - bar () {} - - /** - * @return {TEMPLATE_TYPE} - */ - baz () {} -} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @template TEMPLATE_TYPE_A, TEMPLATE_TYPE_B - */ -class Foo { - /** - * @param {TEMPLATE_TYPE_A} baz - * @return {TEMPLATE_TYPE_B} - */ - bar (baz) { - } -} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @template TEMPLATE_TYPE_A, TEMPLATE_TYPE_B - Some description - */ -class Foo { - /** - * @param {TEMPLATE_TYPE_A} baz - * @return {TEMPLATE_TYPE_B} - */ - bar (baz) { - } -} -// Settings: {"jsdoc":{"mode":"closure"}} - -/****/ - -/* */ - -/*** */ - -/** - * - */ -function quux () { - -} - -/** - * @typedef {object} BaseObject - */ -/** - * Run callback when hooked method is called. - * - * @template {BaseObject} T - * @param {T} obj - object whose method should be hooked. - * @param {string} method - method which should be hooked. - * @param {(sender: T) => void} callback - callback which should - * be called when the hooked method was invoked. - */ -function registerEvent(obj, method, callback) { - -} -// Settings: {"jsdoc":{"mode":"typescript"}} - - /** - * @param {...} varargs - */ -function quux (varargs) { -} - -/** - * @param {...number} varargs - */ -function quux (varargs) { -} - -class Navigator {} -/** - * @this {Navigator} - */ -function quux () {} -// Settings: {"jsdoc":{"mode":"closure"}} - -class SomeType {} -/** - * @export {SomeType} - */ -function quux () {} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @template T - * @param {T} arg - */ -function example(arg) { - - /** @param {T} */ - function inner(x) { - } -} -// Settings: {"jsdoc":{"mode":"closure"}} - -const init = () => { - /** - * Makes request - * @returns {Promise} - */ - function request() { - return Promise.resolve('success'); - } -}; - -/** Gets a Promise resolved with a given value. - * - * @template ValueType - * @param {ValueType} value Value to resolve. - * @returns {Promise} Promise resolved with value. - */ -exports.resolve1 = function resolve1(value) { - return Promise.resolve(value); -}; -// Settings: {"jsdoc":{"mode":"typescript"}} - -/** - * A function returning the same type as its argument. - * - * @template ValueType - * @typedef {ValueType} ValueFunc - */ -// Settings: {"jsdoc":{"mode":"typescript"}} - -/** - * @aCustomTag {SomeType} - */ -function quux () {} -// Settings: {"jsdoc":{"structuredTags":{"aCustomTag":{"type":false}}}} - -/** - * @aCustomTag {SomeType} - */ -function quux () {} -// Settings: {"jsdoc":{"structuredTags":{"aCustomTag":{"type":["aType","SomeType"]}}}} - -/** - * @namepathDefiner SomeType - */ -/** - * @type {SomeType} - */ -// Settings: {"jsdoc":{"structuredTags":{"namepathDefiner":{"name":"namepath-defining"}}}} - -class Test { - /** - * Method. - * - * @returns {this} Return description. - */ - method (): this { - return this; - } -} - -/** - * Bad types ignored here and handled instead by `valid-types`. - * @param {string(} foo - Bar. - */ -function quux(foo) { - -} - -/** - * @template T - * @param {T} arg - * @returns {[T]} - */ -function genericFunctionExample(arg) { - const result = /** @type {[T]} */ (new Array()); - result[0] = arg; - return result; -} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** @typedef QDigestNode */ -class A { - /** - * @template {object} T - * @param {(node: QDigestNode) => T} callback - * @returns {T[]} - */ - map(callback) { - /** @type {T[]} */ - let vals; - return vals; - } -} -// Settings: {"jsdoc":{"mode":"typescript"}} - -/** - * @template T - * @param {T} arg - */ -function example(arg) { - - /** @param {T} */ - function inner(x) { - } -} -// Settings: {"jsdoc":{"mode":"typescript"}} - -/** - * @suppress {visibility} - */ -function foo () { -} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @template T - */ -export class Foo { - // cast to T - getType() { - const x = "hello"; - const y = /** @type {T} */ (x); - return y; - } -} -// Settings: {"jsdoc":{"mode":"typescript"}} - -/** - * @type {const} - */ -const a = 'string'; - -/** -* @typedef Todo -* @property description -* @property otherStuff -*/ -/** - * @type {Omit} - */ -const a = new Todo(); -// Settings: {"jsdoc":{"mode":"typescript"}} - -/** - * @template A, [B=SomeDefault] - */ -class Foo { - /** - * @param {A} baz - * @return {B} - */ - bar (baz) { - } -} -// Settings: {"jsdoc":{"mode":"typescript"}} -```` - - - - -### require-asterisk-prefix - -Requires that each JSDoc line starts with an `*`. - - - -#### Options - -This rule allows an optional string argument. If it is `"always"` then a -problem is raised when there is no asterisk prefix on a given jsdoc line. If -it is `"never"` then a problem is raised when there is an asterisk present. -The default value is `"always"`. You may also set the default to `"any"` -and use the `tags` option to apply to specific tags only. - -After the string option, one may add an object with the following. - - - -##### tags - -If you want different values to apply to specific tags, you may use -the `tags` option object. The keys are `always`, `never`, or `any` and -the values are arrays of tag names or the special value `*description` -which applies to the main jsdoc block description. - -```js -{ - 'jsdoc/require-asterisk-prefix': ['error', 'always', { - tags: { - always: ['*description'], - any: ['example', 'license'], - never: ['copyright'] - } - }] -} -``` - -||| -|---|---| -|Context|everywhere| -|Tags|All or as limited by the `tags` option| -|Options|(a string matching `"always"|"never"` and optional object with `tags`)| - -The following patterns are considered problems: - -````js - -/** - @param {Number} foo - */ -function quux (foo) { - // with spaces -} -// Message: Expected JSDoc line to have the prefix. - - -/** - @param {Number} foo - */ -function quux (foo) { - // with spaces -} -// "jsdoc/require-asterisk-prefix": ["error"|"warn", "any",{"tags":{"always":["param"]}}] -// Message: Expected JSDoc line to have the prefix. - - -/** - * Desc - - */ -function quux (foo) { - // with spaces -} -// Message: Expected JSDoc line to have the prefix. - - -/** - * - Desc - */ -function quux (foo) { - // with spaces -} -// Message: Expected JSDoc line to have the prefix. - - -/** - * Desc - * - */ -function quux (foo) { - // with spaces -} -// "jsdoc/require-asterisk-prefix": ["error"|"warn", "never"] -// Message: Expected JSDoc line to have no prefix. - - -/** - @param {Number} foo - */ -function quux (foo) { - // with spaces -} -// "jsdoc/require-asterisk-prefix": ["error"|"warn", "always",{"tags":{"any":["someOtherTag"]}}] -// Message: Expected JSDoc line to have the prefix. - - -/** - * @param {Number} foo - */ -function quux (foo) { - // with spaces -} -// "jsdoc/require-asterisk-prefix": ["error"|"warn", "never",{"tags":{"always":["someOtherTag"]}}] -// Message: Expected JSDoc line to have no prefix. - - -/** - * @param {Number} foo - */ -function quux (foo) { - // with spaces -} -// "jsdoc/require-asterisk-prefix": ["error"|"warn", "always",{"tags":{"never":["param"]}}] -// Message: Expected JSDoc line to have no prefix. - - -/** - @param {Number} foo - */ -function quux (foo) { - // with spaces -} -// "jsdoc/require-asterisk-prefix": ["error"|"warn", "never",{"tags":{"always":["param"]}}] -// Message: Expected JSDoc line to have the prefix. - -/** - @param {Number} foo - */function quux (foo) { - // with spaces -} -// Message: Expected JSDoc line to have the prefix. - - -/** - * @param {Number} foo - */ -function quux (foo) { - // with spaces -} -// "jsdoc/require-asterisk-prefix": ["error"|"warn", "never"] -// Message: Expected JSDoc line to have no prefix. - -/** - *@param {Number} foo - */function quux (foo) { - // with spaces -} -// "jsdoc/require-asterisk-prefix": ["error"|"warn", "never"] -// Message: Expected JSDoc line to have no prefix. -```` - -The following patterns are not considered problems: - -````js -/** - * Desc - * - * @param {Number} foo - * This is more comment. - */ -function quux (foo) { - -} - -/** - * Desc - * - * @param {{ - * foo: Bar, - * bar: Baz - * }} foo - * - */ -function quux (foo) { - -} - -/* <- JSDoc must start with 2 stars. - So this is unchecked. - */ -function quux (foo) {} - -/** @param {Number} foo */ -function quux (foo) { - // with spaces -} - - -/** - @param {Number} foo - */ -function quux (foo) { - // with spaces -} -// "jsdoc/require-asterisk-prefix": ["error"|"warn", "always",{"tags":{"any":["param"]}}] - - -/** - * @param {Number} foo - */ -function quux (foo) { - // with spaces -} -// "jsdoc/require-asterisk-prefix": ["error"|"warn", "never",{"tags":{"always":["param"]}}] - - -/** - * @param {Number} foo - */ -function quux (foo) { - // with spaces -} -// "jsdoc/require-asterisk-prefix": ["error"|"warn", "always",{"tags":{"never":["someOtherTag"]}}] - - -/** - @param {Number} foo - */ -function quux (foo) { - // with spaces -} -// "jsdoc/require-asterisk-prefix": ["error"|"warn", "always",{"tags":{"never":["param"]}}] - - -/** - @param {Number} foo - */ -function quux (foo) { - // with spaces -} -// "jsdoc/require-asterisk-prefix": ["error"|"warn", "never",{"tags":{"always":["someOtherTag"]}}] - - -/** - * Desc - * - */ -function quux (foo) { - // with spaces -} -// "jsdoc/require-asterisk-prefix": ["error"|"warn", "never",{"tags":{"any":["*description"]}}] - - -/** - * Desc - - */ -function quux (foo) { - // with spaces -} -// "jsdoc/require-asterisk-prefix": ["error"|"warn", "always",{"tags":{"any":["*description"]}}] - - -/** - @param {Number} foo - */ -function quux (foo) { - // with spaces -} -// "jsdoc/require-asterisk-prefix": ["error"|"warn", "any",{"tags":{"always":["someOtherTag"]}}] -```` - - - - -### require-description-complete-sentence - -Requires that block description, explicit `@description`, and -`@param`/`@returns` tag descriptions are written in complete sentences, i.e., - -* Description must start with an uppercase alphabetical character. -* Paragraphs must start with an uppercase alphabetical character. -* Sentences must end with a period, question mark, exclamation mark, or triple backticks. -* Every line in a paragraph (except the first) which starts with an uppercase - character must be preceded by a line ending with a period. -* A colon or semi-colon followed by two line breaks is still part of the - containing paragraph (unlike normal dual line breaks). -* Text within inline tags `{...}` or within triple backticks are not checked for sentence divisions. -* Periods after items within the `abbreviations` option array are not treated - as sentence endings. - - - -#### Fixer - -If sentences do not end with terminal punctuation, a period will be added. - -If sentences do not start with an uppercase character, the initial -letter will be capitalized. - - - -#### Options - - - -##### tags - -If you want additional tags to be checked for their descriptions, you may -add them within this option. - -```js -{ - 'jsdoc/require-description-complete-sentence': ['error', { - tags: ['see', 'copyright'] - }] -} -``` - -The tags `@param`/`@arg`/`@argument` and `@property`/`@prop` will be properly -parsed to ensure that the checked "description" text includes only the text -after the name. - -All other tags will treat the text following the tag name, a space, and -an optional curly-bracketed type expression (and another space) as part of -its "description" (e.g., for `@returns {someType} some description`, the -description is `some description` while for `@some-tag xyz`, the description -is `xyz`). - - - -##### abbreviations - -You can provide an `abbreviations` options array to avoid such strings of text -being treated as sentence endings when followed by dots. The `.` is not -necessary at the end of the array items. - - - -##### newlineBeforeCapsAssumesBadSentenceEnd - -When `false` (the new default), we will not assume capital letters after -newlines are an incorrect way to end the sentence (they may be proper -nouns, for example). - -||| -|---|---| -|Context|everywhere| -|Tags|doc block, `param`, `returns`, `description`, `property`, `summary`, `file`, `classdesc`, `todo`, `deprecated`, `throws`, 'yields' and others added by `tags`| -|Aliases|`arg`, `argument`, `return`, `desc`, `prop`, `fileoverview`, `overview`, `exception`, `yield`| -|Recommended|false| -|Options|`tags`, `abbreviations`, `newlineBeforeCapsAssumesBadSentenceEnd`| -The following patterns are considered problems: - -````js -/** - * foo. - */ -function quux () { - -} -// Message: Sentences should start with an uppercase character. - -/** - * foo? - */ -function quux () { - -} -// Message: Sentences should start with an uppercase character. - -/** - * @description foo. - */ -function quux () { - -} -// Message: Sentences should start with an uppercase character. - -/** - * Foo) - */ -function quux () { - -} -// Message: Sentences must end with a period. - -/** - * `foo` is a variable - */ -function quux () { - -} -// Message: Sentences must end with a period. - -/** - * Foo. - * - * foo. - */ -function quux () { - -} -// Message: Sentences should start with an uppercase character. - -/** - * тест. - */ -function quux () { - -} -// Message: Sentences should start with an uppercase character. - -/** - * Foo - */ -function quux () { - -} -// Message: Sentences must end with a period. - -/** - * Foo - * - * @param x - */ -function quux () { - -} -// Message: Sentences must end with a period. - -/** - * Foo - * Bar. - */ -function quux () { - -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"newlineBeforeCapsAssumesBadSentenceEnd":true}] -// Message: A line of text is started with an uppercase character, but the preceding line does not end the sentence. - -/** - * Foo. - * - * @param foo foo. - */ -function quux (foo) { - -} -// Message: Sentences should start with an uppercase character. - -/** - * Foo. - * - * @param foo bar - */ -function quux (foo) { - -} -// Message: Sentences should start with an uppercase character. - -/** - * {@see Foo.bar} buz - */ -function quux (foo) { - -} -// Message: Sentences should start with an uppercase character. - -/** - * Foo. - * - * @returns {number} foo - */ -function quux (foo) { - -} -// Message: Sentences should start with an uppercase character. - -/** - * Foo. - * - * @returns foo. - */ -function quux (foo) { - -} -// Message: Sentences should start with an uppercase character. - -/** - * lorem ipsum dolor sit amet, consectetur adipiscing elit. pellentesque elit diam, - * iaculis eu dignissim sed, ultrices sed nisi. nulla at ligula auctor, consectetur neque sed, - * tincidunt nibh. vivamus sit amet vulputate ligula. vivamus interdum elementum nisl, - * vitae rutrum tortor semper ut. morbi porta ante vitae dictum fermentum. - * proin ut nulla at quam convallis gravida in id elit. sed dolor mauris, blandit quis ante at, - * consequat auctor magna. duis pharetra purus in porttitor mollis. - */ -function longDescription (foo) { - -} -// Message: Sentences should start with an uppercase character. - -/** - * @arg {number} foo - Foo - */ -function quux (foo) { - -} -// Message: Sentences must end with a period. - -/** - * @argument {number} foo - Foo - */ -function quux (foo) { - -} -// Message: Sentences must end with a period. - -/** - * @return {number} foo - */ -function quux (foo) { - -} -// Message: Sentences should start with an uppercase character. - -/** - * Returns bar. - * - * @return {number} bar - */ -function quux (foo) { - -} -// Message: Sentences should start with an uppercase character. - -/** - * @throws {object} Hello World - * hello world -*/ -// Message: Sentences must end with a period. - -/** - * @summary Foo - */ -function quux () { - -} -// Message: Sentences must end with a period. - -/** - * @throws {SomeType} Foo - */ -function quux () { - -} -// Message: Sentences must end with a period. - -/** - * @see Foo - */ -function quux () { - -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"tags":["see"]}] -// Message: Sentences must end with a period. - -/** - * @param foo Foo bar - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"tags":["param"]}] -// Message: Sentences must end with a period. - -/** - * Sorry, but this isn't a complete sentence, Mr. - */ -function quux () { - -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] -// Message: Sentences must end with a period. - -/** - * Sorry, but this isn't a complete sentence Mr. - */ -function quux () { - -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr."]}] -// Message: Sentences must end with a period. - -/** - * Sorry, but this isn't a complete sentence Mr. - */ -function quux () { - -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] -// Message: Sentences must end with a period. - -/** - * Sorry, but this isn't a complete sentence Mr. and Mrs. - */ -function quux () { - -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr","Mrs"]}] -// Message: Sentences must end with a period. - -/** - * This is a complete sentence. But this isn't, Mr. - */ -function quux () { - -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] -// Message: Sentences must end with a period. - -/** - * This is a complete Mr. sentence. But this isn't, Mr. - */ -function quux () { - -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] -// Message: Sentences must end with a period. - -/** - * This is a complete Mr. sentence. - */ -function quux () { - -} -// Message: Sentences should start with an uppercase character. - -/** - * This is fun, i.e. enjoyable, but not superlatively so, e.g. not - * super, wonderful, etc.. - */ -function quux () { - -} -// Message: Sentences should start with an uppercase character. - -/** - * Do not have dynamic content; e.g. homepage. Here a simple unique id - * suffices. - */ - function quux () { - - } -// Message: Sentences should start with an uppercase character. - -/** - * Implements support for the - * Swahili voice synthesizer. - */ -function speak() { -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"newlineBeforeCapsAssumesBadSentenceEnd":true}] -// Message: A line of text is started with an uppercase character, but the preceding line does not end the sentence. - -/** - * Foo. - * - * @template TempA, TempB foo. - */ -function quux (foo) { - -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"tags":["template"]}] -// Message: Sentences should start with an uppercase character. - -/** - * Just a component. - * @param {Object} props Свойства. - * @return {ReactElement}. - */ -function quux () {} -// Message: Sentences must be more than punctuation. -```` - -The following patterns are not considered problems: - -````js -/** - * @param foo - Foo. - */ -function quux () { - -} - -/** - * Foo. - */ -function quux () { - -} - -/** - * Foo. - * Bar. - */ -function quux () { - -} - -/** - * Foo. - * - * Bar. - */ -function quux () { - -} - -/** - * Тест. - */ -function quux () { - -} - -/** - * Foo - * bar. - */ -function quux () { - -} - -/** - * @returns Foo bar. - */ -function quux () { - -} - -/** - * Foo {@see Math.sin}. - */ -function quux () { - -} - -/** - * Foo {@see Math.sin} bar. - */ -function quux () { - -} - -/** - * Foo? - * - * Bar! - * - * Baz: - * 1. Foo. - * 2. Bar. - */ -function quux () { - -} - -/** - * Hello: - * World. - */ -function quux () { - -} - -/** - * Hello: world. - */ -function quux () { - -} - -/** - * - */ -function quux () { - -} - -/** - * @description Foo. - */ -function quux () { - -} - -/** - * `foo` is a variable. - */ -function quux () { - -} - -/** - * Foo. - * - * `foo`. - */ -function quux () { - -} - -/** - * @param foo - `bar`. - */ -function quux () { - -} - -/** - * @returns {number} `foo`. - */ -function quux () { - -} - -/** - * Foo - * `bar`. - */ -function quux () { - -} - -/** - * @example Foo - */ -function quux () { - -} - -/** - * @see Foo - */ -function quux () { - -} - -/** - * Foo. - * - * @param foo Foo. - */ -function quux (foo) { - -} - -/** - * Foo. - * - * @param foo Foo. - */ -function quux (foo) { - -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"tags":["param"]}] - -/** - * @param foo Foo bar. - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"tags":["param"]}] - -/** - * - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} - -/** -* We stop loading Items when we have loaded: -* -* 1) The main Item; -* 2) All its variants. -*/ - -/** - * This method is working on 2 steps. - * - * | Step | Comment | - * |------|-------------| - * | 1 | do it | - * | 2 | do it again | - */ - -/** - * This is something that - * I want to test. - */ -function quux () { - -} - -/** - * When making HTTP requests, the - * URL is super important. - */ -function quux () { - -} - -/** - * Sorry, but this isn't a complete sentence, Mr. - */ -function quux () { - -} - -/** - * Sorry, but this isn't a complete sentence Mr.. - */ -function quux () { - -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr."]}] - -/** - * Sorry, but this isn't a complete sentence Mr. - */ -function quux () { - -} - -/** - * Sorry, but this isn't a complete sentence Mr. and Mrs.. - */ -function quux () { - -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr","Mrs"]}] - -/** - * This is a complete sentence aMr. - */ -function quux () { - -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] - -/** - * This is a complete sentence. But this isn't, Mr. - */ -function quux () { - -} - -/** - * This is a complete Mr. Sentence. But this isn't, Mr. - */ -function quux () { - -} - -/** - * This is a complete Mr. sentence. - */ -function quux () { - -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] - -/** - * This is fun, i.e. enjoyable, but not superlatively so, e.g. not - * super, wonderful, etc.. - */ -function quux () { - -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["etc","e.g.","i.e."]}] - - -** -* Do not have dynamic content; e.g. homepage. Here a simple unique id -* suffices. -*/ -function quux () { - -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["etc","e.g.","i.e."]}] - -/** - * Implements support for the - * Swahili voice synthesizer. - */ -function speak() { -} - -/** - * @param foo - * - * @returns {void} - */ -export default (foo) => { - foo() -} - -/** @file To learn more, - * see: https://github.com/d3/d3-ease. */ - -/** To learn more, - * see: https://github.com/d3/d3-ease. */ - -/** - * This is a complete sentence... - */ -function quux () { - -} - -/** - * He wanted a few items: a jacket and shirt... - */ -function quux () { - -} - -/** - * The code in question was... - * ``` - * alert('hello'); - * ``` - */ -function quux () { - -} - -/** - * @param {number|string|Date|Object|OverType|WhateverElse} multiType - - * Nice long explanation... - */ -function test (multiType) { -} - -/** - * Any kind of fowl (e.g., a duck). - */ -function quux () {} - -/** - * The code in question was... - * ``` - * do something - * - * interesting - * ``` - */ -function quux () { - -} -```` - - - - -### require-description - -Requires that all functions have a description. - -* All functions must have an implicit description (e.g., text above tags) or - have the option `descriptionStyle` set to `tag` (requiring `@description` - (or `@desc` if that is set as your preferred tag name)). -* Every jsdoc block description (or `@description` tag if `descriptionStyle` - is `"tag"`) must have a non-empty description that explains the purpose of - the method. - - - -#### Options - -An options object may have any of the following properties: - -- `contexts` - Set to an array of strings representing the AST context - where you wish the rule to be applied (e.g., `ClassDeclaration` for ES6 - classes). Overrides the default contexts (see below). Set to `"any"` if - you want the rule to apply to any jsdoc block throughout your files. -- `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the - document block avoids the need for a `@description`. Defaults to an - array with `inheritdoc`. If you set this array, it will overwrite the - default, so be sure to add back `inheritdoc` if you wish its presence - to cause exemption of the rule. -- `descriptionStyle` - Whether to accept implicit descriptions (`"body"`) or - `@description` tags (`"tag"`) as satisfying the rule. Set to `"any"` to - accept either style. Defaults to `"body"`. -- `checkConstructors` - A value indicating whether `constructor`s should be - checked. Defaults to `true`. -- `checkGetters` - A value indicating whether getters should be checked. - Defaults to `true`. -- `checkSetters` - A value indicating whether setters should be checked. - Defaults to `true`. - -| | | -| -------- | ------------------------------------------------------------------------------------------------------------- | -| Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | -| Tags | `description` or jsdoc block | -| Aliases | `desc` | -| Recommended | false | -| Options | `contexts`, `exemptedBy`, `descriptionStyle`, `checkConstructors`, `checkGetters`, `checkSetters` | -| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | - -The following patterns are considered problems: - -````js -/** - * - */ -function quux () { - -} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. - -/** - * - */ -function quux () { - -} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"any"}] -// Message: Missing JSDoc block description or @description declaration. - -/** - * - */ -function quux () { - -} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"body"}] -// Message: Missing JSDoc block description. - -/** - * @desc Not a blank description - */ -function quux () { - -} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"body"}] -// Message: Remove the @desc tag to leave a plain block description or add additional description text above the @desc line. - -/** - * @description Not a blank description - */ -function quux () { - -} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"body"}] -// Message: Remove the @description tag to leave a plain block description or add additional description text above the @description line. - -/** - * - */ -class quux { - -} -// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. - -/** - * - */ -class quux { - -} -// Settings: {"jsdoc":{"contexts":["ClassDeclaration"]}} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. - -/** - * - */ -// "jsdoc/require-description": ["error"|"warn", {"contexts":["any"],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. - -/** - * - */ -class quux { - -} -// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. - -/** - * - */ -class quux { - -} -// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. - -/** - * @description - */ -function quux () { - -} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description description. - -/** - * - */ -interface quux { - -} -// "jsdoc/require-description": ["error"|"warn", {"contexts":["TSInterfaceDeclaration"],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. - -/** - * - */ -var quux = class { - -}; -// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassExpression"],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. - -/** - * - */ -var quux = { - -}; -// "jsdoc/require-description": ["error"|"warn", {"contexts":["ObjectExpression"],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. - -/** - * @someDesc - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"description":{"message":"Please avoid `{{tagName}}`; use `{{replacement}}` instead","replacement":"someDesc"}}}} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] -// Message: Missing JSDoc @someDesc description. - -/** - * @description - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] -// Message: Unexpected tag `@description` - -/** - * @description - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"any"}] -// Message: Missing JSDoc block description or @description declaration. - -/** - * - */ -function quux () { -} -// "jsdoc/require-description": ["error"|"warn", {"exemptedBy":["notPresent"]}] -// Message: Missing JSDoc block description. - -class TestClass { - /** - * - */ - constructor() { } -} -// Message: Missing JSDoc block description. - -class TestClass { - /** - * - */ - constructor() { } -} -// "jsdoc/require-description": ["error"|"warn", {"checkConstructors":true}] -// Message: Missing JSDoc block description. - -class TestClass { - /** - * - */ - get Test() { } -} -// Message: Missing JSDoc block description. - -class TestClass { - /** - * - */ - get Test() { } -} -// "jsdoc/require-description": ["error"|"warn", {"checkGetters":true}] -// Message: Missing JSDoc block description. - -class TestClass { - /** - * - */ - set Test(value) { } -} -// Message: Missing JSDoc block description. - -class TestClass { - /** - * - */ - set Test(value) { } -} -// "jsdoc/require-description": ["error"|"warn", {"checkSetters":true}] -// Message: Missing JSDoc block description. - -/** - * - */ -class Foo { - /** - * - */ - constructor() {} - - /** - * - */ - bar() {} -} -// "jsdoc/require-description": ["error"|"warn", {"checkConstructors":false,"contexts":["MethodDefinition"]}] -// Message: Missing JSDoc block description. - -/** - * @implements {Bar} - */ -class quux { - -} -// Settings: {"jsdoc":{"implementsReplacesDocs":false}} -// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"Bar\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. - -/** - * Has some - * description already. - * @implements {Bar} - */ -class quux { - -} -// Settings: {"jsdoc":{"implementsReplacesDocs":false}} -// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"Bar\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. - -/** - * @implements {Bar - * | Foo} - */ -class quux { - -} -// Settings: {"jsdoc":{"implementsReplacesDocs":false}} -// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. - -/** - * @implements {Bar} - */ -class quux { - -} -// Settings: {"jsdoc":{"implementsReplacesDocs":false}} -// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[tag=\"implements\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. - -/** - * @implements {Bar} - */ -class quux { - -} -// Settings: {"jsdoc":{"implementsReplacesDocs":false}} -// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[tag=\"implements\"])","context":"any"}],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. -```` - -The following patterns are not considered problems: - -````js -/** - * - */ - -/** - * @description - * // arbitrary description content - */ -function quux () { - -} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] - -/** - * @description - * quux(); // does something useful - */ -function quux () { - -} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] - -/** - * @description Valid usage - * quux(); // does something useful - * - * @description Invalid usage - * quux('random unwanted arg'); // results in an error - */ -function quux () { - -} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] - -/** - * - */ -class quux { - -} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] - -/** - * - */ -function quux () { - -} -// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"]}] - -/** - * @type {MyCallback} - */ -function quux () { - -} -// "jsdoc/require-description": ["error"|"warn", {"exemptedBy":["type"]}] - -/** - * - */ -interface quux { - -} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] - -interface quux { - /** - * If the thing should be checked. - */ - checked?: boolean -} -// "jsdoc/require-description": ["error"|"warn", {"contexts":["TSPropertySignature"]}] - -/** - * - */ -var quux = class { - -}; -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] - -/** - * - */ -var quux = { - -}; -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] - -/** - * Has an implicit description - */ -function quux () { - -} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"body"}] - -/** - * Has an implicit description - */ -function quux () { - -} - -/** - * Has an implicit description - */ -function quux () { - -} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"any"}] - -/** - * @description Has an explicit description - */ -function quux () { - -} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"any"}] - -/** - * - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} - -class TestClass { - /** - * Test. - */ - constructor() { } -} - -class TestClass { - /** - * - */ - constructor() { } -} -// "jsdoc/require-description": ["error"|"warn", {"checkConstructors":false}] - -class TestClass { - /** - * Test. - */ - get Test() { } -} - -class TestClass { - /** - * - */ - get Test() { } -} -// "jsdoc/require-description": ["error"|"warn", {"checkGetters":false}] - -class TestClass { - /** - * Test. - */ - set Test(value) { } -} - -class TestClass { - /** - * - */ - set Test(value) { } -} -// "jsdoc/require-description": ["error"|"warn", {"checkSetters":false}] - -/** - * Multi - * line - */ -function quux () { - -} - -/** Single line */ -function quux () { - -} - -/** @description something */ -function quux () { - -} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] - -/** - * @implements {Bar} - */ -class quux { - -} -// Settings: {"jsdoc":{"implementsReplacesDocs":false}} -// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=/\\s{4}/]:has(JsdocTag[rawType=\"class\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] - -/** - * Has some - * description already. - */ -class quux { - -} -// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"{Bar}\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] - -/** - * Has some - * description already. - */ -class quux { - -} -// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"{Bar}\"])","context":"any"}],"descriptionStyle":"tag"}] - -/** - * Has some - * description already. - */ -// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"{Bar}\"])","context":"any"}],"descriptionStyle":"tag"}] -```` - - - - -### require-example - -Requires that all functions have examples. - -* All functions must have one or more `@example` tags. -* Every example tag must have a non-empty description that explains the - method's usage. - - - -#### Options - -This rule has an object option. - - - -##### exemptedBy - -Array of tags (e.g., `['type']`) whose presence on the document -block avoids the need for an `@example`. Defaults to an array with -`inheritdoc`. If you set this array, it will overwrite the default, -so be sure to add back `inheritdoc` if you wish its presence to cause -exemption of the rule. - - - -##### exemptNoArguments - -Boolean to indicate that no-argument functions should not be reported for -missing `@example` declarations. - - - -##### contexts - -Set this to an array of strings representing the AST context (or an object with -`context` and `comment` properties) where you wish the rule to be applied. -(e.g., `ClassDeclaration` for ES6 -classes). Overrides the default contexts (see below). Set to `"any"` if you -want the rule to apply to any jsdoc block throughout your files. - -See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) -section of our README for more on the expected format. - - - -##### checkConstructors - -A value indicating whether `constructor`s should be checked. -Defaults to `true`. - - - -##### checkGetters - -A value indicating whether getters should be checked. Defaults to `false`. - - - -##### checkSetters - -A value indicating whether setters should be checked. Defaults to `false`. - - - -##### enableFixer - -A boolean on whether to enable the fixer (which adds an empty `@example` block). -Defaults to `true`. - - - -#### Fixer - -The fixer for `require-example` will add an empty `@example`, but it will still -report a missing example description after this is added. - -||| -|---|---| -|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| -|Tags|`example`| -|Recommended|false| -|Options|`exemptedBy`, `exemptNoArguments`, `contexts`, `checkConstructors`, `checkGetters`, `checkSetters`, `enableFixer`| -|Settings|`ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`| - -The following patterns are considered problems: - -````js -/** - * - */ -function quux () { - -} -// Message: Missing JSDoc @example declaration. - -/** - * - */ -function quux (someParam) { - -} -// "jsdoc/require-example": ["error"|"warn", {"exemptNoArguments":true}] -// Message: Missing JSDoc @example declaration. - -/** - * - */ -function quux () { - -} -// Message: Missing JSDoc @example declaration. - -/** - * @example - */ -function quux () { - -} -// Message: Missing JSDoc @example description. - -/** - * @constructor - */ -function quux () { - -} -// Message: Missing JSDoc @example declaration. - -/** - * @constructor - * @example - */ -function quux () { - -} -// Message: Missing JSDoc @example description. - -/** - * - */ -class quux { - -} -// "jsdoc/require-example": ["error"|"warn", {"contexts":["ClassDeclaration"]}] -// Message: Missing JSDoc @example declaration. - -/** - * - */ -// "jsdoc/require-example": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @example declaration. - -/** - * - */ -function quux () { -} -// "jsdoc/require-example": ["error"|"warn", {"exemptedBy":["notPresent"]}] -// Message: Missing JSDoc @example declaration. - -class TestClass { - /** - * - */ - get Test() { } -} -// "jsdoc/require-example": ["error"|"warn", {"checkGetters":true}] -// Message: Missing JSDoc @example declaration. - -class TestClass { - /** - * @example - */ - get Test() { } -} -// "jsdoc/require-example": ["error"|"warn", {"checkGetters":true}] -// Message: Missing JSDoc @example description. - -class TestClass { - /** - * - */ - set Test(value) { } -} -// "jsdoc/require-example": ["error"|"warn", {"checkSetters":true}] -// Message: Missing JSDoc @example declaration. - -class TestClass { - /** - * @example - */ - set Test(value) { } -} -// "jsdoc/require-example": ["error"|"warn", {"checkSetters":true}] -// Message: Missing JSDoc @example description. - -/** - * - */ -function quux (someParam) { - -} -// "jsdoc/require-example": ["error"|"warn", {"enableFixer":true}] -// Message: Missing JSDoc @example declaration. - -/** - * - */ -function quux (someParam) { - -} -// "jsdoc/require-example": ["error"|"warn", {"enableFixer":false}] -// Message: Missing JSDoc @example declaration. -```` - -The following patterns are not considered problems: - -````js -/** - * - */ - -/** - * @example - * // arbitrary example content - */ -function quux () { - -} - -/** - * @example - * quux(); // does something useful - */ -function quux () { - -} - -/** - * @example Valid usage - * quux(); // does something useful - * - * @example Invalid usage - * quux('random unwanted arg'); // results in an error - */ -function quux () { - -} - -/** - * @constructor - */ -function quux () { - -} -// "jsdoc/require-example": ["error"|"warn", {"checkConstructors":false}] - -/** - * @constructor - * @example - */ -function quux () { - -} -// "jsdoc/require-example": ["error"|"warn", {"checkConstructors":false}] - -class Foo { - /** - * - */ - constructor () { - - } -} -// "jsdoc/require-example": ["error"|"warn", {"checkConstructors":false}] - -/** - * @inheritdoc - */ -function quux () { - -} - -/** - * @type {MyCallback} - */ -function quux () { - -} -// "jsdoc/require-example": ["error"|"warn", {"exemptedBy":["type"]}] - -/** - * @example Some example code - */ -class quux { - -} -// "jsdoc/require-example": ["error"|"warn", {"contexts":["ClassDeclaration"]}] - -/** - * - */ -function quux () { - -} -// "jsdoc/require-example": ["error"|"warn", {"contexts":["ClassDeclaration"]}] - -class TestClass { - /** - * - */ - get Test() { } -} - -class TestClass { - /** - * @example - */ - get Test() { } -} - -class TestClass { - /** - * @example Test - */ - get Test() { } -} -// "jsdoc/require-example": ["error"|"warn", {"checkGetters":true}] - -class TestClass { - /** - * - */ - set Test(value) { } -} - -class TestClass { - /** - * @example - */ - set Test(value) { } -} -// "jsdoc/require-example": ["error"|"warn", {"checkSetters":false}] - -class TestClass { - /** - * @example Test - */ - set Test(value) { } -} -// "jsdoc/require-example": ["error"|"warn", {"checkSetters":true}] - -/** - * - */ -function quux () { - -} -// "jsdoc/require-example": ["error"|"warn", {"exemptNoArguments":true}] -```` - - - - -### require-file-overview - -Checks that: - -1. All files have a `@file`, `@fileoverview`, or `@overview` tag. -2. Duplicate file overview tags within a given file will be reported -3. File overview tags will be reported which are not, as per - [the docs](https://jsdoc.app/tags-file.html), "at the beginning of - the file"–where beginning of the file is interpreted in this rule - as being when the overview tag is not preceded by anything other than - a comment. - - - -#### Options - - - -##### tags - -The keys of this object are tag names, and the values are configuration -objects indicating what will be checked for these whole-file tags. - -Each configuration object has the following boolean keys (which default -to `false` when this option is supplied): `mustExist`, `preventDuplicates`, -`initialCommentsOnly`. These correspond to the three items above. - -When no `tags` is present, the default is: - -```json -{ - "file": { - "initialCommentsOnly": true, - "mustExist": true, - "preventDuplicates": true, - } -} -``` - -You can add additional tag names and/or override `file` if you supply this -option, e.g., in place of or in addition to `file`, giving other potential -file global tags like `@license`, `@copyright`, `@author`, `@module` or -`@exports`, optionally restricting them to a single use or preventing them -from being preceded by anything besides comments. - -For example: - -```js -{ - "license": { - "mustExist": true, - "preventDuplicates": true, - } -} -``` - -This would require one and only one `@license` in the file, though because -`initialCommentsOnly` is absent and defaults to `false`, the `@license` -can be anywhere. - -In the case of `@license`, you can use this rule along with the -`check-values` rule (with its `allowedLicenses` or `licensePattern` options), -to enforce a license whitelist be present on every JS file. - -Note that if you choose to use `preventDuplicates` with `license`, you still -have a way to allow multiple licenses for the whole page by using the SPDX -"AND" expression, e.g., `@license (MIT AND GPL-3.0)`. - -Note that the tag names are the main jsdoc tag name, so you should use `file` -in this configuration object regardless of whether you have configured -`fileoverview` instead of `file` on `tagNamePreference` (i.e., `fileoverview` -will be checked, but you must use `file` on the configuration object). - -||| -|---|---| -|Context|Everywhere| -|Tags|`file`; others when `tags` set| -|Aliases|`fileoverview`, `overview`| -|Recommended|false| -|Options|`tags`| - -The following patterns are considered problems: - -````js - -// Message: Missing @file - - -// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"file":{"initialCommentsOnly":true,"mustExist":true,"preventDuplicates":true}}}] -// Message: Missing @file - - -// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"file":{"mustExist":true}}}] -// Message: Missing @file - - -// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"author":{"initialCommentsOnly":false,"mustExist":true,"preventDuplicates":false}}}] -// Message: Missing @author - -/** - * - */ -// Message: Missing @file - -/** - * - */ -function quux () {} -// Message: Missing @file - -/** - * - */ -function quux () {} -// Settings: {"jsdoc":{"tagNamePreference":{"file":"fileoverview"}}} -// Message: Missing @fileoverview - -/** - * - */ -function quux () {} -// Settings: {"jsdoc":{"tagNamePreference":{"file":"overview"}}} -// Message: Missing @overview - -/** - * - */ -function quux () {} -// Settings: {"jsdoc":{"tagNamePreference":{"file":false}}} -// Message: `settings.jsdoc.tagNamePreference` cannot block @file for the `require-file-overview` rule - -/** - * - */ -function quux () {} -// Settings: {"jsdoc":{"tagNamePreference":{"file":false}}} -// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"file":{"initialCommentsOnly":false,"mustExist":true,"preventDuplicates":false}}}] -// Message: `settings.jsdoc.tagNamePreference` cannot block @file for the `require-file-overview` rule - -/** - * - */ -function quux () {} -// Settings: {"jsdoc":{"tagNamePreference":{"file":{"message":"Don't use file"}}}} -// Message: `settings.jsdoc.tagNamePreference` cannot block @file for the `require-file-overview` rule - -/** - * @param a - */ -function quux (a) {} -// Message: Missing @file - -/** - * @param a - */ -function quux (a) {} - -/** - * @param b - */ -function bar (b) {} -// Message: Missing @file - -/** - * @file - */ - - /** - * @file - */ -// Message: Duplicate @file - -/** - * @copyright - */ - - /** - * @copyright - */ -// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"copyright":{"initialCommentsOnly":false,"mustExist":false,"preventDuplicates":true}}}] -// Message: Duplicate @copyright - -function quux () { -} -/** - * @file - */ -// Message: @file should be at the beginning of the file - -function quux () { -} -/** - * @license - */ -// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"license":{"initialCommentsOnly":true,"mustExist":false,"preventDuplicates":false}}}] -// Message: @license should be at the beginning of the file - -function quux () { -} -/** - * @license - */ -// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"license":{"initialCommentsOnly":true}}}] -// Message: @license should be at the beginning of the file - -/** - * @file - */ - -/** - * @file - */ -// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"file":{"initialCommentsOnly":true,"preventDuplicates":true}}}] -// Message: Duplicate @file -```` - -The following patterns are not considered problems: - -````js -/** - * @file - */ - -/** - * @file - */ - -/** - * @file - */ -// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"license":{"initialCommentsOnly":true,"preventDuplicates":true}}}] - -// Ok preceded by comment -/** - * @file - */ - -/** - * @fileoverview - */ -// Settings: {"jsdoc":{"tagNamePreference":{"file":"fileoverview"}}} - -/** - * @overview - */ -// Settings: {"jsdoc":{"tagNamePreference":{"file":"overview"}}} - -/** - * @file Description of file - */ - -/** - * @file Description of file - */ -function quux () { -} - -/** - * - */ - -function quux () { -} -/** - * - */ -// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"license":{"initialCommentsOnly":true,"mustExist":false,"preventDuplicates":false}}}] - -function quux () { -} -/** - * - */ -// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"license":{"initialCommentsOnly":false,"mustExist":false,"preventDuplicates":false}}}] - -function quux () { -} -/** - * - */ -// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"license":{"initialCommentsOnly":false,"mustExist":false,"preventDuplicates":true}}}] - -/** - * @license MIT - */ - - var a - - /** - * @type {Array} - */ -// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"license":{"initialCommentsOnly":true,"mustExist":false,"preventDuplicates":false}}}] -```` - - - - -### require-hyphen-before-param-description - -Requires (or disallows) a hyphen before the `@param` description. - - - -#### Options - -This rule takes one optional string argument and an optional options object. - -If the string is `"always"` then a problem is raised when there is no hyphen -before the description. If it is `"never"` then a problem is raised when there -is a hyphen before the description. The default value is `"always"`. - -The options object may have the following properties to indicate behavior for -other tags besides the `@param` tag (or the `@arg` tag if so set): - -- `tags` - Object whose keys indicate different tags to check for the - presence or absence of hyphens; the key value should be "always" or "never", - indicating how hyphens are to be applied, e.g., `{property: 'never'}` - to ensure `@property` never uses hyphens. A key can also be set as `*`, e.g., - `'*': 'always'` to apply hyphen checking to any tag (besides the preferred - `@param` tag which follows the main string option setting and besides any - other `tags` entries). - -||| -|---|---| -|Context|everywhere| -|Tags|`param` and optionally other tags within `tags`| -|Aliases|`arg`, `argument`; potentially `prop` or other aliases| -|Recommended|false| -|Options|a string matching `"always" or "never"` followed by an optional object with a `tags` property| - -The following patterns are considered problems: - -````js -/** - * @param foo Foo. - */ -function quux () { - -} -// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always"] -// Message: There must be a hyphen before @param description. - -/** - * @param foo Foo. - */ -function quux () { - -} -// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"*":"never"}}] -// Message: There must be a hyphen before @param description. - -/** - * @param foo Foo. - * @returns {SomeType} - Hyphen here. - */ -function quux () { - -} -// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"*":"never","returns":"always"}}] -// Message: There must be a hyphen before @param description. - -/** - * @param foo Foo. - */ -function quux () { - -} -// Message: There must be a hyphen before @param description. - -/** - * @param foo - Foo. - */ -function quux () { - -} -// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "never"] -// Message: There must be no hyphen before @param description. - -/** - * @param foo - Foo. - */ -function quux () { - -} -// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "never"] -// Message: There must be no hyphen before @param description. - -/** - * @param foo - foo - * @param foo foo - */ -function quux () { - -} -// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always"] -// Message: There must be a hyphen before @param description. - -/** - * @param foo foo - * bar - * @param bar - bar - */ -function quux () { - -} -// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always"] -// Message: There must be a hyphen before @param description. - -/** - * @param foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}} -// Message: Unexpected tag `@param` - -/** - * @typedef {SomeType} ATypeDefName - * @property foo Foo. - */ -// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"property":"always"}}] -// Message: There must be a hyphen before @property description. - -/** - * @template TempA, TempB A desc. - */ -// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"template":"always"}}] -// Message: There must be a hyphen before @template description. - -/** - * @typedef {SomeType} ATypeDefName - * @property foo - Foo. - */ -// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "never",{"tags":{"property":"never"}}] -// Message: There must be no hyphen before @property description. - -/** - * @param foo Foo. - * @returns {SomeType} - A description. - */ -function quux () { - -} -// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"returns":"never"}}] -// Message: There must be a hyphen before @param description. -```` - -The following patterns are not considered problems: - -````js -/** - * @param foo - Foo. - */ -function quux () { - -} -// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always"] - -/** - * @param foo - Foo. - */ -function quux () { - -} -// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always"] - -/** - * @param foo - Foo. - * @returns {SomeType} A description. - */ -function quux () { - -} -// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"returns":"never"}}] - -/** - * @param foo Foo. - */ -function quux () { - -} -// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "never"] - -/** - * @param foo - */ -function quux () { - -} - -/** - * - */ -function quux () { - -} -// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"*":"always"}}] - -/** - * @typedef {SomeType} ATypeDefName - * @property foo - Foo. - */ -// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"property":"always"}}] - -/** - * @typedef {SomeType} ATypeDefName - * @property foo Foo. - */ -// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "never",{"tags":{"property":"never"}}] - -/** - * @typedef {SomeType} ATypeDefName - * @property foo - Foo. - */ -// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "never",{"tags":{"*":"always"}}] - -/** Entry point for module. - * - * @param {!Array} argv Command-line arguments. - */ -function main(argv) { -}; -// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "never"] -```` - - - - -### require-jsdoc - -Checks for presence of jsdoc comments, on class declarations as well as -functions. - - - -#### Options - -Accepts one optional options object with the following optional keys. - - - -##### publicOnly - -This option will insist that missing jsdoc blocks are only reported for -function bodies / class declarations that are exported from the module. -May be a boolean or object. If set to `true`, the defaults below will be -used. If unset, jsdoc block reporting will not be limited to exports. - -This object supports the following optional boolean keys (`false` unless -otherwise noted): - -- `ancestorsOnly` - Only check node ancestors to check if node is exported -- `esm` - ESM exports are checked for JSDoc comments (Defaults to `true`) -- `cjs` - CommonJS exports are checked for JSDoc comments (Defaults to `true`) -- `window` - Window global exports are checked for JSDoc comments - - - -##### require - -An object with the following optional boolean keys which all default to -`false` except as noted, indicating the contexts where the rule will apply: - -- `ArrowFunctionExpression` -- `ClassDeclaration` -- `ClassExpression` -- `FunctionDeclaration` (defaults to `true`) -- `FunctionExpression` -- `MethodDefinition` - - - -##### contexts - -Set this to an array of strings or objects representing the additional AST -contexts where you wish the rule to be applied (e.g., `Property` for -properties). If specified as an object, it should have a `context` property -and can have an `inlineCommentBlock` property which, if set to `true`, will -add an inline `/** */` instead of the regular, multi-line, indented jsdoc -block which will otherwise be added. Defaults to an empty array. Contexts -may also have their own `minLineCount` property. - -Note that you may need to disable `require` items (e.g., `MethodDefinition`) -if you are specifying a more precise form in `contexts` (e.g., `MethodDefinition:not([accessibility="private"] > FunctionExpression`). - -See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) -section of our README for more on the expected format. - - - -##### exemptEmptyConstructors - -Default: true - -When `true`, the rule will not report missing jsdoc blocks above constructors -with no parameters or return values (this is enabled by default as the class -name or description should be seen as sufficient to convey intent). - - - -##### exemptEmptyFunctions - -Default: false. - -When `true`, the rule will not report missing jsdoc blocks above -functions/methods with no parameters or return values (intended where -function/method names are sufficient for themselves as documentation). - - - -##### checkConstructors - -A value indicating whether `constructor`s should be checked. Defaults to -`true`. When `true`, `exemptEmptyConstructors` may still avoid reporting when -no parameters or return values are found. - - - -##### checkGetters - -A value indicating whether getters should be checked. Besides setting as a -boolean, this option can be set to the string `"no-setter"` to indicate that -getters should be checked but only when there is no setter. This may be useful -if one only wishes documentation on one of the two accessors. Defaults to -`false`. - - - -##### checkSetters - -A value indicating whether setters should be checked. Besides setting as a -boolean, this option can be set to the string `"no-getter"` to indicate that -setters should be checked but only when there is no getter. This may be useful -if one only wishes documentation on one of the two accessors. Defaults to -`false`. - - - -##### enableFixer - -A boolean on whether to enable the fixer (which adds an empty jsdoc block). -Defaults to `true`. - - - -##### minLineCount - -An integer to indicate a minimum number of lines expected for a node in order -for it to require documentation. Defaults to `undefined`. This option will -apply to any context; see `contexts` for line counts per context. - -||| -|---|---| -|Context|`ArrowFunctionExpression`, `ClassDeclaration`, `ClassExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| -|Tags|N/A| -|Recommended|true| -|Options|`publicOnly`, `require`, `contexts`, `exemptEmptyConstructors`, `exemptEmptyFunctions`, `enableFixer`, `minLineCount`| - -The following patterns are considered problems: - -````js -/** This is comment */ -export interface Foo { - /** This is comment x2 */ - tom: string; - catchJerry(): boolean; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"],"publicOnly":{"ancestorsOnly":true},"require":{"ClassDeclaration":true,"ClassExpression":true,"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -/** This is comment */ -export interface Foo { - /** This is comment x2 */ - tom: string; - jerry: number; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"],"publicOnly":{"ancestorsOnly":true},"require":{"ClassDeclaration":true,"ClassExpression":true,"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -/** This is comment */ -export interface Foo { - bar(): string; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"],"publicOnly":{"ancestorsOnly":true}}] -// Message: Missing JSDoc comment. - -/** This is comment */ -export interface Foo { - bar: string; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"],"publicOnly":{"ancestorsOnly":true,"esm":true}}] -// Message: Missing JSDoc comment. - -/** - * Foo interface documentation. - */ -export interface Foo extends Bar { - /** - * baz method documentation. - */ - baz(): void; - - meow(): void; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSMethodSignature"],"publicOnly":{"ancestorsOnly":true}}] -// Message: Missing JSDoc comment. - -function quux (foo) { - -} -// Message: Missing JSDoc comment. - -/** - * @func myFunction - */ -function myFunction() { - -} -// Settings: {"jsdoc":{"maxLines":3,"minLines":2}} -// Message: Missing JSDoc comment. - -/** - * @func myFunction - */ - - -function myFunction() { - -} -// Settings: {"jsdoc":{"maxLines":2}} -// Message: Missing JSDoc comment. - -/** @func myFunction */ function myFunction() { - -} -// Settings: {"jsdoc":{"minLines":1}} -// Message: Missing JSDoc comment. - -function myFunction() { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"enableFixer":false}] -// Message: Missing JSDoc comment. - -export var test = function () { - -}; -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -function test () { - -} -export var test2 = test; -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionDeclaration":true}}] -// Message: Missing JSDoc comment. - -export const test = () => { - -}; -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ArrowFunctionExpression":true}}] -// Message: Missing JSDoc comment. - -export const test = () => { - -}; -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["ArrowFunctionExpression"],"publicOnly":true}] -// Message: Missing JSDoc comment. - -export const test = () => { - -}; -// Settings: {"jsdoc":{"contexts":["ArrowFunctionExpression"]}} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true}] -// Message: Missing JSDoc comment. - -export const test = () => { - -}; -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[{"context":"ArrowFunctionExpression"}],"publicOnly":true}] -// Message: Missing JSDoc comment. - -export let test = class { - -}; -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ClassExpression":true}}] -// Message: Missing JSDoc comment. - -export default function () {} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"FunctionDeclaration":true}}] -// Message: Missing JSDoc comment. - -export default () => {} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"ArrowFunctionExpression":true}}] -// Message: Missing JSDoc comment. - -export default (function () {}) -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -export default class {} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"ClassDeclaration":true}}] -// Message: Missing JSDoc comment. - -function quux (foo) { - -} -// Message: Missing JSDoc comment. - -function quux (foo) { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyFunctions":true}] -// Message: Missing JSDoc comment. - -function quux (foo) { - -} -// Settings: {"jsdoc":{"minLines":2}} -// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyFunctions":true}] -// Message: Missing JSDoc comment. - -function myFunction() {} -// Message: Missing JSDoc comment. - -/** - * Description for A. - */ -class A { - constructor(xs) { - this.a = xs; - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -class A { - /** - * Description for constructor. - * @param {object[]} xs - xs - */ - constructor(xs) { - this.a = xs; - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -class A extends B { - /** - * Description for constructor. - * @param {object[]} xs - xs - */ - constructor(xs) { - this.a = xs; - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -export class A extends B { - /** - * Description for constructor. - * @param {object[]} xs - xs - */ - constructor(xs) { - this.a = xs; - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -export default class A extends B { - /** - * Description for constructor. - * @param {object[]} xs - xs - */ - constructor(xs) { - this.a = xs; - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -var myFunction = () => {} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":true}}] -// Message: Missing JSDoc comment. - -var myFunction = () => () => {} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":true}}] -// Message: Missing JSDoc comment. - -var foo = function() {} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -const foo = {bar() {}} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -var foo = {bar: function() {}} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -function foo (abc) {} -// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyFunctions":false}] -// Message: Missing JSDoc comment. - -function foo () { - return true; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyFunctions":false}] -// Message: Missing JSDoc comment. - -module.exports = function quux () { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -module.exports = function quux () { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -module.exports = { - method: function() { - - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -module.exports = { - test: { - test2: function() { - - } - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -module.exports = { - test: { - test2: function() { - - } - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -const test = module.exports = function () { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -/** -* -*/ -const test = module.exports = function () { - -} - -test.prototype.method = function() {} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -const test = function () { - -} -module.exports = { - test: test -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -const test = () => { - -} -module.exports = { - test: test -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ArrowFunctionExpression":true}}] -// Message: Missing JSDoc comment. - -class Test { - method() { - - } -} -module.exports = Test; -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -export default function quux () { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -export default function quux () { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -function quux () { - -} -export default quux; -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -export function test() { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -export function test() { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -var test = function () { - -} -var test2 = 2; -export { test, test2 } -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -var test = function () { - -} -export { test as test2 } -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -export default class A { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ClassDeclaration":true}}] -// Message: Missing JSDoc comment. - -export default class A { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"require":{"ClassDeclaration":true}}] -// Message: Missing JSDoc comment. - -var test = function () { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"window":true},"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -window.test = function () { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"window":true},"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -function test () { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"window":true}}] -// Message: Missing JSDoc comment. - -module.exports = function() { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":true,"esm":false,"window":false},"require":{"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -export function someMethod() { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"FunctionDeclaration":true}}] -// Message: Missing JSDoc comment. - -export function someMethod() { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"FunctionDeclaration":true}}] -// Message: Missing JSDoc comment. - -const myObject = { - myProp: true -}; -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["Property"]}] -// Message: Missing JSDoc comment. - -/** - * Foo interface documentation. - */ -export interface Foo extends Bar { - /** - * baz method documentation. - */ - baz(): void; - - meow(): void; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSMethodSignature"]}] -// Message: Missing JSDoc comment. - -class MyClass { - someProperty: boolean; // Flow type annotation. -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyFunctions":true,"require":{"ClassDeclaration":true}}] -// Message: Missing JSDoc comment. - -export default class Test { - constructor(a) { - this.a = a; - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ArrowFunctionExpression":false,"ClassDeclaration":false,"ClassExpression":false,"FunctionDeclaration":false,"FunctionExpression":false,"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -export default class Test { - constructor(a) { - this.a = a; - } - private abc(a) { - this.a = a; - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["MethodDefinition:not([accessibility=\"private\"]) > FunctionExpression"],"publicOnly":true,"require":{"ArrowFunctionExpression":false,"ClassDeclaration":false,"ClassExpression":false,"FunctionDeclaration":false,"FunctionExpression":false,"MethodDefinition":false}}] -// Message: Missing JSDoc comment. - -e = function () { -}; -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"FunctionDeclaration":false,"FunctionExpression":true}}] -// Message: Missing JSDoc comment. - -/** - * - */ -export class Class { - test = 1; - - foo() { - this.test = 2; - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"FunctionDeclaration":false,"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -class Dog { - eat() { - - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"FunctionDeclaration":false,"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -const hello = name => { - document.body.textContent = "Hello, " + name + "!"; -}; -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":true,"FunctionDeclaration":false}}] -// Message: Missing JSDoc comment. - -export const loginSuccessAction = (): BaseActionPayload => ({ type: LOGIN_SUCCESSFUL }); -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":true,"FunctionDeclaration":false}}] -// Message: Missing JSDoc comment. - -export type Container = { - constants?: ObjByString; - enums?: { [key in string]: TypescriptEnum }; - helpers?: { [key in string]: AnyFunction }; -}; -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSTypeAliasDeclaration",{"context":"TSPropertySignature","inlineCommentBlock":true}]}] -// Message: Missing JSDoc comment. - -class Foo { - constructor() {} - - bar() {} -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["MethodDefinition[key.name!=\"constructor\"]"],"require":{"ClassDeclaration":true}}] -// Message: Missing JSDoc comment. - -class Example extends React.PureComponent { - componentDidMount() {} - - render() {} - - someOtherMethod () {} -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["MethodDefinition:not([key.name=\"componentDidMount\"]):not([key.name=\"render\"])"],"require":{"ClassDeclaration":true}}] -// Message: Missing JSDoc comment. - -function foo(arg: boolean): boolean { - return arg; -} - -function bar(arg: true): true; -function bar(arg: false): false; -function bar(arg: boolean): boolean { - return arg; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSDeclareFunction:not(TSDeclareFunction + TSDeclareFunction)","FunctionDeclaration:not(TSDeclareFunction + FunctionDeclaration)"],"require":{"FunctionDeclaration":false}}] -// Message: Missing JSDoc comment. - -export function foo(arg: boolean): boolean { - return arg; -} - -export function bar(arg: true): true; -export function bar(arg: false): false; -export function bar(arg: boolean): boolean { - return arg; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["ExportNamedDeclaration[declaration.type=\"TSDeclareFunction\"]:not(ExportNamedDeclaration[declaration.type=\"TSDeclareFunction\"] + ExportNamedDeclaration[declaration.type=\"TSDeclareFunction\"])","ExportNamedDeclaration[declaration.type=\"FunctionDeclaration\"]:not(ExportNamedDeclaration[declaration.type=\"TSDeclareFunction\"] + ExportNamedDeclaration[declaration.type=\"FunctionDeclaration\"])"],"require":{"FunctionDeclaration":false}}] -// Message: Missing JSDoc comment. - -module.exports.foo = (bar) => { - return bar + "biz" -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":false,"require":{"ArrowFunctionExpression":true,"FunctionDeclaration":true,"FunctionExpression":true,"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -class Animal { - - #name: string; - - private species: string; - - public color: string; - - @SomeAnnotation('optionalParameter') - tail: boolean; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["PropertyDefinition"]}] -// Message: Missing JSDoc comment. - -@Entity('users') -export class User {} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true}}] -// Message: Missing JSDoc comment. - -/** - * - */ -class Foo { - constructor() {} -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyConstructors":false,"require":{"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -/** - * - */ -class Foo { - constructor(notEmpty) {} -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyConstructors":true,"require":{"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -/** - * - */ -class Foo { - constructor() { - const notEmpty = true; - return notEmpty; - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyConstructors":true,"require":{"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -/** - * - */ -function quux() { - -} -// Settings: {"jsdoc":{"structuredTags":{"see":{"name":false,"required":["name"]}}}} -// Message: Cannot add "name" to `require` with the tag's `name` set to `false` - -class Test { - aFunc() {} -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"checkConstructors":false,"require":{"ArrowFunctionExpression":true,"ClassDeclaration":false,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":true,"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -class Test { - aFunc = () => {} - anotherFunc() {} -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":true,"ClassDeclaration":false,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":true,"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -export enum testEnum { - A, B -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSEnumDeclaration"],"publicOnly":true}] -// Message: Missing JSDoc comment. - -export interface Test { - aFunc: () => void; - aVar: string; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration"],"publicOnly":true}] -// Message: Missing JSDoc comment. - -export type testType = string | number; -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSTypeAliasDeclaration"],"publicOnly":true}] -// Message: Missing JSDoc comment. - -export interface Foo { - bar: number; - baz: string; - quux(): void; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSPropertySignature","TSMethodSignature"],"publicOnly":true}] -// Message: Missing JSDoc comment. - -export class MyComponentComponent { - @Output() - public changed = new EventEmitter(); - - public test = 'test'; - - @Input() - public value = new EventEmitter(); -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["PropertyDefinition > Decorator[expression.callee.name=\"Input\"]"]}] -// Message: Missing JSDoc comment. - -requestAnimationFrame(draw) - -function bench() { -} -// Message: Missing JSDoc comment. - -class Foo { - set aName (val) {} -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"checkSetters":"no-getter","contexts":["MethodDefinition > FunctionExpression"]}] -// Message: Missing JSDoc comment. - -class Foo { - get aName () {} -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"checkGetters":"no-setter","contexts":["MethodDefinition > FunctionExpression"]}] -// Message: Missing JSDoc comment. - -const obj = { - get aName () {}, -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"checkGetters":"no-setter","contexts":["Property > FunctionExpression"]}] -// Message: Missing JSDoc comment. - -function comment () { - return "comment"; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"enableFixer":true,"fixerMessage":" TODO: add comment"}] -// Message: Missing JSDoc comment. - -function comment () { - return "comment"; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["any",{"context":"FunctionDeclaration","inlineCommentBlock":true}],"fixerMessage":"TODO: add comment "}] -// Message: Missing JSDoc comment. - -function comment () { - return "comment"; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"enableFixer":false,"fixerMessage":" TODO: add comment"}] -// Message: Missing JSDoc comment. - -export class InovaAutoCompleteComponent { - public disabled = false; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["PropertyDefinition"],"publicOnly":true}] -// Message: Missing JSDoc comment. - -export default (arg) => arg; -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ArrowFunctionExpression":true,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":true,"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -export function outer() { - function inner() { - console.log('foo'); - } - - inner(); -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ArrowFunctionExpression":true,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":true,"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -export const outer = () => { - const inner = () => { - console.log('foo'); - }; - - inner(); -}; -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ArrowFunctionExpression":true,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":true,"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -/** - * - */ -export class InovaAutoCompleteComponent { - public disabled = false; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["PropertyDefinition"],"publicOnly":true}] -// Message: Missing JSDoc comment. - -/** -* Some comment. -*/ -export class Component { - public foo?: number; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"checkConstructors":false,"contexts":["PropertyDefinition"],"publicOnly":true}] -// Message: Missing JSDoc comment. - -class Utility { - /** - * - */ - mthd() { - return false; - } -} - -module.exports = Utility; -// "jsdoc/require-jsdoc": ["error"|"warn", {"enableFixer":false,"publicOnly":true,"require":{"ArrowFunctionExpression":true,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":true,"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -/** - * - */ -module.exports = class Utility { - mthd() { - return false; - } -}; -// "jsdoc/require-jsdoc": ["error"|"warn", {"enableFixer":false,"publicOnly":true,"require":{"ArrowFunctionExpression":true,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":true,"MethodDefinition":true}}] -// Message: Missing JSDoc comment. - -function quux () { - return 3; -} - -function b () {} -// "jsdoc/require-jsdoc": ["error"|"warn", {"minLineCount":2}] -// Message: Missing JSDoc comment. - -function quux () { - return 3; -} - -var a = {}; -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[{"context":"FunctionDeclaration","minLineCount":2},{"context":"VariableDeclaration","minLineCount":2}],"require":{"FunctionDeclaration":false}}] -// Message: Missing JSDoc comment. - -function quux () { - return 3; -} - -var a = { - b: 1, - c: 2 -}; -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[{"context":"FunctionDeclaration","minLineCount":4},{"context":"VariableDeclaration","minLineCount":2}],"require":{"FunctionDeclaration":false}}] -// Message: Missing JSDoc comment. - -class A { - setId(newId: number): void { - this.id = id; - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[{"context":"MethodDefinition","minLineCount":3}],"require":{"ClassDeclaration":false,"FunctionExpression":false,"MethodDefinition":false}}] -// Message: Missing JSDoc comment. -```` - -The following patterns are not considered problems: - -````js -interface FooBar { - fooBar: string; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"],"publicOnly":{"ancestorsOnly":true}}] - -/** This is comment */ -interface FooBar { - fooBar: string; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"],"publicOnly":{"ancestorsOnly":true}}] - -/** This is comment */ -export class Foo { - someMethod() { - interface FooBar { - fooBar: string; - } - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"],"publicOnly":{"ancestorsOnly":true}}] - -/** This is comment */ -function someFunction() { - interface FooBar { - fooBar: string; - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"],"publicOnly":{"ancestorsOnly":true}}] - -/** This is comment */ -export function foo() { - interface bar { - fooBar: string; - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"],"publicOnly":{"ancestorsOnly":true}}] - -/** - * - */ - -var array = [1,2,3]; -array.forEach(function() {}); - -/** - * @class MyClass - **/ -function MyClass() {} - -/** - Function doing something - */ -function myFunction() {} -/** - Function doing something - */ -var myFunction = function() {}; -/** - Function doing something - */ -Object.myFunction = function () {}; -var obj = { - /** - * Function doing something - **/ - myFunction: function () {} }; - -/** - @func myFunction - */ -function myFunction() {} -/** - @method myFunction - */ -function myFunction() {} -/** - @function myFunction - */ -function myFunction() {} - -/** - @func myFunction - */ -var myFunction = function () {} -/** - @method myFunction - */ -var myFunction = function () {} -/** - @function myFunction - */ -var myFunction = function () {} - -/** - @func myFunction - */ -Object.myFunction = function() {} -/** - @method myFunction - */ -Object.myFunction = function() {} -/** - @function myFunction - */ -Object.myFunction = function() {} -(function(){})(); - -var object = { - /** - * @func myFunction - Some function - */ - myFunction: function() {} } -var object = { - /** - * @method myFunction - Some function - */ - myFunction: function() {} } -var object = { - /** - * @function myFunction - Some function - */ - myFunction: function() {} } - -var array = [1,2,3]; -array.filter(function() {}); -Object.keys(this.options.rules || {}).forEach(function(name) {}.bind(this)); -var object = { name: 'key'}; -Object.keys(object).forEach(function() {}) - -/** - * @func myFunction - */ - -function myFunction() { - -} -// Settings: {"jsdoc":{"maxLines":2,"minLines":0}} - -/** - * @func myFunction - */ - - -function myFunction() { - -} -// Settings: {"jsdoc":{"maxLines":3,"minLines":0}} - -/** @func myFunction */ function myFunction() { - -} -// Settings: {"jsdoc":{"maxLines":0,"minLines":0}} - -/** - * @func myFunction - */ - -function myFunction() { - -} -// Settings: {"jsdoc":{"maxLines":3,"minLines":2}} - -function myFunction() {} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"FunctionDeclaration":false,"MethodDefinition":true}}] - -var myFunction = function() {} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"FunctionDeclaration":false,"MethodDefinition":true}}] - -/** - * Description for A. - */ -class A { - /** - * Description for constructor. - * @param {object[]} xs - xs - */ - constructor(xs) { - this.a = xs; - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"MethodDefinition":true}}] - -/** - * Description for A. - */ -class App extends Component { - /** - * Description for constructor. - * @param {object[]} xs - xs - */ - constructor(xs) { - this.a = xs; - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"MethodDefinition":true}}] - -/** - * Description for A. - */ -export default class App extends Component { - /** - * Description for constructor. - * @param {object[]} xs - xs - */ - constructor(xs) { - this.a = xs; - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"MethodDefinition":true}}] - -/** - * Description for A. - */ -export class App extends Component { - /** - * Description for constructor. - * @param {object[]} xs - xs - */ - constructor(xs) { - this.a = xs; - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"MethodDefinition":true}}] - -class A { - constructor(xs) { - this.a = xs; - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":false,"MethodDefinition":false}}] - -/** -* Function doing something -*/ -var myFunction = () => {} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":true}}] - -/** -* Function doing something -*/ -var myFunction = function () {} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":true}}] - -/** -* Function doing something -*/ -var myFunction = () => {} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":false}}] - -/** - Function doing something -*/ -var myFunction = () => () => {} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":true}}] - -setTimeout(() => {}, 10); -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":true}}] - -/** -JSDoc Block -*/ -var foo = function() {} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"FunctionExpression":true}}] - -const foo = {/** -JSDoc Block -*/ -bar() {}} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"FunctionExpression":true}}] - -var foo = {/** -JSDoc Block -*/ -bar: function() {}} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"FunctionExpression":true}}] - -var foo = { [function() {}]: 1 }; -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"FunctionExpression":true}}] - -function foo () {} -// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyFunctions":true}] - -function foo () { - return; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyFunctions":true}] - -const test = {}; -/** - * test - */ - test.method = function () { - -} -module.exports = { - prop: { prop2: test.method } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] - -/** - * - */ -function test() { - -} - -module.exports = { - prop: { prop2: test } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] - -/** - * - */ -test = function() { - -} - -module.exports = { - prop: { prop2: test } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":true,"esm":false,"window":false},"require":{"FunctionExpression":true}}] - -/** - * - */ -test = function() { - -} - -exports.someMethod = { - prop: { prop2: test } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"FunctionExpression":true}}] - -/** - * - */ -const test = () => { - -} - -module.exports = { -prop: { prop2: test } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ArrowFunctionExpression":true}}] - -const test = () => { - -} -module.exports = { - prop: { prop2: test } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"require":{"ArrowFunctionExpression":true}}] - -/** - * - */ -window.test = function() { - -} - -module.exports = { -prop: window -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] - -test = function() { - -} - -/** - * - */ -test = function() { - -} - -module.exports = { -prop: { prop2: test } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] - -test = function() { - -} - -test = 2; - -module.exports = { -prop: { prop2: test } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] - -/** - * - */ -function test() { - -} - -/** - * - */ -test.prototype.method = function() { - -} - -module.exports = { -prop: { prop2: test } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] - -class Test { - /** - * Test - */ - method() { - - } -} -module.exports = Test; -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"MethodDefinition":true}}] - -/** - * - */ -export default function quux () { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] - -/** - * - */ -export default function quux () { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}] - -/** - * - */ -function quux () { - -} -export default quux; -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] - -function quux () { - -} -export default quux; -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}] - -/** - * - */ -export function test() { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] - -/** - * - */ -export function test() { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}] - -/** - * - */ -var test = function () { - -} -var test2 = 2; -export { test, test2 } -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] - -/** - * - */ -var test = function () { - -} -export { test as test2 } -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] - -/** - * - */ -export default class A { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"require":{"ClassDeclaration":true}}] - -/** - * - */ -var test = function () { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"window":true},"require":{"FunctionExpression":true}}] - -let test = function () { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"window":true},"require":{"FunctionExpression":true}}] - -let test = class { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ClassExpression":false}}] - -/** - * - */ -let test = class { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ClassExpression":true}}] - -export function someMethod() { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":true,"esm":false,"window":false},"require":{"FunctionDeclaration":true}}] - -export function someMethod() { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":true,"esm":false,"window":false},"require":{"FunctionDeclaration":true}}] - -exports.someMethod = function() { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"FunctionExpression":true}}] - -const myObject = { - myProp: true -}; -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[]}] - -function bear() {} -/** - * - */ -function quux () { -} -export default quux; -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] - -/** - * This example interface is great! - */ -export interface Example { - /** - * My super test string! - */ - test: string -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration"]}] - -/** - * This example interface is great! - */ -interface Example { - /** - * My super test string! - */ - test: string -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration"]}] - -/** - * This example type is great! - */ -export type Example = { - /** - * My super test string! - */ - test: string -}; -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSTypeAliasDeclaration"]}] - -/** - * This example type is great! - */ -type Example = { - /** - * My super test string! - */ - test: string -}; -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSTypeAliasDeclaration"]}] - -/** - * This example enum is great! - */ -export enum Example { - /** - * My super test enum! - */ - test = 123 -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSEnumDeclaration"]}] - -/** - * This example enum is great! - */ -enum Example { - /** - * My super test enum! - */ - test = 123 -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSEnumDeclaration"]}] - -const foo = {...{}}; -function bar() {} -// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyFunctions":false,"publicOnly":true,"require":{"ArrowFunctionExpression":true,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":false,"MethodDefinition":true}}] - -/** - * Class documentation - */ - @logged -export default class Foo { - // .... -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyFunctions":false,"require":{"ClassDeclaration":true}}] - -const a = {}; -const b = { - ...a -}; - -export default b; -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["ObjectExpression"],"exemptEmptyFunctions":false,"publicOnly":true}] - -/** - * Foo interface documentation. - */ -export interface Foo extends Bar { - /** - * baz method documentation. - */ - baz(): void; - - /** - * meow method documentation. - */ - meow(): void; -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSMethodSignature"]}] - -export default class Test { - private abc(a) { - this.a = a; - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["MethodDefinition:not([accessibility=\"private\"]) > FunctionExpression"],"publicOnly":true,"require":{"ArrowFunctionExpression":false,"ClassDeclaration":false,"ClassExpression":false,"FunctionDeclaration":false,"FunctionExpression":false,"MethodDefinition":false}}] - -/** - * Basic application controller. - */ -@Controller() -export class AppController { - /** - * Returns the application information. - * - * @returns ... - */ - @Get('/info') - public getInfo(): string { - return 'OK'; - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":false,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":false,"MethodDefinition":true}}] - -/** - * Entity to represent a user in the system. - */ -@Entity('users') -export class User { -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":false,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":false,"MethodDefinition":true}}] - -/** - * Entity to represent a user in the system. - */ -@Entity('users', getVal()) -export class User { -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":false,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":false,"MethodDefinition":true}}] - -/** - * - */ -class Foo { - constructor() {} -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyConstructors":true,"require":{"MethodDefinition":true}}] - -/** - * - */ -class Foo { - constructor() {} -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"checkConstructors":false,"require":{"MethodDefinition":true}}] - -class Foo { - get aName () {} - set aName (val) {} -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"checkGetters":"no-setter","checkSetters":false,"contexts":["MethodDefinition > FunctionExpression"]}] - -const obj = { - get aName () {}, - set aName (val) {} -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"checkGetters":"no-setter","checkSetters":false,"contexts":["Property > FunctionExpression"]}] - -class Foo { - set aName (val) {} -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"checkSetters":false,"contexts":["MethodDefinition > FunctionExpression"]}] - -class Foo { - get aName () {} -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"checkGetters":false,"contexts":["MethodDefinition > FunctionExpression"]}] - -class Foo { - /** - * - */ - set aName (val) {} -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"checkSetters":"no-getter","contexts":["MethodDefinition > FunctionExpression"]}] - -class Foo { - /** - * - */ - get aName () {} -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"checkGetters":"no-setter","contexts":["MethodDefinition > FunctionExpression"]}] - -class Foo { - get aName () {} - set aName (val) {} -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"checkGetters":false,"checkSetters":"no-getter","contexts":["MethodDefinition > FunctionExpression"]}] - -class Base { - constructor() { - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["MethodDefinition"],"exemptEmptyConstructors":true}] - -/** - * This is a text. - */ -export function a(); // Reports an error -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSDeclareFunction"],"require":{"FunctionDeclaration":true}}] - -/** - * Foo - */ -export function foo(): void { - function bar(): void { - console.log('bar'); - } - - console.log('foo'); -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true}] - -const foo = { - bar: () => { - // ... - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[":not(Property) > ArrowFunctionExpression"],"require":{"ArrowFunctionExpression":false,"ClassDeclaration":true,"ClassExpression":true}}] - -/** Defines the current user's settings. */ -@Injectable({ - providedIn: 'root', -}) -@State> -({ - name: 'userSettings', - defaults: { - isDev: !environment.production, - }, -}) -export class UserSettingsState { } -// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true}}] - -/** - * Entity to represent a user in the system. - */ -@Entity('users') -export class User { -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["Decorator"],"require":{"FunctionDeclaration":false}}] - - function quux () { - return 3; -} - -function b () {} -// "jsdoc/require-jsdoc": ["error"|"warn", {"minLineCount":4}] - -function quux () { - return 3; -} - -var a = { - b: 1, - c: 2 -}; -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[{"context":"FunctionDeclaration","minLineCount":4},{"context":"VariableDeclaration","minLineCount":5}],"require":{"FunctionDeclaration":false}}] - -class A { - setId(newId: number): void { - this.id = id; - } -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[{"context":"MethodDefinition","minLineCount":4}],"require":{"ClassDeclaration":false,"FunctionExpression":false,"MethodDefinition":false}}] -```` - - - - -### require-param-description - -Requires that each `@param` tag has a `description` value. - -Will exempt destructured roots and their children if -`settings.exemptDestructuredRootsFromChecks` is set to `true` (e.g., -`@param {object} props` will be exempted from requiring a description given -`function someFunc ({child1, child2})`). - - - -#### Options - - - -##### setDefaultDestructuredRootDescription - -Whether to set a default destructured root description. For example, you may -wish to avoid manually having to set the description for a `@param` -corresponding to a destructured root object as it should always be the same -type of object. Uses `defaultDestructuredRootDescription` for the description -string. Defaults to `false`. - - - -##### defaultDestructuredRootDescription - -The description string to set by default for destructured roots. Defaults to -"The root object". - - - -##### contexts - -Set this to an array of strings representing the AST context (or an object with -`context` and `comment` properties) where you wish the rule to be applied. -Overrides the default contexts (see below). Set to `"any"` if you want -the rule to apply to any jsdoc block throughout your files (as is necessary -for finding function blocks not attached to a function declaration or -expression, i.e., `@callback` or `@function` (or its aliases `@func` or -`@method`) (including those associated with an `@interface`). - -See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) -section of our README for more on the expected format. - -||| -|---|---| -|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| -|Tags|`param`| -|Aliases|`arg`, `argument`| -|Recommended|true| -|Options|`setDefaultDestructuredRootDescription`, `defaultDestructuredRootDescription`, `contexts`| -|Settings|`exemptDestructuredRootsFromChecks`| - -The following patterns are considered problems: - -````js -/** - * @param foo - */ -function quux (foo) { - -} -// Message: Missing JSDoc @param "foo" description. - -/** - * @param foo - */ -function quux (foo) { - -} -// "jsdoc/require-param-description": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @param "foo" description. - -/** - * @function - * @param foo - */ -// "jsdoc/require-param-description": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @param "foo" description. - -/** - * @callback - * @param foo - */ -// "jsdoc/require-param-description": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @param "foo" description. - -/** - * @arg foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} -// Message: Missing JSDoc @arg "foo" description. - -/** - * @param foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}} -// Message: Unexpected tag `@param` - -/** - * @param foo - */ -function quux (foo) { - -} -// "jsdoc/require-param-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag:not([name=props]))","context":"FunctionDeclaration"}]}] -// Message: Missing JSDoc @param "foo" description. - -/** - * @param {number} foo Foo description - * @param {object} root - * @param {boolean} baz Baz description - */ -function quux (foo, {bar}, baz) { - -} -// "jsdoc/require-param-description": ["error"|"warn", {"setDefaultDestructuredRootDescription":true}] -// Message: Missing root description for @param. - -/** - * @param {number} foo Foo description - * @param {object} root - * @param {boolean} baz Baz description - */ -function quux (foo, {bar}, baz) { - -} -// "jsdoc/require-param-description": ["error"|"warn", {"defaultDestructuredRootDescription":"Root description","setDefaultDestructuredRootDescription":true}] -// Message: Missing root description for @param. - -/** - * @param {number} foo Foo description - * @param {object} root - * @param {boolean} baz Baz description - */ -function quux (foo, {bar}, baz) { - -} -// "jsdoc/require-param-description": ["error"|"warn", {"setDefaultDestructuredRootDescription":false}] -// Message: Missing JSDoc @param "root" description. -```` - -The following patterns are not considered problems: - -````js -/** - * - */ -function quux (foo) { - -} - -/** - * @param foo Foo. - */ -function quux (foo) { - -} - -/** - * @param foo Foo. - */ -function quux (foo) { - -} -// "jsdoc/require-param-description": ["error"|"warn", {"contexts":["any"]}] - -/** - * @function - * @param foo - */ - -/** - * @callback - * @param foo - */ - -/** - * @param props - */ -function quux (props) { - -} -// "jsdoc/require-param-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag:not([name=props]))","context":"FunctionDeclaration"}]}] - -/** - * @param {number} foo Foo description - * @param {object} root - * @param {boolean} baz Baz description - */ -function quux (foo, {bar}, baz) { - -} -// Settings: {"jsdoc":{"exemptDestructuredRootsFromChecks":true}} - -/** - * @param {number} foo Foo description - * @param {object} root - * @param {object} root.bar - */ -function quux (foo, {bar: {baz}}) { - -} -// Settings: {"jsdoc":{"exemptDestructuredRootsFromChecks":true}} -```` - - - - -### require-param-name - -Requires that all function parameters have names. - -> The `@param` tag requires you to specify the name of the parameter you are documenting. You can also include the parameter's type, enclosed in curly brackets, and a description of the parameter. -> -> [JSDoc](https://jsdoc.app/tags-param.html#overview) - - - -#### Options - - - -##### contexts - -Set this to an array of strings representing the AST context (or an object with -`context` and `comment` properties) where you wish the rule to be applied. -Overrides the default contexts (see below). Set to `"any"` if you want -the rule to apply to any jsdoc block throughout your files (as is necessary -for finding function blocks not attached to a function declaration or -expression, i.e., `@callback` or `@function` (or its aliases `@func` or -`@method`) (including those associated with an `@interface`). - -See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) -section of our README for more on the expected format. - -||| -|---|---| -|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| -|Tags|`param`| -|Aliases|`arg`, `argument`| -|Recommended|true| -|Options|`contexts`| - -The following patterns are considered problems: - -````js -/** - * @param - */ -function quux (foo) { - -} -// Message: There must be an identifier after @param type. - -/** - * @param {string} - */ -function quux (foo) { - -} -// Message: There must be an identifier after @param tag. - -/** - * @param {string} - */ -function quux (foo) { - -} -// "jsdoc/require-param-name": ["error"|"warn", {"contexts":["any"]}] -// Message: There must be an identifier after @param tag. - -/** - * @function - * @param {string} - */ -// "jsdoc/require-param-name": ["error"|"warn", {"contexts":["any"]}] -// Message: There must be an identifier after @param tag. - -/** - * @callback - * @param {string} - */ -// "jsdoc/require-param-name": ["error"|"warn", {"contexts":["any"]}] -// Message: There must be an identifier after @param tag. - -/** - * @param foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}} -// Message: Unexpected tag `@param` -```` - -The following patterns are not considered problems: - -````js -/** - * @param foo - */ -function quux (foo) { - -} - -/** - * @param foo - */ -function quux (foo) { - -} -// "jsdoc/require-param-name": ["error"|"warn", {"contexts":["any"]}] - -/** - * @param {string} foo - */ -function quux (foo) { - -} - -/** - * @function - * @param - */ - -/** - * @callback - * @param - */ - -/** - * @param {Function} [processor=data => data] A function to run - */ -function processData(processor) { - return processor(data) -} - -/** Example with multi-line param type. -* -* @param {function( -* number -* )} cb Callback. -*/ -function example(cb) { - cb(42); -} -```` - - - - -### require-param-type - -Requires that each `@param` tag has a `type` value. - -Will exempt destructured roots and their children if -`settings.exemptDestructuredRootsFromChecks` is set to `true` (e.g., -`@param props` will be exempted from requiring a type given -`function someFunc ({child1, child2})`). - - - -#### Options - - - -##### setDefaultDestructuredRootType - -Whether to set a default destructured root type. For example, you may wish -to avoid manually having to set the type for a `@param` -corresponding to a destructured root object as it is always going to be an -object. Uses `defaultDestructuredRootType` for the type string. Defaults to -`false`. - - - -##### defaultDestructuredRootType - -The type string to set by default for destructured roots. Defaults to "object". - - - -##### contexts - -Set this to an array of strings representing the AST context (or an object with -`context` and `comment` properties) where you wish the rule to be applied. -Overrides the default contexts (see below). Set to `"any"` if you want -the rule to apply to any jsdoc block throughout your files (as is necessary -for finding function blocks not attached to a function declaration or -expression, i.e., `@callback` or `@function` (or its aliases `@func` or -`@method`) (including those associated with an `@interface`). - -See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) -section of our README for more on the expected format. - -||| -|---|---| -|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| -|Tags|`param`| -|Aliases|`arg`, `argument`| -|Recommended|true| -|Options|`setDefaultDestructuredRootType`, `defaultDestructuredRootType`, `contexts`| -|Settings|`exemptDestructuredRootsFromChecks`| - -The following patterns are considered problems: - -````js -/** - * @param foo - */ -function quux (foo) { - -} -// Message: Missing JSDoc @param "foo" type. - -/** - * @param {a xxx - */ -function quux () { -} -// Message: Missing JSDoc @param "" type. - -/** - * @param foo - */ -function quux (foo) { - -} -// "jsdoc/require-param-type": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @param "foo" type. - -/** - * @function - * @param foo - */ -// "jsdoc/require-param-type": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @param "foo" type. - -/** - * @callback - * @param foo - */ -// "jsdoc/require-param-type": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @param "foo" type. - -/** - * @arg foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} -// Message: Missing JSDoc @arg "foo" type. - -/** - * @param foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}} -// Message: Unexpected tag `@param` - -/** - * @param {number} foo - * @param root - * @param {boolean} baz - */ -function quux (foo, {bar}, baz) { - -} -// "jsdoc/require-param-type": ["error"|"warn", {"setDefaultDestructuredRootType":true}] -// Message: Missing root type for @param. - -/** - * @param {number} foo - * @param root - * @param {boolean} baz - */ -function quux (foo, {bar}, baz) { - -} -// "jsdoc/require-param-type": ["error"|"warn", {"defaultDestructuredRootType":"Object","setDefaultDestructuredRootType":true}] -// Message: Missing root type for @param. - -/** - * @param {number} foo - * @param root - * @param {boolean} baz - */ -function quux (foo, {bar}, baz) { - -} -// "jsdoc/require-param-type": ["error"|"warn", {"setDefaultDestructuredRootType":false}] -// Message: Missing JSDoc @param "root" type. -```` - -The following patterns are not considered problems: - -````js -/** - * - */ -function quux (foo) { - -} - -/** - * @param {number} foo - */ -function quux (foo) { - -} - -/** - * @param {number} foo - */ -function quux (foo) { - -} -// "jsdoc/require-param-type": ["error"|"warn", {"contexts":["any"]}] - -/** - * @function - * @param foo - */ - -/** - * @callback - * @param foo - */ - -/** - * @param {number} foo - * @param root - * @param {boolean} baz - */ -function quux (foo, {bar}, baz) { - -} -// Settings: {"jsdoc":{"exemptDestructuredRootsFromChecks":true}} - -/** - * @param {number} foo - * @param root - * @param root.bar - */ -function quux (foo, {bar: {baz}}) { - -} -// Settings: {"jsdoc":{"exemptDestructuredRootsFromChecks":true}} -```` - - - - -### require-param - -Requires that all function parameters are documented. - - - -#### Fixer - -Adds `@param ` for each tag present in the function signature but -missing in the jsdoc. Can be disabled by setting the `enableFixer` -option to `false`. - - - -##### Destructured object and array naming - -When the fixer is applied to destructured objects, only the input name is -used. - -So for: - -```js -/** - * @param cfg - */ -function quux ({foo: bar, baz: bax = 5}) { -} -``` - -...the fixed jsdoc will be: - -```js -/** -* @param cfg -* @param cfg.foo -* @param cfg.baz -*/ -``` - -This is because the input to the function is the relevant item for -understanding the function's input, not how the variable is renamed -for internal use (the signature itself documents that). - -For destructured arrays, the input name is merely the array index. - -So for: - -```js -/** - * @param cfg - */ -function quux ([foo, bar]) { -} -``` - -..the fixed jsdoc will be: - -```js -/** -* @param cfg -* @param cfg."0" -* @param cfg."1" -*/ -``` - - - -##### Missing root fixing - -Note that unless `enableRootFixer` (or `enableFixer`) is set to `false`, -missing roots will be added and auto-incremented. The default behavior -is for "root" to be auto-inserted for missing roots, followed by a -0-based auto-incrementing number. - -So for: - -```js -function quux ({foo}, {bar}, {baz}) { -} -``` - -...the default jsdoc that would be added if the fixer is enabled would be: - -```js -/** -* @param root0 -* @param root0.foo -* @param root1 -* @param root1.bar -* @param root2 -* @param root2.baz -*/ -``` - -The name of "root" can be configured with `unnamedRootBase` (which also allows -cycling through a list of multiple root names before there is need for any -numeric component). - -And one can have the count begin at another number (e.g., `1`) by changing -`autoIncrementBase` from the default of `0`. - - - -##### Rest Element (RestElement) insertions - -The fixer will automatically report/insert -[jsdoc repeatable parameters](https://jsdoc.app/tags-param.html#multiple-types-and-repeatable-parameters) -if missing. - -```js -/** - * @param {GenericArray} cfg - * @param {number} cfg."0" - */ -function baar ([a, ...extra]) { - // -} -``` - -..becomes: - -```js -/** - * @param {GenericArray} cfg - * @param {number} cfg."0" - * @param {...any} cfg."1" - */ -function baar ([a, ...extra]) { - // -} -``` - -Note that the type `any` is included since we don't know of any specific -type to use. - -To disable such rest element insertions, set `enableRestElementFixer` to -`false`. - -Note too that the following will be reported even though there is an item -corresponding to `extra`: - -```js -/** - * @param {GenericArray} cfg - * @param {number} cfg."0" - * @param {any} cfg."1" - */ -function baar ([a, ...extra]) { - // -} -``` - -...because it does not use the `...` syntax in the type. - - - -##### Object Rest Property insertions - -If the `checkRestProperty` option is set to `true` (`false` by default), -missing rest properties will be reported with documentation auto-inserted: - -```js -/** - * @param cfg - * @param cfg.num - */ -function quux ({num, ...extra}) { -} -``` - -...becomes: - -```js -/** - * @param cfg - * @param cfg.num - * @param cfg.extra - */ -function quux ({num, ...extra}) { -} -``` - -You may wish to manually note in your jsdoc for `extra` that this is a -rest property, however, as jsdoc -[does not appear](https://github.com/jsdoc/jsdoc/issues/1773) -to currently support syntax or output to distinguish rest properties from -other properties, so in looking at the docs alone without looking at the -function signature, it may appear that there is an actual property named -`extra`. - - - -#### Options - -An options object accepts the following optional properties: - - - -##### enableFixer - -Whether to enable the fixer. Defaults to `true`. - - - -##### enableRootFixer - -Whether to enable the auto-adding of incrementing roots (see the "Fixer" -section). Defaults to `true`. Has no effect if `enableFixer` is set to -`false`. - - - -##### enableRestElementFixer - -Whether to enable the rest element fixer (see -"Rest Element (`RestElement`) insertions"). Defaults to `true`. - - - -##### checkRestProperty - -If set to `true`, will report (and add fixer insertions) for missing rest -properties. Defaults to `false`. - -If set to `true`, note that you can still document the subproperties of the -rest property using other jsdoc features, e.g., `@typedef`: - -```js -/** - * @typedef ExtraOptions - * @property innerProp1 - * @property innerProp2 - */ - -/** - * @param cfg - * @param cfg.num - * @param {ExtraOptions} extra - */ -function quux ({num, ...extra}) { -} -``` - -Setting this option to `false` (the default) may be useful in cases where -you already have separate `@param` definitions for each of the properties -within the rest property. - -For example, with the option disabled, this will not give an error despite -`extra` not having any definition: - -```js -/** - * @param cfg - * @param cfg.num - */ -function quux ({num, ...extra}) { -} -``` - -Nor will this: - -```js -/** - * @param cfg - * @param cfg.num - * @param cfg.innerProp1 - * @param cfg.innerProp2 - */ -function quux ({num, ...extra}) { -} -``` - - - -##### autoIncrementBase - -Numeric to indicate the number at which to begin auto-incrementing roots. -Defaults to `0`. - - - -##### unnamedRootBase - -An array of root names to use in the fixer when roots are missing. Defaults -to `['root']`. Note that only when all items in the array besides the last -are exhausted will auto-incrementing occur. So, with -`unnamedRootBase: ['arg', 'config']`, the following: - -```js -function quux ({foo}, [bar], {baz}) { -} -``` - -...will get the following jsdoc block added: - -```js -/** -* @param arg -* @param arg.foo -* @param config0 -* @param config0."0" (`bar`) -* @param config1 -* @param config1.baz -*/ -``` - - - -##### exemptedBy - -Array of tags (e.g., `['type']`) whose presence on the document block -avoids the need for a `@param`. Defaults to an array with -`inheritdoc`. If you set this array, it will overwrite the default, -so be sure to add back `inheritdoc` if you wish its presence to cause -exemption of the rule. - - - -##### checkTypesPattern - -When one specifies a type, unless it is of a generic type, like `object` -or `array`, it may be considered unnecessary to have that object's -destructured components required, especially where generated docs will -link back to the specified type. For example: - -```js -/** - * @param {SVGRect} bbox - a SVGRect - */ -export const bboxToObj = function ({x, y, width, height}) { - return {x, y, width, height}; -}; -``` - -By default `checkTypesPattern` is set to -`/^(?:[oO]bject|[aA]rray|PlainObject|Generic(?:Object|Array))$/u`, -meaning that destructuring will be required only if the type of the `@param` -(the text between curly brackets) is a match for "Object" or "Array" (with or -without initial caps), "PlainObject", or "GenericObject", "GenericArray" (or -if no type is present). So in the above example, the lack of a match will -mean that no complaint will be given about the undocumented destructured -parameters. - -Note that the `/` delimiters are optional, but necessary to add flags. - -Defaults to using (only) the `u` flag, so to add your own flags, encapsulate -your expression as a string, but like a literal, e.g., `/^object$/ui`. - -You could set this regular expression to a more expansive list, or you -could restrict it such that even types matching those strings would not -need destructuring. - - - -##### contexts - -Set this to an array of strings representing the AST context (or an object with -`context` and `comment` properties) where you wish the rule to be applied. -Overrides the default contexts (see below). May be useful for adding such as -`TSMethodSignature` in TypeScript or restricting the contexts -which are checked. - -See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) -section of our README for more on the expected format. - - - -##### checkConstructors - -A value indicating whether `constructor`s should be checked. Defaults to -`true`. - - - -##### checkGetters - -A value indicating whether getters should be checked. Defaults to `false`. - - - -##### checkSetters - -A value indicating whether setters should be checked. Defaults to `false`. - - - -##### checkDestructured - -Whether to require destructured properties. Defaults to `true`. - - - -##### checkDestructuredRoots - -Whether to check the existence of a corresponding `@param` for root objects -of destructured properties (e.g., that for `function ({a, b}) {}`, that there -is something like `@param myRootObj` defined that can correspond to -the `{a, b}` object parameter). - -If `checkDestructuredRoots` is `false`, `checkDestructured` will also be -implied to be `false` (i.e., the inside of the roots will not be checked -either, e.g., it will also not complain if `a` or `b` do not have their own -documentation). Defaults to `true`. - - - -##### useDefaultObjectProperties - -Set to `true` if you wish to expect documentation of properties on objects -supplied as default values. Defaults to `false`. - -| | | -| -------- | ----------------------------------------------------------------------------- | -| Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | -| Tags | `param` | -| Aliases | `arg`, `argument` | -|Recommended | true| -| Options | `autoIncrementBase`, `checkDestructured`, `checkDestructuredRoots`, `contexts`, `enableFixer`, `enableRootFixer`, `enableRestElementFixer`, `checkRestProperty`, `exemptedBy`, `checkConstructors`, `checkGetters`, `checkSetters`, `checkTypesPattern`, `unnamedRootBase`, `useDefaultObjectProperties`| -| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`| - -The following patterns are considered problems: - -````js -/** - * - */ -function quux (foo) { - -} -// Message: Missing JSDoc @param "foo" declaration. - -/** - * - */ -function quux (foo) { - -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["FunctionDeclaration"]}] -// Message: Missing JSDoc @param "foo" declaration. - -/** - * - */ -function quux ({foo}) { - -} -// Message: Missing JSDoc @param "root0" declaration. - -/** - * @param foo - */ -function quux (foo, bar, {baz}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"checkDestructured":false}] -// Message: Missing JSDoc @param "bar" declaration. - -/** - * @param foo - */ -function quux (foo, bar, {baz}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"checkDestructuredRoots":false}] -// Message: Missing JSDoc @param "bar" declaration. - -/** - * - */ -function quux ({foo}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"enableFixer":false}] -// Message: Missing JSDoc @param "root0" declaration. - -/** - * - */ -function quux ({foo: bar = 5} = {}) { - -} -// Message: Missing JSDoc @param "root0" declaration. - -/** - * @param - */ -function quux ({foo}) { - -} -// Message: Missing JSDoc @param "root0" declaration. - -/** - * @param - */ -function quux ({foo}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"autoIncrementBase":1}] -// Message: Missing JSDoc @param "root1" declaration. - -/** - * @param options - */ -function quux ({foo}) { - -} -// Message: Missing JSDoc @param "options.foo" declaration. - -/** - * @param - */ -function quux ({ foo, bar: { baz }}) { - -} -// Message: Missing JSDoc @param "root0" declaration. - -/** - * - */ -function quux ({foo}, {bar}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"unnamedRootBase":["arg"]}] -// Message: Missing JSDoc @param "arg0" declaration. - -/** - * - */ -function quux ({foo}, {bar}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"unnamedRootBase":["arg","config"]}] -// Message: Missing JSDoc @param "arg" declaration. - -/** - * - */ -function quux ({foo}, {bar}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"enableRootFixer":false,"unnamedRootBase":["arg","config"]}] -// Message: Missing JSDoc @param "arg" declaration. - -/** - * - */ -function quux (foo, bar) { - -} -// Message: Missing JSDoc @param "foo" declaration. - -/** - * @param foo - */ -function quux (foo, bar) { - -} -// Message: Missing JSDoc @param "bar" declaration. - -/** - * @param bar - */ -function quux (foo, bar, baz) { - -} -// Message: Missing JSDoc @param "foo" declaration. - -/** - * @param foo - * @param bar - */ -function quux (foo, bar, baz) { - -} -// Message: Missing JSDoc @param "baz" declaration. - -/** - * @param baz - */ -function quux (foo, bar, baz) { - -} -// Message: Missing JSDoc @param "foo" declaration. - -/** - * @param - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} -// Message: Missing JSDoc @arg "foo" declaration. - -/** - * @param foo - */ -function quux (foo, bar) { - -} -// Message: Missing JSDoc @param "bar" declaration. - -/** - * @override - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"overrideReplacesDocs":false}} -// Message: Missing JSDoc @param "foo" declaration. - -/** - * @ignore - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"ignoreReplacesDocs":false}} -// Message: Missing JSDoc @param "foo" declaration. - -/** - * @implements - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"implementsReplacesDocs":false}} -// Message: Missing JSDoc @param "foo" declaration. - -/** - * @augments - */ -function quux (foo) { - -} -// Message: Missing JSDoc @param "foo" declaration. - -/** - * @extends - */ -function quux (foo) { - -} -// Message: Missing JSDoc @param "foo" declaration. - -/** - * @override - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"overrideReplacesDocs":false}} -// Message: Missing JSDoc @param "foo" declaration. - -/** - * @ignore - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"ignoreReplacesDocs":false}} -// Message: Missing JSDoc @param "foo" declaration. - -/** - * @implements - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"implementsReplacesDocs":false}} -// Message: Missing JSDoc @param "foo" declaration. - -/** - * @augments - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Message: Missing JSDoc @param "foo" declaration. - -/** - * @extends - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Message: Missing JSDoc @param "foo" declaration. - -export class SomeClass { - /** - * @param property - */ - constructor(private property: string, private foo: number) {} -} -// Message: Missing JSDoc @param "foo" declaration. - -/** - * @param - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}} -// Message: Unexpected tag `@param` - -/** - * - */ -function quux ({bar, baz}, foo) { -} -// Message: Missing JSDoc @param "root0" declaration. - -/** - * - */ -function quux (foo, {bar, baz}) { -} -// Message: Missing JSDoc @param "foo" declaration. - -/** - * - */ -function quux ([bar, baz], foo) { -} -// Message: Missing JSDoc @param "root0" declaration. - -/** - * - */ -function quux (foo) { -} -// "jsdoc/require-param": ["error"|"warn", {"exemptedBy":["notPresent"]}] -// Message: Missing JSDoc @param "foo" declaration. - -/** - * @inheritdoc - */ -function quux (foo) { - -} -// "jsdoc/require-param": ["error"|"warn", {"exemptedBy":[]}] -// Message: Missing JSDoc @param "foo" declaration. - -/** - * @inheritdoc - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"mode":"closure"}} -// Message: Missing JSDoc @param "foo" declaration. - -/** - * Assign the project to a list of employees. - * @param {object[]} employees - The employees who are responsible for the project. - * @param {string} employees[].name - The name of an employee. - * @param {string} employees[].department - The employee's department. - */ -function assign (employees, name) { - -}; -// Message: Missing JSDoc @param "name" declaration. - -interface ITest { -/** - * Test description. - */ -TestMethod(id: number): void; -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSMethodSignature"]}] -// Message: Missing JSDoc @param "id" declaration. - -/** - * A test class. - */ -abstract class TestClass -{ -/** - * A test method. - */ -abstract TestFunction(id); -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSEmptyBodyFunctionExpression"]}] -// Message: Missing JSDoc @param "id" declaration. - -/** - * A test class. - */ -declare class TestClass -{ -/** - * - */ -TestMethod(id); -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSEmptyBodyFunctionExpression"]}] -// Message: Missing JSDoc @param "id" declaration. - -/** - * A test function. - */ -declare let TestFunction: (id) => void; -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] -// Message: Missing JSDoc @param "id" declaration. - -/** - * A test function. - */ -let TestFunction: (id) => void; -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] -// Message: Missing JSDoc @param "id" declaration. - -/** - * A test function. - */ -function test( - processor: (id: number) => string -) { - return processor(10); -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] -// Message: Missing JSDoc @param "id" declaration. - -/** - * A test function. - */ -let test = (processor: (id: number) => string) => -{ - return processor(10); -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] -// Message: Missing JSDoc @param "id" declaration. - -class TestClass { - /** - * A class property. - */ - public Test: (id: number) => string; -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] -// Message: Missing JSDoc @param "id" declaration. - -class TestClass { - /** - * A class method. - */ - public TestMethod(): (id: number) => string - { - } -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] -// Message: Missing JSDoc @param "id" declaration. - -interface TestInterface { -/** - * An interface property. - */ -public Test: (id: number) => string; -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] -// Message: Missing JSDoc @param "id" declaration. - -interface TestInterface { - /** - * An interface method. - */ - public TestMethod(): (id: number) => string; -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] -// Message: Missing JSDoc @param "id" declaration. - -/** - * A function with return type - */ -function test(): (id: number) => string; -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] -// Message: Missing JSDoc @param "id" declaration. - -/** - * A function with return type - */ -let test = (): (id: number) => string => -{ - return (id) => `${id}`; -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] -// Message: Missing JSDoc @param "id" declaration. - -/** - * @param baz - * @param options - */ -function quux (baz, {foo: bar}) { - -} -// Message: Missing JSDoc @param "options.foo" declaration. - -class Client { - /** - * Set collection data. - * @param {Object} data The collection data object. - * @param {number} data.last_modified - * @param {Object} options The options object. - * @param {Object} [options.headers] The headers object option. - * @param {Number} [options.retry=0] Number of retries to make - * when faced with transient errors. - * @param {Boolean} [options.safe] The safe option. - * @param {Boolean} [options.patch] The patch option. - * @param {Number} [options.last_modified] The last_modified option. - * @return {Promise} - */ - async setData( - data: { last_modified?: number }, - options: { - headers?: Record; - safe?: boolean; - retry?: number; - patch?: boolean; - last_modified?: number; - permissions?: []; - } = {} - ) {} -} -// Message: Missing JSDoc @param "options.permissions" declaration. - -/** - * - */ -function quux (foo) { - -} -// "jsdoc/require-param": ["error"|"warn", {"enableFixer":false}] -// Message: Missing JSDoc @param "foo" declaration. - -class Client { - /** - * Set collection data. - * @return {Promise} - */ - async setData( - data: { last_modified?: number } - ) {} -} -// Message: Missing JSDoc @param "data" declaration. - -/** - * @param cfg - * @param cfg.num - */ -function quux ({num, ...extra}) { -} -// "jsdoc/require-param": ["error"|"warn", {"checkRestProperty":true}] -// Message: Missing JSDoc @param "cfg.extra" declaration. - -/** - * @param cfg - * @param cfg.opts - * @param cfg.opts.num - */ -function quux ({opts: {num, ...extra}}) { -} -// "jsdoc/require-param": ["error"|"warn", {"checkRestProperty":true}] -// Message: Missing JSDoc @param "cfg.opts.extra" declaration. - -/** - * @param {GenericArray} cfg - * @param {number} cfg."0" - */ -function baar ([a, ...extra]) { - // -} -// Message: Missing JSDoc @param "cfg."1"" declaration. - -/** - * @param a - */ -function baar (a, ...extra) { - // -} -// Message: Missing JSDoc @param "extra" declaration. - -/** - * Converts an SVGRect into an object. - * @param {SVGRect} bbox - a SVGRect - */ -const bboxToObj = function ({x, y, width, height}) { - return {x, y, width, height}; -}; -// "jsdoc/require-param": ["error"|"warn", {"checkTypesPattern":"SVGRect"}] -// Message: Missing JSDoc @param "bbox.x" declaration. - -/** - * Converts an SVGRect into an object. - * @param {object} bbox - a SVGRect - */ -const bboxToObj = function ({x, y, width, height}) { - return {x, y, width, height}; -}; -// Message: Missing JSDoc @param "bbox.x" declaration. - -module.exports = class GraphQL { - /** - * @param fetchOptions - * @param cacheKey - */ - fetch = ({ url, ...options }, cacheKey) => { - } -}; -// "jsdoc/require-param": ["error"|"warn", {"checkRestProperty":true}] -// Message: Missing JSDoc @param "fetchOptions.url" declaration. - -(function() { - /** - * A function. - */ - function f(param) { - return !param; - } -})(); -// Message: Missing JSDoc @param "param" declaration. - -/** - * Description. - * @param {Object} options - * @param {Object} options.foo - */ -function quux ({ foo: { bar } }) {} -// Message: Missing JSDoc @param "options.foo.bar" declaration. - -/** - * Description. - * @param {FooBar} options - * @param {FooBar} options.foo - */ -function quux ({ foo: { bar } }) {} -// "jsdoc/require-param": ["error"|"warn", {"checkTypesPattern":"FooBar"}] -// Message: Missing JSDoc @param "options.foo.bar" declaration. - -/** - * Description. - * @param {Object} options - * @param {FooBar} foo - */ -function quux ({ foo: { bar } }) {} -// Message: Missing JSDoc @param "options.foo" declaration. - -/** - * Description. - * @param {Object} options - * @param options.foo - */ -function quux ({ foo: { bar } }) {} -// Message: Missing JSDoc @param "options.foo.bar" declaration. - -/** - * Description. - * @param {object} options Options. - * @param {object} options.foo A description. - * @param {object} options.foo.bar - */ -function foo({ foo: { bar: { baz } }}) {} -// Message: Missing JSDoc @param "options.foo.bar.baz" declaration. - -/** -* Returns a number. -* @param {Object} props Props. -* @param {Object} props.prop Prop. -* @return {number} A number. -*/ -export function testFn1 ({ prop = { a: 1, b: 2 } }) { -} -// "jsdoc/require-param": ["error"|"warn", {"useDefaultObjectProperties":true}] -// Message: Missing JSDoc @param "props.prop.a" declaration. - -/** Foo. */ -function foo(a, b, c) {} -// Message: Missing JSDoc @param "a" declaration. - -/** - * @param foo Some number. - * @param bar Some number. - */ -export function myPublicFunction(foo: number, bar: number, baz: number) {} -// "jsdoc/require-param": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[tag=\"param\"])","context":"FunctionDeclaration"}]}] -// Message: Missing JSDoc @param "baz" declaration. -```` - -The following patterns are not considered problems: - -````js -/** - * @param foo - */ -function quux (foo) { - -} - -/** - * @param root0 - * @param root0.foo - */ -function quux ({foo}) { - -} - -/** - * @param root0 - * @param root0.foo - * @param root1 - * @param root1.bar - */ -function quux ({foo}, {bar}) { - -} - -/** - * @param arg0 - * @param arg0.foo - * @param arg1 - * @param arg1.bar - */ -function quux ({foo}, {bar}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"unnamedRootBase":["arg"]}] - -/** - * @param arg - * @param arg.foo - * @param config0 - * @param config0.bar - * @param config1 - * @param config1.baz - */ -function quux ({foo}, {bar}, {baz}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"unnamedRootBase":["arg","config"]}] - -/** - * @inheritdoc - */ -function quux (foo) { - -} - -/** - * @inheritDoc - */ -function quux (foo) { - -} - -/** - * @arg foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} - -/** - * @override - * @param foo - */ -function quux (foo) { - -} - -/** - * @override - */ -function quux (foo) { - -} - -/** - * @override - */ -class A { - /** - * - */ - quux (foo) { - - } -} - -/** - * @override - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"overrideReplacesDocs":true}} - -/** - * @ignore - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"ignoreReplacesDocs":true}} - -/** - * @implements - */ -class A { - /** - * - */ - quux (foo) { - - } -} - -/** - * @implements - */ -function quux (foo) { - -} - -/** - * @implements - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"implementsReplacesDocs":true}} - -/** - * @implements - * @param foo - */ -function quux (foo) { - -} - -/** - * @augments - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} - -/** - * @augments - * @param foo - */ -function quux (foo) { - -} - -/** - * @extends - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} - -/** - * @extends - * @param foo - */ -function quux (foo) { - -} - -/** - * @augments - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} - -/** - * @extends - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} - -/** - * @override - */ -class A { - /** - * @param foo - */ - quux (foo) { - - } -} - -/** - * @override - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"overrideReplacesDocs":true}} - -/** - * @ignore - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"ignoreReplacesDocs":true}} - -/** - * @implements - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"implementsReplacesDocs":true}} - -/** - * @implements - */ -class A { - /** - * @param foo - */ - quux (foo) { - - } -} - -/** - * @augments - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} - -/** - * @augments - */ -class A { - /** - * @param foo - */ - quux (foo) { - - } -} - -/** - * @extends - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} - -/** - * @extends - */ -class A { - /** - * @param foo - */ - quux (foo) { - - } -} - -/** - * @augments - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} - -/** - * @extends - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} - -/** - * @internal - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"ignoreInternal":true}} - -/** - * @private - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"ignorePrivate":true}} - -/** - * @access private - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"ignorePrivate":true}} - -// issue 182: optional chaining -/** @const {boolean} test */ -const test = something?.find(_ => _) - -/** @type {RequestHandler} */ -function foo(req, res, next) {} - -/** - * @type {MyCallback} - */ -function quux () { - -} -// "jsdoc/require-param": ["error"|"warn", {"exemptedBy":["type"]}] - -/** - * @override - */ -var A = class { - /** - * - */ - quux (foo) { - - } -} - -export class SomeClass { - /** - * @param property - */ - constructor(private property: string) {} -} - -/** - * Assign the project to an employee. - * - * @param {object} employee - The employee who is responsible for the project. - * @param {string} employee.name - The name of the employee. - * @param {string} employee.department - The employee's department. - */ -function assign({name, department}) { - // ... -} - -export abstract class StephanPlugin { - - /** - * Called right after Stephan loads the plugin file. - * - * @example - *```typescript - * type Options = { - * verbose?: boolean; - * token?: string; - * } - * ``` - * - * Note that your Options type should only have optional properties... - * - * @param args Arguments compiled and provided by StephanClient. - * @param args.options The options as provided by the user, or an empty object if not provided. - * @param args.client The options as provided by the user, or an empty object if not provided. - * @param defaultOptions The default options as provided by the plugin, or an empty object. - */ - public constructor({options, client}: { - options: O; - client: unknown; - }, defaultOptions: D) { - - } -} - -/** - * - */ -function quux (foo) { - -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["ArrowFunctionExpression"]}] - -/** -* A function with return type -* -* @param id -*/ -let test = (): (id: number) => string => -{ - return (id) => `${id}`; -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] - -/** @abstract */ -class base { -/** @param {boolean} arg0 */ -constructor(arg0) {} -} - -class foo extends base { -/** @inheritDoc */ -constructor(arg0) { -super(arg0); -this.arg0 = arg0; -} -} -// Settings: {"jsdoc":{"mode":"closure"}} - - export abstract class StephanPlugin { - - /** - * Called right after Stephan loads the plugin file. - * - * @example - *```typescript - * type Options = { - * verbose?: boolean; - * token?: string; - * } - * ``` - * - * Note that your Options type should only have optional properties... - * - * @param args Arguments compiled and provided by StephanClient. - * @param args.options The options as provided by the user, or an empty object if not provided. - * @param args.client The options as provided by the user, or an empty object if not provided. - * @param args.client.name The name of the client. - * @param defaultOptions The default options as provided by the plugin, or an empty object. - */ - public constructor({ options, client: { name } }: { - options: O; - client: { name: string }; - }, defaultOptions: D) { - - } -} - -/** -* @param {string} cb -*/ -function createGetter (cb) { - return function (...args) { - cb(); - }; -} - -/** - * @param cfg - * @param cfg.num - */ -function quux ({num, ...extra}) { -} - -/** - * @param {GenericArray} cfg - * @param {number} cfg."0" - */ -function baar ([a, ...extra]) { - // -} -// "jsdoc/require-param": ["error"|"warn", {"enableRestElementFixer":false}] - -/** - * @param a - */ -function baar (a, ...extra) { - // -} -// "jsdoc/require-param": ["error"|"warn", {"enableRestElementFixer":false}] - -/** -* Converts an SVGRect into an object. -* @param {SVGRect} bbox - a SVGRect -*/ -const bboxToObj = function ({x, y, width, height}) { - return {x, y, width, height}; -}; - -/** -* Converts an SVGRect into an object. -* @param {object} bbox - a SVGRect -*/ -const bboxToObj = function ({x, y, width, height}) { - return {x, y, width, height}; -}; -// "jsdoc/require-param": ["error"|"warn", {"checkTypesPattern":"SVGRect"}] - -class CSS { - /** - * Set one or more CSS properties for the set of matched elements. - * - * @param {Object} propertyObject - An object of property-value pairs to set. - */ - setCssObject(propertyObject: {[key: string]: string | number}): void { - } -} - -/** - * @param foo - * @param bar - * @param cfg - */ -function quux (foo, bar, {baz}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"checkDestructured":false}] - -/** - * @param foo - * @param bar - */ -function quux (foo, bar, {baz}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"checkDestructuredRoots":false}] - -/** - * @param root - * @param root.foo - */ -function quux ({"foo": bar}) { - -} - -/** - * @param root - * @param root."foo" - */ -function quux ({foo: bar}) { - -} - -/** - * Description. - * @param {string} b Description `/**`. - */ -module.exports = function a(b) { - console.info(b); -}; - -/** - * Description. - * @param {Object} options Options. - * @param {FooBar} options.foo foo description. - */ -function quux ({ foo: { bar } }) {} - -/** - * Description. - * @param {FooBar} options - * @param {Object} options.foo - */ -function quux ({ foo: { bar } }) {} -// "jsdoc/require-param": ["error"|"warn", {"checkTypesPattern":"FooBar"}] - -/** - * @param obj - * @param obj.data - * @param obj.data."0" - * @param obj.data."1" - * @param obj.data."2" - * @param obj.defaulting - * @param obj.defaulting."0" - * @param obj.defaulting."1" - */ -function Item({ - data: [foo, bar, ...baz], - defaulting: [quux, xyz] = [] -}) { -} - -/** -* Returns a number. -* @param {Object} props Props. -* @param {Object} props.prop Prop. -* @return {number} A number. -*/ -export function testFn1 ({ prop = { a: 1, b: 2 } }) { -} -// "jsdoc/require-param": ["error"|"warn", {"useDefaultObjectProperties":false}] - -/** - * @param this The this object - * @param bar number to return - * @returns number returned back to caller - */ -function foo(this: T, bar: number): number { - console.log(this.name); - return bar; -} - -/** - * @param bar number to return - * @returns number returned back to caller - */ -function foo(this: T, bar: number): number { - console.log(this.name); - return bar; -} -```` - - - - -### require-property - -Requires that all `@typedef` and `@namespace` tags have `@property` -when their type is a plain `object`, `Object`, or `PlainObject`. - -Note that any other type, including a subtype of object such as -`object`, will not be reported. - - - -#### Fixer - -The fixer for `require-property` will add an empty `@property`. - -||| -|---|---| -|Context|Everywhere| -|Tags|`typedef`, `namespace`| -|Recommended|true| - -The following patterns are considered problems: - -````js -/** - * @typedef {object} SomeTypedef - */ -// Message: Missing JSDoc @property. - -class Test { - /** - * @typedef {object} SomeTypedef - */ - quux () {} -} -// Message: Missing JSDoc @property. - -/** - * @typedef {PlainObject} SomeTypedef - */ -// Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}} -// Message: Missing JSDoc @prop. - -/** - * @namespace {Object} SomeName - */ -// Message: Missing JSDoc @property. -```` - -The following patterns are not considered problems: - -````js -/** - * - */ - -/** - * @property - */ - -/** - * @typedef {Object} SomeTypedef - * @property {SomeType} propName Prop description - */ - -/** - * @typedef {object} SomeTypedef - * @prop {SomeType} propName Prop description - */ -// Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}} - -/** - * @typedef {object} SomeTypedef - * @property - * // arbitrary property content - */ - -/** - * @typedef {object} SomeTypedef - */ - -/** - * @typedef {string} SomeTypedef - */ - -/** - * @namespace {object} SomeName - * @property {SomeType} propName Prop description - */ - -/** - * @namespace {object} SomeName - * @property - * // arbitrary property content - */ - -/** - * @typedef {object} SomeTypedef - * @property someProp - * @property anotherProp This with a description - * @property {anotherType} yetAnotherProp This with a type and desc. - */ -function quux () { - -} -```` - - - - -### require-property-description - -Requires that each `@property` tag has a `description` value. - -||| -|---|---| -|Context|everywhere| -|Tags|`property`| -|Aliases|`prop`| -|Recommended|true| - -The following patterns are considered problems: - -````js -/** - * @typedef {SomeType} SomeTypedef - * @property foo - */ -// Message: Missing JSDoc @property "foo" description. - -/** - * @typedef {SomeType} SomeTypedef - * @prop foo - */ -// Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}} -// Message: Missing JSDoc @prop "foo" description. - -/** - * @typedef {SomeType} SomeTypedef - * @property foo - */ -// Settings: {"jsdoc":{"tagNamePreference":{"property":false}}} -// Message: Unexpected tag `@property` -```` - -The following patterns are not considered problems: - -````js -/** - * @typedef {SomeType} SomeTypedef - */ - -/** - * @typedef {SomeType} SomeTypedef - * @property foo Foo. - */ - -/** - * @namespace {SomeType} SomeName - * @property foo Foo. - */ - -/** - * @class - * @property foo Foo. - */ - -/** - * Typedef with multi-line property type. - * - * @typedef {object} MyType - * @property {function( - * number - * )} numberEater Method which takes a number. - */ -```` - - - - -### require-property-name - -Requires that all function `@property` tags have names. - -||| -|---|---| -|Context|everywhere| -|Tags|`property`| -|Aliases|`prop`| -|Recommended|true| - -The following patterns are considered problems: - -````js -/** - * @typedef {SomeType} SomeTypedef - * @property - */ -// Message: There must be an identifier after @property type. - -/** - * @typedef {SomeType} SomeTypedef - * @property {string} - */ -// Message: There must be an identifier after @property tag. - -/** - * @typedef {SomeType} SomeTypedef - * @property foo - */ -// Settings: {"jsdoc":{"tagNamePreference":{"property":false}}} -// Message: Unexpected tag `@property` -```` - -The following patterns are not considered problems: - -````js -/** - * @typedef {SomeType} SomeTypedef - * @property foo - */ - -/** - * @typedef {SomeType} SomeTypedef - * @property {string} foo - */ - -/** - * @namespace {SomeType} SomeName - * @property {string} foo - */ - -/** - * @class - * @property {string} foo - */ -```` - - - - -### require-property-type - -Requires that each `@property` tag has a `type` value. - -||| -|---|---| -|Context|everywhere| -|Tags|`property`| -|Aliases|`prop`| -|Recommended|true| - -The following patterns are considered problems: - -````js -/** - * @typedef {SomeType} SomeTypedef - * @property foo - */ -// Message: Missing JSDoc @property "foo" type. - -/** - * @typedef {SomeType} SomeTypedef - * @prop foo - */ -// Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}} -// Message: Missing JSDoc @prop "foo" type. - -/** - * @typedef {SomeType} SomeTypedef - * @property foo - */ -// Settings: {"jsdoc":{"tagNamePreference":{"property":false}}} -// Message: Unexpected tag `@property` -```` - -The following patterns are not considered problems: - -````js -/** - * @typedef {SomeType} SomeTypedef - */ - -/** - * @typedef {SomeType} SomeTypedef - * @property {number} foo - */ - -/** - * @namespace {SomeType} SomeName - * @property {number} foo - */ - -/** - * @class - * @property {number} foo - */ -```` - - - - -### require-returns-check - -Requires a return statement (or non-`undefined` Promise resolve value) in -function bodies if a `@returns` tag (without a `void` or `undefined` type) -is specified in the function's JSDoc comment. - -Will also report `@returns {void}` and `@returns {undefined}` if `exemptAsync` -is set to `false` and a non-`undefined` value is returned or a resolved value -is found. Also reports if `@returns {never}` is discovered with a return value. - -Will also report if multiple `@returns` tags are present. - - - -#### Options - -- `exemptGenerators`- Because a generator might be labeled as having a - `IterableIterator` `@returns` value (along with an iterator type - corresponding to the type of any `yield` statements), projects might wish to - leverage `@returns` in generators even without a` return` statement. This - option is therefore `true` by default in `typescript` mode (in "jsdoc" mode, - one might be more likely to take advantage of `@yields`). Set it to `false` - if you wish for a missing `return` to be flagged regardless. -- `exemptAsync` - By default, functions which return a `Promise` that are not - detected as resolving with a non-`undefined` value and `async` functions - (even ones that do not explicitly return a value, as these are returning a - `Promise` implicitly) will be exempted from reporting by this rule. - If you wish to insist that only `Promise`'s which resolve to - non-`undefined` values or `async` functions with explicit `return`'s will - be exempted from reporting (i.e., that `async` functions can be reported - if they lack an explicit (non-`undefined`) `return` when a `@returns` is - present), you can set `exemptAsync` to `false` on the options object. -- `reportMissingReturnForUndefinedTypes` - If `true` and no return or - resolve value is found, this setting will even insist that reporting occur - with `void` or `undefined` (including as an indicated `Promise` type). - Unlike `require-returns`, with this option in the rule, one can - *discourage* the labeling of `undefined` types. Defaults to `false`. - -||| -|---|---| -|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| -|Tags|`returns`| -|Aliases|`return`| -|Options|`exemptAsync`, `reportMissingReturnForUndefinedTypes`| -|Recommended|true| - -The following patterns are considered problems: - -````js -/** - * @returns - */ -function quux (foo) { - -} -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @return - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}} -// Message: JSDoc @return declaration present but return expression not available in function. - -/** - * @returns - */ -const quux = () => {} -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {undefined} Foo. - * @returns {String} Foo. - */ -function quux () { - - return foo; -} -// Message: Found more than one @returns declaration. - -const language = { - /** - * @param {string} name - * @returns {string} - */ - get name() { - this._name = name; - } -} -// Message: JSDoc @returns declaration present but return expression not available in function. - -class Foo { - /** - * @returns {string} - */ - bar () { - } -} -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"returns":false}}} -// Message: Unexpected tag `@returns` - -/** - * @returns {string} - */ -function f () { - function g() { - return 'foo' - } - - () => { - return 5 - } -} -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {Promise} - */ -async function quux() {} -// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {IterableIterator} - */ -function * quux() {} -// Settings: {"jsdoc":{"mode":"jsdoc"}} -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {IterableIterator} - */ -function * quux() {} -// Settings: {"jsdoc":{"mode":"typescript"}} -// "jsdoc/require-returns-check": ["error"|"warn", {"exemptGenerators":false}] -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {Promise} - */ -function quux() { - return new Promise((resolve, reject) => {}) -} -// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {Promise} - */ -function quux() { - return new Promise((resolve, reject) => { - setTimeout(() => { - resolve(); - }); - }) -} -// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * Description. - * @returns {string} - */ -async function foo() { - return new Promise(resolve => resolve()); -} -// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * Description. - * @returns {void} - */ -async function foo() { - return new Promise(resolve => resolve()); -} -// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false,"reportMissingReturnForUndefinedTypes":true}] -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns { void } Foo. - */ -function quux () {} -// "jsdoc/require-returns-check": ["error"|"warn", {"reportMissingReturnForUndefinedTypes":true}] -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {never} Foo. - */ -function quux () { - return undefined; -} -// Message: JSDoc @returns declaration set with "never" but return expression is present in function. - -/** - * @returns {never} - */ -function quux (foo) { - return foo; -} -// Message: JSDoc @returns declaration set with "never" but return expression is present in function. - -/** - * Reads a test fixture. - * - * @param path The path to resolve relative to the fixture base. It will be normalized for the - * operating system. - * - * @returns The file contents as buffer. - */ -export function readFixture(path: string): void; -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * Reads a test fixture. - * - * @param path The path to resolve relative to the fixture base. It will be normalized for the - * operating system. - * - * @returns The file contents as buffer. - */ -export function readFixture(path: string); -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {SomeType} - */ -function quux (path) { - if (true) { - return; - } - return 15; -}; -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * Reads a test fixture. - * - * @param path The path to resolve relative to the fixture base. It will be normalized for the - * operating system. - * - * @returns The file contents as buffer. - */ -export function readFixture(path: string): void { - return; -}; -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {true} - */ -function quux () { - if (true) { - return true; - } -} -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {true} - */ -function quux () { - if (true) { - } else { - return; - } -} -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {true} - */ -function quux (someVar) { - switch (someVar) { - case 1: - return true; - case 2: - return; - } -} -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {boolean} - */ -const quux = (someVar) => { - if (someVar) { - return true; - } -}; -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {true} - */ -function quux () { - try { - return true; - } catch (error) { - } -} -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {true} - */ -function quux () { - try { - return true; - } catch (error) { - return true; - } finally { - return; - } -} -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {true} - */ -function quux () { - if (true) { - throw new Error('abc'); - } - - throw new Error('def'); -} -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {SomeType} Baz. - */ -function foo() { - switch (true) { - default: - switch (false) { - default: return; - } - return "baz"; - } -}; -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {SomeType} Baz. - */ -function foo() { - switch (true) { - default: - switch (false) { - default: return; - } - return "baz"; - } -}; -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {number} - */ -function foo() { - let n = 1; - while (n > 0.5) { - n = Math.random(); - if (n < 0.2) { - return n; - } - } -} -// Message: JSDoc @returns declaration present but return expression not available in function. -```` - -The following patterns are not considered problems: - -````js -/** - * @returns Foo. - */ -function quux () { - - return foo; -} - -/** - * @returns {string} Foo. - */ -function quux () { - - return foo; -} - -/** - * @returns {string} Foo. - */ -function quux () { - - return foo; -} - -/** - * - */ -function quux () { -} - -/** - * @returns {SomeType} Foo. - */ -const quux = () => foo; - -/** - * @returns {undefined} Foo. - */ -function quux () {} - -/** - * @returns { void } Foo. - */ -function quux () {} - -/** - * @returns {Promise} - */ -async function quux() {} - -/** - * @returns {Promise} - */ -const quux = async function () {} - -/** - * @returns {Promise} - */ -const quux = async () => {} - -/** - * @returns Foo. - * @abstract - */ -function quux () { - throw new Error('must be implemented by subclass!'); -} - -/** - * @returns Foo. - * @virtual - */ -function quux () { - throw new Error('must be implemented by subclass!'); -} - -/** - * @returns Foo. - * @constructor - */ -function quux () { -} - -/** - * @interface - */ -class Foo { - /** - * @returns {string} - */ - bar () { - } -} - -/** - * @record - */ -class Foo { - /** - * @returns {string} - */ - bar () { - } -} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @returns {undefined} Foo. - */ -function quux () { -} - -/** - * @returns {void} Foo. - */ -function quux () { -} - -/** - * @returns {void} Foo. - */ -function quux () { - return undefined; -} - -/** - * @returns {never} Foo. - */ -function quux () { -} - -/** - * @returns {void} Foo. - */ -function quux () { - return; -} - -/** - * - */ -function quux () { - return undefined; -} - -/** - * - */ -function quux () { - return; -} - -/** - * @returns {true} - */ -function quux () { - try { - return true; - } catch (err) { - } - return true; -} - -/** - * @returns {true} - */ -function quux () { - try { - } finally { - return true; - } - return true; -} - -/** - * @returns {true} - */ -function quux () { - try { - return true; - } catch (err) { - } - return true; -} - -/** - * @returns {true} - */ -function quux () { - try { - something(); - } catch (err) { - return true; - } - return true; -} - -/** - * @returns {true} - */ -function quux () { - switch (true) { - case 'abc': - return true; - } - return true; -} - -/** - * @returns {true} - */ -function quux () { - switch (true) { - case 'abc': - return true; - } - return true; -} - -/** - * @returns {true} - */ -function quux () { - for (const i of abc) { - return true; - } - return true; -} - -/** - * @returns {true} - */ -function quux () { - for (const a in b) { - return true; - } -} - -/** - * @returns {true} - */ -function quux () { - for (const a of b) { - return true; - } -} - -/** - * @returns {true} - */ -function quux () { - loop: for (const a of b) { - return true; - } -} - -/** - * @returns {true} - */ -function quux () { - for (let i=0; i} - */ -async function quux() { - return 5; -} - -/** - * @returns {Promise} - */ -async function quux() { - return 5; -} -// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] - -/** - * @returns {Promise} - */ -function quux() { - return new Promise((resolve, reject) => { - setTimeout(() => { - resolve(true); - }); - }) -} -// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] - -/** - * Description. - * @returns {void} - */ -async function foo() { - return new Promise(resolve => resolve()); -} -// "jsdoc/require-returns-check": ["error"|"warn", {"reportMissingReturnForUndefinedTypes":true}] - -/** - * @returns { void } Foo. - */ -function quux () { - return undefined; -} -// "jsdoc/require-returns-check": ["error"|"warn", {"reportMissingReturnForUndefinedTypes":true}] - -/** - * @returns { string } Foo. - */ -function quux () { - return 'abc'; -} -// "jsdoc/require-returns-check": ["error"|"warn", {"reportMissingReturnForUndefinedTypes":true}] - -/** - * @returns {IterableIterator} - */ -function * quux() {} -// Settings: {"jsdoc":{"mode":"typescript"}} - -/** - * @returns {IterableIterator} - */ -function * quux() {} -// Settings: {"jsdoc":{"mode":"jsdoc"}} -// "jsdoc/require-returns-check": ["error"|"warn", {"exemptGenerators":true}] - -/** - * @param {unknown} val - * @returns { asserts val is number } - */ -function assertNumber(val) { - assert(typeof val === 'number'); -} - -/** - * Reads a test fixture. - * - * @param path The path to resolve relative to the fixture base. It will be normalized for the - * operating system. - * - * @returns The file contents as buffer. - */ -export function readFixture(path: string): Promise; - -/** - * Reads a test fixture. - * - * @param path The path to resolve relative to the fixture base. It will be normalized for the - * operating system. - * - * @returns {SomeType} The file contents as buffer. - */ -export function readFixture(path: string): Promise; - -/** - * Reads a test fixture. - * - * @param path The path to resolve relative to the fixture base. It will be normalized for the - * operating system. - * - * @returns The file contents as buffer. - */ -export function readFixture(path: string): Promise { - return new Promise(() => {}); -} - -/** - * Reads a test fixture. - * - * @param path The path to resolve relative to the fixture base. It will be normalized for the - * operating system. - * - * @returns {void} The file contents as buffer. - */ -export function readFixture(path: string); - -/** - * @returns {SomeType} - */ -function quux (path) { - if (true) { - return 5; - } - return 15; -}; - -/** - * @returns {SomeType} Foo. - */ -const quux = () => new Promise((resolve) => { - resolve(3); -}); - -/** - * @returns {SomeType} Foo. - */ -const quux = function () { - return new Promise((resolve) => { - resolve(3); - }); -}; - -/** - * @returns {true} - */ -function quux () { - if (true) { - return true; - } - - throw new Error('Fail'); -} - -/** - * @returns Baz. - */ -function foo() { - switch (true) { - default: - switch (false) { - default: break; - } - return "baz"; - } -}; - -/** - * Return a V1 style query identifier. - * - * @param {string} id - The query identifier. - * @returns {string} V1 style query identifier. - */ -function v1QueryId(id) { - switch (id) { - case 'addq': - case 'aliq': - case 'locq': - return id.substring(3); - case 'lost': - return id.substring(4); - default: - return id; - } -} - -/** - * Parses the required header fields for the given SIP message. - * - * @param {string} logPrefix - The log prefix. - * @param {string} sipMessage - The SIP message. - * @param {string[]} headers - The header fields to be parsed. - * @returns {object} Object with parsed header fields. - */ -function parseSipHeaders(logPrefix, sipMessage, headers) { - try { - return esappSip.parseHeaders(sipMessage, headers); - } catch (err) { - logger.error(logPrefix, 'Failed to parse'); - return {}; - } -} - -/** - * @returns {true} - */ -function quux () { - try { - } catch (error) { - } finally { - return true; - } -} - -/** Returns true. - * - * @returns {boolean} true - */ -function getTrue() { - try { - return true; - } finally { - console.log('returning...'); - } -} - -/** - * Maybe return a boolean. - * @returns {boolean|void} true, or undefined. - */ -function maybeTrue() { - if (Math.random() > 0.5) { - return true; - } -} - -/** - * @param {AST} astNode - * @returns {AST} - */ -const getTSFunctionComment = function (astNode) { - switch (greatGrandparent.type) { - case 'VariableDeclarator': - if (greatGreatGrandparent.type === 'VariableDeclaration') { - return greatGreatGrandparent; - } - - default: - return astNode; - } -}; - -const f = - /** - * Description. - * - * @returns Result. - */ - () => { - return function () {}; - }; - -/** - * Description. - * - * @returns Result. - */ -export function f(): string { - return ""; - - interface I {} -} - -/** - * @param {boolean} bar A fun variable. - * @returns {*} Anything at all! - */ -function foo( bar ) { - if ( bar ) { - return functionWithUnknownReturnType(); - } -} - -/** - * @returns Baz. - */ -function foo() { - switch (true) { - default: - switch (false) { - default: return; - } - return "baz"; - } -}; - -/** - * @returns Baz. - */ -function foo() { - switch (true) { - default: - switch (false) { - default: return; - } - return "baz"; - } -}; - -/** - * @returns - */ -const quux = (someVar) => { - if (someVar) { - return true; - } -}; - -/** - * @returns {number} - */ -function foo() { - while (true) { - const n = Math.random(); - if (n < 0.5) { - return n; - } - } -} -```` - - - - -### require-returns-description - -Requires that the `@returns` tag has a `description` value. The error -will not be reported if the return value is `void` or `undefined` -or if it is `Promise` or `Promise`. - - - -#### Options - - - -##### contexts - -Set this to an array of strings representing the AST context (or an object with -`context` and `comment` properties) where you wish the rule to be applied. -Overrides the default contexts (see below). Set to `"any"` if you want -the rule to apply to any jsdoc block throughout your files (as is necessary -for finding function blocks not attached to a function declaration or -expression, i.e., `@callback` or `@function` (or its aliases `@func` or -`@method`) (including those associated with an `@interface`). - -See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) -section of our README for more on the expected format. - -||| -|---|---| -|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| -|Tags|`returns`| -|Aliases|`return`| -|Recommended|true| -|Options|`contexts`| - -The following patterns are considered problems: - -````js -/** - * @returns - */ -function quux (foo) { - -} -// Message: Missing JSDoc @returns description. - -/** - * @returns {string} - */ -function quux (foo) { - -} -// Message: Missing JSDoc @returns description. - -/** - * @returns {string} - */ -function quux (foo) { - -} -// "jsdoc/require-returns-description": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @returns description. - -/** - * @function - * @returns {string} - */ -// "jsdoc/require-returns-description": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @returns description. - -/** - * @callback - * @returns {string} - */ -// "jsdoc/require-returns-description": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @returns description. - -/** - * @return - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}} -// Message: Missing JSDoc @return description. - -/** - * @returns - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"returns":false}}} -// Message: Unexpected tag `@returns` -```` - -The following patterns are not considered problems: - -````js -/** - * - */ -function quux () { - -} - -/** - * @returns Foo. - */ -function quux () { - -} - -/** - * @returns Foo. - */ -function quux () { - -} -// "jsdoc/require-returns-description": ["error"|"warn", {"contexts":["any"]}] - -/** - * @returns {undefined} - */ -function quux () { - -} - -/** - * @returns {void} - */ -function quux () { - -} - -/** - * @returns {Promise} - */ -function quux () { - -} - -/** - * @returns {Promise} - */ -function quux () { - -} - -/** - * @function - * @returns - */ - -/** - * @callback - * @returns - */ -```` - - - - -### require-returns-type - -Requires that `@returns` tag has `type` value. - - - -#### Options - - - -##### contexts - -Set this to an array of strings representing the AST context (or an object with -`context` and `comment` properties) where you wish the rule to be applied. -Overrides the default contexts (see below). Set to `"any"` if you want -the rule to apply to any jsdoc block throughout your files (as is necessary -for finding function blocks not attached to a function declaration or -expression, i.e., `@callback` or `@function` (or its aliases `@func` or -`@method`) (including those associated with an `@interface`). - -See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) -section of our README for more on the expected format. - -||| -|---|---| -|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| -|Tags|`returns`| -|Aliases|`return`| -|Recommended|true| -|Options|`contexts`| - -The following patterns are considered problems: - -````js -/** - * @returns - */ -function quux () { - -} -// Message: Missing JSDoc @returns type. - -/** - * @returns Foo. - */ -function quux () { - -} -// Message: Missing JSDoc @returns type. - -/** - * @returns Foo. - */ -function quux () { - -} -// "jsdoc/require-returns-type": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @returns type. - -/** - * @function - * @returns Foo. - */ -// "jsdoc/require-returns-type": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @returns type. - -/** - * @callback - * @returns Foo. - */ -// "jsdoc/require-returns-type": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @returns type. - -/** - * @return Foo. - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}} -// Message: Missing JSDoc @return type. - -/** - * @returns - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"returns":false}}} -// Message: Unexpected tag `@returns` -```` - -The following patterns are not considered problems: - -````js -/** - * @returns {number} - */ -function quux () { - -} - -/** - * @returns {number} - */ -function quux () { - -} -// "jsdoc/require-returns-type": ["error"|"warn", {"contexts":["any"]}] - -/** - * @function - * @returns Foo. - */ - -/** - * @callback - * @returns Foo. - */ -```` - - - - -### require-returns - -Requires that returns are documented. - -Will also report if multiple `@returns` tags are present. - - - -#### Options - -- `checkConstructors` - A value indicating whether `constructor`s should - be checked for `@returns` tags. Defaults to `false`. -- `checkGetters` - Boolean to determine whether getter methods should - be checked for `@returns` tags. Defaults to `true`. -- `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the - document block avoids the need for a `@returns`. Defaults to an array - with `inheritdoc`. If you set this array, it will overwrite the default, - so be sure to add back `inheritdoc` if you wish its presence to cause - exemption of the rule. -- `forceRequireReturn` - Set to `true` to always insist on - `@returns` documentation regardless of implicit or explicit `return`'s - in the function. May be desired to flag that a project is aware of an - `undefined`/`void` return. Defaults to `false`. -- `forceReturnsWithAsync` - By default `async` functions that do not explicitly - return a value pass this rule as an `async` function will always return a - `Promise`, even if the `Promise` resolves to void. You can force all - `async` functions (including ones with an explicit `Promise` but no - detected non-`undefined` `resolve` value) to require `@return` - documentation by setting `forceReturnsWithAsync` to `true` on the options - object. This may be useful for flagging that there has been consideration - of return type. Defaults to `false`. -- `contexts` - Set this to an array of strings representing the AST context - (or an object with `context` and `comment` properties) where you wish - the rule to be applied. - Overrides the default contexts (see below). Set to `"any"` if you want - the rule to apply to any jsdoc block throughout your files (as is necessary - for finding function blocks not attached to a function declaration or - expression, i.e., `@callback` or `@function` (or its aliases `@func` or - `@method`) (including those associated with an `@interface`). This - rule will only apply on non-default contexts when there is such a tag - present and the `forceRequireReturn` option is set or if the - `forceReturnsWithAsync` option is set with a present `@async` tag - (since we are not checking against the actual `return` values in these - cases). - -| | | -| -------- | ------- | -| Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | -| Tags | `returns` | -| Aliases | `return` | -|Recommended|true| -| Options | `checkConstructors`, `checkGetters`, `contexts`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync` | -| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | - -The following patterns are considered problems: - -````js -/** - * - */ -function quux (foo) { - - return foo; -} -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -const foo = () => ({ - bar: 'baz' -}) -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -const foo = bar=>({ bar }) -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -const foo = bar => bar.baz() -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux (foo) { - - return foo; -} -// Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}} -// Message: Missing JSDoc @return declaration. - -/** - * - */ -async function quux() { -} -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -const quux = async function () {} -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -const quux = async () => {} -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -async function quux () {} -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux () { -} -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux () { -} -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * @function - */ -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * @callback - */ -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. - -const language = { - /** - * @param {string} name - */ - get name() { - return this._name; - } -} -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -async function quux () { -} -// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * @function - * @async - */ -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceReturnsWithAsync":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * @callback - * @async - */ -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceReturnsWithAsync":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * @returns {undefined} - * @returns {void} - */ -function quux (foo) { - - return foo; -} -// Message: Found more than one @returns declaration. - -/** - * @returns - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"returns":false}}} -// Message: Unexpected tag `@returns` - -/** - * @param foo - */ -function quux (foo) { - return 'bar'; -} -// "jsdoc/require-returns": ["error"|"warn", {"exemptedBy":["notPresent"]}] -// Message: Missing JSDoc @returns declaration. - -/** - * @param {array} a - */ -async function foo(a) { - return; -} -// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * @param {array} a - */ -async function foo(a) { - return Promise.all(a); -} -// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] -// Message: Missing JSDoc @returns declaration. - -class foo { - /** gets bar */ - get bar() { - return 0; - } -} -// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":true}] -// Message: Missing JSDoc @returns declaration. - -class TestClass { - /** - * - */ - constructor() { - return new Map(); - } -} -// "jsdoc/require-returns": ["error"|"warn", {"checkConstructors":true}] -// Message: Missing JSDoc @returns declaration. - -class TestClass { - /** - * - */ - get Test() { - return 0; - } -} -// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":true}] -// Message: Missing JSDoc @returns declaration. - -class quux { - /** - * - */ - quux () { - } -} -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux (foo) { - - return new Promise(function (resolve, reject) { - resolve(foo); - }); -} -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux (foo) { - - return new Promise(function (resolve, reject) { - setTimeout(() => { - resolve(true); - }); - }); -} -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux (foo) { - - return new Promise(function (resolve, reject) { - foo(resolve); - }); -} -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux () { - return new Promise((resolve, reject) => { - while(true) { - resolve(true); - } - }); -} -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux () { - return new Promise((resolve, reject) => { - do { - resolve(true); - } - while(true) - }); -} -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux () { - return new Promise((resolve, reject) => { - if (true) { - resolve(true); - } - return; - }); -} -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux () { - return new Promise((resolve, reject) => { - if (true) { - resolve(true); - } - }); -} -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux () { - var a = {}; - return new Promise((resolve, reject) => { - with (a) { - resolve(true); - } - }); -} -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux () { - var a = {}; - return new Promise((resolve, reject) => { - try { - resolve(true); - } catch (err) {} - }); -} -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux () { - var a = {}; - return new Promise((resolve, reject) => { - try { - } catch (err) { - resolve(true); - } - }); -} -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux () { - var a = {}; - return new Promise((resolve, reject) => { - try { - } catch (err) { - } finally { - resolve(true); - } - }); -} -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux () { - var a = {}; - return new Promise((resolve, reject) => { - switch (a) { - case 'abc': - resolve(true); - } - }); -} -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux () { - return new Promise((resolve, reject) => { - if (true) { - resolve(); - } else { - resolve(true); - } - }); -} -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux () { - return new Promise((resolve, reject) => { - for (let i = 0; i < 5 ; i++) { - resolve(true); - } - }); -} -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux () { - return new Promise((resolve, reject) => { - for (const i of obj) { - resolve(true); - } - }); -} -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux () { - return new Promise((resolve, reject) => { - for (const i in obj) { - resolve(true); - } - }); -} -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux () { - return new Promise((resolve, reject) => { - if (true) { - return; - } else { - resolve(true); - } - }); -} -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux () { - return new Promise((resolve, reject) => { - function a () { - resolve(true); - } - a(); - }); -} -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -function quux () { - return new Promise(); -} -// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -async function quux () { - return new Promise(); -} -// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -async function quux () { - return new Promise((resolve, reject) => {}); -} -// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] -// Message: Missing JSDoc @returns declaration. - -export class A { - /** - * Description. - */ - public f(): string { - return ""; - } -} - -export interface B { - /** - * Description. - */ - f(): string; - - /** - * Description. - */ - g: () => string; - - /** - * Description. - */ - h(): void; - - /** - * Description. - */ - i: () => void; -} - -/** - * Description. - */ -export function f(): string { - return ""; -} -// "jsdoc/require-returns": ["error"|"warn", {"contexts":[":not(BlockStatement) > FunctionDeclaration","MethodDefinition","TSMethodSignature","TSPropertySignature > TSTypeAnnotation > TSFunctionType"]}] -// Message: Missing JSDoc @returns declaration. - -/** - * @param ms time in millis - */ -export const sleep = (ms: number) => - new Promise((res) => setTimeout(res, ms)); -// Message: Missing JSDoc @returns declaration. - -/** - * @param ms time in millis - */ -export const sleep = (ms: number) => { - return new Promise((res) => setTimeout(res, ms)); -}; -// Message: Missing JSDoc @returns declaration. - -/** - * Reads a test fixture. - */ -export function readFixture(path: string): Promise; -// Message: Missing JSDoc @returns declaration. - -/** - * Reads a test fixture. - */ -export function readFixture(path: string): void; -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * Reads a test fixture. - */ -export function readFixture(path: string); -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * @param {array} a - */ -async function foo(a) { - return Promise.all(a); -} -// Message: Missing JSDoc @returns declaration. - -/** - * Description. - */ -export default async function demo() { - return true; -} -// Message: Missing JSDoc @returns declaration. -```` - -The following patterns are not considered problems: - -````js -/** - * @returns Foo. - */ -function quux () { - - return foo; -} - -/** - * @returns Foo. - */ -function quux () { - - return foo; -} -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"]}] - -/** - * - */ -function quux () { -} - -/** - * - */ -function quux (bar) { - bar.filter(baz => { - return baz.corge(); - }) -} - -/** - * @returns Array - */ -function quux (bar) { - return bar.filter(baz => { - return baz.corge(); - }) -} - -/** - * @returns Array - */ -const quux = (bar) => bar.filter(({ corge }) => corge()) - -/** - * @inheritdoc - */ -function quux (foo) { -} - -/** - * @override - */ -function quux (foo) { -} - -/** - * @constructor - */ -function quux (foo) { - return true; -} - -/** - * @implements - */ -function quux (foo) { - return true; -} - -/** - * @override - */ -function quux (foo) { - - return foo; -} - -/** - * @class - */ -function quux (foo) { - return true; -} - -/** - * @constructor - */ -function quux (foo) { - -} - -/** - * @returns {object} - */ -function quux () { - - return {a: foo}; -} - -/** - * @returns {object} - */ -const quux = () => ({a: foo}); - -/** - * @returns {object} - */ -const quux = () => { - return {a: foo} -}; - -/** - * @returns {void} - */ -function quux () { -} - -/** - * @returns {void} - */ -const quux = () => { - -} - -/** - * @returns {undefined} - */ -function quux () { -} - -/** - * @returns {undefined} - */ -const quux = () => { - -} - -/** - * - */ -function quux () { -} - -/** - * - */ -const quux = () => { - -} - -class Foo { - /** - * - */ - constructor () { - } -} -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] - -const language = { - /** - * @param {string} name - */ - set name(name) { - this._name = name; - } -} - -/** - * @returns {void} - */ -function quux () { -} -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] - -/** - * @returns {void} - */ -function quux () { - return undefined; -} - -/** - * @returns {void} - */ -function quux () { - return undefined; -} -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] - -/** - * @returns {void} - */ -function quux () { - return; -} - -/** - * @returns {void} - */ -function quux () { -} -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] - -/** - * @returns {void} - */ -function quux () { - return; -} -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] - -/** @type {RequestHandler} */ -function quux (req, res , next) { - return; -} - -/** - * @returns {Promise} - */ -async function quux () { -} -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] - -/** - * @returns {Promise} - */ -async function quux () { -} -// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] - -/** - * - */ -async function quux () {} - -/** - * - */ -const quux = async function () {} - -/** - * - */ -const quux = async () => {} - -/** foo class */ -class foo { - /** foo constructor */ - constructor () { - // => - this.bar = true; - } -} - -export default foo; - -/** - * - */ -function quux () { -} -// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] - -/** - * @type {MyCallback} - */ -function quux () { - -} -// "jsdoc/require-returns": ["error"|"warn", {"exemptedBy":["type"]}] - -/** - * @param {array} a - */ -async function foo(a) { - return; -} - -/** - * - */ -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"]}] - -/** - * @async - */ -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"]}] - -/** - * @function - */ -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] - -/** - * @callback - */ -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] - -/** - * @function - * @async - */ -// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] - -/** - * @callback - * @async - */ -// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] - -/** - * @function - */ -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceReturnsWithAsync":true}] - -/** - * @callback - */ -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceReturnsWithAsync":true}] - -class foo { - get bar() { - return 0; - } -} -// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":false}] - -class foo { - /** @returns zero */ - get bar() { - return 0; - } -} -// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":true}] - -class foo { - /** @returns zero */ - get bar() { - return 0; - } -} -// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":false}] - -class TestClass { - /** - * - */ - constructor() { } -} - -class TestClass { - /** - * @returns A map. - */ - constructor() { - return new Map(); - } -} - -class TestClass { - /** - * - */ - constructor() { } -} -// "jsdoc/require-returns": ["error"|"warn", {"checkConstructors":false}] - -class TestClass { - /** - * - */ - get Test() { } -} - -class TestClass { - /** - * @returns A number. - */ - get Test() { - return 0; - } -} - -class TestClass { - /** - * - */ - get Test() { - return 0; - } -} -// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":false}] - -/** - * - */ -function quux (foo) { - - return new Promise(function (resolve, reject) { - resolve(); - }); -} - -/** - * - */ -function quux (foo) { - - return new Promise(function (resolve, reject) { - setTimeout(() => { - resolve(); - }); - }); -} - -/** - * - */ -function quux (foo) { - - return new Promise(function (resolve, reject) { - foo(); - }); -} - -/** - * - */ -function quux (foo) { - - return new Promise(function (resolve, reject) { - abc((resolve) => { - resolve(true); - }); - }); -} - -/** - * - */ -function quux (foo) { - - return new Promise(function (resolve, reject) { - abc(function (resolve) { - resolve(true); - }); - }); -} - -/** - * - */ -function quux () { - return new Promise((resolve, reject) => { - if (true) { - resolve(); - } - }); - return; -} - -/** - * - */ -function quux () { - return new Promise(); -} - -/** - * Description. - */ -async function foo() { - return new Promise(resolve => resolve()); -} - -/** - * @param ms time in millis - */ -export const sleep = (ms: number) => - new Promise((res) => setTimeout(res, ms)); - -/** - * @param ms time in millis - */ -export const sleep = (ms: number) => { - return new Promise((res) => setTimeout(res, ms)); -}; - -/** - * Reads a test fixture. - * - * @returns The file contents as buffer. - */ -export function readFixture(path: string): Promise; - -/** - * Reads a test fixture. - * - * @returns {void}. - */ -export function readFixture(path: string): void; - -/** - * Reads a test fixture. - */ -export function readFixture(path: string): void; - -/** - * Reads a test fixture. - */ -export function readFixture(path: string); -```` - - - - -### require-throws - -Requires that throw statements are documented. - -Note that since throw statements within async functions end up as rejected -Promises, they are not considered as throw statements for the purposes of this -rule. See [issue 755](https://github.com/gajus/eslint-plugin-jsdoc/issues/755) -for our desire for a separate tag to document rejection types and see -[this discussion](https://stackoverflow.com/questions/50071115/typescript-promise-rejection-type) -on why TypeScript doesn't offer such a feature. - - - -#### Options - -- `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the - document block avoids the need for a `@throws`. Defaults to an array - with `inheritdoc`. If you set this array, it will overwrite the default, - so be sure to add back `inheritdoc` if you wish its presence to cause - exemption of the rule. -- `contexts` - Set this to an array of strings representing the AST context - (or an object with `context` and `comment` properties) where you wish - the rule to be applied. - Overrides the default contexts (see below). Set to `"any"` if you want - the rule to apply to any jsdoc block throughout your files (as is necessary - for finding function blocks not attached to a function declaration or - expression, i.e., `@callback` or `@function` (or its aliases `@func` or - `@method`) (including those associated with an `@interface`). - -```js -'jsdoc/require-throws': 'error', -``` - -| | | -| -------- | --- | -| Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | -| Tags | `throws` | -| Aliases | `exception` | -|Recommended|true| -| Options | `contexts`, `exemptedBy` | -| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | - -The following patterns are considered problems: - -````js -/** - * - */ -function quux (foo) { - throw new Error('err') -} -// Message: Missing JSDoc @throws declaration. - -/** - * - */ -const quux = function (foo) { - throw new Error('err') -} -// Message: Missing JSDoc @throws declaration. - -/** - * - */ -const quux = (foo) => { - throw new Error('err') -} -// Message: Missing JSDoc @throws declaration. - -/** - * - */ -function quux (foo) { - while(true) { - throw new Error('err') - } -} -// Message: Missing JSDoc @throws declaration. - -/** - * - */ -function quux (foo) { - do { - throw new Error('err') - } while(true) -} -// Message: Missing JSDoc @throws declaration. - -/** - * - */ -function quux (foo) { - for(var i = 0; i <= 10; i++) { - throw new Error('err') - } -} -// Message: Missing JSDoc @throws declaration. - -/** - * - */ -function quux (foo) { - for(num in [1,2,3]) { - throw new Error('err') - } -} -// Message: Missing JSDoc @throws declaration. - -/** - * - */ -function quux (foo) { - for(const num of [1,2,3]) { - throw new Error('err') - } -} -// Message: Missing JSDoc @throws declaration. - -/** - * - */ -function quux (foo) { - for(const index in [1,2,3]) { - throw new Error('err') - } -} -// Message: Missing JSDoc @throws declaration. - -/** - * - */ -function quux (foo) { - with(foo) { - throw new Error('err') - } -} -// Message: Missing JSDoc @throws declaration. - -/** - * - */ -function quux (foo) { - if (true) { - throw new Error('err') - } -} -// Message: Missing JSDoc @throws declaration. - -/** - * - */ -function quux (foo) { - if (false) { - // do nothing - } else { - throw new Error('err') - } -} -// Message: Missing JSDoc @throws declaration. - -/** - * - */ -function quux (foo) { - try { - throw new Error('err') - } catch(e) { - throw new Error(e.message) - } -} -// Message: Missing JSDoc @throws declaration. - -/** - * - */ -function quux (foo) { - try { - // do nothing - } finally { - throw new Error(e.message) - } -} -// Message: Missing JSDoc @throws declaration. - -/** - * - */ -function quux (foo) { - const a = 'b' - switch(a) { - case 'b': - throw new Error('err') - } -} -// Message: Missing JSDoc @throws declaration. - -/** - * @throws - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"throws":false}}} -// Message: Unexpected tag `@throws` - -/** - * - */ -const directThrowAfterArrow = (b) => { - const a = () => {}; - if (b) { - throw new Error('oops') - } - return a; -}; -// Message: Missing JSDoc @throws declaration. - -/** - * @throws {never} - */ -function quux (foo) { - throw new Error('err') -} -// Message: JSDoc @throws declaration set to "never" but throw value found. -```` - -The following patterns are not considered problems: - -````js -/** - * @throws An error. - */ -function quux () { - throw new Error('err') -} - -/** - * - */ -function quux (foo) { - try { - throw new Error('err') - } catch(e) {} -} - -/** - * @throws {object} - */ -function quux (foo) { - throw new Error('err') -} - -/** - * @inheritdoc - */ -function quux (foo) { - throw new Error('err') -} - -/** - * @abstract - */ -function quux (foo) { - throw new Error('err') -} - -/** - * - */ -function quux (foo) { -} - -/** - * @type {MyCallback} - */ -function quux () { - throw new Error('err') -} -// "jsdoc/require-throws": ["error"|"warn", {"exemptedBy":["type"]}] - -/** - * - */ -const itself = (n) => n; - -/** - * Not tracking on nested function - */ -const nested = () => () => {throw new Error('oops');}; - -/** - */ -async function foo() { - throw Error("bar"); -} - -/** - * @throws {never} - */ -function quux (foo) { -} -```` - - - - -### require-yields - -Requires that yields are documented. - -Will also report if multiple `@yields` tags are present. - -See the `next`, `forceRequireNext`, and `nextWithGeneratorTag` options for an -option to expect a non-standard `@next` tag. - - - -#### Options - -- `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the - document block avoids the need for a `@yields`. Defaults to an array - with `inheritdoc`. If you set this array, it will overwrite the default, - so be sure to add back `inheritdoc` if you wish its presence to cause - exemption of the rule. -- `forceRequireYields` - Set to `true` to always insist on - `@yields` documentation for generators even if there are only - expressionless `yield` statements in the function. May be desired to flag - that a project is aware of an `undefined`/`void` yield. Defaults to - `false`. -- `contexts` - Set this to an array of strings representing the AST context - (or an object with `context` and `comment` properties) where you wish - the rule to be applied. - Overrides the default contexts (see below). Set to `"any"` if you want - the rule to apply to any jsdoc block throughout your files (as is necessary - for finding function blocks not attached to a function declaration or - expression, i.e., `@callback` or `@function` (or its aliases `@func` or - `@method`) (including those associated with an `@interface`). This - rule will only apply on non-default contexts when there is such a tag - present and the `forceRequireYields` option is set or if the - `withGeneratorTag` option is set with a present `@generator` tag - (since we are not checking against the actual `yield` values in these - cases). -- `withGeneratorTag` - If a `@generator` tag is present on a block, require - `@yields`/`@yield`. Defaults to `true`. See `contexts` to `any` if you want - to catch `@generator` with `@callback` or such not attached to a function. -- `next` - If `true`, this option will insist that any use of a `yield` return - value (e.g., `const rv = yield;` or `const rv = yield value;`) has a - (non-standard) `@next` tag (in addition to any `@yields` tag) so as to be - able to document the type expected to be supplied into the iterator - (the `Generator` iterator that is returned by the call to the generator - function) to the iterator (e.g., `it.next(value)`). The tag will not be - expected if the generator function body merely has plain `yield;` or - `yield value;` statements without returning the values. Defaults to - `false`. -- `forceRequireNext` - Set to `true` to always insist on - `@next` documentation even if there are no `yield` statements in the - function or none return values. May be desired to flag that a project is - aware of the expected yield return being `undefined`. Defaults to `false`. -- `nextWithGeneratorTag` - If a `@generator` tag is present on a block, require - (non-standard ) `@next` (see `next` option). This will require using `void` - or `undefined` in cases where generators do not use the `next()`-supplied - incoming `yield`-returned value. Defaults to `false`. See `contexts` to - `any` if you want to catch `@generator` with `@callback` or such not - attached to a function. - -||| -|---|---| -|Context|Generator functions (`FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled)| -|Tags|`yields`| -|Aliases|`yield`| -|Recommended|true| -| Options | `contexts`, `exemptedBy`, `withGeneratorTag`, `nextWithGeneratorTag`, `forceRequireYields`, `next` | -| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | - -The following patterns are considered problems: - -````js -/** - * - */ -function * quux (foo) { - - yield foo; -} -// Message: Missing JSDoc @yields declaration. - -/** - * @yields - */ -function * quux (foo) { - - const retVal = yield foo; -} -// "jsdoc/require-yields": ["error"|"warn", {"next":true}] -// Message: Missing JSDoc @next declaration. - -/** - * @yields - */ -function * quux (foo) { - - const retVal = yield; -} -// "jsdoc/require-yields": ["error"|"warn", {"next":true}] -// Message: Missing JSDoc @next declaration. - -/** - * @yields {void} - */ -function * quux () { -} -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireNext":true}] -// Message: Missing JSDoc @next declaration. - -/** - * @yields {void} - */ -function * quux () { - yield; -} -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireNext":true}] -// Message: Missing JSDoc @next declaration. - -/** - * - */ -function * quux (foo) { - - const a = yield foo; -} -// Message: Missing JSDoc @yields declaration. - -/** - * - */ -function * quux (foo) { - yield foo; -} -// Settings: {"jsdoc":{"tagNamePreference":{"yields":"yield"}}} -// Message: Missing JSDoc @yield declaration. - -/** - * @yields - */ -function * quux (foo) { - const val = yield foo; -} -// Settings: {"jsdoc":{"tagNamePreference":{"next":"yield-returns"}}} -// "jsdoc/require-yields": ["error"|"warn", {"next":true}] -// Message: Missing JSDoc @yield-returns declaration. - -/** - * @yields - * @next - */ -function * quux () { - const ret = yield 5; -} -// Settings: {"jsdoc":{"tagNamePreference":{"next":false}}} -// "jsdoc/require-yields": ["error"|"warn", {"next":true}] -// Message: Unexpected tag `@next` - -/** - * - */ -function * quux() { - yield 5; -} -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] -// Message: Missing JSDoc @yields declaration. - -/** - * - */ -function * quux() { - yield; -} -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] -// Message: Missing JSDoc @yields declaration. - -/** - * - */ -const quux = async function * () { - yield; -} -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] -// Message: Missing JSDoc @yields declaration. - -/** - * - */ -async function * quux () { - yield; -} -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] -// Message: Missing JSDoc @yields declaration. - -/** - * - */ -function * quux () { - yield; -} -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"forceRequireYields":true}] -// Message: Missing JSDoc @yields declaration. - -/** - * @function - * @generator - */ -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"forceRequireYields":true}] -// Message: Missing JSDoc @yields declaration. - -/** - * @callback - * @generator - */ -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"forceRequireYields":true}] -// Message: Missing JSDoc @yields declaration. - -/** - * @yields {undefined} - * @yields {void} - */ -function * quux (foo) { - - return foo; -} -// Message: Found more than one @yields declaration. - -/** - * @yields - */ -function * quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"yields":false}}} -// Message: Unexpected tag `@yields` - -/** - * @param foo - */ -function * quux (foo) { - yield 'bar'; -} -// "jsdoc/require-yields": ["error"|"warn", {"exemptedBy":["notPresent"]}] -// Message: Missing JSDoc @yields declaration. - -/** - * @param {array} a - */ -async function * foo(a) { - return; -} -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] -// Message: Missing JSDoc @yields declaration. - -/** - * @param {array} a - */ -async function * foo(a) { - yield Promise.all(a); -} -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] -// Message: Missing JSDoc @yields declaration. - -class quux { - /** - * - */ - * quux () { - yield; - } -} -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"forceRequireYields":true}] -// Message: Missing JSDoc @yields declaration. - -/** - * @param {array} a - */ -async function * foo(a) { - yield Promise.all(a); -} -// Message: Missing JSDoc @yields declaration. - -/** - * @generator - */ -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"withGeneratorTag":true}] -// Message: Missing JSDoc @yields declaration. - -/** - * @generator - * @yields - */ -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"nextWithGeneratorTag":true}] -// Message: Missing JSDoc @next declaration. - -/** - * - */ -function * quux () { - if (true) { - yield; - } - yield true; -} -// Message: Missing JSDoc @yields declaration. - -/** - * - */ -function * quux () { - try { - yield true; - } catch (err) { - } - yield; -} -// Message: Missing JSDoc @yields declaration. - -/** - * - */ -function * quux () { - try { - } finally { - yield true; - } - yield; -} -// Message: Missing JSDoc @yields declaration. - -/** - * - */ -function * quux () { - try { - yield; - } catch (err) { - } - yield true; -} -// Message: Missing JSDoc @yields declaration. - -/** - * - */ -function * quux () { - try { - something(); - } catch (err) { - yield true; - } - yield; -} -// Message: Missing JSDoc @yields declaration. - -/** - * - */ -function * quux () { - switch (true) { - case 'abc': - yield true; - } - yield; -} -// Message: Missing JSDoc @yields declaration. - -/** - * - */ -function * quux () { - switch (true) { - case 'abc': - yield; - } - yield true; -} -// Message: Missing JSDoc @yields declaration. - -/** - * - */ -function * quux () { - for (const i of abc) { - yield true; - } - yield; -} -// Message: Missing JSDoc @yields declaration. - -/** - * - */ -function * quux () { - for (const a in b) { - yield true; - } -} -// Message: Missing JSDoc @yields declaration. - -/** - * - */ -function * quux () { - for (let i=0; i - -### require-yields-check - -Ensures that if a `@yields` is present that a `yield` (or `yield` with a -value) is present in the function body (or that if a `@next` is present that -there is a `yield` with a return value present). - -Please also note that JavaScript does allow generators not to have `yield` -(e.g., with just a return or even no explicit return), but if you want to -enforce that all generators (except wholly empty ones) have a `yield` in the -function body, you can use the ESLint -[`require-yield`](https://eslint.org/docs/rules/require-yield) rule. In -conjunction with this, you can also use the `checkGeneratorsOnly` option -as an optimization so that this rule won't need to do its own checking within -function bodies. - -Will also report if multiple `@yields` tags are present. - - - -#### Options - -- `checkGeneratorsOnly` - Avoids checking the function body and merely insists - that all generators have `@yields`. This can be an optimization with the - ESLint `require-yield` rule, as that rule already ensures a `yield` is - present in generators, albeit assuming the generator is not empty). - Defaults to `false`. -- `next` - If `true`, this option will insist that any use of a (non-standard) - `@next` tag (in addition to any `@yields` tag) will be matched by a `yield` - which uses a return value in the body of the generator (e.g., - `const rv = yield;` or `const rv = yield value;`). This (non-standard) - tag is intended to be used to indicate a type and/or description of - the value expected to be supplied by the user when supplied to the iterator - by its `next` method, as with `it.next(value)` (with the iterator being - the `Generator` iterator that is returned by the call to the generator - function). This option will report an error if the generator function body - merely has plain `yield;` or `yield value;` statements without returning - the values. Defaults to `false`. - -||| -|---|---| -|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| -|Tags|`yields`| -|Aliases|`yield`| -|Recommended|true| -|Options|`checkGeneratorsOnly`| -The following patterns are considered problems: - -````js -/** - * @yields - */ -function * quux (foo) { - -} -// Message: JSDoc @yields declaration present but yield expression not available in function. - -/** - * @yields - */ -function quux (foo) { - -} -// "jsdoc/require-yields-check": ["error"|"warn", {"checkGeneratorsOnly":true}] -// Message: JSDoc @yields declaration present but yield expression not available in function. - -/** - * @next - */ -function quux (foo) { - -} -// "jsdoc/require-yields-check": ["error"|"warn", {"checkGeneratorsOnly":true,"next":true}] -// Message: JSDoc @next declaration present but yield expression with return value not available in function. - -/** - * @next {SomeType} - */ -function * quux (foo) { - -} -// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] -// Message: JSDoc @next declaration present but yield expression with return value not available in function. - -/** - * @next {SomeType} - */ -function * quux (foo) { - yield; -} -// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] -// Message: JSDoc @next declaration present but yield expression with return value not available in function. - -/** - * @next {SomeType} - */ -function * quux (foo) { - yield 5; -} -// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] -// Message: JSDoc @next declaration present but yield expression with return value not available in function. - -/** - * @yield - */ -function * quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"yields":"yield"}}} -// Message: JSDoc @yield declaration present but yield expression not available in function. - -/** - * @yield-returns {Something} - */ -function * quux (foo) { - yield; -} -// Settings: {"jsdoc":{"tagNamePreference":{"next":"yield-returns"}}} -// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] -// Message: JSDoc @yield-returns declaration present but yield expression with return value not available in function. - -/** - * @yields {undefined} Foo. - * @yields {String} Foo. - */ -function * quux () { - - yield foo; -} -// Message: Found more than one @yields declaration. - -class Foo { - /** - * @yields {string} - */ - * bar () { - } -} -// Message: JSDoc @yields declaration present but yield expression not available in function. - -/** - * @yields - */ -function * quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"yields":false}}} -// Message: Unexpected tag `@yields` - -/** - * @next - */ -function * quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"next":false}}} -// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] -// Message: Unexpected tag `@next` - -/** - * @yields {string} - */ -function * f () { - function * g() { - yield 'foo' - } -} -// Message: JSDoc @yields declaration present but yield expression not available in function. - -/** - * @yields {Promise} - */ -async function * quux() {} -// Message: JSDoc @yields declaration present but yield expression not available in function. - -/** - * @yields {Promise} - */ -const quux = async function * () {} -// Message: JSDoc @yields declaration present but yield expression not available in function. - -/** - * @yields {never} Foo. - */ -function * quux () { - yield 5; -} -// Message: JSDoc @yields declaration set with "never" but yield expression is present in function. - -/** - * @next {never} - */ -function * quux (foo) { - const a = yield; -} -// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] -// Message: JSDoc @next declaration set with "never" but yield expression with return value is present in function. -```` - -The following patterns are not considered problems: - -````js -/** - * @yields Foo. - */ -function * quux () { - - yield foo; -} - -/** - * @yields {string} Foo. - */ -function * quux () { - - yield foo; -} - -/** - * @yields {string} Foo. - */ -function * quux () { - - yield foo; -} - -/** - * - */ -function * quux () { -} - -/** - * @yields {undefined} Foo. - */ -function * quux () {} - -/** - * @yields { void } Foo. - */ -function quux () {} - -/** - * @yields Foo. - * @abstract - */ -function * quux () { - throw new Error('must be implemented by subclass!'); -} - -/** - * @yields Foo. - * @virtual - */ -function * quux () { - throw new Error('must be implemented by subclass!'); -} - -/** - * @yields Foo. - * @constructor - */ -function * quux () { -} - -/** - * @interface - */ -class Foo { - /** - * @yields {string} - */ - * bar () { - } -} - -/** - * @record - */ -class Foo { - /** - * @yields {string} - */ - * bar () { - } -} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @yields {undefined} Foo. - */ -function * quux () { -} - -/** - * @yields {void} Foo. - */ -function * quux () { -} - -/** - * @yields {never} Foo. - */ -function * quux () { -} - -/** - * @yields {void} Foo. - */ -function * quux () { - yield undefined; -} - -/** - * @yields {void} Foo. - */ -function * quux () { - yield; -} - -/** - * - */ -function * quux () { - yield undefined; -} - -/** - * - */ -function * quux () { - yield; -} - -/** - * @yields {true} - */ -function * quux () { - try { - yield true; - } catch (err) { - } - yield; -} - -/** - * @yields {true} - */ -function * quux () { - try { - } finally { - yield true; - } - yield; -} - -/** - * @yields {true} - */ -function * quux () { - try { - yield; - } catch (err) { - } - yield true; -} - -/** - * @yields {true} - */ -function * quux () { - try { - something(); - } catch (err) { - yield true; - } - yield; -} - -/** - * @yields {true} - */ -function * quux () { - switch (true) { - case 'abc': - yield true; - } - yield; -} - -/** - * @yields {true} - */ -function * quux () { - switch (true) { - case 'abc': - yield; - } - yield true; -} - -/** - * @yields {true} - */ -function * quux () { - for (const i of abc) { - yield true; - } - yield; -} - -/** - * @yields {true} - */ -function * quux () { - for (const a in b) { - yield true; - } -} - -/** - * @yields {true} - */ -function * quux () { - for (let i=0; i - -### sort-tags - -Sorts tags by a specified sequence according to tag name. - -(Default order originally inspired by [`@homer0/prettier-plugin-jsdoc`](https://github.com/homer0/packages/tree/main/packages/public/prettier-plugin-jsdoc).) - -Optionally allows adding line breaks between tag groups and/or between tags -within a tag group. - -Please note: unless you are disabling reporting of line breaks, this rule -should not be used with the default "never" or "always" options of -`tag-lines` (a rule enabled by default with the recommended config) as -that rule adds its own line breaks after tags and may interfere with any -line break setting this rule will attempt to do when not disabled. - -You may, however, safely set the "any" option in that rule along with -`startLines` and/or `endLines`. - - - -#### Options - - - -##### tagSequence - -An array of tag group objects indicating the preferred sequence for sorting tags. - -Each item in the array should be an object with a `tags` property set to an array -of tag names. - -Tag names earlier in the list will be arranged first. The relative position of -tags of the same name will not be changed. - -Earlier groups will also be arranged before later groups, but with the added -feature that additional line breaks may be added between (or before or after) -such groups (depending on the setting of `linesBetween`). - -Tag names not in the list will be grouped together at the end. The pseudo-tag -`-other` can be used to place them anywhere else if desired. The tags will be -placed in their order of appearance, or alphabetized if `alphabetizeExtras` -is enabled, see more below about that option. - -Defaults to the array below (noting that it is just a single tag group with -no lines between groups by default). - -Please note that this order is still experimental, so if you want to retain -a fixed order that doesn't change into the future, supply your own -`tagSequence`. - -```js -[{tags: [ - // Brief descriptions - 'summary', - 'typeSummary', - - // Module/file-level - 'module', - 'exports', - 'file', - 'fileoverview', - 'overview', - - // Identifying (name, type) - 'typedef', - 'interface', - 'record', - 'template', - 'name', - 'kind', - 'type', - 'alias', - 'external', - 'host', - 'callback', - 'func', - 'function', - 'method', - 'class', - 'constructor', - - // Relationships - 'modifies', - 'mixes', - 'mixin', - 'mixinClass', - 'mixinFunction', - 'namespace', - 'borrows', - 'constructs', - 'lends', - 'implements', - 'requires', - - // Long descriptions - 'desc', - 'description', - 'classdesc', - 'tutorial', - 'copyright', - 'license', - - // Simple annotations - 'const', - 'constant', - 'final', - 'global', - 'readonly', - 'abstract', - 'virtual', - 'var', - 'member', - 'memberof', - 'memberof!', - 'inner', - 'instance', - 'inheritdoc', - 'inheritDoc', - 'override', - 'hideconstructor', - - // Core function/object info - 'param', - 'arg', - 'argument', - 'prop', - 'property', - 'return', - 'returns', - - // Important behavior details - 'async', - 'generator', - 'default', - 'defaultvalue', - 'enum', - 'augments', - 'extends', - 'throws', - 'exception', - 'yield', - 'yields', - 'event', - 'fires', - 'emits', - 'listens', - 'this', - - // Access - 'static', - 'private', - 'protected', - 'public', - 'access', - 'package', - - '-other', - - // Supplementary descriptions - 'see', - 'example', - - // METADATA - - // Other Closure (undocumented) metadata - 'closurePrimitive', - 'customElement', - 'expose', - 'hidden', - 'idGenerator', - 'meaning', - 'ngInject', - 'owner', - 'wizaction', - - // Other Closure (documented) metadata - 'define', - 'dict', - 'export', - 'externs', - 'implicitCast', - 'noalias', - 'nocollapse', - 'nocompile', - 'noinline', - 'nosideeffects', - 'polymer', - 'polymerBehavior', - 'preserve', - 'struct', - 'suppress', - 'unrestricted', - - // @homer0/prettier-plugin-jsdoc metadata - 'category', - - // Non-Closure metadata - 'ignore', - 'author', - 'version', - 'variation', - 'since', - 'deprecated', - 'todo', -]}]; -``` - - - -##### alphabetizeExtras - -Defaults to `false`. Alphabetizes any items not within `tagSequence` after any -items within `tagSequence` (or in place of the special `-other` pseudo-tag) -are sorted. - -If you want all your tags alphabetized, you can supply an empty array for -`tagSequence` along with setting this option to `true`. - - - -##### linesBetween - -Indicates the number of lines to be added between tag groups. Defaults to 1. -Do not set to 0 or 2+ if you are using `tag-lines` and `"always"` and do not -set to 1+ if you are using `tag-lines` and `"never"`. - - - -##### reportTagGroupSpacing - -Whether to enable reporting and fixing of line breaks between tag groups -as set by `linesBetween`. Defaults to `true`. Note that the very last tag -will not have spacing applied regardless. For adding line breaks there, you -may wish to use the `endLines` option of the `tag-lines` rule. - - - -##### reportIntraTagGroupSpacing - -Whether to enable reporting and fixing of line breaks within tags of a given -tag group. Defaults to `true` which will remove any line breaks at the end of -such tags. Do not use with `true` if you are using `tag-lines` and `always`. - -||| -|---|---| -|Context|everywhere| -|Tags|any| -|Recommended|false| -|Settings|| -|Options|`tagSequence`, `alphabetizeExtras`, `linesBetween`, `reportTagGroupSpacing`, `reportIntraTagGroupSpacing`| - -The following patterns are considered problems: - -````js -/** - * @returns {string} - * @param b - * @param a - */ -function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo - -/** - * Some description - * @returns {string} - * @param b - * @param a - */ -function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo - -/** - * @returns {string} - * @param b A long - * description - * @param a - */ -function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo - -/** - * Some description - * @returns {string} - * @param b A long - * description - * @param a - */ -function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo - -/** - * @param b A long - * description - * @returns {string} - * @param a - */ -function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo - -/** - * @def - * @xyz - * @abc - */ -function quux () {} -// "jsdoc/sort-tags": ["error"|"warn", {"alphabetizeExtras":true}] -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo - -/** - * @xyz - * @def - * @abc - */ -function quux () {} -// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["def","xyz","abc"]}]}] -// Message: Tags are not in the prescribed order: def, xyz, abc - -/** - * @xyz - * @def - * @abc - */ -function quux () {} -// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["def","xyz"]},{"tags":["abc"]}]}] -// Message: Tags are not in the prescribed order: def, xyz, abc - -/** - * @returns {string} - * @ignore - * @param b A long - * description - * @param a - * @module - */ -function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo - -/** - * @xyz - * @abc - * @abc - * @def - * @xyz - */ -function quux () {} -// "jsdoc/sort-tags": ["error"|"warn", {"alphabetizeExtras":true}] -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo - -/** - * @param b A long - * description - * @module - */ -function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo - -/** - * @def - * @xyz - * @abc - */ -function quux () {} -// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":2,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] -// Message: Tag groups do not have the expected whitespace - -/** - * @def - * @xyz - * - * - * @abc - */ -function quux () {} -// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":1,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] -// Message: Tag groups do not have the expected whitespace - -/** - * @def - * @xyz A multiline - * description - * @abc - */ -function quux () {} -// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":2,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] -// Message: Tag groups do not have the expected whitespace - -/** - * @def - * @xyz - * @xyz - * - * - * @abc - */ -function quux () {} -// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":1,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] -// Message: Tag groups do not have the expected whitespace - -/** - * Foo - * - * @param {( - * req: express.Request, - * done: (error: any, user?: any, info?: any) => void - * ) => void} verify - callback to excute custom authentication logic - * @see https://github.com/jaredhanson/passport/blob/v0.4.1/lib/middleware/authenticate.js#L217 - * - */ -// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["since","access"]},{"tags":["class","augments","mixes"]},{"tags":["alias","memberof"]},{"tags":["see","link","global"]},{"tags":["fires","listens"]},{"tags":["param"]},{"tags":["yields"]},{"tags":["returns"]}]}] -// Message: Tags are not in the prescribed order: since, access, class, augments, mixes, alias, memberof, see, link, global, fires, listens, param, yields, returns - -/** - * Summary. (use period) - * - * Description. (use period) - * - * @since 1.0.1 - * @access private - * - * @class - * @mixes mixin - * - * @alias realName - * @memberof namespace - * - * @see Function/class relied on - * @global - * - * @tutorial Asd - * @license MIT - * - * @fires eventName - * @fires className#eventName - * @listens event:eventName - * @listens className~event:eventName - * - * @tutorial Asd - * @license MIT - * - * @yields {string} Yielded value description. - * - * @param {string} var1 - Description. - * @param {string} var2 - Description of optional variable. - * @param {string} var3 - Description of optional variable with default variable. - * @param {object} objectVar - Description. - * @param {string} objectVar.key - Description of a key in the objectVar parameter. - * - * @returns {string} Return value description. - */ -// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["since","access"]},{"tags":["class","augments","mixes"]},{"tags":["alias","memberof"]},{"tags":["see","link","global"]},{"tags":["fires","listens"]},{"tags":["param"]},{"tags":["yields"]},{"tags":["returns"]}]}] -// Message: Tags are not in the prescribed order: since, access, class, augments, mixes, alias, memberof, see, link, global, fires, listens, param, yields, returns - -/** - * @def - * @zzz - * @abc - */ -function quux () {} -// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":1,"tagSequence":[{"tags":["qrs"]},{"tags":["def","-other","xyz"]},{"tags":["abc"]}]}] -// Message: Tag groups do not have the expected whitespace - -/** - * @xyz - * @def - * @abc - */ -function quux () {} -// "jsdoc/sort-tags": ["error"|"warn", {"alphabetizeExtras":true,"tagSequence":[]}] -// Message: Tags are not in the prescribed order: (alphabetical) - -/** - * @example - * enum Color { Red, Green, Blue } - * faker.helpers.enumValue(Color) // 1 (Green) - * - * enum Direction { North = 'North', South = 'South'} - * faker.helpers.enumValue(Direction) // 'South' - * - * enum HttpStatus { Ok = 200, Created = 201, BadRequest = 400, Unauthorized = 401 } - * faker.helpers.enumValue(HttpStatus) // 200 (Ok) - * @since 8.0.0 - */ -// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["internal"]},{"tags":["template","param"]},{"tags":["returns"]},{"tags":["throws"]},{"tags":["see"]},{"tags":["example"]},{"tags":["since"]},{"tags":["deprecated"]}]}] -// Message: Tag groups do not have the expected whitespace -```` - -The following patterns are not considered problems: - -````js -/** - * @param b - * @param a - * @returns {string} - */ -function quux () {} - -/** - * @abc - * @def - * @xyz - */ -function quux () {} -// "jsdoc/sort-tags": ["error"|"warn", {"alphabetizeExtras":true}] - -/** - * @def - * @xyz - * @abc - */ -function quux () {} -// "jsdoc/sort-tags": ["error"|"warn", {"alphabetizeExtras":false}] - -/** - * @def - * @xyz - * @abc - */ -function quux () {} -// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["def","xyz","abc"]}]}] - -/** @def */ -function quux () {} - -/** - * @def - * @xyz - * - * @abc - */ -function quux () {} -// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":1,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] - -/** - * @def - * @xyz A multiline - * description - * - * @abc - */ -function quux () {} -// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":1,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] - -/** - * Foo - * - * @see https://github.com/jaredhanson/passport/blob/v0.4.1/lib/middleware/authenticate.js#L217 - * - * @param {( - * req: express.Request, - * done: (error: any, user?: any, info?: any) => void - * ) => void} verify - callback to excute custom authentication logic - */ -// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["since","access"]},{"tags":["class","augments","mixes"]},{"tags":["alias","memberof"]},{"tags":["see","link","global"]},{"tags":["fires","listens"]},{"tags":["param"]},{"tags":["yields"]},{"tags":["returns"]}]}] - -/** - * Constructor. - * - * @public - * - * @param {string} [message] - Error message. - */ -// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["since","access"]},{"tags":["class","augments","mixes"]},{"tags":["alias","memberof"]},{"tags":["public","protected","private","override"]},{"tags":["override","async"]},{"tags":["see","link","global"]},{"tags":["param"]},{"tags":["yields"]},{"tags":["returns"]},{"tags":["fires","-other","listens"]}]}] - -/** - * @param options.mode The mode to generate the birthdate. Supported modes are `'age'` and `'year'` . - * - * There are two modes available `'age'` and `'year'`: - * - `'age'`: The min and max options define the age of the person (e.g. `18` - `42`). - * - `'year'`: The min and max options define the range the birthdate may be in (e.g. `1900` - `2000`). - * - * Defaults to `year`. - * - * @example - */ -// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["internal"]},{"tags":["template","param"]},{"tags":["returns"]},{"tags":["throws"]},{"tags":["see"]},{"tags":["example"]},{"tags":["since"]},{"tags":["deprecated"]}]}] - -/** - * @example - * enum Color { Red, Green, Blue } - * faker.helpers.enumValue(Color) // 1 (Green) - * - * enum Direction { North = 'North', South = 'South'} - * faker.helpers.enumValue(Direction) // 'South' - * - * enum HttpStatus { Ok = 200, Created = 201, BadRequest = 400, Unauthorized = 401 } - * faker.helpers.enumValue(HttpStatus) // 200 (Ok) - * - * @since 8.0.0 - */ -// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["internal"]},{"tags":["template","param"]},{"tags":["returns"]},{"tags":["throws"]},{"tags":["see"]},{"tags":["example"]},{"tags":["since"]},{"tags":["deprecated"]}]}] - -/** - * @def - * @xyz - * @abc - */ -function quux () {} -// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":2,"reportTagGroupSpacing":false,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] -```` - - - - -### tag-lines - -Enforces lines (or no lines) between tags. - -If you only want lines preceding all tags or after all tags, you can use -the "any" option along with `startLines` and/or `endLines`. - -The "always" or "never" options of this rule should not -be used with the linebreak-setting options of the `sort-tags` rule as both -may try to impose a conflicting number of lines. - - - -#### Options - -The first option is a single string set to "always", "never", or "any" -(defaults to "never"). - -"any" is only useful with `tags` (allowing non-enforcement of lines except -for particular tags) or with `startLines` or `endLines`. It is also -necessary if using the linebreak-setting options of the `sort-tags` rule -so that the two rules won't conflict in both attempting to set lines -between tags. - -The second option is an object with the following optional properties. - - - -##### count (defaults to 1) - -Use with "always" to indicate the number of lines to require be present. - - - -##### applyToEndTag (defaults to true) - -Set to `false` and use with "always" to indicate the normal lines to be -added after tags should not be added after the final tag. - - - -##### startLines (defaults to 0) - -If not set to `null`, will enforce end lines to the given count before the -first tag only, unless there is only whitespace content, in which case, -a line count will not be enforced. - - - -##### endLines (defaults to 0) - -If not set to `null`, will enforce end lines to the given count on the -final tag only. - - - -##### tags (default to empty object) - -Overrides the default behavior depending on specific tags. - -An object whose keys are tag names and whose values are objects with the -following keys: - -1. `lines` - Set to `always`, `never`, or `any` to override. -2. `count` - Overrides main `count` (for "always") - -||| -|---|---| -|Context|everywhere| -|Tags|Any| -|Recommended|true| -|Settings|N/A| -|Options|(a string matching `"always"`, `"never"`, or `"any"` and optional object with `count`, `applyToEndTag`, `startLines`, `endLines`)| - -The following patterns are considered problems: - -````js -/** - * Some description - * @param {string} a - * @param {number} b - */ -// "jsdoc/tag-lines": ["error"|"warn", "always"] -// Message: Expected 1 line between tags but found 0 - -/** - * Some description - * @param {string} a - * @param {number} b - */ -// "jsdoc/tag-lines": ["error"|"warn", "always",{"count":2}] -// Message: Expected 2 lines between tags but found 0 - -/** - * Some description - * @param {string} a - * - * @param {number} b - */ -// "jsdoc/tag-lines": ["error"|"warn", "always",{"count":2}] -// Message: Expected 2 lines between tags but found 1 - -/** - * Some description - * @param {string} a - * @param {number} b - */ -// "jsdoc/tag-lines": ["error"|"warn", "always",{"applyToEndTag":false}] -// Message: Expected 1 line between tags but found 0 - -/** - * Some description - * @param {string} a - * - * @param {number} b - * - */ -// "jsdoc/tag-lines": ["error"|"warn", "never"] -// Message: Expected no lines between tags - -/** - * Some description - * @param {string} a - * - * @param {number} b - * - */ -// Message: Expected no lines between tags - -/** - * Some description - * @param {string} a - * - * @param {number} b - * @param {number} c - */ -// "jsdoc/tag-lines": ["error"|"warn", "always"] -// Message: Expected 1 line between tags but found 0 - -/** - * Some description - * @param {string} a - * @param {number} b - */ -// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"param":{"lines":"always"}}}] -// Message: Expected 1 line between tags but found 0 - -/** - * Some description - * @param {string} a - * @param {number} b - */ -// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"param":{"lines":"always"}}}] -// Message: Expected 1 line between tags but found 0 - -/** - * Some description - * @param {string} a - * @param {number} b - * - */ -// "jsdoc/tag-lines": ["error"|"warn", "always",{"tags":{"param":{"lines":"never"}}}] -// Message: Expected no lines between tags - -/** - * Some description - * @param {string} a - * - * @param {number} b - */ -// "jsdoc/tag-lines": ["error"|"warn", "never",{"count":2,"tags":{"param":{"lines":"always"}}}] -// Message: Expected 2 lines between tags but found 1 - -/** - * Some description - * @param {string} a - * - * @param {number} b - */ -// "jsdoc/tag-lines": ["error"|"warn", "never",{"count":5,"tags":{"param":{"count":2,"lines":"always"}}}] -// Message: Expected 2 lines between tags but found 1 - -/** - * Some description - * @param {string} a - * @param {number} b - */ -// "jsdoc/tag-lines": ["error"|"warn", "always",{"tags":{"anotherTag":{"lines":"never"}}}] -// Message: Expected 1 line between tags but found 0 - -/** - * Some description - * @param {string} A broken up - * - * tag description. - * @param {number} b - * - */ -// "jsdoc/tag-lines": ["error"|"warn", "always",{"endLines":null}] -// Message: Expected 1 line between tags but found 0 - -/** - * Some description - * @param {number} b - * - * @returns {string} A broken up - * - * tag description. - */ -// "jsdoc/tag-lines": ["error"|"warn", "always"] -// Message: Expected 1 line between tags but found 0 - -/** - * Some description - * @param {string} a - * @param {string} b - * - * @returns {SomeType} An extended - * description. - * - * This is still part of `@returns`. - * - */ -// "jsdoc/tag-lines": ["error"|"warn", "any",{"endLines":0}] -// Message: Expected 0 trailing lines - -/** - * Some description - * @param {string} a - * @param {string} b - * - * @returns {SomeType} An extended - * description. - * - * This is still part of `@returns`. - * - * - * - */ -// "jsdoc/tag-lines": ["error"|"warn", "any",{"endLines":1}] -// Message: Expected 1 trailing lines - -/** - * Some description - * @param {string} a - * @param {string} b - * - * @returns {SomeType} An extended - * description. - * - * This is still part of `@returns`. - * - */ -// "jsdoc/tag-lines": ["error"|"warn", "any",{"endLines":2}] -// Message: Expected 2 trailing lines - -/** - * Some description - * - * - * @param {string} a - */ -// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":1}] -// Message: Expected only 1 line after block description - -/** - * Some description - * - * @param {string} a - */ -// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":0}] -// Message: Expected only 0 line after block description - -/** - * Some description - * - * @param {string} a - */ -// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":2}] -// Message: Expected 2 lines after block description - -/** - * Some description - * @param {string} a - */ -// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":1}] -// Message: Expected 1 lines after block description -```` - -The following patterns are not considered problems: - -````js -/** - * Some description - * @param {string} a - * @param {number} b - */ - -/** - * Some description - * @param {string} a - * @param {number} b - */ -// "jsdoc/tag-lines": ["error"|"warn", "never"] - -/** - * @param {string} a - * - * @param {string} a - */ -// "jsdoc/tag-lines": ["error"|"warn", "always",{"applyToEndTag":false}] - -/** - * @param {string} a - */ -// "jsdoc/tag-lines": ["error"|"warn", "never",{"applyToEndTag":false}] - -/** @param {number} b */ -// "jsdoc/tag-lines": ["error"|"warn", "never",{"applyToEndTag":false}] - -/** - * Some description - * @param {string} a - * - * @param {number} b - * - */ -// "jsdoc/tag-lines": ["error"|"warn", "always",{"endLines":null}] - -/** - * Some description - * @param {string} a - * - * - * @param {number} b - * - * - */ -// "jsdoc/tag-lines": ["error"|"warn", "always",{"count":2,"endLines":null}] - -/** - * Some description - * @param {string} a - * @param {number} b - */ -// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"param":{"lines":"any"}}}] - -/** - * Some description - * @param {string} a - * @param {number} b - */ -// "jsdoc/tag-lines": ["error"|"warn", "always",{"tags":{"param":{"lines":"any"}}}] - -/** - * Some description - * @param {string} a - * @param {number} b - */ -// "jsdoc/tag-lines": ["error"|"warn", "always",{"tags":{"param":{"lines":"never"}}}] - -/** - * Some description - * @param {number} a - * @param {number} b - */ -// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"param":{"lines":"any"}}}] - -/** - * Some description - * @param {number} a - * - * @param {number} b - */ -// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"param":{"lines":"any"}}}] - -/** - * Some description - * @param {number} a - * @param {number} b - */ -// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"param":{"lines":"never"}}}] - -/** - * Some description - * @param {string} a - * - * - * @param {number} b - * - * - */ -// "jsdoc/tag-lines": ["error"|"warn", "never",{"count":5,"tags":{"param":{"count":2,"lines":"always"}}}] - -/** - * Some description - * @param {string} a - * @param {number} b - */ -// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"anotherTag":{"lines":"always"}}}] - -/** - * Some description - * @param {string} a - * - * This is still part of `@param`. - * @returns {SomeType} An extended - * description. - */ -// "jsdoc/tag-lines": ["error"|"warn", "never"] - -/** - * Some description - * @param {string} a - * @returns {SomeType} An extended - * description. - * - * This is still part of `@returns`. - */ -// "jsdoc/tag-lines": ["error"|"warn", "never"] - -/** - * Some description - * @param {string} a - * - * This is still part of `@param`. - * - * @returns {SomeType} An extended - * description. - * - */ -// "jsdoc/tag-lines": ["error"|"warn", "always",{"endLines":null}] - -/** - * Some description - * @param {string} a - * - * @returns {SomeType} An extended - * description. - * - * This is still part of `@returns`. - * - */ -// "jsdoc/tag-lines": ["error"|"warn", "always",{"endLines":null}] - -/** - * Some description - * @param {string} a - * @param {string} b - * - * @returns {SomeType} An extended - * description. - * - * This is still part of `@returns`. - */ -// "jsdoc/tag-lines": ["error"|"warn", "any",{"endLines":0}] - -/** - * Some description - * - * @param {string} a - */ -// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":1}] - -/** - * Some description - * @param {string} a - * - */ -// "jsdoc/tag-lines": ["error"|"warn", "any",{"endLines":1}] - -/** - * Some description - * - * - * @param {string} a - */ -// "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":null}] - -/** - * Some description - * @param {string} a - */ -// "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":null}] - -/** - * @param {string} input - */ -function processSass (input) { -} -// "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":1}] - -/** - * - * @param {string} input - */ -function processSass (input) { -} -// "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":1}] - -/** - * Toggles the deselect all icon button action - */ -function updateIconButton () { -} -// "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":1}] - -/** A class. */ -class _Foo { - /** @param arg Argument. */ - conststructor(arg: string) { - console.log(arg); - } -} -// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":1}] -```` - - - - -### text-escaping - -This rule can auto-escape certain characters that are input within block and -tag descriptions. - -This rule may be desirable if your text is known not to contain HTML or -Markdown and you therefore do not wish for it to be accidentally interpreted -as such by the likes of Visual Studio Code or if you wish to view it escaped -within it or your documentation. - - - -#### Options - - - -##### escapeHTML - -This option escapes all `<` and `&` characters (except those followed by -whitespace which are treated as literals by Visual Studio Code). - - - -##### escapeMarkdown - -This option escapes the first backtick (`` ` ``) in a paired sequence. - -||| -|---|---| -|Context|everywhere| -|Tags|``| -|Recommended|false| -|Settings|| -|Options|| - -The following patterns are considered problems: - -````js -/** - * Some things to escape: and > and `test` - */ -// Message: You must include either `escapeHTML` or `escapeMarkdown` - -/** - * Some things to escape: and > and ઼ and `test` - */ -// "jsdoc/text-escaping": ["error"|"warn", {"escapeHTML":true}] -// Message: You have unescaped HTML characters < or & - -/** - * Some things to escape: and > and `test` - */ -// "jsdoc/text-escaping": ["error"|"warn", {"escapeMarkdown":true}] -// Message: You have unescaped Markdown backtick sequences - -/** - * Some things to escape: - * and > and `test` - */ -// "jsdoc/text-escaping": ["error"|"warn", {"escapeHTML":true}] -// Message: You have unescaped HTML characters < or & - -/** - * Some things to escape: - * and > and `test` - */ -// "jsdoc/text-escaping": ["error"|"warn", {"escapeMarkdown":true}] -// Message: You have unescaped Markdown backtick sequences - -/** - * @param {SomeType} aName Some things to escape: and > and `test` - */ -// "jsdoc/text-escaping": ["error"|"warn", {"escapeHTML":true}] -// Message: You have unescaped HTML characters < or & in a tag - -/** - * @param {SomeType} aName Some things to escape: and > and `test` - */ -// "jsdoc/text-escaping": ["error"|"warn", {"escapeMarkdown":true}] -// Message: You have unescaped Markdown backtick sequences in a tag - -/** - * @param {SomeType} aName Some things to escape: - * and > and `test` - */ -// "jsdoc/text-escaping": ["error"|"warn", {"escapeHTML":true}] -// Message: You have unescaped HTML characters < or & in a tag - -/** - * @param {SomeType} aName Some things to escape: - * and > and `test` - */ -// "jsdoc/text-escaping": ["error"|"warn", {"escapeMarkdown":true}] -// Message: You have unescaped Markdown backtick sequences in a tag -```` - -The following patterns are not considered problems: - -````js -/** - * Some things to escape: <a> and > and `test` - */ -// "jsdoc/text-escaping": ["error"|"warn", {"escapeHTML":true}] - -/** - * Some things to escape: and > and \`test` - */ -// "jsdoc/text-escaping": ["error"|"warn", {"escapeMarkdown":true}] - -/** - * Some things to escape: < and & - */ -// "jsdoc/text-escaping": ["error"|"warn", {"escapeHTML":true}] - -/** - * Some things to escape: ` - */ -// "jsdoc/text-escaping": ["error"|"warn", {"escapeMarkdown":true}] - -/** - * @param {SomeType} aName Some things to escape: <a> and > and `test` - */ -// "jsdoc/text-escaping": ["error"|"warn", {"escapeHTML":true}] - -/** - * @param {SomeType} aName Some things to escape: and > and \`test` - */ -// "jsdoc/text-escaping": ["error"|"warn", {"escapeMarkdown":true}] - -/** - * @param {SomeType} aName Some things to escape: < and & - */ -// "jsdoc/text-escaping": ["error"|"warn", {"escapeHTML":true}] - -/** - * @param {SomeType} aName Some things to escape: ` - */ -// "jsdoc/text-escaping": ["error"|"warn", {"escapeMarkdown":true}] - -/** - * Nothing - * to escape - */ -// "jsdoc/text-escaping": ["error"|"warn", {"escapeHTML":true}] -```` - - - - -### valid-types - -Requires all types to be valid JSDoc, Closure, or TypeScript compiler types -without syntax errors. Note that what determines a valid type is handled by -our type parsing engine, [jsdoc-type-pratt-parser](https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser), -using [`settings.jsdoc.mode`](#user-content-eslint-plugin-jsdoc-settings-mode) to -determine whether to use jsdoc-type-pratt-parser's "permissive" parsing or -the stricter "jsdoc", "typescript", "closure" modes. - -The following tags have their "type" portions (the segment within brackets) -checked (though those portions may sometimes be confined to namepaths, -e.g., `@modifies`): - -1. Tags with required types: `@type`, `@implements` -1. Tags with required types in Closure or TypeScript: `@this`, - `@define` (Closure only) -1. Tags with optional types: `@enum`, `@member` (`@var`), `@typedef`, - `@augments` (or `@extends`), `@class` (or `@constructor`), `@constant` - (or `@const`), `@module` (module paths are not planned for TypeScript), - `@namespace`, `@throws`, `@exception`, `@yields` (or `@yield`), - `@modifies` (undocumented jsdoc); `@param` (`@arg`, `@argument`), - `@property` (`@prop`), and `@returns` (`@return`) also fall into this - category, but while this rule will check their type validity, we leave - the requiring of the type portion to the rules `require-param-type`, - `require-property-type`, and `require-returns-type`, respectively. -1. Tags with types that are available optionally in Closure: `@export`, - `@package`, `@private`, `@protected`, `@public`, `@static`; - `@template` (TypeScript also) -1. Tags with optional types that may take free text instead: `@throws` - -The following tags have their name/namepath portion (the non-whitespace -text after the tag name) checked: - -1. Name(path)-defining tags requiring namepath: `@event`, `@callback`, - `@exports` (JSDoc only), - `@external`, `@host`, `@name`, `@typedef` (JSDoc only), and `@template` - (TypeScript/Closure only); `@param` (`@arg`, `@argument`) and `@property` - (`@prop`) also fall into this category, but while this rule will check - their namepath validity, we leave the requiring of the name portion - to the rules `require-param-name` and `require-property-name`, - respectively. -1. Name(path)-defining tags (which may have value without namepath or their - namepath can be expressed elsewhere on the block): - `@class`, `@constructor`, `@constant`, `@const`, `@function`, `@func`, - `@method`, `@interface` (non-Closure only), `@member`, `@var`, - `@mixin`, `@namespace`, `@module` (module paths are not planned for - TypeScript) -1. Name(path)-pointing tags requiring namepath: `@alias`, `@augments`, - `@extends` (JSDoc only), `@lends`, `@memberof`, `@memberof!`, `@mixes`, `@requires`, `@this` - (jsdoc only) -1. Name(path)-pointing tags (which may have value without namepath or their - namepath can be expressed elsewhere on the block): `@listens`, `@fires`, - `@emits`. -1. Name(path)-pointing tags which may have free text or a namepath: `@see` -1. Name(path)-pointing tags (multiple names in one): `@borrows` - -...with the following applying to the above sets: - -- Expect tags in set 1-4 to have a valid namepath if present -- Prevent sets 2 and 4 from being empty by setting `allowEmptyNamepaths` to - `false` as these tags might have some indicative value without a path - or may allow a name expressed elsewhere on the block (but sets 1 and 3 will - always fail if empty) -- For the special case of set 6, i.e., - `@borrows as `, - check that both namepaths are present and valid and ensure there is an `as ` - between them. In the case of ``, it can be preceded by - one of the name path operators, `#`, `.`, or `~`. -- For the special case of `@memberof` and `@memberof!` (part of set 3), as - per the [specification](https://jsdoc.app/tags-memberof.html), they also - allow `#`, `.`, or `~` at the end (which is not allowed at the end of - normal paths). - -If you define your own tags, `settings.jsdoc.structuredTags` will allow -these custom tags to be checked, with the name portion of tags checked for -valid namepaths (based on the tag's `name` value), their type portions checked -for valid types (based on the tag's `type` value), and either portion checked -for presence (based on `false` `name` or `type` values or their `required` -value). See the setting for more details. - - - -#### Options - -- `allowEmptyNamepaths` (default: true) - Set to `false` to bulk disallow - empty name paths with namepath groups 2 and 4 (these might often be - expected to have an accompanying name path, though they have some - indicative value without one; these may also allow names to be defined - in another manner elsewhere in the block); you can use - `settings.jsdoc.structuredTags` with the `required` key set to "name" if you - wish to require name paths on a tag-by-tag basis. - -||| -|---|---| -|Context|everywhere| -|Tags|For name only unless otherwise stated: `alias`, `augments`, `borrows`, `callback`, `class` (for name and type), `constant` (for name and type), `enum` (for type), `event`, `external`, `fires`, `function`, `implements` (for type), `interface`, `lends`, `listens`, `member` (for name and type), `memberof`, `memberof!`, `mixes`, `mixin`, `modifies`, `module` (for name and type), `name`, `namespace` (for name and type), `param` (for name and type), `property` (for name and type), `returns` (for type), `see` (optionally for name), `this`, `throws` (for type), `type` (for type), `typedef` (for name and type), `yields` (for type)| -|Aliases|`extends`, `constructor`, `const`, `host`, `emits`, `func`, `method`, `var`, `arg`, `argument`, `prop`, `return`, `exception`, `yield`| -|Closure-only|For type only: `package`, `private`, `protected`, `public`, `static`| -|Recommended|true| -|Options|`allowEmptyNamepaths`| -|Settings|`mode`, `structuredTags`| - -The following patterns are considered problems: - -````js -/** - * @param {Array): !Array} - */ -parseArray = function(parser) { - return function(array) { - return array.map(parser); - }; -}; -// Settings: {"jsdoc":{"mode":"closure"}} -// Message: Syntax error in namepath: T<~ - -/** - * @template T, R<~ - * @param {function(!T): !R} parser - * @return {function(!Array): !Array} - */ -parseArray = function(parser) { - return function(array) { - return array.map(parser); - }; -}; -// Settings: {"jsdoc":{"mode":"closure"}} -// Message: Syntax error in namepath: R<~ - -/** - * @template T, R<~ - * @param {function(!T): !R} parser - * @return {function(!Array): !Array} - */ -parseArray = function(parser) { - return function(array) { - return array.map(parser); - }; -}; -// Settings: {"jsdoc":{"mode":"closure"}} -// Message: Syntax error in namepath: R<~ - -/** - * @suppress - */ -function quux () {} -// Settings: {"jsdoc":{"mode":"closure"}} -// Message: Tag @suppress must have a type in "closure" mode. - -/** - * @suppress {visibility} sth - */ -function quux () {} -// Settings: {"jsdoc":{"mode":"closure"}} -// Message: @suppress should not have a name in "closure" mode. - -/** - * @suppress {visibility|blah} - */ -function quux () {} -// Settings: {"jsdoc":{"mode":"closure"}} -// Message: Syntax error in supresss type: blah - -/** - * @param {Object[]} employees - * @param {string} employees[.name - The name of an employee. - */ -function quux () {} -// Message: Invalid name: unpaired brackets - -/** - * @param {Object[]} employees - * @param {string} [] - The name of an employee. - */ -function quux () {} -// Message: Invalid name: empty name - -/** - * @param {Object[]} employees - * @param {string} [] - The name of an employee. - */ -function quux () {} -// Message: Invalid name: empty name - -/** - * @param {string} [name=] - The name of an employee. - */ -function quux () {} -// Message: Invalid name: empty default value - -/** - * @param {string} [name==] - The name of an employee. - */ -function quux () {} -// Message: Invalid name: invalid default value syntax -```` - -The following patterns are not considered problems: - -````js -/** - * @param {Array} foo - */ -function quux() { - -} - -/** - * @param {string} foo - */ -function quux() { - -} - -/** - * @param foo - */ -function quux() { - -} - -/** - * @borrows foo as bar - */ -function quux() { - -} - -/** - * @borrows foo as #bar - */ -function quux() { - -} - -/** - * @see foo% - */ -function quux() { - -} - -/** - * @alias module:namespace.SomeClass#event:ext_anevent - */ -function quux() { - -} - -/** - * @callback foo - */ -function quux() { - -} - -/** - * @callback - */ -function quux() { - -} -// "jsdoc/valid-types": ["error"|"warn", {"allowEmptyNamepaths":true}] - -/** - * @class - */ -function quux() { - -} - -/** - * @see {@link foo} - */ -function quux() { - -} -// Settings: {"jsdoc":{"structuredTags":{"see":{"name":"namepath-referencing","required":["name"]}}}} - -/** - * - * @fires module:namespace.SomeClass#event:ext_anevent - */ -function quux() { - -} - -/** - * @memberof module:namespace.SomeClass~ - */ -function quux() { - -} - -/** - * @memberof! module:namespace.SomeClass. - */ -function quux() { - -} - -/** - * - */ -function quux() { - -} - -/** - * @aCustomTag - */ -function quux() { - -} - -/** - * @constant {string} - */ - const FOO = 'foo'; - -/** - * @constant {string} FOO - */ - const FOO = 'foo'; - -/** - * @extends Foo - */ - class Bar {}; - -/** - * @extends Foo - */ - class Bar {}; - -/** - * @extends {Foo} - */ - class Bar {}; -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @typedef {number | string} UserDefinedType - */ - -/** - * @typedef {number | string} - */ -let UserDefinedGCCType; -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @modifies {foo | bar} - */ -function quux (foo, bar, baz) {} - -/** - * @this {Navigator} - */ -function quux () {} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @export {SomeType} - */ -function quux () {} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @define {boolean} - */ -function quux () {} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @define - */ - function quux () {} - -/** - * Foo function. - * - * @interface foo - */ -function foo(bar) {} -// Settings: {"jsdoc":{"mode":"typescript"}} - -/** - * Foo function. - * - * @param {[number, string]} bar - The bar array. - */ -function foo(bar) {} -// Settings: {"jsdoc":{"mode":"typescript"}} - -/** - * Foo function. - * - * @param {[number, string]} bar - The bar array. - */ -function foo(bar) {} - -/** - * Foo function. - * - * @param {[number, string]} bar - The bar array. - */ -function foo(bar) {} -// Settings: {"jsdoc":{"mode":"permissive"}} - -/** - * @typedef {SomeType} - */ -function quux () {} -// Settings: {"jsdoc":{"mode":"closure"}} -// "jsdoc/valid-types": ["error"|"warn", {"allowEmptyNamepaths":false}] - -/** - * @private {SomeType} - */ -function quux () {} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @param - */ -function quux() { - -} -// "jsdoc/valid-types": ["error"|"warn", {"allowEmptyNamepaths":false}] - -/** - * @see - */ -function quux() { - -} -// Settings: {"jsdoc":{"structuredTags":{"see":{"name":"namepath-referencing"}}}} - -/** - * @template T, R - * @param {function(!T): !R} parser - * @return {function(!Array): !Array} - */ -parseArray = function(parser) { - return function(array) { - return array.map(parser); - }; -}; -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @template T, R<~ - * @param {function(!T): !R} parser - * @return {function(!Array): !Array} - */ -parseArray = function(parser) { - return function(array) { - return array.map(parser); - }; -}; -// Settings: {"jsdoc":{"mode":"jsdoc"}} - -/** - * @template {string} K - K must be a string or string literal - * @template {{ serious: string }} Seriousalizable - must have a serious property - * @param {K} key - * @param {Seriousalizable} object - */ -function seriousalize(key, object) { - // ???? -} -// Settings: {"jsdoc":{"mode":"typescript"}} - -/** - * @module foo/bar - */ - -/** - * @module module:foo/bar - */ - -/** - * @template invalid namepath,T Description - */ -function f() {} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * Description of complicated type. - * - * @template T Description of the T type parameter. - * @template U - Like other tags, this can have an optional hyphen before the description. - * @template V,W More parameters - * @template W,X - Also with a hyphen - */ -type ComplicatedType = never - -/** Multi-line typedef for an options object type. - * - * @typedef {{ - * prop: number - * }} MyOptions - */ - -/** - * @extends {SomeType} - */ -class quux {} -// Settings: {"jsdoc":{"mode":"typescript"}} - -/** - * @suppress {visibility|underscore} - */ -function quux() { -} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @param {string} id - * @param {Object} options - * @param {boolean} options.isSet - * @param {string} options.module - */ -function quux ( id, options ) { -} - - -/** - * Assign the project to a list of employees. - * @param {Object[]} employees - The employees who are responsible for the project. - * @param {string} employees[].name - The name of an employee. - * @param {string} employees[].department - The employee's department. - */ -function assign(employees) { - // ... -} -// "jsdoc/valid-types": ["error"|"warn", {"allowEmptyNamepaths":true}] - -/** - * @param {typeof obj["level1"]["level2"]} foo - * @param {Parameters[0]} ghi - * @param {{[key: string]: string}} hjk - */ -function quux() { - -} -// Settings: {"jsdoc":{"mode":"typescript"}} -```` - - +Problems reported by rules which have a wrench :wrench: below can be fixed automatically by running ESLint on the command line with `--fix` option. + +|recommended|fixable|rule|description| +|-|-|-|-| +|:heavy_check_mark:|| [check-access](./docs/rules/check-access.md#readme) | Enforces valid `@access` tags| +|:heavy_check_mark:|:wrench:| [check-alignment](./docs/rules/check-alignment.md#readme)|Enforces alignment of JSDoc block asterisks| +|||[check-examples](./docs/rules/check-examples.md#readme)|Linting of JavaScript within `@example`| +|||[check-indentation](./docs/rules/check-indentation.md#readme)|Checks for invalid padding inside JSDoc blocks| +||:wrench:|[check-line-alignment](./docs/rules/check-line-alignment.md#readme)|Reports invalid alignment of JSDoc block lines.| +|:heavy_check_mark:|:wrench:|[check-param-names](./docs/rules/check-param-names.md#readme)|Checks for dupe `@param` names, that nested param names have roots, and that parameter names in function declarations match jsdoc param names.| +|:heavy_check_mark:|:wrench:|[check-property-names](./docs/rules/check-property-names.md#readme)|Checks for dupe `@property` names, that nested property names have roots| +|||[check-syntax](./docs/rules/check-syntax.md#readme)|Reports use against current mode (currently only prohibits Closure-specific syntax)| +|:heavy_check_mark:|:wrench:|[check-tag-names](./docs/rules/check-tag-names.md#readme)|Reports invalid jsdoc (block) tag names| +|:heavy_check_mark:|:wrench:|[check-types](./docs/rules/check-types.md#readme)|Reports types deemed invalid (customizable and with defaults, for preventing and/or recommending replacements)| +|:heavy_check_mark:||[check-values](./docs/rules/check-values.md#readme)|Checks for expected content within some miscellaneous tags (`@version`, `@since`, `@license`, `@author`)| +|:heavy_check_mark:|:wrench:|[empty-tags](./docs/rules/empty-tags.md#readme)|Checks tags that are expected to be empty (e.g., `@abstract` or `@async`), reporting if they have content| +|:heavy_check_mark:||[implements-on-classes](./docs/rules/implements-on-classes.md#readme)|Prohibits use of `@implements` on non-constructor functions (to enforce the tag only being used on classes/constructors)| +|||[informative-docs](./docs/rules/informative-docs.md#readme)|Reports on JSDoc texts that serve only to restart their attached name.| +|||[match-description](./docs/rules/match-description.md#readme)|Defines customizable regular expression rules for your tag descriptions| +||:wrench:|[match-name](./docs/rules/match-name.md#readme)|Reports the name portion of a JSDoc tag if matching or not matching a given regular expression| +|:heavy_check_mark:|:wrench:|[multiline-blocks](./docs/rules/multiline-blocks.md#readme)|Controls how and whether jsdoc blocks can be expressed as single or multiple line blocks| +||:wrench:|[no-bad-blocks](./docs/rules/no-bad-blocks.md#readme)|This rule checks for multi-line-style comments which fail to meet the criteria of a jsdoc block| +||:wrench:|[no-blank-block-descriptions](./docs/rules/no-blank-block-descriptions.md#readme)|If tags are present, this rule will prevent empty lines in the block description. If no tags are present, this rule will prevent extra empty lines in the block description.| +||:wrench:|[no-blank-blocks](./docs/rules/no-blank-blocks.md#readme)|Reports and optionally removes blocks with whitespace only| +||:wrench:|[no-defaults](./docs/rules/no-defaults.md#readme)|This rule reports defaults being used on the relevant portion of `@param` or `@default`| +|||[no-missing-syntax](./docs/rules/no-missing-syntax.md#readme)|This rule lets you report if certain always expected comment structures are missing.| +|:heavy_check_mark:|:wrench:|[no-multi-asterisks](./docs/rules/no-multi-asterisks.md#readme)|Prevents use of multiple asterisks at the beginning of lines| +|||[no-restricted-syntax](./docs/rules/no-restricted-syntax.md#readme)|Reports when certain comment structures are present| +||:wrench:|[no-types](./docs/rules/no-types.md#readme)|Prohibits types on `@param` or `@returns` (redundant with TypeScript)| +|:heavy_check_mark:||[no-undefined-types](./docs/rules/no-undefined-types.md#readme)|Besides some expected built-in types, prohibits any types not specified as globals or within `@typedef` | +||:wrench:|[require-asterisk-prefix](./docs/rules/require-asterisk-prefix.md#readme)|Requires that each JSDoc line starts with an `*`| +|||[require-description](./docs/rules/require-description.md#readme)|Requires that all functions (and potentially other contexts) have a description.| +||:wrench:|[require-description-complete-sentence](./docs/rules/require-description-complete-sentence.md#readme)|Requires that block description, explicit `@description`, and `@param`/`@returns` tag descriptions are written in complete sentences| +||:wrench:|[require-example](./docs/rules/require-example.md#readme)|Requires that all functions (and potentially other contexts) have examples.| +|||[require-file-overview](./docs/rules/require-file-overview.md#readme)|By default, requires a single `@file` tag at the beginning of each linted file| +||:wrench:|[require-hyphen-before-param-description](./docs/rules/require-hyphen-before-param-description.md#readme)|Requires a hyphen before `@param` descriptions (and optionally before `@property` descriptions)| +|:heavy_check_mark:|:wrench:|[require-jsdoc](./docs/rules/require-jsdoc.md#readme)|Checks for presence of jsdoc comments, on functions and potentially other contexts (optionally limited to exports).| +|:heavy_check_mark:|:wrench:|[require-param](./docs/rules/require-param.md#readme)|Requires that all function parameters are documented with a `@param` tag.| +|:heavy_check_mark:||[require-param-description](./docs/rules/require-param-description.md#readme)|Requires that each `@param` tag has a `description` value.| +|:heavy_check_mark:||[require-param-name](./docs/rules/require-param-name.md#readme)|Requires that all `@param` tags have names.| +|:heavy_check_mark:||[require-param-type](./docs/rules/require-param-type.md#readme)|Requires that each `@param` tag has a type value (within curly brackets).| +|:heavy_check_mark:|:wrench:|[require-property](./docs/rules/require-property.md#readme)|Requires that all `@typedef` and `@namespace` tags have `@property` tags when their type is a plain `object`, `Object`, or `PlainObject`.| +|:heavy_check_mark:||[require-property-description](./docs/rules/require-property-description.md#readme)|Requires that each `@property` tag has a `description` value.| +|:heavy_check_mark:||[require-property-name](./docs/rules/require-property-name.md#readme)|Requires that all `@property` tags have names.| +|:heavy_check_mark:||[require-property-type](./docs/rules/require-property-type.md#readme)|Requires that each `@property` tag has a type value (within curly brackets).| +|:heavy_check_mark:||[require-returns](./docs/rules/require-returns.md#readme)|Requires that return statements are documented.| +|:heavy_check_mark:||[require-returns-check](./docs/rules/require-returns-check.md#readme)|Requires a return statement be present in a function body if a `@returns` tag is specified in the jsdoc comment block (and reports if multiple `@returns` tags are present).| +|:heavy_check_mark:||[require-returns-description](./docs/rules/require-returns-description.md#readme)|Requires that the `@returns` tag has a `description` value (not including `void`/`undefined` type returns).| +|:heavy_check_mark:||[require-returns-type](./docs/rules/require-returns-type.md#readme)|Requires that `@returns` tag has a type value (in curly brackets).| +|||[require-throws](./docs/rules/require-throws.md#readme)|Requires that throw statements are documented| +|:heavy_check_mark:||[require-yields](./docs/rules/require-yields.md#readme)|Requires that yields are documented| +|:heavy_check_mark:||[require-yields-check](./docs/rules/require-yields-check.md#readme)|Ensures that if a `@yields` is present that a `yield` (or `yield` with a value) is present in the function body (or that if a `@next` is present that there is a `yield` with a return value present)| +|||[sort-tags](./docs/rules/sort-tags.md#readme)|Sorts tags by a specified sequence according to tag name, optionally adding line breaks between tag groups| +|:heavy_check_mark:|:wrench:|[tag-lines](./docs/rules/tag-lines.md#readme)|Enforces lines (or no lines) between tags| +||:wrench:|[text-escaping](./docs/rules/text-escaping.md#readme)|This rule can auto-escape certain characters that are input within block and tag descriptions| +|:heavy_check_mark:||[valid-types](./docs/rules/valid-types.md#readme)|Requires all types/namepaths to be valid JSDoc, Closure compiler, or TypeScript types (configurable in settings)| diff --git a/docs/advanced.md b/docs/advanced.md new file mode 100644 index 000000000..4d593c0cb --- /dev/null +++ b/docs/advanced.md @@ -0,0 +1,102 @@ + + +## Advanced + +* [AST and Selectors](#user-content-advanced-ast-and-selectors) + * [`contexts` format](#user-content-advanced-ast-and-selectors-contexts-format) + * [Discovering available AST definitions](#user-content-advanced-ast-and-selectors-discovering-available-ast-definitions) + * [Uses/Tips for AST](#user-content-advanced-ast-and-selectors-uses-tips-for-ast) + + + + +### AST and Selectors + +For various rules, one can add to the environments to which the rule applies +by using the `contexts` option. + +This option works with [ESLint's selectors](https://eslint.org/docs/developer-guide/selectors) which are [esquery](https://github.com/estools/esquery/#readme) +expressions one may use to target a specific node type or types, including +subsets of the type(s) such as nodes with certain children or attributes. + +These expressions are used within ESLint plugins to find those parts of +your files' code which are of interest to check. However, in +`eslint-plugin-jsdoc`, we also allow you to use these selectors to define +additional contexts where you wish our own rules to be applied. + + + +#### contexts format + +While at their simplest, these can be an array of string selectors, one can +also supply an object with `context` (in place of the string) and one of two +properties: + +1. For `require-jsdoc`, there are also `inlineCommentBlock` and + `minLineCount` properties. See that rule for details. +1. For `no-missing-syntax` and `no-restricted-syntax`, there is also a + `message` property which allows customization of the message to be shown + when the rule is triggered. +1. For `no-missing-syntax`, there is also a `minimum` property. See that rule. +1. For other rules, there is a `comment` property which adds to the `context` + in requiring that the `comment` AST condition is also met, e.g., to + require that certain tags are present and/or or types and type operators + are in use. Note that this AST (either for `Jsdoc*` or `JsdocType*` AST) + has not been standardized and should be considered experimental. + Note that this property might also become obsolete if parsers begin to + include JSDoc-structured AST. A + [parser](https://github.com/brettz9/jsdoc-eslint-parser/) is available + which aims to support comment AST as + a first class citizen where comment/comment types can be used anywhere + within a normal AST selector but this should only be considered + experimental. When using such a parser, you need not use `comment` and + can just use a plain string context. The determination of the node on + which the comment is attached is based more on actual location than + semantics (e.g., it will be attached to a `VariableDeclaration` if above + that rather than to the `FunctionExpression` it is fundamentally + describing). See + [@es-joy/jsdoccomment](https://github.com/es-joy/jsdoccomment) + for the precise structure of the comment (and comment type) nodes. + + + +#### Discovering available AST definitions + +To know all of the AST definitions one may target, it will depend on the +[parser](https://eslint.org/docs/user-guide/configuring#specifying-parser) +you are using with ESLint (e.g., `espree` is the default parser for ESLint, +and this follows [EStree AST](https://github.com/estree/estree) but +to support the the latest experimental features of JavaScript, one may use +`@babel/eslint-parser` or to be able to have one's rules (including JSDoc rules) +apply to TypeScript, one may use `@typescript-eslint/parser`, etc. + +So you can look up a particular parser to see its rules, e.g., browse through +the [ESTree docs](https://github.com/estree/estree) as used by Espree or see +ESLint's [overview of the structure of AST](https://eslint.org/docs/developer-guide/working-with-custom-parsers#the-ast-specification). + +However, it can sometimes be even more helpful to get an idea of AST by just +providing some of your JavaScript to the wonderful +[AST Explorer](https://astexplorer.net/) tool and see what AST is built out +of your code. You can set the tool to the specific parser which you are using. + + + +#### Uses/Tips for AST + +And if you wish to introspect on the AST of code within your projects, you can +use [eslint-plugin-query](https://github.com/brettz9/eslint-plugin-query). +Though it also works as a plugin, you can use it with its own CLI, e.g., +to search your files for matching esquery selectors, optionally showing +it as AST JSON. + +Tip: If you want to more deeply understand not just the resulting AST tree +structures for any given code but also the syntax for esquery selectors so +that you can, for example, find only those nodes with a child of a certain +type, you can set the "Transform" feature to ESLint and test out +esquery selectors in place of the selector expression (e.g., replace +`'VariableDeclaration > VariableDeclarator > Identifier[name="someVar"]'` as +we have +[here](https://astexplorer.net/#/gist/71a93130c19599d6f197bddb29c13a59/latest)) +to the selector you wish so as to get messages reported in the bottom right +pane which match your [esquery](https://github.com/estools/esquery/#readme) +selector). diff --git a/docs/rules/check-access.md b/docs/rules/check-access.md new file mode 100644 index 000000000..4f68c0ec2 --- /dev/null +++ b/docs/rules/check-access.md @@ -0,0 +1,178 @@ + + +### check-access + +Checks that `@access` tags use one of the following values: + +- "package", "private", "protected", "public" + +Also reports: + +- Mixing of `@access` with `@public`, `@private`, `@protected`, or `@package` + on the same doc block. +- Use of multiple instances of `@access` (or the `@public`, etc. style tags) + on the same doc block. + +||| +|---|---| +|Context|everywhere| +|Tags|`@access`| +|Recommended|false| +|Settings|| +|Options|| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @access foo + */ +function quux (foo) { + +} +// Message: Missing valid JSDoc @access level. + +/** + * @access foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"ignorePrivate":true}} +// Message: Missing valid JSDoc @access level. + +/** + * @accessLevel foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"access":"accessLevel"}}} +// Message: Missing valid JSDoc @accessLevel level. + +/** + * @access + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"access":false}}} +// Message: Unexpected tag `@access` + +class MyClass { + /** + * @access + */ + myClassField = 1 +} +// Message: Missing valid JSDoc @access level. + +/** + * @access public + * @public + */ +function quux (foo) { + +} +// Message: The @access tag may not be used with specific access-control tags (@package, @private, @protected, or @public). + +/** + * @access public + * @access private + */ +function quux (foo) { + +} +// Message: At most one access-control tag may be present on a jsdoc block. + +/** + * @access public + * @access private + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"ignorePrivate":true}} +// Message: At most one access-control tag may be present on a jsdoc block. + +/** + * @public + * @private + */ +function quux (foo) { + +} +// Message: At most one access-control tag may be present on a jsdoc block. + +/** + * @public + * @private + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"ignorePrivate":true}} +// Message: At most one access-control tag may be present on a jsdoc block. + +/** + * @public + * @public + */ +function quux (foo) { + +} +// Message: At most one access-control tag may be present on a jsdoc block. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * + */ +function quux (foo) { + +} + +/** + * @access public + */ +function quux (foo) { + +} + +/** + * @accessLevel package + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"access":"accessLevel"}}} + +class MyClass { + /** + * @access private + */ + myClassField = 1 +} + +/** + * @public + */ +function quux (foo) { + +} + +/** + * @private + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"ignorePrivate":true}} +```` + diff --git a/docs/rules/check-alignment.md b/docs/rules/check-alignment.md new file mode 100644 index 000000000..5a45db2c3 --- /dev/null +++ b/docs/rules/check-alignment.md @@ -0,0 +1,147 @@ + + +### check-alignment + +Reports invalid alignment of JSDoc block asterisks. + +||| +|---|---| +|Context|everywhere| +|Tags|N/A| +|Recommended|true| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @param {Number} foo + */ +function quux (foo) { + // with spaces +} +// Message: Expected JSDoc block to be aligned. + +/** + * @param {Number} foo + */ +function quux (foo) { + // with tabs +} +// Message: Expected JSDoc block to be aligned. + +/** + * @param {Number} foo + */ +function quux (foo) { + // with spaces +} +// Message: Expected JSDoc block to be aligned. + +/** +* @param {Number} foo +*/ +function quux (foo) { + // with spaces +} +// Message: Expected JSDoc block to be aligned. + +/** + * @param {Number} foo + */ +function quux (foo) { + +} +// Message: Expected JSDoc block to be aligned. + + /** + * @param {Number} foo + */ +function quux (foo) { + +} +// Message: Expected JSDoc block to be aligned. + + /** + * @param {Number} foo + */ +function quux (foo) { + +} +// Message: Expected JSDoc block to be aligned. + +/** + * @param {Number} foo + */ + function quux (foo) { + + } +// Message: Expected JSDoc block to be aligned. + +/** + * A jsdoc not attached to any node. + */ +// Message: Expected JSDoc block to be aligned. + +class Foo { + /** + * Some method + * @param a + */ + quux(a) {} +} +// Message: Expected JSDoc block to be aligned. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * Desc + * + * @param {Number} foo + */ +function quux (foo) { + +} + +/** + * Desc + * + * @param {{ + foo: Bar, + bar: Baz + * }} foo + * + */ +function quux (foo) { + +} + +/* <- JSDoc must start with 2 stars. + * So this is unchecked. + */ +function quux (foo) {} + +/** + * @param {Number} foo + * @private + */ +function quux (foo) { + // with spaces +} +// Settings: {"jsdoc":{"ignorePrivate":true}} + +/** + * @param {Number} foo + * @access private + */ +function quux (foo) { + // with spaces +} +// Settings: {"jsdoc":{"ignorePrivate":true}} +```` + diff --git a/docs/rules/check-examples.md b/docs/rules/check-examples.md new file mode 100644 index 000000000..611146f2d --- /dev/null +++ b/docs/rules/check-examples.md @@ -0,0 +1,761 @@ + + +### check-examples + +> **NOTE**: This rule currently does not work in ESLint 8 (we are waiting for +> [issue 14745](https://github.com/eslint/eslint/issues/14745)). + +Ensures that (JavaScript) examples within JSDoc adhere to ESLint rules. Also +has options to lint the default values of optional `@param`/`@arg`/`@argument` +and `@property`/`@prop` tags or the values of `@default`/`@defaultvalue` tags. + + + +#### Options + +The options below all default to no-op/`false` except as noted. + + + +##### captionRequired + +JSDoc specs use of an optional `` element at the beginning of +`@example`. + +The option `captionRequired` insists on a `` being present at +the beginning of any `@example`. + +Used only for `@example`. + + + +##### exampleCodeRegex and rejectExampleCodeRegex + +JSDoc does not specify a formal means for delimiting code blocks within +`@example` (it uses generic syntax highlighting techniques for its own +syntax highlighting). The following options determine whether a given +`@example` tag will have the `check-examples` checks applied to it: + +* `exampleCodeRegex` - Regex which whitelists lintable + examples. If a parenthetical group is used, the first one will be used, + so you may wish to use `(?:...)` groups where you do not wish the + first such group treated as one to include. If no parenthetical group + exists or matches, the whole matching expression will be used. + An example might be ````"^```(?:js|javascript)([\\s\\S]*)```\s*$"```` + to only match explicitly fenced JavaScript blocks. Defaults to only + using the `u` flag, so to add your own flags, encapsulate your + expression as a string, but like a literal, e.g., ````/```js.*```/gi````. + Note that specifying a global regular expression (i.e., with `g`) will + allow independent linting of matched blocks within a single `@example`. +* `rejectExampleCodeRegex` - Regex blacklist which rejects + non-lintable examples (has priority over `exampleCodeRegex`). An example + might be ```"^`"``` to avoid linting fenced blocks which may indicate + a non-JavaScript language. See `exampleCodeRegex` on how to add flags + if the default `u` is not sufficient. + +If neither is in use, all examples will be matched. Note also that even if +`captionRequired` is not set, any initial `` will be stripped out +before doing the regex matching. + + + +##### paddedIndent + +This integer property allows one to add a fixed amount of whitespace at the +beginning of the second or later lines of the example to be stripped so as +to avoid linting issues with the decorative whitespace. For example, if set +to a value of `4`, the initial whitespace below will not trigger `indent` +rule errors as the extra 4 spaces on each subsequent line will be stripped +out before evaluation. + +```js +/** + * @example + * anArray.filter((a) => { + * return a.b; + * }); + */ +``` + +Only applied to `@example` linting. + + + +##### reportUnusedDisableDirectives + +If not set to `false`, `reportUnusedDisableDirectives` will report disabled +directives which are not used (and thus not needed). Defaults to `true`. +Corresponds to ESLint's [`--report-unused-disable-directives`](https://eslint.org/docs/user-guide/command-line-interface#--report-unused-disable-directives). + +Inline ESLint config within `@example` JavaScript is allowed (or within +`@default`, etc.), though the disabling of ESLint directives which are not +needed by the resolved rules will be reported as with the ESLint +`--report-unused-disable-directives` command. + + + +#### Options for Determining ESLint Rule Applicability (allowInlineConfig, noDefaultExampleRules, matchingFileName, configFile, checkEslintrc, and baseConfig) + +The following options determine which individual ESLint rules will be +applied to the JavaScript found within the `@example` tags (as determined +to be applicable by the above regex options) or for the other tags checked by +`checkDefaults`, `checkParams`, or `checkProperties` options. They are ordered +by decreasing precedence: + +* `allowInlineConfig` - If not set to `false`, will allow + inline config within the `@example` to override other config. Defaults + to `true`. +* `noDefaultExampleRules` - Setting to `true` will disable the + default rules which are expected to be troublesome for most documentation + use. See the section below for the specific default rules. +* `configFile` - A config file. Corresponds to ESLint's [`-c`](https://eslint.org/docs/user-guide/command-line-interface#-c---config). +* `matchingFileName` - Option for a file name (even non-existent) to trigger + specific rules defined in one's config; usable with ESLint `.eslintrc.*` + `overrides` -> `files` globs, to apply a desired subset of rules with + `@example` (besides allowing for rules specific to examples, this option + can be useful for enabling reuse of the same rules within `@example` as + with JavaScript Markdown lintable by + [other plugins](https://github.com/eslint/eslint-plugin-markdown), e.g., + if one sets `matchingFileName` to `dummy.md/*.js` so that `@example` + rules will follow rules for fenced JavaScript blocks within one's Markdown + rules). (In ESLint 6's processor API and `eslint-plugin-markdown` < 2, one + would instead use `dummy.md`.) For `@example` only. +* `matchingFileNameDefaults` - As with `matchingFileName` but for use with + `checkDefaults` and defaulting to `.jsdoc-defaults` as extension. +* `matchingFileNameParams` - As with `matchingFileName` but for use with + `checkParams` and defaulting to `.jsdoc-params` as extension. +* `matchingFileNameProperties` As with `matchingFileName` but for use with + `checkProperties` and defaulting to `.jsdoc-properties` as extension. +* `checkEslintrc` - Defaults to `true` in adding rules + based on an `.eslintrc.*` file. Setting to `false` corresponds to + ESLint's [`--no-eslintrc`](https://eslint.org/docs/user-guide/command-line-interface#--no-eslintrc). + If `matchingFileName` is set, this will automatically be `true` and + will use the config corresponding to that file. If `matchingFileName` is + not set and this value is set to `false`, the `.eslintrc.*` configs will + not be checked. If `matchingFileName` is not set, and this is unset or + set to `true`, the `.eslintrc.*` configs will be checked as though the file + name were the same as the file containing the example, with any file + extension changed to `".md/*.js"` (and if there is no file extension, + `"dummy.md/*.js"` will be the result). This allows convenient sharing of + similar rules with often also context-free Markdown as well as use of + `overrides` as described under `matchingFileName`. Note that this option + (whether set by `matchingFileName` or set manually to `true`) may come at + somewhat of a performance penalty as the file's existence is checked by + eslint. +* `baseConfig` - Set to an object of rules with the same schema + as `.eslintrc.*` for defaults. + + + +##### Rules Disabled by Default Unless noDefaultExampleRules is Set to true + +* `eol-last` - Insisting that a newline "always" be at the end is less likely + to be desired in sample code as with the code file convention. +* `no-console` - This rule is unlikely to have inadvertent temporary debugging + within examples. +* `no-multiple-empty-lines` - This rule may be problematic for projects which + use an initial newline just to start an example. Also, projects may wish to + use extra lines within examples just for easier illustration + purposes. +* `no-undef` - Many variables in examples will be `undefined`. +* `no-unused-vars` - It is common to define variables for clarity without + always using them within examples. +* `padded-blocks` - It can generally look nicer to pad a little even if one's + code follows more stringency as far as block padding. +* `jsdoc/require-file-overview` - Shouldn't check example for jsdoc blocks. +* `jsdoc/require-jsdoc` - Wouldn't expect jsdoc blocks within jsdoc blocks. +* `import/no-unresolved` - One wouldn't generally expect example paths to + resolve relative to the current JavaScript file as one would with real code. +* `import/unambiguous` - Snippets in examples are likely too short to always + include full import/export info. +* `node/no-missing-import` - See `import/no-unresolved`. +* `node/no-missing-require` - See `import/no-unresolved`. + +For `checkDefaults`, `checkParams`, and `checkProperties`, the following +expression-oriented rules will be used by default as well: + +* `quotes` - Will insist on "double". +* `semi` - Will insist on "never". +* `strict` - Disabled. +* `no-empty-function` - Disabled. +* `no-new` - Disabled. +* `no-unused-expressions` - Disabled. +* `chai-friendly/no-unused-expressions` - Disabled. + + + +##### Options for checking other than @example (checkDefaults, checkParams, or checkProperties) + +* `checkDefaults` - Whether to check the values of `@default`/`@defaultvalue` tags +* `checkParams` - Whether to check `@param`/`@arg`/`@argument` default values +* `checkProperties` - Whether to check `@property`/`@prop` default values + +||| +|---|---| +|Context|everywhere| +|Tags|`example`| +|Recommended|false| +|Options| *See above* | + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @example alert('hello') + */ +function quux () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"no-alert":2,"semi":["error","always"]}},"checkEslintrc":false}] +// Message: @example error (no-alert): Unexpected alert. + +/** + * @example alert('hello') + */ +class quux { + +} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"no-alert":2,"semi":["error","always"]}},"checkEslintrc":false}] +// Message: @example error (no-alert): Unexpected alert. + +/** + * @example ```js + alert('hello'); + ``` + */ +function quux () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"semi":["error","never"]}},"checkEslintrc":false,"exampleCodeRegex":"```js([\\s\\S]*)```"}] +// Message: @example error (semi): Extra semicolon. + +/** + * @example + * + * ```js alert('hello'); ``` + */ +function quux () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"semi":["error","never"]}},"checkEslintrc":false,"exampleCodeRegex":"```js ([\\s\\S]*)```"}] +// Message: @example error (semi): Extra semicolon. + +/** + * @example + * ```js alert('hello'); ``` + */ +var quux = { + +}; +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"semi":["error","never"]}},"checkEslintrc":false,"exampleCodeRegex":"```js ([\\s\\S]*)```"}] +// Message: @example error (semi): Extra semicolon. + +/** + * @example ``` + * js alert('hello'); ``` + */ +function quux () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"semi":["error","never"]}},"checkEslintrc":false,"exampleCodeRegex":"```\njs ([\\s\\S]*)```"}] +// Message: @example error (semi): Extra semicolon. + +/** + * @example Not JavaScript + */ +function quux () { + +} +/** + * @example quux2(); + */ +function quux2 () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"semi":["error","never"]}},"checkEslintrc":false,"rejectExampleCodeRegex":"^\\s*<.*>\\s*$"}] +// Message: @example error (semi): Extra semicolon. + +/** + * @example + * quux(); // does something useful + */ +function quux () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"no-undef":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":true}] +// Message: @example error (no-undef): 'quux' is not defined. + +/** + * @example Valid usage + * quux(); // does something useful + * + * @example + * quux('random unwanted arg'); // results in an error + */ +function quux () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"captionRequired":true,"checkEslintrc":false}] +// Message: Caption is expected for examples. + +/** + * @example quux(); + */ +function quux () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"indent":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":false}] +// Message: @example error (indent): Expected indentation of 0 spaces but found 1. + +/** + * @example test() // eslint-disable-line semi + */ +function quux () {} +// "jsdoc/check-examples": ["error"|"warn", {"checkEslintrc":false,"noDefaultExampleRules":true,"reportUnusedDisableDirectives":true}] +// Message: @example error: Unused eslint-disable directive (no problems were reported from 'semi'). + +/** + * @example + test() // eslint-disable-line semi + */ +function quux () {} +// "jsdoc/check-examples": ["error"|"warn", {"allowInlineConfig":false,"baseConfig":{"rules":{"semi":["error","always"]}},"checkEslintrc":false,"noDefaultExampleRules":true}] +// Message: @example error (semi): Missing semicolon. + +/** + * @example const j = 5; + * quux2(); + */ +function quux2 () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"matchingFileName":"../../jsdocUtils.js"}] +// Message: @example warning (id-length): Identifier name 'j' is too short (< 2). + +/** + * @example const k = 5; + * quux2(); + */ +function quux2 () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"configFile":".eslintrc.json","matchingFileName":"../../jsdocUtils.js"}] +// Message: @example warning (id-length): Identifier name 'k' is too short (< 2). + +/** + * @example const m = 5; + * quux2(); + */ +function quux2 () { + +} +// Message: @example warning (id-length): Identifier name 'm' is too short (< 2). + +/** + * @example const i = 5; + * quux2() + */ +function quux2 () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"paddedIndent":2}] +// Message: @example warning (id-length): Identifier name 'i' is too short (< 2). + +/** + * @example + * const i = 5; + * quux2() + */ +function quux2 () { + +} +// Message: @example warning (id-length): Identifier name 'i' is too short (< 2). + +/** + * @example const idx = 5; + * quux2() + */ +function quux2 () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"matchingFileName":"dummy.js"}] +// Message: @example error (semi): Missing semicolon. + +/** + * @example const idx = 5; + * + * quux2() + */ +function quux2 () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"matchingFileName":"dummy.js"}] +// Message: @example error (semi): Missing semicolon. + +/** + * @example const idx = 5; + * + * quux2() + */ +function quux2 () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"checkEslintrc":false,"matchingFileName":"dummy.js"}] +// Message: @example error: Parsing error: The keyword 'const' is reserved + +/** + * @example // begin + alert('hello') + // end + */ +function quux () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"semi":["warn","always"]}},"checkEslintrc":false,"exampleCodeRegex":"// begin[\\s\\S]*// end","noDefaultExampleRules":true}] +// Message: @example warning (semi): Missing semicolon. + +/** + * @typedef {string} Foo + * @example + * 'foo' + */ +// "jsdoc/check-examples": ["error"|"warn", {"captionRequired":true,"checkEslintrc":false}] +// Message: Caption is expected for examples. + +/** + * @example + * const list: number[] = [1, 2, 3] + * quux(list); + */ +function quux () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"parser":"@typescript-eslint/parser","parserOptions":{"ecmaVersion":6},"rules":{"semi":["error","always"]}},"checkEslintrc":false}] +// Message: @example error (semi): Missing semicolon. + +/** + * @example + * const test = something.find((_) => { + * return _ + * }); + */ +function quux () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"parserOptions":{"ecmaVersion":6},"rules":{"semi":["error","always"]}}}] +// Message: @example error (semi): Missing semicolon. + +/** + * @example Say `Hello!` to the user. + * First, import the function: + * + * ```js + * import popup from './popup' + * const aConstInSameScope = 5; + * ``` + * + * Then use it like this: + * + * ```js + * const aConstInSameScope = 7; + * popup('Hello!') + * ``` + * + * Here is the result on macOS: + * + * ![Screenshot](path/to/screenshot.jpg) + */ +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"parserOptions":{"ecmaVersion":2015,"sourceType":"module"},"rules":{"semi":["error","always"]}},"checkEslintrc":false,"exampleCodeRegex":"/^```(?:js|javascript)\\n([\\s\\S]*?)```$/gm"}] +// Message: @example error (semi): Missing semicolon. + +/** + * @example // begin + alert('hello') + // end + * And here is another example: + // begin + alert('there') + // end + */ +function quux () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"semi":["warn","always"]}},"checkEslintrc":false,"exampleCodeRegex":"/\\/\\/ begin[\\s\\S]*?// end/g","noDefaultExampleRules":true}] +// Message: @example warning (semi): Missing semicolon. + +/** + * @example + * quux(); + */ +function quux () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"indent":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":false}] +// Message: @example error (indent): Expected indentation of 0 spaces but found 2. + +/** + * @default 'abc' + */ +const str = 'abc'; +// "jsdoc/check-examples": ["error"|"warn", {"checkDefaults":true}] +// Message: @default error (quotes): Strings must use doublequote. + +/** + * @param {myType} [name='abc'] + */ +function quux () { +} +// "jsdoc/check-examples": ["error"|"warn", {"checkParams":true}] +// Message: @param error (quotes): Strings must use doublequote. + +/** + * @property {myType} [name='abc'] + */ +const obj = {}; +// "jsdoc/check-examples": ["error"|"warn", {"checkProperties":true}] +// Message: @property error (quotes): Strings must use doublequote. + +/** + * Test function. + * + * @example functionName (paramOne: string, paramTwo?: any, + * paramThree?: any): boolean test() + * + * @param {string} paramOne Parameter description. + * @param {any} [paramTwo] Parameter description. + * @param {any} [paramThree] Parameter description. + * @returns {boolean} Return description. + */ +const functionName = function (paramOne, paramTwo, + paramThree) { + return false; +}; +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"parserOptions":{"ecmaVersion":2015,"sourceType":"module"},"rules":{"semi":["error","always"]}},"captionRequired":true,"checkEslintrc":false}] +// Message: @example error (semi): Missing semicolon. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @example ```js + alert('hello'); + ``` + */ +function quux () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"semi":["error","always"]}},"checkEslintrc":false,"exampleCodeRegex":"```js([\\s\\S]*)```"}] + +/** + * @example ```js + alert('hello'); + ``` + */ +function quux () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"semi":["error","always"]}},"checkEslintrc":false,"exampleCodeRegex":"/```js([\\s\\S]*)```/"}] + +/** + * @example + * // arbitrary example content + */ +function quux () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"checkEslintrc":false}] + +/** + * @example + * quux(); // does something useful + */ +function quux () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"no-undef":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":false}] + +/** + * @example quux(); + */ +function quux () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"indent":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":false}] + +/** + * @example Valid usage + * quux(); // does something useful + * + * @example Invalid usage + * quux('random unwanted arg'); // results in an error + */ +function quux () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"captionRequired":true,"checkEslintrc":false}] + +/** + * @example test() // eslint-disable-line semi + */ +function quux () {} +// "jsdoc/check-examples": ["error"|"warn", {"checkEslintrc":false,"noDefaultExampleRules":true,"reportUnusedDisableDirectives":false}] + +/** + * @example + test() // eslint-disable-line semi + */ +function quux () {} +// "jsdoc/check-examples": ["error"|"warn", {"allowInlineConfig":true,"baseConfig":{"rules":{"semi":["error","always"]}},"checkEslintrc":false,"noDefaultExampleRules":true}] + +/** + * @example ```js + alert('hello') + ``` + */ +var quux = { + +}; +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"semi":["error","never"]}},"checkEslintrc":false,"exampleCodeRegex":"```js([\\s\\S]*)```"}] + +/** + * @example + * foo(function (err) { + * throw err; + * }); + */ +function quux () {} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"indent":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":false}] + +/** + * @example + * const list: number[] = [1, 2, 3]; + * quux(list); + */ +function quux () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"parser":"@typescript-eslint/parser","parserOptions":{"ecmaVersion":6},"rules":{"semi":["error","always"]}},"checkEslintrc":false}] + +/** + * @example const ident = 5; + * quux2(); + * bar(); + */ +function quux2 () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"paddedIndent":2}] + +/** + * @example + * function quux() { + * bar(); + * } + */ +function quux () { + +} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"rules":{"indent":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":false}] + +// Comment +a(); + +export default {}; + +/** + * + */ +function f () { + +} + +/** + * Does quux + * @example + * // Do it! + * quux(); + */ +function quux () { +} +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"plugins":["jsdoc"],"rules":{"jsdoc/require-file-overview":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":false}] + +/** + * @default "abc" + */ +const str = 'abc'; +// "jsdoc/check-examples": ["error"|"warn", {"checkDefaults":true}] + +/** + * @default + */ +const str = 'abc'; +// "jsdoc/check-examples": ["error"|"warn", {"checkDefaults":true}] + +/** + * @param {myType} [name="abc"] + */ +function quux () { +} +// "jsdoc/check-examples": ["error"|"warn", {"checkParams":true}] + +/** + * @param {myType} name + */ +function quux () { +} +// "jsdoc/check-examples": ["error"|"warn", {"checkParams":true}] + +/** + * @property {myType} [name="abc"] + */ +const obj = {}; +// "jsdoc/check-examples": ["error"|"warn", {"checkProperties":true}] + +/** + * @property {myType} [name] + */ +const obj = {}; +// "jsdoc/check-examples": ["error"|"warn", {"checkProperties":true}] + +/** + * @default 'abc' + */ +const str = 'abc'; +// "jsdoc/check-examples": ["error"|"warn", {"checkDefaults":false,"matchingFileNameDefaults":"dummy.js"}] + +/** + * @param {myType} [name='abc'] + */ +function quux () { +} +// "jsdoc/check-examples": ["error"|"warn", {"checkParams":false,"matchingFileNameParams":"dummy.js"}] + +/** + * @property {myType} [name='abc'] + */ +const obj = {}; +// "jsdoc/check-examples": ["error"|"warn", {"checkProperties":false,"matchingFileNameProperties":"dummy.js"}] + +/** + * Test function. + * + * @example functionName (paramOne: string, paramTwo?: any, + * paramThree?: any): boolean test(); + * + * @param {string} paramOne Parameter description. + * @param {any} [paramTwo] Parameter description. + * @param {any} [paramThree] Parameter description. + * @returns {boolean} Return description. + */ +const functionName = function (paramOne, paramTwo, + paramThree) { + return false; +}; +// "jsdoc/check-examples": ["error"|"warn", {"baseConfig":{"parserOptions":{"ecmaVersion":2015,"sourceType":"module"},"rules":{"semi":["error","always"]}},"captionRequired":true,"checkEslintrc":false}] +```` + diff --git a/docs/rules/check-indentation.md b/docs/rules/check-indentation.md new file mode 100644 index 000000000..8c6142933 --- /dev/null +++ b/docs/rules/check-indentation.md @@ -0,0 +1,279 @@ + + +### check-indentation + +Reports invalid padding inside JSDoc blocks. + +Ignores parts enclosed in Markdown "code block"'s. For example, +the following description is not reported: + +```js +/** + * Some description: + * ```html + *
+ * test + *
+ * ``` + */ +``` + + + +#### Options + +This rule has an object option. + + + +##### excludeTags + +Array of tags (e.g., `['example', 'description']`) whose content will be +"hidden" from the `check-indentation` rule. Defaults to `['example']`. + +By default, the whole JSDoc block will be checked for invalid padding. +That would include `@example` blocks too, which can get in the way +of adding full, readable examples of code without ending up with multiple +linting issues. + +When disabled (by passing `excludeTags: []` option), the following code *will* +report a padding issue: + +```js +/** + * @example + * anArray.filter((a) => { + * return a.b; + * }); + */ +``` + +||| +|---|---| +|Context|everywhere| +|Tags|N/A| +|Recommended|false| +|Options| `excludeTags` | + +## Failing examples + +The following patterns are considered problems: + +````js +/** foo */ +function quux () { + +} +// Message: There must be no indentation. + +/** + * foo + * + * @param bar + * baz + */ +function quux () { + +} +// Message: There must be no indentation. + +/** + * Foo + * bar + */ +class Moo {} +// Message: There must be no indentation. + +/** + * foo + * + * @example + * anArray.filter((a) => { + * return a.b; + * }); + */ +function quux () { + +} +// "jsdoc/check-indentation": ["error"|"warn", {"excludeTags":[]}] +// Message: There must be no indentation. + +/** + * foo + * + * @example + * aaaa + * @returns + * eeee + */ +function quux () { + +} +// Message: There must be no indentation. + +/** + * foo + * ```html + *
+ * test + *
+ * ``` + * @returns + * eeee + */ +function quux () { + +} +// Message: There must be no indentation. + +/** + * foo + * ``` aaaa``` + * @returns + * eeee + */ +function quux () { + +} +// Message: There must be no indentation. + +/** +* @example +* Here is a long +* indented summary of this +* example +* +* ```js +* function hi () { +* alert('Hello'); +* } +* ``` +*/ +// "jsdoc/check-indentation": ["error"|"warn", {"excludeTags":[]}] +// Message: There must be no indentation. + +/** +* @example +* Here is a long +* summary of this +* example +* +* // Code is not wrapped into fenced code block +* function hi () { +* alert('Hello'); +* } +*/ +// "jsdoc/check-indentation": ["error"|"warn", {"excludeTags":[]}] +// Message: There must be no indentation. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * foo + * + * @param bar + * baz + */ +function quux () { + +} + +/*** foo */ +function quux () { + +} + +/** + * foo + * + * @example + * anArray.filter((a) => { + * return a.b; + * }); + */ +function quux () { + +} + +/** + * foo + * + * @example + * anArray.filter((a) => { + * return a.b; + * }); + * @returns + * eeee + */ +function quux () { + +} +// "jsdoc/check-indentation": ["error"|"warn", {"excludeTags":["example","returns"]}] + +/** + * foo + * ```html + *
+ * test + *
+ * ``` + * @returns eeee + */ +function quux () { + +} + +/** + * foo + * ``` aaaa``` + * @returns eeee + */ +function quux () { + +} + +/** +* @example +* Here is a long +* summary of this +* example +* +* ```js +* function hi () { +* alert('Hello'); +* } +* ``` +*/ +// "jsdoc/check-indentation": ["error"|"warn", {"excludeTags":[]}] + +/** + * @example + * ``` + * @MyDecorator({ + * myOptions: 42 + * }) + * export class MyClass {} + * ``` + */ +function MyDecorator(options: { myOptions: number }) { + return (Base: Function) => {}; +} +// "jsdoc/check-indentation": ["error"|"warn", {"excludeTags":["example","MyDecorator"]}] + +/** + * @example ``` + * @MyDecorator({ + * myOptions: 42 + * }) + * export class MyClass {} + * ``` + */ +function MyDecorator(options: { myOptions: number }) { + return (Base: Function) => {}; +} +```` + diff --git a/docs/rules/check-line-alignment.md b/docs/rules/check-line-alignment.md new file mode 100644 index 000000000..fdbbb3ae2 --- /dev/null +++ b/docs/rules/check-line-alignment.md @@ -0,0 +1,968 @@ + + +### check-line-alignment + +Reports invalid alignment of JSDoc block lines. This is a +[standard recommended to WordPress code](https://make.wordpress.org/core/handbook/best-practices/inline-documentation-standards/javascript/#aligning-comments), +for example. + + + +#### Options + +This rule allows one optional string argument. If it is `"always"` then a +problem is raised when the lines are not aligned. If it is `"never"` then +a problem should be raised when there is more than one space between each +line's parts. If it is `"any"`, no alignment is made. Defaults to `"never"`. + +Note that in addition to alignment, the "never" and "always" options will both +ensure that at least one space is present after the asterisk delimiter. + +After the string, an options object is allowed with the following properties. + + + +##### tags + +Use this to change the tags which are sought for alignment changes. Defaults to an array of +`['param', 'arg', 'argument', 'property', 'prop', 'returns', 'return']`. + + + +##### customSpacings + +An object with any of the following keys set to an integer. Affects spacing: + +- `postDelimiter` - after the asterisk (e.g., `* @param`) +- `postTag` - after the tag (e.g., `* @param `) +- `postType` - after the type (e.g., `* @param {someType} `) +- `postName` - after the name (e.g., `* @param {someType} name `) +- `postHyphen` - after any hyphens in the description (e.g., `* @param {someType} name - A description`) + +If a spacing is not defined, it defaults to one. + + + +##### preserveMainDescriptionPostDelimiter + +A boolean to determine whether to preserve the post-delimiter spacing of the +main description. If `false` or unset, will be set to a single space. + + + +##### wrapIndent + +The indent that will be applied for tag text after the first line. +Default to the empty string (no indent). + +||| +|---|---| +|Context|everywhere| +|Options|(a string matching `"always"`, `"never"`, or `"any"` and optional object with `tags`, `customSpacings`, `preserveMainDescriptionPostDelimiter`, and `wrapIndent`)| +|Tags|`param`, `property`, `returns` and others added by `tags`| +|Aliases|`arg`, `argument`, `prop`, `return`| +|Recommended|false| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] +// Message: Expected JSDoc block lines to be aligned. + +/** + * With tabs. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ + const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] +// Message: Expected JSDoc block lines to be aligned. + +/** + * Function description. + * + * @param {string} lorem - Description. + * @param {int} sit - Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] +// Message: Expected JSDoc block lines to be aligned. + +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] +// Message: Expected JSDoc block lines to be aligned. + +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] +// Message: Expected JSDoc block lines to be aligned. + +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] +// Message: Expected JSDoc block lines to be aligned. + +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] +// Message: Expected JSDoc block lines to be aligned. + +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ +function fn( lorem, sit ) {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] +// Message: Expected JSDoc block lines to be aligned. + +const object = { + /** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ + fn( lorem, sit ) {} +} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] +// Message: Expected JSDoc block lines to be aligned. + +class ClassName { + /** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ + fn( lorem, sit ) {} +} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] +// Message: Expected JSDoc block lines to be aligned. + +/** + * Function description. + * + * @arg {string} lorem Description. + * @arg {int} sit Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] +// Message: Expected JSDoc block lines to be aligned. + +/** + * @namespace + * @property {object} defaults Description. + * @property {int} defaults.lorem Description multi words. + */ +const config = { + defaults: { + lorem: 1 + } +} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] +// Message: Expected JSDoc block lines to be aligned. + +/** + * My object. + * + * @typedef {Object} MyObject + * + * @property {string} lorem Description. + * @property {int} sit Description multi words. + */ +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] +// Message: Expected JSDoc block lines to be aligned. + +/** + * My object. + * + * @typedef {Object} MyObject + * + * @property {{a: number, b: string, c}} lorem Description. + * @property {Object.} sit Description multi words. + * @property {Object.} amet Description} weird {multi} {{words}}. + * @property {Object.} dolor + */ +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] +// Message: Expected JSDoc block lines to be aligned. + +/** + * My object. + * + * @typedef {Object} MyObject + * + * @property {{a: number, b: string, c}} lorem Description. + * @property {Object.} sit Description multi words. + * @property {Object.} amet Description} weird {multi} {{words}}. + * @property {Object.} dolor + */ +// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"tags":["typedef","property"]}] +// Message: Expected JSDoc block lines to be aligned. + +/** + * My function. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never"] +// Message: Expected JSDoc block lines to not be aligned. + +/** + * My function. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never"] +// Message: Expected JSDoc block lines to not be aligned. + +/** + * My function. + * + * @param {string} lorem Description. + * @param {int} sit + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never"] +// Message: Expected JSDoc block lines to not be aligned. + +/** + * My function. + * + * @param {string} lorem Description. + * @param {int} sit + */ +const fn = ( lorem, sit ) => {} +// Message: Expected JSDoc block lines to not be aligned. + +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi + line without *. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] +// Message: Expected JSDoc block lines to be aligned. + +/** + * My function. + * + * @param {string} lorem Description. + * @param {int} sit + * + * @return {string} Return description + * with multi line, but don't touch. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"tags":["param"]}] +// Message: Expected JSDoc block lines to be aligned. + +/** + * Only return doc. + * + * @return {boolean} Return description. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] +// Message: Expected JSDoc block lines to be aligned. + +/** + * Creates OS based shortcuts for files, folders, and applications. + * + * @param {object} options Options object for each OS. + * @return {boolean} True = success, false = failed to create the icon + */ + function quux () {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never"] +// Message: Expected JSDoc block lines to not be aligned. + +/** + * Creates OS based shortcuts for files, folders, and applications. + * + * @param {object} options Options object for each OS. + * @return {boolean} True = success, false = failed to create the icon + */ + function quux () {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never"] +// Message: Expected JSDoc block lines to not be aligned. + +/** + * Creates OS based shortcuts for files, folders, and applications. + * + * @param {object} options Options object for each OS. + * @return True = success, false = failed to create the icon + */ + function quux () {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never"] +// Message: Expected JSDoc block lines to not be aligned. + +/** + * Creates OS based shortcuts for files, folders, and applications. + * + * @param options Options object for each OS. + * @return True = success, false = failed to create the icon + */ + function quux () {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never"] +// Message: Expected JSDoc block lines to not be aligned. + +/** + * Creates OS based shortcuts for files, folders, and applications. + * + * @param {object} options Options object for each OS. + * @param {object} other Other. + * @return True = success, false = failed to create the icon + */ + function quux () {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"tags":["param","return"]}] +// Message: Expected JSDoc block lines to not be aligned. + +/** + * Returns the value stored in the process.env for a given + * environment variable. + * + * @param {string} withPercents '%USERNAME%' + * @param {string} withoutPercents 'USERNAME' + * @return {string} 'bob' || '%USERNAME%' + */ +function quux () {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never"] +// Message: Expected JSDoc block lines to not be aligned. + +/** + * Function description + * description with post delimiter. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] +// Message: Expected JSDoc block lines to be aligned. + +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + * + * @return {string} Return description. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"customSpacings":{"postDelimiter":2,"postTag":3,"postType":2}}] +// Message: Expected JSDoc block lines to be aligned. + +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + * + * @return {string} Return description. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"customSpacings":{"postName":3}}] +// Message: Expected JSDoc block lines to be aligned. + +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"customSpacings":{"postDelimiter":2,"postTag":3,"postType":2}}] +// Message: Expected JSDoc block lines to not be aligned. + +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"customSpacings":{"postName":3}}] +// Message: Expected JSDoc block lines to not be aligned. + + + /**\r + * Function description.\r + *\r + * @param {string} lorem Description.\r + * @param {int} sit Description multi words.\r + * @param {string} sth Multi\r + * line description.\r + */\r + const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] +// Message: Expected JSDoc block lines to be aligned. + +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi + * line with asterisks. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] +// Message: Expected JSDoc block lines to be aligned. + +/** + * Function description. + * + * @param {string} lorem - Description. + * @param {int} sit - Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never"] +// Message: Expected JSDoc block lines to not be aligned. + +/** + * Function description. + * + * @param {string} lorem - Description. + * @param {int} sit - Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"customSpacings":{"postHyphen":2}}] +// Message: Expected JSDoc block lines to not be aligned. + +/** + * Function description. + * + * @param {string} lorem - Description. + * @param {int} sit - Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"customSpacings":{"postHyphen":2}}] +// Message: Expected JSDoc block lines to not be aligned. + +/** + * Function description. + * + * @param {string} lorem - Description. + * @param {int} sit - Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"customSpacings":{"postHyphen":2}}] +// Message: Expected JSDoc block lines to be aligned. + +/** + * Function description. + * + * @param {string} lorem - Description. + * @param {int} sit - Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"customSpacings":{"postHyphen":2}}] +// Message: Expected JSDoc block lines to be aligned. + +/** + * Function description. + * + * @param {string} lorem - Description. + * @param {int} sit - Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"customSpacings":{"postHyphen":2}}] +// Message: Expected JSDoc block lines to not be aligned. + +/** + * @param {string} lorem Description + * with multiple lines. + */ +function quux () { +} +// "jsdoc/check-line-alignment": ["error"|"warn", "any",{"wrapIndent":" "}] +// Message: Expected wrap indent + +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi + * line with asterisks. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"wrapIndent":" "}] +// Message: Expected JSDoc block lines to be aligned. + +/** + * My function. + * + * @param {string} lorem Description. + * @param {int} sit Description multiple + * lines. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"wrapIndent":" "}] +// Message: Expected JSDoc block lines to not be aligned. + +/** + * @property {boolean} tls_verify_client_certificate - Whether our API should + * enable TLS client authentication + */ +function quux () {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"wrapIndent":" "}] +// Message: Expected wrap indent + +/** + * @property {boolean} tls_verify_client_certificate - Whether our API should + * enable TLS client authentication + */ +function quux () {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"wrapIndent":""}] +// Message: Expected wrap indent +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * With tabs. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ + const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * Function description. + * + * @param {string} lorem - Description. + * @param {int} sit - Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * @param {string} lorem Description. + * @param {int} sit + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * @param {int} sit + * @param {string} lorem Description. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * No params. + */ +const fn = () => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ +function fn( lorem, sit ) {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +const object = { + /** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ + fn( lorem, sit ) {}, +} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +class ClassName { + /** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ + fn( lorem, sit ) {} +} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * Function description. + * + * @arg {string} lorem Description. + * @arg {int} sit Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * @namespace + * @property {object} defaults Description. + * @property {int} defaults.lorem Description multi words. + */ +const config = { + defaults: { + lorem: 1 + } +} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * My object. + * + * @typedef {Object} MyObject + * + * @property {string} lorem Description. + * @property {int} sit Description multi words. + */ +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * My object. + * + * @typedef {Object} MyObject + * + * @property {{a: number, b: string, c}} lorem Description. + * @property {Object.} sit Description multi words. + * @property {Object.} amet Description} weird {multi} {{words}}. + * @property {Object.} dolor + */ +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * My object. + * + * @typedef {Object} MyObject + * + * @property {{a: number, b: string, c}} lorem Description. + * @property {Object.} sit Description multi words. + * @property {Object.} amet Description} weird {multi} {{words}}. + * @property {Object.} dolor + */ +// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"tags":["typedef","property"]}] + +/** + * My object. + * + * @template T + * @template W,X,Y,Z + * @template {string} K - K must be a string or string literal + * @template {{ serious(): string }} Seriousalizable - must have a serious method + * + * @param {{a: number, b: string, c}} lorem Description. + */ +// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"tags":["template","param"]}] + +/** @param {number} lorem */ +const fn = ( lorem ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * Creates OS based shortcuts for files, folders, and applications. + * + * @param {object} options Options object for each OS. + * @return {boolean} True = success, false = failed to create the icon + */ + function quux () {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * Creates OS based shortcuts for files, folders, and applications. + * + * @param {object} options Options object for each OS. + * @return {boolean} + */ + function quux () {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * Only return doc. + * + * @return {boolean} Return description. + */ + function quux () {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * Not validating without option. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ +const fn = ( lorem, sit ) => {} + +/** + * Creates OS based shortcuts for files, folders, and applications. + * + * @param {object} options Options object for each OS. + * @return {boolean} True = success, false = failed to create the icon + */ +function quux (options) {} + +/** + * Creates OS based shortcuts for files, folders, and applications. + * + * @param {object} options Options object for each OS. + * @param {object} other Other. + * @return True = success, false = failed to create the icon + */ + function quux () {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"tags":["param"]}] + +/** + * @param parameter Description. + */ +function func(parameter){ + +} + +/** + * Function description + * description with post delimiter. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"preserveMainDescriptionPostDelimiter":true}] + +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + * + * @return {string} Return description. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"customSpacings":{"postDelimiter":2,"postTag":3,"postType":2}}] + +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi words. + * + * @return {string} Return description. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"customSpacings":{"postDelimiter":2,"postTag":3,"postType":2}}] + +/** + * @param {{ + * ids: number[] + * }} params + */ +const fn = ({ids}) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + + + /**\r + * Function description.\r + *\r + * @param {string} lorem Description.\r + * @param {int} sit Description multi words.\r + * @param {string} sth Multi\r + * line description.\r + */\r + const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * Function description. + * + * @param lorem Description. + * @param sit Description multi words. + */ +const fn = ( lorem, sit ) => {}; + +/** + * Function description. + * + * @return Return description. + */ +const fn2 = () => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * Function description. + * + * @param lorem Description. + * @param sit Description multi words. + * @return Return description. + */ +const fn = ( lorem, sit ) => {}; + +/** + * Function description. + * + * @param lorem Description. + * @param sit Description multi words. + * @returns Return description. + */ +const fn2 = ( lorem, sit ) => {}; + +/** + * Function description. + * + * @param a Description. + * @param b Description multi words. + * @returns Return description. + */ +const fn3 = ( a, b ) => {}; +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * Function description. + * + * @argument lorem Description. + * @return Return description. + */ +const fn = ( lorem ) => {}; + +/** + * Function description. + * + * @argument lorem Description. + * @returns Return description. + */ +const fn2 = ( lorem ) => {}; +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * Function description. + * + * @arg a Description. + * @returns Return description. + */ +const fn = ( a ) => {}; +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * Function description. + * + * @arg lorem Description. + * @param sit Return description. + */ +const fn = ( lorem, sit ) => {}; +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * Function description. + * + * @arg a Description. + * @argument b Second description. + * @returns Return description. + */ +const fn = ( a, b ) => {}; +// "jsdoc/check-line-alignment": ["error"|"warn", "always"] + +/** + * @param {string} lorem Description + * with multiple lines. + */ +function quux () { +} +// "jsdoc/check-line-alignment": ["error"|"warn", "any",{"wrapIndent":" "}] + +/** + * @param {string} lorem Description + * with multiple lines. + */ +function quux () { +} +// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"wrapIndent":" "}] + +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi + * line with asterisks. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"wrapIndent":" "}] + +/** + * Function description. + * + * @param {string} lorem Description. + * @param {int} sit Description multi + * line with + * asterisks. + */ +const fn = ( lorem, sit ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "always",{"wrapIndent":" "}] + +/** + * @param { + * string | number + * } lorem Description + * with multiple lines. + */ +function quux () { +} +// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"wrapIndent":" "}] + +/** + * @param {string|string[]|TemplateResult|TemplateResult[]} event.detail.description - + * Notification description + */ +function quux () {} +// "jsdoc/check-line-alignment": ["error"|"warn", "never",{"wrapIndent":" "}] +```` + diff --git a/docs/rules/check-param-names.md b/docs/rules/check-param-names.md new file mode 100644 index 000000000..030696ec8 --- /dev/null +++ b/docs/rules/check-param-names.md @@ -0,0 +1,1003 @@ + + +### check-param-names + +Ensures that parameter names in JSDoc are matched by corresponding items in +the function declaration. + + + +#### Destructuring + +Note that by default the rule will not report parameters present on the docs +but non-existing on the function signature when an object rest property is part +of that function signature since the seemingly non-existing properties might +actually be a part of the object rest property. + +```js +/** + * @param options + * @param options.foo + */ +function quux ({foo, ...extra}) {} +``` + +To require that `extra` be documented--and that any extraneous properties +get reported--e.g., if there had been a `@param options.bar` above--you +can use the `checkRestProperty` option which insists that the rest +property be documented (and that there be no other implicit properties). +Note, however, that jsdoc [does not appear](https://github.com/jsdoc/jsdoc/issues/1773) +to currently support syntax or output to distinguish rest properties from +other properties, so in looking at the docs alone without looking at the +function signature, the disadvantage of enabling this option is that it +may appear that there is an actual property named `extra`. + + + +#### Options + + + +##### checkRestProperty + +See the "Destructuring" section. Defaults to `false`. + + + +##### checkTypesPattern + +See `require-param` under the option of the same name. + + + +##### enableFixer + +Set to `true` to auto-remove `@param` duplicates (based on identical +names). + +Note that this option will remove duplicates of the same name even if +the definitions do not match in other ways (e.g., the second param will +be removed even if it has a different type or description). + + + +##### allowExtraTrailingParamDocs + +If set to `true`, this option will allow extra `@param` definitions (e.g., +representing future expected or virtual params) to be present without needing +their presence within the function signature. Other inconsistencies between +`@param`'s and present function parameters will still be reported. + + + +##### checkDestructured + +Whether to check destructured properties. Defaults to `true`. + + + +##### useDefaultObjectProperties + +Set to `true` if you wish to avoid reporting of child property documentation +where instead of destructuring, a whole plain object is supplied as default +value but you wish its keys to be considered as signalling that the properties +are present and can therefore be documented. Defaults to `false`. + + + +##### disableExtraPropertyReporting + +Whether to check for extra destructured properties. Defaults to `false`. Change +to `true` if you want to be able to document properties which are not actually +destructured. Keep as `false` if you expect properties to be documented in +their own types. Note that extra properties will always be reported if another +item at the same level is destructured as destructuring will prevent other +access and this option is only intended to permit documenting extra properties +that are available and actually used in the function. + +||| +|---|---| +|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| +|Options|`allowExtraTrailingParamDocs`, `checkDestructured`, `checkRestProperty`, `checkTypesPattern`, `useDefaultObjectProperties`, `disableExtraPropertyReporting`| +|Tags|`param`| +|Aliases|`arg`, `argument`| +|Recommended|true| +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @param Foo + */ +function quux (foo = 'FOO') { + +} +// Message: Expected @param names to be "foo". Got "Foo". + +/** + * @arg Foo + */ +function quux (foo = 'FOO') { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} +// Message: Expected @arg names to be "foo". Got "Foo". + +/** + * @param Foo + */ +function quux (foo) { + +} +// Message: Expected @param names to be "foo". Got "Foo". + +/** + * @param Foo.Bar + */ +function quux (foo) { + +} +// Message: @param path declaration ("Foo.Bar") appears before any real parameter. + +/** + * @param foo + * @param Foo.Bar + */ +function quux (foo) { + +} +// Message: @param path declaration ("Foo.Bar") root node name ("Foo") does not match previous real parameter name ("foo"). + +/** + * Assign the project to a list of employees. + * @param {string} employees[].name - The name of an employee. + * @param {string} employees[].department - The employee's department. + */ +function assign (employees) { + +}; +// Message: @param path declaration ("employees[].name") appears before any real parameter. + +/** + * Assign the project to a list of employees. + * @param {string} employees[].name - The name of an employee. + * @param {string} employees[].name - The employee's department. + */ +function assign (employees) { + +}; +// "jsdoc/check-param-names": ["error"|"warn", {"enableFixer":true}] +// Message: Duplicate @param "employees[].name" + +/** + * @param foo + * @param foo.bar + * @param bar + */ +function quux (bar, foo) { + +} +// Message: Expected @param names to be "bar, foo". Got "foo, bar". + +/** + * @param foo + * @param bar + */ +function quux (foo) { + +} +// Message: @param "bar" does not match an existing function parameter. + +/** + * @param foo + * @param foo + */ +function quux (foo) { + +} +// "jsdoc/check-param-names": ["error"|"warn", {"enableFixer":true}] +// Message: Duplicate @param "foo" + +class bar { + /** + * @param foo + * @param foo + */ + quux (foo) { + + } +} +// "jsdoc/check-param-names": ["error"|"warn", {"enableFixer":true}] +// Message: Duplicate @param "foo" + +/** + * @param foo + * @param foo + */ +function quux (foo, bar) { + +} +// "jsdoc/check-param-names": ["error"|"warn", {"enableFixer":true}] +// Message: Duplicate @param "foo" + +/** + * @param foo + * @param foo + */ +function quux (foo, foo) { + +} +// "jsdoc/check-param-names": ["error"|"warn", {"enableFixer":true}] +// Message: Duplicate @param "foo" + +/** + * @param cfg + * @param cfg.foo + * @param cfg.foo + */ +function quux ({foo}) { + +} +// "jsdoc/check-param-names": ["error"|"warn", {"enableFixer":true}] +// Message: Duplicate @param "cfg.foo" + +/** + * @param cfg + * @param cfg.foo + * @param cfg.foo + */ +function quux ({foo}) { + +} +// Message: Duplicate @param "cfg.foo" + +/** + * @param cfg + * @param cfg.foo + */ +function quux ({foo, bar}) { + +} +// Message: Missing @param "cfg.bar" + +/** + * @param cfg + * @param cfg.foo + * @param [cfg.foo] + * @param baz + */ +function quux ({foo}, baz) { + +} +// "jsdoc/check-param-names": ["error"|"warn", {"enableFixer":true}] +// Message: Duplicate @param "cfg.foo" + +/** + * @param cfg + * @param cfg.foo + * @param [cfg.foo="with a default"] + * @param baz + */ +function quux ({foo, bar}, baz) { + +} +// Message: Missing @param "cfg.bar" + +/** + * @param cfg + * @param cfg.foo + * @param [cfg.foo="with a default"] + * @param baz + */ +function quux ({foo}, baz) { + +} +// "jsdoc/check-param-names": ["error"|"warn", {"enableFixer":true}] +// Message: Duplicate @param "cfg.foo" + +/** + * @param cfg + * @param [cfg.foo="with a default"] + * @param baz + */ +function quux ({foo, bar}, baz) { + +} +// Message: Missing @param "cfg.bar" + +/** + * @param args + */ +function quux ({a, b}) { + +} +// Message: Missing @param "args.a" + +/** + * @param args + */ +function quux ({a, b} = {}) { + +} +// Message: Missing @param "args.a" + +export class SomeClass { + /** + * @param prop + */ + constructor(private property: string) {} +} +// Message: Expected @param names to be "property". Got "prop". + +export class SomeClass { + /** + * @param prop + * @param prop.foo + */ + constructor(prop: { foo: string, bar: string }) {} +} +// Message: Missing @param "prop.bar" + +export class SomeClass { + /** + * @param prop + * @param prop.foo + * @param prop.bar + */ + constructor(options: { foo: string, bar: string }) {} +} +// Message: @param "prop" does not match parameter name "options" + +export class SomeClass { + /** + * @param options + * @param options.foo + * @param options.bar + */ + constructor(options: { foo: string }) {} +} +// Message: @param "options.bar" does not exist on options + +/** + * @param foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}} +// Message: Unexpected tag `@param` + +/** + * @param {Error} error Exit code + * @param {number} [code = 1] Exit code + */ +function quux (error, cde = 1) { +}; +// Message: Expected @param names to be "error, cde". Got "error, code". + +/** + * @param foo + */ +function quux ([a, b] = []) { + +} +// Message: Missing @param "foo."0"" + +/** + * @param options + * @param options.foo + */ +function quux ({foo, ...extra}) { +} +// "jsdoc/check-param-names": ["error"|"warn", {"checkRestProperty":true}] +// Message: Missing @param "options.extra" + +/** + * @param cfg + * @param cfg.foo + * @param cfg.bar + * @param cfg.extra + */ +function quux ({foo, ...extra}) { + +} +// "jsdoc/check-param-names": ["error"|"warn", {"checkRestProperty":true}] +// Message: @param "cfg.bar" does not exist on cfg + +/** + * Converts an SVGRect into an object. + * @param {SVGRect} bbox - a SVGRect + */ +const bboxToObj = function ({x, y, width, height}) { + return {x, y, width, height}; +}; +// "jsdoc/check-param-names": ["error"|"warn", {"checkTypesPattern":"SVGRect"}] +// Message: Missing @param "bbox.x" + +/** + * Converts an SVGRect into an object. + * @param {object} bbox - a SVGRect + */ +const bboxToObj = function ({x, y, width, height}) { + return {x, y, width, height}; +}; +// Message: Missing @param "bbox.x" + +module.exports = class GraphQL { + /** + * @param fetchOptions + * @param cacheKey + */ + fetch = ({ url, ...options }, cacheKey) => { + } +}; +// "jsdoc/check-param-names": ["error"|"warn", {"checkRestProperty":true}] +// Message: Missing @param "fetchOptions.url" + +/** + * Testing + * + * @param options + * @param options.one One + * @param options.two Two + * @param options.four Four + */ +function testingEslint(options: { + one: string; + two: string; + three: string; +}): string { + return one + two + three; +} +// Message: Missing @param "options.three" + +/** + * + */ +function quux() { + +} +// Settings: {"jsdoc":{"structuredTags":{"see":{"name":false,"required":["name"]}}}} +// Message: Cannot add "name" to `require` with the tag's `name` set to `false` + +/** + * @param root + * @param foo + */ +function quux ({foo, bar}, baz) { + +} +// "jsdoc/check-param-names": ["error"|"warn", {"checkDestructured":false}] +// Message: Expected @param names to be "root, baz". Got "root, foo". + +/** + * Description. + * @param {Object} options + * @param {FooBar} foo + */ +function quux ({ foo: { bar } }) {} +// Message: Missing @param "options.foo" + +/** + * Description. + * @param {Object} options + * @param options.foo + */ +function quux ({ foo: { bar } }) {} +// Message: Missing @param "options.foo.bar" + +/** + * Description. + * @param {object} options Options. + * @param {object} options.foo A description. + * @param {object} options.foo.bar + */ +function foo({ foo: { bar: { baz } }}) {} +// Message: Missing @param "options.foo.bar.baz" + +/** +* Returns a number. +* @param {Object} props Props. +* @param {Object} props.prop Prop. +* @param {string} props.prop.a String. +* @param {string} props.prop.b String. +* @return {number} A number. +*/ +export function testFn1 ({ prop = { a: 1, b: 2 } }) { +} +// "jsdoc/check-param-names": ["error"|"warn", {"useDefaultObjectProperties":false}] +// Message: @param "props.prop.a" does not exist on props + +/** + * @param {object} cfg + * @param {string} cfg.foo + * @param {string} cfg.bar + * @param {object} cfg.extra + */ +function quux ({foo}) { + +} +// Message: @param "cfg.bar" does not exist on cfg + +/** + * @param {object} cfg + * @param {string} cfg.foo + * @param {string} cfg.bar + * @param {object} cfg.extra + */ +function quux ({foo}) { + +} +// "jsdoc/check-param-names": ["error"|"warn", {"disableExtraPropertyReporting":true}] +// Message: @param "cfg.bar" does not exist on cfg + +/** + * @param {object} root + * @param {object} root.cfg + * @param {object} root.cfg.a + * @param {string} root.cfg.a.foo + * @param {string} root.cfg.a.bar + * @param {object} root.cfg.a.extra + */ +function quux ({cfg: {a: {foo}}}) { + +} +// Message: @param "root.cfg.a.bar" does not exist on root + +/** + * @param {object} root + * @param {object} root.cfg + * @param {object} root.cfg.a + * @param {string} root.cfg.a.foo + * @param {string} root.cfg.a.bar + * @param {object} root.cfg.a.extra + */ +function quux ({cfg: {a: {foo}}}) { + +} +// "jsdoc/check-param-names": ["error"|"warn", {"disableExtraPropertyReporting":true}] +// Message: @param "root.cfg.a.bar" does not exist on root + +/** + * @param {object} root + * @param {object} root.cfg + * @param {string} root.cfg.foo + * @param {string} root.cfg.bar + * @param {object} root.cfg.extra + */ +function quux ({cfg}) { + +} +// Message: @param "root.cfg.foo" does not exist on root + +/** + * @param foo + * @param foo + * on another line + */ +function quux (foo) { + +} +// "jsdoc/check-param-names": ["error"|"warn", {"enableFixer":true}] +// Message: Duplicate @param "foo" + +/** + * @param barr This is the description of bar. Oops, we misspelled "bar" as "barr". + */ +declare function foo(bar: number) {} +// Message: Expected @param names to be "bar". Got "barr". +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * + */ +function quux (foo) { + +} + +/** + * @param foo + */ +function quux (foo) { + +} + +/** + * @param foo + * @param bar + */ +function quux (foo, bar) { + +} + +/** + * @param foo + * @param bar + */ +function quux (foo, bar, baz) { + +} + +/** + * @param foo + * @param foo.foo + * @param bar + */ +function quux (foo, bar) { + +} + +/** + * @param args + */ +function quux (...args) { + +} + +/** + * @param foo + * @param foo.a + * @param foo.b + */ +function quux ({a, b}) { + +} + +/** + * @param foo + * @param foo.a + * @param foo.b + */ +function quux ({"a": A, b}) { + +} + +/** + * @param foo + * @param foo."a" + * @param foo.b + */ +function quux ({a: A, b}) { + +} + +/** + * @param foo + * @param foo."a-b" + * @param foo.b + */ +function quux ({"a-b": A, b}) { + +} + +/** + * @param foo + * @param foo.bar + * @param foo.baz + * @param bar + */ +function quux (foo, bar) { + +} + +/** + * Assign the project to a list of employees. + * @param {object[]} employees - The employees who are responsible for the project. + * @param {string} employees[].name - The name of an employee. + * @param {string} employees[].department - The employee's department. + */ +function assign (employees) { + +}; + +export class SomeClass { + /** + * @param property + */ + constructor(private property: string) {} +} + +export class SomeClass { + /** + * @param options + * @param options.foo + * @param options.bar + */ + constructor(options: { foo: string, bar: string }) {} +} + +export class SomeClass { + /** + * @param options + * @param options.foo + * @param options.bar + */ + constructor({ foo, bar }: { foo: string, bar: string }) {} +} + +export class SomeClass { + /** + * @param options + * @param options.foo + * @param options.bar + */ + constructor({ foo, bar }: { foo: string, bar: string }) {} +} + +/** + * @param {Error} error Exit code + * @param {number} [code = 1] Exit code + */ +function quux (error, code = 1) { +}; + +/** + * @param foo + * @param bar + */ +function quux (foo) { + +} +// "jsdoc/check-param-names": ["error"|"warn", {"allowExtraTrailingParamDocs":true}] + +/** + * @param cfg + * @param cfg.foo + * @param baz + */ +function quux ({foo}, baz) { + +} + +/** + * @param cfg + * @param cfg.foo + * @param cfg2 + */ +function quux ({foo}, cfg2) { + +} + +/** + * @param cfg + * @param cfg.foo + * @param baz + * @param baz.cfg + */ +function quux ({foo}, {cfg}) { + +} + +/** + * @param options + * @param options.foo + */ +function quux ({foo, ...extra}) { +} + +/** + * @param foo + * @param bar + */ +function quux (foo, bar, ...extra) { + +} + +/** +* Converts an SVGRect into an object. +* @param {SVGRect} bbox - a SVGRect +*/ +const bboxToObj = function ({x, y, width, height}) { + return {x, y, width, height}; +}; + +/** +* Converts an SVGRect into an object. +* @param {SVGRect} bbox - a SVGRect +*/ +const bboxToObj = function ({x, y, width, height}) { + return {x, y, width, height}; +}; + +/** +* Converts an SVGRect into an object. +* @param {object} bbox - a SVGRect +*/ +const bboxToObj = function ({x, y, width, height}) { + return {x, y, width, height}; +}; +// "jsdoc/check-param-names": ["error"|"warn", {"checkTypesPattern":"SVGRect"}] + +class CSS { + /** + * Set one or more CSS properties for the set of matched elements. + * + * @param {Object} propertyObject - An object of property-value pairs to set. + */ + setCssObject(propertyObject: {[key: string]: string | number}): void { + } +} + +/** + * Logs a string. + * + * @param input - String to output. + */ +export default function (input: { + [foo: string]: { a: string; b: string }; +}): void { + input; +} + +export class Thing { + foo: any; + + /** + * @param {} C + */ + constructor(C: { new (): any }) { + this.foo = new C(); + } +} + +/** + * @param foo + * @param root + */ +function quux (foo, {bar}) { + +} +// "jsdoc/check-param-names": ["error"|"warn", {"checkDestructured":false}] + +class A { + /** + * Show a prompt. + * @param hideButton true if button should be hidden, false otherwise + * @param onHidden delegate to call when the prompt is hidden + */ + public async showPrompt(hideButton: boolean, onHidden: {(): void}): Promise + { + } +} + +/** + * Description. + * @param {Object} options Options. + * @param {FooBar} options.foo foo description. + */ +function quux ({ foo: { bar }}) {} + +/** + * Description. + * @param {FooBar} options + * @param {Object} options.foo + */ +function quux ({ foo: { bar } }) {} +// "jsdoc/check-param-names": ["error"|"warn", {"checkTypesPattern":"FooBar"}] + +/** + * Description. + * @param {Object} options + * @param {FooBar} options.foo + * @param {FooBar} options.baz + */ +function quux ({ foo: { bar }, baz: { cfg } }) {} + +/** + * Item + * + * @param {object} props + * @param {object} props.data - case data + * @param {string} props.data.className - additional css class + * @param props.val + */ +export default function Item({ + data: { + className, + } = {}, + val = 4 +}) { +} + +/** + * @param obj + * @param obj.data + * @param obj.data."0" + * @param obj.data."1" + * @param obj.data."2" + * @param obj.defaulting + * @param obj.defaulting."0" + * @param obj.defaulting."1" + */ +function Item({ + data: [foo, bar, ...baz], + defaulting: [quux, xyz] = [] +}) { +} + +/** +* Returns a number. +* @param {Object} props Props. +* @param {Object} props.prop Prop. +* @param {string} props.prop.a String. +* @param {string} props.prop.b String. +* @return {number} A number. +*/ +export function testFn1 ({ prop = { a: 1, b: 2 } }) { +} +// "jsdoc/check-param-names": ["error"|"warn", {"useDefaultObjectProperties":true}] + +/** + * @param {object} root + * @param {object} root.cfg + * @param {string} root.cfg.foo + * @param {string} root.cfg.bar + * @param {object} root.cfg.extra + */ +function quux ({cfg}) { + +} +// "jsdoc/check-param-names": ["error"|"warn", {"disableExtraPropertyReporting":true}] + +class A { + /** + * @param cfg + * @param cfg.abc + */ + constructor({ + [new.target.prop]: cX, + abc + }) { + } +} + +/** + * @param root + * @param root."0" Ignored + * @param root."1" Our "b" + */ +const foo = ([, b]) => b; + +/** + * @param arg1 This is the description for arg1. + */ +function foo(this: void, arg1: number): void; + +declare global { + /** + * @param arg1 This is the number for foo. + */ + function foo(this: void, arg1: number): void; +} + +declare global { + /** + * @param r Range is 0-1. + * @param g Range is 0-1. + * @param b Range is 0-1. + */ + function Color( + this: void, + r: float, + g: float, + b: float, + ): Color; +} + +/** + * @param this desc + * @param bar number to return + * @returns number returned back to caller + */ +function foo(this: T, bar: number): number { + console.log(this.name); + return bar; +} +```` + diff --git a/docs/rules/check-property-names.md b/docs/rules/check-property-names.md new file mode 100644 index 000000000..1edeb843c --- /dev/null +++ b/docs/rules/check-property-names.md @@ -0,0 +1,220 @@ + + +### check-property-names + +Ensures that property names in JSDoc are not duplicated on the same block +and that nested properties have defined roots. + + + +#### Options + + + +##### enableFixer + +Set to `true` to auto-remove `@property` duplicates (based on +identical names). + +Note that this option will remove duplicates of the same name even if +the definitions do not match in other ways (e.g., the second property will +be removed even if it has a different type or description). + +||| +|---|---| +|Context|Everywhere| +|Options|`enableFixer`| +|Tags|`property`| +|Aliases|`prop`| +|Recommended|true| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @typedef (SomeType) SomeTypedef + * @property Foo.Bar + */ +// Message: @property path declaration ("Foo.Bar") appears before any real property. + +/** + * @typedef (SomeType) SomeTypedef + * @property foo + * @property Foo.Bar + */ +// Message: @property path declaration ("Foo.Bar") root node name ("Foo") does not match previous real property name ("foo"). + +/** + * Assign the project to a list of employees. + * @typedef (SomeType) SomeTypedef + * @property {string} employees[].name - The name of an employee. + * @property {string} employees[].department - The employee's department. + */ +// Message: @property path declaration ("employees[].name") appears before any real property. + +/** + * Assign the project to a list of employees. + * @typedef (SomeType) SomeTypedef + * @property {string} employees[].name - The name of an employee. + * @property {string} employees[].name - The employee's department. + */ +// "jsdoc/check-property-names": ["error"|"warn", {"enableFixer":true}] +// Message: Duplicate @property "employees[].name" + +/** + * @typedef (SomeType) SomeTypedef + * @property foo + * @property foo + */ +// "jsdoc/check-property-names": ["error"|"warn", {"enableFixer":true}] +// Message: Duplicate @property "foo" + +/** + * @typedef (SomeType) SomeTypedef + * @property foo + * @property foo + */ +// Message: Duplicate @property "foo" + +/** + * @typedef (SomeType) SomeTypedef + * @property cfg + * @property cfg.foo + * @property cfg.foo + */ +function quux ({foo, bar}) { + +} +// "jsdoc/check-property-names": ["error"|"warn", {"enableFixer":true}] +// Message: Duplicate @property "cfg.foo" + +class Test { + /** + * @typedef (SomeType) SomeTypedef + * @property cfg + * @property cfg.foo + * @property cfg.foo + */ + quux ({foo, bar}) { + + } +} +// "jsdoc/check-property-names": ["error"|"warn", {"enableFixer":true}] +// Message: Duplicate @property "cfg.foo" + +/** + * @typedef (SomeType) SomeTypedef + * @property cfg + * @property cfg.foo + * @property [cfg.foo] + * @property baz + */ +function quux ({foo, bar}, baz) { + +} +// "jsdoc/check-property-names": ["error"|"warn", {"enableFixer":true}] +// Message: Duplicate @property "cfg.foo" + +/** + * @typedef (SomeType) SomeTypedef + * @property cfg + * @property cfg.foo + * @property [cfg.foo="with a default"] + * @property baz + */ +function quux ({foo, bar}, baz) { + +} +// "jsdoc/check-property-names": ["error"|"warn", {"enableFixer":true}] +// Message: Duplicate @property "cfg.foo" + +/** + * @typedef (SomeType) SomeTypedef + * @prop foo + * @prop foo + */ +// Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}} +// "jsdoc/check-property-names": ["error"|"warn", {"enableFixer":true}] +// Message: Duplicate @prop "foo" + +/** + * @typedef (SomeType) SomeTypedef + * @property foo + */ +// Settings: {"jsdoc":{"tagNamePreference":{"property":false}}} +// Message: Unexpected tag `@property` +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * + */ + +/** + * @typedef (SomeType) SomeTypedef + * @property foo + */ + +/** + * @typedef (SomeType) SomeTypedef + * @prop foo + */ + +/** + * @typedef (SomeType) SomeTypedef + * @property foo + * @property bar + */ + +/** + * @typedef (SomeType) SomeTypedef + * @property foo + * @property foo.foo + * @property bar + */ + +/** + * Assign the project to a list of employees. + * @typedef (SomeType) SomeTypedef + * @property {object[]} employees - The employees who are responsible for the project. + * @property {string} employees[].name - The name of an employee. + * @property {string} employees[].department - The employee's department. + */ + +/** + * @typedef (SomeType) SomeTypedef + * @property {Error} error Exit code + * @property {number} [code = 1] Exit code + */ + +/** + * @namespace (SomeType) SomeNamespace + * @property {Error} error Exit code + * @property {number} [code = 1] Exit code + */ + +/** + * @class + * @property {Error} error Exit code + * @property {number} [code = 1] Exit code + */ +function quux (code = 1) { + this.error = new Error('oops'); + this.code = code; +} + +/** + * @typedef (SomeType) SomeTypedef + * @property foo + * @property foo.bar + * @property foo.baz + * @property bar + */ +```` + diff --git a/docs/rules/check-syntax.md b/docs/rules/check-syntax.md new file mode 100644 index 000000000..643e84ded --- /dev/null +++ b/docs/rules/check-syntax.md @@ -0,0 +1,65 @@ + + +### check-syntax + +Reports against syntax not encouraged for the mode (e.g., Google Closure +Compiler in "jsdoc" or "typescript" mode). Note that this rule will not check +for types that are wholly invalid for a given mode, as that is covered by +`valid-types`. + +Currently checks against: + +- Use of `=` in "jsdoc" or "typescript" mode + +Note that "jsdoc" actually allows Closure syntax, but with another +option available for optional parameters (enclosing the name in brackets), the +rule is enforced (except under "permissive" and "closure" modes). + +||| +|---|---| +|Context|everywhere| +|Tags|N/A| +|Recommended|false| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @param {string=} foo + */ +function quux (foo) { + +} +// Message: Syntax should not be Google Closure Compiler style. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @param {string=} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * @param {string} [foo] + */ +function quux (foo) { + +} + +/** + * + */ +function quux (foo) { + +} +```` + diff --git a/docs/rules/check-tag-names.md b/docs/rules/check-tag-names.md new file mode 100644 index 000000000..2f9643d9a --- /dev/null +++ b/docs/rules/check-tag-names.md @@ -0,0 +1,1089 @@ + + +### check-tag-names + +Reports invalid block tag names. + +Valid [JSDoc 3 Block Tags](https://jsdoc.app/#block-tags) are: + +``` +abstract +access +alias +async +augments +author +borrows +callback +class +classdesc +constant +constructs +copyright +default +deprecated +description +enum +event +example +exports +external +file +fires +function +generator +global +hideconstructor +ignore +implements +inheritdoc +inner +instance +interface +kind +lends +license +listens +member +memberof +memberof! +mixes +mixin +module +name +namespace +override +package +param +private +property +protected +public +readonly +requires +returns +see +since +static +summary +this +throws +todo +tutorial +type +typedef +variation +version +yields +``` + +`modifies` is also supported (see [source](https://github.com/jsdoc/jsdoc/blob/master/packages/jsdoc/lib/jsdoc/tag/dictionary/definitions.js#L594)) +but is undocumented. + +The following synonyms are also recognized if you set them in +`tagNamePreference` as a key (or replacement): + +``` +arg +argument +const +constructor +defaultvalue +desc +emits +exception +extends +fileoverview +func +host +method +overview +prop +return +var +virtual +yield +``` + +If you wish to allow in certain cases both a primary tag name and its +alias(es), you can set a normally non-preferred tag name to itself to indicate +that you want to allow both the default tag (in this case `@returns`) and a +non-default (in this case `return`): + +```js +"tagNamePreference": { + "return": "return", +} +``` + +Because the tags indicated as replacements in +`settings.jsdoc.tagNamePreference` will automatically be considered as valid, +the above works. + +Likewise are the tag keys of `settings.jsdoc.structuredTags` automatically +considered as valid (as their defining an expected structure for tags implies +the tags may be used). + +For [TypeScript](https://www.typescriptlang.org/docs/handbook/type-checking-javascript-files.html#supported-jsdoc) +(or Closure), when `settings.jsdoc.mode` is set to `typescript` or `closure`, +one may also use the following: + +``` +template +``` + +And for [Closure](https://github.com/google/closure-compiler/wiki/Annotating-JavaScript-for-the-Closure-Compiler), +when `settings.jsdoc.mode` is set to `closure`, one may use the following (in +addition to the jsdoc and TypeScript tags–though replacing `returns` with +`return`): + +``` +define (synonym of `const` per jsdoc source) +dict +export +externs +final +implicitCast (casing distinct from that recognized by jsdoc internally) +inheritDoc (casing distinct from that recognized by jsdoc internally) +noalias +nocollapse +nocompile +noinline +nosideeffects +polymer +polymerBehavior +preserve +record (synonym of `interface` per jsdoc source) +struct +suppress +unrestricted +``` + +...and these undocumented tags which are only in [source](https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/parsing/Annotation.java): + +``` +closurePrimitive +customElement +expose +hidden +idGenerator +meaning +mixinClass +mixinFunction +ngInject +owner +typeSummary +wizaction +``` + +If you instead wish to reject a normally valid tag, e.g., `@todo`, one may set the +tag to `false`: + +```json +{ + "rules": {}, + "settings": { + "jsdoc": { + "tagNamePreference": { + "todo": false + } + } + } +} +``` + + + +#### Options + + + +##### definedTags + +Use an array of `definedTags` strings to configure additional, allowed tags. +The format is as follows: + +```json +{ + "definedTags": ["note", "record"] +} +``` + + + +##### enableFixer + +Set to `false` to disable auto-removal of types that are redundant with the [`typed` option](#user-content-typed). + + + +##### jsxTags + +If this is set to `true`, all of the following tags used to control JSX output are allowed: + +``` +jsx +jsxFrag +jsxImportSource +jsxRuntime +``` + +For more information, see the [babel documentation](https://babeljs.io/docs/en/babel-plugin-transform-react-jsx). + + + +##### typed + +If this is set to `true`, additionally checks for tag names that are redundant when using a type checker such as TypeScript. + +These tags are always unnecessary when using TypeScript or similar: + +``` +augments +callback +class +enum +implements +private +property +protected +public +readonly +this +type +typedef +``` + +These tags are unnecessary except when inside a TypeScript `declare` context: + +``` +abstract +access +class +constant +constructs +default +enum +export +exports +function +global +inherits +instance +interface +member +memberof +memberOf +method +mixes +mixin +module +name +namespace +override +property +requires +static +this +``` + +||| +|---|---| +|Context|everywhere| +|Tags|N/A| +|Recommended|true| +|Options|`definedTags`, `enableFixer`, `jsxTags`, `typed`| +|Settings|`tagNamePreference`, `mode`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** @type {string} */let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@type' is redundant when using a type system. + +/** @type {string} */let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"enableFixer":false,"typed":true}] +// Message: '@type' is redundant when using a type system. + +/** @type {string} */ let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@type' is redundant when using a type system. + +/** @type {string} */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@type' is redundant when using a type system. + +/** @type {string} */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@type' is redundant when using a type system. + +/** @type {string} - extra info */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@type' is redundant when using a type system. + +/** + * Existing comment. + * @type {string} + */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@type' is redundant when using a type system. + +/** @abstract */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@abstract' is redundant outside of ambient (`declare`/`.d.ts`) contexts when using a type system. + +/** @abstract */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"enableFixer":false,"typed":true}] +// Message: '@abstract' is redundant outside of ambient (`declare`/`.d.ts`) contexts when using a type system. + +const a = { + /** @abstract */ + b: true, +}; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@abstract' is redundant outside of ambient (`declare`/`.d.ts`) contexts when using a type system. + +/** @template */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@template' without a name is redundant when using a type system. + +/** + * Prior description. + * + * @template + */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@template' without a name is redundant when using a type system. + +/** @typoo {string} */ +let a; +// Message: Invalid JSDoc tag name "typoo". + +/** @typoo {string} */ +let a; +// Settings: {"jsdoc":{"structuredTags":{"parameter":{"name":"namepath-referencing","required":["type","name"],"type":true}}}} +// Message: Invalid JSDoc tag name "typoo". + +/** + * @Param + */ +function quux () { + +} +// Message: Invalid JSDoc tag name "Param". + +/** + * @foo + */ +function quux () { + +} +// Message: Invalid JSDoc tag name "foo". + +/** + * @arg foo + */ +function quux (foo) { + +} +// Message: Invalid JSDoc tag (preference). Replace "arg" JSDoc tag with "param". + +/** + * @param foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} +// Message: Invalid JSDoc tag (preference). Replace "param" JSDoc tag with "arg". + +/** + * @constructor foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"tag constructor":"cons"}}} +// Message: Invalid JSDoc tag (preference). Replace "constructor" JSDoc tag with "cons". + +/** + * @arg foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"arg":"somethingDifferent"}}} +// Message: Invalid JSDoc tag (preference). Replace "arg" JSDoc tag with "somethingDifferent". + +/** + * @param foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"param":"parameter"}}} +// Message: Invalid JSDoc tag (preference). Replace "param" JSDoc tag with "parameter". + +/** + * @bar foo + */ +function quux (foo) { + +} +// Message: Invalid JSDoc tag name "bar". + +/** + * @baz @bar foo + */ +function quux (foo) { + +} +// "jsdoc/check-tag-names": ["error"|"warn", {"definedTags":["bar"]}] +// Message: Invalid JSDoc tag name "baz". + +/** + * @bar + * @baz + */ +function quux (foo) { + +} +// "jsdoc/check-tag-names": ["error"|"warn", {"definedTags":["bar"]}] +// Message: Invalid JSDoc tag name "baz". + +/** + * @todo + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"todo":false}}} +// Message: Blacklisted tag found (`@todo`) + +/** + * @todo + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"todo":{"message":"Please resolve to-dos or add to the tracker"}}}} +// Message: Please resolve to-dos or add to the tracker + +/** + * @todo + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"todo":{"message":"Please use x-todo instead of todo","replacement":"x-todo"}}}} +// Message: Please use x-todo instead of todo + +/** + * @todo + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"todo":{"message":"Please use x-todo instead of todo","replacement":"x-todo"}}}} +// Message: Please use x-todo instead of todo + +/** + * @todo + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"todo":55}}} +// Message: Invalid `settings.jsdoc.tagNamePreference`. Values must be falsy, a string, or an object. + +/** + * @property {object} a + * @prop {boolean} b + */ +function quux () { + +} +// Message: Invalid JSDoc tag (preference). Replace "prop" JSDoc tag with "property". + +/** + * @abc foo + * @abcd bar + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"abc":"abcd"}}} +// "jsdoc/check-tag-names": ["error"|"warn", {"definedTags":["abcd"]}] +// Message: Invalid JSDoc tag (preference). Replace "abc" JSDoc tag with "abcd". + +/** + * @abc + * @abcd + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"abc":"abcd"}}} +// Message: Invalid JSDoc tag (preference). Replace "abc" JSDoc tag with "abcd". + +/** + * @returns + */ +function quux (foo) {} +// Settings: {"jsdoc":{"mode":"closure"}} +// Message: Invalid JSDoc tag (preference). Replace "returns" JSDoc tag with "return". + +/** + * @modifies + * @abstract + * @access + * @alias + * @async + * @augments + * @author + * @borrows + * @callback + * @class + * @classdesc + * @constant + * @constructs + * @copyright + * @default + * @deprecated + * @description + * @enum + * @event + * @example + * @exports + * @external + * @file + * @fires + * @function + * @generator + * @global + * @hideconstructor + * @ignore + * @implements + * @inheritdoc + * @inheritDoc + * @inner + * @instance + * @interface + * @kind + * @lends + * @license + * @listens + * @member + * @memberof + * @memberof! + * @mixes + * @mixin + * @module + * @name + * @namespace + * @override + * @package + * @param + * @private + * @property + * @protected + * @public + * @readonly + * @requires + * @returns + * @see + * @since + * @static + * @summary + * @this + * @throws + * @todo + * @tutorial + * @type + * @typedef + * @variation + * @version + * @yields + */ +function quux (foo) {} +// Settings: {"jsdoc":{"mode":"badMode"}} +// Message: Unrecognized value `badMode` for `settings.jsdoc.mode`. + +/** + * @modifies + * @abstract + * @access + * @alias + * @async + * @augments + * @author + * @borrows + * @callback + * @class + * @classdesc + * @constant + * @constructs + * @copyright + * @default + * @deprecated + * @description + * @enum + * @event + * @example + * @exports + * @external + * @file + * @fires + * @function + * @generator + * @global + * @hideconstructor + * @ignore + * @implements + * @inheritdoc + * @inheritDoc + * @inner + * @instance + * @interface + * @kind + * @lends + * @license + * @listens + * @member + * @memberof + * @memberof! + * @mixes + * @mixin + * @module + * @name + * @namespace + * @override + * @package + * @param + * @private + * @property + * @protected + * @public + * @readonly + * @requires + * @returns + * @see + * @since + * @static + * @summary + * @this + * @throws + * @todo + * @tutorial + * @type + * @typedef + * @variation + * @version + * @yields + * @internal + * @overload + * @satisfies + * @template + */ +function quux (foo) {} +// Message: Invalid JSDoc tag name "internal". + +/** + * @externs + */ +function quux (foo) {} +// Message: Invalid JSDoc tag name "externs". + +/** @jsx h */ +/** @jsxFrag Fragment */ +/** @jsxImportSource preact */ +/** @jsxRuntime automatic */ +// Message: Invalid JSDoc tag name "jsx". + +/** + * @constructor + */ +function Test() { + this.works = false; +} +// Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}} +// Message: Invalid JSDoc tag (preference). Replace "constructor" JSDoc tag with "class". + +/** @typedef {Object} MyObject + * @property {string} id - my id + */ +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@typedef' is redundant when using a type system. + +/** + * @property {string} id - my id + */ +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@property' is redundant when using a type system. + +/** @typedef {Object} MyObject */ +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@typedef' is redundant when using a type system. + +/** @typedef {Object} MyObject + */ +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] +// Message: '@typedef' is redundant when using a type system. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** @default 0 */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] + +/** @default 0 */ +declare let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] + +/** @abstract */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] + +/** @abstract */ +declare let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] + +/** @abstract */ +{ declare let a; } +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] + +function test() { + /** @abstract */ + declare let a; +} +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] + +/** @template name */ +let a; +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] + +/** @param param - takes information */ +function takesOne(param) {} +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] + +/** + * @param foo + */ +function quux (foo) { + +} + +/** + * @memberof! foo + */ +function quux (foo) { + +} + +/** + * @arg foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} + +/** + * @parameter foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"structuredTags":{"parameter":{"name":"namepath-referencing","required":["type","name"],"type":true}}}} + +/** + * @bar foo + */ +function quux (foo) { + +} +// "jsdoc/check-tag-names": ["error"|"warn", {"definedTags":["bar"]}] + +/** + * @baz @bar foo + */ +function quux (foo) { + +} +// "jsdoc/check-tag-names": ["error"|"warn", {"definedTags":["baz","bar"]}] + +/** + * @baz @bar foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"param":"baz","returns":{"message":"Prefer `bar`","replacement":"bar"},"todo":false}}} + +/** + * @returns + */ +function quux (foo) {} + +/** + * @return + */ +function quux (foo) {} +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * @modifies + * @abstract + * @access + * @alias + * @async + * @augments + * @author + * @borrows + * @callback + * @class + * @classdesc + * @constant + * @constructs + * @copyright + * @default + * @deprecated + * @description + * @enum + * @event + * @example + * @exports + * @external + * @file + * @fires + * @function + * @generator + * @global + * @hideconstructor + * @ignore + * @implements + * @inheritdoc + * @inheritDoc + * @inner + * @instance + * @interface + * @kind + * @lends + * @license + * @listens + * @member + * @memberof + * @memberof! + * @mixes + * @mixin + * @module + * @name + * @namespace + * @override + * @package + * @param + * @private + * @property + * @protected + * @public + * @readonly + * @requires + * @returns + * @see + * @since + * @static + * @summary + * @this + * @throws + * @todo + * @tutorial + * @type + * @typedef + * @variation + * @version + * @yields + */ +function quux (foo) {} + +/** + * @modifies + * @abstract + * @access + * @alias + * @async + * @augments + * @author + * @borrows + * @callback + * @class + * @classdesc + * @constant + * @constructs + * @copyright + * @default + * @deprecated + * @description + * @enum + * @event + * @example + * @exports + * @external + * @file + * @fires + * @function + * @generator + * @global + * @hideconstructor + * @ignore + * @implements + * @inheritdoc + * @inheritDoc + * @inner + * @instance + * @interface + * @kind + * @lends + * @license + * @listens + * @member + * @memberof + * @memberof! + * @mixes + * @mixin + * @module + * @name + * @namespace + * @override + * @package + * @param + * @private + * @property + * @protected + * @public + * @readonly + * @requires + * @returns + * @see + * @since + * @static + * @summary + * @this + * @throws + * @todo + * @tutorial + * @type + * @typedef + * @variation + * @version + * @yields + * @internal + * @overload + * @satisfies + * @template + */ +function quux (foo) {} +// Settings: {"jsdoc":{"mode":"typescript"}} + +/** + * @externs + */ +function quux (foo) {} +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * + */ +function quux (foo) { + +} + +/** + * @todo + */ +function quux () { + +} + +/** + * @extends Foo + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"augments":{"message":"@extends is to be used over @augments.","replacement":"extends"}}}} + +/** + * (Set tag name preference to itself to get aliases to + * work along with main tag name.) + * @augments Bar + * @extends Foo + */ +function quux () { +} +// Settings: {"jsdoc":{"tagNamePreference":{"extends":"extends"}}} + +/** + * Registers the `target` class as a transient dependency; each time the dependency is resolved a new instance will be created. + * + * @param target - The class / constructor function to register as transient. + * + * @example ```ts +@transient() +class Foo { } +``` + * @param Time for a new tag + */ +export function transient(target?: T): T { + // ... +} + +/** @jsx h */ +/** @jsxFrag Fragment */ +/** @jsxImportSource preact */ +/** @jsxRuntime automatic */ +// "jsdoc/check-tag-names": ["error"|"warn", {"jsxTags":true}] + +/** + * @internal + */ +// Settings: {"jsdoc":{"mode":"typescript"}} + +interface WebTwain { + /** + * Converts the images specified by the indices to base64 synchronously. + * @function WebTwain#ConvertToBase64 + * @returns {Base64Result} + + ConvertToBase64(): Base64Result; + */ + + /** + * Converts the images specified by the indices to base64 asynchronously. + * @function WebTwain#ConvertToBase64 + * @returns {boolean} + */ + ConvertToBase64(): boolean; +} + +/** + * @overload + * @satisfies + */ +// Settings: {"jsdoc":{"mode":"typescript"}} +```` + diff --git a/docs/rules/check-types.md b/docs/rules/check-types.md new file mode 100644 index 000000000..f6147ea6d --- /dev/null +++ b/docs/rules/check-types.md @@ -0,0 +1,1168 @@ + + +### check-types + +Reports invalid types. + +By default, ensures that the casing of native types is the same as in this +list: + +``` +undefined +null +boolean +number +bigint +string +symbol +object (For TypeScript's sake, however, using `Object` when specifying child types on it like `Object`) +Array +Function +Date +RegExp +``` + + + +#### Options + +`check-types` allows one option: + +- An option object: + - with the key `noDefaults` to insist that only the supplied option type + map is to be used, and that the default preferences (such as "string" + over "String") will not be enforced. The option's default is `false`. + - with the key `exemptTagContexts` which will avoid reporting when a + bad type is found on a specified tag. Set to an array of objects with + a key `tag` set to the tag to exempt, and a `types` key which can + either be `true` to indicate that any types on that tag will be allowed, + or to an array of strings which will only allow specific bad types. + If an array of strings is given, these must match the type exactly, + e.g., if you only allow `"object"`, it will not allow + `"object"`. Note that this is different from the + behavior of `settings.jsdoc.preferredTypes`. This option is useful + for normally restricting generic types like `object` with + `preferredTypes`, but allowing `typedef` to indicate that its base + type is `object`. + - with the key `unifyParentAndChildTypeChecks` which will treat + `settings.jsdoc.preferredTypes` keys such as `SomeType` as matching + not only child types such as an unadorned `SomeType` but also + `SomeType` and `SomeType.` (and if the type is + instead `Array` (or `[]`), it will match `aChildType[]`). If this + option is `false` or + unset, the former format will only apply to types which are not parent + types/unions whereas the latter formats will only apply for parent + types/unions. The special types `[]`, `.<>` (or `.`), and `<>` + act only as parent types (and will not match a bare child type such as + `Array` even when unified, though, as mentioned, `Array` will match + say `string[]` or `Array.` when unified). The special type + `*` is only a child type. Note that there is no detection of parent + and child type together, e.g., you cannot specify preferences for + `string[]` specifically as distinct from say `number[]`, but you can + target both with `[]` or the child types `number` or `string`. + +If a value is present both as a key and as a value, neither the key nor the +value will be reported. Thus one can use this fact to allow both `object` +and `Object`, for example. Note that in "typescript" mode, this is the default +behavior. + +See also the documentation on `settings.jsdoc.preferredTypes` which impacts +the behavior of `check-types`. + +Note that if there is an error [parsing](https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser) +types for a tag, the function will silently ignore that tag, leaving it to +the `valid-types` rule to report parsing errors. + + + +#### Why not capital case everything? + +Why are `boolean`, `number` and `string` exempt from starting with a capital +letter? Let's take `string` as an example. In Javascript, everything is an +object. The `String` object has prototypes for string functions such as +`.toUpperCase()`. + +Fortunately we don't have to write `new String()` everywhere in our code. +Javascript will automatically wrap string primitives into string Objects when +we're applying a string function to a string primitive. This way the memory +footprint is a tiny little bit smaller, and the +[GC](https://en.wikipedia.org/wiki/Garbage_collection_(computer_science)) has +less work to do. + +So in a sense, there are two types of strings in Javascript: +1. `{string}` literals, also called primitives +2. `{String}` Objects. + +We use the primitives because it's easier to write and uses less memory. +`{String}` and `{string}` are technically both valid, but they are not the same. + +```js +new String('lard') // String {0: "l", 1: "a", 2: "r", 3: "d", length: 4} +'lard' // "lard" +new String('lard') === 'lard' // false +``` + +To make things more confusing, there are also object literals (like `{}`) and +`Object` objects. But object literals are still static `Object`s and `Object` +objects are instantiated objects. So an object primitive is still an `Object` +object. + +However, `Object.create(null)` objects are not `instanceof Object`, however, so +in the case of such a plain object we lower-case to indicate possible support +for these objects. Also, nowadays, TypeScript also [discourages](https://www.typescriptlang.org/docs/handbook/declaration-files/do-s-and-don-ts.html#:~:text=%E2%9D%8C%20Don't%20ever%20use,used%20appropriately%20in%20JavaScript%20code.) +use of `Object` +as a lone type. However, one additional complexity is that TypeScript allows and +actually [currently requires](https://github.com/microsoft/TypeScript/issues/20555) +`Object` (with the initial upper-case) if used in the syntax +`Object.` or `Object` is not useable +in native TypeScript syntax, even if it is allowed within JSDoc. + +Basically, for primitives, we want to define the type as a primitive, because +that's what we use in 99.9% of cases. For everything else, we use the type +rather than the primitive. Otherwise it would all just be `{object}` (with the +additional exception of the special case of `Object.<>` just mentioned). + +In short: It's not about consistency, rather about the 99.9% use case. (And +some functions might not even support the objects if they are checking for +identity.) + +type name | `typeof` | check-types | testcase +--|--|--|-- +**Array** | object | **Array** | `([]) instanceof Array` -> `true` +**Function** | function | **Function** | `(function f () {}) instanceof Function` -> `true` +**Date** | object | **Date** | `(new Date()) instanceof Date` -> `true` +**RegExp** | object | **RegExp** | `(new RegExp(/.+/)) instanceof RegExp` -> `true` +Object | **object** | **object** | `({}) instanceof Object` -> `true` but `Object.create(null) instanceof Object` -> `false` +Boolean | **boolean** | **boolean** | `(true) instanceof Boolean` -> **`false`** +Number | **number** | **number** | `(41) instanceof Number` -> **`false`** +String | **string** | **string** | `("test") instanceof String` -> **`false`** + +If you define your own tags and don't wish their bracketed portions checked +for types, you can use `settings.jsdoc.structuredTags` with a tag `type` of +`false`. If you set their `type` to an array, only those values will be +permitted. + +||| +|---|---| +|Context|everywhere| +|Tags|`augments`, `class`, `constant`, `enum`, `implements`, `member`, `module`, `namespace`, `param`, `property`, `returns`, `throws`, `type`, `typedef`, `yields`| +|Aliases|`constructor`, `const`, `extends`, `var`, `arg`, `argument`, `prop`, `return`, `exception`, `yield`| +|Closure-only|`package`, `private`, `protected`, `public`, `static`| +|Recommended|true| +|Options|`noDefaults`, `exemptTagContexts`, `unifyParentAndChildTypeChecks`| +|Settings|`preferredTypes`, `mode`, `structuredTags`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @param {abc} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"abc":100}}} +// Message: Invalid `settings.jsdoc.preferredTypes`. Values must be falsy, a string, or an object. + +/** + * @param {Number} foo + */ +function quux (foo) { + +} +// Message: Invalid JSDoc @param "foo" type "Number"; prefer: "number". + +/** + * @arg {Number} foo + */ +function quux (foo) { + +} +// Message: Invalid JSDoc @arg "foo" type "Number"; prefer: "number". + +/** + * @returns {Number} foo + * @throws {Number} foo + */ +function quux () { + +} +// Message: Invalid JSDoc @returns type "Number"; prefer: "number". + +/** + * @param {(Number | string | Boolean)=} foo + */ +function quux (foo, bar, baz) { + +} +// Message: Invalid JSDoc @param "foo" type "Number"; prefer: "number". + +/** + * @param {Array.} foo + */ +function quux (foo, bar, baz) { + +} +// Message: Invalid JSDoc @param "foo" type "Number"; prefer: "number". + +/** + * @param {(Number | String)[]} foo + */ +function quux (foo, bar, baz) { + +} +// Message: Invalid JSDoc @param "foo" type "Number"; prefer: "number". + +/** + * @param {abc} foo + */ +function qux(foo) { +} +// Settings: {"jsdoc":{"preferredTypes":{"abc":"Abc","string":"Str"}}} +// Message: Invalid JSDoc @param "foo" type "abc"; prefer: "Abc". + +/** + * @param {abc} foo + */ +function qux(foo) { +} +// Settings: {"jsdoc":{"preferredTypes":{"abc":{"replacement":"Abc"},"string":"Str"}}} +// Message: Invalid JSDoc @param "foo" type "abc"; prefer: "Abc". + +/** + * @param {abc} foo + */ +function qux(foo) { +} +// Settings: {"jsdoc":{"preferredTypes":{"abc":{"message":"Messed up JSDoc @{{tagName}}{{tagValue}} type \"abc\"; prefer: \"Abc\".","replacement":"Abc"},"string":"Str"}}} +// Message: Messed up JSDoc @param "foo" type "abc"; prefer: "Abc". + +/** + * @param {abc} foo + * @param {cde} bar + * @param {object} baz + */ +function qux(foo, bar, baz) { +} +// Settings: {"jsdoc":{"preferredTypes":{"abc":{"message":"Messed up JSDoc @{{tagName}}{{tagValue}} type \"abc\"; prefer: \"Abc\".","replacement":"Abc"},"cde":{"message":"More messed up JSDoc @{{tagName}}{{tagValue}} type \"cde\"; prefer: \"Cde\".","replacement":"Cde"},"object":"Object"}}} +// Message: Messed up JSDoc @param "foo" type "abc"; prefer: "Abc". + +/** + * @param {abc} foo + */ +function qux(foo) { +} +// Settings: {"jsdoc":{"preferredTypes":{"abc":{"message":"Messed up JSDoc @{{tagName}}{{tagValue}} type \"abc\".","replacement":false},"string":"Str"}}} +// Message: Messed up JSDoc @param "foo" type "abc". + +/** + * @param {abc} foo + */ +function qux(foo) { +} +// Settings: {"jsdoc":{"preferredTypes":{"abc":{"message":"Messed up JSDoc @{{tagName}}{{tagValue}} type \"abc\"."},"string":"Str"}}} +// Message: Messed up JSDoc @param "foo" type "abc". + +/** + * @param {abc} foo + * @param {Number} bar + */ +function qux(foo, bar) { +} +// Settings: {"jsdoc":{"preferredTypes":{"abc":"Abc","string":"Str"}}} +// "jsdoc/check-types": ["error"|"warn", {"noDefaults":true}] +// Message: Invalid JSDoc @param "foo" type "abc"; prefer: "Abc". + +/** + * @param {abc} foo + * @param {Number} bar + */ +function qux(foo, bar) { +} +// Settings: {"jsdoc":{"preferredTypes":{"abc":"Abc","string":"Str"}}} +// Message: Invalid JSDoc @param "foo" type "abc"; prefer: "Abc". + +/** + * @param {abc} foo + */ +function qux(foo) { +} +// Settings: {"jsdoc":{"preferredTypes":{"abc":false,"string":"Str"}}} +// Message: Invalid JSDoc @param "foo" type "abc". + +/** + * @param {abc} foo + */ +function qux(foo) { +} +// Settings: {"jsdoc":{"preferredTypes":{"abc":false}}} +// Message: Invalid JSDoc @param "foo" type "abc". + +/** + * @param {*} baz + */ +function qux(baz) { +} +// Settings: {"jsdoc":{"preferredTypes":{"*":false,"abc":"Abc","string":"Str"}}} +// Message: Invalid JSDoc @param "baz" type "*". + +/** + * @param {*} baz + */ +function qux(baz) { +} +// Settings: {"jsdoc":{"preferredTypes":{"*":"aaa","abc":"Abc","string":"Str"}}} +// Message: Invalid JSDoc @param "baz" type "*"; prefer: "aaa". + +/** + * @param {abc} foo + * @param {Number} bar + */ +function qux(foo, bar) { +} +// Settings: {"jsdoc":{"preferredTypes":{"abc":"Abc","string":"Str"}}} +// Message: Invalid JSDoc @param "foo" type "abc"; prefer: "Abc". + +/** + * @param {Array} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"Array":"GenericArray"}}} +// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "GenericArray". + +/** + * @param {Array} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"Array":"GenericArray","Array.<>":"GenericArray"}}} +// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "GenericArray". + +/** + * @param {Array.} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"Array.<>":"GenericArray"}}} +// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "GenericArray". + +/** + * @param {Array} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"Array<>":"GenericArray"}}} +// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "GenericArray". + +/** + * @param {string[]} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"[]":"SpecialTypeArray"}}} +// Message: Invalid JSDoc @param "foo" type "[]"; prefer: "SpecialTypeArray". + +/** + * @param {string[]} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"[]":"SpecialTypeArray"}}} +// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] +// Message: Invalid JSDoc @param "foo" type "[]"; prefer: "SpecialTypeArray". + +/** + * @param {string[]} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"Array":"SpecialTypeArray"}}} +// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] +// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "SpecialTypeArray". + +/** + * @param {object} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}} +// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". + +/** + * @param {object} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject","object.<>":"GenericObject"}}} +// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". + +/** + * @param {object} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject","object<>":"GenericObject"}}} +// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". + +/** + * @param {object.} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object.<>":"GenericObject"}}} +// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". + +/** + * @param {object} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object<>":"GenericObject"}}} +// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". + +/** + * @param {object.} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object.<>":"GenericObject"}}} +// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". + +/** + * @param {object} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object<>":"GenericObject"}}} +// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". + +/** + * @param {object.} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}} +// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] +// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". + +/** + * @param {object} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}} +// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] +// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". + +/** + * @param {object} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}} +// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] +// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". + +/** + * @param {object} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object":false}}} +// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] +// Message: Invalid JSDoc @param "foo" type "object". + +/** + * @param {object} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object":false}}} +// Message: Invalid JSDoc @param "foo" type "object". + +/** + * @param {object.} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}} +// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] +// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". + +/** + * @param {object} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}} +// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] +// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject". + +/** + * + * @param {string[][]} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"[]":"Array."}}} +// Message: Invalid JSDoc @param "foo" type "[]"; prefer: "Array.". + +/** + * + * @param {string[][]} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"[]":"Array.<>"}}} +// Message: Invalid JSDoc @param "foo" type "[]"; prefer: "Array.<>". + +/** + * + * @param {string[][]} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"[]":"Array<>"}}} +// Message: Invalid JSDoc @param "foo" type "[]"; prefer: "Array<>". + +/** + * + * @param {object.>} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object.":"Object"}}} +// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object". + +/** + * + * @param {object.>} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object.":"Object<>"}}} +// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object<>". + +/** + * + * @param {object>} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object<>":"Object."}}} +// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object.". + +/** + * + * @param {Array.>} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"Array.":"[]"}}} +// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "[]". + +/** + * + * @param {Array.>} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"Array.":"Array<>"}}} +// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "Array<>". + +/** + * + * @param {Array.>} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"Array.":"<>"}}} +// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "<>". + +/** + * + * @param {Array.>} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"Array.":"<>"}}} +// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "<>". + +/** + * + * @param {Array.>} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"MyArray.":"<>"}}} +// Message: Invalid JSDoc @param "foo" type "MyArray"; prefer: "<>". + +/** + * + * @param {Array>} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"<>":"Array."}}} +// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "Array.". + +/** + * + * @param {Array>} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"Array":"Array."}}} +// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] +// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "Array.". + +/** + * + * @param {Array>} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"<>":"[]"}}} +// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "[]". + +/** @typedef {String} foo */ +// Message: Invalid JSDoc @typedef "foo" type "String"; prefer: "string". + +/** + * @this {array} + */ +function quux () {} +// Settings: {"jsdoc":{"mode":"closure"}} +// Message: Invalid JSDoc @this type "array"; prefer: "Array". + +/** + * @export {array} + */ +function quux () {} +// Settings: {"jsdoc":{"mode":"closure"}} +// Message: Invalid JSDoc @export type "array"; prefer: "Array". + +/** + * @typedef {object} foo + * @property {object} bar + */ +// Settings: {"jsdoc":{"preferredTypes":{"object":"Object"}}} +// "jsdoc/check-types": ["error"|"warn", {"exemptTagContexts":[{"tag":"typedef","types":true}]}] +// Message: Invalid JSDoc @property "bar" type "object"; prefer: "Object". + +/** @typedef {object} foo */ +// Settings: {"jsdoc":{"preferredTypes":{"object":"Object"}}} +// "jsdoc/check-types": ["error"|"warn", {"exemptTagContexts":[{"tag":"typedef","types":["array"]}]}] +// Message: Invalid JSDoc @typedef "foo" type "object"; prefer: "Object". + +/** + * @typedef {object} foo + * @property {object} bar + */ +// Settings: {"jsdoc":{"preferredTypes":{"object":"Object"}}} +// "jsdoc/check-types": ["error"|"warn", {"exemptTagContexts":[{"tag":"typedef","types":["object"]}]}] +// Message: Invalid JSDoc @property "bar" type "object"; prefer: "Object". + +/** @typedef {object} foo */ +// Settings: {"jsdoc":{"preferredTypes":{"object<>":"Object<>"}}} +// "jsdoc/check-types": ["error"|"warn", {"exemptTagContexts":[{"tag":"typedef","types":["object"]}]}] +// Message: Invalid JSDoc @typedef "foo" type "object"; prefer: "Object<>". + +/** + * @param {Array} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"Array.<>":"[]","Array<>":"[]"}}} +// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "[]". + +/** + * @typedef {object} foo + */ +function a () {} + +/** + * @typedef {Object} foo + */ +function b () {} +// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"object":"Object"}}} +// Message: Invalid JSDoc @typedef "foo" type "object"; prefer: "Object". + +/** + * @aCustomTag {Number} foo + */ +// Settings: {"jsdoc":{"structuredTags":{"aCustomTag":{"type":true}}}} +// Message: Invalid JSDoc @aCustomTag "foo" type "Number"; prefer: "number". + +/** + * @aCustomTag {Number} foo + */ +// Settings: {"jsdoc":{"structuredTags":{"aCustomTag":{"type":["otherType","anotherType"]}}}} +// Message: Invalid JSDoc @aCustomTag "foo" type "Number"; prefer: ["otherType","anotherType"]. + +/** + * @param {Object[]} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"Object":"object"}}} +// Message: Invalid JSDoc @param "foo" type "Object"; prefer: "object". + +/** + * @param {object.} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"object.<>":"Object"}}} +// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object". + +/** + * @param {object.} foo + */ +function quux (foo) { +} +// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"Object":"object","object.<>":"Object<>","Object.<>":"Object<>","object<>":"Object<>"}}} +// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object<>". + +/** + * @param {Object.} foo + */ +function quux (foo) { +} +// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"Object":"object","object.<>":"Object<>","Object.<>":"Object<>","object<>":"Object<>"}}} +// Message: Invalid JSDoc @param "foo" type "Object"; prefer: "Object<>". + +/** + * @param {object} foo + */ +function quux (foo) { +} +// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"Object":"object","object.<>":"Object<>","Object.<>":"Object<>","object<>":"Object<>"}}} +// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object<>". + +/** + * @param {object.} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"Object":"object","object.<>":"Object<>","Object.<>":"Object<>","object<>":"Object<>"}}} +// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object<>". + +/** + * @param {object.} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"mode":"typescript"}} +// Message: Use object shorthand or index signatures instead of `object`, e.g., `{[key: string]: string}` + +/** + * + * @param {Object} param + * @return {Object | String} + */ +function abc(param) { + if (param.a) + return {}; + return 'abc'; +} +// Message: Invalid JSDoc @param "param" type "Object"; prefer: "object". + +/** + * @param {object} root + * @param {number} root.a + * @param {object} b + */ +function a () {} +// Settings: {"jsdoc":{"preferredTypes":{"object":{"skipRootChecking":true}}}} +// Message: Invalid JSDoc @param "b" type "object". +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @param {number} foo + * @param {Bar} bar + * @param {*} baz + */ +function quux (foo, bar, baz) { + +} + +/** + * @arg {number} foo + * @arg {Bar} bar + * @arg {*} baz + */ +function quux (foo, bar, baz) { + +} + +/** + * @param {(number | string | boolean)=} foo + */ +function quux (foo, bar, baz) { + +} + +/** + * @param {typeof bar} foo + */ +function qux(foo) { +} + +/** + * @param {import('./foo').bar.baz} foo + */ +function qux(foo) { +} + +/** + * @param {(x: number, y: string) => string} foo + */ +function qux(foo) { +} + +/** + * @param {() => string} foo + */ +function qux(foo) { +} + +/** + * @returns {Number} foo + * @throws {Number} foo + */ +function quux () { + +} +// "jsdoc/check-types": ["error"|"warn", {"noDefaults":true}] + +/** + * @param {Object} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object":"Object"}}} + +/** + * @param {Array} foo + */ +function quux (foo) { + +} + +/** + * @param {Array.} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"Array":"GenericArray"}}} + +/** + * @param {Array} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"Array":"GenericArray"}}} + +/** + * @param {string[]} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"Array":"SpecialTypeArray","Array.<>":"SpecialTypeArray","Array<>":"SpecialTypeArray"}}} + +/** + * @param {string[]} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"Array.<>":"SpecialTypeArray","Array<>":"SpecialTypeArray"}}} +// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] + +/** + * @param {Array} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"[]":"SpecialTypeArray"}}} + +/** + * @param {Array} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"[]":"SpecialTypeArray"}}} +// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] + +/** + * @param {Array} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"Array.<>":"GenericArray"}}} + +/** + * @param {Array} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"Array<>":"GenericArray"}}} + +/** + * @param {object} foo + */ +function quux (foo) { + +} + +/** + * @param {object.} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}} + +/** + * @param {object} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}} + +/** + * @param {object.} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}} + +/** + * @param {object} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}} + +/** + * @param {object} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object.<>":"GenericObject"}}} + +/** + * @param {object} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"object<>":"GenericObject"}}} + +/** + * @param {Number<} Ignore the error as not a validating rule + */ +function quux (foo) { + +} + +/** @param {function(...)} callback The function to invoke. */ +var subscribe = function(callback) {}; + +/** + * @this {Array} + */ +function quux () {} +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * @export {Array} + */ +function quux () {} +// Settings: {"jsdoc":{"mode":"closure"}} + +/** @type {new() => EntityBase} */ + +/** @typedef {object} foo */ +// Settings: {"jsdoc":{"preferredTypes":{"object":"Object"}}} +// "jsdoc/check-types": ["error"|"warn", {"exemptTagContexts":[{"tag":"typedef","types":true}]}] + +/** @typedef {object} foo */ +// Settings: {"jsdoc":{"preferredTypes":{"object":"Object"}}} + +/** @typedef {object} foo */ +// Settings: {"jsdoc":{"preferredTypes":{"object<>":"Object<>"}}} +// "jsdoc/check-types": ["error"|"warn", {"exemptTagContexts":[{"tag":"typedef","types":["object"]}]}] + +/** + * @typedef {object} foo + */ + + /** + * @typedef {Object} foo + */ +// Settings: {"jsdoc":{"preferredTypes":{"object":"Object","Object":"object"}}} + +/** + * @typedef {object} foo + */ +function a () {} + +/** + * @typedef {Object} foo + */ +function b () {} +// Settings: {"jsdoc":{"preferredTypes":{"object":"Object","Object":"object"}}} + +/** + * @typedef {object} foo + */ +function a () {} + +/** + * @typedef {{[key: string]: number}} foo + */ +function b () {} +// Settings: {"jsdoc":{"mode":"typescript"}} + +/** + * @aCustomTag {Number} foo + */ +// Settings: {"jsdoc":{"structuredTags":{"aCustomTag":{"type":false}}}} + +/** + * @aCustomTag {otherType} foo + */ +// Settings: {"jsdoc":{"structuredTags":{"aCustomTag":{"type":["otherType","anotherType"]}}}} + +/** + * @aCustomTag {anotherType|otherType} foo + */ +// Settings: {"jsdoc":{"structuredTags":{"aCustomTag":{"type":["otherType","anotherType"]}}}} + +/** + * Bad types handled by `valid-types` instead. + * @param {str(} foo + */ +function quux (foo) { + +} + +/** + * @param {{[key: string]: number}} foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"mode":"typescript"}} + +/** + * @typedef {object} foo + */ +function a () {} +// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"Object":"object","object.<>":"Object<>","object<>":"Object<>"}}} + +/** + * @typedef {Object} foo + */ +function a () {} +// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"Object":"object","object.<>":"Object<>","object<>":"Object<>"}}} + +/** + * Does something. + * + * @param {Object} spec - Foo. + */ +function foo(spec) { + return spec; +} + +foo() + +/** + * @param {object} root + * @param {number} root.a + */ +function a () {} +// Settings: {"jsdoc":{"preferredTypes":{"object":{"message":"Won't see this message","skipRootChecking":true}}}} + +/** + * @returns {string | undefined} a string or undefined + */ +function quux () {} +// Settings: {"jsdoc":{"preferredTypes":{"[]":{"message":"Do not use *[], use Array<*> instead","replacement":"Array"}}}} +// "jsdoc/check-types": ["error"|"warn", {"unifyParentAndChildTypeChecks":true}] +```` + diff --git a/docs/rules/check-values.md b/docs/rules/check-values.md new file mode 100644 index 000000000..4910638ee --- /dev/null +++ b/docs/rules/check-values.md @@ -0,0 +1,389 @@ + + +### check-values + +This rule checks the values for a handful of tags: + +1. `@version` - Checks that there is a present and valid + [semver](https://semver.org/) version value. +2. `@since` - As with `@version` +3. `@license` - Checks that there is a present and valid SPDX identifier + or is present within an `allowedLicenses` option. +4. `@author` - Checks that there is a value present, and if the option + `allowedAuthors` is present, ensure that the author value is one + of these array items. +5. `@variation` - If `numericOnlyVariation` is set, will checks that there + is a value present, and that it is an integer (otherwise, jsdoc allows any + value). +6. `@kind` - Insists that it be one of the allowed values: 'class', + 'constant', 'event', 'external', 'file', 'function', 'member', 'mixin', + 'module', 'namespace', 'typedef', + + + +#### Options + + + +##### allowedAuthors + +An array of allowable author values. If absent, only non-whitespace will +be checked for. + + + +##### allowedLicenses + +An array of allowable license values or `true` to allow any license text. +If present as an array, will be used in place of SPDX identifiers. + + + +##### licensePattern + +A string to be converted into a `RegExp` (with `u` flag) and whose first +parenthetical grouping, if present, will match the portion of the license +description to check (if no grouping is present, then the whole portion +matched will be used). Defaults to `/([^\n\r]*)/gu`, i.e., the SPDX expression +is expected before any line breaks. + +Note that the `/` delimiters are optional, but necessary to add flags. + +Defaults to using the `u` flag, so to add your own flags, encapsulate +your expression as a string, but like a literal, e.g., `/^mit$/ui`. + + + +##### numericOnlyVariation + +Whether to enable validation that `@variation` must be a number. Defaults to +`false`. + +||| +|---|---| +|Context|everywhere| +|Tags|`@version`, `@since`, `@kind`, `@license`, `@author`, `@variation`| +|Recommended|true| +|Options|`allowedAuthors`, `allowedLicenses`, `licensePattern`| +|Settings|`tagNamePreference`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @version + */ +function quux (foo) { + +} +// Message: Missing JSDoc @version value. + +/** + * @version 3.1 + */ +function quux (foo) { + +} +// Message: Invalid JSDoc @version: "3.1". + +/** + * @kind + */ +function quux (foo) { + +} +// Message: Missing JSDoc @kind value. + +/** + * @kind -3 + */ +function quux (foo) { + +} +// Message: Invalid JSDoc @kind: "-3"; must be one of: class, constant, event, external, file, function, member, mixin, module, namespace, typedef. + +/** + * @variation -3 + */ +function quux (foo) { + +} +// "jsdoc/check-values": ["error"|"warn", {"numericOnlyVariation":true}] +// Message: Invalid JSDoc @variation: "-3". + +/** + * @since + */ +function quux (foo) { + +} +// Message: Missing JSDoc @since value. + +/** + * @since 3.1 + */ +function quux (foo) { + +} +// Message: Invalid JSDoc @since: "3.1". + +/** + * @license + */ +function quux (foo) { + +} +// Message: Missing JSDoc @license value. + +/** + * @license FOO + */ +function quux (foo) { + +} +// Message: Invalid JSDoc @license: "FOO"; expected SPDX expression: https://spdx.org/licenses/. + +/** + * @license FOO + */ +function quux (foo) { + +} +// "jsdoc/check-values": ["error"|"warn", {"allowedLicenses":["BAR","BAX"]}] +// Message: Invalid JSDoc @license: "FOO"; expected one of BAR, BAX. + +/** + * @license MIT-7 + * Some extra text... + */ +function quux (foo) { + +} +// Message: Invalid JSDoc @license: "MIT-7"; expected SPDX expression: https://spdx.org/licenses/. + +/** + * @license (MIT OR GPL-2.5) + */ +function quux (foo) { + +} +// Message: Invalid JSDoc @license: "(MIT OR GPL-2.5)"; expected SPDX expression: https://spdx.org/licenses/. + +/** + * @license MIT + * Some extra text + */ +function quux (foo) { + +} +// "jsdoc/check-values": ["error"|"warn", {"licensePattern":"[\\s\\S]*"}] +// Message: Invalid JSDoc @license: "MIT +Some extra text"; expected SPDX expression: https://spdx.org/licenses/. + +/** + * @author + */ +function quux (foo) { + +} +// Message: Missing JSDoc @author value. + +/** + * @author Brett Zamir + */ +function quux (foo) { + +} +// "jsdoc/check-values": ["error"|"warn", {"allowedAuthors":["Gajus Kuizinas","golopot"]}] +// Message: Invalid JSDoc @author: "Brett Zamir"; expected one of Gajus Kuizinas, golopot. + +/** + * @variation + */ +function quux (foo) { + +} +// "jsdoc/check-values": ["error"|"warn", {"numericOnlyVariation":true}] +// Message: Missing JSDoc @variation value. + +/** + * @variation 5.2 + */ +function quux (foo) { + +} +// "jsdoc/check-values": ["error"|"warn", {"numericOnlyVariation":true}] +// Message: Invalid JSDoc @variation: "5.2". + +/** + * @license license-prefix Oops + */ +function quux (foo) { + +} +// "jsdoc/check-values": ["error"|"warn", {"licensePattern":"(?<=license-prefix ).*"}] +// Message: Invalid JSDoc @license: "Oops"; expected SPDX expression: https://spdx.org/licenses/. + +/** + * @license Oops + * Copyright 2022 + */ +function quux (foo) { + +} +// "jsdoc/check-values": ["error"|"warn", {"licensePattern":"^([^\n]+)\nCopyright"}] +// Message: Invalid JSDoc @license: "Oops"; expected SPDX expression: https://spdx.org/licenses/. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @version 3.4.1 + */ +function quux (foo) { + +} + +/** + * @version 3.4.1 + */ +function quux (foo) { + +} + +/** + * @since 3.4.1 + */ +function quux (foo) { + +} + +/** + * @since 3.4.1 + */ +function quux (foo) { + +} + +/** + * @license MIT + */ +function quux (foo) { + +} + +/** + * @license MIT + * Some extra text... + */ +function quux (foo) { + +} + +/** + * @license (MIT OR GPL-2.0) + */ +function quux (foo) { + +} + +/** + * @license FOO + */ +function quux (foo) { + +} +// "jsdoc/check-values": ["error"|"warn", {"allowedLicenses":["FOO","BAR","BAX"]}] + +/** + * @license FOO + */ +function quux (foo) { + +} +// "jsdoc/check-values": ["error"|"warn", {"allowedLicenses":true}] + +/** + * @license MIT + * Some extra text + */ +function quux (foo) { + +} +// "jsdoc/check-values": ["error"|"warn", {"licensePattern":"[^\n]*"}] + +/** + * @author Gajus Kuizinas + */ +function quux (foo) { + +} + +/** + * @author Brett Zamir + */ +function quux (foo) { + +} +// "jsdoc/check-values": ["error"|"warn", {"allowedAuthors":["Gajus Kuizinas","golopot","Brett Zamir"]}] + +/** + * @variation 3 + */ +function quux (foo) { + +} +// "jsdoc/check-values": ["error"|"warn", {"numericOnlyVariation":true}] + +/** + * @variation abc + */ +function quux (foo) { + +} + +/** + * @module test + * @license MIT\r + */ +'use strict'; + +/** + * @kind function + */ +function quux (foo) { + +} + +/** + * @license license-prefix MIT + */ +function quux (foo) { + +} +// "jsdoc/check-values": ["error"|"warn", {"licensePattern":"(?<=license-prefix )MIT|GPL3.0"}] + +/** + * @license + * Copyright 2022 + */ +function quux (foo) { + +} +// "jsdoc/check-values": ["error"|"warn", {"licensePattern":"^([^\n]+)(?!\nCopyright)"}] + +/** + * @license MIT + * Copyright 2022 + */ +function quux (foo) { + +} +// "jsdoc/check-values": ["error"|"warn", {"licensePattern":"^([^\n]+)\nCopyright"}] +```` + diff --git a/docs/rules/empty-tags.md b/docs/rules/empty-tags.md new file mode 100644 index 000000000..40c7709ed --- /dev/null +++ b/docs/rules/empty-tags.md @@ -0,0 +1,201 @@ + + +### empty-tags + +Expects the following tags to be empty of any content: + +- `@abstract` +- `@async` +- `@generator` +- `@global` +- `@hideconstructor` +- `@ignore` +- `@inheritdoc` +- `@inner` +- `@instance` +- `@internal` (used by TypeScript) +- `@override` +- `@readonly` + +The following will also be expected to be empty unless `settings.jsdoc.mode` +is set to "closure" (which allows types). + +- `@package` +- `@private` +- `@protected` +- `@public` +- `@static` + +Note that `@private` will still be checked for content by this rule even with +`settings.jsdoc.ignorePrivate` set to `true` (a setting which normally +causes rules not to take effect). + +Similarly, `@internal` will still be checked for content by this rule even with +`settings.jsdoc.ignoreInternal` set to `true`. + + + +#### Options + + + +##### tags + +If you want additional tags to be checked for their descriptions, you may +add them within this option. + +```js +{ + 'jsdoc/empty-tags': ['error', {tags: ['event']}] +} +``` + +||| +|---|---| +|Context|everywhere| +|Tags| `abstract`, `async`, `generator`, `global`, `hideconstructor`, `ignore`, `inheritdoc`, `inner`, `instance`, `internal`, `override`, `readonly`, `package`, `private`, `protected`, `public`, `static` and others added by `tags`| +|Recommended|true| +|Options|`tags`| +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @abstract extra text + */ +function quux () { + +} +// Message: @abstract should be empty. + +/** + * @interface extra text + */ +// Settings: {"jsdoc":{"mode":"closure"}} +// Message: @interface should be empty. + +class Test { + /** + * @abstract extra text + */ + quux () { + + } +} +// Message: @abstract should be empty. + +/** + * @abstract extra text + * @inheritdoc + * @async out of place + */ +function quux () { + +} +// Message: @abstract should be empty. + +/** + * @event anEvent + */ +function quux () { + +} +// "jsdoc/empty-tags": ["error"|"warn", {"tags":["event"]}] +// Message: @event should be empty. + +/** + * @private {someType} + */ +function quux () { + +} +// Message: @private should be empty. + +/** + * @internal {someType} + */ +function quux () { + +} +// Message: @internal should be empty. + +/** + * @private {someType} + */ +function quux () { + +} +// Settings: {"jsdoc":{"ignorePrivate":true}} +// Message: @private should be empty. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @abstract + */ +function quux () { + +} + +/** + * + */ +function quux () { + +} + +/** + * @param aName + */ +function quux () { + +} + +/** + * @abstract + * @inheritdoc + * @async + */ +function quux () { + +} + +/** + * @private {someType} + */ +function quux () { + +} +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * @private + */ +function quux () { + +} + +/** + * @internal + */ +function quux () { + +} + +/** + * Create an array. + * + * @private + * + * @param {string[]} [elem] - Elements to make an array of. + * @param {boolean} [clone] - Optionally clone nodes. + * @returns {string[]} The array of nodes. + */ +function quux () {} +```` + diff --git a/docs/rules/implements-on-classes.md b/docs/rules/implements-on-classes.md new file mode 100644 index 000000000..776159e70 --- /dev/null +++ b/docs/rules/implements-on-classes.md @@ -0,0 +1,202 @@ + + +### implements-on-classes + +Reports an issue with any non-constructor function using `@implements`. + +Constructor functions, whether marked with `@class`, `@constructs`, or being +an ES6 class constructor, will not be flagged. + +To indicate that a function follows another function's signature, one might +instead use `@type` to indicate the `@function` or `@callback` to which the +function is adhering. + + + +#### Options + + + +##### contexts + +Set this to an array of strings representing the AST context (or an object with +`context` and `comment` properties) where you wish the rule to be applied. + +Overrides the default contexts (see below). Set to `"any"` if you want +the rule to apply to any jsdoc block throughout your files (as is necessary +for finding function blocks not attached to a function declaration or +expression, i.e., `@callback` or `@function` (or its aliases `@func` or +`@method`) (including those associated with an `@interface`). + +See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) +section of our README for more on the expected format. + +||| +|---|---| +|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| +|Tags|`implements` (prevented)| +|Recommended|true| +|Options|`contexts`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @implements {SomeClass} + */ +function quux () { + +} +// Message: @implements used on a non-constructor function + +/** + * @implements {SomeClass} + */ +function quux () { + +} +// "jsdoc/implements-on-classes": ["error"|"warn", {"contexts":["any"]}] +// Message: @implements used on a non-constructor function + +/** + * @function + * @implements {SomeClass} + */ +function quux () { + +} +// "jsdoc/implements-on-classes": ["error"|"warn", {"contexts":["any"]}] +// Message: @implements used on a non-constructor function + +/** + * @callback + * @implements {SomeClass} + */ +// "jsdoc/implements-on-classes": ["error"|"warn", {"contexts":["any"]}] +// Message: @implements used on a non-constructor function + +/** + * @implements {SomeClass} + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"implements":false}}} +// Message: Unexpected tag `@implements` + +class Foo { + /** + * @implements {SomeClass} + */ + constructor() {} + + /** + * @implements {SomeClass} + */ + bar() {} +} +// "jsdoc/implements-on-classes": ["error"|"warn", {"contexts":["MethodDefinition"]}] +// Message: @implements used on a non-constructor function + +class Foo { + /** + * @implements {SomeClass} + */ + constructor() {} + + /** + * @implements {SomeClass} + */ + bar() {} +} +// "jsdoc/implements-on-classes": ["error"|"warn", {"contexts":["any"]}] +// Message: @implements used on a non-constructor function +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @implements {SomeClass} + * @class + */ +function quux () { + +} + +/** + * @implements {SomeClass} + * @class + */ +function quux () { + +} +// "jsdoc/implements-on-classes": ["error"|"warn", {"contexts":["any"]}] + +/** + * @implements {SomeClass} + */ +// "jsdoc/implements-on-classes": ["error"|"warn", {"contexts":["any"]}] + +/** + * @implements {SomeClass} + * @constructor + */ +function quux () { + +} + +/** + * + */ +class quux { + /** + * @implements {SomeClass} + */ + constructor () { + + } +} + +/** + * + */ +const quux = class { + /** + * @implements {SomeClass} + */ + constructor () { + + } +} + +/** + * + */ +function quux () { + +} + +/** + * + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"implements":false}}} + +/** + * @function + * @implements {SomeClass} + */ + +/** + * @callback + * @implements {SomeClass} + */ +```` + diff --git a/docs/rules/informative-docs.md b/docs/rules/informative-docs.md new file mode 100644 index 000000000..21f9289a2 --- /dev/null +++ b/docs/rules/informative-docs.md @@ -0,0 +1,382 @@ + + +### informative-docs + +Reports on JSDoc texts that serve only to restart their attached name. + +Devs sometimes write JSDoc descriptions that add no additional information just to fill out the doc: + +```js +/** The user id. */ +let userId; +``` + +Those "uninformative" docs comments take up space without being helpful. +This rule requires all docs comments contain at least one word not already in the code. + + + +#### Options + + + +##### aliases + +The `aliases` option allows indicating words as synonyms (aliases) of each other. + +For example, with `{ aliases: { emoji: ["smiley", "winkey"] } }`, the following comment would be considered uninformative: + +```js +/** A smiley/winkey. */ +let emoji; +``` + +The default `aliases` option is: + +```json +{ + "a": ["an", "our"] +} +``` + + + +##### uselessWords + +Words that are ignored when searching for one that adds meaning. + +For example, with `{ uselessWords: ["our"] }`, the following comment would be considered uninformative: + +```js +/** Our text. */ +let text; +``` + +The default `uselessWords` option is: + +```json +["a", "an", "i", "in", "of", "s", "the"] +``` + +||| +|---|---| +|Context|everywhere| +|Tags|any| +|Recommended|false| +|Settings|| +|Options|`aliases`, `uselessWords`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** the */ +let myValue = 3; +// Message: This description only repeats the name it describes. + +/** The user id. */ +let userId: string; +// Message: This description only repeats the name it describes. + +/** the my value */ +let myValue = 3; +// Message: This description only repeats the name it describes. + +/** value **/ +let myValue, + count = 3; +// Message: This description only repeats the name it describes. + +let myValue, + /** count **/ + count = 3; +// Message: This description only repeats the name it describes. + +/** + * the foo. + */ +function foo() {} +// Message: This description only repeats the name it describes. + +/** + * the value foo. + */ +const value = function foo() {} +// Message: This description only repeats the name it describes. + +const value = { + /** + * the prop. + */ + prop: true, +} +// Message: This description only repeats the name it describes. + +/** + * name + */ +class Name {} +// Message: This description only repeats the name it describes. + +/** + * abc def + */ +const abc = class Def {} +// Message: This description only repeats the name it describes. + +class Abc { + /** the abc def! */ + def; +} +// Message: This description only repeats the name it describes. + +const _ = class Abc { + /** the abc def! */ + def; +} +// Message: This description only repeats the name it describes. + +class Abc { + /** the abc def! */ + def() {}; +} +// Message: This description only repeats the name it describes. + +class Abc { + /** def */ + accessor def; +} +// Message: This description only repeats the name it describes. + +class Abc { + /** def */ + def() {} +} +// Message: This description only repeats the name it describes. + +class Abc { + /** def */ + abstract accessor def; +} +// Message: This description only repeats the name it describes. + +class Abc { + /** def */ + abstract def(); +} +// Message: This description only repeats the name it describes. + +class Abc { + /** def */ + abstract def; +} +// Message: This description only repeats the name it describes. + +/** abc */ +namespace Abc {} +// Message: This description only repeats the name it describes. + +class Abc { + /** def */ + def(); + def() {} +} +// Message: This description only repeats the name it describes. + +/** abc */ +declare function abc(); +// Message: This description only repeats the name it describes. + +/** abc */ +enum Abc {} +// Message: This description only repeats the name it describes. + +enum Abc { + /** def */ + def, +} +// Message: This description only repeats the name it describes. + +/** def */ +interface Def {} +// Message: This description only repeats the name it describes. + +/** def */ +type Def = {}; +// Message: This description only repeats the name it describes. + +/** + * count + * + * @description the value + */ +let value = 3; +// Message: This tag description only repeats the name it describes. + +/** @param {number} param - the param */ +function takesOne(param) {} +// Message: This tag description only repeats the name it describes. + +/** @other param - takes one */ +function takesOne(param) {} +// Message: This tag description only repeats the name it describes. + +/** + * takes one + * @other param - takes one + */ +function takesOne(param) {} +// Message: This description only repeats the name it describes. + +/** + * - takes one + * @other param - takes one + */ +function takesOne(param) {} +// Message: This description only repeats the name it describes. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** */ +let myValue = 3; + +/** count */ +let myValue = 3; + +/** Informative info user id. */ +let userId: string; + +let myValue, + /** count value **/ + count = 3; + +/** + * Does X Y Z work. + */ +function foo() {} + +const value = { + /** + * the truthiness of the prop. + */ + prop: true, +} + +const value = { + /** + * the truthiness of the prop. + */ + ['prop']: true, +} + +/** + * abc def ghi + */ +const abc = function def() {} + +/** + * name extra + */ +class Name {} + +/** + * abc name extra + */ +const abc = class Name {} + +class Abc { + /** ghi */ + def; +} + +class Abc { + /** ghi */ + accessor def; +} + +class Abc { + /** ghi */ + def() {} +} + +class Abc { + /** ghi */ + abstract accessor def; +} + +class Abc { + /** ghi */ + abstract def(); +} + +class Abc { + /** ghi */ + abstract def; +} + +/** abc */ +namespace Def {} + +class Abc { + /** ghi */ + def(); + def() {} +} + +/** abc */ +declare function def(); + +/** abc */ +enum Def {} + +enum Abc { + /** def */ + ghi, +} + +/** abc */ +interface Def {} + +/** abc */ +type Def = {}; + +/** abc */ +type Def = {}; + +/** + * count + * + * @description increment value + */ +let value = 3; + +/** + * count + * + * @unknownTag - increment value + */ +let value = 3; + +/** + * @other param - takes one two + */ +function takesOne(param) {} + +/** + * takes abc param + */ +function takesOne(param) {} + +/** + * @class + * + * @param {number} value - Some useful text + */ +function MyAmazingThing(value) {} +```` + diff --git a/docs/rules/match-description.md b/docs/rules/match-description.md new file mode 100644 index 000000000..cace5cafe --- /dev/null +++ b/docs/rules/match-description.md @@ -0,0 +1,958 @@ + + +### match-description + +Enforces a regular expression pattern on descriptions. + +The default is this basic expression to match English sentences (Support +for Unicode upper case may be added in a future version when it can be handled +by our supported Node versions): + +``^\n?([A-Z`\\d_][\\s\\S]*[.?!`]\\s*)?$`` + +Applies to the jsdoc block description and `@description` (or `@desc`) +by default but the `tags` option (see below) may be used to match other tags. + +The default (and all regex options) defaults to using (only) the `u` flag, so +to add your own flags, encapsulate your expression as a string, but like a +literal, e.g., `/[A-Z].*\\./ui`. + +Note that `/` delimiters are optional, but necessary to add flags (besides +`u`). + +Also note that the default or optional regular expressions is *not* +case-insensitive unless one opts in to add the `i` flag. + +You can add the `s` flag if you want `.` to match newlines. Note, however, +that the trailing newlines of a description will not be matched. + + + +#### Options + + + +##### matchDescription + +You can supply your own expression to override the default, passing a +`matchDescription` string on the options object. + +```js +{ + 'jsdoc/match-description': ['error', {matchDescription: '[A-Z].*\\.'}] +} +``` + + + +##### message + +You may provide a custom default message by using the following format: + +```js +{ + 'jsdoc/match-description': ['error', { + message: 'The default description should begin with a capital letter.' + }] +} +``` + +This can be overridden per tag or for the main block description by setting +`message` within `tags` or `mainDescription`, respectively. + + + +##### tags + +If you want different regular expressions to apply to tags, you may use +the `tags` option object: + +```js +{ + 'jsdoc/match-description': ['error', {tags: { + param: '\\- [A-Z].*\\.', + returns: '[A-Z].*\\.' + }}] +} +``` + +In place of a string, you can also add `true` to indicate that a particular +tag should be linted with the `matchDescription` value (or the default). + +```js +{ + 'jsdoc/match-description': ['error', {tags: { + param: true, + returns: true + }}] +} +``` + +Alternatively, you may supply an object with a `message` property to indicate +the error message for that tag. + +```js +{ + 'jsdoc/match-description': ['error', {tags: { + param: {message: 'Begin with a hyphen', match: '\\- [A-Z].*\\.'}, + returns: {message: 'Capitalize for returns (the default)', match: true} + }}] +} +``` + +The tags `@param`/`@arg`/`@argument` and `@property`/`@prop` will be properly +parsed to ensure that the matched "description" text includes only the text +after the name. + +All other tags will treat the text following the tag name, a space, and +an optional curly-bracketed type expression (and another space) as part of +its "description" (e.g., for `@returns {someType} some description`, the +description is `some description` while for `@some-tag xyz`, the description +is `xyz`). + + + +##### mainDescription + +If you wish to override the main block description without changing the +default `match-description` (which can cascade to the `tags` with `true`), +you may use `mainDescription`: + +```js +{ + 'jsdoc/match-description': ['error', { + mainDescription: '[A-Z].*\\.', + tags: { + param: true, + returns: true + } + }] +} +``` + +There is no need to add `mainDescription: true`, as by default, the main +block description (and only the main block description) is linted, though you +may disable checking it by setting it to `false`. + +You may also provide an object with `message`: + +```js +{ + 'jsdoc/match-description': ['error', { + mainDescription: { + message: 'Capitalize first word of JSDoc block descriptions', + match: '[A-Z].*\\.' + }, + tags: { + param: true, + returns: true + } + }] +} +``` + + + +##### contexts + +Set this to an array of strings representing the AST context (or an object with +`context` and `comment` properties) where you wish the rule to be applied. +(e.g., `ClassDeclaration` for ES6 +classes). Overrides the default contexts (see below). Set to `"any"` if you +want the rule to apply to any jsdoc block throughout your files. + +See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) +section of our README for more on the expected format. + +||| +|---|---| +|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| +|Tags|docblock and `@description` by default but more with `tags`| +|Aliases|`@desc`| +|Recommended|false| +|Settings|| +|Options|`contexts`, `tags` (accepts tags with names and optional type such as 'param', 'arg', 'argument', 'property', and 'prop', and accepts arbitrary list of other tags with an optional type (but without names), e.g., 'returns', 'return'), `mainDescription`, `matchDescription`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * foo. + */ +const q = class { + +} +// "jsdoc/match-description": ["error"|"warn", {"contexts":["ClassExpression"]}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * foo. + */ +const q = class { + +} +// "jsdoc/match-description": ["error"|"warn", {"contexts":["ClassExpression"],"message":"Needs to begin with a capital letter and end with an end mark."}] +// Message: Needs to begin with a capital letter and end with an end mark. + +/** + * foo. + */ +// "jsdoc/match-description": ["error"|"warn", {"contexts":["any"]}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * foo. + */ +// "jsdoc/match-description": ["error"|"warn", {"contexts":["any"]}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * foo. + */ +const q = { + +}; +// "jsdoc/match-description": ["error"|"warn", {"contexts":["ObjectExpression"]}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * foo. + */ +function quux () { + +} +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * Foo) + */ +function quux () { + +} +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * тест. + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"matchDescription":"[А-Я][А-я]+\\."}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * тест. + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"matchDescription":"[А-Я][А-я]+\\.","message":"Needs to begin with a capital letter and end with an end mark."}] +// Message: Needs to begin with a capital letter and end with an end mark. + +/** + * Abc. + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"mainDescription":"[А-Я][А-я]+\\.","tags":{"param":true}}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * Abc. + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"mainDescription":{"match":"[А-Я][А-я]+\\.","message":"Needs to begin with a Cyrillic capital letter and end with a period."},"tags":{"param":true}}] +// Message: Needs to begin with a Cyrillic capital letter and end with a period. + +/** + * Foo + */ +function quux () { + +} +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * Foo. + * + * @param foo foo. + */ +function quux (foo) { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"param":true}}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * Foo. + * + * @template Abc, Def foo. + */ +function quux (foo) { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"template":true}}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * Foo. + * + * @prop foo foo. + */ +function quux (foo) { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"prop":true}}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * Foo. + * + * @summary foo. + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"summary":true}}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * Foo. + * + * @author + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"author":".+"}}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * Foo. + * + * @x-tag + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"x-tag":".+"}}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * Foo. + * + * @description foo foo. + */ +function quux (foo) { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"description":true}}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * Foo + * + * @param foo foo. + */ +function quux (foo) { + +} +// "jsdoc/match-description": ["error"|"warn", {"mainDescription":"^[a-zA-Z]*\\s*$","tags":{"param":true}}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * Foo + * + * @param foo foo. + */ +function quux (foo) { + +} +// "jsdoc/match-description": ["error"|"warn", {"mainDescription":{"match":"^[a-zA-Z]*\\s*$","message":"Letters only"},"tags":{"param":{"match":true,"message":"Needs to begin with a capital letter and end with a period."}}}] +// Message: Needs to begin with a capital letter and end with a period. + +/** + * Foo + * + * @param foo foo. + */ +function quux (foo) { + +} +// "jsdoc/match-description": ["error"|"warn", {"mainDescription":false,"tags":{"param":true}}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * Foo. + * + * @param foo bar + */ +function quux (foo) { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"param":true}}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * {@see Foo.bar} buz + */ +function quux (foo) { + +} +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * Foo. + * + * @returns {number} foo + */ +function quux (foo) { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"returns":true}}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * Foo. + * + * @returns foo. + */ +function quux (foo) { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"returns":true}}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * lorem ipsum dolor sit amet, consectetur adipiscing elit. pellentesque elit diam, + * iaculis eu dignissim sed, ultrices sed nisi. nulla at ligula auctor, consectetur neque sed, + * tincidunt nibh. vivamus sit amet vulputate ligula. vivamus interdum elementum nisl, + * vitae rutrum tortor semper ut. morbi porta ante vitae dictum fermentum. + * proin ut nulla at quam convallis gravida in id elit. sed dolor mauris, blandit quis ante at, + * consequat auctor magna. duis pharetra purus in porttitor mollis. + */ +function longDescription (foo) { + +} +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * @arg {number} foo - Foo + */ +function quux (foo) { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"arg":true}}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * @argument {number} foo - Foo + */ +function quux (foo) { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"argument":true}}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * @return {number} foo + */ +function quux (foo) { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"return":true}}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * Returns bar. + * + * @return {number} bar + */ +function quux (foo) { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"return":true}}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * @param notRet + * @returns Тест. + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"param":"[А-Я][А-я]+\\."}}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * @description notRet + * @returns Тест. + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"description":"[А-Я][А-я]+\\."}}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * foo. + */ +class quux { + +} +// "jsdoc/match-description": ["error"|"warn", {"contexts":["ClassDeclaration"]}] +// Message: JSDoc description does not satisfy the regex pattern. + +class MyClass { + /** + * Abc + */ + myClassField = 1 +} +// "jsdoc/match-description": ["error"|"warn", {"contexts":["PropertyDefinition"]}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * foo. + */ +interface quux { + +} +// "jsdoc/match-description": ["error"|"warn", {"contexts":["TSInterfaceDeclaration"]}] +// Message: JSDoc description does not satisfy the regex pattern. + +const myObject = { + /** + * Bad description + */ + myProp: true +}; +// "jsdoc/match-description": ["error"|"warn", {"contexts":["Property"]}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * @param foo Foo bar + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"param":true}}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * Foo bar + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * Description with extra new line + * + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"matchDescription":"[\\s\\S]*\\S$"}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * + * This function does lots of things. + */ + function quux () { + + } +// "jsdoc/match-description": ["error"|"warn", {"matchDescription":"^\\S[\\s\\S]*\\S$"}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** + * + * @param + */ +// "jsdoc/match-description": ["error"|"warn", {"contexts":["any"],"matchDescription":"^\\S[\\s\\S]*\\S$"}] +// Message: JSDoc description does not satisfy the regex pattern. + +/** Does something very important. */ +function foo(): string; +// "jsdoc/match-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[endLine=0]"}],"matchDescription":"^\\S[\\s\\S]*\\S$"}] +// Message: JSDoc description does not satisfy the regex pattern. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * + */ + +/** + * + */ + function quux () { + + } + +/** + * @param foo - Foo. + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"param":true}}] + +/** + * Foo. + */ +function quux () { + +} + +/** + * Foo. + * Bar. + */ +function quux () { + +} + +/** + * Foo. + * + * Bar. + */ +function quux () { + +} + +/** + * Foo. + * + * Bar. + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"message":"This won't be shown"}] + +/** + * Тест. + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"matchDescription":"[А-Я][А-я]+\\."}] + +/** + * @param notRet + * @returns Тест. + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"returns":"[А-Я][А-я]+\\."}}] + +/** + * @param notRet + * @description Тест. + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"description":"[А-Я][А-я]+\\."}}] + +/** + * Foo + * bar. + */ +function quux () { + +} + +/** + * @returns Foo bar. + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"returns":true}}] + +/** + * @returns {type1} Foo bar. + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"returns":true}}] + +/** + * @description Foo bar. + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"description":true}}] + +/** + * @description Foo + * bar. + * @param + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"description":true}}] + +/** @description Foo bar. */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"description":true}}] + +/** + * @description Foo + * bar. + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"description":true}}] + +/** + * Foo. {@see Math.sin}. + */ +function quux () { + +} + +/** + * Foo {@see Math.sin} bar. + */ +function quux () { + +} + +/** + * Foo? + * + * Bar! + * + * Baz: + * 1. Foo. + * 2. Bar. + */ +function quux () { + +} + +/** + * Hello: + * World. + */ +function quux () { + +} + +/** + * Hello: world. + */ +function quux () { + +} + +/** + * Foo + * Bar. + */ +function quux () { + +} + +/** + * Foo. + * + * foo. + */ +function quux () { + +} + +/** + * foo. + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"mainDescription":false}] + +/** + * foo. + */ +class quux { + +} + +/** + * foo. + */ +class quux { + +} +// "jsdoc/match-description": ["error"|"warn", {"mainDescription":true}] + +class MyClass { + /** + * Abc. + */ + myClassField = 1 +} +// "jsdoc/match-description": ["error"|"warn", {"contexts":["PropertyDefinition"]}] + +/** + * Foo. + */ +interface quux { + +} +// "jsdoc/match-description": ["error"|"warn", {"contexts":["TSInterfaceDeclaration"]}] + +const myObject = { + /** + * Bad description + */ + myProp: true +}; +// "jsdoc/match-description": ["error"|"warn", {"contexts":[]}] + +/** + * foo. + */ +const q = class { + +} +// "jsdoc/match-description": ["error"|"warn", {"contexts":[]}] + +/** + * foo. + */ +const q = { + +}; +// "jsdoc/match-description": ["error"|"warn", {"contexts":[]}] + +/** + * @description foo. + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"param":true}}] + +/** + * Foo. + * + * @summary Foo. + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"summary":true}}] + +/** + * Foo. + * + * @author Somebody + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"author":".+"}}] + +/** + * Foo. + * + * @x-tag something + */ +function quux () { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"x-tag":".+"}}] + +/** + * Foo. + * + * @prop foo Foo. + */ +function quux (foo) { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"prop":true}}] + +/** + * @param foo Foo bar. + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} + +/** + * + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} + +/** + * Foo. + * + * @template Abc, Def Foo. + */ +function quux (foo) { + +} +// "jsdoc/match-description": ["error"|"warn", {"tags":{"template":true}}] + +/** + * Enable or disable plugin. + * + * When enabling with this function, the script will be attached to the `document` if:. + * - the script runs in browser context. + * - the `document` doesn't have the script already attached. + * - the `loadScript` option is set to `true`. + * @param enabled `true` to enable, `false` to disable. Default: `true`. + */ +// "jsdoc/match-description": ["error"|"warn", {"contexts":["any"],"mainDescription":"/^[A-Z`-].*\\.$/us","matchDescription":"^([A-Z`-].*(\\.|:)|-\\s.*)$","tags":{"param":true,"returns":true}}] + +/** + * @constructor + * @todo Ok. + */ +function quux () { +} +// "jsdoc/match-description": ["error"|"warn", {"mainDescription":false,"tags":{"todo":true}}] + +/** Does something very important. */ +function foo(): string; +// "jsdoc/match-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[endLine!=0]"}],"matchDescription":"^\\S[\\s\\S]*\\S$"}] + +/** + * This is my favorite function, foo. + * + * @returns Nothing. + */ +function foo(): void; +// "jsdoc/match-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[endLine!=0]:not(:has(JsdocTag))"}],"matchDescription":"^\\S[\\s\\S]*\\S$"}] +```` + diff --git a/docs/rules/match-name.md b/docs/rules/match-name.md new file mode 100644 index 000000000..582093d2a --- /dev/null +++ b/docs/rules/match-name.md @@ -0,0 +1,231 @@ + + +### match-name + +Reports the name portion of a JSDoc tag if matching or not matching +a given regular expression. + +Note that some tags do not possess names and anything appearing to be a +name will actually be part of the description (e.g., for +`@returns {type} notAName`). If you are defining your own tags, see the +`structuredTags` setting (if `name: false`, this rule will not apply to +that tag). + + + +#### Fixer + +Will replace `disallowName` with `replacement` if these are provided. + + + +#### Options + +A single options object with the following properties: + + + +##### match + +`match` is a required option containing an array of objects which determine +the conditions whereby a name is reported as being problematic. + +These objects can have any combination of the following groups of optional +properties, all of which act to confine one another: + +- `tags` - This array should include tag names or `*` to indicate the + match will apply for all tags (except as confined by any context + properties). If `*` is not used, then these rules will only apply to + the specified tags. If `tags` is omitted, then `*` is assumed. + +- `allowName` - Indicates which names are allowed for the given tag (or `*`). + Accepts a string regular expression (optionally wrapped between two + `/` delimiters followed by optional flags) used to match the name. +- `disallowName` - As with `allowName` but indicates names that are not + allowed. +- `replacement` - If `disallowName` is supplied and this value is present, it + will replace the matched `disallowName` text. + +- `context` - AST to confine the allowing or disallowing to jsdoc blocks + associated with a particular context. See the + ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) + section of our README for more on the expected format. +- `comment` - As with `context` but AST for the JSDoc block comment and types + +- `message` - An optional custom message to use when there is a match. + +Note that `comment`, even if targeting a specific tag, is used to match the +whole block. So if a `comment` finds its specific tag, it may still apply +fixes found by the likes of `disallowName` even when a different tag has the +disallowed name. An alternative is to ensure that `comment` finds the specific +tag of the desired tag and/or name and no `disallowName` (or `allowName`) is +supplied. In such a case, only one error will be reported, but no fixer will +be applied, however. + +||| +|---|---| +|Context|everywhere| +|Tags|(The tags specified by `tags`, including any tag if `*` is set)| +|Recommended|false| +|Settings|`structuredTags`| +|Options|`match`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @param opt_a + * @param opt_b + */ +// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^opt_/i"}]}] +// Message: Only allowing names not matching `/^opt_/i` but found "opt_a". + +/** + * @param opt_a + * @param opt_b + */ +// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^opt_/i","replacement":""}]}] +// Message: Only allowing names not matching `/^opt_/i` but found "opt_a". + +/** + * @param a + * @param opt_b + */ +// "jsdoc/match-name": ["error"|"warn", {"match":[{"allowName":"/^[a-z]+$/i"}]}] +// Message: Only allowing names matching `/^[a-z]+$/i` but found "opt_b". + +/** + * @param arg + * @param opt_b + */ +// "jsdoc/match-name": ["error"|"warn", {"match":[{"allowName":"/^[a-z]+$/i","disallowName":"/^arg/i"}]}] +// Message: Only allowing names not matching `/^arg/i` but found "arg". + +/** + * @param opt_a + * @param arg + */ +// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^arg$/i"},{"disallowName":"/^opt_/i"}]}] +// Message: Only allowing names not matching `/^opt_/i` but found "opt_a". + +/** + * @property opt_a + * @param opt_b + */ +// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^opt_/i","tags":["param"]}]}] +// Message: Only allowing names not matching `/^opt_/i` but found "opt_b". + +/** + * @someTag opt_a + * @param opt_b + */ +// Settings: {"jsdoc":{"structuredTags":{"someTag":{"name":"namepath-defining"}}}} +// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^opt_/i","tags":["param"]}]}] +// Message: Only allowing names not matching `/^opt_/i` but found "opt_b". + +/** + * @property opt_a + * @param opt_b + */ +// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^opt_/i","tags":["*"]}]}] +// Message: Only allowing names not matching `/^opt_/i` but found "opt_a". + +/** + * @param opt_a + * @param opt_b + */ +function quux () { +} +// "jsdoc/match-name": ["error"|"warn", {"match":[{"context":"FunctionDeclaration","disallowName":"/^opt_/i"}]}] +// Message: Only allowing names not matching `/^opt_/i` but found "opt_a". + +/** + * @property opt_a + * @param {Bar|Foo} opt_b + */ +// "jsdoc/match-name": ["error"|"warn", {"match":[{"comment":"JsdocBlock:has(JsdocTag[tag=\"param\"][name=/opt_/] > JsdocTypeUnion:has(JsdocTypeName[value=\"Bar\"]:nth-child(1)))"}]}] +// Message: Prohibited context for "opt_a". + +/** + * @property opt_a + * @param {Bar|Foo} opt_b + */ +// "jsdoc/match-name": ["error"|"warn", {"match":[{"comment":"JsdocBlock:has(JsdocTag[tag=\"param\"][name=/opt_/] > JsdocTypeUnion:has(JsdocTypeName[value=\"Bar\"]:nth-child(1)))","message":"Don't use `opt_` prefixes with Bar|..."}]}] +// Message: Don't use `opt_` prefixes with Bar|... + +/** + * @param opt_a + * @param opt_b + */ +function quux () {} +// "jsdoc/match-name": ["error"|"warn", ] +// Message: Rule `no-restricted-syntax` is missing a `match` option. + +/** + * @param { + * someType + * } opt_a + */ +// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^opt_/i","replacement":""}]}] +// Message: Only allowing names not matching `/^opt_/i` but found "opt_a". +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @param opt_a + * @param opt_b + */ +// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^arg/i"}]}] + +/** + * @param a + * @param opt_b + */ +// "jsdoc/match-name": ["error"|"warn", {"match":[{"allowName":"/^[a-z_]+$/i"}]}] + +/** + * @param someArg + * @param anotherArg + */ +// "jsdoc/match-name": ["error"|"warn", {"match":[{"allowName":"/^[a-z]+$/i","disallowName":"/^arg/i"}]}] + +/** + * @param elem1 + * @param elem2 + */ +// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^arg$/i"},{"disallowName":"/^opt_/i"}]}] + +/** + * @someTag opt_a + * @param opt_b + */ +// Settings: {"jsdoc":{"structuredTags":{"someTag":{"name":"namepath-defining"}}}} +// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^opt_/i","tags":["property"]}]}] + +/** + * @property opt_a + * @param opt_b + */ +// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^arg/i","tags":["*"]}]}] + +/** + * @param opt_a + * @param opt_b + */ +class A { +} +// "jsdoc/match-name": ["error"|"warn", {"match":[{"context":"FunctionDeclaration","disallowName":"/^opt_/i"}]}] + +/** + * @property opt_a + * @param {Foo|Bar} opt_b + */ +// "jsdoc/match-name": ["error"|"warn", {"match":[{"comment":"JsdocBlock:has(JsdocTag[tag=\"param\"]:has(JsdocTypeUnion:has(JsdocTypeName[value=\"Bar\"]:nth-child(1))))","disallowName":"/^opt_/i"}]}] +```` + diff --git a/docs/rules/multiline-blocks.md b/docs/rules/multiline-blocks.md new file mode 100644 index 000000000..d74cfe7aa --- /dev/null +++ b/docs/rules/multiline-blocks.md @@ -0,0 +1,380 @@ + + +### multiline-blocks + +Controls how and whether jsdoc blocks can be expressed as single or multiple +line blocks. + +Note that if you set `noSingleLineBlocks` and `noMultilineBlocks` to `true` +and configure them in a certain manner, you might effectively be prohibiting +all jsdoc blocks! + +Also allows for preventing text at the very beginning or very end of blocks. + + + +#### Options + +A single options object with the following properties. + + + +##### noZeroLineText (defaults to true) + +For multiline blocks, any non-whitespace text immediately after the `/**` and +space will be reported. (Text after a newline is not reported.) + +`noMultilineBlocks` will have priority over this rule if it applies. + + + +##### noFinalLineText (defaults to true) + +For multiline blocks, any non-whitespace text preceding the `*/` on the final +line will be reported. (Text preceding a newline is not reported.) + +`noMultilineBlocks` will have priority over this rule if it applies. + + + +##### noSingleLineBlocks (defaults to false) + +If this is `true`, any single line blocks will be reported, except those which +are whitelisted in `singleLineTags`. + + + +##### singleLineTags (defaults to ['lends', 'type']) + +An array of tags which can nevertheless be allowed as single line blocks when +`noSingleLineBlocks` is set. You may set this to a empty array to +cause all single line blocks to be reported. If `'*'` is present, then +the presence of a tag will allow single line blocks (but not if a tag is +missing). + + + +##### noMultilineBlocks (defaults to false) + +Requires that jsdoc blocks are restricted to single lines only unless impacted +by the options `minimumLengthForMultiline`, `multilineTags`, or +`allowMultipleTags`. + + + +##### minimumLengthForMultiline (defaults to not being in effect) + +If `noMultilineBlocks` is set with this numeric option, multiline blocks will +be permitted if containing at least the given amount of text. + +If not set, multiline blocks will not be permitted regardless of length unless +a relevant tag is present and `multilineTags` is set. + + + +##### multilineTags (defaults to ['*']) + +If `noMultilineBlocks` is set with this option, multiline blocks may be allowed +regardless of length as long as a tag or a tag of a certain type is present. + +If `*` is included in the array, the presence of a tags will allow for +multiline blocks (but not when without any tags unless the amount of text is +over an amount specified by `minimumLengthForMultiline`). + +If the array does not include `*` but lists certain tags, the presence of +such a tag will cause multiline blocks to be allowed. + +You may set this to an empty array to prevent any tag from permitting multiple +lines. + + + +##### allowMultipleTags (defaults to true) + +If `noMultilineBlocks` is set to `true` with this option and multiple tags are +found in a block, an error will not be reported. + +Since multiple-tagged lines cannot be collapsed into a single line, this option +prevents them from being reported. Set to `false` if you really want to report +any blocks. + +This option will also be applied when there is a block description and a single +tag (since a description cannot precede a tag on a single line, and also +cannot be reliably added after the tag either). + +||| +|---|---| +|Context|everywhere| +|Tags|Any (though `singleLineTags` and `multilineTags` control the application)| +|Recommended|true| +|Settings|| +|Options|`noZeroLineText`, `noSingleLineBlocks`, `singleLineTags`, `noMultilineBlocks`, `minimumLengthForMultiline`, `multilineTags`, `allowMultipleTags`, `noFinalLineText`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** Reported up here + * because the rest is multiline + */ +// Message: Should have no text on the "0th" line (after the `/**`). + +/** Reported up here + * because the rest is multiline + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noZeroLineText":true}] +// Message: Should have no text on the "0th" line (after the `/**`). + +/** @abc {aType} aName Reported up here + * because the rest is multiline + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noZeroLineText":true}] +// Message: Should have no text on the "0th" line (after the `/**`). + +/** @tag */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noSingleLineBlocks":true}] +// Message: Single line blocks are not permitted by your configuration. + +/** @tag {someType} */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noSingleLineBlocks":true}] +// Message: Single line blocks are not permitted by your configuration. + +/** @tag {someType} aName */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noSingleLineBlocks":true}] +// Message: Single line blocks are not permitted by your configuration. + +/** @tag */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noSingleLineBlocks":true,"singleLineTags":["someOtherTag"]}] +// Message: Single line blocks are not permitted by your configuration. + +/** desc */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noSingleLineBlocks":true,"singleLineTags":["*"]}] +// Message: Single line blocks are not permitted by your configuration. + +/** + * Desc. + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noMultilineBlocks":true}] +// Message: Multiline jsdoc blocks are prohibited by your configuration. + +/** desc + * + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noMultilineBlocks":true}] +// Message: Multiline jsdoc blocks are prohibited by your configuration. + +/** desc + * + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noMultilineBlocks":true,"noSingleLineBlocks":true}] +// Message: Multiline jsdoc blocks are prohibited by your configuration but fixing would result in a single line block which you have prohibited with `noSingleLineBlocks`. + +/** + * + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noMultilineBlocks":true}] +// Message: Multiline jsdoc blocks are prohibited by your configuration. + +/** + * This is not long enough to be permitted. + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"minimumLengthForMultiline":100,"noMultilineBlocks":true}] +// Message: Multiline jsdoc blocks are prohibited by your configuration. + +/** + * This is not long enough to be permitted. + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"allowMultipleTags":true,"minimumLengthForMultiline":100,"noMultilineBlocks":true}] +// Message: Multiline jsdoc blocks are prohibited by your configuration. + +/** + * This has the wrong tags so is not permitted. + * @notTheRightTag + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"allowMultipleTags":false,"multilineTags":["onlyThisIsExempted"],"noMultilineBlocks":true}] +// Message: Multiline jsdoc blocks are prohibited by your configuration but the block has a description with a tag. + +/** + * This has too many tags so cannot be fixed ot a single line. + * @oneTag + * @anotherTag + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"allowMultipleTags":false,"multilineTags":[],"noMultilineBlocks":true}] +// Message: Multiline jsdoc blocks are prohibited by your configuration but the block has multiple tags. + +/** + * This has a tag and description so cannot be fixed ot a single line. + * @oneTag + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"allowMultipleTags":false,"multilineTags":[],"noMultilineBlocks":true}] +// Message: Multiline jsdoc blocks are prohibited by your configuration but the block has a description with a tag. + +/** + * This has no tags so is not permitted. + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"multilineTags":["*"],"noMultilineBlocks":true}] +// Message: Multiline jsdoc blocks are prohibited by your configuration. + +/** + * This has the wrong tags so is not permitted. + * @notTheRightTag + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"allowMultipleTags":false,"minimumLengthForMultiline":500,"multilineTags":["onlyThisIsExempted"],"noMultilineBlocks":true}] +// Message: Multiline jsdoc blocks are prohibited by your configuration but the block has a description with a tag. + +/** + * @lends This can be safely fixed to a single line. + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"multilineTags":[],"noMultilineBlocks":true,"noSingleLineBlocks":true}] +// Message: Multiline jsdoc blocks are prohibited by your configuration. + +/** + * @type {aType} This can be safely fixed to a single line. + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"multilineTags":[],"noMultilineBlocks":true,"noSingleLineBlocks":true}] +// Message: Multiline jsdoc blocks are prohibited by your configuration. + +/** + * @aTag + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"multilineTags":[],"noMultilineBlocks":true}] +// Message: Multiline jsdoc blocks are prohibited by your configuration. + +/** + * This is a problem when single and multiline are blocked. + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noMultilineBlocks":true,"noSingleLineBlocks":true}] +// Message: Multiline jsdoc blocks are prohibited by your configuration but fixing would result in a single line block which you have prohibited with `noSingleLineBlocks`. + +/** This comment is bad + * It should not have text on line zero + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"minimumLengthForMultiline":50,"noMultilineBlocks":true,"noZeroLineText":true}] +// Message: Should have no text on the "0th" line (after the `/**`). + +/** + * @lends This can be safely fixed + * to a single + * line. */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"multilineTags":[],"noMultilineBlocks":true}] +// Message: Multiline jsdoc blocks are prohibited by your configuration. + +/** + * @someTag {aType} with Description */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noFinalLineText":true}] +// Message: Should have no text on the final line (before the `*/`). + +/** + * Description */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noFinalLineText":true}] +// Message: Should have no text on the final line (before the `*/`). +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** Not reported */ + +/** + * Not reported + */ + +/** Reported up here + * because the rest is multiline + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noZeroLineText":false}] + +/** @tag */ + +/** @lends */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noSingleLineBlocks":true}] + +/** @tag */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noSingleLineBlocks":true,"singleLineTags":["tag"]}] + +/** @tag */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noSingleLineBlocks":true,"singleLineTags":["*"]}] + +/** + * + */ + +/** + * + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noMultilineBlocks":false}] + +/** Test */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noMultilineBlocks":true}] + +/** + * This is long enough to be permitted by our config. + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"minimumLengthForMultiline":25,"noMultilineBlocks":true}] + +/** + * This is long enough to be permitted by our config. + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"minimumLengthForMultiline":50,"noMultilineBlocks":true}] + +/** + * This has the right tag so is permitted. + * @theRightTag + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"multilineTags":["theRightTag"],"noMultilineBlocks":true}] + +/** This has no tags but is single line so is not permitted. */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"multilineTags":["*"],"noMultilineBlocks":true}] + +/** + * This has the wrong tags so is not permitted. + * @notTheRightTag + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"minimumLengthForMultiline":10,"multilineTags":["onlyThisIsExempted"],"noMultilineBlocks":true}] + +/** + * This has the wrong tags so is not permitted. + * @theRightTag + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"minimumLengthForMultiline":500,"multilineTags":["theRightTag"],"noMultilineBlocks":true}] + +/** tag */ + +/** + * @lends This is ok per multiline + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noMultilineBlocks":true,"noSingleLineBlocks":true}] + +/** + * This has too many tags so cannot be fixed ot a single line. + * @oneTag + * @anotherTag + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"multilineTags":[],"noMultilineBlocks":true}] + +/** + * This has too many tags so cannot be fixed ot a single line. + * @oneTag + * @anotherTag + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"allowMultipleTags":true,"multilineTags":[],"noMultilineBlocks":true}] + +/** + * This has a tag and description so cannot be fixed ot a single line. + * @oneTag + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"allowMultipleTags":true,"multilineTags":[],"noMultilineBlocks":true}] + +/** + * This has a tag and description so cannot be fixed ot a single line. + * @oneTag + */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"allowMultipleTags":false,"multilineTags":["oneTag"],"noMultilineBlocks":true}] + +/** @someTag with Description */ +// "jsdoc/multiline-blocks": ["error"|"warn", {"noFinalLineText":true}] +```` + diff --git a/docs/rules/no-bad-blocks.md b/docs/rules/no-bad-blocks.md new file mode 100644 index 000000000..fc0a38b38 --- /dev/null +++ b/docs/rules/no-bad-blocks.md @@ -0,0 +1,156 @@ + + +### no-bad-blocks + +This rule checks for multi-line-style comments which fail to meet the +criteria of a jsdoc block, namely that it should begin with two and only two +asterisks, but which appear to be intended as jsdoc blocks due to the presence +of whitespace followed by whitespace or asterisks, and +an at-sign (`@`) and some non-whitespace (as with a jsdoc block tag). + + + +#### Options + +Takes an optional options object with the following. + + + +##### ignore + +An array of directives that will not be reported if present at the beginning of +a multi-comment block and at-sign `/* @`. + +Defaults to `['ts-check', 'ts-expect-error', 'ts-ignore', 'ts-nocheck']` +(some directives [used by TypeScript](https://www.typescriptlang.org/docs/handbook/intro-to-js-ts.html#ts-check)). + + + +##### preventAllMultiAsteriskBlocks + +A boolean (defaulting to `false`) which if `true` will prevent all +JSDoc-like blocks with more than two initial asterisks even those without +apparent tag content. + +||| +|---|---| +|Context|Everywhere| +|Tags|N/A| +|Recommended|false| +|Options|`ignore`, `preventAllMultiAsteriskBlocks`| + +## Failing examples + +The following patterns are considered problems: + +````js +/* + * @param foo + */ +function quux (foo) { + +} +// Message: Expected JSDoc-like comment to begin with two asterisks. + +/* + * @property foo + */ +// Message: Expected JSDoc-like comment to begin with two asterisks. + +function quux() { + +} +// Settings: {"jsdoc":{"structuredTags":{"see":{"name":false,"required":["name"]}}}} +// Message: Cannot add "name" to `require` with the tag's `name` set to `false` + +/* @ts-ignore */ +// "jsdoc/no-bad-blocks": ["error"|"warn", {"ignore":[]}] +// Message: Expected JSDoc-like comment to begin with two asterisks. + +/* + * Some description. + * + * @returns {string} Some string + */ +function echo() { + return 'Something'; +} +// Message: Expected JSDoc-like comment to begin with two asterisks. + +/*** + * @param foo + */ +function quux (foo) { + +} +// Message: Expected JSDoc-like comment to begin with two asterisks. + +/*** + * + */ +function quux (foo) { + +} +// "jsdoc/no-bad-blocks": ["error"|"warn", {"preventAllMultiAsteriskBlocks":true}] +// Message: Expected JSDoc-like comment to begin with two asterisks. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @property foo + */ + +/** + * @param foo + */ + function quux () { + + } + +function quux () { + +} + +/* This could just be intended as a regular multiline comment, + so don't report this */ +function quux () { + +} + +/* Just a regular multiline comment with an `@` but not appearing + like a tag in a jsdoc-block, so don't report */ +function quux () { + +} + +/* @ts-check */ + +/* @ts-expect-error */ + +/* @ts-ignore */ + +/* @ts-nocheck */ + +/* */ + +/** */ + +/* @custom */ +// "jsdoc/no-bad-blocks": ["error"|"warn", {"ignore":["custom"]}] + +/*** + * This is not JSDoc because of the 3 asterisks, but + * is allowed without `preventAllMultiAsteriskBlocks`, as + * some might wish normal multiline comments. + */ +function quux (foo) { + +} + +/***/ +```` + diff --git a/docs/rules/no-blank-block-descriptions.md b/docs/rules/no-blank-block-descriptions.md new file mode 100644 index 000000000..ea9dd0991 --- /dev/null +++ b/docs/rules/no-blank-block-descriptions.md @@ -0,0 +1,73 @@ + + +### no-blank-block-descriptions + +If tags are present, this rule will prevent empty lines in the +block description. + +If no tags are present, this rule will prevent extra empty lines +in the block description. + +||| +|---|---| +|Context|everywhere| +|Tags|(Block description)| +|Recommended|false| +|Settings|| +|Options|| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * + * @param {number} x + */ +function functionWithClearName(x) {} +// Message: There should be no blank lines in block descriptions followed by tags. + +/** + * + * + */ +function functionWithClearName() {} +// Message: There should be no extra blank lines in block descriptions not followed by tags. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * Non-empty description + * @param {number} x + */ +function functionWithClearName(x) {} + +/** + * @param {number} x + */ +function functionWithClearName(x) {} + +/** + * + */ +function functionWithClearName() {} + +/** + */ +function functionWithClearName() {} + +/** */ +function functionWithClearName() {} + +/** Some desc. */ +function functionWithClearName() {} + +/** @someTag */ +function functionWithClearName() {} +```` + diff --git a/docs/rules/no-blank-blocks.md b/docs/rules/no-blank-blocks.md new file mode 100644 index 000000000..df7d6785d --- /dev/null +++ b/docs/rules/no-blank-blocks.md @@ -0,0 +1,81 @@ + + +### no-blank-blocks + +Reports and optionally removes blocks with whitespace only. + + + +#### Options + + + +##### enableFixer + +Whether or not to auto-remove the blank block. Defaults to `false`. + +||| +|---|---| +|Context|everywhere| +|Tags|N/A| +|Recommended|false| +|Settings|| +|Options|`enableFixer`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** */ +// "jsdoc/no-blank-blocks": ["error"|"warn", {"enableFixer":true}] +// Message: No empty blocks + +/** + */ +// "jsdoc/no-blank-blocks": ["error"|"warn", {"enableFixer":true}] +// Message: No empty blocks + +/** + * + */ +// "jsdoc/no-blank-blocks": ["error"|"warn", {"enableFixer":true}] +// Message: No empty blocks + +/** + * + * + */ +// "jsdoc/no-blank-blocks": ["error"|"warn", {"enableFixer":true}] +// Message: No empty blocks + +/** + * + * + */ +// "jsdoc/no-blank-blocks": ["error"|"warn", {"enableFixer":false}] +// Message: No empty blocks + +/** + * + * + */ +// Message: No empty blocks +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** @tag */ + +/** + * Text + */ + +/** + * @tag + */ +```` + diff --git a/docs/rules/no-defaults.md b/docs/rules/no-defaults.md new file mode 100644 index 000000000..9814cdf88 --- /dev/null +++ b/docs/rules/no-defaults.md @@ -0,0 +1,182 @@ + + +### no-defaults + +This rule reports defaults being used on the relevant portion of `@param` +or `@default`. It also optionally reports the presence of the +square-bracketed optional arguments at all. + +The rule is intended to prevent the indication of defaults on tags where +this would be redundant with ES6 default parameters (or for `@default`, +where it would be redundant with the context to which the `@default` +tag is attached). + +Unless your `@default` is on a function, you will need to set `contexts` +to an appropriate context, including, if you wish, "any". + + + +#### Options + + + +##### noOptionalParamNames + +Set this to `true` to report the presence of optional parameters. May be +used if the project is insisting on optionality being indicated by +the presence of ES6 default parameters (bearing in mind that such +"defaults" are only applied when the supplied value is missing or +`undefined` but not for `null` or other "falsey" values). + + + +##### contexts + +Set this to an array of strings representing the AST context (or an object with +`context` and `comment` properties) where you wish the rule to be applied. +Overrides the default contexts (see below). Set to `"any"` if you want +the rule to apply to any jsdoc block throughout your files (as is necessary +for finding function blocks not attached to a function declaration or +expression, i.e., `@callback` or `@function` (or its aliases `@func` or +`@method`) (including those associated with an `@interface`). + +See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) +section of our README for more on the expected format. + +||| +|---|---| +|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| +|Tags|`param`, `default`| +|Aliases|`arg`, `argument`, `defaultvalue`| +|Recommended|false| +|Options|`contexts`, `noOptionalParamNames`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @param {number} [foo="7"] + */ +function quux (foo) { + +} +// Message: Defaults are not permitted on @param. + +class Test { + /** + * @param {number} [foo="7"] + */ + quux (foo) { + + } +} +// Message: Defaults are not permitted on @param. + +/** + * @param {number} [foo="7"] + */ +function quux (foo) { + +} +// "jsdoc/no-defaults": ["error"|"warn", {"noOptionalParamNames":true}] +// Message: Optional param names are not permitted on @param. + +/** + * @arg {number} [foo="7"] + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} +// Message: Defaults are not permitted on @arg. + +/** + * @param {number} [foo="7"] + */ +function quux (foo) { + +} +// "jsdoc/no-defaults": ["error"|"warn", {"contexts":["any"]}] +// Message: Defaults are not permitted on @param. + +/** + * @function + * @param {number} [foo="7"] + */ +// "jsdoc/no-defaults": ["error"|"warn", {"contexts":["any"]}] +// Message: Defaults are not permitted on @param. + +/** + * @callback + * @param {number} [foo="7"] + */ +// "jsdoc/no-defaults": ["error"|"warn", {"contexts":["any"]}] +// Message: Defaults are not permitted on @param. + +/** + * @default {} + */ +const a = {}; +// "jsdoc/no-defaults": ["error"|"warn", {"contexts":["any"]}] +// Message: Default values are not permitted on @default. + +/** + * @defaultvalue {} + */ +const a = {}; +// Settings: {"jsdoc":{"tagNamePreference":{"default":"defaultvalue"}}} +// "jsdoc/no-defaults": ["error"|"warn", {"contexts":["any"]}] +// Message: Default values are not permitted on @defaultvalue. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @param foo + */ +function quux (foo) { + +} + +/** + * @param {number} foo + */ +function quux (foo) { + +} + +/** + * @param foo + */ +// "jsdoc/no-defaults": ["error"|"warn", {"contexts":["any"]}] + +/** + * @function + * @param {number} foo + */ + +/** + * @callback + * @param {number} foo + */ + +/** + * @param {number} foo + */ +function quux (foo) { + +} +// "jsdoc/no-defaults": ["error"|"warn", {"noOptionalParamNames":true}] + +/** + * @default + */ +const a = {}; +// "jsdoc/no-defaults": ["error"|"warn", {"contexts":["any"]}] +```` + diff --git a/docs/rules/no-missing-syntax.md b/docs/rules/no-missing-syntax.md new file mode 100644 index 000000000..044342357 --- /dev/null +++ b/docs/rules/no-missing-syntax.md @@ -0,0 +1,252 @@ + + +### no-missing-syntax + +This rule lets you report if certain always expected comment structures are +missing. + +This (along with `no-restricted-syntax`) is a bit similar to Schematron for +XML or jsontron for JSON--you can validate expectations of there being +arbitrary structures. + +This differs from the rule of the same name in +[`eslint-plugin-query`](https://github.com/brettz9/eslint-plugin-query) +in that this rule always looks for a comment above a structure (whether or not +you have a `comment` condition). + +This rule might be especially useful with [`overrides`](https://eslint.org/docs/user-guide/configuring/configuration-files#how-do-overrides-work) +where you need only require tags and/or types within specific directories +(e.g., to enforce that a plugins or locale directory always has a certain form +of export and comment therefor). + +In addition to being generally useful for precision in requiring contexts, +it is hoped that the ability to specify required tags on structures can +be used for requiring `@type` or other types for a minimalist yet adequate +specification of types which can be used to compile JavaScript+JSDoc (JJ) +to WebAssembly (e.g., by converting it to TypeSscript and then using +AssemblyScript to convert to WebAssembly). (It may be possible that one +will need to require types with certain structures beyond function +declarations and the like, as well as optionally requiring specification +of number types.) + +Note that you can use selectors which make use of negators like `:not()` +including with asterisk, e.g., `*:not(FunctionDeclaration)` to indicate types +which are not adequate to satisfy a condition, e.g., +`FunctionDeclaration:not(FunctionDeclaration[id.name="ignoreMe"])` would +not report if there were only a function declaration of the name "ignoreMe" +(though it would report by function declarations of other names). + + + +#### Options + + + +##### contexts + +Set this to an array of strings representing the AST context (or an object with +`context` and `comment` properties) where you wish the rule to be applied. + +Use the `minimum` property (defaults to 1) to indicate how many are required +for the rule to be reported. + +Use the `message` property to indicate the specific error to be shown when an +error is reported for that context being found missing. You may use +`{{context}}` and `{{comment}}` with such messages. + +Set to `"any"` if you want the rule to apply to any jsdoc block throughout +your files (as is necessary for finding function blocks not attached to a +function declaration or expression, i.e., `@callback` or `@function` (or its +aliases `@func` or `@method`) (including those associated with an `@interface`). + +See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) +section of our README for more on the expected format. + +||| +|---|---| +|Context|None except those indicated by `contexts`| +|Tags|Any if indicated by AST| +|Recommended|false| +|Options|`contexts`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @implements {Bar|Foo} + */ +function quux () { + +} +// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Foo\"]:nth-child(1))","context":"FunctionDeclaration"}]}] +// Message: Syntax is required: FunctionDeclaration with JsdocBlock[postDelimiter=""]:has(JsdocTypeUnion > JsdocTypeName[value="Foo"]:nth-child(1)) + +/** + * @implements {Bar|Foo} + */ +function quux () { + +} +// Settings: {"jsdoc":{"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Foo\"]:nth-child(1))","context":"FunctionDeclaration"}]}} +// Message: Syntax is required: FunctionDeclaration with JsdocBlock[postDelimiter=""]:has(JsdocTypeUnion > JsdocTypeName[value="Foo"]:nth-child(1)) + +/** + * @implements {Bar|Foo} + */ +function quux () { + +} +// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"FunctionDeclaration"},{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Foo\"]:nth-child(1))","context":"FunctionDeclaration"}]}] +// Message: Syntax is required: FunctionDeclaration with JsdocBlock[postDelimiter=""]:has(JsdocTypeUnion > JsdocTypeName[value="Foo"]:nth-child(1)) + +/** + * @implements {Bar|Foo} + */ +function quux () { + +} +// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"any"},{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Foo\"]:nth-child(1))","context":":function"}]}] +// Message: Syntax is required: :function with JsdocBlock[postDelimiter=""]:has(JsdocTypeUnion > JsdocTypeName[value="Foo"]:nth-child(1)) + +/** + * @private + * Object holding values of some custom enum + */ +const MY_ENUM = Object.freeze({ + VAL_A: "myvala" +} as const); +// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[tag=/private|protected/])","context":":declaration","message":"Requiring private/protected tags here"},{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[tag=\"enum\"])","context":"any","message":"@enum required on declarations"}]}] +// Message: @enum required on declarations + +/** + * @implements {Bar|Foo} + */ +function quux () { + +} +// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Foo\"]:nth-child(1))","context":"FunctionDeclaration","message":"Problematically missing function syntax: `{{context}}` with `{{comment}}`."}]}] +// Message: Problematically missing function syntax: `FunctionDeclaration` with `JsdocBlock[postDelimiter=""]:has(JsdocTypeUnion > JsdocTypeName[value="Foo"]:nth-child(1))`. + +/** + * @implements {Bar|Foo} + */ +function quux () { + +} +// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":["FunctionDeclaration"]}] +// Message: Syntax is required: FunctionDeclaration + +/** + * @implements {Bar|Foo} + */ +function quux () { + +} +// Message: Rule `no-missing-syntax` is missing a `contexts` option. + +/** + * @implements {Bar|Foo} + */ +function quux () { + +} +// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"FunctionDeclaration","minimum":2}]}] +// Message: Syntax is required: FunctionDeclaration with JsdocBlock[postDelimiter=""]:has(JsdocTypeUnion > JsdocTypeName[value="Bar"]:nth-child(1)) + +/** + * @param ab + * @param cd + */ +// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"any","message":"Require names matching `/^opt_/i`."}]}] +// Message: Require names matching `/^opt_/i`. + +/** + * @param ab + * @param cd + */ +// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","message":"Require names matching `/^opt_/i`."}]}] +// Message: Require names matching `/^opt_/i`. + +/** + * @param ab + * @param cd + */ +function quux () {} +// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"any","message":"Require names matching `/^opt_/i`."}]}] +// Message: Require names matching `/^opt_/i`. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @implements {Bar|Foo} + */ +function quux () { + +} +// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"FunctionDeclaration"}]}] + +/** + * @implements {Bar|Foo} + */ +function quux () { + +} + +/** + * @implements {Bar|Foo} + */ +function bar () { + +} + +/** + * @implements {Bar|Foo} + */ +function baz () { + +} +// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"FunctionDeclaration","minimum":2}]}] + +/** + * @param opt_a + * @param opt_b + */ +// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"any","message":"Require names matching `/^opt_/i`."}]}] + +/** + * @param opt_a + * @param opt_b + */ +function quux () {} +// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"any","message":"Require names matching `/^opt_/i`."}]}] + +/** + * @param opt_a + * @param opt_b + */ +function quux () {} +// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","message":"Require names matching `/^opt_/i`."}]}] + +/** + * @implements {Bar|Foo} + */ +function quux () { + +} +// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"FunctionDeclaration"},{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Foo\"]:nth-child(2))","context":"FunctionDeclaration"}]}] + +/** + * @implements {Bar|Foo} + */ +function quux () { + +} +// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"any"},{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Foo\"]:nth-child(2))","context":"FunctionDeclaration"}]}] +```` + diff --git a/docs/rules/no-multi-asterisks.md b/docs/rules/no-multi-asterisks.md new file mode 100644 index 000000000..ab4742da2 --- /dev/null +++ b/docs/rules/no-multi-asterisks.md @@ -0,0 +1,260 @@ + + +### no-multi-asterisks + +Prevents use of multiple asterisks at the beginning of lines. + +Note that if you wish to prevent multiple asterisks at the very beginning of +the jsdoc block, you should use `no-bad-blocks` (as that is not proper jsdoc +and that rule is for catching blocks which only seem like jsdoc). + + + +#### Options + + + +##### allowWhitespace (defaults to false) + +Set to `true` if you wish to allow asterisks after a space (as with Markdown): + +```js +/** + * *bold* text + */ +``` + + + +##### preventAtMiddleLines (defaults to true) + +Prevent the likes of this: + +```js +/** + * + ** + */ +``` + + + +##### preventAtEnd (defaults to true) + +Prevent the likes of this: + +```js +/** + * + * + **/ +``` + +||| +|---|---| +|Context|everywhere| +|Tags|(any)| +|Recommended|true| +|Settings|| +|Options|`preventAtEnd`, `preventAtMiddleLines`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * + ** + */ +// Message: Should be no multiple asterisks on middle lines. + +/** + * + ** + */ +// "jsdoc/no-multi-asterisks": ["error"|"warn", {"preventAtMiddleLines":true}] +// Message: Should be no multiple asterisks on middle lines. + +/** + * + ** + */ +// "jsdoc/no-multi-asterisks": ["error"|"warn", {"preventAtEnd":false}] +// Message: Should be no multiple asterisks on middle lines. + +/** + * With a description + * @tag {SomeType} and a tag with details + ** + */ +// Message: Should be no multiple asterisks on middle lines. + +/** + ** + * + */ +// Message: Should be no multiple asterisks on middle lines. + +/** + * Desc. + * + **/ +// Message: Should be no multiple asterisks on end lines. + +/** + * Desc. + * + **/ +// "jsdoc/no-multi-asterisks": ["error"|"warn", {"preventAtEnd":true}] +// Message: Should be no multiple asterisks on end lines. + +/** + * Desc. + * + abc * **/ +// "jsdoc/no-multi-asterisks": ["error"|"warn", {"preventAtEnd":true}] +// Message: Should be no multiple asterisks on end lines. + +/** + * Desc. + * + **/ +// "jsdoc/no-multi-asterisks": ["error"|"warn", {"preventAtMiddleLines":false}] +// Message: Should be no multiple asterisks on end lines. + +/** Desc. **/ +// Message: Should be no multiple asterisks on end lines. + +/** @someTag name desc. **/ +// Message: Should be no multiple asterisks on end lines. + +/** abc * */ +// Message: Should be no multiple asterisks on end lines. + +/** + * Preserve user's whitespace when fixing (though one may also + * use an align rule) + * + * */ +// "jsdoc/no-multi-asterisks": ["error"|"warn", {"preventAtEnd":true}] +// Message: Should be no multiple asterisks on end lines. + +/** + * The method does 2 things: + * * Thing 1 + * * Thing 2 + */ +// "jsdoc/no-multi-asterisks": ["error"|"warn", {"allowWhitespace":false}] +// Message: Should be no multiple asterisks on middle lines. + +/** + * This muti-line comment contains some + * *non-standard bold* syntax + */ +// "jsdoc/no-multi-asterisks": ["error"|"warn", {"allowWhitespace":false}] +// Message: Should be no multiple asterisks on middle lines. + +/** Desc. **/ +// "jsdoc/no-multi-asterisks": ["error"|"warn", {"allowWhitespace":true}] +// Message: Should be no multiple asterisks on end lines. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * + * Desc. *** + */ + +/** + * Desc. *** + * + */ + +/** + * Desc. + * + * sth */ + +/** + ** + * + */ +// "jsdoc/no-multi-asterisks": ["error"|"warn", {"preventAtMiddleLines":false}] + +/** + * + * + **/ +// "jsdoc/no-multi-asterisks": ["error"|"warn", {"preventAtEnd":false}] + +/** + * With a desc. + * and *** + */ + +/** + * and *** + * With a desc. + */ + +/** + * With a desc. + * With a desc. + * Desc. */ + +/** + * With a description + * @tag {SomeType} and a tag with details + * + */ + +/** abc */ +function foo() { + // +} + +/** foo */ +function foo(): void { + // +} + +/** @aTag abc */ +function foo() { + // +} + +/** + * **Bold** + */ + +/** + * Preserve user's bold statement when fixing. + * + * **Bold example:** Hi there. + */ + +/** + * The method does 2 things: + * * Thing 1 + * * Thing 2 + */ +// "jsdoc/no-multi-asterisks": ["error"|"warn", {"allowWhitespace":true}] + +/** + * This muti-line comment contains some + * *non-standard bold* syntax + */ +// "jsdoc/no-multi-asterisks": ["error"|"warn", {"allowWhitespace":true}] + +/** abc */ +function foo() { + // +} +// "jsdoc/no-multi-asterisks": ["error"|"warn", {"allowWhitespace":true}] +```` + diff --git a/docs/rules/no-restricted-syntax.md b/docs/rules/no-restricted-syntax.md new file mode 100644 index 000000000..9a7235b58 --- /dev/null +++ b/docs/rules/no-restricted-syntax.md @@ -0,0 +1,342 @@ + + +### no-restricted-syntax + +Reports when certain comment structures are present. + +Note that this rule differs from ESLint's [no-restricted-syntax](https://eslint.org/docs/rules/no-restricted-syntax) +rule in expecting values within a single options object's +`contexts` property, and with the property `context` being used in place of +`selector` (as well as allowing for `comment`). The format also differs from +the format expected by [`eslint-plugin-query`](https://github.com/brettz9/eslint-plugin-query). + +Unlike those rules, this is specific to finding comments attached to +structures, (whether or not you add a specific `comment` condition). + +Note that if your parser supports comment AST (as [jsdoc-eslint-parser](https://github.com/brettz9/jsdoc-eslint-parser) +is designed to do), you can just use ESLint's rule. + + + +#### Options + + + +##### contexts + +Set this to an array of strings representing the AST context (or an object with +`context` and `comment` properties) where you wish the rule to be applied. + +Use the `message` property to indicate the specific error to be shown when an +error is reported for that context being found. + +Set to `"any"` if you want the rule to apply to any jsdoc block throughout +your files (as is necessary for finding function blocks not attached to a +function declaration or expression, i.e., `@callback` or `@function` (or its +aliases `@func` or `@method`) (including those associated with an `@interface`). + +See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) +section of our README for more on the expected format. + +||| +|---|---| +|Context|None except those indicated by `contexts`| +|Tags|Any if indicated by AST| +|Recommended|false| +|Options|`contexts`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * + */ +function quux () { + +} +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":["FunctionDeclaration"]}] +// Message: Syntax is restricted: FunctionDeclaration + +/** + * + */ +function quux () { + +} +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"context":"FunctionDeclaration","message":"Oops: `{{context}}`."}]}] +// Message: Oops: `FunctionDeclaration`. + +/** + * @implements {Bar|Foo} + */ +function quux () { + +} +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"FunctionDeclaration"}]}] +// Message: Syntax is restricted: FunctionDeclaration with JsdocBlock[postDelimiter=""]:has(JsdocTypeUnion > JsdocTypeName[value="Bar"]:nth-child(1)) + +/** + * @implements {Bar|Foo} + */ +function quux () { + +} +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Foo\"]:nth-child(1))","context":"FunctionDeclaration","message":"The foo one: {{context}}."},{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"FunctionDeclaration","message":"The bar one: {{context}}."}]}] +// Message: The bar one: FunctionDeclaration. + +/** + * @implements {Bar|Foo} + */ +function quux () { + +} +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"FunctionDeclaration","message":"The bar one: {{context}}."},{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Foo\"]:nth-child(1))","context":"FunctionDeclaration","message":"The foo one: {{context}}."}]}] +// Message: The bar one: FunctionDeclaration. + +/** + * @implements {Bar|Foo} + */ +function quux () { + +} +// Message: Rule `no-restricted-syntax` is missing a `contexts` option. + +/** + * @implements {Bar|Foo} + */ +function quux () { + +} +// Settings: {"jsdoc":{"contexts":["FunctionDeclaration"]}} +// Message: Rule `no-restricted-syntax` is missing a `contexts` option. + +/** + * @param opt_a + * @param opt_b + */ +function a () {} +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"FunctionDeclaration","message":"Only allowing names not matching `/^opt_/i`."}]}] +// Message: Only allowing names not matching `/^opt_/i`. + +/** + * @param opt_a + * @param opt_b + */ +function a () {} +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"any","message":"Only allowing names not matching `/^opt_/i`."}]}] +// Message: Only allowing names not matching `/^opt_/i`. + +/** + * @param opt_a + * @param opt_b + */ +function a () {} +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","message":"Only allowing names not matching `/^opt_/i`."}]}] +// Message: Only allowing names not matching `/^opt_/i`. + +/** + * @param opt_a + * @param opt_b + */ +function a () {} +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/not-this/])","context":"any","message":"Only allowing names not matching `/^not-this/i`."},{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"any","message":"Only allowing names not matching `/^opt_/i`."}]}] +// Message: Only allowing names not matching `/^opt_/i`. + +/** + * @param opt_a + * @param opt_b + */ +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"any","message":"Only allowing names not matching `/^opt_/i`."}]}] +// Message: Only allowing names not matching `/^opt_/i`. + +/** + * @enum {String} + * Object holding values of some custom enum + */ +const MY_ENUM = Object.freeze({ + VAL_A: "myvala" +} as const); +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag ~ JsdocTag[tag=/private|protected/])","context":"any","message":"Access modifier tags must come first"},{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[tag=\"enum\"])","context":":declaration","message":"@enum not allowed on declarations"}]}] +// Message: @enum not allowed on declarations + +/** @type {React.FunctionComponent<{ children: React.ReactNode }>}*/ +const MyComponent = ({ children }) => { + return children; +} +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[tag=\"type\"]:has([value=/FunctionComponent/]))","context":"any","message":"The `FunctionComponent` type is not allowed. Please use `FC` instead."}]}] +// Message: The `FunctionComponent` type is not allowed. Please use `FC` instead. + +/** Some text and more */ +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[descriptionStartLine=0][descriptionEndLine=0]","context":"any","message":"Requiring descriptive text on 0th line only"}]}] +// Message: Requiring descriptive text on 0th line only + +/** Some text and +* more +*/ +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[descriptionStartLine=0][hasPreterminalDescription=0]","context":"any","message":"Requiring descriptive text on 0th line and no preterminal description"}]}] +// Message: Requiring descriptive text on 0th line and no preterminal description + +/** Some text +* @param sth Param text followed by no newline */ +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[descriptionStartLine=0][hasPreterminalTagDescription=1]","context":"any","message":"Requiring descriptive text on 0th line but no preterminal description"}]}] +// Message: Requiring descriptive text on 0th line but no preterminal description + +/** + * + */ +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(*:has(JsdocTag[tag=see]))","context":"any","message":"@see required on each block"}]}] +// Message: @see required on each block + +/** + * @type {{a: string}} + */ +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[tag=type][parsedType.type!=JsdocTypeStringValue][parsedType.type!=JsdocTypeNumber][parsedType.type!=JsdocTypeName])","context":"any","message":"@type should be limited to numeric or string literals and names"},{"comment":"JsdocBlock:has(JsdocTag[tag=type][parsedType.type=JsdocTypeName]:not(*[parsedType.value=/^(true|false|null|undefined|boolean|number|string)$/]))","context":"any","message":"@type names should only be recognized primitive types or literals"}]}] +// Message: @type should be limited to numeric or string literals and names + +/** + * @type {abc} + */ +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[tag=type][parsedType.type!=JsdocTypeStringValue][parsedType.type!=JsdocTypeNumber][parsedType.type!=JsdocTypeName])","context":"any","message":"@type should be limited to numeric or string literals and names"},{"comment":"JsdocBlock:has(JsdocTag[tag=type][parsedType.type=JsdocTypeName]:not(*[parsedType.value=/^(true|false|null|undefined|boolean|number|string)$/]))","context":"any","message":"@type names should only be recognized primitive types or literals"}]}] +// Message: @type names should only be recognized primitive types or literals + +/** + * + */ +function test(): string { } +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(*:has(JsdocTag[tag=/returns/]))","context":"FunctionDeclaration[returnType.typeAnnotation.type!=/TSVoidKeyword|TSUndefinedKeyword/]","message":"Functions with non-void return types must have a @returns tag"}]}] +// Message: Functions with non-void return types must have a @returns tag + +/** + * + */ +let test = (): string => { }; +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(*:has(JsdocTag[tag=/returns/]))","context":"ArrowFunctionExpression[returnType.typeAnnotation.type!=/TSVoidKeyword|TSUndefinedKeyword/]","message":"Functions with non-void return types must have a @returns tag"}]}] +// Message: Functions with non-void return types must have a @returns tag + +/** + * @returns + */ +let test: () => string; +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(*:has(JsdocTag[tag=/returns/]:has(JsdocDescriptionLine)))","context":"VariableDeclaration:has(*[typeAnnotation.typeAnnotation.type=/TSFunctionType/][typeAnnotation.typeAnnotation.returnType.typeAnnotation.type!=/TSVoidKeyword|TSUndefinedKeyword/])","message":"FunctionType's with non-void return types must have a @returns tag with a description"}]}] +// Message: FunctionType's with non-void return types must have a @returns tag with a description + +/** + * + */ +class Test { + abstract Test(): string; +} +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(*:has(JsdocTag[tag=/returns/]))","context":"TSEmptyBodyFunctionExpression[returnType.typeAnnotation.type!=/TSVoidKeyword|TSUndefinedKeyword/]","message":"methods with non-void return types must have a @returns tag"}]}] +// Message: methods with non-void return types must have a @returns tag +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * + */ +function quux () { + +} +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":["FunctionExpression"]}] + +/** + * @implements {Bar|Foo} + */ +function quux () { + +} +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Foo\"]:nth-child(1))","context":"FunctionDeclaration"}]}] + +/** + * @param ab + * @param cd + */ +function a () {} +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"any","message":"Only allowing names not matching `/^opt_/i`."}]}] + +/** + * @param ab + * @param cd + */ +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"any","message":"Only allowing names not matching `/^opt_/i`."}]}] + +/** + * @param ab + * @param cd + */ +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","message":"Only allowing names not matching `/^opt_/i`."}]}] + +/** + * @enum {String} + * Object holding values of some custom enum + */ +const MY_ENUM = Object.freeze({ + VAL_A: "myvala" +} as const); +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag ~ JsdocTag[tag=/private|protected/])","context":"any","message":"Access modifier tags must come first"},{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[tag=\"enum\"])","context":":declaration:not(TSEnumDeclaration):not(:has(ObjectExpression)), :function","message":"@enum is only allowed on potential enum types"}]}] + +/** + * @param {(...args: any[]) => any} fn + * @returns {(...args: any[]) => any} + */ +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[tag=\"type\"]:has([value=/FunctionComponent/]))","context":"any","message":"The `FunctionComponent` type is not allowed. Please use `FC` instead."}]}] + +/** Does something very important. */ +function foo(): string; +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[endLine=0][description!=/^\\S[\\s\\S]*\\S\\s$/]"}]}] + +/** Some text and more */ +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[descriptionStartLine=0][descriptionEndLine=1]","context":"any","message":"Requiring descriptive text on 0th line and no final newline"}]}] + +/** Some text and +* more */ +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[descriptionStartLine=0][hasPreterminalDescription=0]","context":"any","message":"Requiring descriptive text on 0th line and no preterminal description"}]}] + +/** Some text +* @param sth Param text followed by newline +*/ +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[descriptionStartLine=0][hasPreterminalTagDescription=1]","context":"any","message":"Requiring descriptive text on 0th line but no preterminal description"}]}] + +/** + * @type {123} + */ +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[tag=type][parsedType.type!=JsdocTypeStringValue][parsedType.type!=JsdocTypeNumber][parsedType.type!=JsdocTypeName])","context":"any","message":"@type should be limited to numeric or string literals and names"},{"comment":"JsdocBlock:has(JsdocTag[tag=type][parsedType.type=JsdocTypeName]:not(*[parsedType.value=/^(true|false|null|undefined|boolean|number|string)$/]))","context":"any","message":"@type names should only be recognized primitive types or literals"}]}] + +/** + * @type {boolean} + */ +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[tag=type][parsedType.type!=JsdocTypeStringValue][parsedType.type!=JsdocTypeNumber][parsedType.type!=JsdocTypeName])","context":"any","message":"@type should be limited to numeric or string literals and names"},{"comment":"JsdocBlock:has(JsdocTag[tag=type][parsedType.type=JsdocTypeName]:not(*[parsedType.value=/^(true|false|null|undefined|boolean|number|string)$/]))","context":"any","message":"@type names should only be recognized primitive types or literals"}]}] + +/** + * + */ +function test(): void { } +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(*:has(JsdocTag[tag=/returns/]))","context":"FunctionDeclaration[returnType.typeAnnotation.type!=/TSVoidKeyword|TSUndefinedKeyword/]","message":"Functions with return types must have a @returns tag"}]}] + +/** + * + */ +let test = (): undefined => { }; +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(*:has(JsdocTag[tag=/returns/]))","context":"ArrowFunctionExpression[returnType.typeAnnotation.type!=/TSVoidKeyword|TSUndefinedKeyword/]","message":"Functions with non-void return types must have a @returns tag"}]}] + +/** + * @returns A description + */ +let test: () => string; +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(*:has(JsdocTag[tag=/returns/]:has(JsdocDescriptionLine)))","context":"VariableDeclaration:has(*[typeAnnotation.typeAnnotation.type=/TSFunctionType/])","message":"FunctionType's with non-void return types must have a @returns tag"}]}] + +/** + * + */ +class Test { + abstract Test(): void; +} +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(*:has(JsdocTag[tag=/returns/]))","context":"TSEmptyBodyFunctionExpression[returnType.typeAnnotation.type!=/TSVoidKeyword|TSUndefinedKeyword/]","message":"methods with non-void return types must have a @returns tag"}]}] +```` + diff --git a/docs/rules/no-types.md b/docs/rules/no-types.md new file mode 100644 index 000000000..3d5ec2b65 --- /dev/null +++ b/docs/rules/no-types.md @@ -0,0 +1,144 @@ + + +### no-types + +This rule reports types being used on `@param` or `@returns`. + +The rule is intended to prevent the indication of types on tags where +the type information would be redundant with TypeScript. + + + +#### Options + + + +##### contexts + +Set this to an array of strings representing the AST context (or an object with +`context` and `comment` properties) where you wish the rule to be applied. +Overrides the default contexts (see below). Set to `"any"` if you want +the rule to apply to any jsdoc block throughout your files (as is necessary +for finding function blocks not attached to a function declaration or +expression, i.e., `@callback` or `@function` (or its aliases `@func` or +`@method`) (including those associated with an `@interface`). + +See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) +section of our README for more on the expected format. + +||| +|---|---| +|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| +|Tags|`param`, `returns`| +|Aliases|`arg`, `argument`, `return`| +|Recommended|false| +|Options|`contexts`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @param {number} foo + */ +function quux (foo) { + +} +// Message: Types are not permitted on @param. + +class quux { + /** + * @param {number} foo + */ + bar (foo) { + + } +} +// Message: Types are not permitted on @param. + +/** + * @param {number} foo + */ +function quux (foo) { + +} +// "jsdoc/no-types": ["error"|"warn", {"contexts":["any"]}] +// Message: Types are not permitted on @param. + +class quux { + /** + * @param {number} foo + */ + quux (foo) { + + } +} +// "jsdoc/no-types": ["error"|"warn", {"contexts":["any"]}] +// Message: Types are not permitted on @param. + +/** + * @function + * @param {number} foo + */ +// "jsdoc/no-types": ["error"|"warn", {"contexts":["any"]}] +// Message: Types are not permitted on @param. + +/** + * @callback + * @param {number} foo + */ +// "jsdoc/no-types": ["error"|"warn", {"contexts":["any"]}] +// Message: Types are not permitted on @param. + +/** + * @returns {number} + */ +function quux () { + +} +// Message: Types are not permitted on @returns. + +/** + * Beep + * Boop + * + * @returns {number} + */ +function quux () { + +} +// Message: Types are not permitted on @returns. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @param foo + */ +function quux (foo) { + +} + +/** + * @param foo + */ +// "jsdoc/no-types": ["error"|"warn", {"contexts":["any"]}] + +/** + * @function + * @param {number} foo + */ + +/** + * @callback + * @param {number} foo + */ + +/*** Oops that's too many asterisks by accident **/ +function a () {} +```` + diff --git a/docs/rules/no-undefined-types.md b/docs/rules/no-undefined-types.md new file mode 100644 index 000000000..ed4f689b7 --- /dev/null +++ b/docs/rules/no-undefined-types.md @@ -0,0 +1,713 @@ + + +### no-undefined-types + +Checks that types in jsdoc comments are defined. This can be used to check +unimported types. + +When enabling this rule, types in jsdoc comments will resolve as used +variables, i.e. will not be marked as unused by `no-unused-vars`. + +In addition to considering globals found in code (or in ESLint-indicated +`globals`) as defined, the following tags will also be checked for +name(path) definitions to also serve as a potential "type" for checking +the tag types in the table below: + +`@callback`, `@class` (or `@constructor`), `@constant` (or `@const`), +`@event`, `@external` (or `@host`), `@function` (or `@func` or `@method`), +`@interface`, `@member` (or `@var`), `@mixin`, `@name`, `@namespace`, +`@template` (for "closure" or "typescript" `settings.jsdoc.mode` only), +`@typedef`. + +The following tags will also be checked but only when the mode is `closure`: + +`@package`, `@private`, `@protected`, `@public`, `@static` + +The following types are always considered defined. + +- `null`, `undefined`, `void`, `string`, `boolean`, `object`, + `function`, `symbol` +- `number`, `bigint`, `NaN`, `Infinity` +- `any`, `*`, `never`, `unknown`, `const` +- `this`, `true`, `false` +- `Array`, `Object`, `RegExp`, `Date`, `Function` + +Note that preferred types indicated within `settings.jsdoc.preferredTypes` will +also be assumed to be defined. + +Also note that if there is an error [parsing](https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser) +types for a tag, the function will silently ignore that tag, leaving it to +the `valid-types` rule to report parsing errors. + +If you define your own tags, you can use `settings.jsdoc.structuredTags` +to indicate that a tag's `name` is "namepath-defining" (and should prevent +reporting on use of that namepath elsewhere) and/or that a tag's `type` is +`false` (and should not be checked for types). If the `type` is an array, that +array's items will be considered as defined for the purposes of that tag. + + + +#### Options + +An option object may have the following key: + +- `definedTypes` - This array can be populated to indicate other types which + are automatically considered as defined (in addition to globals, etc.). + Defaults to an empty array. + +||| +|---|---| +|Context|everywhere| +|Tags|`augments`, `class`, `constant`, `enum`, `implements`, `member`, `module`, `namespace`, `param`, `property`, `returns`, `throws`, `type`, `typedef`, `yields`| +|Aliases|`constructor`, `const`, `extends`, `var`, `arg`, `argument`, `prop`, `return`, `exception`, `yield`| +|Closure-only|`package`, `private`, `protected`, `public`, `static`| +|Recommended|true| +|Options|`definedTypes`| +|Settings|`preferredTypes`, `mode`, `structuredTags`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @param {HerType} baz - Foo. + */ +function quux(foo, bar, baz) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"HerType":1000}}} +// Message: Invalid `settings.jsdoc.preferredTypes`. Values must be falsy, a string, or an object. + +/** + * @param {HerType} baz - Foo. + */ +function quux(foo, bar, baz) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"HerType":false}}} +// Message: The type 'HerType' is undefined. + +/** + * @param {strnig} foo - Bar. + */ +function quux(foo) { + +} +// Message: The type 'strnig' is undefined. + +/** + * @param {MyType} foo - Bar. + * @param {HisType} bar - Foo. + */ +function quux(foo, bar) { + +} +// "jsdoc/no-undefined-types": ["error"|"warn", {"definedTypes":["MyType"]}] +// Message: The type 'HisType' is undefined. + +/** + * @param {MyType} foo - Bar. + * @param {HisType} bar - Foo. + * @param {HerType} baz - Foo. + */ +function quux(foo, bar, baz) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"hertype":{"replacement":"HerType"}}}} +// "jsdoc/no-undefined-types": ["error"|"warn", {"definedTypes":["MyType"]}] +// Message: The type 'HisType' is undefined. + + /** + * @param {MyType} foo - Bar. + * @param {HisType} bar - Foo. + * @param {HerType} baz - Foo. + */ +function quux(foo, bar, baz) { + +} +// Settings: {"jsdoc":{"preferredTypes":{"hertype":{"replacement":false},"histype":"HisType"}}} +// "jsdoc/no-undefined-types": ["error"|"warn", {"definedTypes":["MyType"]}] +// Message: The type 'HerType' is undefined. + +/** + * @template TEMPLATE_TYPE + * @param {WRONG_TEMPLATE_TYPE} bar + */ +function foo (bar) { +}; +// Settings: {"jsdoc":{"mode":"closure"}} +// Message: The type 'WRONG_TEMPLATE_TYPE' is undefined. + +class Foo { + /** + * @return {TEMPLATE_TYPE} + */ + bar () { + } +} +// Message: The type 'TEMPLATE_TYPE' is undefined. + +class Foo { + /** + * @return {TEMPLATE_TYPE} + */ + invalidTemplateReference () { + } +} + +/** + * @template TEMPLATE_TYPE + */ +class Bar { + /** + * @return {TEMPLATE_TYPE} + */ + validTemplateReference () { + } +} +// Settings: {"jsdoc":{"mode":"typescript"}} +// Message: The type 'TEMPLATE_TYPE' is undefined. + +/** + * @type {strnig} + */ +var quux = { + +}; +// Message: The type 'strnig' is undefined. + +/** + * @template TEMPLATE_TYPE_A, TEMPLATE_TYPE_B + */ +class Foo { + /** + * @param {TEMPLATE_TYPE_A} baz + * @return {TEMPLATE_TYPE_B} + */ + bar (baz) { + } +} +// Message: The type 'TEMPLATE_TYPE_A' is undefined. + +/** + * @param {...VAR_TYPE} varargs + */ +function quux (varargs) { +} +// Message: The type 'VAR_TYPE' is undefined. + +/** + * @this {Navigator} + */ +function quux () {} +// Settings: {"jsdoc":{"mode":"closure"}} +// Message: The type 'Navigator' is undefined. + +/** + * @export {SomeType} + */ +function quux () {} +// Settings: {"jsdoc":{"mode":"closure"}} +// Message: The type 'SomeType' is undefined. + +/** + * @aCustomTag {SomeType} + */ +function quux () {} +// Settings: {"jsdoc":{"structuredTags":{"aCustomTag":{"type":true}}}} +// Message: The type 'SomeType' is undefined. + +/** + * @aCustomTag {SomeType} + */ +function quux () {} +// Settings: {"jsdoc":{"structuredTags":{"aCustomTag":{"type":["aType","anotherType"]}}}} +// Message: The type 'SomeType' is undefined. + +/** + * @namepathDefiner SomeType + */ +/** + * @type {SomeType} + */ +// Settings: {"jsdoc":{"structuredTags":{"namepathDefiner":{"name":"namepath-referencing"}}}} +// Message: The type 'SomeType' is undefined. + +/** + * @namepathDefiner SomeType + */ +/** + * @type {SomeType} + */ +// Message: The type 'SomeType' is undefined. + +/** + * @template abc TEMPLATE_TYPE + * @param {TEMPLATE_TYPE} bar + */ +function foo (bar) { +}; +// Settings: {"jsdoc":{"mode":"closure"}} +// Message: The type 'TEMPLATE_TYPE' is undefined. + +/** + * @suppress {visibility} + */ +function foo () { +} +// Settings: {"jsdoc":{"mode":"jsdoc"}} +// Message: The type 'visibility' is undefined. + +/** +* @typedef Todo +* @property description +* @property otherStuff +*/ +/** + * @type {Omit} + */ +const a = new Todo(); +// Settings: {"jsdoc":{"mode":"jsdoc"}} +// Message: The type 'Omit' is undefined. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @param {string} foo - Bar. + */ +function quux(foo) { + +} + +/** + * @param {Promise} foo - Bar. + */ +function quux(foo) { + +} + +class MyClass {} + +/** + * @param {MyClass} foo - Bar. + */ +function quux(foo) { + console.log(foo); +} + +quux(0); + +const MyType = require('my-library').MyType; + +/** + * @param {MyType} foo - Bar. + */ + function quux(foo) { + +} + +const MyType = require('my-library').MyType; + +/** + * @param {MyType} foo - Bar. + */ + function quux(foo) { + +} + +const MyType = require('my-library').MyType; + +/** + * @param {MyType} foo - Bar. + */ + function quux(foo) { + +} + +import {MyType} from 'my-library'; + +/** + * @param {MyType} foo - Bar. + * @param {object} foo + * @param {Array} baz + */ + function quux(foo, bar, baz) { + +} + +/*globals MyType*/ + +/** + * @param {MyType} foo - Bar. + * @param {HisType} bar - Foo. + */ + function quux(foo, bar) { + +} + +/** + * @typedef {object} hello + * @property {string} a - a. + */ + +/** + * @param {hello} foo + */ +function quux(foo) { + +} + +/** + * @param {Array"},"histype":"HisType.<>"}}} +// "jsdoc/no-undefined-types": ["error"|"warn", {"definedTypes":["MyType"]}] + +/** + * @template TEMPLATE_TYPE + * @param {TEMPLATE_TYPE} bar + * @return {TEMPLATE_TYPE} + */ +function foo (bar) { +}; +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * @template TEMPLATE_TYPE + */ +class Foo { + /** + * @return {TEMPLATE_TYPE} + */ + bar () { + } +} +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * @template TEMPLATE_TYPE + */ +class Foo { + /** + * @return {TEMPLATE_TYPE} + */ + bar () {} + + /** + * @return {TEMPLATE_TYPE} + */ + baz () {} +} +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * @template TEMPLATE_TYPE_A, TEMPLATE_TYPE_B + */ +class Foo { + /** + * @param {TEMPLATE_TYPE_A} baz + * @return {TEMPLATE_TYPE_B} + */ + bar (baz) { + } +} +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * @template TEMPLATE_TYPE_A, TEMPLATE_TYPE_B - Some description + */ +class Foo { + /** + * @param {TEMPLATE_TYPE_A} baz + * @return {TEMPLATE_TYPE_B} + */ + bar (baz) { + } +} +// Settings: {"jsdoc":{"mode":"closure"}} + +/****/ + +/* */ + +/*** */ + +/** + * + */ +function quux () { + +} + +/** + * @typedef {object} BaseObject + */ +/** + * Run callback when hooked method is called. + * + * @template {BaseObject} T + * @param {T} obj - object whose method should be hooked. + * @param {string} method - method which should be hooked. + * @param {(sender: T) => void} callback - callback which should + * be called when the hooked method was invoked. + */ +function registerEvent(obj, method, callback) { + +} +// Settings: {"jsdoc":{"mode":"typescript"}} + + /** + * @param {...} varargs + */ +function quux (varargs) { +} + +/** + * @param {...number} varargs + */ +function quux (varargs) { +} + +class Navigator {} +/** + * @this {Navigator} + */ +function quux () {} +// Settings: {"jsdoc":{"mode":"closure"}} + +class SomeType {} +/** + * @export {SomeType} + */ +function quux () {} +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * @template T + * @param {T} arg + */ +function example(arg) { + + /** @param {T} */ + function inner(x) { + } +} +// Settings: {"jsdoc":{"mode":"closure"}} + +const init = () => { + /** + * Makes request + * @returns {Promise} + */ + function request() { + return Promise.resolve('success'); + } +}; + +/** Gets a Promise resolved with a given value. + * + * @template ValueType + * @param {ValueType} value Value to resolve. + * @returns {Promise} Promise resolved with value. + */ +exports.resolve1 = function resolve1(value) { + return Promise.resolve(value); +}; +// Settings: {"jsdoc":{"mode":"typescript"}} + +/** + * A function returning the same type as its argument. + * + * @template ValueType + * @typedef {ValueType} ValueFunc + */ +// Settings: {"jsdoc":{"mode":"typescript"}} + +/** + * @aCustomTag {SomeType} + */ +function quux () {} +// Settings: {"jsdoc":{"structuredTags":{"aCustomTag":{"type":false}}}} + +/** + * @aCustomTag {SomeType} + */ +function quux () {} +// Settings: {"jsdoc":{"structuredTags":{"aCustomTag":{"type":["aType","SomeType"]}}}} + +/** + * @namepathDefiner SomeType + */ +/** + * @type {SomeType} + */ +// Settings: {"jsdoc":{"structuredTags":{"namepathDefiner":{"name":"namepath-defining"}}}} + +class Test { + /** + * Method. + * + * @returns {this} Return description. + */ + method (): this { + return this; + } +} + +/** + * Bad types ignored here and handled instead by `valid-types`. + * @param {string(} foo - Bar. + */ +function quux(foo) { + +} + +/** + * @template T + * @param {T} arg + * @returns {[T]} + */ +function genericFunctionExample(arg) { + const result = /** @type {[T]} */ (new Array()); + result[0] = arg; + return result; +} +// Settings: {"jsdoc":{"mode":"closure"}} + +/** @typedef QDigestNode */ +class A { + /** + * @template {object} T + * @param {(node: QDigestNode) => T} callback + * @returns {T[]} + */ + map(callback) { + /** @type {T[]} */ + let vals; + return vals; + } +} +// Settings: {"jsdoc":{"mode":"typescript"}} + +/** + * @template T + * @param {T} arg + */ +function example(arg) { + + /** @param {T} */ + function inner(x) { + } +} +// Settings: {"jsdoc":{"mode":"typescript"}} + +/** + * @suppress {visibility} + */ +function foo () { +} +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * @template T + */ +export class Foo { + // cast to T + getType() { + const x = "hello"; + const y = /** @type {T} */ (x); + return y; + } +} +// Settings: {"jsdoc":{"mode":"typescript"}} + +/** + * @type {const} + */ +const a = 'string'; + +/** +* @typedef Todo +* @property description +* @property otherStuff +*/ +/** + * @type {Omit} + */ +const a = new Todo(); +// Settings: {"jsdoc":{"mode":"typescript"}} + +/** + * @template A, [B=SomeDefault] + */ +class Foo { + /** + * @param {A} baz + * @return {B} + */ + bar (baz) { + } +} +// Settings: {"jsdoc":{"mode":"typescript"}} +```` + diff --git a/docs/rules/require-asterisk-prefix.md b/docs/rules/require-asterisk-prefix.md new file mode 100644 index 000000000..4b5f52c7e --- /dev/null +++ b/docs/rules/require-asterisk-prefix.md @@ -0,0 +1,279 @@ + + +### require-asterisk-prefix + +Requires that each JSDoc line starts with an `*`. + + + +#### Options + +This rule allows an optional string argument. If it is `"always"` then a +problem is raised when there is no asterisk prefix on a given jsdoc line. If +it is `"never"` then a problem is raised when there is an asterisk present. +The default value is `"always"`. You may also set the default to `"any"` +and use the `tags` option to apply to specific tags only. + +After the string option, one may add an object with the following. + + + +##### tags + +If you want different values to apply to specific tags, you may use +the `tags` option object. The keys are `always`, `never`, or `any` and +the values are arrays of tag names or the special value `*description` +which applies to the main jsdoc block description. + +```js +{ + 'jsdoc/require-asterisk-prefix': ['error', 'always', { + tags: { + always: ['*description'], + any: ['example', 'license'], + never: ['copyright'] + } + }] +} +``` + +||| +|---|---| +|Context|everywhere| +|Tags|All or as limited by the `tags` option| +|Options|(a string matching `"always"|"never"` and optional object with `tags`)| + +## Failing examples + +The following patterns are considered problems: + +````js + +/** + @param {Number} foo + */ +function quux (foo) { + // with spaces +} +// Message: Expected JSDoc line to have the prefix. + + +/** + @param {Number} foo + */ +function quux (foo) { + // with spaces +} +// "jsdoc/require-asterisk-prefix": ["error"|"warn", "any",{"tags":{"always":["param"]}}] +// Message: Expected JSDoc line to have the prefix. + + +/** + * Desc + + */ +function quux (foo) { + // with spaces +} +// Message: Expected JSDoc line to have the prefix. + + +/** + * + Desc + */ +function quux (foo) { + // with spaces +} +// Message: Expected JSDoc line to have the prefix. + + +/** + * Desc + * + */ +function quux (foo) { + // with spaces +} +// "jsdoc/require-asterisk-prefix": ["error"|"warn", "never"] +// Message: Expected JSDoc line to have no prefix. + + +/** + @param {Number} foo + */ +function quux (foo) { + // with spaces +} +// "jsdoc/require-asterisk-prefix": ["error"|"warn", "always",{"tags":{"any":["someOtherTag"]}}] +// Message: Expected JSDoc line to have the prefix. + + +/** + * @param {Number} foo + */ +function quux (foo) { + // with spaces +} +// "jsdoc/require-asterisk-prefix": ["error"|"warn", "never",{"tags":{"always":["someOtherTag"]}}] +// Message: Expected JSDoc line to have no prefix. + + +/** + * @param {Number} foo + */ +function quux (foo) { + // with spaces +} +// "jsdoc/require-asterisk-prefix": ["error"|"warn", "always",{"tags":{"never":["param"]}}] +// Message: Expected JSDoc line to have no prefix. + + +/** + @param {Number} foo + */ +function quux (foo) { + // with spaces +} +// "jsdoc/require-asterisk-prefix": ["error"|"warn", "never",{"tags":{"always":["param"]}}] +// Message: Expected JSDoc line to have the prefix. + +/** + @param {Number} foo + */function quux (foo) { + // with spaces +} +// Message: Expected JSDoc line to have the prefix. + + +/** + * @param {Number} foo + */ +function quux (foo) { + // with spaces +} +// "jsdoc/require-asterisk-prefix": ["error"|"warn", "never"] +// Message: Expected JSDoc line to have no prefix. + +/** + *@param {Number} foo + */function quux (foo) { + // with spaces +} +// "jsdoc/require-asterisk-prefix": ["error"|"warn", "never"] +// Message: Expected JSDoc line to have no prefix. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * Desc + * + * @param {Number} foo + * This is more comment. + */ +function quux (foo) { + +} + +/** + * Desc + * + * @param {{ + * foo: Bar, + * bar: Baz + * }} foo + * + */ +function quux (foo) { + +} + +/* <- JSDoc must start with 2 stars. + So this is unchecked. + */ +function quux (foo) {} + +/** @param {Number} foo */ +function quux (foo) { + // with spaces +} + + +/** + @param {Number} foo + */ +function quux (foo) { + // with spaces +} +// "jsdoc/require-asterisk-prefix": ["error"|"warn", "always",{"tags":{"any":["param"]}}] + + +/** + * @param {Number} foo + */ +function quux (foo) { + // with spaces +} +// "jsdoc/require-asterisk-prefix": ["error"|"warn", "never",{"tags":{"always":["param"]}}] + + +/** + * @param {Number} foo + */ +function quux (foo) { + // with spaces +} +// "jsdoc/require-asterisk-prefix": ["error"|"warn", "always",{"tags":{"never":["someOtherTag"]}}] + + +/** + @param {Number} foo + */ +function quux (foo) { + // with spaces +} +// "jsdoc/require-asterisk-prefix": ["error"|"warn", "always",{"tags":{"never":["param"]}}] + + +/** + @param {Number} foo + */ +function quux (foo) { + // with spaces +} +// "jsdoc/require-asterisk-prefix": ["error"|"warn", "never",{"tags":{"always":["someOtherTag"]}}] + + +/** + * Desc + * + */ +function quux (foo) { + // with spaces +} +// "jsdoc/require-asterisk-prefix": ["error"|"warn", "never",{"tags":{"any":["*description"]}}] + + +/** + * Desc + + */ +function quux (foo) { + // with spaces +} +// "jsdoc/require-asterisk-prefix": ["error"|"warn", "always",{"tags":{"any":["*description"]}}] + + +/** + @param {Number} foo + */ +function quux (foo) { + // with spaces +} +// "jsdoc/require-asterisk-prefix": ["error"|"warn", "any",{"tags":{"always":["someOtherTag"]}}] +```` + diff --git a/docs/rules/require-description-complete-sentence.md b/docs/rules/require-description-complete-sentence.md new file mode 100644 index 000000000..1e9ecad1b --- /dev/null +++ b/docs/rules/require-description-complete-sentence.md @@ -0,0 +1,568 @@ + + +### require-description + +Requires that all functions have a description. + +* All functions must have an implicit description (e.g., text above tags) or + have the option `descriptionStyle` set to `tag` (requiring `@description` + (or `@desc` if that is set as your preferred tag name)). +* Every jsdoc block description (or `@description` tag if `descriptionStyle` + is `"tag"`) must have a non-empty description that explains the purpose of + the method. + + + +#### Options + +An options object may have any of the following properties: + +- `contexts` - Set to an array of strings representing the AST context + where you wish the rule to be applied (e.g., `ClassDeclaration` for ES6 + classes). Overrides the default contexts (see below). Set to `"any"` if + you want the rule to apply to any jsdoc block throughout your files. +- `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the + document block avoids the need for a `@description`. Defaults to an + array with `inheritdoc`. If you set this array, it will overwrite the + default, so be sure to add back `inheritdoc` if you wish its presence + to cause exemption of the rule. +- `descriptionStyle` - Whether to accept implicit descriptions (`"body"`) or + `@description` tags (`"tag"`) as satisfying the rule. Set to `"any"` to + accept either style. Defaults to `"body"`. +- `checkConstructors` - A value indicating whether `constructor`s should be + checked. Defaults to `true`. +- `checkGetters` - A value indicating whether getters should be checked. + Defaults to `true`. +- `checkSetters` - A value indicating whether setters should be checked. + Defaults to `true`. + +| | | +| -------- | ------------------------------------------------------------------------------------------------------------- | +| Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | +| Tags | `description` or jsdoc block | +| Aliases | `desc` | +| Recommended | false | +| Options | `contexts`, `exemptedBy`, `descriptionStyle`, `checkConstructors`, `checkGetters`, `checkSetters` | +| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * + */ +function quux () { + +} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. + +/** + * + */ +function quux () { + +} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"any"}] +// Message: Missing JSDoc block description or @description declaration. + +/** + * + */ +function quux () { + +} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"body"}] +// Message: Missing JSDoc block description. + +/** + * @desc Not a blank description + */ +function quux () { + +} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"body"}] +// Message: Remove the @desc tag to leave a plain block description or add additional description text above the @desc line. + +/** + * @description Not a blank description + */ +function quux () { + +} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"body"}] +// Message: Remove the @description tag to leave a plain block description or add additional description text above the @description line. + +/** + * + */ +class quux { + +} +// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. + +/** + * + */ +class quux { + +} +// Settings: {"jsdoc":{"contexts":["ClassDeclaration"]}} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. + +/** + * + */ +// "jsdoc/require-description": ["error"|"warn", {"contexts":["any"],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. + +/** + * + */ +class quux { + +} +// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. + +/** + * + */ +class quux { + +} +// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. + +/** + * @description + */ +function quux () { + +} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description description. + +/** + * + */ +interface quux { + +} +// "jsdoc/require-description": ["error"|"warn", {"contexts":["TSInterfaceDeclaration"],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. + +/** + * + */ +var quux = class { + +}; +// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassExpression"],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. + +/** + * + */ +var quux = { + +}; +// "jsdoc/require-description": ["error"|"warn", {"contexts":["ObjectExpression"],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. + +/** + * @someDesc + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"description":{"message":"Please avoid `{{tagName}}`; use `{{replacement}}` instead","replacement":"someDesc"}}}} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] +// Message: Missing JSDoc @someDesc description. + +/** + * @description + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] +// Message: Unexpected tag `@description` + +/** + * @description + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"any"}] +// Message: Missing JSDoc block description or @description declaration. + +/** + * + */ +function quux () { +} +// "jsdoc/require-description": ["error"|"warn", {"exemptedBy":["notPresent"]}] +// Message: Missing JSDoc block description. + +class TestClass { + /** + * + */ + constructor() { } +} +// Message: Missing JSDoc block description. + +class TestClass { + /** + * + */ + constructor() { } +} +// "jsdoc/require-description": ["error"|"warn", {"checkConstructors":true}] +// Message: Missing JSDoc block description. + +class TestClass { + /** + * + */ + get Test() { } +} +// Message: Missing JSDoc block description. + +class TestClass { + /** + * + */ + get Test() { } +} +// "jsdoc/require-description": ["error"|"warn", {"checkGetters":true}] +// Message: Missing JSDoc block description. + +class TestClass { + /** + * + */ + set Test(value) { } +} +// Message: Missing JSDoc block description. + +class TestClass { + /** + * + */ + set Test(value) { } +} +// "jsdoc/require-description": ["error"|"warn", {"checkSetters":true}] +// Message: Missing JSDoc block description. + +/** + * + */ +class Foo { + /** + * + */ + constructor() {} + + /** + * + */ + bar() {} +} +// "jsdoc/require-description": ["error"|"warn", {"checkConstructors":false,"contexts":["MethodDefinition"]}] +// Message: Missing JSDoc block description. + +/** + * @implements {Bar} + */ +class quux { + +} +// Settings: {"jsdoc":{"implementsReplacesDocs":false}} +// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"Bar\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. + +/** + * Has some + * description already. + * @implements {Bar} + */ +class quux { + +} +// Settings: {"jsdoc":{"implementsReplacesDocs":false}} +// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"Bar\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. + +/** + * @implements {Bar + * | Foo} + */ +class quux { + +} +// Settings: {"jsdoc":{"implementsReplacesDocs":false}} +// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. + +/** + * @implements {Bar} + */ +class quux { + +} +// Settings: {"jsdoc":{"implementsReplacesDocs":false}} +// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[tag=\"implements\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. + +/** + * @implements {Bar} + */ +class quux { + +} +// Settings: {"jsdoc":{"implementsReplacesDocs":false}} +// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[tag=\"implements\"])","context":"any"}],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * + */ + +/** + * @description + * // arbitrary description content + */ +function quux () { + +} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] + +/** + * @description + * quux(); // does something useful + */ +function quux () { + +} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] + +/** + * @description Valid usage + * quux(); // does something useful + * + * @description Invalid usage + * quux('random unwanted arg'); // results in an error + */ +function quux () { + +} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] + +/** + * + */ +class quux { + +} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] + +/** + * + */ +function quux () { + +} +// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"]}] + +/** + * @type {MyCallback} + */ +function quux () { + +} +// "jsdoc/require-description": ["error"|"warn", {"exemptedBy":["type"]}] + +/** + * + */ +interface quux { + +} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] + +interface quux { + /** + * If the thing should be checked. + */ + checked?: boolean +} +// "jsdoc/require-description": ["error"|"warn", {"contexts":["TSPropertySignature"]}] + +/** + * + */ +var quux = class { + +}; +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] + +/** + * + */ +var quux = { + +}; +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] + +/** + * Has an implicit description + */ +function quux () { + +} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"body"}] + +/** + * Has an implicit description + */ +function quux () { + +} + +/** + * Has an implicit description + */ +function quux () { + +} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"any"}] + +/** + * @description Has an explicit description + */ +function quux () { + +} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"any"}] + +/** + * + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} + +class TestClass { + /** + * Test. + */ + constructor() { } +} + +class TestClass { + /** + * + */ + constructor() { } +} +// "jsdoc/require-description": ["error"|"warn", {"checkConstructors":false}] + +class TestClass { + /** + * Test. + */ + get Test() { } +} + +class TestClass { + /** + * + */ + get Test() { } +} +// "jsdoc/require-description": ["error"|"warn", {"checkGetters":false}] + +class TestClass { + /** + * Test. + */ + set Test(value) { } +} + +class TestClass { + /** + * + */ + set Test(value) { } +} +// "jsdoc/require-description": ["error"|"warn", {"checkSetters":false}] + +/** + * Multi + * line + */ +function quux () { + +} + +/** Single line */ +function quux () { + +} + +/** @description something */ +function quux () { + +} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] + +/** + * @implements {Bar} + */ +class quux { + +} +// Settings: {"jsdoc":{"implementsReplacesDocs":false}} +// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=/\\s{4}/]:has(JsdocTag[rawType=\"class\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] + +/** + * Has some + * description already. + */ +class quux { + +} +// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"{Bar}\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] + +/** + * Has some + * description already. + */ +class quux { + +} +// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"{Bar}\"])","context":"any"}],"descriptionStyle":"tag"}] + +/** + * Has some + * description already. + */ +// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"{Bar}\"])","context":"any"}],"descriptionStyle":"tag"}] +```` + diff --git a/docs/rules/require-description.md b/docs/rules/require-description.md new file mode 100644 index 000000000..d9cd62261 --- /dev/null +++ b/docs/rules/require-description.md @@ -0,0 +1,799 @@ + + +### require-description-complete-sentence + +Requires that block description, explicit `@description`, and +`@param`/`@returns` tag descriptions are written in complete sentences, i.e., + +* Description must start with an uppercase alphabetical character. +* Paragraphs must start with an uppercase alphabetical character. +* Sentences must end with a period, question mark, exclamation mark, or triple backticks. +* Every line in a paragraph (except the first) which starts with an uppercase + character must be preceded by a line ending with a period. +* A colon or semi-colon followed by two line breaks is still part of the + containing paragraph (unlike normal dual line breaks). +* Text within inline tags `{...}` or within triple backticks are not checked for sentence divisions. +* Periods after items within the `abbreviations` option array are not treated + as sentence endings. + + + +#### Fixer + +If sentences do not end with terminal punctuation, a period will be added. + +If sentences do not start with an uppercase character, the initial +letter will be capitalized. + + + +#### Options + + + +##### tags + +If you want additional tags to be checked for their descriptions, you may +add them within this option. + +```js +{ + 'jsdoc/require-description-complete-sentence': ['error', { + tags: ['see', 'copyright'] + }] +} +``` + +The tags `@param`/`@arg`/`@argument` and `@property`/`@prop` will be properly +parsed to ensure that the checked "description" text includes only the text +after the name. + +All other tags will treat the text following the tag name, a space, and +an optional curly-bracketed type expression (and another space) as part of +its "description" (e.g., for `@returns {someType} some description`, the +description is `some description` while for `@some-tag xyz`, the description +is `xyz`). + + + +##### abbreviations + +You can provide an `abbreviations` options array to avoid such strings of text +being treated as sentence endings when followed by dots. The `.` is not +necessary at the end of the array items. + + + +##### newlineBeforeCapsAssumesBadSentenceEnd + +When `false` (the new default), we will not assume capital letters after +newlines are an incorrect way to end the sentence (they may be proper +nouns, for example). + +||| +|---|---| +|Context|everywhere| +|Tags|doc block, `param`, `returns`, `description`, `property`, `summary`, `file`, `classdesc`, `todo`, `deprecated`, `throws`, 'yields' and others added by `tags`| +|Aliases|`arg`, `argument`, `return`, `desc`, `prop`, `fileoverview`, `overview`, `exception`, `yield`| +|Recommended|false| +|Options|`tags`, `abbreviations`, `newlineBeforeCapsAssumesBadSentenceEnd`| +## Failing examples + +The following patterns are considered problems: + +````js +/** + * foo. + */ +function quux () { + +} +// Message: Sentences should start with an uppercase character. + +/** + * foo? + */ +function quux () { + +} +// Message: Sentences should start with an uppercase character. + +/** + * @description foo. + */ +function quux () { + +} +// Message: Sentences should start with an uppercase character. + +/** + * Foo) + */ +function quux () { + +} +// Message: Sentences must end with a period. + +/** + * `foo` is a variable + */ +function quux () { + +} +// Message: Sentences must end with a period. + +/** + * Foo. + * + * foo. + */ +function quux () { + +} +// Message: Sentences should start with an uppercase character. + +/** + * тест. + */ +function quux () { + +} +// Message: Sentences should start with an uppercase character. + +/** + * Foo + */ +function quux () { + +} +// Message: Sentences must end with a period. + +/** + * Foo + * + * @param x + */ +function quux () { + +} +// Message: Sentences must end with a period. + +/** + * Foo + * Bar. + */ +function quux () { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"newlineBeforeCapsAssumesBadSentenceEnd":true}] +// Message: A line of text is started with an uppercase character, but the preceding line does not end the sentence. + +/** + * Foo. + * + * @param foo foo. + */ +function quux (foo) { + +} +// Message: Sentences should start with an uppercase character. + +/** + * Foo. + * + * @param foo bar + */ +function quux (foo) { + +} +// Message: Sentences should start with an uppercase character. + +/** + * {@see Foo.bar} buz + */ +function quux (foo) { + +} +// Message: Sentences should start with an uppercase character. + +/** + * Foo. + * + * @returns {number} foo + */ +function quux (foo) { + +} +// Message: Sentences should start with an uppercase character. + +/** + * Foo. + * + * @returns foo. + */ +function quux (foo) { + +} +// Message: Sentences should start with an uppercase character. + +/** + * lorem ipsum dolor sit amet, consectetur adipiscing elit. pellentesque elit diam, + * iaculis eu dignissim sed, ultrices sed nisi. nulla at ligula auctor, consectetur neque sed, + * tincidunt nibh. vivamus sit amet vulputate ligula. vivamus interdum elementum nisl, + * vitae rutrum tortor semper ut. morbi porta ante vitae dictum fermentum. + * proin ut nulla at quam convallis gravida in id elit. sed dolor mauris, blandit quis ante at, + * consequat auctor magna. duis pharetra purus in porttitor mollis. + */ +function longDescription (foo) { + +} +// Message: Sentences should start with an uppercase character. + +/** + * @arg {number} foo - Foo + */ +function quux (foo) { + +} +// Message: Sentences must end with a period. + +/** + * @argument {number} foo - Foo + */ +function quux (foo) { + +} +// Message: Sentences must end with a period. + +/** + * @return {number} foo + */ +function quux (foo) { + +} +// Message: Sentences should start with an uppercase character. + +/** + * Returns bar. + * + * @return {number} bar + */ +function quux (foo) { + +} +// Message: Sentences should start with an uppercase character. + +/** + * @throws {object} Hello World + * hello world +*/ +// Message: Sentences must end with a period. + +/** + * @summary Foo + */ +function quux () { + +} +// Message: Sentences must end with a period. + +/** + * @throws {SomeType} Foo + */ +function quux () { + +} +// Message: Sentences must end with a period. + +/** + * @see Foo + */ +function quux () { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"tags":["see"]}] +// Message: Sentences must end with a period. + +/** + * @param foo Foo bar + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"tags":["param"]}] +// Message: Sentences must end with a period. + +/** + * Sorry, but this isn't a complete sentence, Mr. + */ +function quux () { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] +// Message: Sentences must end with a period. + +/** + * Sorry, but this isn't a complete sentence Mr. + */ +function quux () { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr."]}] +// Message: Sentences must end with a period. + +/** + * Sorry, but this isn't a complete sentence Mr. + */ +function quux () { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] +// Message: Sentences must end with a period. + +/** + * Sorry, but this isn't a complete sentence Mr. and Mrs. + */ +function quux () { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr","Mrs"]}] +// Message: Sentences must end with a period. + +/** + * This is a complete sentence. But this isn't, Mr. + */ +function quux () { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] +// Message: Sentences must end with a period. + +/** + * This is a complete Mr. sentence. But this isn't, Mr. + */ +function quux () { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] +// Message: Sentences must end with a period. + +/** + * This is a complete Mr. sentence. + */ +function quux () { + +} +// Message: Sentences should start with an uppercase character. + +/** + * This is fun, i.e. enjoyable, but not superlatively so, e.g. not + * super, wonderful, etc.. + */ +function quux () { + +} +// Message: Sentences should start with an uppercase character. + +/** + * Do not have dynamic content; e.g. homepage. Here a simple unique id + * suffices. + */ + function quux () { + + } +// Message: Sentences should start with an uppercase character. + +/** + * Implements support for the + * Swahili voice synthesizer. + */ +function speak() { +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"newlineBeforeCapsAssumesBadSentenceEnd":true}] +// Message: A line of text is started with an uppercase character, but the preceding line does not end the sentence. + +/** + * Foo. + * + * @template TempA, TempB foo. + */ +function quux (foo) { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"tags":["template"]}] +// Message: Sentences should start with an uppercase character. + +/** + * Just a component. + * @param {Object} props Свойства. + * @return {ReactElement}. + */ +function quux () {} +// Message: Sentences must be more than punctuation. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @param foo - Foo. + */ +function quux () { + +} + +/** + * Foo. + */ +function quux () { + +} + +/** + * Foo. + * Bar. + */ +function quux () { + +} + +/** + * Foo. + * + * Bar. + */ +function quux () { + +} + +/** + * Тест. + */ +function quux () { + +} + +/** + * Foo + * bar. + */ +function quux () { + +} + +/** + * @returns Foo bar. + */ +function quux () { + +} + +/** + * Foo {@see Math.sin}. + */ +function quux () { + +} + +/** + * Foo {@see Math.sin} bar. + */ +function quux () { + +} + +/** + * Foo? + * + * Bar! + * + * Baz: + * 1. Foo. + * 2. Bar. + */ +function quux () { + +} + +/** + * Hello: + * World. + */ +function quux () { + +} + +/** + * Hello: world. + */ +function quux () { + +} + +/** + * + */ +function quux () { + +} + +/** + * @description Foo. + */ +function quux () { + +} + +/** + * `foo` is a variable. + */ +function quux () { + +} + +/** + * Foo. + * + * `foo`. + */ +function quux () { + +} + +/** + * @param foo - `bar`. + */ +function quux () { + +} + +/** + * @returns {number} `foo`. + */ +function quux () { + +} + +/** + * Foo + * `bar`. + */ +function quux () { + +} + +/** + * @example Foo + */ +function quux () { + +} + +/** + * @see Foo + */ +function quux () { + +} + +/** + * Foo. + * + * @param foo Foo. + */ +function quux (foo) { + +} + +/** + * Foo. + * + * @param foo Foo. + */ +function quux (foo) { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"tags":["param"]}] + +/** + * @param foo Foo bar. + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"tags":["param"]}] + +/** + * + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} + +/** +* We stop loading Items when we have loaded: +* +* 1) The main Item; +* 2) All its variants. +*/ + +/** + * This method is working on 2 steps. + * + * | Step | Comment | + * |------|-------------| + * | 1 | do it | + * | 2 | do it again | + */ + +/** + * This is something that + * I want to test. + */ +function quux () { + +} + +/** + * When making HTTP requests, the + * URL is super important. + */ +function quux () { + +} + +/** + * Sorry, but this isn't a complete sentence, Mr. + */ +function quux () { + +} + +/** + * Sorry, but this isn't a complete sentence Mr.. + */ +function quux () { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr."]}] + +/** + * Sorry, but this isn't a complete sentence Mr. + */ +function quux () { + +} + +/** + * Sorry, but this isn't a complete sentence Mr. and Mrs.. + */ +function quux () { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr","Mrs"]}] + +/** + * This is a complete sentence aMr. + */ +function quux () { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] + +/** + * This is a complete sentence. But this isn't, Mr. + */ +function quux () { + +} + +/** + * This is a complete Mr. Sentence. But this isn't, Mr. + */ +function quux () { + +} + +/** + * This is a complete Mr. sentence. + */ +function quux () { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] + +/** + * This is fun, i.e. enjoyable, but not superlatively so, e.g. not + * super, wonderful, etc.. + */ +function quux () { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["etc","e.g.","i.e."]}] + + +** +* Do not have dynamic content; e.g. homepage. Here a simple unique id +* suffices. +*/ +function quux () { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["etc","e.g.","i.e."]}] + +/** + * Implements support for the + * Swahili voice synthesizer. + */ +function speak() { +} + +/** + * @param foo + * + * @returns {void} + */ +export default (foo) => { + foo() +} + +/** @file To learn more, + * see: https://github.com/d3/d3-ease. */ + +/** To learn more, + * see: https://github.com/d3/d3-ease. */ + +/** + * This is a complete sentence... + */ +function quux () { + +} + +/** + * He wanted a few items: a jacket and shirt... + */ +function quux () { + +} + +/** + * The code in question was... + * ``` + * alert('hello'); + * ``` + */ +function quux () { + +} + +/** + * @param {number|string|Date|Object|OverType|WhateverElse} multiType - + * Nice long explanation... + */ +function test (multiType) { +} + +/** + * Any kind of fowl (e.g., a duck). + */ +function quux () {} + +/** + * The code in question was... + * ``` + * do something + * + * interesting + * ``` + */ +function quux () { + +} +```` + diff --git a/docs/rules/require-example.md b/docs/rules/require-example.md new file mode 100644 index 000000000..e0fbdccf6 --- /dev/null +++ b/docs/rules/require-example.md @@ -0,0 +1,368 @@ + + +### require-example + +Requires that all functions have examples. + +* All functions must have one or more `@example` tags. +* Every example tag must have a non-empty description that explains the + method's usage. + + + +#### Options + +This rule has an object option. + + + +##### exemptedBy + +Array of tags (e.g., `['type']`) whose presence on the document +block avoids the need for an `@example`. Defaults to an array with +`inheritdoc`. If you set this array, it will overwrite the default, +so be sure to add back `inheritdoc` if you wish its presence to cause +exemption of the rule. + + + +##### exemptNoArguments + +Boolean to indicate that no-argument functions should not be reported for +missing `@example` declarations. + + + +##### contexts + +Set this to an array of strings representing the AST context (or an object with +`context` and `comment` properties) where you wish the rule to be applied. +(e.g., `ClassDeclaration` for ES6 +classes). Overrides the default contexts (see below). Set to `"any"` if you +want the rule to apply to any jsdoc block throughout your files. + +See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) +section of our README for more on the expected format. + + + +##### checkConstructors + +A value indicating whether `constructor`s should be checked. +Defaults to `true`. + + + +##### checkGetters + +A value indicating whether getters should be checked. Defaults to `false`. + + + +##### checkSetters + +A value indicating whether setters should be checked. Defaults to `false`. + + + +##### enableFixer + +A boolean on whether to enable the fixer (which adds an empty `@example` block). +Defaults to `true`. + + + +#### Fixer + +The fixer for `require-example` will add an empty `@example`, but it will still +report a missing example description after this is added. + +||| +|---|---| +|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| +|Tags|`example`| +|Recommended|false| +|Options|`exemptedBy`, `exemptNoArguments`, `contexts`, `checkConstructors`, `checkGetters`, `checkSetters`, `enableFixer`| +|Settings|`ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * + */ +function quux () { + +} +// Message: Missing JSDoc @example declaration. + +/** + * + */ +function quux (someParam) { + +} +// "jsdoc/require-example": ["error"|"warn", {"exemptNoArguments":true}] +// Message: Missing JSDoc @example declaration. + +/** + * + */ +function quux () { + +} +// Message: Missing JSDoc @example declaration. + +/** + * @example + */ +function quux () { + +} +// Message: Missing JSDoc @example description. + +/** + * @constructor + */ +function quux () { + +} +// Message: Missing JSDoc @example declaration. + +/** + * @constructor + * @example + */ +function quux () { + +} +// Message: Missing JSDoc @example description. + +/** + * + */ +class quux { + +} +// "jsdoc/require-example": ["error"|"warn", {"contexts":["ClassDeclaration"]}] +// Message: Missing JSDoc @example declaration. + +/** + * + */ +// "jsdoc/require-example": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @example declaration. + +/** + * + */ +function quux () { +} +// "jsdoc/require-example": ["error"|"warn", {"exemptedBy":["notPresent"]}] +// Message: Missing JSDoc @example declaration. + +class TestClass { + /** + * + */ + get Test() { } +} +// "jsdoc/require-example": ["error"|"warn", {"checkGetters":true}] +// Message: Missing JSDoc @example declaration. + +class TestClass { + /** + * @example + */ + get Test() { } +} +// "jsdoc/require-example": ["error"|"warn", {"checkGetters":true}] +// Message: Missing JSDoc @example description. + +class TestClass { + /** + * + */ + set Test(value) { } +} +// "jsdoc/require-example": ["error"|"warn", {"checkSetters":true}] +// Message: Missing JSDoc @example declaration. + +class TestClass { + /** + * @example + */ + set Test(value) { } +} +// "jsdoc/require-example": ["error"|"warn", {"checkSetters":true}] +// Message: Missing JSDoc @example description. + +/** + * + */ +function quux (someParam) { + +} +// "jsdoc/require-example": ["error"|"warn", {"enableFixer":true}] +// Message: Missing JSDoc @example declaration. + +/** + * + */ +function quux (someParam) { + +} +// "jsdoc/require-example": ["error"|"warn", {"enableFixer":false}] +// Message: Missing JSDoc @example declaration. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * + */ + +/** + * @example + * // arbitrary example content + */ +function quux () { + +} + +/** + * @example + * quux(); // does something useful + */ +function quux () { + +} + +/** + * @example Valid usage + * quux(); // does something useful + * + * @example Invalid usage + * quux('random unwanted arg'); // results in an error + */ +function quux () { + +} + +/** + * @constructor + */ +function quux () { + +} +// "jsdoc/require-example": ["error"|"warn", {"checkConstructors":false}] + +/** + * @constructor + * @example + */ +function quux () { + +} +// "jsdoc/require-example": ["error"|"warn", {"checkConstructors":false}] + +class Foo { + /** + * + */ + constructor () { + + } +} +// "jsdoc/require-example": ["error"|"warn", {"checkConstructors":false}] + +/** + * @inheritdoc + */ +function quux () { + +} + +/** + * @type {MyCallback} + */ +function quux () { + +} +// "jsdoc/require-example": ["error"|"warn", {"exemptedBy":["type"]}] + +/** + * @example Some example code + */ +class quux { + +} +// "jsdoc/require-example": ["error"|"warn", {"contexts":["ClassDeclaration"]}] + +/** + * + */ +function quux () { + +} +// "jsdoc/require-example": ["error"|"warn", {"contexts":["ClassDeclaration"]}] + +class TestClass { + /** + * + */ + get Test() { } +} + +class TestClass { + /** + * @example + */ + get Test() { } +} + +class TestClass { + /** + * @example Test + */ + get Test() { } +} +// "jsdoc/require-example": ["error"|"warn", {"checkGetters":true}] + +class TestClass { + /** + * + */ + set Test(value) { } +} + +class TestClass { + /** + * @example + */ + set Test(value) { } +} +// "jsdoc/require-example": ["error"|"warn", {"checkSetters":false}] + +class TestClass { + /** + * @example Test + */ + set Test(value) { } +} +// "jsdoc/require-example": ["error"|"warn", {"checkSetters":true}] + +/** + * + */ +function quux () { + +} +// "jsdoc/require-example": ["error"|"warn", {"exemptNoArguments":true}] +```` + diff --git a/docs/rules/require-file-overview.md b/docs/rules/require-file-overview.md new file mode 100644 index 000000000..88fc77502 --- /dev/null +++ b/docs/rules/require-file-overview.md @@ -0,0 +1,300 @@ + + +### require-file-overview + +Checks that: + +1. All files have a `@file`, `@fileoverview`, or `@overview` tag. +2. Duplicate file overview tags within a given file will be reported +3. File overview tags will be reported which are not, as per + [the docs](https://jsdoc.app/tags-file.html), "at the beginning of + the file"–where beginning of the file is interpreted in this rule + as being when the overview tag is not preceded by anything other than + a comment. + + + +#### Options + + + +##### tags + +The keys of this object are tag names, and the values are configuration +objects indicating what will be checked for these whole-file tags. + +Each configuration object has the following boolean keys (which default +to `false` when this option is supplied): `mustExist`, `preventDuplicates`, +`initialCommentsOnly`. These correspond to the three items above. + +When no `tags` is present, the default is: + +```json +{ + "file": { + "initialCommentsOnly": true, + "mustExist": true, + "preventDuplicates": true, + } +} +``` + +You can add additional tag names and/or override `file` if you supply this +option, e.g., in place of or in addition to `file`, giving other potential +file global tags like `@license`, `@copyright`, `@author`, `@module` or +`@exports`, optionally restricting them to a single use or preventing them +from being preceded by anything besides comments. + +For example: + +```js +{ + "license": { + "mustExist": true, + "preventDuplicates": true, + } +} +``` + +This would require one and only one `@license` in the file, though because +`initialCommentsOnly` is absent and defaults to `false`, the `@license` +can be anywhere. + +In the case of `@license`, you can use this rule along with the +`check-values` rule (with its `allowedLicenses` or `licensePattern` options), +to enforce a license whitelist be present on every JS file. + +Note that if you choose to use `preventDuplicates` with `license`, you still +have a way to allow multiple licenses for the whole page by using the SPDX +"AND" expression, e.g., `@license (MIT AND GPL-3.0)`. + +Note that the tag names are the main jsdoc tag name, so you should use `file` +in this configuration object regardless of whether you have configured +`fileoverview` instead of `file` on `tagNamePreference` (i.e., `fileoverview` +will be checked, but you must use `file` on the configuration object). + +||| +|---|---| +|Context|Everywhere| +|Tags|`file`; others when `tags` set| +|Aliases|`fileoverview`, `overview`| +|Recommended|false| +|Options|`tags`| + +## Failing examples + +The following patterns are considered problems: + +````js + +// Message: Missing @file + + +// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"file":{"initialCommentsOnly":true,"mustExist":true,"preventDuplicates":true}}}] +// Message: Missing @file + + +// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"file":{"mustExist":true}}}] +// Message: Missing @file + + +// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"author":{"initialCommentsOnly":false,"mustExist":true,"preventDuplicates":false}}}] +// Message: Missing @author + +/** + * + */ +// Message: Missing @file + +/** + * + */ +function quux () {} +// Message: Missing @file + +/** + * + */ +function quux () {} +// Settings: {"jsdoc":{"tagNamePreference":{"file":"fileoverview"}}} +// Message: Missing @fileoverview + +/** + * + */ +function quux () {} +// Settings: {"jsdoc":{"tagNamePreference":{"file":"overview"}}} +// Message: Missing @overview + +/** + * + */ +function quux () {} +// Settings: {"jsdoc":{"tagNamePreference":{"file":false}}} +// Message: `settings.jsdoc.tagNamePreference` cannot block @file for the `require-file-overview` rule + +/** + * + */ +function quux () {} +// Settings: {"jsdoc":{"tagNamePreference":{"file":false}}} +// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"file":{"initialCommentsOnly":false,"mustExist":true,"preventDuplicates":false}}}] +// Message: `settings.jsdoc.tagNamePreference` cannot block @file for the `require-file-overview` rule + +/** + * + */ +function quux () {} +// Settings: {"jsdoc":{"tagNamePreference":{"file":{"message":"Don't use file"}}}} +// Message: `settings.jsdoc.tagNamePreference` cannot block @file for the `require-file-overview` rule + +/** + * @param a + */ +function quux (a) {} +// Message: Missing @file + +/** + * @param a + */ +function quux (a) {} + +/** + * @param b + */ +function bar (b) {} +// Message: Missing @file + +/** + * @file + */ + + /** + * @file + */ +// Message: Duplicate @file + +/** + * @copyright + */ + + /** + * @copyright + */ +// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"copyright":{"initialCommentsOnly":false,"mustExist":false,"preventDuplicates":true}}}] +// Message: Duplicate @copyright + +function quux () { +} +/** + * @file + */ +// Message: @file should be at the beginning of the file + +function quux () { +} +/** + * @license + */ +// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"license":{"initialCommentsOnly":true,"mustExist":false,"preventDuplicates":false}}}] +// Message: @license should be at the beginning of the file + +function quux () { +} +/** + * @license + */ +// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"license":{"initialCommentsOnly":true}}}] +// Message: @license should be at the beginning of the file + +/** + * @file + */ + +/** + * @file + */ +// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"file":{"initialCommentsOnly":true,"preventDuplicates":true}}}] +// Message: Duplicate @file +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @file + */ + +/** + * @file + */ + +/** + * @file + */ +// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"license":{"initialCommentsOnly":true,"preventDuplicates":true}}}] + +// Ok preceded by comment +/** + * @file + */ + +/** + * @fileoverview + */ +// Settings: {"jsdoc":{"tagNamePreference":{"file":"fileoverview"}}} + +/** + * @overview + */ +// Settings: {"jsdoc":{"tagNamePreference":{"file":"overview"}}} + +/** + * @file Description of file + */ + +/** + * @file Description of file + */ +function quux () { +} + +/** + * + */ + +function quux () { +} +/** + * + */ +// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"license":{"initialCommentsOnly":true,"mustExist":false,"preventDuplicates":false}}}] + +function quux () { +} +/** + * + */ +// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"license":{"initialCommentsOnly":false,"mustExist":false,"preventDuplicates":false}}}] + +function quux () { +} +/** + * + */ +// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"license":{"initialCommentsOnly":false,"mustExist":false,"preventDuplicates":true}}}] + +/** + * @license MIT + */ + + var a + + /** + * @type {Array} + */ +// "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"license":{"initialCommentsOnly":true,"mustExist":false,"preventDuplicates":false}}}] +```` + diff --git a/docs/rules/require-hyphen-before-param-description.md b/docs/rules/require-hyphen-before-param-description.md new file mode 100644 index 000000000..d1ea07583 --- /dev/null +++ b/docs/rules/require-hyphen-before-param-description.md @@ -0,0 +1,235 @@ + + +### require-hyphen-before-param-description + +Requires (or disallows) a hyphen before the `@param` description. + + + +#### Options + +This rule takes one optional string argument and an optional options object. + +If the string is `"always"` then a problem is raised when there is no hyphen +before the description. If it is `"never"` then a problem is raised when there +is a hyphen before the description. The default value is `"always"`. + +The options object may have the following properties to indicate behavior for +other tags besides the `@param` tag (or the `@arg` tag if so set): + +- `tags` - Object whose keys indicate different tags to check for the + presence or absence of hyphens; the key value should be "always" or "never", + indicating how hyphens are to be applied, e.g., `{property: 'never'}` + to ensure `@property` never uses hyphens. A key can also be set as `*`, e.g., + `'*': 'always'` to apply hyphen checking to any tag (besides the preferred + `@param` tag which follows the main string option setting and besides any + other `tags` entries). + +||| +|---|---| +|Context|everywhere| +|Tags|`param` and optionally other tags within `tags`| +|Aliases|`arg`, `argument`; potentially `prop` or other aliases| +|Recommended|false| +|Options|a string matching `"always" or "never"` followed by an optional object with a `tags` property| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @param foo Foo. + */ +function quux () { + +} +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always"] +// Message: There must be a hyphen before @param description. + +/** + * @param foo Foo. + */ +function quux () { + +} +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"*":"never"}}] +// Message: There must be a hyphen before @param description. + +/** + * @param foo Foo. + * @returns {SomeType} - Hyphen here. + */ +function quux () { + +} +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"*":"never","returns":"always"}}] +// Message: There must be a hyphen before @param description. + +/** + * @param foo Foo. + */ +function quux () { + +} +// Message: There must be a hyphen before @param description. + +/** + * @param foo - Foo. + */ +function quux () { + +} +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "never"] +// Message: There must be no hyphen before @param description. + +/** + * @param foo - Foo. + */ +function quux () { + +} +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "never"] +// Message: There must be no hyphen before @param description. + +/** + * @param foo - foo + * @param foo foo + */ +function quux () { + +} +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always"] +// Message: There must be a hyphen before @param description. + +/** + * @param foo foo + * bar + * @param bar - bar + */ +function quux () { + +} +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always"] +// Message: There must be a hyphen before @param description. + +/** + * @param foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}} +// Message: Unexpected tag `@param` + +/** + * @typedef {SomeType} ATypeDefName + * @property foo Foo. + */ +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"property":"always"}}] +// Message: There must be a hyphen before @property description. + +/** + * @template TempA, TempB A desc. + */ +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"template":"always"}}] +// Message: There must be a hyphen before @template description. + +/** + * @typedef {SomeType} ATypeDefName + * @property foo - Foo. + */ +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "never",{"tags":{"property":"never"}}] +// Message: There must be no hyphen before @property description. + +/** + * @param foo Foo. + * @returns {SomeType} - A description. + */ +function quux () { + +} +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"returns":"never"}}] +// Message: There must be a hyphen before @param description. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @param foo - Foo. + */ +function quux () { + +} +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always"] + +/** + * @param foo - Foo. + */ +function quux () { + +} +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always"] + +/** + * @param foo - Foo. + * @returns {SomeType} A description. + */ +function quux () { + +} +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"returns":"never"}}] + +/** + * @param foo Foo. + */ +function quux () { + +} +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "never"] + +/** + * @param foo + */ +function quux () { + +} + +/** + * + */ +function quux () { + +} +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"*":"always"}}] + +/** + * @typedef {SomeType} ATypeDefName + * @property foo - Foo. + */ +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"property":"always"}}] + +/** + * @typedef {SomeType} ATypeDefName + * @property foo Foo. + */ +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "never",{"tags":{"property":"never"}}] + +/** + * @typedef {SomeType} ATypeDefName + * @property foo - Foo. + */ +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "never",{"tags":{"*":"always"}}] + +/** Entry point for module. + * + * @param {!Array} argv Command-line arguments. + */ +function main(argv) { +}; +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "never"] +```` + diff --git a/docs/rules/require-jsdoc.md b/docs/rules/require-jsdoc.md new file mode 100644 index 000000000..703a964ec --- /dev/null +++ b/docs/rules/require-jsdoc.md @@ -0,0 +1,1802 @@ + + +### require-jsdoc + +Checks for presence of jsdoc comments, on class declarations as well as +functions. + + + +#### Options + +Accepts one optional options object with the following optional keys. + + + +##### publicOnly + +This option will insist that missing jsdoc blocks are only reported for +function bodies / class declarations that are exported from the module. +May be a boolean or object. If set to `true`, the defaults below will be +used. If unset, jsdoc block reporting will not be limited to exports. + +This object supports the following optional boolean keys (`false` unless +otherwise noted): + +- `ancestorsOnly` - Only check node ancestors to check if node is exported +- `esm` - ESM exports are checked for JSDoc comments (Defaults to `true`) +- `cjs` - CommonJS exports are checked for JSDoc comments (Defaults to `true`) +- `window` - Window global exports are checked for JSDoc comments + + + +##### require + +An object with the following optional boolean keys which all default to +`false` except as noted, indicating the contexts where the rule will apply: + +- `ArrowFunctionExpression` +- `ClassDeclaration` +- `ClassExpression` +- `FunctionDeclaration` (defaults to `true`) +- `FunctionExpression` +- `MethodDefinition` + + + +##### contexts + +Set this to an array of strings or objects representing the additional AST +contexts where you wish the rule to be applied (e.g., `Property` for +properties). If specified as an object, it should have a `context` property +and can have an `inlineCommentBlock` property which, if set to `true`, will +add an inline `/** */` instead of the regular, multi-line, indented jsdoc +block which will otherwise be added. Defaults to an empty array. Contexts +may also have their own `minLineCount` property. + +Note that you may need to disable `require` items (e.g., `MethodDefinition`) +if you are specifying a more precise form in `contexts` (e.g., `MethodDefinition:not([accessibility="private"] > FunctionExpression`). + +See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) +section of our README for more on the expected format. + + + +##### exemptEmptyConstructors + +Default: true + +When `true`, the rule will not report missing jsdoc blocks above constructors +with no parameters or return values (this is enabled by default as the class +name or description should be seen as sufficient to convey intent). + + + +##### exemptEmptyFunctions + +Default: false. + +When `true`, the rule will not report missing jsdoc blocks above +functions/methods with no parameters or return values (intended where +function/method names are sufficient for themselves as documentation). + + + +##### checkConstructors + +A value indicating whether `constructor`s should be checked. Defaults to +`true`. When `true`, `exemptEmptyConstructors` may still avoid reporting when +no parameters or return values are found. + + + +##### checkGetters + +A value indicating whether getters should be checked. Besides setting as a +boolean, this option can be set to the string `"no-setter"` to indicate that +getters should be checked but only when there is no setter. This may be useful +if one only wishes documentation on one of the two accessors. Defaults to +`false`. + + + +##### checkSetters + +A value indicating whether setters should be checked. Besides setting as a +boolean, this option can be set to the string `"no-getter"` to indicate that +setters should be checked but only when there is no getter. This may be useful +if one only wishes documentation on one of the two accessors. Defaults to +`false`. + + + +##### enableFixer + +A boolean on whether to enable the fixer (which adds an empty jsdoc block). +Defaults to `true`. + + + +##### minLineCount + +An integer to indicate a minimum number of lines expected for a node in order +for it to require documentation. Defaults to `undefined`. This option will +apply to any context; see `contexts` for line counts per context. + +||| +|---|---| +|Context|`ArrowFunctionExpression`, `ClassDeclaration`, `ClassExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| +|Tags|N/A| +|Recommended|true| +|Options|`publicOnly`, `require`, `contexts`, `exemptEmptyConstructors`, `exemptEmptyFunctions`, `enableFixer`, `minLineCount`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** This is comment */ +export interface Foo { + /** This is comment x2 */ + tom: string; + catchJerry(): boolean; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"],"publicOnly":{"ancestorsOnly":true},"require":{"ClassDeclaration":true,"ClassExpression":true,"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +/** This is comment */ +export interface Foo { + /** This is comment x2 */ + tom: string; + jerry: number; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"],"publicOnly":{"ancestorsOnly":true},"require":{"ClassDeclaration":true,"ClassExpression":true,"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +/** This is comment */ +export interface Foo { + bar(): string; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"],"publicOnly":{"ancestorsOnly":true}}] +// Message: Missing JSDoc comment. + +/** This is comment */ +export interface Foo { + bar: string; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"],"publicOnly":{"ancestorsOnly":true,"esm":true}}] +// Message: Missing JSDoc comment. + +/** + * Foo interface documentation. + */ +export interface Foo extends Bar { + /** + * baz method documentation. + */ + baz(): void; + + meow(): void; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSMethodSignature"],"publicOnly":{"ancestorsOnly":true}}] +// Message: Missing JSDoc comment. + +function quux (foo) { + +} +// Message: Missing JSDoc comment. + +/** + * @func myFunction + */ +function myFunction() { + +} +// Settings: {"jsdoc":{"maxLines":3,"minLines":2}} +// Message: Missing JSDoc comment. + +/** + * @func myFunction + */ + + +function myFunction() { + +} +// Settings: {"jsdoc":{"maxLines":2}} +// Message: Missing JSDoc comment. + +/** @func myFunction */ function myFunction() { + +} +// Settings: {"jsdoc":{"minLines":1}} +// Message: Missing JSDoc comment. + +function myFunction() { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"enableFixer":false}] +// Message: Missing JSDoc comment. + +export var test = function () { + +}; +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +function test () { + +} +export var test2 = test; +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionDeclaration":true}}] +// Message: Missing JSDoc comment. + +export const test = () => { + +}; +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ArrowFunctionExpression":true}}] +// Message: Missing JSDoc comment. + +export const test = () => { + +}; +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["ArrowFunctionExpression"],"publicOnly":true}] +// Message: Missing JSDoc comment. + +export const test = () => { + +}; +// Settings: {"jsdoc":{"contexts":["ArrowFunctionExpression"]}} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true}] +// Message: Missing JSDoc comment. + +export const test = () => { + +}; +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[{"context":"ArrowFunctionExpression"}],"publicOnly":true}] +// Message: Missing JSDoc comment. + +export let test = class { + +}; +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ClassExpression":true}}] +// Message: Missing JSDoc comment. + +export default function () {} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"FunctionDeclaration":true}}] +// Message: Missing JSDoc comment. + +export default () => {} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"ArrowFunctionExpression":true}}] +// Message: Missing JSDoc comment. + +export default (function () {}) +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +export default class {} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"ClassDeclaration":true}}] +// Message: Missing JSDoc comment. + +function quux (foo) { + +} +// Message: Missing JSDoc comment. + +function quux (foo) { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyFunctions":true}] +// Message: Missing JSDoc comment. + +function quux (foo) { + +} +// Settings: {"jsdoc":{"minLines":2}} +// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyFunctions":true}] +// Message: Missing JSDoc comment. + +function myFunction() {} +// Message: Missing JSDoc comment. + +/** + * Description for A. + */ +class A { + constructor(xs) { + this.a = xs; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +class A { + /** + * Description for constructor. + * @param {object[]} xs - xs + */ + constructor(xs) { + this.a = xs; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +class A extends B { + /** + * Description for constructor. + * @param {object[]} xs - xs + */ + constructor(xs) { + this.a = xs; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +export class A extends B { + /** + * Description for constructor. + * @param {object[]} xs - xs + */ + constructor(xs) { + this.a = xs; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +export default class A extends B { + /** + * Description for constructor. + * @param {object[]} xs - xs + */ + constructor(xs) { + this.a = xs; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +var myFunction = () => {} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":true}}] +// Message: Missing JSDoc comment. + +var myFunction = () => () => {} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":true}}] +// Message: Missing JSDoc comment. + +var foo = function() {} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +const foo = {bar() {}} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +var foo = {bar: function() {}} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +function foo (abc) {} +// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyFunctions":false}] +// Message: Missing JSDoc comment. + +function foo () { + return true; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyFunctions":false}] +// Message: Missing JSDoc comment. + +module.exports = function quux () { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +module.exports = function quux () { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +module.exports = { + method: function() { + + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +module.exports = { + test: { + test2: function() { + + } + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +module.exports = { + test: { + test2: function() { + + } + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +const test = module.exports = function () { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +/** +* +*/ +const test = module.exports = function () { + +} + +test.prototype.method = function() {} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +const test = function () { + +} +module.exports = { + test: test +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +const test = () => { + +} +module.exports = { + test: test +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ArrowFunctionExpression":true}}] +// Message: Missing JSDoc comment. + +class Test { + method() { + + } +} +module.exports = Test; +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +export default function quux () { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +export default function quux () { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +function quux () { + +} +export default quux; +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +export function test() { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +export function test() { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +var test = function () { + +} +var test2 = 2; +export { test, test2 } +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +var test = function () { + +} +export { test as test2 } +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +export default class A { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ClassDeclaration":true}}] +// Message: Missing JSDoc comment. + +export default class A { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"require":{"ClassDeclaration":true}}] +// Message: Missing JSDoc comment. + +var test = function () { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"window":true},"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +window.test = function () { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"window":true},"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +function test () { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"window":true}}] +// Message: Missing JSDoc comment. + +module.exports = function() { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":true,"esm":false,"window":false},"require":{"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +export function someMethod() { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"FunctionDeclaration":true}}] +// Message: Missing JSDoc comment. + +export function someMethod() { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"FunctionDeclaration":true}}] +// Message: Missing JSDoc comment. + +const myObject = { + myProp: true +}; +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["Property"]}] +// Message: Missing JSDoc comment. + +/** + * Foo interface documentation. + */ +export interface Foo extends Bar { + /** + * baz method documentation. + */ + baz(): void; + + meow(): void; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSMethodSignature"]}] +// Message: Missing JSDoc comment. + +class MyClass { + someProperty: boolean; // Flow type annotation. +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyFunctions":true,"require":{"ClassDeclaration":true}}] +// Message: Missing JSDoc comment. + +export default class Test { + constructor(a) { + this.a = a; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ArrowFunctionExpression":false,"ClassDeclaration":false,"ClassExpression":false,"FunctionDeclaration":false,"FunctionExpression":false,"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +export default class Test { + constructor(a) { + this.a = a; + } + private abc(a) { + this.a = a; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["MethodDefinition:not([accessibility=\"private\"]) > FunctionExpression"],"publicOnly":true,"require":{"ArrowFunctionExpression":false,"ClassDeclaration":false,"ClassExpression":false,"FunctionDeclaration":false,"FunctionExpression":false,"MethodDefinition":false}}] +// Message: Missing JSDoc comment. + +e = function () { +}; +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"FunctionDeclaration":false,"FunctionExpression":true}}] +// Message: Missing JSDoc comment. + +/** + * + */ +export class Class { + test = 1; + + foo() { + this.test = 2; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"FunctionDeclaration":false,"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +class Dog { + eat() { + + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"FunctionDeclaration":false,"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +const hello = name => { + document.body.textContent = "Hello, " + name + "!"; +}; +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":true,"FunctionDeclaration":false}}] +// Message: Missing JSDoc comment. + +export const loginSuccessAction = (): BaseActionPayload => ({ type: LOGIN_SUCCESSFUL }); +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":true,"FunctionDeclaration":false}}] +// Message: Missing JSDoc comment. + +export type Container = { + constants?: ObjByString; + enums?: { [key in string]: TypescriptEnum }; + helpers?: { [key in string]: AnyFunction }; +}; +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSTypeAliasDeclaration",{"context":"TSPropertySignature","inlineCommentBlock":true}]}] +// Message: Missing JSDoc comment. + +class Foo { + constructor() {} + + bar() {} +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["MethodDefinition[key.name!=\"constructor\"]"],"require":{"ClassDeclaration":true}}] +// Message: Missing JSDoc comment. + +class Example extends React.PureComponent { + componentDidMount() {} + + render() {} + + someOtherMethod () {} +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["MethodDefinition:not([key.name=\"componentDidMount\"]):not([key.name=\"render\"])"],"require":{"ClassDeclaration":true}}] +// Message: Missing JSDoc comment. + +function foo(arg: boolean): boolean { + return arg; +} + +function bar(arg: true): true; +function bar(arg: false): false; +function bar(arg: boolean): boolean { + return arg; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSDeclareFunction:not(TSDeclareFunction + TSDeclareFunction)","FunctionDeclaration:not(TSDeclareFunction + FunctionDeclaration)"],"require":{"FunctionDeclaration":false}}] +// Message: Missing JSDoc comment. + +export function foo(arg: boolean): boolean { + return arg; +} + +export function bar(arg: true): true; +export function bar(arg: false): false; +export function bar(arg: boolean): boolean { + return arg; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["ExportNamedDeclaration[declaration.type=\"TSDeclareFunction\"]:not(ExportNamedDeclaration[declaration.type=\"TSDeclareFunction\"] + ExportNamedDeclaration[declaration.type=\"TSDeclareFunction\"])","ExportNamedDeclaration[declaration.type=\"FunctionDeclaration\"]:not(ExportNamedDeclaration[declaration.type=\"TSDeclareFunction\"] + ExportNamedDeclaration[declaration.type=\"FunctionDeclaration\"])"],"require":{"FunctionDeclaration":false}}] +// Message: Missing JSDoc comment. + +module.exports.foo = (bar) => { + return bar + "biz" +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":false,"require":{"ArrowFunctionExpression":true,"FunctionDeclaration":true,"FunctionExpression":true,"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +class Animal { + + #name: string; + + private species: string; + + public color: string; + + @SomeAnnotation('optionalParameter') + tail: boolean; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["PropertyDefinition"]}] +// Message: Missing JSDoc comment. + +@Entity('users') +export class User {} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true}}] +// Message: Missing JSDoc comment. + +/** + * + */ +class Foo { + constructor() {} +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyConstructors":false,"require":{"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +/** + * + */ +class Foo { + constructor(notEmpty) {} +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyConstructors":true,"require":{"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +/** + * + */ +class Foo { + constructor() { + const notEmpty = true; + return notEmpty; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyConstructors":true,"require":{"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +/** + * + */ +function quux() { + +} +// Settings: {"jsdoc":{"structuredTags":{"see":{"name":false,"required":["name"]}}}} +// Message: Cannot add "name" to `require` with the tag's `name` set to `false` + +class Test { + aFunc() {} +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"checkConstructors":false,"require":{"ArrowFunctionExpression":true,"ClassDeclaration":false,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":true,"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +class Test { + aFunc = () => {} + anotherFunc() {} +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":true,"ClassDeclaration":false,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":true,"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +export enum testEnum { + A, B +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSEnumDeclaration"],"publicOnly":true}] +// Message: Missing JSDoc comment. + +export interface Test { + aFunc: () => void; + aVar: string; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration"],"publicOnly":true}] +// Message: Missing JSDoc comment. + +export type testType = string | number; +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSTypeAliasDeclaration"],"publicOnly":true}] +// Message: Missing JSDoc comment. + +export interface Foo { + bar: number; + baz: string; + quux(): void; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSPropertySignature","TSMethodSignature"],"publicOnly":true}] +// Message: Missing JSDoc comment. + +export class MyComponentComponent { + @Output() + public changed = new EventEmitter(); + + public test = 'test'; + + @Input() + public value = new EventEmitter(); +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["PropertyDefinition > Decorator[expression.callee.name=\"Input\"]"]}] +// Message: Missing JSDoc comment. + +requestAnimationFrame(draw) + +function bench() { +} +// Message: Missing JSDoc comment. + +class Foo { + set aName (val) {} +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"checkSetters":"no-getter","contexts":["MethodDefinition > FunctionExpression"]}] +// Message: Missing JSDoc comment. + +class Foo { + get aName () {} +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"checkGetters":"no-setter","contexts":["MethodDefinition > FunctionExpression"]}] +// Message: Missing JSDoc comment. + +const obj = { + get aName () {}, +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"checkGetters":"no-setter","contexts":["Property > FunctionExpression"]}] +// Message: Missing JSDoc comment. + +function comment () { + return "comment"; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"enableFixer":true,"fixerMessage":" TODO: add comment"}] +// Message: Missing JSDoc comment. + +function comment () { + return "comment"; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["any",{"context":"FunctionDeclaration","inlineCommentBlock":true}],"fixerMessage":"TODO: add comment "}] +// Message: Missing JSDoc comment. + +function comment () { + return "comment"; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"enableFixer":false,"fixerMessage":" TODO: add comment"}] +// Message: Missing JSDoc comment. + +export class InovaAutoCompleteComponent { + public disabled = false; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["PropertyDefinition"],"publicOnly":true}] +// Message: Missing JSDoc comment. + +export default (arg) => arg; +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ArrowFunctionExpression":true,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":true,"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +export function outer() { + function inner() { + console.log('foo'); + } + + inner(); +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ArrowFunctionExpression":true,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":true,"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +export const outer = () => { + const inner = () => { + console.log('foo'); + }; + + inner(); +}; +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ArrowFunctionExpression":true,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":true,"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +/** + * + */ +export class InovaAutoCompleteComponent { + public disabled = false; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["PropertyDefinition"],"publicOnly":true}] +// Message: Missing JSDoc comment. + +/** +* Some comment. +*/ +export class Component { + public foo?: number; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"checkConstructors":false,"contexts":["PropertyDefinition"],"publicOnly":true}] +// Message: Missing JSDoc comment. + +class Utility { + /** + * + */ + mthd() { + return false; + } +} + +module.exports = Utility; +// "jsdoc/require-jsdoc": ["error"|"warn", {"enableFixer":false,"publicOnly":true,"require":{"ArrowFunctionExpression":true,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":true,"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +/** + * + */ +module.exports = class Utility { + mthd() { + return false; + } +}; +// "jsdoc/require-jsdoc": ["error"|"warn", {"enableFixer":false,"publicOnly":true,"require":{"ArrowFunctionExpression":true,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":true,"MethodDefinition":true}}] +// Message: Missing JSDoc comment. + +function quux () { + return 3; +} + +function b () {} +// "jsdoc/require-jsdoc": ["error"|"warn", {"minLineCount":2}] +// Message: Missing JSDoc comment. + +function quux () { + return 3; +} + +var a = {}; +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[{"context":"FunctionDeclaration","minLineCount":2},{"context":"VariableDeclaration","minLineCount":2}],"require":{"FunctionDeclaration":false}}] +// Message: Missing JSDoc comment. + +function quux () { + return 3; +} + +var a = { + b: 1, + c: 2 +}; +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[{"context":"FunctionDeclaration","minLineCount":4},{"context":"VariableDeclaration","minLineCount":2}],"require":{"FunctionDeclaration":false}}] +// Message: Missing JSDoc comment. + +class A { + setId(newId: number): void { + this.id = id; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[{"context":"MethodDefinition","minLineCount":3}],"require":{"ClassDeclaration":false,"FunctionExpression":false,"MethodDefinition":false}}] +// Message: Missing JSDoc comment. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +interface FooBar { + fooBar: string; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"],"publicOnly":{"ancestorsOnly":true}}] + +/** This is comment */ +interface FooBar { + fooBar: string; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"],"publicOnly":{"ancestorsOnly":true}}] + +/** This is comment */ +export class Foo { + someMethod() { + interface FooBar { + fooBar: string; + } + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"],"publicOnly":{"ancestorsOnly":true}}] + +/** This is comment */ +function someFunction() { + interface FooBar { + fooBar: string; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"],"publicOnly":{"ancestorsOnly":true}}] + +/** This is comment */ +export function foo() { + interface bar { + fooBar: string; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"],"publicOnly":{"ancestorsOnly":true}}] + +/** + * + */ + +var array = [1,2,3]; +array.forEach(function() {}); + +/** + * @class MyClass + **/ +function MyClass() {} + +/** + Function doing something + */ +function myFunction() {} +/** + Function doing something + */ +var myFunction = function() {}; +/** + Function doing something + */ +Object.myFunction = function () {}; +var obj = { + /** + * Function doing something + **/ + myFunction: function () {} }; + +/** + @func myFunction + */ +function myFunction() {} +/** + @method myFunction + */ +function myFunction() {} +/** + @function myFunction + */ +function myFunction() {} + +/** + @func myFunction + */ +var myFunction = function () {} +/** + @method myFunction + */ +var myFunction = function () {} +/** + @function myFunction + */ +var myFunction = function () {} + +/** + @func myFunction + */ +Object.myFunction = function() {} +/** + @method myFunction + */ +Object.myFunction = function() {} +/** + @function myFunction + */ +Object.myFunction = function() {} +(function(){})(); + +var object = { + /** + * @func myFunction - Some function + */ + myFunction: function() {} } +var object = { + /** + * @method myFunction - Some function + */ + myFunction: function() {} } +var object = { + /** + * @function myFunction - Some function + */ + myFunction: function() {} } + +var array = [1,2,3]; +array.filter(function() {}); +Object.keys(this.options.rules || {}).forEach(function(name) {}.bind(this)); +var object = { name: 'key'}; +Object.keys(object).forEach(function() {}) + +/** + * @func myFunction + */ + +function myFunction() { + +} +// Settings: {"jsdoc":{"maxLines":2,"minLines":0}} + +/** + * @func myFunction + */ + + +function myFunction() { + +} +// Settings: {"jsdoc":{"maxLines":3,"minLines":0}} + +/** @func myFunction */ function myFunction() { + +} +// Settings: {"jsdoc":{"maxLines":0,"minLines":0}} + +/** + * @func myFunction + */ + +function myFunction() { + +} +// Settings: {"jsdoc":{"maxLines":3,"minLines":2}} + +function myFunction() {} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"FunctionDeclaration":false,"MethodDefinition":true}}] + +var myFunction = function() {} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"FunctionDeclaration":false,"MethodDefinition":true}}] + +/** + * Description for A. + */ +class A { + /** + * Description for constructor. + * @param {object[]} xs - xs + */ + constructor(xs) { + this.a = xs; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"MethodDefinition":true}}] + +/** + * Description for A. + */ +class App extends Component { + /** + * Description for constructor. + * @param {object[]} xs - xs + */ + constructor(xs) { + this.a = xs; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"MethodDefinition":true}}] + +/** + * Description for A. + */ +export default class App extends Component { + /** + * Description for constructor. + * @param {object[]} xs - xs + */ + constructor(xs) { + this.a = xs; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"MethodDefinition":true}}] + +/** + * Description for A. + */ +export class App extends Component { + /** + * Description for constructor. + * @param {object[]} xs - xs + */ + constructor(xs) { + this.a = xs; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true,"MethodDefinition":true}}] + +class A { + constructor(xs) { + this.a = xs; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":false,"MethodDefinition":false}}] + +/** +* Function doing something +*/ +var myFunction = () => {} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":true}}] + +/** +* Function doing something +*/ +var myFunction = function () {} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":true}}] + +/** +* Function doing something +*/ +var myFunction = () => {} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":false}}] + +/** + Function doing something +*/ +var myFunction = () => () => {} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":true}}] + +setTimeout(() => {}, 10); +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":true}}] + +/** +JSDoc Block +*/ +var foo = function() {} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"FunctionExpression":true}}] + +const foo = {/** +JSDoc Block +*/ +bar() {}} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"FunctionExpression":true}}] + +var foo = {/** +JSDoc Block +*/ +bar: function() {}} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"FunctionExpression":true}}] + +var foo = { [function() {}]: 1 }; +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"FunctionExpression":true}}] + +function foo () {} +// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyFunctions":true}] + +function foo () { + return; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyFunctions":true}] + +const test = {}; +/** + * test + */ + test.method = function () { + +} +module.exports = { + prop: { prop2: test.method } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] + +/** + * + */ +function test() { + +} + +module.exports = { + prop: { prop2: test } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] + +/** + * + */ +test = function() { + +} + +module.exports = { + prop: { prop2: test } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":true,"esm":false,"window":false},"require":{"FunctionExpression":true}}] + +/** + * + */ +test = function() { + +} + +exports.someMethod = { + prop: { prop2: test } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"FunctionExpression":true}}] + +/** + * + */ +const test = () => { + +} + +module.exports = { +prop: { prop2: test } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ArrowFunctionExpression":true}}] + +const test = () => { + +} +module.exports = { + prop: { prop2: test } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"require":{"ArrowFunctionExpression":true}}] + +/** + * + */ +window.test = function() { + +} + +module.exports = { +prop: window +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] + +test = function() { + +} + +/** + * + */ +test = function() { + +} + +module.exports = { +prop: { prop2: test } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] + +test = function() { + +} + +test = 2; + +module.exports = { +prop: { prop2: test } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] + +/** + * + */ +function test() { + +} + +/** + * + */ +test.prototype.method = function() { + +} + +module.exports = { +prop: { prop2: test } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] + +class Test { + /** + * Test + */ + method() { + + } +} +module.exports = Test; +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"MethodDefinition":true}}] + +/** + * + */ +export default function quux () { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] + +/** + * + */ +export default function quux () { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}] + +/** + * + */ +function quux () { + +} +export default quux; +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] + +function quux () { + +} +export default quux; +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}] + +/** + * + */ +export function test() { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] + +/** + * + */ +export function test() { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}] + +/** + * + */ +var test = function () { + +} +var test2 = 2; +export { test, test2 } +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] + +/** + * + */ +var test = function () { + +} +export { test as test2 } +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] + +/** + * + */ +export default class A { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"require":{"ClassDeclaration":true}}] + +/** + * + */ +var test = function () { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"window":true},"require":{"FunctionExpression":true}}] + +let test = function () { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"window":true},"require":{"FunctionExpression":true}}] + +let test = class { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ClassExpression":false}}] + +/** + * + */ +let test = class { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ClassExpression":true}}] + +export function someMethod() { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":true,"esm":false,"window":false},"require":{"FunctionDeclaration":true}}] + +export function someMethod() { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":true,"esm":false,"window":false},"require":{"FunctionDeclaration":true}}] + +exports.someMethod = function() { + +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"FunctionExpression":true}}] + +const myObject = { + myProp: true +}; +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[]}] + +function bear() {} +/** + * + */ +function quux () { +} +export default quux; +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"FunctionExpression":true}}] + +/** + * This example interface is great! + */ +export interface Example { + /** + * My super test string! + */ + test: string +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration"]}] + +/** + * This example interface is great! + */ +interface Example { + /** + * My super test string! + */ + test: string +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration"]}] + +/** + * This example type is great! + */ +export type Example = { + /** + * My super test string! + */ + test: string +}; +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSTypeAliasDeclaration"]}] + +/** + * This example type is great! + */ +type Example = { + /** + * My super test string! + */ + test: string +}; +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSTypeAliasDeclaration"]}] + +/** + * This example enum is great! + */ +export enum Example { + /** + * My super test enum! + */ + test = 123 +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSEnumDeclaration"]}] + +/** + * This example enum is great! + */ +enum Example { + /** + * My super test enum! + */ + test = 123 +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSEnumDeclaration"]}] + +const foo = {...{}}; +function bar() {} +// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyFunctions":false,"publicOnly":true,"require":{"ArrowFunctionExpression":true,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":false,"MethodDefinition":true}}] + +/** + * Class documentation + */ + @logged +export default class Foo { + // .... +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyFunctions":false,"require":{"ClassDeclaration":true}}] + +const a = {}; +const b = { + ...a +}; + +export default b; +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["ObjectExpression"],"exemptEmptyFunctions":false,"publicOnly":true}] + +/** + * Foo interface documentation. + */ +export interface Foo extends Bar { + /** + * baz method documentation. + */ + baz(): void; + + /** + * meow method documentation. + */ + meow(): void; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSMethodSignature"]}] + +export default class Test { + private abc(a) { + this.a = a; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["MethodDefinition:not([accessibility=\"private\"]) > FunctionExpression"],"publicOnly":true,"require":{"ArrowFunctionExpression":false,"ClassDeclaration":false,"ClassExpression":false,"FunctionDeclaration":false,"FunctionExpression":false,"MethodDefinition":false}}] + +/** + * Basic application controller. + */ +@Controller() +export class AppController { + /** + * Returns the application information. + * + * @returns ... + */ + @Get('/info') + public getInfo(): string { + return 'OK'; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":false,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":false,"MethodDefinition":true}}] + +/** + * Entity to represent a user in the system. + */ +@Entity('users') +export class User { +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":false,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":false,"MethodDefinition":true}}] + +/** + * Entity to represent a user in the system. + */ +@Entity('users', getVal()) +export class User { +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ArrowFunctionExpression":false,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":false,"MethodDefinition":true}}] + +/** + * + */ +class Foo { + constructor() {} +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"exemptEmptyConstructors":true,"require":{"MethodDefinition":true}}] + +/** + * + */ +class Foo { + constructor() {} +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"checkConstructors":false,"require":{"MethodDefinition":true}}] + +class Foo { + get aName () {} + set aName (val) {} +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"checkGetters":"no-setter","checkSetters":false,"contexts":["MethodDefinition > FunctionExpression"]}] + +const obj = { + get aName () {}, + set aName (val) {} +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"checkGetters":"no-setter","checkSetters":false,"contexts":["Property > FunctionExpression"]}] + +class Foo { + set aName (val) {} +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"checkSetters":false,"contexts":["MethodDefinition > FunctionExpression"]}] + +class Foo { + get aName () {} +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"checkGetters":false,"contexts":["MethodDefinition > FunctionExpression"]}] + +class Foo { + /** + * + */ + set aName (val) {} +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"checkSetters":"no-getter","contexts":["MethodDefinition > FunctionExpression"]}] + +class Foo { + /** + * + */ + get aName () {} +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"checkGetters":"no-setter","contexts":["MethodDefinition > FunctionExpression"]}] + +class Foo { + get aName () {} + set aName (val) {} +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"checkGetters":false,"checkSetters":"no-getter","contexts":["MethodDefinition > FunctionExpression"]}] + +class Base { + constructor() { + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["MethodDefinition"],"exemptEmptyConstructors":true}] + +/** + * This is a text. + */ +export function a(); // Reports an error +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSDeclareFunction"],"require":{"FunctionDeclaration":true}}] + +/** + * Foo + */ +export function foo(): void { + function bar(): void { + console.log('bar'); + } + + console.log('foo'); +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true}] + +const foo = { + bar: () => { + // ... + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[":not(Property) > ArrowFunctionExpression"],"require":{"ArrowFunctionExpression":false,"ClassDeclaration":true,"ClassExpression":true}}] + +/** Defines the current user's settings. */ +@Injectable({ + providedIn: 'root', +}) +@State> +({ + name: 'userSettings', + defaults: { + isDev: !environment.production, + }, +}) +export class UserSettingsState { } +// "jsdoc/require-jsdoc": ["error"|"warn", {"require":{"ClassDeclaration":true}}] + +/** + * Entity to represent a user in the system. + */ +@Entity('users') +export class User { +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["Decorator"],"require":{"FunctionDeclaration":false}}] + + function quux () { + return 3; +} + +function b () {} +// "jsdoc/require-jsdoc": ["error"|"warn", {"minLineCount":4}] + +function quux () { + return 3; +} + +var a = { + b: 1, + c: 2 +}; +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[{"context":"FunctionDeclaration","minLineCount":4},{"context":"VariableDeclaration","minLineCount":5}],"require":{"FunctionDeclaration":false}}] + +class A { + setId(newId: number): void { + this.id = id; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[{"context":"MethodDefinition","minLineCount":4}],"require":{"ClassDeclaration":false,"FunctionExpression":false,"MethodDefinition":false}}] +```` + diff --git a/docs/rules/require-param-description.md b/docs/rules/require-param-description.md new file mode 100644 index 000000000..c8253b81e --- /dev/null +++ b/docs/rules/require-param-description.md @@ -0,0 +1,1780 @@ + + +### require-param + +Requires that all function parameters are documented. + + + +#### Fixer + +Adds `@param ` for each tag present in the function signature but +missing in the jsdoc. Can be disabled by setting the `enableFixer` +option to `false`. + + + +##### Destructured object and array naming + +When the fixer is applied to destructured objects, only the input name is +used. + +So for: + +```js +/** + * @param cfg + */ +function quux ({foo: bar, baz: bax = 5}) { +} +``` + +...the fixed jsdoc will be: + +```js +/** +* @param cfg +* @param cfg.foo +* @param cfg.baz +*/ +``` + +This is because the input to the function is the relevant item for +understanding the function's input, not how the variable is renamed +for internal use (the signature itself documents that). + +For destructured arrays, the input name is merely the array index. + +So for: + +```js +/** + * @param cfg + */ +function quux ([foo, bar]) { +} +``` + +..the fixed jsdoc will be: + +```js +/** +* @param cfg +* @param cfg."0" +* @param cfg."1" +*/ +``` + + + +##### Missing root fixing + +Note that unless `enableRootFixer` (or `enableFixer`) is set to `false`, +missing roots will be added and auto-incremented. The default behavior +is for "root" to be auto-inserted for missing roots, followed by a +0-based auto-incrementing number. + +So for: + +```js +function quux ({foo}, {bar}, {baz}) { +} +``` + +...the default jsdoc that would be added if the fixer is enabled would be: + +```js +/** +* @param root0 +* @param root0.foo +* @param root1 +* @param root1.bar +* @param root2 +* @param root2.baz +*/ +``` + +The name of "root" can be configured with `unnamedRootBase` (which also allows +cycling through a list of multiple root names before there is need for any +numeric component). + +And one can have the count begin at another number (e.g., `1`) by changing +`autoIncrementBase` from the default of `0`. + + + +##### Rest Element (RestElement) insertions + +The fixer will automatically report/insert +[jsdoc repeatable parameters](https://jsdoc.app/tags-param.html#multiple-types-and-repeatable-parameters) +if missing. + +```js +/** + * @param {GenericArray} cfg + * @param {number} cfg."0" + */ +function baar ([a, ...extra]) { + // +} +``` + +..becomes: + +```js +/** + * @param {GenericArray} cfg + * @param {number} cfg."0" + * @param {...any} cfg."1" + */ +function baar ([a, ...extra]) { + // +} +``` + +Note that the type `any` is included since we don't know of any specific +type to use. + +To disable such rest element insertions, set `enableRestElementFixer` to +`false`. + +Note too that the following will be reported even though there is an item +corresponding to `extra`: + +```js +/** + * @param {GenericArray} cfg + * @param {number} cfg."0" + * @param {any} cfg."1" + */ +function baar ([a, ...extra]) { + // +} +``` + +...because it does not use the `...` syntax in the type. + + + +##### Object Rest Property insertions + +If the `checkRestProperty` option is set to `true` (`false` by default), +missing rest properties will be reported with documentation auto-inserted: + +```js +/** + * @param cfg + * @param cfg.num + */ +function quux ({num, ...extra}) { +} +``` + +...becomes: + +```js +/** + * @param cfg + * @param cfg.num + * @param cfg.extra + */ +function quux ({num, ...extra}) { +} +``` + +You may wish to manually note in your jsdoc for `extra` that this is a +rest property, however, as jsdoc +[does not appear](https://github.com/jsdoc/jsdoc/issues/1773) +to currently support syntax or output to distinguish rest properties from +other properties, so in looking at the docs alone without looking at the +function signature, it may appear that there is an actual property named +`extra`. + + + +#### Options + +An options object accepts the following optional properties: + + + +##### enableFixer + +Whether to enable the fixer. Defaults to `true`. + + + +##### enableRootFixer + +Whether to enable the auto-adding of incrementing roots (see the "Fixer" +section). Defaults to `true`. Has no effect if `enableFixer` is set to +`false`. + + + +##### enableRestElementFixer + +Whether to enable the rest element fixer (see +"Rest Element (`RestElement`) insertions"). Defaults to `true`. + + + +##### checkRestProperty + +If set to `true`, will report (and add fixer insertions) for missing rest +properties. Defaults to `false`. + +If set to `true`, note that you can still document the subproperties of the +rest property using other jsdoc features, e.g., `@typedef`: + +```js +/** + * @typedef ExtraOptions + * @property innerProp1 + * @property innerProp2 + */ + +/** + * @param cfg + * @param cfg.num + * @param {ExtraOptions} extra + */ +function quux ({num, ...extra}) { +} +``` + +Setting this option to `false` (the default) may be useful in cases where +you already have separate `@param` definitions for each of the properties +within the rest property. + +For example, with the option disabled, this will not give an error despite +`extra` not having any definition: + +```js +/** + * @param cfg + * @param cfg.num + */ +function quux ({num, ...extra}) { +} +``` + +Nor will this: + +```js +/** + * @param cfg + * @param cfg.num + * @param cfg.innerProp1 + * @param cfg.innerProp2 + */ +function quux ({num, ...extra}) { +} +``` + + + +##### autoIncrementBase + +Numeric to indicate the number at which to begin auto-incrementing roots. +Defaults to `0`. + + + +##### unnamedRootBase + +An array of root names to use in the fixer when roots are missing. Defaults +to `['root']`. Note that only when all items in the array besides the last +are exhausted will auto-incrementing occur. So, with +`unnamedRootBase: ['arg', 'config']`, the following: + +```js +function quux ({foo}, [bar], {baz}) { +} +``` + +...will get the following jsdoc block added: + +```js +/** +* @param arg +* @param arg.foo +* @param config0 +* @param config0."0" (`bar`) +* @param config1 +* @param config1.baz +*/ +``` + + + +##### exemptedBy + +Array of tags (e.g., `['type']`) whose presence on the document block +avoids the need for a `@param`. Defaults to an array with +`inheritdoc`. If you set this array, it will overwrite the default, +so be sure to add back `inheritdoc` if you wish its presence to cause +exemption of the rule. + + + +##### checkTypesPattern + +When one specifies a type, unless it is of a generic type, like `object` +or `array`, it may be considered unnecessary to have that object's +destructured components required, especially where generated docs will +link back to the specified type. For example: + +```js +/** + * @param {SVGRect} bbox - a SVGRect + */ +export const bboxToObj = function ({x, y, width, height}) { + return {x, y, width, height}; +}; +``` + +By default `checkTypesPattern` is set to +`/^(?:[oO]bject|[aA]rray|PlainObject|Generic(?:Object|Array))$/u`, +meaning that destructuring will be required only if the type of the `@param` +(the text between curly brackets) is a match for "Object" or "Array" (with or +without initial caps), "PlainObject", or "GenericObject", "GenericArray" (or +if no type is present). So in the above example, the lack of a match will +mean that no complaint will be given about the undocumented destructured +parameters. + +Note that the `/` delimiters are optional, but necessary to add flags. + +Defaults to using (only) the `u` flag, so to add your own flags, encapsulate +your expression as a string, but like a literal, e.g., `/^object$/ui`. + +You could set this regular expression to a more expansive list, or you +could restrict it such that even types matching those strings would not +need destructuring. + + + +##### contexts + +Set this to an array of strings representing the AST context (or an object with +`context` and `comment` properties) where you wish the rule to be applied. +Overrides the default contexts (see below). May be useful for adding such as +`TSMethodSignature` in TypeScript or restricting the contexts +which are checked. + +See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) +section of our README for more on the expected format. + + + +##### checkConstructors + +A value indicating whether `constructor`s should be checked. Defaults to +`true`. + + + +##### checkGetters + +A value indicating whether getters should be checked. Defaults to `false`. + + + +##### checkSetters + +A value indicating whether setters should be checked. Defaults to `false`. + + + +##### checkDestructured + +Whether to require destructured properties. Defaults to `true`. + + + +##### checkDestructuredRoots + +Whether to check the existence of a corresponding `@param` for root objects +of destructured properties (e.g., that for `function ({a, b}) {}`, that there +is something like `@param myRootObj` defined that can correspond to +the `{a, b}` object parameter). + +If `checkDestructuredRoots` is `false`, `checkDestructured` will also be +implied to be `false` (i.e., the inside of the roots will not be checked +either, e.g., it will also not complain if `a` or `b` do not have their own +documentation). Defaults to `true`. + + + +##### useDefaultObjectProperties + +Set to `true` if you wish to expect documentation of properties on objects +supplied as default values. Defaults to `false`. + +| | | +| -------- | ----------------------------------------------------------------------------- | +| Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | +| Tags | `param` | +| Aliases | `arg`, `argument` | +|Recommended | true| +| Options | `autoIncrementBase`, `checkDestructured`, `checkDestructuredRoots`, `contexts`, `enableFixer`, `enableRootFixer`, `enableRestElementFixer`, `checkRestProperty`, `exemptedBy`, `checkConstructors`, `checkGetters`, `checkSetters`, `checkTypesPattern`, `unnamedRootBase`, `useDefaultObjectProperties`| +| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * + */ +function quux (foo) { + +} +// Message: Missing JSDoc @param "foo" declaration. + +/** + * + */ +function quux (foo) { + +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["FunctionDeclaration"]}] +// Message: Missing JSDoc @param "foo" declaration. + +/** + * + */ +function quux ({foo}) { + +} +// Message: Missing JSDoc @param "root0" declaration. + +/** + * @param foo + */ +function quux (foo, bar, {baz}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"checkDestructured":false}] +// Message: Missing JSDoc @param "bar" declaration. + +/** + * @param foo + */ +function quux (foo, bar, {baz}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"checkDestructuredRoots":false}] +// Message: Missing JSDoc @param "bar" declaration. + +/** + * + */ +function quux ({foo}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"enableFixer":false}] +// Message: Missing JSDoc @param "root0" declaration. + +/** + * + */ +function quux ({foo: bar = 5} = {}) { + +} +// Message: Missing JSDoc @param "root0" declaration. + +/** + * @param + */ +function quux ({foo}) { + +} +// Message: Missing JSDoc @param "root0" declaration. + +/** + * @param + */ +function quux ({foo}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"autoIncrementBase":1}] +// Message: Missing JSDoc @param "root1" declaration. + +/** + * @param options + */ +function quux ({foo}) { + +} +// Message: Missing JSDoc @param "options.foo" declaration. + +/** + * @param + */ +function quux ({ foo, bar: { baz }}) { + +} +// Message: Missing JSDoc @param "root0" declaration. + +/** + * + */ +function quux ({foo}, {bar}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"unnamedRootBase":["arg"]}] +// Message: Missing JSDoc @param "arg0" declaration. + +/** + * + */ +function quux ({foo}, {bar}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"unnamedRootBase":["arg","config"]}] +// Message: Missing JSDoc @param "arg" declaration. + +/** + * + */ +function quux ({foo}, {bar}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"enableRootFixer":false,"unnamedRootBase":["arg","config"]}] +// Message: Missing JSDoc @param "arg" declaration. + +/** + * + */ +function quux (foo, bar) { + +} +// Message: Missing JSDoc @param "foo" declaration. + +/** + * @param foo + */ +function quux (foo, bar) { + +} +// Message: Missing JSDoc @param "bar" declaration. + +/** + * @param bar + */ +function quux (foo, bar, baz) { + +} +// Message: Missing JSDoc @param "foo" declaration. + +/** + * @param foo + * @param bar + */ +function quux (foo, bar, baz) { + +} +// Message: Missing JSDoc @param "baz" declaration. + +/** + * @param baz + */ +function quux (foo, bar, baz) { + +} +// Message: Missing JSDoc @param "foo" declaration. + +/** + * @param + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} +// Message: Missing JSDoc @arg "foo" declaration. + +/** + * @param foo + */ +function quux (foo, bar) { + +} +// Message: Missing JSDoc @param "bar" declaration. + +/** + * @override + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"overrideReplacesDocs":false}} +// Message: Missing JSDoc @param "foo" declaration. + +/** + * @ignore + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"ignoreReplacesDocs":false}} +// Message: Missing JSDoc @param "foo" declaration. + +/** + * @implements + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"implementsReplacesDocs":false}} +// Message: Missing JSDoc @param "foo" declaration. + +/** + * @augments + */ +function quux (foo) { + +} +// Message: Missing JSDoc @param "foo" declaration. + +/** + * @extends + */ +function quux (foo) { + +} +// Message: Missing JSDoc @param "foo" declaration. + +/** + * @override + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Settings: {"jsdoc":{"overrideReplacesDocs":false}} +// Message: Missing JSDoc @param "foo" declaration. + +/** + * @ignore + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Settings: {"jsdoc":{"ignoreReplacesDocs":false}} +// Message: Missing JSDoc @param "foo" declaration. + +/** + * @implements + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Settings: {"jsdoc":{"implementsReplacesDocs":false}} +// Message: Missing JSDoc @param "foo" declaration. + +/** + * @augments + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Message: Missing JSDoc @param "foo" declaration. + +/** + * @extends + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Message: Missing JSDoc @param "foo" declaration. + +export class SomeClass { + /** + * @param property + */ + constructor(private property: string, private foo: number) {} +} +// Message: Missing JSDoc @param "foo" declaration. + +/** + * @param + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}} +// Message: Unexpected tag `@param` + +/** + * + */ +function quux ({bar, baz}, foo) { +} +// Message: Missing JSDoc @param "root0" declaration. + +/** + * + */ +function quux (foo, {bar, baz}) { +} +// Message: Missing JSDoc @param "foo" declaration. + +/** + * + */ +function quux ([bar, baz], foo) { +} +// Message: Missing JSDoc @param "root0" declaration. + +/** + * + */ +function quux (foo) { +} +// "jsdoc/require-param": ["error"|"warn", {"exemptedBy":["notPresent"]}] +// Message: Missing JSDoc @param "foo" declaration. + +/** + * @inheritdoc + */ +function quux (foo) { + +} +// "jsdoc/require-param": ["error"|"warn", {"exemptedBy":[]}] +// Message: Missing JSDoc @param "foo" declaration. + +/** + * @inheritdoc + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"mode":"closure"}} +// Message: Missing JSDoc @param "foo" declaration. + +/** + * Assign the project to a list of employees. + * @param {object[]} employees - The employees who are responsible for the project. + * @param {string} employees[].name - The name of an employee. + * @param {string} employees[].department - The employee's department. + */ +function assign (employees, name) { + +}; +// Message: Missing JSDoc @param "name" declaration. + +interface ITest { +/** + * Test description. + */ +TestMethod(id: number): void; +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSMethodSignature"]}] +// Message: Missing JSDoc @param "id" declaration. + +/** + * A test class. + */ +abstract class TestClass +{ +/** + * A test method. + */ +abstract TestFunction(id); +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSEmptyBodyFunctionExpression"]}] +// Message: Missing JSDoc @param "id" declaration. + +/** + * A test class. + */ +declare class TestClass +{ +/** + * + */ +TestMethod(id); +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSEmptyBodyFunctionExpression"]}] +// Message: Missing JSDoc @param "id" declaration. + +/** + * A test function. + */ +declare let TestFunction: (id) => void; +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] +// Message: Missing JSDoc @param "id" declaration. + +/** + * A test function. + */ +let TestFunction: (id) => void; +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] +// Message: Missing JSDoc @param "id" declaration. + +/** + * A test function. + */ +function test( + processor: (id: number) => string +) { + return processor(10); +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] +// Message: Missing JSDoc @param "id" declaration. + +/** + * A test function. + */ +let test = (processor: (id: number) => string) => +{ + return processor(10); +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] +// Message: Missing JSDoc @param "id" declaration. + +class TestClass { + /** + * A class property. + */ + public Test: (id: number) => string; +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] +// Message: Missing JSDoc @param "id" declaration. + +class TestClass { + /** + * A class method. + */ + public TestMethod(): (id: number) => string + { + } +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] +// Message: Missing JSDoc @param "id" declaration. + +interface TestInterface { +/** + * An interface property. + */ +public Test: (id: number) => string; +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] +// Message: Missing JSDoc @param "id" declaration. + +interface TestInterface { + /** + * An interface method. + */ + public TestMethod(): (id: number) => string; +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] +// Message: Missing JSDoc @param "id" declaration. + +/** + * A function with return type + */ +function test(): (id: number) => string; +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] +// Message: Missing JSDoc @param "id" declaration. + +/** + * A function with return type + */ +let test = (): (id: number) => string => +{ + return (id) => `${id}`; +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] +// Message: Missing JSDoc @param "id" declaration. + +/** + * @param baz + * @param options + */ +function quux (baz, {foo: bar}) { + +} +// Message: Missing JSDoc @param "options.foo" declaration. + +class Client { + /** + * Set collection data. + * @param {Object} data The collection data object. + * @param {number} data.last_modified + * @param {Object} options The options object. + * @param {Object} [options.headers] The headers object option. + * @param {Number} [options.retry=0] Number of retries to make + * when faced with transient errors. + * @param {Boolean} [options.safe] The safe option. + * @param {Boolean} [options.patch] The patch option. + * @param {Number} [options.last_modified] The last_modified option. + * @return {Promise} + */ + async setData( + data: { last_modified?: number }, + options: { + headers?: Record; + safe?: boolean; + retry?: number; + patch?: boolean; + last_modified?: number; + permissions?: []; + } = {} + ) {} +} +// Message: Missing JSDoc @param "options.permissions" declaration. + +/** + * + */ +function quux (foo) { + +} +// "jsdoc/require-param": ["error"|"warn", {"enableFixer":false}] +// Message: Missing JSDoc @param "foo" declaration. + +class Client { + /** + * Set collection data. + * @return {Promise} + */ + async setData( + data: { last_modified?: number } + ) {} +} +// Message: Missing JSDoc @param "data" declaration. + +/** + * @param cfg + * @param cfg.num + */ +function quux ({num, ...extra}) { +} +// "jsdoc/require-param": ["error"|"warn", {"checkRestProperty":true}] +// Message: Missing JSDoc @param "cfg.extra" declaration. + +/** + * @param cfg + * @param cfg.opts + * @param cfg.opts.num + */ +function quux ({opts: {num, ...extra}}) { +} +// "jsdoc/require-param": ["error"|"warn", {"checkRestProperty":true}] +// Message: Missing JSDoc @param "cfg.opts.extra" declaration. + +/** + * @param {GenericArray} cfg + * @param {number} cfg."0" + */ +function baar ([a, ...extra]) { + // +} +// Message: Missing JSDoc @param "cfg."1"" declaration. + +/** + * @param a + */ +function baar (a, ...extra) { + // +} +// Message: Missing JSDoc @param "extra" declaration. + +/** + * Converts an SVGRect into an object. + * @param {SVGRect} bbox - a SVGRect + */ +const bboxToObj = function ({x, y, width, height}) { + return {x, y, width, height}; +}; +// "jsdoc/require-param": ["error"|"warn", {"checkTypesPattern":"SVGRect"}] +// Message: Missing JSDoc @param "bbox.x" declaration. + +/** + * Converts an SVGRect into an object. + * @param {object} bbox - a SVGRect + */ +const bboxToObj = function ({x, y, width, height}) { + return {x, y, width, height}; +}; +// Message: Missing JSDoc @param "bbox.x" declaration. + +module.exports = class GraphQL { + /** + * @param fetchOptions + * @param cacheKey + */ + fetch = ({ url, ...options }, cacheKey) => { + } +}; +// "jsdoc/require-param": ["error"|"warn", {"checkRestProperty":true}] +// Message: Missing JSDoc @param "fetchOptions.url" declaration. + +(function() { + /** + * A function. + */ + function f(param) { + return !param; + } +})(); +// Message: Missing JSDoc @param "param" declaration. + +/** + * Description. + * @param {Object} options + * @param {Object} options.foo + */ +function quux ({ foo: { bar } }) {} +// Message: Missing JSDoc @param "options.foo.bar" declaration. + +/** + * Description. + * @param {FooBar} options + * @param {FooBar} options.foo + */ +function quux ({ foo: { bar } }) {} +// "jsdoc/require-param": ["error"|"warn", {"checkTypesPattern":"FooBar"}] +// Message: Missing JSDoc @param "options.foo.bar" declaration. + +/** + * Description. + * @param {Object} options + * @param {FooBar} foo + */ +function quux ({ foo: { bar } }) {} +// Message: Missing JSDoc @param "options.foo" declaration. + +/** + * Description. + * @param {Object} options + * @param options.foo + */ +function quux ({ foo: { bar } }) {} +// Message: Missing JSDoc @param "options.foo.bar" declaration. + +/** + * Description. + * @param {object} options Options. + * @param {object} options.foo A description. + * @param {object} options.foo.bar + */ +function foo({ foo: { bar: { baz } }}) {} +// Message: Missing JSDoc @param "options.foo.bar.baz" declaration. + +/** +* Returns a number. +* @param {Object} props Props. +* @param {Object} props.prop Prop. +* @return {number} A number. +*/ +export function testFn1 ({ prop = { a: 1, b: 2 } }) { +} +// "jsdoc/require-param": ["error"|"warn", {"useDefaultObjectProperties":true}] +// Message: Missing JSDoc @param "props.prop.a" declaration. + +/** Foo. */ +function foo(a, b, c) {} +// Message: Missing JSDoc @param "a" declaration. + +/** + * @param foo Some number. + * @param bar Some number. + */ +export function myPublicFunction(foo: number, bar: number, baz: number) {} +// "jsdoc/require-param": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[tag=\"param\"])","context":"FunctionDeclaration"}]}] +// Message: Missing JSDoc @param "baz" declaration. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @param foo + */ +function quux (foo) { + +} + +/** + * @param root0 + * @param root0.foo + */ +function quux ({foo}) { + +} + +/** + * @param root0 + * @param root0.foo + * @param root1 + * @param root1.bar + */ +function quux ({foo}, {bar}) { + +} + +/** + * @param arg0 + * @param arg0.foo + * @param arg1 + * @param arg1.bar + */ +function quux ({foo}, {bar}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"unnamedRootBase":["arg"]}] + +/** + * @param arg + * @param arg.foo + * @param config0 + * @param config0.bar + * @param config1 + * @param config1.baz + */ +function quux ({foo}, {bar}, {baz}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"unnamedRootBase":["arg","config"]}] + +/** + * @inheritdoc + */ +function quux (foo) { + +} + +/** + * @inheritDoc + */ +function quux (foo) { + +} + +/** + * @arg foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} + +/** + * @override + * @param foo + */ +function quux (foo) { + +} + +/** + * @override + */ +function quux (foo) { + +} + +/** + * @override + */ +class A { + /** + * + */ + quux (foo) { + + } +} + +/** + * @override + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"overrideReplacesDocs":true}} + +/** + * @ignore + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"ignoreReplacesDocs":true}} + +/** + * @implements + */ +class A { + /** + * + */ + quux (foo) { + + } +} + +/** + * @implements + */ +function quux (foo) { + +} + +/** + * @implements + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"implementsReplacesDocs":true}} + +/** + * @implements + * @param foo + */ +function quux (foo) { + +} + +/** + * @augments + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} + +/** + * @augments + * @param foo + */ +function quux (foo) { + +} + +/** + * @extends + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} + +/** + * @extends + * @param foo + */ +function quux (foo) { + +} + +/** + * @augments + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} + +/** + * @extends + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} + +/** + * @override + */ +class A { + /** + * @param foo + */ + quux (foo) { + + } +} + +/** + * @override + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Settings: {"jsdoc":{"overrideReplacesDocs":true}} + +/** + * @ignore + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Settings: {"jsdoc":{"ignoreReplacesDocs":true}} + +/** + * @implements + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Settings: {"jsdoc":{"implementsReplacesDocs":true}} + +/** + * @implements + */ +class A { + /** + * @param foo + */ + quux (foo) { + + } +} + +/** + * @augments + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} + +/** + * @augments + */ +class A { + /** + * @param foo + */ + quux (foo) { + + } +} + +/** + * @extends + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} + +/** + * @extends + */ +class A { + /** + * @param foo + */ + quux (foo) { + + } +} + +/** + * @augments + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} + +/** + * @extends + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} + +/** + * @internal + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"ignoreInternal":true}} + +/** + * @private + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"ignorePrivate":true}} + +/** + * @access private + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"ignorePrivate":true}} + +// issue 182: optional chaining +/** @const {boolean} test */ +const test = something?.find(_ => _) + +/** @type {RequestHandler} */ +function foo(req, res, next) {} + +/** + * @type {MyCallback} + */ +function quux () { + +} +// "jsdoc/require-param": ["error"|"warn", {"exemptedBy":["type"]}] + +/** + * @override + */ +var A = class { + /** + * + */ + quux (foo) { + + } +} + +export class SomeClass { + /** + * @param property + */ + constructor(private property: string) {} +} + +/** + * Assign the project to an employee. + * + * @param {object} employee - The employee who is responsible for the project. + * @param {string} employee.name - The name of the employee. + * @param {string} employee.department - The employee's department. + */ +function assign({name, department}) { + // ... +} + +export abstract class StephanPlugin { + + /** + * Called right after Stephan loads the plugin file. + * + * @example + *```typescript + * type Options = { + * verbose?: boolean; + * token?: string; + * } + * ``` + * + * Note that your Options type should only have optional properties... + * + * @param args Arguments compiled and provided by StephanClient. + * @param args.options The options as provided by the user, or an empty object if not provided. + * @param args.client The options as provided by the user, or an empty object if not provided. + * @param defaultOptions The default options as provided by the plugin, or an empty object. + */ + public constructor({options, client}: { + options: O; + client: unknown; + }, defaultOptions: D) { + + } +} + +/** + * + */ +function quux (foo) { + +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["ArrowFunctionExpression"]}] + +/** +* A function with return type +* +* @param id +*/ +let test = (): (id: number) => string => +{ + return (id) => `${id}`; +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] + +/** @abstract */ +class base { +/** @param {boolean} arg0 */ +constructor(arg0) {} +} + +class foo extends base { +/** @inheritDoc */ +constructor(arg0) { +super(arg0); +this.arg0 = arg0; +} +} +// Settings: {"jsdoc":{"mode":"closure"}} + + export abstract class StephanPlugin { + + /** + * Called right after Stephan loads the plugin file. + * + * @example + *```typescript + * type Options = { + * verbose?: boolean; + * token?: string; + * } + * ``` + * + * Note that your Options type should only have optional properties... + * + * @param args Arguments compiled and provided by StephanClient. + * @param args.options The options as provided by the user, or an empty object if not provided. + * @param args.client The options as provided by the user, or an empty object if not provided. + * @param args.client.name The name of the client. + * @param defaultOptions The default options as provided by the plugin, or an empty object. + */ + public constructor({ options, client: { name } }: { + options: O; + client: { name: string }; + }, defaultOptions: D) { + + } +} + +/** +* @param {string} cb +*/ +function createGetter (cb) { + return function (...args) { + cb(); + }; +} + +/** + * @param cfg + * @param cfg.num + */ +function quux ({num, ...extra}) { +} + +/** + * @param {GenericArray} cfg + * @param {number} cfg."0" + */ +function baar ([a, ...extra]) { + // +} +// "jsdoc/require-param": ["error"|"warn", {"enableRestElementFixer":false}] + +/** + * @param a + */ +function baar (a, ...extra) { + // +} +// "jsdoc/require-param": ["error"|"warn", {"enableRestElementFixer":false}] + +/** +* Converts an SVGRect into an object. +* @param {SVGRect} bbox - a SVGRect +*/ +const bboxToObj = function ({x, y, width, height}) { + return {x, y, width, height}; +}; + +/** +* Converts an SVGRect into an object. +* @param {object} bbox - a SVGRect +*/ +const bboxToObj = function ({x, y, width, height}) { + return {x, y, width, height}; +}; +// "jsdoc/require-param": ["error"|"warn", {"checkTypesPattern":"SVGRect"}] + +class CSS { + /** + * Set one or more CSS properties for the set of matched elements. + * + * @param {Object} propertyObject - An object of property-value pairs to set. + */ + setCssObject(propertyObject: {[key: string]: string | number}): void { + } +} + +/** + * @param foo + * @param bar + * @param cfg + */ +function quux (foo, bar, {baz}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"checkDestructured":false}] + +/** + * @param foo + * @param bar + */ +function quux (foo, bar, {baz}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"checkDestructuredRoots":false}] + +/** + * @param root + * @param root.foo + */ +function quux ({"foo": bar}) { + +} + +/** + * @param root + * @param root."foo" + */ +function quux ({foo: bar}) { + +} + +/** + * Description. + * @param {string} b Description `/**`. + */ +module.exports = function a(b) { + console.info(b); +}; + +/** + * Description. + * @param {Object} options Options. + * @param {FooBar} options.foo foo description. + */ +function quux ({ foo: { bar } }) {} + +/** + * Description. + * @param {FooBar} options + * @param {Object} options.foo + */ +function quux ({ foo: { bar } }) {} +// "jsdoc/require-param": ["error"|"warn", {"checkTypesPattern":"FooBar"}] + +/** + * @param obj + * @param obj.data + * @param obj.data."0" + * @param obj.data."1" + * @param obj.data."2" + * @param obj.defaulting + * @param obj.defaulting."0" + * @param obj.defaulting."1" + */ +function Item({ + data: [foo, bar, ...baz], + defaulting: [quux, xyz] = [] +}) { +} + +/** +* Returns a number. +* @param {Object} props Props. +* @param {Object} props.prop Prop. +* @return {number} A number. +*/ +export function testFn1 ({ prop = { a: 1, b: 2 } }) { +} +// "jsdoc/require-param": ["error"|"warn", {"useDefaultObjectProperties":false}] + +/** + * @param this The this object + * @param bar number to return + * @returns number returned back to caller + */ +function foo(this: T, bar: number): number { + console.log(this.name); + return bar; +} + +/** + * @param bar number to return + * @returns number returned back to caller + */ +function foo(this: T, bar: number): number { + console.log(this.name); + return bar; +} +```` + diff --git a/docs/rules/require-param-name.md b/docs/rules/require-param-name.md new file mode 100644 index 000000000..966be194f --- /dev/null +++ b/docs/rules/require-param-name.md @@ -0,0 +1,219 @@ + + +### require-param-description + +Requires that each `@param` tag has a `description` value. + +Will exempt destructured roots and their children if +`settings.exemptDestructuredRootsFromChecks` is set to `true` (e.g., +`@param {object} props` will be exempted from requiring a description given +`function someFunc ({child1, child2})`). + + + +#### Options + + + +##### setDefaultDestructuredRootDescription + +Whether to set a default destructured root description. For example, you may +wish to avoid manually having to set the description for a `@param` +corresponding to a destructured root object as it should always be the same +type of object. Uses `defaultDestructuredRootDescription` for the description +string. Defaults to `false`. + + + +##### defaultDestructuredRootDescription + +The description string to set by default for destructured roots. Defaults to +"The root object". + + + +##### contexts + +Set this to an array of strings representing the AST context (or an object with +`context` and `comment` properties) where you wish the rule to be applied. +Overrides the default contexts (see below). Set to `"any"` if you want +the rule to apply to any jsdoc block throughout your files (as is necessary +for finding function blocks not attached to a function declaration or +expression, i.e., `@callback` or `@function` (or its aliases `@func` or +`@method`) (including those associated with an `@interface`). + +See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) +section of our README for more on the expected format. + +||| +|---|---| +|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| +|Tags|`param`| +|Aliases|`arg`, `argument`| +|Recommended|true| +|Options|`setDefaultDestructuredRootDescription`, `defaultDestructuredRootDescription`, `contexts`| +|Settings|`exemptDestructuredRootsFromChecks`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @param foo + */ +function quux (foo) { + +} +// Message: Missing JSDoc @param "foo" description. + +/** + * @param foo + */ +function quux (foo) { + +} +// "jsdoc/require-param-description": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @param "foo" description. + +/** + * @function + * @param foo + */ +// "jsdoc/require-param-description": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @param "foo" description. + +/** + * @callback + * @param foo + */ +// "jsdoc/require-param-description": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @param "foo" description. + +/** + * @arg foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} +// Message: Missing JSDoc @arg "foo" description. + +/** + * @param foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}} +// Message: Unexpected tag `@param` + +/** + * @param foo + */ +function quux (foo) { + +} +// "jsdoc/require-param-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag:not([name=props]))","context":"FunctionDeclaration"}]}] +// Message: Missing JSDoc @param "foo" description. + +/** + * @param {number} foo Foo description + * @param {object} root + * @param {boolean} baz Baz description + */ +function quux (foo, {bar}, baz) { + +} +// "jsdoc/require-param-description": ["error"|"warn", {"setDefaultDestructuredRootDescription":true}] +// Message: Missing root description for @param. + +/** + * @param {number} foo Foo description + * @param {object} root + * @param {boolean} baz Baz description + */ +function quux (foo, {bar}, baz) { + +} +// "jsdoc/require-param-description": ["error"|"warn", {"defaultDestructuredRootDescription":"Root description","setDefaultDestructuredRootDescription":true}] +// Message: Missing root description for @param. + +/** + * @param {number} foo Foo description + * @param {object} root + * @param {boolean} baz Baz description + */ +function quux (foo, {bar}, baz) { + +} +// "jsdoc/require-param-description": ["error"|"warn", {"setDefaultDestructuredRootDescription":false}] +// Message: Missing JSDoc @param "root" description. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * + */ +function quux (foo) { + +} + +/** + * @param foo Foo. + */ +function quux (foo) { + +} + +/** + * @param foo Foo. + */ +function quux (foo) { + +} +// "jsdoc/require-param-description": ["error"|"warn", {"contexts":["any"]}] + +/** + * @function + * @param foo + */ + +/** + * @callback + * @param foo + */ + +/** + * @param props + */ +function quux (props) { + +} +// "jsdoc/require-param-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag:not([name=props]))","context":"FunctionDeclaration"}]}] + +/** + * @param {number} foo Foo description + * @param {object} root + * @param {boolean} baz Baz description + */ +function quux (foo, {bar}, baz) { + +} +// Settings: {"jsdoc":{"exemptDestructuredRootsFromChecks":true}} + +/** + * @param {number} foo Foo description + * @param {object} root + * @param {object} root.bar + */ +function quux (foo, {bar: {baz}}) { + +} +// Settings: {"jsdoc":{"exemptDestructuredRootsFromChecks":true}} +```` + diff --git a/docs/rules/require-param-type.md b/docs/rules/require-param-type.md new file mode 100644 index 000000000..8f7a0fb4a --- /dev/null +++ b/docs/rules/require-param-type.md @@ -0,0 +1,146 @@ + + +### require-param-name + +Requires that all function parameters have names. + +> The `@param` tag requires you to specify the name of the parameter you are documenting. You can also include the parameter's type, enclosed in curly brackets, and a description of the parameter. +> +> [JSDoc](https://jsdoc.app/tags-param.html#overview) + + + +#### Options + + + +##### contexts + +Set this to an array of strings representing the AST context (or an object with +`context` and `comment` properties) where you wish the rule to be applied. +Overrides the default contexts (see below). Set to `"any"` if you want +the rule to apply to any jsdoc block throughout your files (as is necessary +for finding function blocks not attached to a function declaration or +expression, i.e., `@callback` or `@function` (or its aliases `@func` or +`@method`) (including those associated with an `@interface`). + +See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) +section of our README for more on the expected format. + +||| +|---|---| +|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| +|Tags|`param`| +|Aliases|`arg`, `argument`| +|Recommended|true| +|Options|`contexts`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @param + */ +function quux (foo) { + +} +// Message: There must be an identifier after @param type. + +/** + * @param {string} + */ +function quux (foo) { + +} +// Message: There must be an identifier after @param tag. + +/** + * @param {string} + */ +function quux (foo) { + +} +// "jsdoc/require-param-name": ["error"|"warn", {"contexts":["any"]}] +// Message: There must be an identifier after @param tag. + +/** + * @function + * @param {string} + */ +// "jsdoc/require-param-name": ["error"|"warn", {"contexts":["any"]}] +// Message: There must be an identifier after @param tag. + +/** + * @callback + * @param {string} + */ +// "jsdoc/require-param-name": ["error"|"warn", {"contexts":["any"]}] +// Message: There must be an identifier after @param tag. + +/** + * @param foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}} +// Message: Unexpected tag `@param` +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @param foo + */ +function quux (foo) { + +} + +/** + * @param foo + */ +function quux (foo) { + +} +// "jsdoc/require-param-name": ["error"|"warn", {"contexts":["any"]}] + +/** + * @param {string} foo + */ +function quux (foo) { + +} + +/** + * @function + * @param + */ + +/** + * @callback + * @param + */ + +/** + * @param {Function} [processor=data => data] A function to run + */ +function processData(processor) { + return processor(data) +} + +/** Example with multi-line param type. +* +* @param {function( +* number +* )} cb Callback. +*/ +function example(cb) { + cb(42); +} +```` + diff --git a/docs/rules/require-param.md b/docs/rules/require-param.md new file mode 100644 index 000000000..3b81bd8f3 --- /dev/null +++ b/docs/rules/require-param.md @@ -0,0 +1,208 @@ + + +### require-param-type + +Requires that each `@param` tag has a `type` value. + +Will exempt destructured roots and their children if +`settings.exemptDestructuredRootsFromChecks` is set to `true` (e.g., +`@param props` will be exempted from requiring a type given +`function someFunc ({child1, child2})`). + + + +#### Options + + + +##### setDefaultDestructuredRootType + +Whether to set a default destructured root type. For example, you may wish +to avoid manually having to set the type for a `@param` +corresponding to a destructured root object as it is always going to be an +object. Uses `defaultDestructuredRootType` for the type string. Defaults to +`false`. + + + +##### defaultDestructuredRootType + +The type string to set by default for destructured roots. Defaults to "object". + + + +##### contexts + +Set this to an array of strings representing the AST context (or an object with +`context` and `comment` properties) where you wish the rule to be applied. +Overrides the default contexts (see below). Set to `"any"` if you want +the rule to apply to any jsdoc block throughout your files (as is necessary +for finding function blocks not attached to a function declaration or +expression, i.e., `@callback` or `@function` (or its aliases `@func` or +`@method`) (including those associated with an `@interface`). + +See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) +section of our README for more on the expected format. + +||| +|---|---| +|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| +|Tags|`param`| +|Aliases|`arg`, `argument`| +|Recommended|true| +|Options|`setDefaultDestructuredRootType`, `defaultDestructuredRootType`, `contexts`| +|Settings|`exemptDestructuredRootsFromChecks`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @param foo + */ +function quux (foo) { + +} +// Message: Missing JSDoc @param "foo" type. + +/** + * @param {a xxx + */ +function quux () { +} +// Message: Missing JSDoc @param "" type. + +/** + * @param foo + */ +function quux (foo) { + +} +// "jsdoc/require-param-type": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @param "foo" type. + +/** + * @function + * @param foo + */ +// "jsdoc/require-param-type": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @param "foo" type. + +/** + * @callback + * @param foo + */ +// "jsdoc/require-param-type": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @param "foo" type. + +/** + * @arg foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} +// Message: Missing JSDoc @arg "foo" type. + +/** + * @param foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}} +// Message: Unexpected tag `@param` + +/** + * @param {number} foo + * @param root + * @param {boolean} baz + */ +function quux (foo, {bar}, baz) { + +} +// "jsdoc/require-param-type": ["error"|"warn", {"setDefaultDestructuredRootType":true}] +// Message: Missing root type for @param. + +/** + * @param {number} foo + * @param root + * @param {boolean} baz + */ +function quux (foo, {bar}, baz) { + +} +// "jsdoc/require-param-type": ["error"|"warn", {"defaultDestructuredRootType":"Object","setDefaultDestructuredRootType":true}] +// Message: Missing root type for @param. + +/** + * @param {number} foo + * @param root + * @param {boolean} baz + */ +function quux (foo, {bar}, baz) { + +} +// "jsdoc/require-param-type": ["error"|"warn", {"setDefaultDestructuredRootType":false}] +// Message: Missing JSDoc @param "root" type. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * + */ +function quux (foo) { + +} + +/** + * @param {number} foo + */ +function quux (foo) { + +} + +/** + * @param {number} foo + */ +function quux (foo) { + +} +// "jsdoc/require-param-type": ["error"|"warn", {"contexts":["any"]}] + +/** + * @function + * @param foo + */ + +/** + * @callback + * @param foo + */ + +/** + * @param {number} foo + * @param root + * @param {boolean} baz + */ +function quux (foo, {bar}, baz) { + +} +// Settings: {"jsdoc":{"exemptDestructuredRootsFromChecks":true}} + +/** + * @param {number} foo + * @param root + * @param root.bar + */ +function quux (foo, {bar: {baz}}) { + +} +// Settings: {"jsdoc":{"exemptDestructuredRootsFromChecks":true}} +```` + diff --git a/docs/rules/require-property-description.md b/docs/rules/require-property-description.md new file mode 100644 index 000000000..f83b3dec9 --- /dev/null +++ b/docs/rules/require-property-description.md @@ -0,0 +1,112 @@ + + +### require-property + +Requires that all `@typedef` and `@namespace` tags have `@property` +when their type is a plain `object`, `Object`, or `PlainObject`. + +Note that any other type, including a subtype of object such as +`object`, will not be reported. + + + +#### Fixer + +The fixer for `require-property` will add an empty `@property`. + +||| +|---|---| +|Context|Everywhere| +|Tags|`typedef`, `namespace`| +|Recommended|true| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @typedef {object} SomeTypedef + */ +// Message: Missing JSDoc @property. + +class Test { + /** + * @typedef {object} SomeTypedef + */ + quux () {} +} +// Message: Missing JSDoc @property. + +/** + * @typedef {PlainObject} SomeTypedef + */ +// Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}} +// Message: Missing JSDoc @prop. + +/** + * @namespace {Object} SomeName + */ +// Message: Missing JSDoc @property. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * + */ + +/** + * @property + */ + +/** + * @typedef {Object} SomeTypedef + * @property {SomeType} propName Prop description + */ + +/** + * @typedef {object} SomeTypedef + * @prop {SomeType} propName Prop description + */ +// Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}} + +/** + * @typedef {object} SomeTypedef + * @property + * // arbitrary property content + */ + +/** + * @typedef {object} SomeTypedef + */ + +/** + * @typedef {string} SomeTypedef + */ + +/** + * @namespace {object} SomeName + * @property {SomeType} propName Prop description + */ + +/** + * @namespace {object} SomeName + * @property + * // arbitrary property content + */ + +/** + * @typedef {object} SomeTypedef + * @property someProp + * @property anotherProp This with a description + * @property {anotherType} yetAnotherProp This with a type and desc. + */ +function quux () { + +} +```` + diff --git a/docs/rules/require-property-name.md b/docs/rules/require-property-name.md new file mode 100644 index 000000000..c411634e9 --- /dev/null +++ b/docs/rules/require-property-name.md @@ -0,0 +1,73 @@ + + +### require-property-description + +Requires that each `@property` tag has a `description` value. + +||| +|---|---| +|Context|everywhere| +|Tags|`property`| +|Aliases|`prop`| +|Recommended|true| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @typedef {SomeType} SomeTypedef + * @property foo + */ +// Message: Missing JSDoc @property "foo" description. + +/** + * @typedef {SomeType} SomeTypedef + * @prop foo + */ +// Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}} +// Message: Missing JSDoc @prop "foo" description. + +/** + * @typedef {SomeType} SomeTypedef + * @property foo + */ +// Settings: {"jsdoc":{"tagNamePreference":{"property":false}}} +// Message: Unexpected tag `@property` +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @typedef {SomeType} SomeTypedef + */ + +/** + * @typedef {SomeType} SomeTypedef + * @property foo Foo. + */ + +/** + * @namespace {SomeType} SomeName + * @property foo Foo. + */ + +/** + * @class + * @property foo Foo. + */ + +/** + * Typedef with multi-line property type. + * + * @typedef {object} MyType + * @property {function( + * number + * )} numberEater Method which takes a number. + */ +```` + diff --git a/docs/rules/require-property-type.md b/docs/rules/require-property-type.md new file mode 100644 index 000000000..4873e2b09 --- /dev/null +++ b/docs/rules/require-property-type.md @@ -0,0 +1,64 @@ + + +### require-property-name + +Requires that all function `@property` tags have names. + +||| +|---|---| +|Context|everywhere| +|Tags|`property`| +|Aliases|`prop`| +|Recommended|true| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @typedef {SomeType} SomeTypedef + * @property + */ +// Message: There must be an identifier after @property type. + +/** + * @typedef {SomeType} SomeTypedef + * @property {string} + */ +// Message: There must be an identifier after @property tag. + +/** + * @typedef {SomeType} SomeTypedef + * @property foo + */ +// Settings: {"jsdoc":{"tagNamePreference":{"property":false}}} +// Message: Unexpected tag `@property` +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @typedef {SomeType} SomeTypedef + * @property foo + */ + +/** + * @typedef {SomeType} SomeTypedef + * @property {string} foo + */ + +/** + * @namespace {SomeType} SomeName + * @property {string} foo + */ + +/** + * @class + * @property {string} foo + */ +```` + diff --git a/docs/rules/require-property.md b/docs/rules/require-property.md new file mode 100644 index 000000000..c61845a37 --- /dev/null +++ b/docs/rules/require-property.md @@ -0,0 +1,64 @@ + + +### require-property-type + +Requires that each `@property` tag has a `type` value. + +||| +|---|---| +|Context|everywhere| +|Tags|`property`| +|Aliases|`prop`| +|Recommended|true| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @typedef {SomeType} SomeTypedef + * @property foo + */ +// Message: Missing JSDoc @property "foo" type. + +/** + * @typedef {SomeType} SomeTypedef + * @prop foo + */ +// Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}} +// Message: Missing JSDoc @prop "foo" type. + +/** + * @typedef {SomeType} SomeTypedef + * @property foo + */ +// Settings: {"jsdoc":{"tagNamePreference":{"property":false}}} +// Message: Unexpected tag `@property` +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @typedef {SomeType} SomeTypedef + */ + +/** + * @typedef {SomeType} SomeTypedef + * @property {number} foo + */ + +/** + * @namespace {SomeType} SomeName + * @property {number} foo + */ + +/** + * @class + * @property {number} foo + */ +```` + diff --git a/docs/rules/require-returns-check.md b/docs/rules/require-returns-check.md new file mode 100644 index 000000000..65ca0ab54 --- /dev/null +++ b/docs/rules/require-returns-check.md @@ -0,0 +1,1148 @@ + + +### require-returns + +Requires that returns are documented. + +Will also report if multiple `@returns` tags are present. + + + +#### Options + +- `checkConstructors` - A value indicating whether `constructor`s should + be checked for `@returns` tags. Defaults to `false`. +- `checkGetters` - Boolean to determine whether getter methods should + be checked for `@returns` tags. Defaults to `true`. +- `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the + document block avoids the need for a `@returns`. Defaults to an array + with `inheritdoc`. If you set this array, it will overwrite the default, + so be sure to add back `inheritdoc` if you wish its presence to cause + exemption of the rule. +- `forceRequireReturn` - Set to `true` to always insist on + `@returns` documentation regardless of implicit or explicit `return`'s + in the function. May be desired to flag that a project is aware of an + `undefined`/`void` return. Defaults to `false`. +- `forceReturnsWithAsync` - By default `async` functions that do not explicitly + return a value pass this rule as an `async` function will always return a + `Promise`, even if the `Promise` resolves to void. You can force all + `async` functions (including ones with an explicit `Promise` but no + detected non-`undefined` `resolve` value) to require `@return` + documentation by setting `forceReturnsWithAsync` to `true` on the options + object. This may be useful for flagging that there has been consideration + of return type. Defaults to `false`. +- `contexts` - Set this to an array of strings representing the AST context + (or an object with `context` and `comment` properties) where you wish + the rule to be applied. + Overrides the default contexts (see below). Set to `"any"` if you want + the rule to apply to any jsdoc block throughout your files (as is necessary + for finding function blocks not attached to a function declaration or + expression, i.e., `@callback` or `@function` (or its aliases `@func` or + `@method`) (including those associated with an `@interface`). This + rule will only apply on non-default contexts when there is such a tag + present and the `forceRequireReturn` option is set or if the + `forceReturnsWithAsync` option is set with a present `@async` tag + (since we are not checking against the actual `return` values in these + cases). + +| | | +| -------- | ------- | +| Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | +| Tags | `returns` | +| Aliases | `return` | +|Recommended|true| +| Options | `checkConstructors`, `checkGetters`, `contexts`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync` | +| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * + */ +function quux (foo) { + + return foo; +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +const foo = () => ({ + bar: 'baz' +}) +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +const foo = bar=>({ bar }) +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +const foo = bar => bar.baz() +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux (foo) { + + return foo; +} +// Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}} +// Message: Missing JSDoc @return declaration. + +/** + * + */ +async function quux() { +} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +const quux = async function () {} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +const quux = async () => {} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +async function quux () {} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { +} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { +} +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * @function + */ +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * @callback + */ +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. + +const language = { + /** + * @param {string} name + */ + get name() { + return this._name; + } +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +async function quux () { +} +// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * @function + * @async + */ +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceReturnsWithAsync":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * @callback + * @async + */ +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceReturnsWithAsync":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * @returns {undefined} + * @returns {void} + */ +function quux (foo) { + + return foo; +} +// Message: Found more than one @returns declaration. + +/** + * @returns + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"returns":false}}} +// Message: Unexpected tag `@returns` + +/** + * @param foo + */ +function quux (foo) { + return 'bar'; +} +// "jsdoc/require-returns": ["error"|"warn", {"exemptedBy":["notPresent"]}] +// Message: Missing JSDoc @returns declaration. + +/** + * @param {array} a + */ +async function foo(a) { + return; +} +// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * @param {array} a + */ +async function foo(a) { + return Promise.all(a); +} +// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] +// Message: Missing JSDoc @returns declaration. + +class foo { + /** gets bar */ + get bar() { + return 0; + } +} +// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":true}] +// Message: Missing JSDoc @returns declaration. + +class TestClass { + /** + * + */ + constructor() { + return new Map(); + } +} +// "jsdoc/require-returns": ["error"|"warn", {"checkConstructors":true}] +// Message: Missing JSDoc @returns declaration. + +class TestClass { + /** + * + */ + get Test() { + return 0; + } +} +// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":true}] +// Message: Missing JSDoc @returns declaration. + +class quux { + /** + * + */ + quux () { + } +} +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux (foo) { + + return new Promise(function (resolve, reject) { + resolve(foo); + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux (foo) { + + return new Promise(function (resolve, reject) { + setTimeout(() => { + resolve(true); + }); + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux (foo) { + + return new Promise(function (resolve, reject) { + foo(resolve); + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + while(true) { + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + do { + resolve(true); + } + while(true) + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + if (true) { + resolve(true); + } + return; + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + if (true) { + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + var a = {}; + return new Promise((resolve, reject) => { + with (a) { + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + var a = {}; + return new Promise((resolve, reject) => { + try { + resolve(true); + } catch (err) {} + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + var a = {}; + return new Promise((resolve, reject) => { + try { + } catch (err) { + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + var a = {}; + return new Promise((resolve, reject) => { + try { + } catch (err) { + } finally { + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + var a = {}; + return new Promise((resolve, reject) => { + switch (a) { + case 'abc': + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + if (true) { + resolve(); + } else { + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + for (let i = 0; i < 5 ; i++) { + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + for (const i of obj) { + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + for (const i in obj) { + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + if (true) { + return; + } else { + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + function a () { + resolve(true); + } + a(); + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise(); +} +// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +async function quux () { + return new Promise(); +} +// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +async function quux () { + return new Promise((resolve, reject) => {}); +} +// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] +// Message: Missing JSDoc @returns declaration. + +export class A { + /** + * Description. + */ + public f(): string { + return ""; + } +} + +export interface B { + /** + * Description. + */ + f(): string; + + /** + * Description. + */ + g: () => string; + + /** + * Description. + */ + h(): void; + + /** + * Description. + */ + i: () => void; +} + +/** + * Description. + */ +export function f(): string { + return ""; +} +// "jsdoc/require-returns": ["error"|"warn", {"contexts":[":not(BlockStatement) > FunctionDeclaration","MethodDefinition","TSMethodSignature","TSPropertySignature > TSTypeAnnotation > TSFunctionType"]}] +// Message: Missing JSDoc @returns declaration. + +/** + * @param ms time in millis + */ +export const sleep = (ms: number) => + new Promise((res) => setTimeout(res, ms)); +// Message: Missing JSDoc @returns declaration. + +/** + * @param ms time in millis + */ +export const sleep = (ms: number) => { + return new Promise((res) => setTimeout(res, ms)); +}; +// Message: Missing JSDoc @returns declaration. + +/** + * Reads a test fixture. + */ +export function readFixture(path: string): Promise; +// Message: Missing JSDoc @returns declaration. + +/** + * Reads a test fixture. + */ +export function readFixture(path: string): void; +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * Reads a test fixture. + */ +export function readFixture(path: string); +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * @param {array} a + */ +async function foo(a) { + return Promise.all(a); +} +// Message: Missing JSDoc @returns declaration. + +/** + * Description. + */ +export default async function demo() { + return true; +} +// Message: Missing JSDoc @returns declaration. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @returns Foo. + */ +function quux () { + + return foo; +} + +/** + * @returns Foo. + */ +function quux () { + + return foo; +} +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"]}] + +/** + * + */ +function quux () { +} + +/** + * + */ +function quux (bar) { + bar.filter(baz => { + return baz.corge(); + }) +} + +/** + * @returns Array + */ +function quux (bar) { + return bar.filter(baz => { + return baz.corge(); + }) +} + +/** + * @returns Array + */ +const quux = (bar) => bar.filter(({ corge }) => corge()) + +/** + * @inheritdoc + */ +function quux (foo) { +} + +/** + * @override + */ +function quux (foo) { +} + +/** + * @constructor + */ +function quux (foo) { + return true; +} + +/** + * @implements + */ +function quux (foo) { + return true; +} + +/** + * @override + */ +function quux (foo) { + + return foo; +} + +/** + * @class + */ +function quux (foo) { + return true; +} + +/** + * @constructor + */ +function quux (foo) { + +} + +/** + * @returns {object} + */ +function quux () { + + return {a: foo}; +} + +/** + * @returns {object} + */ +const quux = () => ({a: foo}); + +/** + * @returns {object} + */ +const quux = () => { + return {a: foo} +}; + +/** + * @returns {void} + */ +function quux () { +} + +/** + * @returns {void} + */ +const quux = () => { + +} + +/** + * @returns {undefined} + */ +function quux () { +} + +/** + * @returns {undefined} + */ +const quux = () => { + +} + +/** + * + */ +function quux () { +} + +/** + * + */ +const quux = () => { + +} + +class Foo { + /** + * + */ + constructor () { + } +} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] + +const language = { + /** + * @param {string} name + */ + set name(name) { + this._name = name; + } +} + +/** + * @returns {void} + */ +function quux () { +} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] + +/** + * @returns {void} + */ +function quux () { + return undefined; +} + +/** + * @returns {void} + */ +function quux () { + return undefined; +} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] + +/** + * @returns {void} + */ +function quux () { + return; +} + +/** + * @returns {void} + */ +function quux () { +} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] + +/** + * @returns {void} + */ +function quux () { + return; +} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] + +/** @type {RequestHandler} */ +function quux (req, res , next) { + return; +} + +/** + * @returns {Promise} + */ +async function quux () { +} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] + +/** + * @returns {Promise} + */ +async function quux () { +} +// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] + +/** + * + */ +async function quux () {} + +/** + * + */ +const quux = async function () {} + +/** + * + */ +const quux = async () => {} + +/** foo class */ +class foo { + /** foo constructor */ + constructor () { + // => + this.bar = true; + } +} + +export default foo; + +/** + * + */ +function quux () { +} +// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] + +/** + * @type {MyCallback} + */ +function quux () { + +} +// "jsdoc/require-returns": ["error"|"warn", {"exemptedBy":["type"]}] + +/** + * @param {array} a + */ +async function foo(a) { + return; +} + +/** + * + */ +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"]}] + +/** + * @async + */ +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"]}] + +/** + * @function + */ +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] + +/** + * @callback + */ +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] + +/** + * @function + * @async + */ +// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] + +/** + * @callback + * @async + */ +// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] + +/** + * @function + */ +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceReturnsWithAsync":true}] + +/** + * @callback + */ +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceReturnsWithAsync":true}] + +class foo { + get bar() { + return 0; + } +} +// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":false}] + +class foo { + /** @returns zero */ + get bar() { + return 0; + } +} +// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":true}] + +class foo { + /** @returns zero */ + get bar() { + return 0; + } +} +// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":false}] + +class TestClass { + /** + * + */ + constructor() { } +} + +class TestClass { + /** + * @returns A map. + */ + constructor() { + return new Map(); + } +} + +class TestClass { + /** + * + */ + constructor() { } +} +// "jsdoc/require-returns": ["error"|"warn", {"checkConstructors":false}] + +class TestClass { + /** + * + */ + get Test() { } +} + +class TestClass { + /** + * @returns A number. + */ + get Test() { + return 0; + } +} + +class TestClass { + /** + * + */ + get Test() { + return 0; + } +} +// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":false}] + +/** + * + */ +function quux (foo) { + + return new Promise(function (resolve, reject) { + resolve(); + }); +} + +/** + * + */ +function quux (foo) { + + return new Promise(function (resolve, reject) { + setTimeout(() => { + resolve(); + }); + }); +} + +/** + * + */ +function quux (foo) { + + return new Promise(function (resolve, reject) { + foo(); + }); +} + +/** + * + */ +function quux (foo) { + + return new Promise(function (resolve, reject) { + abc((resolve) => { + resolve(true); + }); + }); +} + +/** + * + */ +function quux (foo) { + + return new Promise(function (resolve, reject) { + abc(function (resolve) { + resolve(true); + }); + }); +} + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + if (true) { + resolve(); + } + }); + return; +} + +/** + * + */ +function quux () { + return new Promise(); +} + +/** + * Description. + */ +async function foo() { + return new Promise(resolve => resolve()); +} + +/** + * @param ms time in millis + */ +export const sleep = (ms: number) => + new Promise((res) => setTimeout(res, ms)); + +/** + * @param ms time in millis + */ +export const sleep = (ms: number) => { + return new Promise((res) => setTimeout(res, ms)); +}; + +/** + * Reads a test fixture. + * + * @returns The file contents as buffer. + */ +export function readFixture(path: string): Promise; + +/** + * Reads a test fixture. + * + * @returns {void}. + */ +export function readFixture(path: string): void; + +/** + * Reads a test fixture. + */ +export function readFixture(path: string): void; + +/** + * Reads a test fixture. + */ +export function readFixture(path: string); +```` + diff --git a/docs/rules/require-returns-description.md b/docs/rules/require-returns-description.md new file mode 100644 index 000000000..6195c6153 --- /dev/null +++ b/docs/rules/require-returns-description.md @@ -0,0 +1,1036 @@ + + +### require-returns-check + +Requires a return statement (or non-`undefined` Promise resolve value) in +function bodies if a `@returns` tag (without a `void` or `undefined` type) +is specified in the function's JSDoc comment. + +Will also report `@returns {void}` and `@returns {undefined}` if `exemptAsync` +is set to `false` and a non-`undefined` value is returned or a resolved value +is found. Also reports if `@returns {never}` is discovered with a return value. + +Will also report if multiple `@returns` tags are present. + + + +#### Options + +- `exemptGenerators`- Because a generator might be labeled as having a + `IterableIterator` `@returns` value (along with an iterator type + corresponding to the type of any `yield` statements), projects might wish to + leverage `@returns` in generators even without a` return` statement. This + option is therefore `true` by default in `typescript` mode (in "jsdoc" mode, + one might be more likely to take advantage of `@yields`). Set it to `false` + if you wish for a missing `return` to be flagged regardless. +- `exemptAsync` - By default, functions which return a `Promise` that are not + detected as resolving with a non-`undefined` value and `async` functions + (even ones that do not explicitly return a value, as these are returning a + `Promise` implicitly) will be exempted from reporting by this rule. + If you wish to insist that only `Promise`'s which resolve to + non-`undefined` values or `async` functions with explicit `return`'s will + be exempted from reporting (i.e., that `async` functions can be reported + if they lack an explicit (non-`undefined`) `return` when a `@returns` is + present), you can set `exemptAsync` to `false` on the options object. +- `reportMissingReturnForUndefinedTypes` - If `true` and no return or + resolve value is found, this setting will even insist that reporting occur + with `void` or `undefined` (including as an indicated `Promise` type). + Unlike `require-returns`, with this option in the rule, one can + *discourage* the labeling of `undefined` types. Defaults to `false`. + +||| +|---|---| +|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| +|Tags|`returns`| +|Aliases|`return`| +|Options|`exemptAsync`, `reportMissingReturnForUndefinedTypes`| +|Recommended|true| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @returns + */ +function quux (foo) { + +} +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @return + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}} +// Message: JSDoc @return declaration present but return expression not available in function. + +/** + * @returns + */ +const quux = () => {} +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @returns {undefined} Foo. + * @returns {String} Foo. + */ +function quux () { + + return foo; +} +// Message: Found more than one @returns declaration. + +const language = { + /** + * @param {string} name + * @returns {string} + */ + get name() { + this._name = name; + } +} +// Message: JSDoc @returns declaration present but return expression not available in function. + +class Foo { + /** + * @returns {string} + */ + bar () { + } +} +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @returns + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"returns":false}}} +// Message: Unexpected tag `@returns` + +/** + * @returns {string} + */ +function f () { + function g() { + return 'foo' + } + + () => { + return 5 + } +} +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @returns {Promise} + */ +async function quux() {} +// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @returns {IterableIterator} + */ +function * quux() {} +// Settings: {"jsdoc":{"mode":"jsdoc"}} +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @returns {IterableIterator} + */ +function * quux() {} +// Settings: {"jsdoc":{"mode":"typescript"}} +// "jsdoc/require-returns-check": ["error"|"warn", {"exemptGenerators":false}] +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @returns {Promise} + */ +function quux() { + return new Promise((resolve, reject) => {}) +} +// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @returns {Promise} + */ +function quux() { + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve(); + }); + }) +} +// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * Description. + * @returns {string} + */ +async function foo() { + return new Promise(resolve => resolve()); +} +// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * Description. + * @returns {void} + */ +async function foo() { + return new Promise(resolve => resolve()); +} +// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false,"reportMissingReturnForUndefinedTypes":true}] +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @returns { void } Foo. + */ +function quux () {} +// "jsdoc/require-returns-check": ["error"|"warn", {"reportMissingReturnForUndefinedTypes":true}] +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @returns {never} Foo. + */ +function quux () { + return undefined; +} +// Message: JSDoc @returns declaration set with "never" but return expression is present in function. + +/** + * @returns {never} + */ +function quux (foo) { + return foo; +} +// Message: JSDoc @returns declaration set with "never" but return expression is present in function. + +/** + * Reads a test fixture. + * + * @param path The path to resolve relative to the fixture base. It will be normalized for the + * operating system. + * + * @returns The file contents as buffer. + */ +export function readFixture(path: string): void; +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * Reads a test fixture. + * + * @param path The path to resolve relative to the fixture base. It will be normalized for the + * operating system. + * + * @returns The file contents as buffer. + */ +export function readFixture(path: string); +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @returns {SomeType} + */ +function quux (path) { + if (true) { + return; + } + return 15; +}; +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * Reads a test fixture. + * + * @param path The path to resolve relative to the fixture base. It will be normalized for the + * operating system. + * + * @returns The file contents as buffer. + */ +export function readFixture(path: string): void { + return; +}; +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @returns {true} + */ +function quux () { + if (true) { + return true; + } +} +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @returns {true} + */ +function quux () { + if (true) { + } else { + return; + } +} +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @returns {true} + */ +function quux (someVar) { + switch (someVar) { + case 1: + return true; + case 2: + return; + } +} +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @returns {boolean} + */ +const quux = (someVar) => { + if (someVar) { + return true; + } +}; +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @returns {true} + */ +function quux () { + try { + return true; + } catch (error) { + } +} +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @returns {true} + */ +function quux () { + try { + return true; + } catch (error) { + return true; + } finally { + return; + } +} +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @returns {true} + */ +function quux () { + if (true) { + throw new Error('abc'); + } + + throw new Error('def'); +} +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @returns {SomeType} Baz. + */ +function foo() { + switch (true) { + default: + switch (false) { + default: return; + } + return "baz"; + } +}; +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @returns {SomeType} Baz. + */ +function foo() { + switch (true) { + default: + switch (false) { + default: return; + } + return "baz"; + } +}; +// Message: JSDoc @returns declaration present but return expression not available in function. + +/** + * @returns {number} + */ +function foo() { + let n = 1; + while (n > 0.5) { + n = Math.random(); + if (n < 0.2) { + return n; + } + } +} +// Message: JSDoc @returns declaration present but return expression not available in function. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @returns Foo. + */ +function quux () { + + return foo; +} + +/** + * @returns {string} Foo. + */ +function quux () { + + return foo; +} + +/** + * @returns {string} Foo. + */ +function quux () { + + return foo; +} + +/** + * + */ +function quux () { +} + +/** + * @returns {SomeType} Foo. + */ +const quux = () => foo; + +/** + * @returns {undefined} Foo. + */ +function quux () {} + +/** + * @returns { void } Foo. + */ +function quux () {} + +/** + * @returns {Promise} + */ +async function quux() {} + +/** + * @returns {Promise} + */ +const quux = async function () {} + +/** + * @returns {Promise} + */ +const quux = async () => {} + +/** + * @returns Foo. + * @abstract + */ +function quux () { + throw new Error('must be implemented by subclass!'); +} + +/** + * @returns Foo. + * @virtual + */ +function quux () { + throw new Error('must be implemented by subclass!'); +} + +/** + * @returns Foo. + * @constructor + */ +function quux () { +} + +/** + * @interface + */ +class Foo { + /** + * @returns {string} + */ + bar () { + } +} + +/** + * @record + */ +class Foo { + /** + * @returns {string} + */ + bar () { + } +} +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * @returns {undefined} Foo. + */ +function quux () { +} + +/** + * @returns {void} Foo. + */ +function quux () { +} + +/** + * @returns {void} Foo. + */ +function quux () { + return undefined; +} + +/** + * @returns {never} Foo. + */ +function quux () { +} + +/** + * @returns {void} Foo. + */ +function quux () { + return; +} + +/** + * + */ +function quux () { + return undefined; +} + +/** + * + */ +function quux () { + return; +} + +/** + * @returns {true} + */ +function quux () { + try { + return true; + } catch (err) { + } + return true; +} + +/** + * @returns {true} + */ +function quux () { + try { + } finally { + return true; + } + return true; +} + +/** + * @returns {true} + */ +function quux () { + try { + return true; + } catch (err) { + } + return true; +} + +/** + * @returns {true} + */ +function quux () { + try { + something(); + } catch (err) { + return true; + } + return true; +} + +/** + * @returns {true} + */ +function quux () { + switch (true) { + case 'abc': + return true; + } + return true; +} + +/** + * @returns {true} + */ +function quux () { + switch (true) { + case 'abc': + return true; + } + return true; +} + +/** + * @returns {true} + */ +function quux () { + for (const i of abc) { + return true; + } + return true; +} + +/** + * @returns {true} + */ +function quux () { + for (const a in b) { + return true; + } +} + +/** + * @returns {true} + */ +function quux () { + for (const a of b) { + return true; + } +} + +/** + * @returns {true} + */ +function quux () { + loop: for (const a of b) { + return true; + } +} + +/** + * @returns {true} + */ +function quux () { + for (let i=0; i} + */ +async function quux() { + return 5; +} + +/** + * @returns {Promise} + */ +async function quux() { + return 5; +} +// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] + +/** + * @returns {Promise} + */ +function quux() { + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve(true); + }); + }) +} +// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] + +/** + * Description. + * @returns {void} + */ +async function foo() { + return new Promise(resolve => resolve()); +} +// "jsdoc/require-returns-check": ["error"|"warn", {"reportMissingReturnForUndefinedTypes":true}] + +/** + * @returns { void } Foo. + */ +function quux () { + return undefined; +} +// "jsdoc/require-returns-check": ["error"|"warn", {"reportMissingReturnForUndefinedTypes":true}] + +/** + * @returns { string } Foo. + */ +function quux () { + return 'abc'; +} +// "jsdoc/require-returns-check": ["error"|"warn", {"reportMissingReturnForUndefinedTypes":true}] + +/** + * @returns {IterableIterator} + */ +function * quux() {} +// Settings: {"jsdoc":{"mode":"typescript"}} + +/** + * @returns {IterableIterator} + */ +function * quux() {} +// Settings: {"jsdoc":{"mode":"jsdoc"}} +// "jsdoc/require-returns-check": ["error"|"warn", {"exemptGenerators":true}] + +/** + * @param {unknown} val + * @returns { asserts val is number } + */ +function assertNumber(val) { + assert(typeof val === 'number'); +} + +/** + * Reads a test fixture. + * + * @param path The path to resolve relative to the fixture base. It will be normalized for the + * operating system. + * + * @returns The file contents as buffer. + */ +export function readFixture(path: string): Promise; + +/** + * Reads a test fixture. + * + * @param path The path to resolve relative to the fixture base. It will be normalized for the + * operating system. + * + * @returns {SomeType} The file contents as buffer. + */ +export function readFixture(path: string): Promise; + +/** + * Reads a test fixture. + * + * @param path The path to resolve relative to the fixture base. It will be normalized for the + * operating system. + * + * @returns The file contents as buffer. + */ +export function readFixture(path: string): Promise { + return new Promise(() => {}); +} + +/** + * Reads a test fixture. + * + * @param path The path to resolve relative to the fixture base. It will be normalized for the + * operating system. + * + * @returns {void} The file contents as buffer. + */ +export function readFixture(path: string); + +/** + * @returns {SomeType} + */ +function quux (path) { + if (true) { + return 5; + } + return 15; +}; + +/** + * @returns {SomeType} Foo. + */ +const quux = () => new Promise((resolve) => { + resolve(3); +}); + +/** + * @returns {SomeType} Foo. + */ +const quux = function () { + return new Promise((resolve) => { + resolve(3); + }); +}; + +/** + * @returns {true} + */ +function quux () { + if (true) { + return true; + } + + throw new Error('Fail'); +} + +/** + * @returns Baz. + */ +function foo() { + switch (true) { + default: + switch (false) { + default: break; + } + return "baz"; + } +}; + +/** + * Return a V1 style query identifier. + * + * @param {string} id - The query identifier. + * @returns {string} V1 style query identifier. + */ +function v1QueryId(id) { + switch (id) { + case 'addq': + case 'aliq': + case 'locq': + return id.substring(3); + case 'lost': + return id.substring(4); + default: + return id; + } +} + +/** + * Parses the required header fields for the given SIP message. + * + * @param {string} logPrefix - The log prefix. + * @param {string} sipMessage - The SIP message. + * @param {string[]} headers - The header fields to be parsed. + * @returns {object} Object with parsed header fields. + */ +function parseSipHeaders(logPrefix, sipMessage, headers) { + try { + return esappSip.parseHeaders(sipMessage, headers); + } catch (err) { + logger.error(logPrefix, 'Failed to parse'); + return {}; + } +} + +/** + * @returns {true} + */ +function quux () { + try { + } catch (error) { + } finally { + return true; + } +} + +/** Returns true. + * + * @returns {boolean} true + */ +function getTrue() { + try { + return true; + } finally { + console.log('returning...'); + } +} + +/** + * Maybe return a boolean. + * @returns {boolean|void} true, or undefined. + */ +function maybeTrue() { + if (Math.random() > 0.5) { + return true; + } +} + +/** + * @param {AST} astNode + * @returns {AST} + */ +const getTSFunctionComment = function (astNode) { + switch (greatGrandparent.type) { + case 'VariableDeclarator': + if (greatGreatGrandparent.type === 'VariableDeclaration') { + return greatGreatGrandparent; + } + + default: + return astNode; + } +}; + +const f = + /** + * Description. + * + * @returns Result. + */ + () => { + return function () {}; + }; + +/** + * Description. + * + * @returns Result. + */ +export function f(): string { + return ""; + + interface I {} +} + +/** + * @param {boolean} bar A fun variable. + * @returns {*} Anything at all! + */ +function foo( bar ) { + if ( bar ) { + return functionWithUnknownReturnType(); + } +} + +/** + * @returns Baz. + */ +function foo() { + switch (true) { + default: + switch (false) { + default: return; + } + return "baz"; + } +}; + +/** + * @returns Baz. + */ +function foo() { + switch (true) { + default: + switch (false) { + default: return; + } + return "baz"; + } +}; + +/** + * @returns + */ +const quux = (someVar) => { + if (someVar) { + return true; + } +}; + +/** + * @returns {number} + */ +function foo() { + while (true) { + const n = Math.random(); + if (n < 0.5) { + return n; + } + } +} +```` + diff --git a/docs/rules/require-returns-type.md b/docs/rules/require-returns-type.md new file mode 100644 index 000000000..a9d46b8ea --- /dev/null +++ b/docs/rules/require-returns-type.md @@ -0,0 +1,164 @@ + + +### require-returns-description + +Requires that the `@returns` tag has a `description` value. The error +will not be reported if the return value is `void` or `undefined` +or if it is `Promise` or `Promise`. + + + +#### Options + + + +##### contexts + +Set this to an array of strings representing the AST context (or an object with +`context` and `comment` properties) where you wish the rule to be applied. +Overrides the default contexts (see below). Set to `"any"` if you want +the rule to apply to any jsdoc block throughout your files (as is necessary +for finding function blocks not attached to a function declaration or +expression, i.e., `@callback` or `@function` (or its aliases `@func` or +`@method`) (including those associated with an `@interface`). + +See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) +section of our README for more on the expected format. + +||| +|---|---| +|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| +|Tags|`returns`| +|Aliases|`return`| +|Recommended|true| +|Options|`contexts`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @returns + */ +function quux (foo) { + +} +// Message: Missing JSDoc @returns description. + +/** + * @returns {string} + */ +function quux (foo) { + +} +// Message: Missing JSDoc @returns description. + +/** + * @returns {string} + */ +function quux (foo) { + +} +// "jsdoc/require-returns-description": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @returns description. + +/** + * @function + * @returns {string} + */ +// "jsdoc/require-returns-description": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @returns description. + +/** + * @callback + * @returns {string} + */ +// "jsdoc/require-returns-description": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @returns description. + +/** + * @return + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}} +// Message: Missing JSDoc @return description. + +/** + * @returns + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"returns":false}}} +// Message: Unexpected tag `@returns` +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * + */ +function quux () { + +} + +/** + * @returns Foo. + */ +function quux () { + +} + +/** + * @returns Foo. + */ +function quux () { + +} +// "jsdoc/require-returns-description": ["error"|"warn", {"contexts":["any"]}] + +/** + * @returns {undefined} + */ +function quux () { + +} + +/** + * @returns {void} + */ +function quux () { + +} + +/** + * @returns {Promise} + */ +function quux () { + +} + +/** + * @returns {Promise} + */ +function quux () { + +} + +/** + * @function + * @returns + */ + +/** + * @callback + * @returns + */ +```` + diff --git a/docs/rules/require-returns.md b/docs/rules/require-returns.md new file mode 100644 index 000000000..b3fd7939a --- /dev/null +++ b/docs/rules/require-returns.md @@ -0,0 +1,127 @@ + + +### require-returns-type + +Requires that `@returns` tag has `type` value. + + + +#### Options + + + +##### contexts + +Set this to an array of strings representing the AST context (or an object with +`context` and `comment` properties) where you wish the rule to be applied. +Overrides the default contexts (see below). Set to `"any"` if you want +the rule to apply to any jsdoc block throughout your files (as is necessary +for finding function blocks not attached to a function declaration or +expression, i.e., `@callback` or `@function` (or its aliases `@func` or +`@method`) (including those associated with an `@interface`). + +See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) +section of our README for more on the expected format. + +||| +|---|---| +|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| +|Tags|`returns`| +|Aliases|`return`| +|Recommended|true| +|Options|`contexts`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @returns + */ +function quux () { + +} +// Message: Missing JSDoc @returns type. + +/** + * @returns Foo. + */ +function quux () { + +} +// Message: Missing JSDoc @returns type. + +/** + * @returns Foo. + */ +function quux () { + +} +// "jsdoc/require-returns-type": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @returns type. + +/** + * @function + * @returns Foo. + */ +// "jsdoc/require-returns-type": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @returns type. + +/** + * @callback + * @returns Foo. + */ +// "jsdoc/require-returns-type": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @returns type. + +/** + * @return Foo. + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}} +// Message: Missing JSDoc @return type. + +/** + * @returns + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"returns":false}}} +// Message: Unexpected tag `@returns` +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @returns {number} + */ +function quux () { + +} + +/** + * @returns {number} + */ +function quux () { + +} +// "jsdoc/require-returns-type": ["error"|"warn", {"contexts":["any"]}] + +/** + * @function + * @returns Foo. + */ + +/** + * @callback + * @returns Foo. + */ +```` + diff --git a/docs/rules/require-throws.md b/docs/rules/require-throws.md new file mode 100644 index 000000000..34403b5ab --- /dev/null +++ b/docs/rules/require-throws.md @@ -0,0 +1,310 @@ + + +### require-throws + +Requires that throw statements are documented. + +Note that since throw statements within async functions end up as rejected +Promises, they are not considered as throw statements for the purposes of this +rule. See [issue 755](https://github.com/gajus/eslint-plugin-jsdoc/issues/755) +for our desire for a separate tag to document rejection types and see +[this discussion](https://stackoverflow.com/questions/50071115/typescript-promise-rejection-type) +on why TypeScript doesn't offer such a feature. + + + +#### Options + +- `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the + document block avoids the need for a `@throws`. Defaults to an array + with `inheritdoc`. If you set this array, it will overwrite the default, + so be sure to add back `inheritdoc` if you wish its presence to cause + exemption of the rule. +- `contexts` - Set this to an array of strings representing the AST context + (or an object with `context` and `comment` properties) where you wish + the rule to be applied. + Overrides the default contexts (see below). Set to `"any"` if you want + the rule to apply to any jsdoc block throughout your files (as is necessary + for finding function blocks not attached to a function declaration or + expression, i.e., `@callback` or `@function` (or its aliases `@func` or + `@method`) (including those associated with an `@interface`). + +```js +'jsdoc/require-throws': 'error', +``` + +| | | +| -------- | --- | +| Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | +| Tags | `throws` | +| Aliases | `exception` | +|Recommended|true| +| Options | `contexts`, `exemptedBy` | +| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * + */ +function quux (foo) { + throw new Error('err') +} +// Message: Missing JSDoc @throws declaration. + +/** + * + */ +const quux = function (foo) { + throw new Error('err') +} +// Message: Missing JSDoc @throws declaration. + +/** + * + */ +const quux = (foo) => { + throw new Error('err') +} +// Message: Missing JSDoc @throws declaration. + +/** + * + */ +function quux (foo) { + while(true) { + throw new Error('err') + } +} +// Message: Missing JSDoc @throws declaration. + +/** + * + */ +function quux (foo) { + do { + throw new Error('err') + } while(true) +} +// Message: Missing JSDoc @throws declaration. + +/** + * + */ +function quux (foo) { + for(var i = 0; i <= 10; i++) { + throw new Error('err') + } +} +// Message: Missing JSDoc @throws declaration. + +/** + * + */ +function quux (foo) { + for(num in [1,2,3]) { + throw new Error('err') + } +} +// Message: Missing JSDoc @throws declaration. + +/** + * + */ +function quux (foo) { + for(const num of [1,2,3]) { + throw new Error('err') + } +} +// Message: Missing JSDoc @throws declaration. + +/** + * + */ +function quux (foo) { + for(const index in [1,2,3]) { + throw new Error('err') + } +} +// Message: Missing JSDoc @throws declaration. + +/** + * + */ +function quux (foo) { + with(foo) { + throw new Error('err') + } +} +// Message: Missing JSDoc @throws declaration. + +/** + * + */ +function quux (foo) { + if (true) { + throw new Error('err') + } +} +// Message: Missing JSDoc @throws declaration. + +/** + * + */ +function quux (foo) { + if (false) { + // do nothing + } else { + throw new Error('err') + } +} +// Message: Missing JSDoc @throws declaration. + +/** + * + */ +function quux (foo) { + try { + throw new Error('err') + } catch(e) { + throw new Error(e.message) + } +} +// Message: Missing JSDoc @throws declaration. + +/** + * + */ +function quux (foo) { + try { + // do nothing + } finally { + throw new Error(e.message) + } +} +// Message: Missing JSDoc @throws declaration. + +/** + * + */ +function quux (foo) { + const a = 'b' + switch(a) { + case 'b': + throw new Error('err') + } +} +// Message: Missing JSDoc @throws declaration. + +/** + * @throws + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"throws":false}}} +// Message: Unexpected tag `@throws` + +/** + * + */ +const directThrowAfterArrow = (b) => { + const a = () => {}; + if (b) { + throw new Error('oops') + } + return a; +}; +// Message: Missing JSDoc @throws declaration. + +/** + * @throws {never} + */ +function quux (foo) { + throw new Error('err') +} +// Message: JSDoc @throws declaration set to "never" but throw value found. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @throws An error. + */ +function quux () { + throw new Error('err') +} + +/** + * + */ +function quux (foo) { + try { + throw new Error('err') + } catch(e) {} +} + +/** + * @throws {object} + */ +function quux (foo) { + throw new Error('err') +} + +/** + * @inheritdoc + */ +function quux (foo) { + throw new Error('err') +} + +/** + * @abstract + */ +function quux (foo) { + throw new Error('err') +} + +/** + * + */ +function quux (foo) { +} + +/** + * @type {MyCallback} + */ +function quux () { + throw new Error('err') +} +// "jsdoc/require-throws": ["error"|"warn", {"exemptedBy":["type"]}] + +/** + * + */ +const itself = (n) => n; + +/** + * Not tracking on nested function + */ +const nested = () => () => {throw new Error('oops');}; + +/** + */ +async function foo() { + throw Error("bar"); +} + +/** + * @throws {never} + */ +function quux (foo) { +} +```` + diff --git a/docs/rules/require-yields-check.md b/docs/rules/require-yields-check.md new file mode 100644 index 000000000..1484b4ead --- /dev/null +++ b/docs/rules/require-yields-check.md @@ -0,0 +1,807 @@ + + +### require-yields + +Requires that yields are documented. + +Will also report if multiple `@yields` tags are present. + +See the `next`, `forceRequireNext`, and `nextWithGeneratorTag` options for an +option to expect a non-standard `@next` tag. + + + +#### Options + +- `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the + document block avoids the need for a `@yields`. Defaults to an array + with `inheritdoc`. If you set this array, it will overwrite the default, + so be sure to add back `inheritdoc` if you wish its presence to cause + exemption of the rule. +- `forceRequireYields` - Set to `true` to always insist on + `@yields` documentation for generators even if there are only + expressionless `yield` statements in the function. May be desired to flag + that a project is aware of an `undefined`/`void` yield. Defaults to + `false`. +- `contexts` - Set this to an array of strings representing the AST context + (or an object with `context` and `comment` properties) where you wish + the rule to be applied. + Overrides the default contexts (see below). Set to `"any"` if you want + the rule to apply to any jsdoc block throughout your files (as is necessary + for finding function blocks not attached to a function declaration or + expression, i.e., `@callback` or `@function` (or its aliases `@func` or + `@method`) (including those associated with an `@interface`). This + rule will only apply on non-default contexts when there is such a tag + present and the `forceRequireYields` option is set or if the + `withGeneratorTag` option is set with a present `@generator` tag + (since we are not checking against the actual `yield` values in these + cases). +- `withGeneratorTag` - If a `@generator` tag is present on a block, require + `@yields`/`@yield`. Defaults to `true`. See `contexts` to `any` if you want + to catch `@generator` with `@callback` or such not attached to a function. +- `next` - If `true`, this option will insist that any use of a `yield` return + value (e.g., `const rv = yield;` or `const rv = yield value;`) has a + (non-standard) `@next` tag (in addition to any `@yields` tag) so as to be + able to document the type expected to be supplied into the iterator + (the `Generator` iterator that is returned by the call to the generator + function) to the iterator (e.g., `it.next(value)`). The tag will not be + expected if the generator function body merely has plain `yield;` or + `yield value;` statements without returning the values. Defaults to + `false`. +- `forceRequireNext` - Set to `true` to always insist on + `@next` documentation even if there are no `yield` statements in the + function or none return values. May be desired to flag that a project is + aware of the expected yield return being `undefined`. Defaults to `false`. +- `nextWithGeneratorTag` - If a `@generator` tag is present on a block, require + (non-standard ) `@next` (see `next` option). This will require using `void` + or `undefined` in cases where generators do not use the `next()`-supplied + incoming `yield`-returned value. Defaults to `false`. See `contexts` to + `any` if you want to catch `@generator` with `@callback` or such not + attached to a function. + +||| +|---|---| +|Context|Generator functions (`FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled)| +|Tags|`yields`| +|Aliases|`yield`| +|Recommended|true| +| Options | `contexts`, `exemptedBy`, `withGeneratorTag`, `nextWithGeneratorTag`, `forceRequireYields`, `next` | +| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * + */ +function * quux (foo) { + + yield foo; +} +// Message: Missing JSDoc @yields declaration. + +/** + * @yields + */ +function * quux (foo) { + + const retVal = yield foo; +} +// "jsdoc/require-yields": ["error"|"warn", {"next":true}] +// Message: Missing JSDoc @next declaration. + +/** + * @yields + */ +function * quux (foo) { + + const retVal = yield; +} +// "jsdoc/require-yields": ["error"|"warn", {"next":true}] +// Message: Missing JSDoc @next declaration. + +/** + * @yields {void} + */ +function * quux () { +} +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireNext":true}] +// Message: Missing JSDoc @next declaration. + +/** + * @yields {void} + */ +function * quux () { + yield; +} +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireNext":true}] +// Message: Missing JSDoc @next declaration. + +/** + * + */ +function * quux (foo) { + + const a = yield foo; +} +// Message: Missing JSDoc @yields declaration. + +/** + * + */ +function * quux (foo) { + yield foo; +} +// Settings: {"jsdoc":{"tagNamePreference":{"yields":"yield"}}} +// Message: Missing JSDoc @yield declaration. + +/** + * @yields + */ +function * quux (foo) { + const val = yield foo; +} +// Settings: {"jsdoc":{"tagNamePreference":{"next":"yield-returns"}}} +// "jsdoc/require-yields": ["error"|"warn", {"next":true}] +// Message: Missing JSDoc @yield-returns declaration. + +/** + * @yields + * @next + */ +function * quux () { + const ret = yield 5; +} +// Settings: {"jsdoc":{"tagNamePreference":{"next":false}}} +// "jsdoc/require-yields": ["error"|"warn", {"next":true}] +// Message: Unexpected tag `@next` + +/** + * + */ +function * quux() { + yield 5; +} +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] +// Message: Missing JSDoc @yields declaration. + +/** + * + */ +function * quux() { + yield; +} +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] +// Message: Missing JSDoc @yields declaration. + +/** + * + */ +const quux = async function * () { + yield; +} +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] +// Message: Missing JSDoc @yields declaration. + +/** + * + */ +async function * quux () { + yield; +} +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] +// Message: Missing JSDoc @yields declaration. + +/** + * + */ +function * quux () { + yield; +} +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"forceRequireYields":true}] +// Message: Missing JSDoc @yields declaration. + +/** + * @function + * @generator + */ +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"forceRequireYields":true}] +// Message: Missing JSDoc @yields declaration. + +/** + * @callback + * @generator + */ +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"forceRequireYields":true}] +// Message: Missing JSDoc @yields declaration. + +/** + * @yields {undefined} + * @yields {void} + */ +function * quux (foo) { + + return foo; +} +// Message: Found more than one @yields declaration. + +/** + * @yields + */ +function * quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"yields":false}}} +// Message: Unexpected tag `@yields` + +/** + * @param foo + */ +function * quux (foo) { + yield 'bar'; +} +// "jsdoc/require-yields": ["error"|"warn", {"exemptedBy":["notPresent"]}] +// Message: Missing JSDoc @yields declaration. + +/** + * @param {array} a + */ +async function * foo(a) { + return; +} +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] +// Message: Missing JSDoc @yields declaration. + +/** + * @param {array} a + */ +async function * foo(a) { + yield Promise.all(a); +} +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] +// Message: Missing JSDoc @yields declaration. + +class quux { + /** + * + */ + * quux () { + yield; + } +} +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"forceRequireYields":true}] +// Message: Missing JSDoc @yields declaration. + +/** + * @param {array} a + */ +async function * foo(a) { + yield Promise.all(a); +} +// Message: Missing JSDoc @yields declaration. + +/** + * @generator + */ +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"withGeneratorTag":true}] +// Message: Missing JSDoc @yields declaration. + +/** + * @generator + * @yields + */ +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"nextWithGeneratorTag":true}] +// Message: Missing JSDoc @next declaration. + +/** + * + */ +function * quux () { + if (true) { + yield; + } + yield true; +} +// Message: Missing JSDoc @yields declaration. + +/** + * + */ +function * quux () { + try { + yield true; + } catch (err) { + } + yield; +} +// Message: Missing JSDoc @yields declaration. + +/** + * + */ +function * quux () { + try { + } finally { + yield true; + } + yield; +} +// Message: Missing JSDoc @yields declaration. + +/** + * + */ +function * quux () { + try { + yield; + } catch (err) { + } + yield true; +} +// Message: Missing JSDoc @yields declaration. + +/** + * + */ +function * quux () { + try { + something(); + } catch (err) { + yield true; + } + yield; +} +// Message: Missing JSDoc @yields declaration. + +/** + * + */ +function * quux () { + switch (true) { + case 'abc': + yield true; + } + yield; +} +// Message: Missing JSDoc @yields declaration. + +/** + * + */ +function * quux () { + switch (true) { + case 'abc': + yield; + } + yield true; +} +// Message: Missing JSDoc @yields declaration. + +/** + * + */ +function * quux () { + for (const i of abc) { + yield true; + } + yield; +} +// Message: Missing JSDoc @yields declaration. + +/** + * + */ +function * quux () { + for (const a in b) { + yield true; + } +} +// Message: Missing JSDoc @yields declaration. + +/** + * + */ +function * quux () { + for (let i=0; i + +### require-yields-check + +Ensures that if a `@yields` is present that a `yield` (or `yield` with a +value) is present in the function body (or that if a `@next` is present that +there is a `yield` with a return value present). + +Please also note that JavaScript does allow generators not to have `yield` +(e.g., with just a return or even no explicit return), but if you want to +enforce that all generators (except wholly empty ones) have a `yield` in the +function body, you can use the ESLint +[`require-yield`](https://eslint.org/docs/rules/require-yield) rule. In +conjunction with this, you can also use the `checkGeneratorsOnly` option +as an optimization so that this rule won't need to do its own checking within +function bodies. + +Will also report if multiple `@yields` tags are present. + + + +#### Options + +- `checkGeneratorsOnly` - Avoids checking the function body and merely insists + that all generators have `@yields`. This can be an optimization with the + ESLint `require-yield` rule, as that rule already ensures a `yield` is + present in generators, albeit assuming the generator is not empty). + Defaults to `false`. +- `next` - If `true`, this option will insist that any use of a (non-standard) + `@next` tag (in addition to any `@yields` tag) will be matched by a `yield` + which uses a return value in the body of the generator (e.g., + `const rv = yield;` or `const rv = yield value;`). This (non-standard) + tag is intended to be used to indicate a type and/or description of + the value expected to be supplied by the user when supplied to the iterator + by its `next` method, as with `it.next(value)` (with the iterator being + the `Generator` iterator that is returned by the call to the generator + function). This option will report an error if the generator function body + merely has plain `yield;` or `yield value;` statements without returning + the values. Defaults to `false`. + +||| +|---|---| +|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| +|Tags|`yields`| +|Aliases|`yield`| +|Recommended|true| +|Options|`checkGeneratorsOnly`| +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @yields + */ +function * quux (foo) { + +} +// Message: JSDoc @yields declaration present but yield expression not available in function. + +/** + * @yields + */ +function quux (foo) { + +} +// "jsdoc/require-yields-check": ["error"|"warn", {"checkGeneratorsOnly":true}] +// Message: JSDoc @yields declaration present but yield expression not available in function. + +/** + * @next + */ +function quux (foo) { + +} +// "jsdoc/require-yields-check": ["error"|"warn", {"checkGeneratorsOnly":true,"next":true}] +// Message: JSDoc @next declaration present but yield expression with return value not available in function. + +/** + * @next {SomeType} + */ +function * quux (foo) { + +} +// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] +// Message: JSDoc @next declaration present but yield expression with return value not available in function. + +/** + * @next {SomeType} + */ +function * quux (foo) { + yield; +} +// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] +// Message: JSDoc @next declaration present but yield expression with return value not available in function. + +/** + * @next {SomeType} + */ +function * quux (foo) { + yield 5; +} +// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] +// Message: JSDoc @next declaration present but yield expression with return value not available in function. + +/** + * @yield + */ +function * quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"yields":"yield"}}} +// Message: JSDoc @yield declaration present but yield expression not available in function. + +/** + * @yield-returns {Something} + */ +function * quux (foo) { + yield; +} +// Settings: {"jsdoc":{"tagNamePreference":{"next":"yield-returns"}}} +// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] +// Message: JSDoc @yield-returns declaration present but yield expression with return value not available in function. + +/** + * @yields {undefined} Foo. + * @yields {String} Foo. + */ +function * quux () { + + yield foo; +} +// Message: Found more than one @yields declaration. + +class Foo { + /** + * @yields {string} + */ + * bar () { + } +} +// Message: JSDoc @yields declaration present but yield expression not available in function. + +/** + * @yields + */ +function * quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"yields":false}}} +// Message: Unexpected tag `@yields` + +/** + * @next + */ +function * quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"next":false}}} +// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] +// Message: Unexpected tag `@next` + +/** + * @yields {string} + */ +function * f () { + function * g() { + yield 'foo' + } +} +// Message: JSDoc @yields declaration present but yield expression not available in function. + +/** + * @yields {Promise} + */ +async function * quux() {} +// Message: JSDoc @yields declaration present but yield expression not available in function. + +/** + * @yields {Promise} + */ +const quux = async function * () {} +// Message: JSDoc @yields declaration present but yield expression not available in function. + +/** + * @yields {never} Foo. + */ +function * quux () { + yield 5; +} +// Message: JSDoc @yields declaration set with "never" but yield expression is present in function. + +/** + * @next {never} + */ +function * quux (foo) { + const a = yield; +} +// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] +// Message: JSDoc @next declaration set with "never" but yield expression with return value is present in function. +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @yields Foo. + */ +function * quux () { + + yield foo; +} + +/** + * @yields {string} Foo. + */ +function * quux () { + + yield foo; +} + +/** + * @yields {string} Foo. + */ +function * quux () { + + yield foo; +} + +/** + * + */ +function * quux () { +} + +/** + * @yields {undefined} Foo. + */ +function * quux () {} + +/** + * @yields { void } Foo. + */ +function quux () {} + +/** + * @yields Foo. + * @abstract + */ +function * quux () { + throw new Error('must be implemented by subclass!'); +} + +/** + * @yields Foo. + * @virtual + */ +function * quux () { + throw new Error('must be implemented by subclass!'); +} + +/** + * @yields Foo. + * @constructor + */ +function * quux () { +} + +/** + * @interface + */ +class Foo { + /** + * @yields {string} + */ + * bar () { + } +} + +/** + * @record + */ +class Foo { + /** + * @yields {string} + */ + * bar () { + } +} +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * @yields {undefined} Foo. + */ +function * quux () { +} + +/** + * @yields {void} Foo. + */ +function * quux () { +} + +/** + * @yields {never} Foo. + */ +function * quux () { +} + +/** + * @yields {void} Foo. + */ +function * quux () { + yield undefined; +} + +/** + * @yields {void} Foo. + */ +function * quux () { + yield; +} + +/** + * + */ +function * quux () { + yield undefined; +} + +/** + * + */ +function * quux () { + yield; +} + +/** + * @yields {true} + */ +function * quux () { + try { + yield true; + } catch (err) { + } + yield; +} + +/** + * @yields {true} + */ +function * quux () { + try { + } finally { + yield true; + } + yield; +} + +/** + * @yields {true} + */ +function * quux () { + try { + yield; + } catch (err) { + } + yield true; +} + +/** + * @yields {true} + */ +function * quux () { + try { + something(); + } catch (err) { + yield true; + } + yield; +} + +/** + * @yields {true} + */ +function * quux () { + switch (true) { + case 'abc': + yield true; + } + yield; +} + +/** + * @yields {true} + */ +function * quux () { + switch (true) { + case 'abc': + yield; + } + yield true; +} + +/** + * @yields {true} + */ +function * quux () { + for (const i of abc) { + yield true; + } + yield; +} + +/** + * @yields {true} + */ +function * quux () { + for (const a in b) { + yield true; + } +} + +/** + * @yields {true} + */ +function * quux () { + for (let i=0; i + +### sort-tags + +Sorts tags by a specified sequence according to tag name, optionally +adding line breaks between tag groups. + +(Default order originally inspired by [`@homer0/prettier-plugin-jsdoc`](https://github.com/homer0/packages/tree/main/packages/public/prettier-plugin-jsdoc).) + +Optionally allows adding line breaks between tag groups and/or between tags +within a tag group. + +Please note: unless you are disabling reporting of line breaks, this rule +should not be used with the default "never" or "always" options of +`tag-lines` (a rule enabled by default with the recommended config) as +that rule adds its own line breaks after tags and may interfere with any +line break setting this rule will attempt to do when not disabled. + +You may, however, safely set the "any" option in that rule along with +`startLines` and/or `endLines`. + + + +#### Options + + + +##### tagSequence + +An array of tag group objects indicating the preferred sequence for sorting tags. + +Each item in the array should be an object with a `tags` property set to an array +of tag names. + +Tag names earlier in the list will be arranged first. The relative position of +tags of the same name will not be changed. + +Earlier groups will also be arranged before later groups, but with the added +feature that additional line breaks may be added between (or before or after) +such groups (depending on the setting of `linesBetween`). + +Tag names not in the list will be grouped together at the end. The pseudo-tag +`-other` can be used to place them anywhere else if desired. The tags will be +placed in their order of appearance, or alphabetized if `alphabetizeExtras` +is enabled, see more below about that option. + +Defaults to the array below (noting that it is just a single tag group with +no lines between groups by default). + +Please note that this order is still experimental, so if you want to retain +a fixed order that doesn't change into the future, supply your own +`tagSequence`. + +```js +[{tags: [ + // Brief descriptions + 'summary', + 'typeSummary', + + // Module/file-level + 'module', + 'exports', + 'file', + 'fileoverview', + 'overview', + + // Identifying (name, type) + 'typedef', + 'interface', + 'record', + 'template', + 'name', + 'kind', + 'type', + 'alias', + 'external', + 'host', + 'callback', + 'func', + 'function', + 'method', + 'class', + 'constructor', + + // Relationships + 'modifies', + 'mixes', + 'mixin', + 'mixinClass', + 'mixinFunction', + 'namespace', + 'borrows', + 'constructs', + 'lends', + 'implements', + 'requires', + + // Long descriptions + 'desc', + 'description', + 'classdesc', + 'tutorial', + 'copyright', + 'license', + + // Simple annotations + 'const', + 'constant', + 'final', + 'global', + 'readonly', + 'abstract', + 'virtual', + 'var', + 'member', + 'memberof', + 'memberof!', + 'inner', + 'instance', + 'inheritdoc', + 'inheritDoc', + 'override', + 'hideconstructor', + + // Core function/object info + 'param', + 'arg', + 'argument', + 'prop', + 'property', + 'return', + 'returns', + + // Important behavior details + 'async', + 'generator', + 'default', + 'defaultvalue', + 'enum', + 'augments', + 'extends', + 'throws', + 'exception', + 'yield', + 'yields', + 'event', + 'fires', + 'emits', + 'listens', + 'this', + + // Access + 'static', + 'private', + 'protected', + 'public', + 'access', + 'package', + + '-other', + + // Supplementary descriptions + 'see', + 'example', + + // METADATA + + // Other Closure (undocumented) metadata + 'closurePrimitive', + 'customElement', + 'expose', + 'hidden', + 'idGenerator', + 'meaning', + 'ngInject', + 'owner', + 'wizaction', + + // Other Closure (documented) metadata + 'define', + 'dict', + 'export', + 'externs', + 'implicitCast', + 'noalias', + 'nocollapse', + 'nocompile', + 'noinline', + 'nosideeffects', + 'polymer', + 'polymerBehavior', + 'preserve', + 'struct', + 'suppress', + 'unrestricted', + + // @homer0/prettier-plugin-jsdoc metadata + 'category', + + // Non-Closure metadata + 'ignore', + 'author', + 'version', + 'variation', + 'since', + 'deprecated', + 'todo', +]}]; +``` + + + +##### alphabetizeExtras + +Defaults to `false`. Alphabetizes any items not within `tagSequence` after any +items within `tagSequence` (or in place of the special `-other` pseudo-tag) +are sorted. + +If you want all your tags alphabetized, you can supply an empty array for +`tagSequence` along with setting this option to `true`. + + + +##### linesBetween + +Indicates the number of lines to be added between tag groups. Defaults to 1. +Do not set to 0 or 2+ if you are using `tag-lines` and `"always"` and do not +set to 1+ if you are using `tag-lines` and `"never"`. + + + +##### reportTagGroupSpacing + +Whether to enable reporting and fixing of line breaks between tag groups +as set by `linesBetween`. Defaults to `true`. Note that the very last tag +will not have spacing applied regardless. For adding line breaks there, you +may wish to use the `endLines` option of the `tag-lines` rule. + + + +##### reportIntraTagGroupSpacing + +Whether to enable reporting and fixing of line breaks within tags of a given +tag group. Defaults to `true` which will remove any line breaks at the end of +such tags. Do not use with `true` if you are using `tag-lines` and `always`. + +||| +|---|---| +|Context|everywhere| +|Tags|any| +|Recommended|false| +|Settings|| +|Options|`tagSequence`, `alphabetizeExtras`, `linesBetween`, `reportTagGroupSpacing`, `reportIntraTagGroupSpacing`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @returns {string} + * @param b + * @param a + */ +function quux () {} +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo + +/** + * Some description + * @returns {string} + * @param b + * @param a + */ +function quux () {} +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo + +/** + * @returns {string} + * @param b A long + * description + * @param a + */ +function quux () {} +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo + +/** + * Some description + * @returns {string} + * @param b A long + * description + * @param a + */ +function quux () {} +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo + +/** + * @param b A long + * description + * @returns {string} + * @param a + */ +function quux () {} +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo + +/** + * @def + * @xyz + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"alphabetizeExtras":true}] +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo + +/** + * @xyz + * @def + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["def","xyz","abc"]}]}] +// Message: Tags are not in the prescribed order: def, xyz, abc + +/** + * @xyz + * @def + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["def","xyz"]},{"tags":["abc"]}]}] +// Message: Tags are not in the prescribed order: def, xyz, abc + +/** + * @returns {string} + * @ignore + * @param b A long + * description + * @param a + * @module + */ +function quux () {} +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo + +/** + * @xyz + * @abc + * @abc + * @def + * @xyz + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"alphabetizeExtras":true}] +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo + +/** + * @param b A long + * description + * @module + */ +function quux () {} +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo + +/** + * @def + * @xyz + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":2,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] +// Message: Tag groups do not have the expected whitespace + +/** + * @def + * @xyz + * + * + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":1,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] +// Message: Tag groups do not have the expected whitespace + +/** + * @def + * @xyz A multiline + * description + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":2,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] +// Message: Tag groups do not have the expected whitespace + +/** + * @def + * @xyz + * @xyz + * + * + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":1,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] +// Message: Tag groups do not have the expected whitespace + +/** + * Foo + * + * @param {( + * req: express.Request, + * done: (error: any, user?: any, info?: any) => void + * ) => void} verify - callback to excute custom authentication logic + * @see https://github.com/jaredhanson/passport/blob/v0.4.1/lib/middleware/authenticate.js#L217 + * + */ +// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["since","access"]},{"tags":["class","augments","mixes"]},{"tags":["alias","memberof"]},{"tags":["see","link","global"]},{"tags":["fires","listens"]},{"tags":["param"]},{"tags":["yields"]},{"tags":["returns"]}]}] +// Message: Tags are not in the prescribed order: since, access, class, augments, mixes, alias, memberof, see, link, global, fires, listens, param, yields, returns + +/** + * Summary. (use period) + * + * Description. (use period) + * + * @since 1.0.1 + * @access private + * + * @class + * @mixes mixin + * + * @alias realName + * @memberof namespace + * + * @see Function/class relied on + * @global + * + * @tutorial Asd + * @license MIT + * + * @fires eventName + * @fires className#eventName + * @listens event:eventName + * @listens className~event:eventName + * + * @tutorial Asd + * @license MIT + * + * @yields {string} Yielded value description. + * + * @param {string} var1 - Description. + * @param {string} var2 - Description of optional variable. + * @param {string} var3 - Description of optional variable with default variable. + * @param {object} objectVar - Description. + * @param {string} objectVar.key - Description of a key in the objectVar parameter. + * + * @returns {string} Return value description. + */ +// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["since","access"]},{"tags":["class","augments","mixes"]},{"tags":["alias","memberof"]},{"tags":["see","link","global"]},{"tags":["fires","listens"]},{"tags":["param"]},{"tags":["yields"]},{"tags":["returns"]}]}] +// Message: Tags are not in the prescribed order: since, access, class, augments, mixes, alias, memberof, see, link, global, fires, listens, param, yields, returns + +/** + * @def + * @zzz + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":1,"tagSequence":[{"tags":["qrs"]},{"tags":["def","-other","xyz"]},{"tags":["abc"]}]}] +// Message: Tag groups do not have the expected whitespace + +/** + * @xyz + * @def + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"alphabetizeExtras":true,"tagSequence":[]}] +// Message: Tags are not in the prescribed order: (alphabetical) + +/** + * @example + * enum Color { Red, Green, Blue } + * faker.helpers.enumValue(Color) // 1 (Green) + * + * enum Direction { North = 'North', South = 'South'} + * faker.helpers.enumValue(Direction) // 'South' + * + * enum HttpStatus { Ok = 200, Created = 201, BadRequest = 400, Unauthorized = 401 } + * faker.helpers.enumValue(HttpStatus) // 200 (Ok) + * @since 8.0.0 + */ +// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["internal"]},{"tags":["template","param"]},{"tags":["returns"]},{"tags":["throws"]},{"tags":["see"]},{"tags":["example"]},{"tags":["since"]},{"tags":["deprecated"]}]}] +// Message: Tag groups do not have the expected whitespace +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @param b + * @param a + * @returns {string} + */ +function quux () {} + +/** + * @abc + * @def + * @xyz + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"alphabetizeExtras":true}] + +/** + * @def + * @xyz + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"alphabetizeExtras":false}] + +/** + * @def + * @xyz + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["def","xyz","abc"]}]}] + +/** @def */ +function quux () {} + +/** + * @def + * @xyz + * + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":1,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] + +/** + * @def + * @xyz A multiline + * description + * + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":1,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] + +/** + * Foo + * + * @see https://github.com/jaredhanson/passport/blob/v0.4.1/lib/middleware/authenticate.js#L217 + * + * @param {( + * req: express.Request, + * done: (error: any, user?: any, info?: any) => void + * ) => void} verify - callback to excute custom authentication logic + */ +// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["since","access"]},{"tags":["class","augments","mixes"]},{"tags":["alias","memberof"]},{"tags":["see","link","global"]},{"tags":["fires","listens"]},{"tags":["param"]},{"tags":["yields"]},{"tags":["returns"]}]}] + +/** + * Constructor. + * + * @public + * + * @param {string} [message] - Error message. + */ +// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["since","access"]},{"tags":["class","augments","mixes"]},{"tags":["alias","memberof"]},{"tags":["public","protected","private","override"]},{"tags":["override","async"]},{"tags":["see","link","global"]},{"tags":["param"]},{"tags":["yields"]},{"tags":["returns"]},{"tags":["fires","-other","listens"]}]}] + +/** + * @param options.mode The mode to generate the birthdate. Supported modes are `'age'` and `'year'` . + * + * There are two modes available `'age'` and `'year'`: + * - `'age'`: The min and max options define the age of the person (e.g. `18` - `42`). + * - `'year'`: The min and max options define the range the birthdate may be in (e.g. `1900` - `2000`). + * + * Defaults to `year`. + * + * @example + */ +// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["internal"]},{"tags":["template","param"]},{"tags":["returns"]},{"tags":["throws"]},{"tags":["see"]},{"tags":["example"]},{"tags":["since"]},{"tags":["deprecated"]}]}] + +/** + * @example + * enum Color { Red, Green, Blue } + * faker.helpers.enumValue(Color) // 1 (Green) + * + * enum Direction { North = 'North', South = 'South'} + * faker.helpers.enumValue(Direction) // 'South' + * + * enum HttpStatus { Ok = 200, Created = 201, BadRequest = 400, Unauthorized = 401 } + * faker.helpers.enumValue(HttpStatus) // 200 (Ok) + * + * @since 8.0.0 + */ +// "jsdoc/sort-tags": ["error"|"warn", {"tagSequence":[{"tags":["internal"]},{"tags":["template","param"]},{"tags":["returns"]},{"tags":["throws"]},{"tags":["see"]},{"tags":["example"]},{"tags":["since"]},{"tags":["deprecated"]}]}] + +/** + * @def + * @xyz + * @abc + */ +function quux () {} +// "jsdoc/sort-tags": ["error"|"warn", {"linesBetween":2,"reportTagGroupSpacing":false,"tagSequence":[{"tags":["qrs"]},{"tags":["def","xyz"]},{"tags":["abc"]}]}] +```` + diff --git a/docs/rules/tag-lines.md b/docs/rules/tag-lines.md new file mode 100644 index 000000000..0385634da --- /dev/null +++ b/docs/rules/tag-lines.md @@ -0,0 +1,523 @@ + + +### tag-lines + +Enforces lines (or no lines) between tags. + +If you only want lines preceding all tags or after all tags, you can use +the "any" option along with `startLines` and/or `endLines`. + +The "always" or "never" options of this rule should not +be used with the linebreak-setting options of the `sort-tags` rule as both +may try to impose a conflicting number of lines. + + + +#### Options + +The first option is a single string set to "always", "never", or "any" +(defaults to "never"). + +"any" is only useful with `tags` (allowing non-enforcement of lines except +for particular tags) or with `startLines` or `endLines`. It is also +necessary if using the linebreak-setting options of the `sort-tags` rule +so that the two rules won't conflict in both attempting to set lines +between tags. + +The second option is an object with the following optional properties. + + + +##### count (defaults to 1) + +Use with "always" to indicate the number of lines to require be present. + + + +##### applyToEndTag (defaults to true) + +Set to `false` and use with "always" to indicate the normal lines to be +added after tags should not be added after the final tag. + + + +##### startLines (defaults to 0) + +If not set to `null`, will enforce end lines to the given count before the +first tag only, unless there is only whitespace content, in which case, +a line count will not be enforced. + + + +##### endLines (defaults to 0) + +If not set to `null`, will enforce end lines to the given count on the +final tag only. + + + +##### tags (default to empty object) + +Overrides the default behavior depending on specific tags. + +An object whose keys are tag names and whose values are objects with the +following keys: + +1. `lines` - Set to `always`, `never`, or `any` to override. +2. `count` - Overrides main `count` (for "always") + +||| +|---|---| +|Context|everywhere| +|Tags|Any| +|Recommended|true| +|Settings|N/A| +|Options|(a string matching `"always"`, `"never"`, or `"any"` and optional object with `count`, `applyToEndTag`, `startLines`, `endLines`)| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * Some description + * @param {string} a + * @param {number} b + */ +// "jsdoc/tag-lines": ["error"|"warn", "always"] +// Message: Expected 1 line between tags but found 0 + +/** + * Some description + * @param {string} a + * @param {number} b + */ +// "jsdoc/tag-lines": ["error"|"warn", "always",{"count":2}] +// Message: Expected 2 lines between tags but found 0 + +/** + * Some description + * @param {string} a + * + * @param {number} b + */ +// "jsdoc/tag-lines": ["error"|"warn", "always",{"count":2}] +// Message: Expected 2 lines between tags but found 1 + +/** + * Some description + * @param {string} a + * @param {number} b + */ +// "jsdoc/tag-lines": ["error"|"warn", "always",{"applyToEndTag":false}] +// Message: Expected 1 line between tags but found 0 + +/** + * Some description + * @param {string} a + * + * @param {number} b + * + */ +// "jsdoc/tag-lines": ["error"|"warn", "never"] +// Message: Expected no lines between tags + +/** + * Some description + * @param {string} a + * + * @param {number} b + * + */ +// Message: Expected no lines between tags + +/** + * Some description + * @param {string} a + * + * @param {number} b + * @param {number} c + */ +// "jsdoc/tag-lines": ["error"|"warn", "always"] +// Message: Expected 1 line between tags but found 0 + +/** + * Some description + * @param {string} a + * @param {number} b + */ +// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"param":{"lines":"always"}}}] +// Message: Expected 1 line between tags but found 0 + +/** + * Some description + * @param {string} a + * @param {number} b + */ +// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"param":{"lines":"always"}}}] +// Message: Expected 1 line between tags but found 0 + +/** + * Some description + * @param {string} a + * @param {number} b + * + */ +// "jsdoc/tag-lines": ["error"|"warn", "always",{"tags":{"param":{"lines":"never"}}}] +// Message: Expected no lines between tags + +/** + * Some description + * @param {string} a + * + * @param {number} b + */ +// "jsdoc/tag-lines": ["error"|"warn", "never",{"count":2,"tags":{"param":{"lines":"always"}}}] +// Message: Expected 2 lines between tags but found 1 + +/** + * Some description + * @param {string} a + * + * @param {number} b + */ +// "jsdoc/tag-lines": ["error"|"warn", "never",{"count":5,"tags":{"param":{"count":2,"lines":"always"}}}] +// Message: Expected 2 lines between tags but found 1 + +/** + * Some description + * @param {string} a + * @param {number} b + */ +// "jsdoc/tag-lines": ["error"|"warn", "always",{"tags":{"anotherTag":{"lines":"never"}}}] +// Message: Expected 1 line between tags but found 0 + +/** + * Some description + * @param {string} A broken up + * + * tag description. + * @param {number} b + * + */ +// "jsdoc/tag-lines": ["error"|"warn", "always",{"endLines":null}] +// Message: Expected 1 line between tags but found 0 + +/** + * Some description + * @param {number} b + * + * @returns {string} A broken up + * + * tag description. + */ +// "jsdoc/tag-lines": ["error"|"warn", "always"] +// Message: Expected 1 line between tags but found 0 + +/** + * Some description + * @param {string} a + * @param {string} b + * + * @returns {SomeType} An extended + * description. + * + * This is still part of `@returns`. + * + */ +// "jsdoc/tag-lines": ["error"|"warn", "any",{"endLines":0}] +// Message: Expected 0 trailing lines + +/** + * Some description + * @param {string} a + * @param {string} b + * + * @returns {SomeType} An extended + * description. + * + * This is still part of `@returns`. + * + * + * + */ +// "jsdoc/tag-lines": ["error"|"warn", "any",{"endLines":1}] +// Message: Expected 1 trailing lines + +/** + * Some description + * @param {string} a + * @param {string} b + * + * @returns {SomeType} An extended + * description. + * + * This is still part of `@returns`. + * + */ +// "jsdoc/tag-lines": ["error"|"warn", "any",{"endLines":2}] +// Message: Expected 2 trailing lines + +/** + * Some description + * + * + * @param {string} a + */ +// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":1}] +// Message: Expected only 1 line after block description + +/** + * Some description + * + * @param {string} a + */ +// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":0}] +// Message: Expected only 0 line after block description + +/** + * Some description + * + * @param {string} a + */ +// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":2}] +// Message: Expected 2 lines after block description + +/** + * Some description + * @param {string} a + */ +// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":1}] +// Message: Expected 1 lines after block description +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * Some description + * @param {string} a + * @param {number} b + */ + +/** + * Some description + * @param {string} a + * @param {number} b + */ +// "jsdoc/tag-lines": ["error"|"warn", "never"] + +/** + * @param {string} a + * + * @param {string} a + */ +// "jsdoc/tag-lines": ["error"|"warn", "always",{"applyToEndTag":false}] + +/** + * @param {string} a + */ +// "jsdoc/tag-lines": ["error"|"warn", "never",{"applyToEndTag":false}] + +/** @param {number} b */ +// "jsdoc/tag-lines": ["error"|"warn", "never",{"applyToEndTag":false}] + +/** + * Some description + * @param {string} a + * + * @param {number} b + * + */ +// "jsdoc/tag-lines": ["error"|"warn", "always",{"endLines":null}] + +/** + * Some description + * @param {string} a + * + * + * @param {number} b + * + * + */ +// "jsdoc/tag-lines": ["error"|"warn", "always",{"count":2,"endLines":null}] + +/** + * Some description + * @param {string} a + * @param {number} b + */ +// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"param":{"lines":"any"}}}] + +/** + * Some description + * @param {string} a + * @param {number} b + */ +// "jsdoc/tag-lines": ["error"|"warn", "always",{"tags":{"param":{"lines":"any"}}}] + +/** + * Some description + * @param {string} a + * @param {number} b + */ +// "jsdoc/tag-lines": ["error"|"warn", "always",{"tags":{"param":{"lines":"never"}}}] + +/** + * Some description + * @param {number} a + * @param {number} b + */ +// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"param":{"lines":"any"}}}] + +/** + * Some description + * @param {number} a + * + * @param {number} b + */ +// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"param":{"lines":"any"}}}] + +/** + * Some description + * @param {number} a + * @param {number} b + */ +// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"param":{"lines":"never"}}}] + +/** + * Some description + * @param {string} a + * + * + * @param {number} b + * + * + */ +// "jsdoc/tag-lines": ["error"|"warn", "never",{"count":5,"tags":{"param":{"count":2,"lines":"always"}}}] + +/** + * Some description + * @param {string} a + * @param {number} b + */ +// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"anotherTag":{"lines":"always"}}}] + +/** + * Some description + * @param {string} a + * + * This is still part of `@param`. + * @returns {SomeType} An extended + * description. + */ +// "jsdoc/tag-lines": ["error"|"warn", "never"] + +/** + * Some description + * @param {string} a + * @returns {SomeType} An extended + * description. + * + * This is still part of `@returns`. + */ +// "jsdoc/tag-lines": ["error"|"warn", "never"] + +/** + * Some description + * @param {string} a + * + * This is still part of `@param`. + * + * @returns {SomeType} An extended + * description. + * + */ +// "jsdoc/tag-lines": ["error"|"warn", "always",{"endLines":null}] + +/** + * Some description + * @param {string} a + * + * @returns {SomeType} An extended + * description. + * + * This is still part of `@returns`. + * + */ +// "jsdoc/tag-lines": ["error"|"warn", "always",{"endLines":null}] + +/** + * Some description + * @param {string} a + * @param {string} b + * + * @returns {SomeType} An extended + * description. + * + * This is still part of `@returns`. + */ +// "jsdoc/tag-lines": ["error"|"warn", "any",{"endLines":0}] + +/** + * Some description + * + * @param {string} a + */ +// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":1}] + +/** + * Some description + * @param {string} a + * + */ +// "jsdoc/tag-lines": ["error"|"warn", "any",{"endLines":1}] + +/** + * Some description + * + * + * @param {string} a + */ +// "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":null}] + +/** + * Some description + * @param {string} a + */ +// "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":null}] + +/** + * @param {string} input + */ +function processSass (input) { +} +// "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":1}] + +/** + * + * @param {string} input + */ +function processSass (input) { +} +// "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":1}] + +/** + * Toggles the deselect all icon button action + */ +function updateIconButton () { +} +// "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":1}] + +/** A class. */ +class _Foo { + /** @param arg Argument. */ + conststructor(arg: string) { + console.log(arg); + } +} +// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":1}] +```` + diff --git a/docs/rules/text-escaping.md b/docs/rules/text-escaping.md new file mode 100644 index 000000000..ed9aa5f96 --- /dev/null +++ b/docs/rules/text-escaping.md @@ -0,0 +1,152 @@ + + +### text-escaping + +This rule can auto-escape certain characters that are input within block and +tag descriptions. + +This rule may be desirable if your text is known not to contain HTML or +Markdown and you therefore do not wish for it to be accidentally interpreted +as such by the likes of Visual Studio Code or if you wish to view it escaped +within it or your documentation. + + + +#### Options + + + +##### escapeHTML + +This option escapes all `<` and `&` characters (except those followed by +whitespace which are treated as literals by Visual Studio Code). + + + +##### escapeMarkdown + +This option escapes the first backtick (`` ` ``) in a paired sequence. + +||| +|---|---| +|Context|everywhere| +|Tags|``| +|Recommended|false| +|Settings|| +|Options|| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * Some things to escape: and > and `test` + */ +// Message: You must include either `escapeHTML` or `escapeMarkdown` + +/** + * Some things to escape: and > and ઼ and `test` + */ +// "jsdoc/text-escaping": ["error"|"warn", {"escapeHTML":true}] +// Message: You have unescaped HTML characters < or & + +/** + * Some things to escape: and > and `test` + */ +// "jsdoc/text-escaping": ["error"|"warn", {"escapeMarkdown":true}] +// Message: You have unescaped Markdown backtick sequences + +/** + * Some things to escape: + * and > and `test` + */ +// "jsdoc/text-escaping": ["error"|"warn", {"escapeHTML":true}] +// Message: You have unescaped HTML characters < or & + +/** + * Some things to escape: + * and > and `test` + */ +// "jsdoc/text-escaping": ["error"|"warn", {"escapeMarkdown":true}] +// Message: You have unescaped Markdown backtick sequences + +/** + * @param {SomeType} aName Some things to escape: and > and `test` + */ +// "jsdoc/text-escaping": ["error"|"warn", {"escapeHTML":true}] +// Message: You have unescaped HTML characters < or & in a tag + +/** + * @param {SomeType} aName Some things to escape: and > and `test` + */ +// "jsdoc/text-escaping": ["error"|"warn", {"escapeMarkdown":true}] +// Message: You have unescaped Markdown backtick sequences in a tag + +/** + * @param {SomeType} aName Some things to escape: + * and > and `test` + */ +// "jsdoc/text-escaping": ["error"|"warn", {"escapeHTML":true}] +// Message: You have unescaped HTML characters < or & in a tag + +/** + * @param {SomeType} aName Some things to escape: + * and > and `test` + */ +// "jsdoc/text-escaping": ["error"|"warn", {"escapeMarkdown":true}] +// Message: You have unescaped Markdown backtick sequences in a tag +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * Some things to escape: <a> and > and `test` + */ +// "jsdoc/text-escaping": ["error"|"warn", {"escapeHTML":true}] + +/** + * Some things to escape: and > and \`test` + */ +// "jsdoc/text-escaping": ["error"|"warn", {"escapeMarkdown":true}] + +/** + * Some things to escape: < and & + */ +// "jsdoc/text-escaping": ["error"|"warn", {"escapeHTML":true}] + +/** + * Some things to escape: ` + */ +// "jsdoc/text-escaping": ["error"|"warn", {"escapeMarkdown":true}] + +/** + * @param {SomeType} aName Some things to escape: <a> and > and `test` + */ +// "jsdoc/text-escaping": ["error"|"warn", {"escapeHTML":true}] + +/** + * @param {SomeType} aName Some things to escape: and > and \`test` + */ +// "jsdoc/text-escaping": ["error"|"warn", {"escapeMarkdown":true}] + +/** + * @param {SomeType} aName Some things to escape: < and & + */ +// "jsdoc/text-escaping": ["error"|"warn", {"escapeHTML":true}] + +/** + * @param {SomeType} aName Some things to escape: ` + */ +// "jsdoc/text-escaping": ["error"|"warn", {"escapeMarkdown":true}] + +/** + * Nothing + * to escape + */ +// "jsdoc/text-escaping": ["error"|"warn", {"escapeHTML":true}] +```` + diff --git a/docs/rules/valid-types.md b/docs/rules/valid-types.md new file mode 100644 index 000000000..a93655d26 --- /dev/null +++ b/docs/rules/valid-types.md @@ -0,0 +1,815 @@ + + +### valid-types + +Requires all types to be valid JSDoc, Closure, or TypeScript compiler types +without syntax errors. Note that what determines a valid type is handled by +our type parsing engine, [jsdoc-type-pratt-parser](https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser), +using [`settings.jsdoc.mode`](#user-content-eslint-plugin-jsdoc-settings-mode) to +determine whether to use jsdoc-type-pratt-parser's "permissive" parsing or +the stricter "jsdoc", "typescript", "closure" modes. + +The following tags have their "type" portions (the segment within brackets) +checked (though those portions may sometimes be confined to namepaths, +e.g., `@modifies`): + +1. Tags with required types: `@type`, `@implements` +1. Tags with required types in Closure or TypeScript: `@this`, + `@define` (Closure only) +1. Tags with optional types: `@enum`, `@member` (`@var`), `@typedef`, + `@augments` (or `@extends`), `@class` (or `@constructor`), `@constant` + (or `@const`), `@module` (module paths are not planned for TypeScript), + `@namespace`, `@throws`, `@exception`, `@yields` (or `@yield`), + `@modifies` (undocumented jsdoc); `@param` (`@arg`, `@argument`), + `@property` (`@prop`), and `@returns` (`@return`) also fall into this + category, but while this rule will check their type validity, we leave + the requiring of the type portion to the rules `require-param-type`, + `require-property-type`, and `require-returns-type`, respectively. +1. Tags with types that are available optionally in Closure: `@export`, + `@package`, `@private`, `@protected`, `@public`, `@static`; + `@template` (TypeScript also) +1. Tags with optional types that may take free text instead: `@throws` + +The following tags have their name/namepath portion (the non-whitespace +text after the tag name) checked: + +1. Name(path)-defining tags requiring namepath: `@event`, `@callback`, + `@exports` (JSDoc only), + `@external`, `@host`, `@name`, `@typedef` (JSDoc only), and `@template` + (TypeScript/Closure only); `@param` (`@arg`, `@argument`) and `@property` + (`@prop`) also fall into this category, but while this rule will check + their namepath validity, we leave the requiring of the name portion + to the rules `require-param-name` and `require-property-name`, + respectively. +1. Name(path)-defining tags (which may have value without namepath or their + namepath can be expressed elsewhere on the block): + `@class`, `@constructor`, `@constant`, `@const`, `@function`, `@func`, + `@method`, `@interface` (non-Closure only), `@member`, `@var`, + `@mixin`, `@namespace`, `@module` (module paths are not planned for + TypeScript) +1. Name(path)-pointing tags requiring namepath: `@alias`, `@augments`, + `@extends` (JSDoc only), `@lends`, `@memberof`, `@memberof!`, `@mixes`, `@requires`, `@this` + (jsdoc only) +1. Name(path)-pointing tags (which may have value without namepath or their + namepath can be expressed elsewhere on the block): `@listens`, `@fires`, + `@emits`. +1. Name(path)-pointing tags which may have free text or a namepath: `@see` +1. Name(path)-pointing tags (multiple names in one): `@borrows` + +...with the following applying to the above sets: + +- Expect tags in set 1-4 to have a valid namepath if present +- Prevent sets 2 and 4 from being empty by setting `allowEmptyNamepaths` to + `false` as these tags might have some indicative value without a path + or may allow a name expressed elsewhere on the block (but sets 1 and 3 will + always fail if empty) +- For the special case of set 6, i.e., + `@borrows as `, + check that both namepaths are present and valid and ensure there is an `as ` + between them. In the case of ``, it can be preceded by + one of the name path operators, `#`, `.`, or `~`. +- For the special case of `@memberof` and `@memberof!` (part of set 3), as + per the [specification](https://jsdoc.app/tags-memberof.html), they also + allow `#`, `.`, or `~` at the end (which is not allowed at the end of + normal paths). + +If you define your own tags, `settings.jsdoc.structuredTags` will allow +these custom tags to be checked, with the name portion of tags checked for +valid namepaths (based on the tag's `name` value), their type portions checked +for valid types (based on the tag's `type` value), and either portion checked +for presence (based on `false` `name` or `type` values or their `required` +value). See the setting for more details. + + + +#### Options + +- `allowEmptyNamepaths` (default: true) - Set to `false` to bulk disallow + empty name paths with namepath groups 2 and 4 (these might often be + expected to have an accompanying name path, though they have some + indicative value without one; these may also allow names to be defined + in another manner elsewhere in the block); you can use + `settings.jsdoc.structuredTags` with the `required` key set to "name" if you + wish to require name paths on a tag-by-tag basis. + +||| +|---|---| +|Context|everywhere| +|Tags|For name only unless otherwise stated: `alias`, `augments`, `borrows`, `callback`, `class` (for name and type), `constant` (for name and type), `enum` (for type), `event`, `external`, `fires`, `function`, `implements` (for type), `interface`, `lends`, `listens`, `member` (for name and type), `memberof`, `memberof!`, `mixes`, `mixin`, `modifies`, `module` (for name and type), `name`, `namespace` (for name and type), `param` (for name and type), `property` (for name and type), `returns` (for type), `see` (optionally for name), `this`, `throws` (for type), `type` (for type), `typedef` (for name and type), `yields` (for type)| +|Aliases|`extends`, `constructor`, `const`, `host`, `emits`, `func`, `method`, `var`, `arg`, `argument`, `prop`, `return`, `exception`, `yield`| +|Closure-only|For type only: `package`, `private`, `protected`, `public`, `static`| +|Recommended|true| +|Options|`allowEmptyNamepaths`| +|Settings|`mode`, `structuredTags`| + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @param {Array): !Array} + */ +parseArray = function(parser) { + return function(array) { + return array.map(parser); + }; +}; +// Settings: {"jsdoc":{"mode":"closure"}} +// Message: Syntax error in namepath: T<~ + +/** + * @template T, R<~ + * @param {function(!T): !R} parser + * @return {function(!Array): !Array} + */ +parseArray = function(parser) { + return function(array) { + return array.map(parser); + }; +}; +// Settings: {"jsdoc":{"mode":"closure"}} +// Message: Syntax error in namepath: R<~ + +/** + * @template T, R<~ + * @param {function(!T): !R} parser + * @return {function(!Array): !Array} + */ +parseArray = function(parser) { + return function(array) { + return array.map(parser); + }; +}; +// Settings: {"jsdoc":{"mode":"closure"}} +// Message: Syntax error in namepath: R<~ + +/** + * @suppress + */ +function quux () {} +// Settings: {"jsdoc":{"mode":"closure"}} +// Message: Tag @suppress must have a type in "closure" mode. + +/** + * @suppress {visibility} sth + */ +function quux () {} +// Settings: {"jsdoc":{"mode":"closure"}} +// Message: @suppress should not have a name in "closure" mode. + +/** + * @suppress {visibility|blah} + */ +function quux () {} +// Settings: {"jsdoc":{"mode":"closure"}} +// Message: Syntax error in supresss type: blah + +/** + * @param {Object[]} employees + * @param {string} employees[.name - The name of an employee. + */ +function quux () {} +// Message: Invalid name: unpaired brackets + +/** + * @param {Object[]} employees + * @param {string} [] - The name of an employee. + */ +function quux () {} +// Message: Invalid name: empty name + +/** + * @param {Object[]} employees + * @param {string} [] - The name of an employee. + */ +function quux () {} +// Message: Invalid name: empty name + +/** + * @param {string} [name=] - The name of an employee. + */ +function quux () {} +// Message: Invalid name: empty default value + +/** + * @param {string} [name==] - The name of an employee. + */ +function quux () {} +// Message: Invalid name: invalid default value syntax +```` + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @param {Array} foo + */ +function quux() { + +} + +/** + * @param {string} foo + */ +function quux() { + +} + +/** + * @param foo + */ +function quux() { + +} + +/** + * @borrows foo as bar + */ +function quux() { + +} + +/** + * @borrows foo as #bar + */ +function quux() { + +} + +/** + * @see foo% + */ +function quux() { + +} + +/** + * @alias module:namespace.SomeClass#event:ext_anevent + */ +function quux() { + +} + +/** + * @callback foo + */ +function quux() { + +} + +/** + * @callback + */ +function quux() { + +} +// "jsdoc/valid-types": ["error"|"warn", {"allowEmptyNamepaths":true}] + +/** + * @class + */ +function quux() { + +} + +/** + * @see {@link foo} + */ +function quux() { + +} +// Settings: {"jsdoc":{"structuredTags":{"see":{"name":"namepath-referencing","required":["name"]}}}} + +/** + * + * @fires module:namespace.SomeClass#event:ext_anevent + */ +function quux() { + +} + +/** + * @memberof module:namespace.SomeClass~ + */ +function quux() { + +} + +/** + * @memberof! module:namespace.SomeClass. + */ +function quux() { + +} + +/** + * + */ +function quux() { + +} + +/** + * @aCustomTag + */ +function quux() { + +} + +/** + * @constant {string} + */ + const FOO = 'foo'; + +/** + * @constant {string} FOO + */ + const FOO = 'foo'; + +/** + * @extends Foo + */ + class Bar {}; + +/** + * @extends Foo + */ + class Bar {}; + +/** + * @extends {Foo} + */ + class Bar {}; +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * @typedef {number | string} UserDefinedType + */ + +/** + * @typedef {number | string} + */ +let UserDefinedGCCType; +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * @modifies {foo | bar} + */ +function quux (foo, bar, baz) {} + +/** + * @this {Navigator} + */ +function quux () {} +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * @export {SomeType} + */ +function quux () {} +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * @define {boolean} + */ +function quux () {} +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * @define + */ + function quux () {} + +/** + * Foo function. + * + * @interface foo + */ +function foo(bar) {} +// Settings: {"jsdoc":{"mode":"typescript"}} + +/** + * Foo function. + * + * @param {[number, string]} bar - The bar array. + */ +function foo(bar) {} +// Settings: {"jsdoc":{"mode":"typescript"}} + +/** + * Foo function. + * + * @param {[number, string]} bar - The bar array. + */ +function foo(bar) {} + +/** + * Foo function. + * + * @param {[number, string]} bar - The bar array. + */ +function foo(bar) {} +// Settings: {"jsdoc":{"mode":"permissive"}} + +/** + * @typedef {SomeType} + */ +function quux () {} +// Settings: {"jsdoc":{"mode":"closure"}} +// "jsdoc/valid-types": ["error"|"warn", {"allowEmptyNamepaths":false}] + +/** + * @private {SomeType} + */ +function quux () {} +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * @param + */ +function quux() { + +} +// "jsdoc/valid-types": ["error"|"warn", {"allowEmptyNamepaths":false}] + +/** + * @see + */ +function quux() { + +} +// Settings: {"jsdoc":{"structuredTags":{"see":{"name":"namepath-referencing"}}}} + +/** + * @template T, R + * @param {function(!T): !R} parser + * @return {function(!Array): !Array} + */ +parseArray = function(parser) { + return function(array) { + return array.map(parser); + }; +}; +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * @template T, R<~ + * @param {function(!T): !R} parser + * @return {function(!Array): !Array} + */ +parseArray = function(parser) { + return function(array) { + return array.map(parser); + }; +}; +// Settings: {"jsdoc":{"mode":"jsdoc"}} + +/** + * @template {string} K - K must be a string or string literal + * @template {{ serious: string }} Seriousalizable - must have a serious property + * @param {K} key + * @param {Seriousalizable} object + */ +function seriousalize(key, object) { + // ???? +} +// Settings: {"jsdoc":{"mode":"typescript"}} + +/** + * @module foo/bar + */ + +/** + * @module module:foo/bar + */ + +/** + * @template invalid namepath,T Description + */ +function f() {} +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * Description of complicated type. + * + * @template T Description of the T type parameter. + * @template U - Like other tags, this can have an optional hyphen before the description. + * @template V,W More parameters + * @template W,X - Also with a hyphen + */ +type ComplicatedType = never + +/** Multi-line typedef for an options object type. + * + * @typedef {{ + * prop: number + * }} MyOptions + */ + +/** + * @extends {SomeType} + */ +class quux {} +// Settings: {"jsdoc":{"mode":"typescript"}} + +/** + * @suppress {visibility|underscore} + */ +function quux() { +} +// Settings: {"jsdoc":{"mode":"closure"}} + +/** + * @param {string} id + * @param {Object} options + * @param {boolean} options.isSet + * @param {string} options.module + */ +function quux ( id, options ) { +} + + +/** + * Assign the project to a list of employees. + * @param {Object[]} employees - The employees who are responsible for the project. + * @param {string} employees[].name - The name of an employee. + * @param {string} employees[].department - The employee's department. + */ +function assign(employees) { + // ... +} +// "jsdoc/valid-types": ["error"|"warn", {"allowEmptyNamepaths":true}] + +/** + * @param {typeof obj["level1"]["level2"]} foo + * @param {Parameters[0]} ghi + * @param {{[key: string]: string}} hjk + */ +function quux() { + +} +// Settings: {"jsdoc":{"mode":"typescript"}} +```` + diff --git a/docs/settings.md b/docs/settings.md new file mode 100644 index 000000000..c97878327 --- /dev/null +++ b/docs/settings.md @@ -0,0 +1,355 @@ + + +## Settings + +* [Allow tags (`@private` or `@internal`) to disable rules for that comment block](#user-content-settings-allow-tags-private-or-internal-to-disable-rules-for-that-comment-block) +* [`maxLines` and `minLines`](#user-content-settings-maxlines-and-minlines) +* [Mode](#user-content-settings-mode) +* [Alias Preference](#user-content-settings-alias-preference) + * [Default Preferred Aliases](#user-content-settings-alias-preference-default-preferred-aliases) +* [`@override`/`@augments`/`@extends`/`@implements`/`@ignore` Without Accompanying `@param`/`@description`/`@example`/`@returns`/`@throws`/`@yields`](#user-content-settings-override-augments-extends-implements-ignore-without-accompanying-param-description-example-returns-throws-yields) +* [Settings to Configure `check-types` and `no-undefined-types`](#user-content-settings-settings-to-configure-check-types-and-no-undefined-types) +* [`structuredTags`](#user-content-settings-structuredtags) +* [`contexts`](#user-content-settings-contexts) + + + + +### Allow tags (@private or @internal) to disable rules for that comment block + +- `settings.jsdoc.ignorePrivate` - Disables all rules for the comment block + on which a `@private` tag (or `@access private`) occurs. Defaults to + `false`. Note: This has no effect with the rule `check-access` (whose + purpose is to check access modifiers) or `empty-tags` (which checks + `@private` itself). +- `settings.jsdoc.ignoreInternal` - Disables all rules for the comment block + on which a `@internal` tag occurs. Defaults to `false`. Note: This has no + effect with the rule `empty-tags` (which checks `@internal` itself). + + + +### maxLines and minLines + +One can use `minLines` and `maxLines` to indicate how many line breaks +(if any) will be checked to find a jsdoc comment block before the given +code block. These settings default to `0` and `1` respectively. + +In conjunction with the `require-jsdoc` rule, these settings can +be enforced so as to report problems if a jsdoc block is not found within +the specified boundaries. The settings are also used in the fixer to determine +how many line breaks to add when a block is missing. + + + +### Mode + +- `settings.jsdoc.mode` - Set to `typescript`, `closure`, or `jsdoc` (the + default unless the `@typescript-eslint` parser is in use in which case + `typescript` will be the default). + Note that if you do not wish to use separate `.eslintrc.*` files for a + project containing both JavaScript and TypeScript, you can also use + [`overrides`](https://eslint.org/docs/user-guide/configuring). You may also + set to `"permissive"` to try to be as accommodating to any of the styles, + but this is not recommended. Currently is used for the following: + - `check-tag-names`: Determine valid tags and aliases + - `no-undefined-types`: Only check `@template` for types in "closure" and + "typescript" modes + - `check-syntax`: determines aspects that may be enforced + - `valid-types`: in non-Closure mode, `@extends`, `@package` and access tags + (e.g., `@private`) with a bracketed type are reported as are missing + names with `@typedef` + - For type/namepath-checking rules, determine which tags will be checked for + types/namepaths (Closure allows types on some tags which the others do not, + so these tags will additionally be checked in "closure" mode) + - For type-checking rules, impacts parsing of types (through + [jsdoc-type-pratt-parser](https://github.com/simonseyock/jsdoc-type-pratt-parser) + dependency) + - Check preferred tag names + - Disallows namepath on `@interface` for "closure" mode in `valid-types` (and + avoids checking in other rules) + + + +### Alias Preference + +Use `settings.jsdoc.tagNamePreference` to configure a preferred alias name for +a JSDoc tag. The format of the configuration is: +`: `, e.g. + +```json +{ + "rules": {}, + "settings": { + "jsdoc": { + "tagNamePreference": { + "param": "arg", + "returns": "return" + } + } + } +} +``` + +Note: ESLint does not allow settings to have keys which conflict with +`Object.prototype` e.g. `'constructor'`. To work around this, you can use the +key `'tag constructor'`. + +One may also use an object with a `message` and `replacement`. + +The following will report the message +`@extends is to be used over @augments as it is more evocative of classes than @augments` +upon encountering `@augments`. + +```json +{ + "rules": {}, + "settings": { + "jsdoc": { + "tagNamePreference": { + "augments": { + "message": "@extends is to be used over @augments as it is more evocative of classes than @augments", + "replacement": "extends" + } + } + } + } +} +``` + +If one wishes to reject a normally valid tag, e.g., `@todo`, one may set the +tag to `false`: + +```json +{ + "rules": {}, + "settings": { + "jsdoc": { + "tagNamePreference": { + "todo": false + } + } + } +} +``` + +A project wishing to ensure no blocks are left excluded from entering the +documentation, might wish to prevent the `@ignore` tag in the above manner. + +Or one may set the targeted tag to an object with a custom `message`, but +without a `replacement` property: + +```json +{ + "rules": {}, + "settings": { + "jsdoc": { + "tagNamePreference": { + "todo": { + "message": "We expect immediate perfection, so don't leave to-dos in your code." + } + } + } + } +} +``` + +Note that the preferred tags indicated in the +`settings.jsdoc.tagNamePreference` map will be assumed to be defined by +`check-tag-names`. + +See `check-tag-names` for how that fact can be used to set an alias to itself +to allow both the alias and the default (since aliases are otherwise not +permitted unless used in `tagNamePreference`). + + + +#### Default Preferred Aliases + +The defaults in `eslint-plugin-jsdoc` (for tags which offer +aliases) are as follows: + +- `@abstract` (over `@virtual`) +- `@augments` (over `@extends`) +- `@class` (over `@constructor`) +- `@constant` (over `@const`) +- `@default` (over `@defaultvalue`) +- `@description` (over `@desc`) +- `@external` (over `@host`) +- `@file` (over `@fileoverview`, `@overview`) +- `@fires` (over `@emits`) +- `@function` (over `@func`, `@method`) +- `@member` (over `@var`) +- `@param` (over `@arg`, `@argument`) +- `@property` (over `@prop`) +- `@returns` (over `@return`) +- `@throws` (over `@exception`) +- `@yields` (over `@yield`) + +This setting is utilized by the the rule for tag name checking +(`check-tag-names`) as well as in the `@param` and `@require` rules: + +- `check-param-names` +- `check-tag-names` +- `require-hyphen-before-param-description` +- `require-description` +- `require-param` +- `require-param-description` +- `require-param-name` +- `require-param-type` +- `require-returns` +- `require-returns-check` +- `require-returns-description` +- `require-returns-type` + + + +### @override/@augments/@extends/@implements/@ignore Without Accompanying @param/@description/@example/@returns/@throws/@yields + +The following settings allows the element(s) they reference to be omitted +on the JSDoc comment block of the function or that of its parent class +for any of the "require" rules (i.e., `require-param`, `require-description`, +`require-example`, `require-returns`, `require-throws`, `require-yields`). + +* `settings.jsdoc.ignoreReplacesDocs` (`@ignore`) - Defaults to `true` +* `settings.jsdoc.overrideReplacesDocs` (`@override`) - Defaults to `true` +* `settings.jsdoc.augmentsExtendsReplacesDocs` (`@augments` or its alias + `@extends`) - Defaults to `false`. +* `settings.jsdoc.implementsReplacesDocs` (`@implements`) - Defaults to `false` + +The format of the configuration is as follows: + +```json +{ + "rules": {}, + "settings": { + "jsdoc": { + "ignoreReplacesDocs": true, + "overrideReplacesDocs": true, + "augmentsExtendsReplacesDocs": true, + "implementsReplacesDocs": true + } + } +} +``` + + + +### Settings to Configure check-types and no-undefined-types + +- `settings.jsdoc.preferredTypes` An option map to indicate preferred + or forbidden types (if default types are indicated here, these will + have precedence over the default recommendations for `check-types`). + The keys of this map are the types to be replaced (or forbidden). + These keys may include: + 1. The "ANY" type, `*` + 1. The pseudo-type `[]` which we use to denote the parent (array) + types used in the syntax `string[]`, `number[]`, etc. + 1. The pseudo-type `.<>` (or `.`) to represent the format `Array.` + or `Object.` + 1. The pseudo-type `<>` to represent the format `Array` or + `Object` + 1. A plain string type, e.g., `MyType` + 1. A plain string type followed by one of the above pseudo-types (except + for `[]` which is always assumed to be an `Array`), e.g., `Array.`, or + `SpecialObject<>`. + + If a bare pseudo-type is used, it will match all parent types of that form. + If a pseudo-type prefixed with a type name is used, it will only match + parent types of that form and type name. + + The values can be: + - `false` to forbid the type + - a string to indicate the type that should be preferred in its place + (and which `fix` mode can replace); this can be one of the formats + of the keys described above. + - Note that the format will not be changed unless you use a pseudo-type + in the replacement. (For example, `'Array.<>': 'MyArray'` will change + `Array.` to `MyArray.`, preserving the dot. To get rid + of the dot, you must use the pseudo-type with `<>`, i.e., + `'Array.<>': 'MyArray<>'`, which will change `Array.` to + `MyArray`). + - If you use a _bare_ pseudo-type in the replacement (e.g., + `'MyArray.<>': '<>'`), the type will be converted to the format + of the pseudo-type without changing the type name. For example, + `MyArray.` will become `MyArray` but `Array.` + will not be modified. + - an object with: + - the key `message` to provide a specific error message + when encountering the discouraged type. + - The message string will have the substrings with special meaning, + `{{tagName}}` and `{{tagValue}}`, replaced with their + corresponding value. + - an optional key `replacement` with either of the following values: + - a string type to be preferred in its place (and which `fix` mode + can replace) + - `false` (for forbidding the type) + - an optional key `skipRootChecking` (for `check-types`) to allow for this + type in the context of a root (i.e., a parent object of some child type) + +Note that the preferred types indicated as targets in +`settings.jsdoc.preferredTypes` map will be assumed to be defined by +`no-undefined-types`. + +See the option of `check-types`, `unifyParentAndChildTypeChecks`, for +how the keys of `preferredTypes` may have `<>` or `.<>` (or just `.`) +appended and its bearing on whether types are checked as parents/children +only (e.g., to match `Array` if the type is `Array` vs. `Array.`). + +Note that if a value is present both as a key and as a value, neither the +key nor the value will be reported. Thus in `check-types`, this fact can +be used to allow both `object` and `Object` if one has a `preferredTypes` +key `object: 'Object'` and `Object: 'object'`. + + + +### structuredTags + +An object indicating tags whose types and names/namepaths (whether defining or +referencing namepaths) will be checked, subject to configuration. If the tags +have predefined behavior or `allowEmptyNamepaths` behavior, this option will +override that behavior for any specified tags, though this option can also be +used for tags without predefined behavior. Its keys are tag names and its +values are objects with the following optional properties: + - `name` - String set to one of the following: + - `"text"` - When a name is present, plain text will be allowed in the + name position (non-whitespace immediately after the tag and whitespace), + e.g., in `@throws This is an error`, "This" would normally be the name, + but "text" allows non-name text here also. This is the default. + - `"namepath-defining"` - As with `namepath-referencing`, but also + indicates the tag adds a namepath to definitions, e.g., to prevent + `no-undefined-types` from reporting references to that namepath. + - `"namepath-referencing"` - This will cause any name position to be + checked to ensure it is a valid namepath. You might use this to ensure + that tags which normally allow free text, e.g., `@see` will instead + require a namepath. + - `false` - This will disallow any text in the name position. + - `type`: + - `true` - Allows valid types within brackets. This is the default. + - `false` - Explicitly disallows any brackets or bracketed type. You + might use this with `@throws` to suggest that only free form text + is being input or with `@augments` (for jsdoc mode) to disallow + Closure-style bracketed usage along with a required namepath. + - (An array of strings) - A list of permissible types. + - `required` - Array of one of the following (defaults to an empty array, + meaning none are required): + - One or both of the following strings (if both are included, then both + are required): + - `"name"` - Indicates that a name position is required (not just that + if present, it is a valid namepath). You might use this with `see` + to insist that a value (or namepath, depending on the `name` value) + is always present. + - `"type"` - Indicates that the type position (within curly brackets) + is required (not just that if present, it is a valid type). You + might use this with `@throws` or `@typedef` which might otherwise + normally have their types optional. See the type groups 3-5 above. + - `"typeOrName"` - Must have either type (e.g., `@throws {aType}`) or + name (`@throws Some text`); does not require that both exist but + disallows just an empty tag. + + + +### contexts + +`settings.jsdoc.contexts` can be used as the default for any rules +with a `contexts` property option. See the "AST and Selectors" section +for more on this format. diff --git a/package.json b/package.json index 7c1a61767..11165f9ac 100644 --- a/package.json +++ b/package.json @@ -108,8 +108,8 @@ }, "scripts": { "build": "rimraf ./dist && cross-env NODE_ENV=production babel ./src --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored", - "check-readme": "babel-node ./src/bin/generateReadme.js --check", - "create-readme": "babel-node ./src/bin/generateReadme.js", + "check-readme": "babel-node ./src/bin/generateDocs.js --check", + "create-readme": "babel-node ./src/bin/generateDocs.js", "create-rule": "babel-node ./src/bin/generateRule.js", "install-offline": "npm install --prefer-offline --no-audit", "lint": "npm run lint-arg -- .", diff --git a/src/bin/generateDocs.js b/src/bin/generateDocs.js new file mode 100644 index 000000000..243d13f91 --- /dev/null +++ b/src/bin/generateDocs.js @@ -0,0 +1,256 @@ +/** + * This script is used to inline assertions into the README.md documents. + */ +import fs from 'fs'; +import path from 'path'; +import decamelize from 'decamelize'; +import Gitdown from 'gitdown'; +import glob from 'glob'; + +const trimCode = (code) => { + let lines = code.replace(/^\n/u, '').trimEnd().split('\n'); + + const firsLineIndentation = lines[0].match(/^\s+/u); + const lastLineIndentation = lines[lines.length - 1].match(/^\s+/u); + + const firstIndentSize = firsLineIndentation ? firsLineIndentation[0].length : 0; + const lastIndentSize = lastLineIndentation ? lastLineIndentation[0].length : 0; + + lines = lines.map((line, index) => { + const lineIndentSize = firstIndentSize !== 0 || index === 0 ? + Math.min(firstIndentSize, lastIndentSize) : + lastIndentSize; + + return line.slice(lineIndentSize); + }); + + return lines.join('\n').replaceAll('\r', '\\r'); +}; + +const formatCodeSnippet = (setup, ruleName) => { + const paragraphs = []; + + paragraphs.push(trimCode(setup.code)); + + if (setup.settings) { + paragraphs.push(`// Settings: ${JSON.stringify(setup.settings)}`); + } + + if (setup.options) { + paragraphs.push(`// "jsdoc/${ruleName}": ["error"|"warn", ${JSON.stringify(setup.options).slice(1)}`); + } + + if (setup.errors) { + paragraphs.push(`// Message: ${setup.errors[0].message}`); + } + + return paragraphs.join('\n'); +}; + +const getAssertions = () => { + const assertionFiles = glob.sync(path.resolve(__dirname, '../../test/rules/assertions/*.js')).filter((file) => { + return !file.includes('flatConfig'); + }); + + const assertionNames = assertionFiles.map((filePath) => { + return path.basename(filePath, '.js'); + }); + + const assertionCodes = assertionFiles.map((filePath, idx) => { + // eslint-disable-next-line import/no-dynamic-require + const codes = require(filePath); + + const ruleName = decamelize(assertionNames[idx], { + separator: '-', + }); + + return { + invalid: codes.invalid.filter(({ + ignoreReadme, + }) => { + return !ignoreReadme; + }).map((setup) => { + return formatCodeSnippet(setup, ruleName); + }), + valid: codes.valid.filter(({ + ignoreReadme, + }) => { + return !ignoreReadme; + }).map((setup) => { + return formatCodeSnippet(setup, ruleName); + }), + }; + }); + + return { + assertionNames, + assertions: Object.fromEntries(assertionNames.map((assertionName, index) => { + return [ + assertionName, assertionCodes[index], + ]; + })), + }; +}; + +const getSomeBranch = () => { + const gitConfig = fs.readFileSync(path.join(__dirname, '../../.git/config')).toString(); + const [ + , branch, + ] = /\[branch "([^"]+)"\]/u.exec(gitConfig) || []; + + return branch; +}; + +// Scan the directory for these instead? +const extraFiles = [ + 'settings.md', + 'advanced.md', + 'README.md', +]; + +const otherPaths = extraFiles.map((extraFile) => { + return path.join(__dirname, '..', '..', '.README', extraFile); +}); + +const generateDocs = async () => { + const { + assertions, + assertionNames, + } = getAssertions(); + + const docContents = await Promise.all([ + ...assertionNames.map((assertionName) => { + return path.join( + __dirname, '..', '..', '.README', 'rules', decamelize(assertionName, { + separator: '-', + }) + '.md', + ); + }), + ...otherPaths, + ].map((docPath) => { + const gitdown = Gitdown.readFile(docPath); + + gitdown.setConfig({ + gitinfo: { + defaultBranchName: getSomeBranch() || 'master', + gitPath: path.join(__dirname, '../../.git'), + }, + }); + + return gitdown.get(); + })); + + return docContents.map((docContent) => { + return docContent.replace( + //gui, + (assertionsBlock, ruleName) => { + const ruleAssertions = assertions[ruleName]; + + if (!ruleAssertions) { + throw new Error(`No assertions available for rule "${ruleName}".`); + } + + return '## Failing examples\n\nThe following patterns are considered problems:\n\n````js\n' + + ruleAssertions.invalid.join('\n\n') + '\n````\n\n' + + '## Passing examples\n\nThe following patterns are not considered problems:\n\n````js\n' + + ruleAssertions.valid.join('\n\n') + '\n````\n'; + }, + // Allow relative paths in source for #902 but generate compiled file in + // manner compatible with GitHub and npmjs.com + ).replace(/\(\.\.\/#/gu, '(#user-content-eslint-plugin-jsdoc-'); + }); +}; + +const getDocPaths = () => { + const basePath = path.join(__dirname, '..', '..', '.README'); + const writeBasePath = path.join(__dirname, '..', '..', 'docs'); + const docPaths = fs.readdirSync(basePath).flatMap((docFile) => { + if (extraFiles.includes(docFile)) { + // Will get path separately below + return null; + } + + const innerBasePath = path.join(basePath, docFile); + const writeInnerBasePath = path.join(writeBasePath, docFile); + const stat = fs.statSync(innerBasePath); + if (stat.isFile()) { + // Currently settings and advanced + return writeInnerBasePath; + } + + if (stat.isDirectory()) { + return fs.readdirSync(innerBasePath).map((innerDocFile) => { + return path.join(writeInnerBasePath, innerDocFile); + }); + } + + return null; + }).filter((file) => { + return file; + }); + + return [ + ...docPaths, + ...extraFiles.slice(0, -1).map((extraFile) => { + return path.join(__dirname, '..', '..', 'docs', extraFile); + }), + path.join(__dirname, '..', '..', 'README.md'), + ]; +}; + +const generateDocsAndWriteToDisk = async () => { + const [ + docContents, + docPaths, + ] = await Promise.all([ + generateDocs(), getDocPaths(), + ]); + for (const [ + idx, + docContent, + ] of docContents.entries()) { + const destPath = docPaths[idx]; + fs.writeFileSync(destPath, docContent); + } +}; + +const assertDocsAreUpToDate = async () => { + const [ + docContents, + docPaths, + ] = await Promise.all([ + generateDocs(), getDocPaths(), + ]); + for (const [ + idx, + docContent, + ] of docContents.entries()) { + const docPath = docPaths[idx]; + const isUpToDate = fs.readFileSync(docPath, 'utf8') === docContent; + + if (!isUpToDate) { + throw new Error('Readme is not up to date, please run `npm run create-readme` to update it.'); + } + } +}; + +const main = async () => { + try { + const hasCheckFlag = process.argv.includes('--check'); + + if (hasCheckFlag) { + await assertDocsAreUpToDate(); + } else { + await generateDocsAndWriteToDisk(); + } + } catch (error) { + /* eslint-disable-next-line no-console */ + console.error(error); + + process.exit(1); + } +}; + +main(); + +export default generateDocs; diff --git a/src/bin/generateReadme.js b/src/bin/generateReadme.js deleted file mode 100644 index 176f409f1..000000000 --- a/src/bin/generateReadme.js +++ /dev/null @@ -1,167 +0,0 @@ -/** - * This script is used to inline assertions into the README.md documents. - */ -import fs from 'fs'; -import path from 'path'; -import decamelize from 'decamelize'; -import Gitdown from 'gitdown'; -import glob from 'glob'; - -const trimCode = (code) => { - let lines = code.replace(/^\n/u, '').trimEnd() - .split('\n'); - - const firsLineIndentation = lines[0].match(/^\s+/u); - const lastLineIndentation = lines[lines.length - 1].match(/^\s+/u); - - const firstIndentSize = firsLineIndentation ? firsLineIndentation[0].length : 0; - const lastIndentSize = lastLineIndentation ? lastLineIndentation[0].length : 0; - - lines = lines.map((line, index) => { - const lineIndentSize = firstIndentSize !== 0 || index === 0 ? - Math.min(firstIndentSize, lastIndentSize) : - lastIndentSize; - - return line.slice(lineIndentSize); - }); - - return lines.join('\n').replaceAll('\r', '\\r'); -}; - -const formatCodeSnippet = (setup, ruleName) => { - const paragraphs = []; - - paragraphs.push(trimCode(setup.code)); - - if (setup.settings) { - paragraphs.push(`// Settings: ${JSON.stringify(setup.settings)}`); - } - - if (setup.options) { - paragraphs.push(`// "jsdoc/${ruleName}": ["error"|"warn", ${JSON.stringify(setup.options).slice(1)}`); - } - - if (setup.errors) { - paragraphs.push(`// Message: ${setup.errors[0].message}`); - } - - return paragraphs.join('\n'); -}; - -const getAssertions = () => { - const assertionFiles = glob.sync(path.resolve(__dirname, '../../test/rules/assertions/*.js').replaceAll('\\', '/')).filter((file) => { - return !file.includes('flatConfig'); - }); - - const assertionNames = assertionFiles.map((filePath) => { - return path.basename(filePath, '.js'); - }); - - const assertionCodes = assertionFiles.map((filePath, idx) => { - // eslint-disable-next-line import/no-dynamic-require - const codes = require(filePath); - - const ruleName = decamelize(assertionNames[idx], { - separator: '-', - }); - - return { - invalid: codes.invalid.filter(({ - ignoreReadme, - }) => { - return !ignoreReadme; - }).map((setup) => { - return formatCodeSnippet(setup, ruleName); - }), - valid: codes.valid.filter(({ - ignoreReadme, - }) => { - return !ignoreReadme; - }).map((setup) => { - return formatCodeSnippet(setup, ruleName); - }), - }; - }); - - return Object.fromEntries(assertionNames.map((assertionName, index) => { - return [ - assertionName, assertionCodes[index], - ]; - })); -}; - -const getSomeBranch = () => { - const gitConfig = fs.readFileSync(path.join(__dirname, '../../.git/config')).toString(); - const [ - , branch, - ] = /\[branch "([^"]+)"\]/u.exec(gitConfig) || []; - - return branch; -}; - -const generateReadme = async () => { - const assertions = getAssertions(); - const gitdown = Gitdown.readFile(path.join(__dirname, '../../.README/README.md')); - - gitdown.setConfig({ - gitinfo: { - defaultBranchName: getSomeBranch() || 'master', - gitPath: path.join(__dirname, '../../.git'), - }, - }); - let documentBody = await gitdown.get(); - - documentBody = documentBody.replace(//gui, (assertionsBlock) => { - const ruleName = assertionsBlock.match(/assertions ([a-z]+)/ui)[1]; - const ruleAssertions = assertions[ruleName]; - - if (!ruleAssertions) { - throw new Error(`No assertions available for rule "${ruleName}".`); - } - - return 'The following patterns are considered problems:\n\n````js\n' + ruleAssertions.invalid.join('\n\n') + - '\n````\n\nThe following patterns are not considered problems:\n\n````js\n' + ruleAssertions.valid.join('\n\n') + '\n````\n'; - - // Allow relative paths in source for #902 but generate compiled file in - // manner compatible with GitHub and npmjs.com - }).replace(/\(\.\.\/#/gu, '(#user-content-eslint-plugin-jsdoc-'); - - return documentBody; -}; - -const generateReadmeAndWriteToDisk = async () => { - const readme = await generateReadme(); - const dist = path.join(__dirname, '..', '..', 'README.md'); - fs.writeFileSync(dist, readme); -}; - -const assertReadmeIsUpToDate = async () => { - const readme = await generateReadme(); - const readmePath = path.join(__dirname, '..', '..', 'README.md'); - - const isUpToDate = fs.readFileSync(readmePath).toString() === readme; - - if (!isUpToDate) { - throw new Error('Readme is not up to date, please run `npm run create-readme` to update it.'); - } -}; - -const main = async () => { - try { - const hasCheckFlag = process.argv.includes('--check'); - - if (hasCheckFlag) { - await assertReadmeIsUpToDate(); - } else { - await generateReadmeAndWriteToDisk(); - } - } catch (error) { - /* eslint-disable-next-line no-console */ - console.error(error); - process.exit(1); - } -}; - -main(); - -export default generateReadme; From a13fa189321ad61e860b2273d52e41d919717d81 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 24 Apr 2023 19:38:11 -0700 Subject: [PATCH 058/273] docs: add TOC to rule files; add fixer placeholder sections --- .README/rules/check-access.md | 14 +++- .README/rules/check-alignment.md | 18 ++++- .README/rules/check-examples.md | 30 ++++--- .README/rules/check-indentation.md | 18 ++++- .README/rules/check-line-alignment.md | 28 +++++-- .README/rules/check-param-names.md | 37 ++++++--- .README/rules/check-property-names.md | 22 ++++- .README/rules/check-syntax.md | 14 +++- .README/rules/check-tag-names.md | 28 +++++-- .README/rules/check-types.md | 24 +++++- .README/rules/check-values.md | 24 ++++-- .README/rules/empty-tags.md | 21 ++++- .README/rules/implements-on-classes.md | 18 ++++- .README/rules/informative-docs.md | 20 +++-- .README/rules/match-description.md | 26 ++++-- .README/rules/match-name.md | 18 ++++- .README/rules/multiline-blocks.md | 34 +++++--- .README/rules/no-bad-blocks.md | 22 ++++- .README/rules/no-blank-block-descriptions.md | 16 +++- .README/rules/no-blank-blocks.md | 16 +++- .README/rules/no-defaults.md | 24 ++++-- .README/rules/no-missing-syntax.md | 18 ++++- .README/rules/no-multi-asterisks.md | 24 ++++-- .README/rules/no-restricted-syntax.md | 18 ++++- .README/rules/no-types.md | 22 ++++- .README/rules/no-undefined-types.md | 17 +++- .README/rules/require-asterisk-prefix.md | 20 ++++- .../require-description-complete-sentence.md | 25 ++++-- .README/rules/require-description.md | 28 ++++--- .README/rules/require-example.md | 38 +++++---- .README/rules/require-file-overview.md | 18 ++++- ...require-hyphen-before-param-description.md | 20 ++++- .README/rules/require-jsdoc.md | 42 +++++++--- .README/rules/require-param-description.md | 22 +++-- .README/rules/require-param-name.md | 20 +++-- .README/rules/require-param-type.md | 24 ++++-- .README/rules/require-param.md | 56 +++++++------ .README/rules/require-property-description.md | 14 +++- .README/rules/require-property-name.md | 16 +++- .README/rules/require-property-type.md | 16 +++- .README/rules/require-property.md | 18 ++++- .README/rules/require-returns-check.md | 23 ++++-- .README/rules/require-returns-description.md | 18 ++++- .README/rules/require-returns-type.md | 20 +++-- .README/rules/require-returns.md | 18 ++++- .README/rules/require-throws.md | 16 +++- .README/rules/require-yields-check.md | 17 +++- .README/rules/require-yields.md | 16 +++- .README/rules/sort-tags.md | 30 +++++-- .README/rules/tag-lines.md | 30 +++++-- .README/rules/text-escaping.md | 24 ++++-- .README/rules/valid-types.md | 22 +++-- docs/rules/check-access.md | 17 +++- docs/rules/check-alignment.md | 24 +++++- docs/rules/check-examples.md | 41 +++++++--- docs/rules/check-indentation.md | 23 +++++- docs/rules/check-line-alignment.md | 39 +++++++-- docs/rules/check-param-names.md | 52 +++++++++--- docs/rules/check-property-names.md | 30 ++++++- docs/rules/check-syntax.md | 17 +++- docs/rules/check-tag-names.md | 39 +++++++-- docs/rules/check-types.md | 35 +++++++- docs/rules/check-values.md | 32 ++++++-- docs/rules/empty-tags.md | 31 +++++-- docs/rules/implements-on-classes.md | 23 +++++- docs/rules/informative-docs.md | 26 +++++- docs/rules/match-description.md | 35 ++++++-- docs/rules/match-name.md | 30 ++++--- docs/rules/multiline-blocks.md | 72 ++++++++++------- docs/rules/no-bad-blocks.md | 36 ++++++--- docs/rules/no-blank-block-descriptions.md | 18 +++++ docs/rules/no-blank-blocks.md | 27 +++++-- docs/rules/no-defaults.md | 33 +++++++- docs/rules/no-missing-syntax.md | 23 +++++- docs/rules/no-multi-asterisks.md | 42 +++++++--- docs/rules/no-restricted-syntax.md | 23 +++++- docs/rules/no-types.md | 30 ++++++- docs/rules/no-undefined-types.md | 21 ++++- docs/rules/require-asterisk-prefix.md | 30 +++++-- .../require-description-complete-sentence.md | 32 ++++++-- docs/rules/require-description.md | 33 ++++++-- docs/rules/require-example.md | 54 +++++++++---- docs/rules/require-file-overview.md | 23 +++++- ...require-hyphen-before-param-description.md | 27 ++++++- docs/rules/require-jsdoc.md | 59 +++++++++++--- docs/rules/require-param-description.md | 80 ++++++++++++++----- docs/rules/require-param-name.md | 29 +++++-- docs/rules/require-param-type.md | 25 +++++- docs/rules/require-param.md | 31 +++++-- docs/rules/require-property-description.md | 22 ++++- docs/rules/require-property-name.md | 17 +++- docs/rules/require-property-type.md | 19 ++++- docs/rules/require-property.md | 19 ++++- docs/rules/require-returns-check.md | 22 ++++- docs/rules/require-returns-description.md | 27 +++++-- docs/rules/require-returns-type.md | 23 +++++- docs/rules/require-returns.md | 25 +++++- docs/rules/require-throws.md | 20 ++++- docs/rules/require-yields-check.md | 20 ++++- docs/rules/require-yields.md | 21 ++++- docs/rules/sort-tags.md | 42 ++++++++-- docs/rules/tag-lines.md | 42 ++++++++-- docs/rules/text-escaping.md | 33 +++++++- docs/rules/valid-types.md | 26 +++++- src/bin/generateDocs.js | 13 +-- 105 files changed, 2236 insertions(+), 579 deletions(-) diff --git a/.README/rules/check-access.md b/.README/rules/check-access.md index 565737c37..1263ae2e6 100644 --- a/.README/rules/check-access.md +++ b/.README/rules/check-access.md @@ -1,4 +1,6 @@ -### `check-access` +# `check-access` + +{"gitdown": "contents", "rootId": "check-access"} Checks that `@access` tags use one of the following values: @@ -11,6 +13,8 @@ Also reports: - Use of multiple instances of `@access` (or the `@public`, etc. style tags) on the same doc block. +## Context and settings + ||| |---|---| |Context|everywhere| @@ -19,4 +23,10 @@ Also reports: |Settings|| |Options|| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/check-alignment.md b/.README/rules/check-alignment.md index 8a280600e..8b2c0060a 100644 --- a/.README/rules/check-alignment.md +++ b/.README/rules/check-alignment.md @@ -1,11 +1,25 @@ -### `check-alignment` +# `check-alignment` + +{"gitdown": "contents", "rootId": "check-alignment"} Reports invalid alignment of JSDoc block asterisks. +## Fixer + +Fixes alignment. + +## Context and settings + ||| |---|---| |Context|everywhere| |Tags|N/A| |Recommended|true| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/check-examples.md b/.README/rules/check-examples.md index d3f12321c..26d4632e9 100644 --- a/.README/rules/check-examples.md +++ b/.README/rules/check-examples.md @@ -1,4 +1,6 @@ -### `check-examples` +# `check-examples` + +{"gitdown": "contents", "rootId": "check-examples"} > **NOTE**: This rule currently does not work in ESLint 8 (we are waiting for > [issue 14745](https://github.com/eslint/eslint/issues/14745)). @@ -7,11 +9,11 @@ Ensures that (JavaScript) examples within JSDoc adhere to ESLint rules. Also has options to lint the default values of optional `@param`/`@arg`/`@argument` and `@property`/`@prop` tags or the values of `@default`/`@defaultvalue` tags. -#### Options +## Options The options below all default to no-op/`false` except as noted. -##### `captionRequired` +### `captionRequired` JSDoc specs use of an optional `` element at the beginning of `@example`. @@ -21,7 +23,7 @@ the beginning of any `@example`. Used only for `@example`. -##### `exampleCodeRegex` and `rejectExampleCodeRegex` +### `exampleCodeRegex` and `rejectExampleCodeRegex` JSDoc does not specify a formal means for delimiting code blocks within `@example` (it uses generic syntax highlighting techniques for its own @@ -49,7 +51,7 @@ If neither is in use, all examples will be matched. Note also that even if `captionRequired` is not set, any initial `` will be stripped out before doing the regex matching. -##### `paddedIndent` +### `paddedIndent` This integer property allows one to add a fixed amount of whitespace at the beginning of the second or later lines of the example to be stripped so as @@ -69,7 +71,7 @@ out before evaluation. Only applied to `@example` linting. -##### `reportUnusedDisableDirectives` +### `reportUnusedDisableDirectives` If not set to `false`, `reportUnusedDisableDirectives` will report disabled directives which are not used (and thus not needed). Defaults to `true`. @@ -80,7 +82,7 @@ Inline ESLint config within `@example` JavaScript is allowed (or within needed by the resolved rules will be reported as with the ESLint `--report-unused-disable-directives` command. -#### Options for Determining ESLint Rule Applicability (`allowInlineConfig`, `noDefaultExampleRules`, `matchingFileName`, `configFile`, `checkEslintrc`, and `baseConfig`) +## Options for Determining ESLint Rule Applicability (`allowInlineConfig`, `noDefaultExampleRules`, `matchingFileName`, `configFile`, `checkEslintrc`, and `baseConfig`) The following options determine which individual ESLint rules will be applied to the JavaScript found within the `@example` tags (as determined @@ -131,7 +133,7 @@ by decreasing precedence: * `baseConfig` - Set to an object of rules with the same schema as `.eslintrc.*` for defaults. -##### Rules Disabled by Default Unless `noDefaultExampleRules` is Set to `true` +### Rules Disabled by Default Unless `noDefaultExampleRules` is Set to `true` * `eol-last` - Insisting that a newline "always" be at the end is less likely to be desired in sample code as with the code file convention. @@ -166,12 +168,14 @@ expression-oriented rules will be used by default as well: * `no-unused-expressions` - Disabled. * `chai-friendly/no-unused-expressions` - Disabled. -##### Options for checking other than `@example` (`checkDefaults`, `checkParams`, or `checkProperties`) +### Options for checking other than `@example` (`checkDefaults`, `checkParams`, or `checkProperties`) * `checkDefaults` - Whether to check the values of `@default`/`@defaultvalue` tags * `checkParams` - Whether to check `@param`/`@arg`/`@argument` default values * `checkProperties` - Whether to check `@property`/`@prop` default values +## Context and settings + ||| |---|---| |Context|everywhere| @@ -179,4 +183,10 @@ expression-oriented rules will be used by default as well: |Recommended|false| |Options| *See above* | - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/check-indentation.md b/.README/rules/check-indentation.md index 88f88cf39..03c6517cb 100644 --- a/.README/rules/check-indentation.md +++ b/.README/rules/check-indentation.md @@ -1,4 +1,6 @@ -### `check-indentation` +# `check-indentation` + +{"gitdown": "contents", "rootId": "check-indentation"} Reports invalid padding inside JSDoc blocks. @@ -16,11 +18,11 @@ the following description is not reported: */ ``` -#### Options +## Options This rule has an object option. -##### `excludeTags` +### `excludeTags` Array of tags (e.g., `['example', 'description']`) whose content will be "hidden" from the `check-indentation` rule. Defaults to `['example']`. @@ -42,6 +44,8 @@ report a padding issue: */ ``` +## Context and settings + ||| |---|---| |Context|everywhere| @@ -49,4 +53,10 @@ report a padding issue: |Recommended|false| |Options| `excludeTags` | - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/check-line-alignment.md b/.README/rules/check-line-alignment.md index dd87be7bc..742ce3d06 100644 --- a/.README/rules/check-line-alignment.md +++ b/.README/rules/check-line-alignment.md @@ -1,10 +1,16 @@ -### `check-line-alignment` +# `check-line-alignment` + +{"gitdown": "contents", "rootId": "check-line-alignment"} Reports invalid alignment of JSDoc block lines. This is a [standard recommended to WordPress code](https://make.wordpress.org/core/handbook/best-practices/inline-documentation-standards/javascript/#aligning-comments), for example. -#### Options +## Fixer + +(TODO) + +## Options This rule allows one optional string argument. If it is `"always"` then a problem is raised when the lines are not aligned. If it is `"never"` then @@ -16,12 +22,12 @@ ensure that at least one space is present after the asterisk delimiter. After the string, an options object is allowed with the following properties. -##### `tags` +### `tags` Use this to change the tags which are sought for alignment changes. Defaults to an array of `['param', 'arg', 'argument', 'property', 'prop', 'returns', 'return']`. -##### `customSpacings` +### `customSpacings` An object with any of the following keys set to an integer. Affects spacing: @@ -33,16 +39,18 @@ An object with any of the following keys set to an integer. Affects spacing: If a spacing is not defined, it defaults to one. -##### `preserveMainDescriptionPostDelimiter` +### `preserveMainDescriptionPostDelimiter` A boolean to determine whether to preserve the post-delimiter spacing of the main description. If `false` or unset, will be set to a single space. -##### `wrapIndent` +### `wrapIndent` The indent that will be applied for tag text after the first line. Default to the empty string (no indent). +## Context and settings + ||| |---|---| |Context|everywhere| @@ -51,4 +59,10 @@ Default to the empty string (no indent). |Aliases|`arg`, `argument`, `prop`, `return`| |Recommended|false| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/check-param-names.md b/.README/rules/check-param-names.md index 5015881c1..ef296e501 100644 --- a/.README/rules/check-param-names.md +++ b/.README/rules/check-param-names.md @@ -1,9 +1,15 @@ -### `check-param-names` +# `check-param-names` + +{"gitdown": "contents", "rootId": "check-param-names"} Ensures that parameter names in JSDoc are matched by corresponding items in the function declaration. -#### Destructuring +## Fixer + +(Todo) + +## Destructuring Note that by default the rule will not report parameters present on the docs but non-existing on the function signature when an object rest property is part @@ -28,17 +34,17 @@ other properties, so in looking at the docs alone without looking at the function signature, the disadvantage of enabling this option is that it may appear that there is an actual property named `extra`. -#### Options +## Options -##### `checkRestProperty` +### `checkRestProperty` See the "Destructuring" section. Defaults to `false`. -##### `checkTypesPattern` +### `checkTypesPattern` See `require-param` under the option of the same name. -##### `enableFixer` +### `enableFixer` Set to `true` to auto-remove `@param` duplicates (based on identical names). @@ -47,25 +53,25 @@ Note that this option will remove duplicates of the same name even if the definitions do not match in other ways (e.g., the second param will be removed even if it has a different type or description). -##### `allowExtraTrailingParamDocs` +### `allowExtraTrailingParamDocs` If set to `true`, this option will allow extra `@param` definitions (e.g., representing future expected or virtual params) to be present without needing their presence within the function signature. Other inconsistencies between `@param`'s and present function parameters will still be reported. -##### `checkDestructured` +### `checkDestructured` Whether to check destructured properties. Defaults to `true`. -##### `useDefaultObjectProperties` +### `useDefaultObjectProperties` Set to `true` if you wish to avoid reporting of child property documentation where instead of destructuring, a whole plain object is supplied as default value but you wish its keys to be considered as signalling that the properties are present and can therefore be documented. Defaults to `false`. -##### `disableExtraPropertyReporting` +### `disableExtraPropertyReporting` Whether to check for extra destructured properties. Defaults to `false`. Change to `true` if you want to be able to document properties which are not actually @@ -75,6 +81,8 @@ item at the same level is destructured as destructuring will prevent other access and this option is only intended to permit documenting extra properties that are available and actually used in the function. +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| @@ -82,4 +90,11 @@ that are available and actually used in the function. |Tags|`param`| |Aliases|`arg`, `argument`| |Recommended|true| - + +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/check-property-names.md b/.README/rules/check-property-names.md index 9cfe3f4e8..ab9d7e8fb 100644 --- a/.README/rules/check-property-names.md +++ b/.README/rules/check-property-names.md @@ -1,11 +1,17 @@ -### `check-property-names` +# `check-property-names` + +{"gitdown": "contents", "rootId": "check-property-names"} Ensures that property names in JSDoc are not duplicated on the same block and that nested properties have defined roots. -#### Options +## Fixer + +(Todo) -##### `enableFixer` +## Options + +### `enableFixer` Set to `true` to auto-remove `@property` duplicates (based on identical names). @@ -14,6 +20,8 @@ Note that this option will remove duplicates of the same name even if the definitions do not match in other ways (e.g., the second property will be removed even if it has a different type or description). +## Context and settings + ||| |---|---| |Context|Everywhere| @@ -22,4 +30,10 @@ be removed even if it has a different type or description). |Aliases|`prop`| |Recommended|true| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/check-syntax.md b/.README/rules/check-syntax.md index 260adf2dd..b5ef966bf 100644 --- a/.README/rules/check-syntax.md +++ b/.README/rules/check-syntax.md @@ -1,4 +1,6 @@ -### `check-syntax` +# `check-syntax` + +{"gitdown": "contents", "rootId": "check-syntax"} Reports against syntax not encouraged for the mode (e.g., Google Closure Compiler in "jsdoc" or "typescript" mode). Note that this rule will not check @@ -13,10 +15,18 @@ Note that "jsdoc" actually allows Closure syntax, but with another option available for optional parameters (enclosing the name in brackets), the rule is enforced (except under "permissive" and "closure" modes). +## Context and settings + ||| |---|---| |Context|everywhere| |Tags|N/A| |Recommended|false| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/check-tag-names.md b/.README/rules/check-tag-names.md index f5d20f8ef..02b2a3f79 100644 --- a/.README/rules/check-tag-names.md +++ b/.README/rules/check-tag-names.md @@ -1,4 +1,6 @@ -### `check-tag-names` +# `check-tag-names` + +{"gitdown": "contents", "rootId": "check-tag-names"} Reports invalid block tag names. @@ -190,9 +192,13 @@ tag to `false`: } ``` -#### Options +## Fixer + +(Todo) -##### `definedTags` +## Options + +### `definedTags` Use an array of `definedTags` strings to configure additional, allowed tags. The format is as follows: @@ -203,11 +209,11 @@ The format is as follows: } ``` -##### `enableFixer` +### `enableFixer` Set to `false` to disable auto-removal of types that are redundant with the [`typed` option](#typed). -##### `jsxTags` +### `jsxTags` If this is set to `true`, all of the following tags used to control JSX output are allowed: @@ -220,7 +226,7 @@ jsxRuntime For more information, see the [babel documentation](https://babeljs.io/docs/en/babel-plugin-transform-react-jsx). -##### `typed` +### `typed` If this is set to `true`, additionally checks for tag names that are redundant when using a type checker such as TypeScript. @@ -275,6 +281,8 @@ static this ``` +## Context and settings + ||| |---|---| |Context|everywhere| @@ -283,4 +291,10 @@ this |Options|`definedTags`, `enableFixer`, `jsxTags`, `typed`| |Settings|`tagNamePreference`, `mode`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/check-types.md b/.README/rules/check-types.md index c6cd0f319..e800ad06c 100644 --- a/.README/rules/check-types.md +++ b/.README/rules/check-types.md @@ -1,4 +1,6 @@ -### `check-types` +# `check-types` + +{"gitdown": "contents", "rootId": "check-types"} Reports invalid types. @@ -20,7 +22,7 @@ Date RegExp ``` -#### Options +## Options `check-types` allows one option: @@ -69,7 +71,7 @@ Note that if there is an error [parsing](https://github.com/jsdoc-type-pratt-par types for a tag, the function will silently ignore that tag, leaving it to the `valid-types` rule to report parsing errors. -#### Why not capital case everything? +## Why not capital case everything? Why are `boolean`, `number` and `string` exempt from starting with a capital letter? Let's take `string` as an example. In Javascript, everything is an @@ -131,6 +133,8 @@ In short: It's not about consistency, rather about the 99.9% use case. (And some functions might not even support the objects if they are checking for identity.) +## Comparisons + type name | `typeof` | check-types | testcase --|--|--|-- **Array** | object | **Array** | `([]) instanceof Array` -> `true` @@ -147,6 +151,12 @@ for types, you can use `settings.jsdoc.structuredTags` with a tag `type` of `false`. If you set their `type` to an array, only those values will be permitted. +## Fixer + +(Todo) + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -157,4 +167,10 @@ permitted. |Options|`noDefaults`, `exemptTagContexts`, `unifyParentAndChildTypeChecks`| |Settings|`preferredTypes`, `mode`, `structuredTags`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/check-values.md b/.README/rules/check-values.md index 072abb86f..41f303c7d 100644 --- a/.README/rules/check-values.md +++ b/.README/rules/check-values.md @@ -1,4 +1,6 @@ -### `check-values` +# `check-values` + +{"gitdown": "contents", "rootId": "check-values"} This rule checks the values for a handful of tags: @@ -17,19 +19,19 @@ This rule checks the values for a handful of tags: 'constant', 'event', 'external', 'file', 'function', 'member', 'mixin', 'module', 'namespace', 'typedef', -#### Options +## Options -##### `allowedAuthors` +### `allowedAuthors` An array of allowable author values. If absent, only non-whitespace will be checked for. -##### `allowedLicenses` +### `allowedLicenses` An array of allowable license values or `true` to allow any license text. If present as an array, will be used in place of SPDX identifiers. -##### `licensePattern` +### `licensePattern` A string to be converted into a `RegExp` (with `u` flag) and whose first parenthetical grouping, if present, will match the portion of the license @@ -42,11 +44,13 @@ Note that the `/` delimiters are optional, but necessary to add flags. Defaults to using the `u` flag, so to add your own flags, encapsulate your expression as a string, but like a literal, e.g., `/^mit$/ui`. -##### `numericOnlyVariation` +### `numericOnlyVariation` Whether to enable validation that `@variation` must be a number. Defaults to `false`. +## Context and settings + ||| |---|---| |Context|everywhere| @@ -55,4 +59,10 @@ Whether to enable validation that `@variation` must be a number. Defaults to |Options|`allowedAuthors`, `allowedLicenses`, `licensePattern`| |Settings|`tagNamePreference`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/empty-tags.md b/.README/rules/empty-tags.md index e8af1a37a..4e44dc6f6 100644 --- a/.README/rules/empty-tags.md +++ b/.README/rules/empty-tags.md @@ -1,5 +1,7 @@ ### `empty-tags` +{"gitdown": "contents", "rootId": "empty-tags"} + Expects the following tags to be empty of any content: - `@abstract` @@ -31,9 +33,13 @@ causes rules not to take effect). Similarly, `@internal` will still be checked for content by this rule even with `settings.jsdoc.ignoreInternal` set to `true`. -#### Options +## Fixer + +(Todo) -##### `tags` +## Options + +### `tags` If you want additional tags to be checked for their descriptions, you may add them within this option. @@ -44,10 +50,19 @@ add them within this option. } ``` +## Context and settings + ||| |---|---| |Context|everywhere| |Tags| `abstract`, `async`, `generator`, `global`, `hideconstructor`, `ignore`, `inheritdoc`, `inner`, `instance`, `internal`, `override`, `readonly`, `package`, `private`, `protected`, `public`, `static` and others added by `tags`| |Recommended|true| |Options|`tags`| - + +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/implements-on-classes.md b/.README/rules/implements-on-classes.md index 8921a8390..6fdaaebcc 100644 --- a/.README/rules/implements-on-classes.md +++ b/.README/rules/implements-on-classes.md @@ -1,4 +1,6 @@ -### `implements-on-classes` +# `implements-on-classes` + +{"gitdown": "contents", "rootId": "implements-on-classes"} Reports an issue with any non-constructor function using `@implements`. @@ -9,9 +11,9 @@ To indicate that a function follows another function's signature, one might instead use `@type` to indicate the `@function` or `@callback` to which the function is adhering. -#### Options +## Options -##### `contexts` +### `contexts` Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -25,6 +27,8 @@ expression, i.e., `@callback` or `@function` (or its aliases `@func` or See the ["AST and Selectors"](../#advanced-ast-and-selectors) section of our README for more on the expected format. +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| @@ -32,4 +36,10 @@ section of our README for more on the expected format. |Recommended|true| |Options|`contexts`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/informative-docs.md b/.README/rules/informative-docs.md index 2d44e2a26..1e02f5a32 100644 --- a/.README/rules/informative-docs.md +++ b/.README/rules/informative-docs.md @@ -1,4 +1,6 @@ -### `informative-docs` +# `informative-docs` + +{"gitdown": "contents", "rootId": "informative-docs"} Reports on JSDoc texts that serve only to restart their attached name. @@ -12,9 +14,9 @@ let userId; Those "uninformative" docs comments take up space without being helpful. This rule requires all docs comments contain at least one word not already in the code. -#### Options +## Options -##### `aliases` +### `aliases` The `aliases` option allows indicating words as synonyms (aliases) of each other. @@ -33,7 +35,7 @@ The default `aliases` option is: } ``` -##### `uselessWords` +### `uselessWords` Words that are ignored when searching for one that adds meaning. @@ -50,6 +52,8 @@ The default `uselessWords` option is: ["a", "an", "i", "in", "of", "s", "the"] ``` +## Context and settings + ||| |---|---| |Context|everywhere| @@ -58,4 +62,10 @@ The default `uselessWords` option is: |Settings|| |Options|`aliases`, `uselessWords`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/match-description.md b/.README/rules/match-description.md index a600b5418..0e01425b7 100644 --- a/.README/rules/match-description.md +++ b/.README/rules/match-description.md @@ -1,4 +1,6 @@ -### `match-description` +# `match-description` + +{"gitdown": "contents", "rootId": "match-description"} Enforces a regular expression pattern on descriptions. @@ -24,9 +26,9 @@ case-insensitive unless one opts in to add the `i` flag. You can add the `s` flag if you want `.` to match newlines. Note, however, that the trailing newlines of a description will not be matched. -#### Options +## Options -##### `matchDescription` +### `matchDescription` You can supply your own expression to override the default, passing a `matchDescription` string on the options object. @@ -37,7 +39,7 @@ You can supply your own expression to override the default, passing a } ``` -##### `message` +### `message` You may provide a custom default message by using the following format: @@ -52,7 +54,7 @@ You may provide a custom default message by using the following format: This can be overridden per tag or for the main block description by setting `message` within `tags` or `mainDescription`, respectively. -##### `tags` +### `tags` If you want different regular expressions to apply to tags, you may use the `tags` option object: @@ -100,7 +102,7 @@ its "description" (e.g., for `@returns {someType} some description`, the description is `some description` while for `@some-tag xyz`, the description is `xyz`). -##### `mainDescription` +### `mainDescription` If you wish to override the main block description without changing the default `match-description` (which can cascade to the `tags` with `true`), @@ -139,7 +141,7 @@ You may also provide an object with `message`: } ``` -##### `contexts` +### `contexts` Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -150,6 +152,8 @@ want the rule to apply to any jsdoc block throughout your files. See the ["AST and Selectors"](../#advanced-ast-and-selectors) section of our README for more on the expected format. +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| @@ -159,4 +163,10 @@ section of our README for more on the expected format. |Settings|| |Options|`contexts`, `tags` (accepts tags with names and optional type such as 'param', 'arg', 'argument', 'property', and 'prop', and accepts arbitrary list of other tags with an optional type (but without names), e.g., 'returns', 'return'), `mainDescription`, `matchDescription`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/match-name.md b/.README/rules/match-name.md index d8d36bdad..818ccd358 100644 --- a/.README/rules/match-name.md +++ b/.README/rules/match-name.md @@ -1,5 +1,7 @@ ### `match-name` +{"gitdown": "contents", "rootId": "match-name"} + Reports the name portion of a JSDoc tag if matching or not matching a given regular expression. @@ -9,15 +11,15 @@ name will actually be part of the description (e.g., for `structuredTags` setting (if `name: false`, this rule will not apply to that tag). -#### Fixer +## Fixer Will replace `disallowName` with `replacement` if these are provided. -#### Options +## Options A single options object with the following properties: -##### `match` +### `match` `match` is a required option containing an array of objects which determine the conditions whereby a name is reported as being problematic. @@ -54,6 +56,8 @@ tag of the desired tag and/or name and no `disallowName` (or `allowName`) is supplied. In such a case, only one error will be reported, but no fixer will be applied, however. +## Context and settings + ||| |---|---| |Context|everywhere| @@ -62,4 +66,10 @@ be applied, however. |Settings|`structuredTags`| |Options|`match`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/multiline-blocks.md b/.README/rules/multiline-blocks.md index 812495208..e6173f6c1 100644 --- a/.README/rules/multiline-blocks.md +++ b/.README/rules/multiline-blocks.md @@ -1,5 +1,7 @@ ### `multiline-blocks` +{"gitdown": "contents", "rootId": "multiline-blocks"} + Controls how and whether jsdoc blocks can be expressed as single or multiple line blocks. @@ -9,30 +11,34 @@ all jsdoc blocks! Also allows for preventing text at the very beginning or very end of blocks. -#### Options +## Fixer + +(TODO) + +## Options A single options object with the following properties. -##### `noZeroLineText` (defaults to `true`) +### `noZeroLineText` (defaults to `true`) For multiline blocks, any non-whitespace text immediately after the `/**` and space will be reported. (Text after a newline is not reported.) `noMultilineBlocks` will have priority over this rule if it applies. -##### `noFinalLineText` (defaults to `true`) +### `noFinalLineText` (defaults to `true`) For multiline blocks, any non-whitespace text preceding the `*/` on the final line will be reported. (Text preceding a newline is not reported.) `noMultilineBlocks` will have priority over this rule if it applies. -##### `noSingleLineBlocks` (defaults to `false`) +### `noSingleLineBlocks` (defaults to `false`) If this is `true`, any single line blocks will be reported, except those which are whitelisted in `singleLineTags`. -##### `singleLineTags` (defaults to `['lends', 'type']`) +### `singleLineTags` (defaults to `['lends', 'type']`) An array of tags which can nevertheless be allowed as single line blocks when `noSingleLineBlocks` is set. You may set this to a empty array to @@ -40,13 +46,13 @@ cause all single line blocks to be reported. If `'*'` is present, then the presence of a tag will allow single line blocks (but not if a tag is missing). -##### `noMultilineBlocks` (defaults to `false`) +### `noMultilineBlocks` (defaults to `false`) Requires that jsdoc blocks are restricted to single lines only unless impacted by the options `minimumLengthForMultiline`, `multilineTags`, or `allowMultipleTags`. -##### `minimumLengthForMultiline` (defaults to not being in effect) +### `minimumLengthForMultiline` (defaults to not being in effect) If `noMultilineBlocks` is set with this numeric option, multiline blocks will be permitted if containing at least the given amount of text. @@ -54,7 +60,7 @@ be permitted if containing at least the given amount of text. If not set, multiline blocks will not be permitted regardless of length unless a relevant tag is present and `multilineTags` is set. -##### `multilineTags` (defaults to `['*']`) +### `multilineTags` (defaults to `['*']`) If `noMultilineBlocks` is set with this option, multiline blocks may be allowed regardless of length as long as a tag or a tag of a certain type is present. @@ -69,7 +75,7 @@ such a tag will cause multiline blocks to be allowed. You may set this to an empty array to prevent any tag from permitting multiple lines. -##### `allowMultipleTags` (defaults to `true`) +### `allowMultipleTags` (defaults to `true`) If `noMultilineBlocks` is set to `true` with this option and multiple tags are found in a block, an error will not be reported. @@ -82,6 +88,8 @@ This option will also be applied when there is a block description and a single tag (since a description cannot precede a tag on a single line, and also cannot be reliably added after the tag either). +## Context and settings + ||| |---|---| |Context|everywhere| @@ -90,4 +98,10 @@ cannot be reliably added after the tag either). |Settings|| |Options|`noZeroLineText`, `noSingleLineBlocks`, `singleLineTags`, `noMultilineBlocks`, `minimumLengthForMultiline`, `multilineTags`, `allowMultipleTags`, `noFinalLineText`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/no-bad-blocks.md b/.README/rules/no-bad-blocks.md index 2b1265461..c4dd6e7ea 100644 --- a/.README/rules/no-bad-blocks.md +++ b/.README/rules/no-bad-blocks.md @@ -1,16 +1,22 @@ ### `no-bad-blocks` +{"gitdown": "contents", "rootId": "no-bad-blocks"} + This rule checks for multi-line-style comments which fail to meet the criteria of a jsdoc block, namely that it should begin with two and only two asterisks, but which appear to be intended as jsdoc blocks due to the presence of whitespace followed by whitespace or asterisks, and an at-sign (`@`) and some non-whitespace (as with a jsdoc block tag). -#### Options +## Fixer + +(TODO) + +## Options Takes an optional options object with the following. -##### `ignore` +### `ignore` An array of directives that will not be reported if present at the beginning of a multi-comment block and at-sign `/* @`. @@ -18,12 +24,14 @@ a multi-comment block and at-sign `/* @`. Defaults to `['ts-check', 'ts-expect-error', 'ts-ignore', 'ts-nocheck']` (some directives [used by TypeScript](https://www.typescriptlang.org/docs/handbook/intro-to-js-ts.html#ts-check)). -##### `preventAllMultiAsteriskBlocks` +### `preventAllMultiAsteriskBlocks` A boolean (defaulting to `false`) which if `true` will prevent all JSDoc-like blocks with more than two initial asterisks even those without apparent tag content. +## Context and settings + ||| |---|---| |Context|Everywhere| @@ -31,4 +39,10 @@ apparent tag content. |Recommended|false| |Options|`ignore`, `preventAllMultiAsteriskBlocks`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/no-blank-block-descriptions.md b/.README/rules/no-blank-block-descriptions.md index c175c0b09..4cb658a82 100644 --- a/.README/rules/no-blank-block-descriptions.md +++ b/.README/rules/no-blank-block-descriptions.md @@ -1,11 +1,19 @@ ### `no-blank-block-descriptions` +{"gitdown": "contents", "rootId": "no-blank-block-descriptions"} + If tags are present, this rule will prevent empty lines in the block description. If no tags are present, this rule will prevent extra empty lines in the block description. +## Fixer + +(TODO) + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -14,4 +22,10 @@ in the block description. |Settings|| |Options|| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/no-blank-blocks.md b/.README/rules/no-blank-blocks.md index 96da97840..98a31a0e2 100644 --- a/.README/rules/no-blank-blocks.md +++ b/.README/rules/no-blank-blocks.md @@ -1,7 +1,13 @@ -### `no-blank-blocks` +# `no-blank-blocks` + +{"gitdown": "contents", "rootId": "no-blank-blocks"} Reports and optionally removes blocks with whitespace only. +## Fixer + +(TODO) + #### Options ##### `enableFixer` @@ -16,4 +22,10 @@ Whether or not to auto-remove the blank block. Defaults to `false`. |Settings|| |Options|`enableFixer`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/no-defaults.md b/.README/rules/no-defaults.md index 0f65f1450..ff4a3819c 100644 --- a/.README/rules/no-defaults.md +++ b/.README/rules/no-defaults.md @@ -1,4 +1,6 @@ -### `no-defaults` +# `no-defaults` + +{"gitdown": "contents", "rootId": "no-defaults"} This rule reports defaults being used on the relevant portion of `@param` or `@default`. It also optionally reports the presence of the @@ -12,9 +14,13 @@ tag is attached). Unless your `@default` is on a function, you will need to set `contexts` to an appropriate context, including, if you wish, "any". -#### Options +## Fixer + +(TODO) -##### `noOptionalParamNames` +## Options + +### `noOptionalParamNames` Set this to `true` to report the presence of optional parameters. May be used if the project is insisting on optionality being indicated by @@ -22,7 +28,7 @@ the presence of ES6 default parameters (bearing in mind that such "defaults" are only applied when the supplied value is missing or `undefined` but not for `null` or other "falsey" values). -##### `contexts` +### `contexts` Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -35,6 +41,8 @@ expression, i.e., `@callback` or `@function` (or its aliases `@func` or See the ["AST and Selectors"](../#advanced-ast-and-selectors) section of our README for more on the expected format. +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| @@ -43,4 +51,10 @@ section of our README for more on the expected format. |Recommended|false| |Options|`contexts`, `noOptionalParamNames`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/no-missing-syntax.md b/.README/rules/no-missing-syntax.md index b85a81fca..e6787752e 100644 --- a/.README/rules/no-missing-syntax.md +++ b/.README/rules/no-missing-syntax.md @@ -1,4 +1,6 @@ -### `no-missing-syntax` +# `no-missing-syntax` + +{"gitdown": "contents", "rootId": "no-missing-syntax"} This rule lets you report if certain always expected comment structures are missing. @@ -34,9 +36,9 @@ which are not adequate to satisfy a condition, e.g., not report if there were only a function declaration of the name "ignoreMe" (though it would report by function declarations of other names). -#### Options +## Options -##### `contexts` +### `contexts` Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -56,6 +58,8 @@ aliases `@func` or `@method`) (including those associated with an `@interface`). See the ["AST and Selectors"](../#advanced-ast-and-selectors) section of our README for more on the expected format. +## Context and settings + ||| |---|---| |Context|None except those indicated by `contexts`| @@ -63,4 +67,10 @@ section of our README for more on the expected format. |Recommended|false| |Options|`contexts`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/no-multi-asterisks.md b/.README/rules/no-multi-asterisks.md index 0dbbd0f7c..7556ad5e0 100644 --- a/.README/rules/no-multi-asterisks.md +++ b/.README/rules/no-multi-asterisks.md @@ -1,14 +1,20 @@ ### `no-multi-asterisks` +{"gitdown": "contents", "rootId": "no-multi-asterisks"} + Prevents use of multiple asterisks at the beginning of lines. Note that if you wish to prevent multiple asterisks at the very beginning of the jsdoc block, you should use `no-bad-blocks` (as that is not proper jsdoc and that rule is for catching blocks which only seem like jsdoc). -#### Options +## Fixer + +(TODO) -##### `allowWhitespace` (defaults to `false`) +## Options + +### `allowWhitespace` (defaults to `false`) Set to `true` if you wish to allow asterisks after a space (as with Markdown): @@ -18,7 +24,7 @@ Set to `true` if you wish to allow asterisks after a space (as with Markdown): */ ``` -##### `preventAtMiddleLines` (defaults to `true`) +### `preventAtMiddleLines` (defaults to `true`) Prevent the likes of this: @@ -29,7 +35,7 @@ Prevent the likes of this: */ ``` -##### `preventAtEnd` (defaults to `true`) +### `preventAtEnd` (defaults to `true`) Prevent the likes of this: @@ -40,6 +46,8 @@ Prevent the likes of this: **/ ``` +## Context and settings + ||| |---|---| |Context|everywhere| @@ -48,4 +56,10 @@ Prevent the likes of this: |Settings|| |Options|`preventAtEnd`, `preventAtMiddleLines`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/no-restricted-syntax.md b/.README/rules/no-restricted-syntax.md index 6251f41ee..6e4f7b6b2 100644 --- a/.README/rules/no-restricted-syntax.md +++ b/.README/rules/no-restricted-syntax.md @@ -1,4 +1,6 @@ -### `no-restricted-syntax` +# `no-restricted-syntax` + +{"gitdown": "contents", "rootId": "no-restricted-syntax"} Reports when certain comment structures are present. @@ -14,9 +16,9 @@ structures, (whether or not you add a specific `comment` condition). Note that if your parser supports comment AST (as [jsdoc-eslint-parser](https://github.com/brettz9/jsdoc-eslint-parser) is designed to do), you can just use ESLint's rule. -#### Options +## Options -##### `contexts` +### `contexts` Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -32,6 +34,8 @@ aliases `@func` or `@method`) (including those associated with an `@interface`). See the ["AST and Selectors"](../#advanced-ast-and-selectors) section of our README for more on the expected format. +## Context and settings + ||| |---|---| |Context|None except those indicated by `contexts`| @@ -39,4 +43,10 @@ section of our README for more on the expected format. |Recommended|false| |Options|`contexts`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/no-types.md b/.README/rules/no-types.md index bcac66edc..9c699661d 100644 --- a/.README/rules/no-types.md +++ b/.README/rules/no-types.md @@ -1,13 +1,19 @@ -### `no-types` +# `no-types` + +{"gitdown": "contents", "rootId": "no-types"} This rule reports types being used on `@param` or `@returns`. The rule is intended to prevent the indication of types on tags where the type information would be redundant with TypeScript. -#### Options +## Fixer + +(TODO) -##### `contexts` +## Options + +### `contexts` Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -20,6 +26,8 @@ expression, i.e., `@callback` or `@function` (or its aliases `@func` or See the ["AST and Selectors"](../#advanced-ast-and-selectors) section of our README for more on the expected format. +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| @@ -28,4 +36,10 @@ section of our README for more on the expected format. |Recommended|false| |Options|`contexts`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/no-undefined-types.md b/.README/rules/no-undefined-types.md index 75b082d85..bc5935714 100644 --- a/.README/rules/no-undefined-types.md +++ b/.README/rules/no-undefined-types.md @@ -1,4 +1,6 @@ -### `no-undefined-types` +# `no-undefined-types` + +{"gitdown": "contents", "rootId": "no-undefined-types"} Checks that types in jsdoc comments are defined. This can be used to check unimported types. @@ -43,7 +45,7 @@ reporting on use of that namepath elsewhere) and/or that a tag's `type` is `false` (and should not be checked for types). If the `type` is an array, that array's items will be considered as defined for the purposes of that tag. -#### Options +## Options An option object may have the following key: @@ -51,6 +53,8 @@ An option object may have the following key: are automatically considered as defined (in addition to globals, etc.). Defaults to an empty array. +## Context and settings + ||| |---|---| |Context|everywhere| @@ -61,4 +65,11 @@ An option object may have the following key: |Options|`definedTypes`| |Settings|`preferredTypes`, `mode`, `structuredTags`| - + +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-asterisk-prefix.md b/.README/rules/require-asterisk-prefix.md index 9bdd1e1c9..e6b162f01 100644 --- a/.README/rules/require-asterisk-prefix.md +++ b/.README/rules/require-asterisk-prefix.md @@ -1,8 +1,14 @@ ### `require-asterisk-prefix` +{"gitdown": "contents", "rootId": "require-asterisk-prefix"} + Requires that each JSDoc line starts with an `*`. -#### Options +## Fixer + +(TODO) + +## Options This rule allows an optional string argument. If it is `"always"` then a problem is raised when there is no asterisk prefix on a given jsdoc line. If @@ -12,7 +18,7 @@ and use the `tags` option to apply to specific tags only. After the string option, one may add an object with the following. -##### `tags` +### `tags` If you want different values to apply to specific tags, you may use the `tags` option object. The keys are `always`, `never`, or `any` and @@ -31,10 +37,18 @@ which applies to the main jsdoc block description. } ``` +## Context and settings + ||| |---|---| |Context|everywhere| |Tags|All or as limited by the `tags` option| |Options|(a string matching `"always"|"never"` and optional object with `tags`)| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-description-complete-sentence.md b/.README/rules/require-description-complete-sentence.md index 8d325e1c5..96bedc03c 100644 --- a/.README/rules/require-description-complete-sentence.md +++ b/.README/rules/require-description-complete-sentence.md @@ -1,4 +1,6 @@ -### `require-description-complete-sentence` +# `require-description-complete-sentence` + +{"gitdown": "contents", "rootId": "require-description-complete-sentence"} Requires that block description, explicit `@description`, and `@param`/`@returns` tag descriptions are written in complete sentences, i.e., @@ -14,16 +16,16 @@ Requires that block description, explicit `@description`, and * Periods after items within the `abbreviations` option array are not treated as sentence endings. -#### Fixer +## Fixer If sentences do not end with terminal punctuation, a period will be added. If sentences do not start with an uppercase character, the initial letter will be capitalized. -#### Options +## Options -##### `tags` +### `tags` If you want additional tags to be checked for their descriptions, you may add them within this option. @@ -46,18 +48,20 @@ its "description" (e.g., for `@returns {someType} some description`, the description is `some description` while for `@some-tag xyz`, the description is `xyz`). -##### `abbreviations` +### `abbreviations` You can provide an `abbreviations` options array to avoid such strings of text being treated as sentence endings when followed by dots. The `.` is not necessary at the end of the array items. -##### `newlineBeforeCapsAssumesBadSentenceEnd` +### `newlineBeforeCapsAssumesBadSentenceEnd` When `false` (the new default), we will not assume capital letters after newlines are an incorrect way to end the sentence (they may be proper nouns, for example). +## Context and settings + ||| |---|---| |Context|everywhere| @@ -65,4 +69,11 @@ nouns, for example). |Aliases|`arg`, `argument`, `return`, `desc`, `prop`, `fileoverview`, `overview`, `exception`, `yield`| |Recommended|false| |Options|`tags`, `abbreviations`, `newlineBeforeCapsAssumesBadSentenceEnd`| - + +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-description.md b/.README/rules/require-description.md index 39ec7d507..9bd3fbb64 100644 --- a/.README/rules/require-description.md +++ b/.README/rules/require-description.md @@ -1,4 +1,6 @@ -### `require-description` +# `require-description` + +{"gitdown": "contents", "rootId": "require-description"} Requires that all functions have a description. @@ -9,7 +11,7 @@ Requires that all functions have a description. is `"tag"`) must have a non-empty description that explains the purpose of the method. -#### Options +## Options An options object may have any of the following properties: @@ -32,13 +34,21 @@ An options object may have any of the following properties: - `checkSetters` - A value indicating whether setters should be checked. Defaults to `true`. -| | | -| -------- | ------------------------------------------------------------------------------------------------------------- | +## Context and settings + +| | | +| -------- | ---------------------- | | Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | -| Tags | `description` or jsdoc block | -| Aliases | `desc` | +| Tags | `description` or jsdoc block | +| Aliases | `desc` | | Recommended | false | -| Options | `contexts`, `exemptedBy`, `descriptionStyle`, `checkConstructors`, `checkGetters`, `checkSetters` | -| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | +| Options | `contexts`, `exemptedBy`, `descriptionStyle`, `checkConstructors`, `checkGetters`, `checkSetters` | +| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | + +## Failing examples + + + +## Passing examples - + diff --git a/.README/rules/require-example.md b/.README/rules/require-example.md index d0345b9b6..9e01bf89f 100644 --- a/.README/rules/require-example.md +++ b/.README/rules/require-example.md @@ -1,4 +1,6 @@ -### `require-example` +# `require-example` + +{"gitdown": "contents", "rootId": "require-example"} Requires that all functions have examples. @@ -6,11 +8,16 @@ Requires that all functions have examples. * Every example tag must have a non-empty description that explains the method's usage. -#### Options +## Fixer + +The fixer for `require-example` will add an empty `@example`, but it will still +report a missing example description after this is added. + +## Options This rule has an object option. -##### `exemptedBy` +### `exemptedBy` Array of tags (e.g., `['type']`) whose presence on the document block avoids the need for an `@example`. Defaults to an array with @@ -18,12 +25,12 @@ block avoids the need for an `@example`. Defaults to an array with so be sure to add back `inheritdoc` if you wish its presence to cause exemption of the rule. -##### `exemptNoArguments` +### `exemptNoArguments` Boolean to indicate that no-argument functions should not be reported for missing `@example` declarations. -##### `contexts` +### `contexts` Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -34,28 +41,25 @@ want the rule to apply to any jsdoc block throughout your files. See the ["AST and Selectors"](../#advanced-ast-and-selectors) section of our README for more on the expected format. -##### `checkConstructors` +### `checkConstructors` A value indicating whether `constructor`s should be checked. Defaults to `true`. -##### `checkGetters` +### `checkGetters` A value indicating whether getters should be checked. Defaults to `false`. -##### `checkSetters` +### `checkSetters` A value indicating whether setters should be checked. Defaults to `false`. -##### `enableFixer` +### `enableFixer` A boolean on whether to enable the fixer (which adds an empty `@example` block). Defaults to `true`. -#### Fixer - -The fixer for `require-example` will add an empty `@example`, but it will still -report a missing example description after this is added. +## Context and settings ||| |---|---| @@ -65,4 +69,10 @@ report a missing example description after this is added. |Options|`exemptedBy`, `exemptNoArguments`, `contexts`, `checkConstructors`, `checkGetters`, `checkSetters`, `enableFixer`| |Settings|`ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`| - +# Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-file-overview.md b/.README/rules/require-file-overview.md index 6106069cf..797392ce9 100644 --- a/.README/rules/require-file-overview.md +++ b/.README/rules/require-file-overview.md @@ -1,4 +1,6 @@ -### `require-file-overview` +# `require-file-overview` + +{"gitdown": "contents", "rootId": "require-file-overview"} Checks that: @@ -10,9 +12,9 @@ Checks that: as being when the overview tag is not preceded by anything other than a comment. -#### Options +## Options -##### `tags` +### `tags` The keys of this object are tag names, and the values are configuration objects indicating what will be checked for these whole-file tags. @@ -67,6 +69,8 @@ in this configuration object regardless of whether you have configured `fileoverview` instead of `file` on `tagNamePreference` (i.e., `fileoverview` will be checked, but you must use `file` on the configuration object). +## Context and settings + ||| |---|---| |Context|Everywhere| @@ -75,4 +79,10 @@ will be checked, but you must use `file` on the configuration object). |Recommended|false| |Options|`tags`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-hyphen-before-param-description.md b/.README/rules/require-hyphen-before-param-description.md index 2a35edbad..56acdf55e 100644 --- a/.README/rules/require-hyphen-before-param-description.md +++ b/.README/rules/require-hyphen-before-param-description.md @@ -1,8 +1,14 @@ -### `require-hyphen-before-param-description` +# `require-hyphen-before-param-description` + +{"gitdown": "contents", "rootId": "require-hyphen-before-param-description"} Requires (or disallows) a hyphen before the `@param` description. -#### Options +## Fixer + +(Todo) + +## Options This rule takes one optional string argument and an optional options object. @@ -21,6 +27,8 @@ other tags besides the `@param` tag (or the `@arg` tag if so set): `@param` tag which follows the main string option setting and besides any other `tags` entries). +## Context and settings + ||| |---|---| |Context|everywhere| @@ -29,4 +37,10 @@ other tags besides the `@param` tag (or the `@arg` tag if so set): |Recommended|false| |Options|a string matching `"always" or "never"` followed by an optional object with a `tags` property| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-jsdoc.md b/.README/rules/require-jsdoc.md index 3f19d8a28..8ee920a24 100644 --- a/.README/rules/require-jsdoc.md +++ b/.README/rules/require-jsdoc.md @@ -1,13 +1,21 @@ -### `require-jsdoc` +# `require-jsdoc` + +{"gitdown": "contents", "rootId": "require-jsdoc"} Checks for presence of jsdoc comments, on class declarations as well as functions. -#### Options +## Fixer + +Adds an empty JSDoc block unless `enableFixer` is set to `false`. See +the `contexts` option for how `inlineCommentBlock` can control the style +of the generated JSDoc block. + +## Options Accepts one optional options object with the following optional keys. -##### `publicOnly` +### `publicOnly` This option will insist that missing jsdoc blocks are only reported for function bodies / class declarations that are exported from the module. @@ -22,7 +30,7 @@ otherwise noted): - `cjs` - CommonJS exports are checked for JSDoc comments (Defaults to `true`) - `window` - Window global exports are checked for JSDoc comments -##### `require` +### `require` An object with the following optional boolean keys which all default to `false` except as noted, indicating the contexts where the rule will apply: @@ -34,7 +42,7 @@ An object with the following optional boolean keys which all default to - `FunctionExpression` - `MethodDefinition` -##### `contexts` +### `contexts` Set this to an array of strings or objects representing the additional AST contexts where you wish the rule to be applied (e.g., `Property` for @@ -50,7 +58,7 @@ if you are specifying a more precise form in `contexts` (e.g., `MethodDefinition See the ["AST and Selectors"](../#advanced-ast-and-selectors) section of our README for more on the expected format. -##### `exemptEmptyConstructors` +### `exemptEmptyConstructors` Default: true @@ -58,7 +66,7 @@ When `true`, the rule will not report missing jsdoc blocks above constructors with no parameters or return values (this is enabled by default as the class name or description should be seen as sufficient to convey intent). -##### `exemptEmptyFunctions` +### `exemptEmptyFunctions` Default: false. @@ -66,13 +74,13 @@ When `true`, the rule will not report missing jsdoc blocks above functions/methods with no parameters or return values (intended where function/method names are sufficient for themselves as documentation). -##### `checkConstructors` +### `checkConstructors` A value indicating whether `constructor`s should be checked. Defaults to `true`. When `true`, `exemptEmptyConstructors` may still avoid reporting when no parameters or return values are found. -##### `checkGetters` +### `checkGetters` A value indicating whether getters should be checked. Besides setting as a boolean, this option can be set to the string `"no-setter"` to indicate that @@ -80,7 +88,7 @@ getters should be checked but only when there is no setter. This may be useful if one only wishes documentation on one of the two accessors. Defaults to `false`. -##### `checkSetters` +### `checkSetters` A value indicating whether setters should be checked. Besides setting as a boolean, this option can be set to the string `"no-getter"` to indicate that @@ -88,17 +96,19 @@ setters should be checked but only when there is no getter. This may be useful if one only wishes documentation on one of the two accessors. Defaults to `false`. -##### `enableFixer` +### `enableFixer` A boolean on whether to enable the fixer (which adds an empty jsdoc block). Defaults to `true`. -##### `minLineCount` +### `minLineCount` An integer to indicate a minimum number of lines expected for a node in order for it to require documentation. Defaults to `undefined`. This option will apply to any context; see `contexts` for line counts per context. +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `ClassDeclaration`, `ClassExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| @@ -106,4 +116,10 @@ apply to any context; see `contexts` for line counts per context. |Recommended|true| |Options|`publicOnly`, `require`, `contexts`, `exemptEmptyConstructors`, `exemptEmptyFunctions`, `enableFixer`, `minLineCount`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-param-description.md b/.README/rules/require-param-description.md index 6c211b148..04b46be58 100644 --- a/.README/rules/require-param-description.md +++ b/.README/rules/require-param-description.md @@ -1,4 +1,6 @@ -### `require-param-description` +# `require-param-description` + +{"gitdown": "contents", "rootId": "require-param-description"} Requires that each `@param` tag has a `description` value. @@ -7,9 +9,9 @@ Will exempt destructured roots and their children if `@param {object} props` will be exempted from requiring a description given `function someFunc ({child1, child2})`). -#### Options +## Options -##### `setDefaultDestructuredRootDescription` +### `setDefaultDestructuredRootDescription` Whether to set a default destructured root description. For example, you may wish to avoid manually having to set the description for a `@param` @@ -17,12 +19,12 @@ corresponding to a destructured root object as it should always be the same type of object. Uses `defaultDestructuredRootDescription` for the description string. Defaults to `false`. -##### `defaultDestructuredRootDescription` +### `defaultDestructuredRootDescription` The description string to set by default for destructured roots. Defaults to "The root object". -##### `contexts` +### `contexts` Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -35,6 +37,8 @@ expression, i.e., `@callback` or `@function` (or its aliases `@func` or See the ["AST and Selectors"](../#advanced-ast-and-selectors) section of our README for more on the expected format. +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| @@ -44,4 +48,10 @@ section of our README for more on the expected format. |Options|`setDefaultDestructuredRootDescription`, `defaultDestructuredRootDescription`, `contexts`| |Settings|`exemptDestructuredRootsFromChecks`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-param-name.md b/.README/rules/require-param-name.md index 7a84206f9..bd8c34615 100644 --- a/.README/rules/require-param-name.md +++ b/.README/rules/require-param-name.md @@ -1,14 +1,16 @@ -### `require-param-name` +# `require-param-name` -Requires that all function parameters have names. +{"gitdown": "contents", "rootId": "require-param-name"} + +Requires that all `@param` tags have names. > The `@param` tag requires you to specify the name of the parameter you are documenting. You can also include the parameter's type, enclosed in curly brackets, and a description of the parameter. > > [JSDoc](https://jsdoc.app/tags-param.html#overview) -#### Options +## Options -##### `contexts` +### `contexts` Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -21,6 +23,8 @@ expression, i.e., `@callback` or `@function` (or its aliases `@func` or See the ["AST and Selectors"](../#advanced-ast-and-selectors) section of our README for more on the expected format. +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| @@ -29,4 +33,10 @@ section of our README for more on the expected format. |Recommended|true| |Options|`contexts`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-param-type.md b/.README/rules/require-param-type.md index c2e114f30..d0d69068d 100644 --- a/.README/rules/require-param-type.md +++ b/.README/rules/require-param-type.md @@ -1,15 +1,17 @@ -### `require-param-type` +# `require-param-type` -Requires that each `@param` tag has a `type` value. +{"gitdown": "contents", "rootId": "require-param-type"} + +Requires that each `@param` tag has a `type` value (within curly brackets). Will exempt destructured roots and their children if `settings.exemptDestructuredRootsFromChecks` is set to `true` (e.g., `@param props` will be exempted from requiring a type given `function someFunc ({child1, child2})`). -#### Options +## Options -##### `setDefaultDestructuredRootType` +### `setDefaultDestructuredRootType` Whether to set a default destructured root type. For example, you may wish to avoid manually having to set the type for a `@param` @@ -17,11 +19,11 @@ corresponding to a destructured root object as it is always going to be an object. Uses `defaultDestructuredRootType` for the type string. Defaults to `false`. -##### `defaultDestructuredRootType` +### `defaultDestructuredRootType` The type string to set by default for destructured roots. Defaults to "object". -##### `contexts` +### `contexts` Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -34,6 +36,8 @@ expression, i.e., `@callback` or `@function` (or its aliases `@func` or See the ["AST and Selectors"](../#advanced-ast-and-selectors) section of our README for more on the expected format. +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| @@ -43,4 +47,10 @@ section of our README for more on the expected format. |Options|`setDefaultDestructuredRootType`, `defaultDestructuredRootType`, `contexts`| |Settings|`exemptDestructuredRootsFromChecks`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-param.md b/.README/rules/require-param.md index 1717dc4d8..797abbc46 100644 --- a/.README/rules/require-param.md +++ b/.README/rules/require-param.md @@ -1,14 +1,16 @@ -### `require-param` +# `require-param` + +{"gitdown": "contents", "rootId": "require-param"} Requires that all function parameters are documented. -#### Fixer +## Fixer Adds `@param ` for each tag present in the function signature but missing in the jsdoc. Can be disabled by setting the `enableFixer` option to `false`. -##### Destructured object and array naming +### Destructured object and array naming When the fixer is applied to destructured objects, only the input name is used. @@ -59,7 +61,7 @@ function quux ([foo, bar]) { */ ``` -##### Missing root fixing +### Missing root fixing Note that unless `enableRootFixer` (or `enableFixer`) is set to `false`, missing roots will be added and auto-incremented. The default behavior @@ -93,7 +95,7 @@ numeric component). And one can have the count begin at another number (e.g., `1`) by changing `autoIncrementBase` from the default of `0`. -##### Rest Element (`RestElement`) insertions +### Rest Element (`RestElement`) insertions The fixer will automatically report/insert [jsdoc repeatable parameters](https://jsdoc.app/tags-param.html#multiple-types-and-repeatable-parameters) @@ -144,7 +146,7 @@ function baar ([a, ...extra]) { ...because it does not use the `...` syntax in the type. -##### Object Rest Property insertions +### Object Rest Property insertions If the `checkRestProperty` option is set to `true` (`false` by default), missing rest properties will be reported with documentation auto-inserted: @@ -178,26 +180,26 @@ other properties, so in looking at the docs alone without looking at the function signature, it may appear that there is an actual property named `extra`. -#### Options +## Options An options object accepts the following optional properties: -##### `enableFixer` +### `enableFixer` Whether to enable the fixer. Defaults to `true`. -##### `enableRootFixer` +### `enableRootFixer` Whether to enable the auto-adding of incrementing roots (see the "Fixer" section). Defaults to `true`. Has no effect if `enableFixer` is set to `false`. -##### `enableRestElementFixer` +### `enableRestElementFixer` Whether to enable the rest element fixer (see "Rest Element (`RestElement`) insertions"). Defaults to `true`. -##### `checkRestProperty` +### `checkRestProperty` If set to `true`, will report (and add fixer insertions) for missing rest properties. Defaults to `false`. @@ -250,12 +252,12 @@ function quux ({num, ...extra}) { } ``` -##### `autoIncrementBase` +### `autoIncrementBase` Numeric to indicate the number at which to begin auto-incrementing roots. Defaults to `0`. -##### `unnamedRootBase` +### `unnamedRootBase` An array of root names to use in the fixer when roots are missing. Defaults to `['root']`. Note that only when all items in the array besides the last @@ -280,7 +282,7 @@ function quux ({foo}, [bar], {baz}) { */ ``` -##### `exemptedBy` +### `exemptedBy` Array of tags (e.g., `['type']`) whose presence on the document block avoids the need for a `@param`. Defaults to an array with @@ -288,7 +290,7 @@ avoids the need for a `@param`. Defaults to an array with so be sure to add back `inheritdoc` if you wish its presence to cause exemption of the rule. -##### `checkTypesPattern` +### `checkTypesPattern` When one specifies a type, unless it is of a generic type, like `object` or `array`, it may be considered unnecessary to have that object's @@ -322,7 +324,7 @@ You could set this regular expression to a more expansive list, or you could restrict it such that even types matching those strings would not need destructuring. -##### `contexts` +### `contexts` Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -333,24 +335,24 @@ which are checked. See the ["AST and Selectors"](../#advanced-ast-and-selectors) section of our README for more on the expected format. -##### `checkConstructors` +### `checkConstructors` A value indicating whether `constructor`s should be checked. Defaults to `true`. -##### `checkGetters` +### `checkGetters` A value indicating whether getters should be checked. Defaults to `false`. -##### `checkSetters` +### `checkSetters` A value indicating whether setters should be checked. Defaults to `false`. -##### `checkDestructured` +### `checkDestructured` Whether to require destructured properties. Defaults to `true`. -##### `checkDestructuredRoots` +### `checkDestructuredRoots` Whether to check the existence of a corresponding `@param` for root objects of destructured properties (e.g., that for `function ({a, b}) {}`, that there @@ -362,11 +364,13 @@ implied to be `false` (i.e., the inside of the roots will not be checked either, e.g., it will also not complain if `a` or `b` do not have their own documentation). Defaults to `true`. -##### `useDefaultObjectProperties` +### `useDefaultObjectProperties` Set to `true` if you wish to expect documentation of properties on objects supplied as default values. Defaults to `false`. +## Context and settings + | | | | -------- | ----------------------------------------------------------------------------- | | Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | @@ -376,4 +380,10 @@ supplied as default values. Defaults to `false`. | Options | `autoIncrementBase`, `checkDestructured`, `checkDestructuredRoots`, `contexts`, `enableFixer`, `enableRootFixer`, `enableRestElementFixer`, `checkRestProperty`, `exemptedBy`, `checkConstructors`, `checkGetters`, `checkSetters`, `checkTypesPattern`, `unnamedRootBase`, `useDefaultObjectProperties`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-property-description.md b/.README/rules/require-property-description.md index 42febddee..1666204e2 100644 --- a/.README/rules/require-property-description.md +++ b/.README/rules/require-property-description.md @@ -1,7 +1,11 @@ -### `require-property-description` +# `require-property-description` + +{"gitdown": "contents", "rootId": "require-property-description"} Requires that each `@property` tag has a `description` value. +## Context and settings + ||| |---|---| |Context|everywhere| @@ -9,4 +13,10 @@ Requires that each `@property` tag has a `description` value. |Aliases|`prop`| |Recommended|true| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-property-name.md b/.README/rules/require-property-name.md index 7b9d9b9d8..2994450ae 100644 --- a/.README/rules/require-property-name.md +++ b/.README/rules/require-property-name.md @@ -1,6 +1,10 @@ -### `require-property-name` +# `require-property-name` -Requires that all function `@property` tags have names. +{"gitdown": "contents", "rootId": "require-property-name"} + +Requires that all `@property` tags have names. + +## Context and settings ||| |---|---| @@ -9,4 +13,10 @@ Requires that all function `@property` tags have names. |Aliases|`prop`| |Recommended|true| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-property-type.md b/.README/rules/require-property-type.md index bbb1065c3..09321fa0f 100644 --- a/.README/rules/require-property-type.md +++ b/.README/rules/require-property-type.md @@ -1,6 +1,10 @@ -### `require-property-type` +# `require-property-type` -Requires that each `@property` tag has a `type` value. +{"gitdown": "contents", "rootId": "require-property-type"} + +Requires that each `@property` tag has a type value (within curly brackets). + +## Context and settings ||| |---|---| @@ -9,4 +13,10 @@ Requires that each `@property` tag has a `type` value. |Aliases|`prop`| |Recommended|true| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-property.md b/.README/rules/require-property.md index f209ef947..884643c6d 100644 --- a/.README/rules/require-property.md +++ b/.README/rules/require-property.md @@ -1,19 +1,29 @@ -### `require-property` +# `require-property` + +{"gitdown": "contents", "rootId": "require-property"} Requires that all `@typedef` and `@namespace` tags have `@property` -when their type is a plain `object`, `Object`, or `PlainObject`. +tags when their type is a plain `object`, `Object`, or `PlainObject`. Note that any other type, including a subtype of object such as `object`, will not be reported. -#### Fixer +## Fixer The fixer for `require-property` will add an empty `@property`. +## Context and settings + ||| |---|---| |Context|Everywhere| |Tags|`typedef`, `namespace`| |Recommended|true| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-returns-check.md b/.README/rules/require-returns-check.md index a570d82de..7dede5c67 100644 --- a/.README/rules/require-returns-check.md +++ b/.README/rules/require-returns-check.md @@ -1,8 +1,11 @@ -### `require-returns-check` +# `require-returns-check` -Requires a return statement (or non-`undefined` Promise resolve value) in -function bodies if a `@returns` tag (without a `void` or `undefined` type) -is specified in the function's JSDoc comment. +{"gitdown": "contents", "rootId": "require-returns-check"} + +Requires a return statement (or non-`undefined` Promise resolve value) +be present in a +function body if a `@returns` tag (without a `void` or `undefined` type) +is specified in the function's JSDoc comment block. Will also report `@returns {void}` and `@returns {undefined}` if `exemptAsync` is set to `false` and a non-`undefined` value is returned or a resolved value @@ -10,7 +13,7 @@ is found. Also reports if `@returns {never}` is discovered with a return value. Will also report if multiple `@returns` tags are present. -#### Options +## Options - `exemptGenerators`- Because a generator might be labeled as having a `IterableIterator` `@returns` value (along with an iterator type @@ -34,6 +37,8 @@ Will also report if multiple `@returns` tags are present. Unlike `require-returns`, with this option in the rule, one can *discourage* the labeling of `undefined` types. Defaults to `false`. +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| @@ -42,4 +47,10 @@ Will also report if multiple `@returns` tags are present. |Options|`exemptAsync`, `reportMissingReturnForUndefinedTypes`| |Recommended|true| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-returns-description.md b/.README/rules/require-returns-description.md index 63e8ad343..59b826933 100644 --- a/.README/rules/require-returns-description.md +++ b/.README/rules/require-returns-description.md @@ -1,12 +1,14 @@ -### `require-returns-description` +# `require-returns-description` + +{"gitdown": "contents", "rootId": "require-returns-description"} Requires that the `@returns` tag has a `description` value. The error will not be reported if the return value is `void` or `undefined` or if it is `Promise` or `Promise`. -#### Options +## Options -##### `contexts` +### `contexts` Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -19,6 +21,8 @@ expression, i.e., `@callback` or `@function` (or its aliases `@func` or See the ["AST and Selectors"](../#advanced-ast-and-selectors) section of our README for more on the expected format. +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| @@ -27,4 +31,10 @@ section of our README for more on the expected format. |Recommended|true| |Options|`contexts`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-returns-type.md b/.README/rules/require-returns-type.md index 088d08bab..fa18b9ad7 100644 --- a/.README/rules/require-returns-type.md +++ b/.README/rules/require-returns-type.md @@ -1,10 +1,12 @@ -### `require-returns-type` +# `require-returns-type` -Requires that `@returns` tag has `type` value. +{"gitdown": "contents", "rootId": "require-returns-type"} -#### Options +Requires that `@returns` tag has a `type` value (in curly brackets). -##### `contexts` +## Options + +### `contexts` Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -17,6 +19,8 @@ expression, i.e., `@callback` or `@function` (or its aliases `@func` or See the ["AST and Selectors"](../#advanced-ast-and-selectors) section of our README for more on the expected format. +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| @@ -25,4 +29,10 @@ section of our README for more on the expected format. |Recommended|true| |Options|`contexts`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-returns.md b/.README/rules/require-returns.md index 9e02689ac..807ea4e59 100644 --- a/.README/rules/require-returns.md +++ b/.README/rules/require-returns.md @@ -1,10 +1,12 @@ -### `require-returns` +# `require-returns` -Requires that returns are documented. +{"gitdown": "contents", "rootId": "require-returns"} + +Requires that return statements are documented. Will also report if multiple `@returns` tags are present. -#### Options +## Options - `checkConstructors` - A value indicating whether `constructor`s should be checked for `@returns` tags. Defaults to `false`. @@ -41,6 +43,8 @@ Will also report if multiple `@returns` tags are present. (since we are not checking against the actual `return` values in these cases). +## Context and settings + | | | | -------- | ------- | | Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | @@ -50,4 +54,10 @@ Will also report if multiple `@returns` tags are present. | Options | `checkConstructors`, `checkGetters`, `contexts`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync` | | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-throws.md b/.README/rules/require-throws.md index c3d612273..0f6874353 100644 --- a/.README/rules/require-throws.md +++ b/.README/rules/require-throws.md @@ -1,4 +1,6 @@ -### `require-throws` +# `require-throws` + +{"gitdown": "contents", "rootId": "require-throws"} Requires that throw statements are documented. @@ -9,7 +11,7 @@ for our desire for a separate tag to document rejection types and see [this discussion](https://stackoverflow.com/questions/50071115/typescript-promise-rejection-type) on why TypeScript doesn't offer such a feature. -#### Options +## Options - `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the document block avoids the need for a `@throws`. Defaults to an array @@ -29,6 +31,8 @@ on why TypeScript doesn't offer such a feature. 'jsdoc/require-throws': 'error', ``` +## Context and settings + | | | | -------- | --- | | Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | @@ -38,4 +42,10 @@ on why TypeScript doesn't offer such a feature. | Options | `contexts`, `exemptedBy` | | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-yields-check.md b/.README/rules/require-yields-check.md index dc1cf5607..f391a4c99 100644 --- a/.README/rules/require-yields-check.md +++ b/.README/rules/require-yields-check.md @@ -1,4 +1,6 @@ -### `require-yields-check` +# `require-yields-check` + +{"gitdown": "contents", "rootId": "require-yields-check"} Ensures that if a `@yields` is present that a `yield` (or `yield` with a value) is present in the function body (or that if a `@next` is present that @@ -15,7 +17,7 @@ function bodies. Will also report if multiple `@yields` tags are present. -#### Options +## Options - `checkGeneratorsOnly` - Avoids checking the function body and merely insists that all generators have `@yields`. This can be an optimization with the @@ -34,6 +36,8 @@ Will also report if multiple `@yields` tags are present. merely has plain `yield;` or `yield value;` statements without returning the values. Defaults to `false`. +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| @@ -41,4 +45,11 @@ Will also report if multiple `@yields` tags are present. |Aliases|`yield`| |Recommended|true| |Options|`checkGeneratorsOnly`| - + +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/require-yields.md b/.README/rules/require-yields.md index 2d889f284..7d8d8ad10 100644 --- a/.README/rules/require-yields.md +++ b/.README/rules/require-yields.md @@ -1,4 +1,6 @@ -### `require-yields` +# `require-yields` + +{"gitdown": "contents", "rootId": "require-yields"} Requires that yields are documented. @@ -7,7 +9,7 @@ Will also report if multiple `@yields` tags are present. See the `next`, `forceRequireNext`, and `nextWithGeneratorTag` options for an option to expect a non-standard `@next` tag. -#### Options +## Options - `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the document block avoids the need for a `@yields`. Defaults to an array @@ -55,6 +57,8 @@ option to expect a non-standard `@next` tag. `any` if you want to catch `@generator` with `@callback` or such not attached to a function. +## Context and settings + ||| |---|---| |Context|Generator functions (`FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled)| @@ -64,4 +68,10 @@ option to expect a non-standard `@next` tag. | Options | `contexts`, `exemptedBy`, `withGeneratorTag`, `nextWithGeneratorTag`, `forceRequireYields`, `next` | | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/sort-tags.md b/.README/rules/sort-tags.md index 0e4b0469a..bce540370 100644 --- a/.README/rules/sort-tags.md +++ b/.README/rules/sort-tags.md @@ -1,4 +1,6 @@ -### `sort-tags` +# `sort-tags` + +{"gitdown": "contents", "rootId": "sort-tags"} Sorts tags by a specified sequence according to tag name, optionally adding line breaks between tag groups. @@ -17,9 +19,13 @@ line break setting this rule will attempt to do when not disabled. You may, however, safely set the "any" option in that rule along with `startLines` and/or `endLines`. -#### Options +## Fixer + +(TODO) -##### `tagSequence` +## Options + +### `tagSequence` An array of tag group objects indicating the preferred sequence for sorting tags. @@ -202,7 +208,7 @@ a fixed order that doesn't change into the future, supply your own ]}]; ``` -##### `alphabetizeExtras` +### `alphabetizeExtras` Defaults to `false`. Alphabetizes any items not within `tagSequence` after any items within `tagSequence` (or in place of the special `-other` pseudo-tag) @@ -211,25 +217,27 @@ are sorted. If you want all your tags alphabetized, you can supply an empty array for `tagSequence` along with setting this option to `true`. -##### `linesBetween` +### `linesBetween` Indicates the number of lines to be added between tag groups. Defaults to 1. Do not set to 0 or 2+ if you are using `tag-lines` and `"always"` and do not set to 1+ if you are using `tag-lines` and `"never"`. -##### `reportTagGroupSpacing` +### `reportTagGroupSpacing` Whether to enable reporting and fixing of line breaks between tag groups as set by `linesBetween`. Defaults to `true`. Note that the very last tag will not have spacing applied regardless. For adding line breaks there, you may wish to use the `endLines` option of the `tag-lines` rule. -##### `reportIntraTagGroupSpacing` +### `reportIntraTagGroupSpacing` Whether to enable reporting and fixing of line breaks within tags of a given tag group. Defaults to `true` which will remove any line breaks at the end of such tags. Do not use with `true` if you are using `tag-lines` and `always`. +## Context and settings + ||| |---|---| |Context|everywhere| @@ -238,4 +246,10 @@ such tags. Do not use with `true` if you are using `tag-lines` and `always`. |Settings|| |Options|`tagSequence`, `alphabetizeExtras`, `linesBetween`, `reportTagGroupSpacing`, `reportIntraTagGroupSpacing`| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/tag-lines.md b/.README/rules/tag-lines.md index ddabee506..81b341ab3 100644 --- a/.README/rules/tag-lines.md +++ b/.README/rules/tag-lines.md @@ -1,4 +1,6 @@ -### `tag-lines` +# `tag-lines` + +{"gitdown": "contents", "rootId": "tag-lines"} Enforces lines (or no lines) between tags. @@ -9,7 +11,11 @@ The "always" or "never" options of this rule should not be used with the linebreak-setting options of the `sort-tags` rule as both may try to impose a conflicting number of lines. -#### Options +## Fixer + +(TODO) + +## Options The first option is a single string set to "always", "never", or "any" (defaults to "never"). @@ -22,27 +28,27 @@ between tags. The second option is an object with the following optional properties. -##### `count` (defaults to 1) +### `count` (defaults to 1) Use with "always" to indicate the number of lines to require be present. -##### `applyToEndTag` (defaults to `true`) +### `applyToEndTag` (defaults to `true`) Set to `false` and use with "always" to indicate the normal lines to be added after tags should not be added after the final tag. -##### `startLines` (defaults to `0`) +### `startLines` (defaults to `0`) If not set to `null`, will enforce end lines to the given count before the first tag only, unless there is only whitespace content, in which case, a line count will not be enforced. -##### `endLines` (defaults to `0`) +### `endLines` (defaults to `0`) If not set to `null`, will enforce end lines to the given count on the final tag only. -##### `tags` (default to empty object) +### `tags` (default to empty object) Overrides the default behavior depending on specific tags. @@ -52,6 +58,8 @@ following keys: 1. `lines` - Set to `always`, `never`, or `any` to override. 2. `count` - Overrides main `count` (for "always") +## Context and settings + ||| |---|---| |Context|everywhere| @@ -60,4 +68,10 @@ following keys: |Settings|N/A| |Options|(a string matching `"always"`, `"never"`, or `"any"` and optional object with `count`, `applyToEndTag`, `startLines`, `endLines`)| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/text-escaping.md b/.README/rules/text-escaping.md index 220548836..520b4c40a 100644 --- a/.README/rules/text-escaping.md +++ b/.README/rules/text-escaping.md @@ -1,4 +1,6 @@ -### `text-escaping` +# `text-escaping` + +{"gitdown": "contents", "rootId": "text-escaping"} This rule can auto-escape certain characters that are input within block and tag descriptions. @@ -8,17 +10,23 @@ Markdown and you therefore do not wish for it to be accidentally interpreted as such by the likes of Visual Studio Code or if you wish to view it escaped within it or your documentation. -#### Options +## Fixer + +(TODO) -##### `escapeHTML` +## Options + +### `escapeHTML` This option escapes all `<` and `&` characters (except those followed by whitespace which are treated as literals by Visual Studio Code). -##### `escapeMarkdown` +### `escapeMarkdown` This option escapes the first backtick (`` ` ``) in a paired sequence. +## Context and settings + ||| |---|---| |Context|everywhere| @@ -27,4 +35,10 @@ This option escapes the first backtick (`` ` ``) in a paired sequence. |Settings|| |Options|| - +## Failing examples + + + +## Passing examples + + diff --git a/.README/rules/valid-types.md b/.README/rules/valid-types.md index a29a2a279..437bcb179 100644 --- a/.README/rules/valid-types.md +++ b/.README/rules/valid-types.md @@ -1,7 +1,11 @@ -### `valid-types` +# `valid-types` -Requires all types to be valid JSDoc, Closure, or TypeScript compiler types -without syntax errors. Note that what determines a valid type is handled by +{"gitdown": "contents", "rootId": "valid-types"} + +Requires all types/namepaths to be valid JSDoc, Closure compiler, or +TypeScript types (configured by `settings.jsdoc.mode`). + +Note that what determines a valid type is handled by our type parsing engine, [jsdoc-type-pratt-parser](https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser), using [`settings.jsdoc.mode`](../#settings-mode) to determine whether to use jsdoc-type-pratt-parser's "permissive" parsing or @@ -78,7 +82,7 @@ for valid types (based on the tag's `type` value), and either portion checked for presence (based on `false` `name` or `type` values or their `required` value). See the setting for more details. -#### Options +## Options - `allowEmptyNamepaths` (default: true) - Set to `false` to bulk disallow empty name paths with namepath groups 2 and 4 (these might often be @@ -88,6 +92,8 @@ value). See the setting for more details. `settings.jsdoc.structuredTags` with the `required` key set to "name" if you wish to require name paths on a tag-by-tag basis. +## Context and settings + ||| |---|---| |Context|everywhere| @@ -98,4 +104,10 @@ value). See the setting for more details. |Options|`allowEmptyNamepaths`| |Settings|`mode`, `structuredTags`| - +## Failing examples + + + +## Passing examples + + diff --git a/docs/rules/check-access.md b/docs/rules/check-access.md index 4f68c0ec2..83cf47314 100644 --- a/docs/rules/check-access.md +++ b/docs/rules/check-access.md @@ -1,6 +1,11 @@ -### check-access +# check-access + +* [Context and settings](#user-content-check-access-context-and-settings) +* [Failing examples](#user-content-check-access-failing-examples) +* [Passing examples](#user-content-check-access-passing-examples) + Checks that `@access` tags use one of the following values: @@ -13,6 +18,10 @@ Also reports: - Use of multiple instances of `@access` (or the `@public`, etc. style tags) on the same doc block. + + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -21,6 +30,8 @@ Also reports: |Settings|| |Options|| + + ## Failing examples The following patterns are considered problems: @@ -126,6 +137,10 @@ function quux (foo) { // Message: At most one access-control tag may be present on a jsdoc block. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/check-alignment.md b/docs/rules/check-alignment.md index 5a45db2c3..e5345b648 100644 --- a/docs/rules/check-alignment.md +++ b/docs/rules/check-alignment.md @@ -1,15 +1,33 @@ -### check-alignment +# check-alignment + +* [Fixer](#user-content-check-alignment-fixer) +* [Context and settings](#user-content-check-alignment-context-and-settings) +* [Failing examples](#user-content-check-alignment-failing-examples) +* [Passing examples](#user-content-check-alignment-passing-examples) + Reports invalid alignment of JSDoc block asterisks. + + +## Fixer + +Fixes alignment. + + + +## Context and settings + ||| |---|---| |Context|everywhere| |Tags|N/A| |Recommended|true| + + ## Failing examples The following patterns are considered problems: @@ -94,6 +112,10 @@ class Foo { // Message: Expected JSDoc block to be aligned. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/check-examples.md b/docs/rules/check-examples.md index 611146f2d..f4bd4d092 100644 --- a/docs/rules/check-examples.md +++ b/docs/rules/check-examples.md @@ -1,6 +1,19 @@ -### check-examples +# check-examples + +* [Options](#user-content-check-examples-options) + * [`captionRequired`](#user-content-check-examples-options-captionrequired) + * [`exampleCodeRegex` and `rejectExampleCodeRegex`](#user-content-check-examples-options-examplecoderegex-and-rejectexamplecoderegex) + * [`paddedIndent`](#user-content-check-examples-options-paddedindent) + * [`reportUnusedDisableDirectives`](#user-content-check-examples-options-reportunuseddisabledirectives) +* [Options for Determining ESLint Rule Applicability (`allowInlineConfig`, `noDefaultExampleRules`, `matchingFileName`, `configFile`, `checkEslintrc`, and `baseConfig`)](#user-content-check-examples-options-for-determining-eslint-rule-applicability-allowinlineconfig-nodefaultexamplerules-matchingfilename-configfile-checkeslintrc-and-baseconfig) + * [Rules Disabled by Default Unless `noDefaultExampleRules` is Set to `true`](#user-content-check-examples-options-for-determining-eslint-rule-applicability-allowinlineconfig-nodefaultexamplerules-matchingfilename-configfile-checkeslintrc-and-baseconfig-rules-disabled-by-default-unless-nodefaultexamplerules-is-set-to-true) + * [Options for checking other than `@example` (`checkDefaults`, `checkParams`, or `checkProperties`)](#user-content-check-examples-options-for-determining-eslint-rule-applicability-allowinlineconfig-nodefaultexamplerules-matchingfilename-configfile-checkeslintrc-and-baseconfig-options-for-checking-other-than-example-checkdefaults-checkparams-or-checkproperties) +* [Context and settings](#user-content-check-examples-context-and-settings) +* [Failing examples](#user-content-check-examples-failing-examples) +* [Passing examples](#user-content-check-examples-passing-examples) + > **NOTE**: This rule currently does not work in ESLint 8 (we are waiting for > [issue 14745](https://github.com/eslint/eslint/issues/14745)). @@ -11,13 +24,13 @@ and `@property`/`@prop` tags or the values of `@default`/`@defaultvalue` tags. -#### Options +## Options The options below all default to no-op/`false` except as noted. -##### captionRequired +### captionRequired JSDoc specs use of an optional `` element at the beginning of `@example`. @@ -29,7 +42,7 @@ Used only for `@example`. -##### exampleCodeRegex and rejectExampleCodeRegex +### exampleCodeRegex and rejectExampleCodeRegex JSDoc does not specify a formal means for delimiting code blocks within `@example` (it uses generic syntax highlighting techniques for its own @@ -59,7 +72,7 @@ before doing the regex matching. -##### paddedIndent +### paddedIndent This integer property allows one to add a fixed amount of whitespace at the beginning of the second or later lines of the example to be stripped so as @@ -81,7 +94,7 @@ Only applied to `@example` linting. -##### reportUnusedDisableDirectives +### reportUnusedDisableDirectives If not set to `false`, `reportUnusedDisableDirectives` will report disabled directives which are not used (and thus not needed). Defaults to `true`. @@ -94,7 +107,7 @@ needed by the resolved rules will be reported as with the ESLint -#### Options for Determining ESLint Rule Applicability (allowInlineConfig, noDefaultExampleRules, matchingFileName, configFile, checkEslintrc, and baseConfig) +## Options for Determining ESLint Rule Applicability (allowInlineConfig, noDefaultExampleRules, matchingFileName, configFile, checkEslintrc, and baseConfig) The following options determine which individual ESLint rules will be applied to the JavaScript found within the `@example` tags (as determined @@ -147,7 +160,7 @@ by decreasing precedence: -##### Rules Disabled by Default Unless noDefaultExampleRules is Set to true +### Rules Disabled by Default Unless noDefaultExampleRules is Set to true * `eol-last` - Insisting that a newline "always" be at the end is less likely to be desired in sample code as with the code file convention. @@ -184,12 +197,16 @@ expression-oriented rules will be used by default as well: -##### Options for checking other than @example (checkDefaults, checkParams, or checkProperties) +### Options for checking other than @example (checkDefaults, checkParams, or checkProperties) * `checkDefaults` - Whether to check the values of `@default`/`@defaultvalue` tags * `checkParams` - Whether to check `@param`/`@arg`/`@argument` default values * `checkProperties` - Whether to check `@property`/`@prop` default values + + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -197,6 +214,8 @@ expression-oriented rules will be used by default as well: |Recommended|false| |Options| *See above* | + + ## Failing examples The following patterns are considered problems: @@ -536,6 +555,10 @@ const functionName = function (paramOne, paramTwo, // Message: @example error (semi): Missing semicolon. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/check-indentation.md b/docs/rules/check-indentation.md index 8c6142933..8cc47f22f 100644 --- a/docs/rules/check-indentation.md +++ b/docs/rules/check-indentation.md @@ -1,6 +1,13 @@ -### check-indentation +# check-indentation + +* [Options](#user-content-check-indentation-options) + * [`excludeTags`](#user-content-check-indentation-options-excludetags) +* [Context and settings](#user-content-check-indentation-context-and-settings) +* [Failing examples](#user-content-check-indentation-failing-examples) +* [Passing examples](#user-content-check-indentation-passing-examples) + Reports invalid padding inside JSDoc blocks. @@ -20,13 +27,13 @@ the following description is not reported: -#### Options +## Options This rule has an object option. -##### excludeTags +### excludeTags Array of tags (e.g., `['example', 'description']`) whose content will be "hidden" from the `check-indentation` rule. Defaults to `['example']`. @@ -48,6 +55,10 @@ report a padding issue: */ ``` + + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -55,6 +66,8 @@ report a padding issue: |Recommended|false| |Options| `excludeTags` | + + ## Failing examples The following patterns are considered problems: @@ -167,6 +180,10 @@ function quux () { // Message: There must be no indentation. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/check-line-alignment.md b/docs/rules/check-line-alignment.md index fdbbb3ae2..322a1f30b 100644 --- a/docs/rules/check-line-alignment.md +++ b/docs/rules/check-line-alignment.md @@ -1,14 +1,31 @@ -### check-line-alignment +# check-line-alignment + +* [Fixer](#user-content-check-line-alignment-fixer) +* [Options](#user-content-check-line-alignment-options) + * [`tags`](#user-content-check-line-alignment-options-tags) + * [`customSpacings`](#user-content-check-line-alignment-options-customspacings) + * [`preserveMainDescriptionPostDelimiter`](#user-content-check-line-alignment-options-preservemaindescriptionpostdelimiter) + * [`wrapIndent`](#user-content-check-line-alignment-options-wrapindent) +* [Context and settings](#user-content-check-line-alignment-context-and-settings) +* [Failing examples](#user-content-check-line-alignment-failing-examples) +* [Passing examples](#user-content-check-line-alignment-passing-examples) + Reports invalid alignment of JSDoc block lines. This is a [standard recommended to WordPress code](https://make.wordpress.org/core/handbook/best-practices/inline-documentation-standards/javascript/#aligning-comments), for example. + + +## Fixer + +(TODO) + -#### Options +## Options This rule allows one optional string argument. If it is `"always"` then a problem is raised when the lines are not aligned. If it is `"never"` then @@ -22,14 +39,14 @@ After the string, an options object is allowed with the following properties. -##### tags +### tags Use this to change the tags which are sought for alignment changes. Defaults to an array of `['param', 'arg', 'argument', 'property', 'prop', 'returns', 'return']`. -##### customSpacings +### customSpacings An object with any of the following keys set to an integer. Affects spacing: @@ -43,18 +60,22 @@ If a spacing is not defined, it defaults to one. -##### preserveMainDescriptionPostDelimiter +### preserveMainDescriptionPostDelimiter A boolean to determine whether to preserve the post-delimiter spacing of the main description. If `false` or unset, will be set to a single space. -##### wrapIndent +### wrapIndent The indent that will be applied for tag text after the first line. Default to the empty string (no indent). + + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -63,6 +84,8 @@ Default to the empty string (no indent). |Aliases|`arg`, `argument`, `prop`, `return`| |Recommended|false| + + ## Failing examples The following patterns are considered problems: @@ -554,6 +577,10 @@ function quux () {} // Message: Expected wrap indent ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/check-param-names.md b/docs/rules/check-param-names.md index 030696ec8..1462b782f 100644 --- a/docs/rules/check-param-names.md +++ b/docs/rules/check-param-names.md @@ -1,13 +1,34 @@ -### check-param-names +# check-param-names + +* [Fixer](#user-content-check-param-names-fixer) +* [Destructuring](#user-content-check-param-names-destructuring) +* [Options](#user-content-check-param-names-options) + * [`checkRestProperty`](#user-content-check-param-names-options-checkrestproperty) + * [`checkTypesPattern`](#user-content-check-param-names-options-checktypespattern) + * [`enableFixer`](#user-content-check-param-names-options-enablefixer) + * [`allowExtraTrailingParamDocs`](#user-content-check-param-names-options-allowextratrailingparamdocs) + * [`checkDestructured`](#user-content-check-param-names-options-checkdestructured) + * [`useDefaultObjectProperties`](#user-content-check-param-names-options-usedefaultobjectproperties) + * [`disableExtraPropertyReporting`](#user-content-check-param-names-options-disableextrapropertyreporting) +* [Context and settings](#user-content-check-param-names-context-and-settings) +* [Failing examples](#user-content-check-param-names-failing-examples) +* [Passing examples](#user-content-check-param-names-passing-examples) + Ensures that parameter names in JSDoc are matched by corresponding items in the function declaration. + + +## Fixer + +(Todo) + -#### Destructuring +## Destructuring Note that by default the rule will not report parameters present on the docs but non-existing on the function signature when an object rest property is part @@ -34,23 +55,23 @@ may appear that there is an actual property named `extra`. -#### Options +## Options -##### checkRestProperty +### checkRestProperty See the "Destructuring" section. Defaults to `false`. -##### checkTypesPattern +### checkTypesPattern See `require-param` under the option of the same name. -##### enableFixer +### enableFixer Set to `true` to auto-remove `@param` duplicates (based on identical names). @@ -61,7 +82,7 @@ be removed even if it has a different type or description). -##### allowExtraTrailingParamDocs +### allowExtraTrailingParamDocs If set to `true`, this option will allow extra `@param` definitions (e.g., representing future expected or virtual params) to be present without needing @@ -70,13 +91,13 @@ their presence within the function signature. Other inconsistencies between -##### checkDestructured +### checkDestructured Whether to check destructured properties. Defaults to `true`. -##### useDefaultObjectProperties +### useDefaultObjectProperties Set to `true` if you wish to avoid reporting of child property documentation where instead of destructuring, a whole plain object is supplied as default @@ -85,7 +106,7 @@ are present and can therefore be documented. Defaults to `false`. -##### disableExtraPropertyReporting +### disableExtraPropertyReporting Whether to check for extra destructured properties. Defaults to `false`. Change to `true` if you want to be able to document properties which are not actually @@ -95,6 +116,10 @@ item at the same level is destructured as destructuring will prevent other access and this option is only intended to permit documenting extra properties that are available and actually used in the function. + + +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| @@ -102,6 +127,9 @@ that are available and actually used in the function. |Tags|`param`| |Aliases|`arg`, `argument`| |Recommended|true| + + + ## Failing examples The following patterns are considered problems: @@ -589,6 +617,10 @@ declare function foo(bar: number) {} // Message: Expected @param names to be "bar". Got "barr". ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/check-property-names.md b/docs/rules/check-property-names.md index 1edeb843c..77f97d7b8 100644 --- a/docs/rules/check-property-names.md +++ b/docs/rules/check-property-names.md @@ -1,17 +1,31 @@ -### check-property-names +# check-property-names + +* [Fixer](#user-content-check-property-names-fixer) +* [Options](#user-content-check-property-names-options) + * [`enableFixer`](#user-content-check-property-names-options-enablefixer) +* [Context and settings](#user-content-check-property-names-context-and-settings) +* [Failing examples](#user-content-check-property-names-failing-examples) +* [Passing examples](#user-content-check-property-names-passing-examples) + Ensures that property names in JSDoc are not duplicated on the same block and that nested properties have defined roots. + + +## Fixer + +(Todo) + -#### Options +## Options -##### enableFixer +### enableFixer Set to `true` to auto-remove `@property` duplicates (based on identical names). @@ -20,6 +34,10 @@ Note that this option will remove duplicates of the same name even if the definitions do not match in other ways (e.g., the second property will be removed even if it has a different type or description). + + +## Context and settings + ||| |---|---| |Context|Everywhere| @@ -28,6 +46,8 @@ be removed even if it has a different type or description). |Aliases|`prop`| |Recommended|true| + + ## Failing examples The following patterns are considered problems: @@ -147,6 +167,10 @@ function quux ({foo, bar}, baz) { // Message: Unexpected tag `@property` ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/check-syntax.md b/docs/rules/check-syntax.md index 643e84ded..456776538 100644 --- a/docs/rules/check-syntax.md +++ b/docs/rules/check-syntax.md @@ -1,6 +1,11 @@ -### check-syntax +# check-syntax + +* [Context and settings](#user-content-check-syntax-context-and-settings) +* [Failing examples](#user-content-check-syntax-failing-examples) +* [Passing examples](#user-content-check-syntax-passing-examples) + Reports against syntax not encouraged for the mode (e.g., Google Closure Compiler in "jsdoc" or "typescript" mode). Note that this rule will not check @@ -15,12 +20,18 @@ Note that "jsdoc" actually allows Closure syntax, but with another option available for optional parameters (enclosing the name in brackets), the rule is enforced (except under "permissive" and "closure" modes). + + +## Context and settings + ||| |---|---| |Context|everywhere| |Tags|N/A| |Recommended|false| + + ## Failing examples The following patterns are considered problems: @@ -35,6 +46,10 @@ function quux (foo) { // Message: Syntax should not be Google Closure Compiler style. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/check-tag-names.md b/docs/rules/check-tag-names.md index 2f9643d9a..d3bc5cac7 100644 --- a/docs/rules/check-tag-names.md +++ b/docs/rules/check-tag-names.md @@ -1,6 +1,17 @@ -### check-tag-names +# check-tag-names + +* [Fixer](#user-content-check-tag-names-fixer) +* [Options](#user-content-check-tag-names-options) + * [`definedTags`](#user-content-check-tag-names-options-definedtags) + * [`enableFixer`](#user-content-check-tag-names-options-enablefixer) + * [`jsxTags`](#user-content-check-tag-names-options-jsxtags) + * [`typed`](#user-content-check-tag-names-options-typed) +* [Context and settings](#user-content-check-tag-names-context-and-settings) +* [Failing examples](#user-content-check-tag-names-failing-examples) +* [Passing examples](#user-content-check-tag-names-passing-examples) + Reports invalid block tag names. @@ -192,13 +203,19 @@ tag to `false`: } ``` + + +## Fixer + +(Todo) + -#### Options +## Options -##### definedTags +### definedTags Use an array of `definedTags` strings to configure additional, allowed tags. The format is as follows: @@ -211,13 +228,13 @@ The format is as follows: -##### enableFixer +### enableFixer Set to `false` to disable auto-removal of types that are redundant with the [`typed` option](#user-content-typed). -##### jsxTags +### jsxTags If this is set to `true`, all of the following tags used to control JSX output are allowed: @@ -232,7 +249,7 @@ For more information, see the [babel documentation](https://babeljs.io/docs/en/b -##### typed +### typed If this is set to `true`, additionally checks for tag names that are redundant when using a type checker such as TypeScript. @@ -287,6 +304,10 @@ static this ``` + + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -295,6 +316,8 @@ this |Options|`definedTags`, `enableFixer`, `jsxTags`, `typed`| |Settings|`tagNamePreference`, `mode`| + + ## Failing examples The following patterns are considered problems: @@ -742,6 +765,10 @@ function Test() { // Message: '@typedef' is redundant when using a type system. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/check-types.md b/docs/rules/check-types.md index f6147ea6d..b54ce34c7 100644 --- a/docs/rules/check-types.md +++ b/docs/rules/check-types.md @@ -1,6 +1,15 @@ -### check-types +# check-types + +* [Options](#user-content-check-types-options) +* [Why not capital case everything?](#user-content-check-types-why-not-capital-case-everything) +* [Comparisons](#user-content-check-types-comparisons) +* [Fixer](#user-content-check-types-fixer) +* [Context and settings](#user-content-check-types-context-and-settings) +* [Failing examples](#user-content-check-types-failing-examples) +* [Passing examples](#user-content-check-types-passing-examples) + Reports invalid types. @@ -24,7 +33,7 @@ RegExp -#### Options +## Options `check-types` allows one option: @@ -75,7 +84,7 @@ the `valid-types` rule to report parsing errors. -#### Why not capital case everything? +## Why not capital case everything? Why are `boolean`, `number` and `string` exempt from starting with a capital letter? Let's take `string` as an example. In Javascript, everything is an @@ -137,6 +146,10 @@ In short: It's not about consistency, rather about the 99.9% use case. (And some functions might not even support the objects if they are checking for identity.) + + +## Comparisons + type name | `typeof` | check-types | testcase --|--|--|-- **Array** | object | **Array** | `([]) instanceof Array` -> `true` @@ -153,6 +166,16 @@ for types, you can use `settings.jsdoc.structuredTags` with a tag `type` of `false`. If you set their `type` to an array, only those values will be permitted. + + +## Fixer + +(Todo) + + + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -163,6 +186,8 @@ permitted. |Options|`noDefaults`, `exemptTagContexts`, `unifyParentAndChildTypeChecks`| |Settings|`preferredTypes`, `mode`, `structuredTags`| + + ## Failing examples The following patterns are considered problems: @@ -832,6 +857,10 @@ function a () {} // Message: Invalid JSDoc @param "b" type "object". ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/check-values.md b/docs/rules/check-values.md index 4910638ee..8e0d2f9ff 100644 --- a/docs/rules/check-values.md +++ b/docs/rules/check-values.md @@ -1,6 +1,16 @@ -### check-values +# check-values + +* [Options](#user-content-check-values-options) + * [`allowedAuthors`](#user-content-check-values-options-allowedauthors) + * [`allowedLicenses`](#user-content-check-values-options-allowedlicenses) + * [`licensePattern`](#user-content-check-values-options-licensepattern) + * [`numericOnlyVariation`](#user-content-check-values-options-numericonlyvariation) +* [Context and settings](#user-content-check-values-context-and-settings) +* [Failing examples](#user-content-check-values-failing-examples) +* [Passing examples](#user-content-check-values-passing-examples) + This rule checks the values for a handful of tags: @@ -21,25 +31,25 @@ This rule checks the values for a handful of tags: -#### Options +## Options -##### allowedAuthors +### allowedAuthors An array of allowable author values. If absent, only non-whitespace will be checked for. -##### allowedLicenses +### allowedLicenses An array of allowable license values or `true` to allow any license text. If present as an array, will be used in place of SPDX identifiers. -##### licensePattern +### licensePattern A string to be converted into a `RegExp` (with `u` flag) and whose first parenthetical grouping, if present, will match the portion of the license @@ -54,11 +64,15 @@ your expression as a string, but like a literal, e.g., `/^mit$/ui`. -##### numericOnlyVariation +### numericOnlyVariation Whether to enable validation that `@variation` must be a number. Defaults to `false`. + + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -67,6 +81,8 @@ Whether to enable validation that `@variation` must be a number. Defaults to |Options|`allowedAuthors`, `allowedLicenses`, `licensePattern`| |Settings|`tagNamePreference`| + + ## Failing examples The following patterns are considered problems: @@ -237,6 +253,10 @@ function quux (foo) { // Message: Invalid JSDoc @license: "Oops"; expected SPDX expression: https://spdx.org/licenses/. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/empty-tags.md b/docs/rules/empty-tags.md index 40c7709ed..123fdabd4 100644 --- a/docs/rules/empty-tags.md +++ b/docs/rules/empty-tags.md @@ -2,6 +2,8 @@ ### empty-tags + + Expects the following tags to be empty of any content: - `@abstract` @@ -33,13 +35,19 @@ causes rules not to take effect). Similarly, `@internal` will still be checked for content by this rule even with `settings.jsdoc.ignoreInternal` set to `true`. - - -#### Options + + +## Fixer + +(Todo) + + + +## Options - - -##### tags + + +### tags If you want additional tags to be checked for their descriptions, you may add them within this option. @@ -50,12 +58,19 @@ add them within this option. } ``` + + +## Context and settings + ||| |---|---| |Context|everywhere| |Tags| `abstract`, `async`, `generator`, `global`, `hideconstructor`, `ignore`, `inheritdoc`, `inner`, `instance`, `internal`, `override`, `readonly`, `package`, `private`, `protected`, `public`, `static` and others added by `tags`| |Recommended|true| |Options|`tags`| + + + ## Failing examples The following patterns are considered problems: @@ -130,6 +145,10 @@ function quux () { // Message: @private should be empty. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/implements-on-classes.md b/docs/rules/implements-on-classes.md index 776159e70..4c6556ab5 100644 --- a/docs/rules/implements-on-classes.md +++ b/docs/rules/implements-on-classes.md @@ -1,6 +1,13 @@ -### implements-on-classes +# implements-on-classes + +* [Options](#user-content-implements-on-classes-options) + * [`contexts`](#user-content-implements-on-classes-options-contexts) +* [Context and settings](#user-content-implements-on-classes-context-and-settings) +* [Failing examples](#user-content-implements-on-classes-failing-examples) +* [Passing examples](#user-content-implements-on-classes-passing-examples) + Reports an issue with any non-constructor function using `@implements`. @@ -13,11 +20,11 @@ function is adhering. -#### Options +## Options -##### contexts +### contexts Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -31,6 +38,10 @@ expression, i.e., `@callback` or `@function` (or its aliases `@func` or See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. + + +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| @@ -38,6 +49,8 @@ section of our README for more on the expected format. |Recommended|true| |Options|`contexts`| + + ## Failing examples The following patterns are considered problems: @@ -115,6 +128,10 @@ class Foo { // Message: @implements used on a non-constructor function ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/informative-docs.md b/docs/rules/informative-docs.md index 21f9289a2..571428c09 100644 --- a/docs/rules/informative-docs.md +++ b/docs/rules/informative-docs.md @@ -1,6 +1,14 @@ -### informative-docs +# informative-docs + +* [Options](#user-content-informative-docs-options) + * [`aliases`](#user-content-informative-docs-options-aliases) + * [`uselessWords`](#user-content-informative-docs-options-uselesswords) +* [Context and settings](#user-content-informative-docs-context-and-settings) +* [Failing examples](#user-content-informative-docs-failing-examples) +* [Passing examples](#user-content-informative-docs-passing-examples) + Reports on JSDoc texts that serve only to restart their attached name. @@ -16,11 +24,11 @@ This rule requires all docs comments contain at least one word not already in th -#### Options +## Options -##### aliases +### aliases The `aliases` option allows indicating words as synonyms (aliases) of each other. @@ -41,7 +49,7 @@ The default `aliases` option is: -##### uselessWords +### uselessWords Words that are ignored when searching for one that adds meaning. @@ -58,6 +66,10 @@ The default `uselessWords` option is: ["a", "an", "i", "in", "of", "s", "the"] ``` + + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -66,6 +78,8 @@ The default `uselessWords` option is: |Settings|| |Options|`aliases`, `uselessWords`| + + ## Failing examples The following patterns are considered problems: @@ -237,6 +251,10 @@ function takesOne(param) {} // Message: This description only repeats the name it describes. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/match-description.md b/docs/rules/match-description.md index cace5cafe..c2bf7c574 100644 --- a/docs/rules/match-description.md +++ b/docs/rules/match-description.md @@ -1,6 +1,17 @@ -### match-description +# match-description + +* [Options](#user-content-match-description-options) + * [`matchDescription`](#user-content-match-description-options-matchdescription) + * [`message`](#user-content-match-description-options-message) + * [`tags`](#user-content-match-description-options-tags) + * [`mainDescription`](#user-content-match-description-options-maindescription) + * [`contexts`](#user-content-match-description-options-contexts) +* [Context and settings](#user-content-match-description-context-and-settings) +* [Failing examples](#user-content-match-description-failing-examples) +* [Passing examples](#user-content-match-description-passing-examples) + Enforces a regular expression pattern on descriptions. @@ -28,11 +39,11 @@ that the trailing newlines of a description will not be matched. -#### Options +## Options -##### matchDescription +### matchDescription You can supply your own expression to override the default, passing a `matchDescription` string on the options object. @@ -45,7 +56,7 @@ You can supply your own expression to override the default, passing a -##### message +### message You may provide a custom default message by using the following format: @@ -62,7 +73,7 @@ This can be overridden per tag or for the main block description by setting -##### tags +### tags If you want different regular expressions to apply to tags, you may use the `tags` option object: @@ -112,7 +123,7 @@ is `xyz`). -##### mainDescription +### mainDescription If you wish to override the main block description without changing the default `match-description` (which can cascade to the `tags` with `true`), @@ -153,7 +164,7 @@ You may also provide an object with `message`: -##### contexts +### contexts Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -164,6 +175,10 @@ want the rule to apply to any jsdoc block throughout your files. See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. + + +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| @@ -173,6 +188,8 @@ section of our README for more on the expected format. |Settings|| |Options|`contexts`, `tags` (accepts tags with names and optional type such as 'param', 'arg', 'argument', 'property', and 'prop', and accepts arbitrary list of other tags with an optional type (but without names), e.g., 'returns', 'return'), `mainDescription`, `matchDescription`| + + ## Failing examples The following patterns are considered problems: @@ -587,6 +604,10 @@ function foo(): string; // Message: JSDoc description does not satisfy the regex pattern. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/match-name.md b/docs/rules/match-name.md index 582093d2a..c5fe1abce 100644 --- a/docs/rules/match-name.md +++ b/docs/rules/match-name.md @@ -2,6 +2,8 @@ ### match-name + + Reports the name portion of a JSDoc tag if matching or not matching a given regular expression. @@ -11,21 +13,21 @@ name will actually be part of the description (e.g., for `structuredTags` setting (if `name: false`, this rule will not apply to that tag). - - -#### Fixer + + +## Fixer Will replace `disallowName` with `replacement` if these are provided. - - -#### Options + + +## Options A single options object with the following properties: - - -##### match + + +### match `match` is a required option containing an array of objects which determine the conditions whereby a name is reported as being problematic. @@ -62,6 +64,10 @@ tag of the desired tag and/or name and no `disallowName` (or `allowName`) is supplied. In such a case, only one error will be reported, but no fixer will be applied, however. + + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -70,6 +76,8 @@ be applied, however. |Settings|`structuredTags`| |Options|`match`| + + ## Failing examples The following patterns are considered problems: @@ -172,6 +180,10 @@ function quux () {} // Message: Only allowing names not matching `/^opt_/i` but found "opt_a". ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/multiline-blocks.md b/docs/rules/multiline-blocks.md index d74cfe7aa..2f1a48e1e 100644 --- a/docs/rules/multiline-blocks.md +++ b/docs/rules/multiline-blocks.md @@ -2,6 +2,8 @@ ### multiline-blocks + + Controls how and whether jsdoc blocks can be expressed as single or multiple line blocks. @@ -11,40 +13,46 @@ all jsdoc blocks! Also allows for preventing text at the very beginning or very end of blocks. - - -#### Options + + +## Fixer + +(TODO) + + + +## Options A single options object with the following properties. - - -##### noZeroLineText (defaults to true) + + +### noZeroLineText (defaults to true) For multiline blocks, any non-whitespace text immediately after the `/**` and space will be reported. (Text after a newline is not reported.) `noMultilineBlocks` will have priority over this rule if it applies. - - -##### noFinalLineText (defaults to true) + + +### noFinalLineText (defaults to true) For multiline blocks, any non-whitespace text preceding the `*/` on the final line will be reported. (Text preceding a newline is not reported.) `noMultilineBlocks` will have priority over this rule if it applies. - - -##### noSingleLineBlocks (defaults to false) + + +### noSingleLineBlocks (defaults to false) If this is `true`, any single line blocks will be reported, except those which are whitelisted in `singleLineTags`. - - -##### singleLineTags (defaults to ['lends', 'type']) + + +### singleLineTags (defaults to ['lends', 'type']) An array of tags which can nevertheless be allowed as single line blocks when `noSingleLineBlocks` is set. You may set this to a empty array to @@ -52,17 +60,17 @@ cause all single line blocks to be reported. If `'*'` is present, then the presence of a tag will allow single line blocks (but not if a tag is missing). - - -##### noMultilineBlocks (defaults to false) + + +### noMultilineBlocks (defaults to false) Requires that jsdoc blocks are restricted to single lines only unless impacted by the options `minimumLengthForMultiline`, `multilineTags`, or `allowMultipleTags`. - - -##### minimumLengthForMultiline (defaults to not being in effect) + + +### minimumLengthForMultiline (defaults to not being in effect) If `noMultilineBlocks` is set with this numeric option, multiline blocks will be permitted if containing at least the given amount of text. @@ -70,9 +78,9 @@ be permitted if containing at least the given amount of text. If not set, multiline blocks will not be permitted regardless of length unless a relevant tag is present and `multilineTags` is set. - - -##### multilineTags (defaults to ['*']) + + +### multilineTags (defaults to ['*']) If `noMultilineBlocks` is set with this option, multiline blocks may be allowed regardless of length as long as a tag or a tag of a certain type is present. @@ -87,9 +95,9 @@ such a tag will cause multiline blocks to be allowed. You may set this to an empty array to prevent any tag from permitting multiple lines. - - -##### allowMultipleTags (defaults to true) + + +### allowMultipleTags (defaults to true) If `noMultilineBlocks` is set to `true` with this option and multiple tags are found in a block, an error will not be reported. @@ -102,6 +110,10 @@ This option will also be applied when there is a block description and a single tag (since a description cannot precede a tag on a single line, and also cannot be reliably added after the tag either). + + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -110,6 +122,8 @@ cannot be reliably added after the tag either). |Settings|| |Options|`noZeroLineText`, `noSingleLineBlocks`, `singleLineTags`, `noMultilineBlocks`, `minimumLengthForMultiline`, `multilineTags`, `allowMultipleTags`, `noFinalLineText`| + + ## Failing examples The following patterns are considered problems: @@ -271,6 +285,10 @@ The following patterns are considered problems: // Message: Should have no text on the final line (before the `*/`). ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/no-bad-blocks.md b/docs/rules/no-bad-blocks.md index fc0a38b38..be4e8b702 100644 --- a/docs/rules/no-bad-blocks.md +++ b/docs/rules/no-bad-blocks.md @@ -2,21 +2,29 @@ ### no-bad-blocks + + This rule checks for multi-line-style comments which fail to meet the criteria of a jsdoc block, namely that it should begin with two and only two asterisks, but which appear to be intended as jsdoc blocks due to the presence of whitespace followed by whitespace or asterisks, and an at-sign (`@`) and some non-whitespace (as with a jsdoc block tag). - - -#### Options + + +## Fixer + +(TODO) + + + +## Options Takes an optional options object with the following. - - -##### ignore + + +### ignore An array of directives that will not be reported if present at the beginning of a multi-comment block and at-sign `/* @`. @@ -24,14 +32,18 @@ a multi-comment block and at-sign `/* @`. Defaults to `['ts-check', 'ts-expect-error', 'ts-ignore', 'ts-nocheck']` (some directives [used by TypeScript](https://www.typescriptlang.org/docs/handbook/intro-to-js-ts.html#ts-check)). - - -##### preventAllMultiAsteriskBlocks + + +### preventAllMultiAsteriskBlocks A boolean (defaulting to `false`) which if `true` will prevent all JSDoc-like blocks with more than two initial asterisks even those without apparent tag content. + + +## Context and settings + ||| |---|---| |Context|Everywhere| @@ -39,6 +51,8 @@ apparent tag content. |Recommended|false| |Options|`ignore`, `preventAllMultiAsteriskBlocks`| + + ## Failing examples The following patterns are considered problems: @@ -95,6 +109,10 @@ function quux (foo) { // Message: Expected JSDoc-like comment to begin with two asterisks. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/no-blank-block-descriptions.md b/docs/rules/no-blank-block-descriptions.md index ea9dd0991..da7620282 100644 --- a/docs/rules/no-blank-block-descriptions.md +++ b/docs/rules/no-blank-block-descriptions.md @@ -2,12 +2,24 @@ ### no-blank-block-descriptions + + If tags are present, this rule will prevent empty lines in the block description. If no tags are present, this rule will prevent extra empty lines in the block description. + + +## Fixer + +(TODO) + + + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -16,6 +28,8 @@ in the block description. |Settings|| |Options|| + + ## Failing examples The following patterns are considered problems: @@ -36,6 +50,10 @@ function functionWithClearName() {} // Message: There should be no extra blank lines in block descriptions not followed by tags. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/no-blank-blocks.md b/docs/rules/no-blank-blocks.md index df7d6785d..e133fdbea 100644 --- a/docs/rules/no-blank-blocks.md +++ b/docs/rules/no-blank-blocks.md @@ -1,15 +1,26 @@ -### no-blank-blocks +# no-blank-blocks + +* [Fixer](#user-content-no-blank-blocks-fixer) +* [Failing examples](#user-content-no-blank-blocks-failing-examples) +* [Passing examples](#user-content-no-blank-blocks-passing-examples) + Reports and optionally removes blocks with whitespace only. - - + + +## Fixer + +(TODO) + + + #### Options - - + + ##### enableFixer Whether or not to auto-remove the blank block. Defaults to `false`. @@ -22,6 +33,8 @@ Whether or not to auto-remove the blank block. Defaults to `false`. |Settings|| |Options|`enableFixer`| + + ## Failing examples The following patterns are considered problems: @@ -63,6 +76,10 @@ The following patterns are considered problems: // Message: No empty blocks ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/no-defaults.md b/docs/rules/no-defaults.md index 9814cdf88..5e240d2cd 100644 --- a/docs/rules/no-defaults.md +++ b/docs/rules/no-defaults.md @@ -1,6 +1,15 @@ -### no-defaults +# no-defaults + +* [Fixer](#user-content-no-defaults-fixer) +* [Options](#user-content-no-defaults-options) + * [`noOptionalParamNames`](#user-content-no-defaults-options-nooptionalparamnames) + * [`contexts`](#user-content-no-defaults-options-contexts) +* [Context and settings](#user-content-no-defaults-context-and-settings) +* [Failing examples](#user-content-no-defaults-failing-examples) +* [Passing examples](#user-content-no-defaults-passing-examples) + This rule reports defaults being used on the relevant portion of `@param` or `@default`. It also optionally reports the presence of the @@ -14,13 +23,19 @@ tag is attached). Unless your `@default` is on a function, you will need to set `contexts` to an appropriate context, including, if you wish, "any". + + +## Fixer + +(TODO) + -#### Options +## Options -##### noOptionalParamNames +### noOptionalParamNames Set this to `true` to report the presence of optional parameters. May be used if the project is insisting on optionality being indicated by @@ -30,7 +45,7 @@ the presence of ES6 default parameters (bearing in mind that such -##### contexts +### contexts Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -43,6 +58,10 @@ expression, i.e., `@callback` or `@function` (or its aliases `@func` or See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. + + +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| @@ -51,6 +70,8 @@ section of our README for more on the expected format. |Recommended|false| |Options|`contexts`, `noOptionalParamNames`| + + ## Failing examples The following patterns are considered problems: @@ -131,6 +152,10 @@ const a = {}; // Message: Default values are not permitted on @defaultvalue. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/no-missing-syntax.md b/docs/rules/no-missing-syntax.md index 044342357..f11eb3d43 100644 --- a/docs/rules/no-missing-syntax.md +++ b/docs/rules/no-missing-syntax.md @@ -1,6 +1,13 @@ -### no-missing-syntax +# no-missing-syntax + +* [Options](#user-content-no-missing-syntax-options) + * [`contexts`](#user-content-no-missing-syntax-options-contexts) +* [Context and settings](#user-content-no-missing-syntax-context-and-settings) +* [Failing examples](#user-content-no-missing-syntax-failing-examples) +* [Passing examples](#user-content-no-missing-syntax-passing-examples) + This rule lets you report if certain always expected comment structures are missing. @@ -38,11 +45,11 @@ not report if there were only a function declaration of the name "ignoreMe" -#### Options +## Options -##### contexts +### contexts Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -62,6 +69,10 @@ aliases `@func` or `@method`) (including those associated with an `@interface`). See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. + + +## Context and settings + ||| |---|---| |Context|None except those indicated by `contexts`| @@ -69,6 +80,8 @@ section of our README for more on the expected format. |Recommended|false| |Options|`contexts`| + + ## Failing examples The following patterns are considered problems: @@ -178,6 +191,10 @@ function quux () {} // Message: Require names matching `/^opt_/i`. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/no-multi-asterisks.md b/docs/rules/no-multi-asterisks.md index ab4742da2..955418882 100644 --- a/docs/rules/no-multi-asterisks.md +++ b/docs/rules/no-multi-asterisks.md @@ -2,19 +2,27 @@ ### no-multi-asterisks + + Prevents use of multiple asterisks at the beginning of lines. Note that if you wish to prevent multiple asterisks at the very beginning of the jsdoc block, you should use `no-bad-blocks` (as that is not proper jsdoc and that rule is for catching blocks which only seem like jsdoc). - - -#### Options + + +## Fixer + +(TODO) + + + +## Options - - -##### allowWhitespace (defaults to false) + + +### allowWhitespace (defaults to false) Set to `true` if you wish to allow asterisks after a space (as with Markdown): @@ -24,9 +32,9 @@ Set to `true` if you wish to allow asterisks after a space (as with Markdown): */ ``` - - -##### preventAtMiddleLines (defaults to true) + + +### preventAtMiddleLines (defaults to true) Prevent the likes of this: @@ -37,9 +45,9 @@ Prevent the likes of this: */ ``` - - -##### preventAtEnd (defaults to true) + + +### preventAtEnd (defaults to true) Prevent the likes of this: @@ -50,6 +58,10 @@ Prevent the likes of this: **/ ``` + + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -58,6 +70,8 @@ Prevent the likes of this: |Settings|| |Options|`preventAtEnd`, `preventAtMiddleLines`| + + ## Failing examples The following patterns are considered problems: @@ -160,6 +174,10 @@ The following patterns are considered problems: // Message: Should be no multiple asterisks on end lines. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/no-restricted-syntax.md b/docs/rules/no-restricted-syntax.md index 9a7235b58..ab4970a54 100644 --- a/docs/rules/no-restricted-syntax.md +++ b/docs/rules/no-restricted-syntax.md @@ -1,6 +1,13 @@ -### no-restricted-syntax +# no-restricted-syntax + +* [Options](#user-content-no-restricted-syntax-options) + * [`contexts`](#user-content-no-restricted-syntax-options-contexts) +* [Context and settings](#user-content-no-restricted-syntax-context-and-settings) +* [Failing examples](#user-content-no-restricted-syntax-failing-examples) +* [Passing examples](#user-content-no-restricted-syntax-passing-examples) + Reports when certain comment structures are present. @@ -18,11 +25,11 @@ is designed to do), you can just use ESLint's rule. -#### Options +## Options -##### contexts +### contexts Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -38,6 +45,10 @@ aliases `@func` or `@method`) (including those associated with an `@interface`). See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. + + +## Context and settings + ||| |---|---| |Context|None except those indicated by `contexts`| @@ -45,6 +56,8 @@ section of our README for more on the expected format. |Recommended|false| |Options|`contexts`| + + ## Failing examples The following patterns are considered problems: @@ -232,6 +245,10 @@ class Test { // Message: methods with non-void return types must have a @returns tag ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/no-types.md b/docs/rules/no-types.md index 3d5ec2b65..0b7e7e8fd 100644 --- a/docs/rules/no-types.md +++ b/docs/rules/no-types.md @@ -1,19 +1,33 @@ -### no-types +# no-types + +* [Fixer](#user-content-no-types-fixer) +* [Options](#user-content-no-types-options) + * [`contexts`](#user-content-no-types-options-contexts) +* [Context and settings](#user-content-no-types-context-and-settings) +* [Failing examples](#user-content-no-types-failing-examples) +* [Passing examples](#user-content-no-types-passing-examples) + This rule reports types being used on `@param` or `@returns`. The rule is intended to prevent the indication of types on tags where the type information would be redundant with TypeScript. + + +## Fixer + +(TODO) + -#### Options +## Options -##### contexts +### contexts Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -26,6 +40,10 @@ expression, i.e., `@callback` or `@function` (or its aliases `@func` or See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. + + +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| @@ -34,6 +52,8 @@ section of our README for more on the expected format. |Recommended|false| |Options|`contexts`| + + ## Failing examples The following patterns are considered problems: @@ -111,6 +131,10 @@ function quux () { // Message: Types are not permitted on @returns. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/no-undefined-types.md b/docs/rules/no-undefined-types.md index ed4f689b7..760ccb029 100644 --- a/docs/rules/no-undefined-types.md +++ b/docs/rules/no-undefined-types.md @@ -1,6 +1,12 @@ -### no-undefined-types +# no-undefined-types + +* [Options](#user-content-no-undefined-types-options) +* [Context and settings](#user-content-no-undefined-types-context-and-settings) +* [Failing examples](#user-content-no-undefined-types-failing-examples) +* [Passing examples](#user-content-no-undefined-types-passing-examples) + Checks that types in jsdoc comments are defined. This can be used to check unimported types. @@ -47,7 +53,7 @@ array's items will be considered as defined for the purposes of that tag. -#### Options +## Options An option object may have the following key: @@ -55,6 +61,10 @@ An option object may have the following key: are automatically considered as defined (in addition to globals, etc.). Defaults to an empty array. + + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -65,6 +75,9 @@ An option object may have the following key: |Options|`definedTypes`| |Settings|`preferredTypes`, `mode`, `structuredTags`| + + + ## Failing examples The following patterns are considered problems: @@ -272,6 +285,10 @@ const a = new Todo(); // Message: The type 'Omit' is undefined. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-asterisk-prefix.md b/docs/rules/require-asterisk-prefix.md index 4b5f52c7e..d3b383ded 100644 --- a/docs/rules/require-asterisk-prefix.md +++ b/docs/rules/require-asterisk-prefix.md @@ -2,11 +2,19 @@ ### require-asterisk-prefix + + Requires that each JSDoc line starts with an `*`. - - -#### Options + + +## Fixer + +(TODO) + + + +## Options This rule allows an optional string argument. If it is `"always"` then a problem is raised when there is no asterisk prefix on a given jsdoc line. If @@ -16,9 +24,9 @@ and use the `tags` option to apply to specific tags only. After the string option, one may add an object with the following. - - -##### tags + + +### tags If you want different values to apply to specific tags, you may use the `tags` option object. The keys are `always`, `never`, or `any` and @@ -37,12 +45,18 @@ which applies to the main jsdoc block description. } ``` + + +## Context and settings + ||| |---|---| |Context|everywhere| |Tags|All or as limited by the `tags` option| |Options|(a string matching `"always"|"never"` and optional object with `tags`)| + + ## Failing examples The following patterns are considered problems: @@ -164,6 +178,10 @@ function quux (foo) { // Message: Expected JSDoc line to have no prefix. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-description-complete-sentence.md b/docs/rules/require-description-complete-sentence.md index 1e9ecad1b..8a9df6aad 100644 --- a/docs/rules/require-description-complete-sentence.md +++ b/docs/rules/require-description-complete-sentence.md @@ -1,6 +1,12 @@ -### require-description +# require-description + +* [Options](#user-content-require-description-options) +* [Context and settings](#user-content-require-description-context-and-settings) +* [Failing examples](#user-content-require-description-failing-examples) +* [Passing examples](#user-content-require-description-passing-examples) + Requires that all functions have a description. @@ -13,7 +19,7 @@ Requires that all functions have a description. -#### Options +## Options An options object may have any of the following properties: @@ -36,15 +42,21 @@ An options object may have any of the following properties: - `checkSetters` - A value indicating whether setters should be checked. Defaults to `true`. -| | | -| -------- | ------------------------------------------------------------------------------------------------------------- | + + +## Context and settings + +| | | +| -------- | ---------------------- | | Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | -| Tags | `description` or jsdoc block | -| Aliases | `desc` | +| Tags | `description` or jsdoc block | +| Aliases | `desc` | | Recommended | false | -| Options | `contexts`, `exemptedBy`, `descriptionStyle`, `checkConstructors`, `checkGetters`, `checkSetters` | -| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | +| Options | `contexts`, `exemptedBy`, `descriptionStyle`, `checkConstructors`, `checkGetters`, `checkSetters` | +| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | + + ## Failing examples The following patterns are considered problems: @@ -334,6 +346,10 @@ class quux { // Message: Missing JSDoc @description declaration. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-description.md b/docs/rules/require-description.md index d9cd62261..611b33dda 100644 --- a/docs/rules/require-description.md +++ b/docs/rules/require-description.md @@ -1,6 +1,16 @@ -### require-description-complete-sentence +# require-description-complete-sentence + +* [Fixer](#user-content-require-description-complete-sentence-fixer) +* [Options](#user-content-require-description-complete-sentence-options) + * [`tags`](#user-content-require-description-complete-sentence-options-tags) + * [`abbreviations`](#user-content-require-description-complete-sentence-options-abbreviations) + * [`newlineBeforeCapsAssumesBadSentenceEnd`](#user-content-require-description-complete-sentence-options-newlinebeforecapsassumesbadsentenceend) +* [Context and settings](#user-content-require-description-complete-sentence-context-and-settings) +* [Failing examples](#user-content-require-description-complete-sentence-failing-examples) +* [Passing examples](#user-content-require-description-complete-sentence-passing-examples) + Requires that block description, explicit `@description`, and `@param`/`@returns` tag descriptions are written in complete sentences, i.e., @@ -18,7 +28,7 @@ Requires that block description, explicit `@description`, and -#### Fixer +## Fixer If sentences do not end with terminal punctuation, a period will be added. @@ -27,11 +37,11 @@ letter will be capitalized. -#### Options +## Options -##### tags +### tags If you want additional tags to be checked for their descriptions, you may add them within this option. @@ -56,7 +66,7 @@ is `xyz`). -##### abbreviations +### abbreviations You can provide an `abbreviations` options array to avoid such strings of text being treated as sentence endings when followed by dots. The `.` is not @@ -64,12 +74,16 @@ necessary at the end of the array items. -##### newlineBeforeCapsAssumesBadSentenceEnd +### newlineBeforeCapsAssumesBadSentenceEnd When `false` (the new default), we will not assume capital letters after newlines are an incorrect way to end the sentence (they may be proper nouns, for example). + + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -77,6 +91,9 @@ nouns, for example). |Aliases|`arg`, `argument`, `return`, `desc`, `prop`, `fileoverview`, `overview`, `exception`, `yield`| |Recommended|false| |Options|`tags`, `abbreviations`, `newlineBeforeCapsAssumesBadSentenceEnd`| + + + ## Failing examples The following patterns are considered problems: @@ -413,6 +430,10 @@ function quux () {} // Message: Sentences must be more than punctuation. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-example.md b/docs/rules/require-example.md index e0fbdccf6..5b3a76923 100644 --- a/docs/rules/require-example.md +++ b/docs/rules/require-example.md @@ -1,6 +1,18 @@ -### require-example +# require-example + +* [Fixer](#user-content-require-example-fixer) +* [Options](#user-content-require-example-options) + * [`exemptedBy`](#user-content-require-example-options-exemptedby) + * [`exemptNoArguments`](#user-content-require-example-options-exemptnoarguments) + * [`contexts`](#user-content-require-example-options-contexts) + * [`checkConstructors`](#user-content-require-example-options-checkconstructors) + * [`checkGetters`](#user-content-require-example-options-checkgetters) + * [`checkSetters`](#user-content-require-example-options-checksetters) + * [`enableFixer`](#user-content-require-example-options-enablefixer) +* [Context and settings](#user-content-require-example-context-and-settings) + Requires that all functions have examples. @@ -8,15 +20,22 @@ Requires that all functions have examples. * Every example tag must have a non-empty description that explains the method's usage. + + +## Fixer + +The fixer for `require-example` will add an empty `@example`, but it will still +report a missing example description after this is added. + -#### Options +## Options This rule has an object option. -##### exemptedBy +### exemptedBy Array of tags (e.g., `['type']`) whose presence on the document block avoids the need for an `@example`. Defaults to an array with @@ -26,14 +45,14 @@ exemption of the rule. -##### exemptNoArguments +### exemptNoArguments Boolean to indicate that no-argument functions should not be reported for missing `@example` declarations. -##### contexts +### contexts Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -46,36 +65,33 @@ section of our README for more on the expected format. -##### checkConstructors +### checkConstructors A value indicating whether `constructor`s should be checked. Defaults to `true`. -##### checkGetters +### checkGetters A value indicating whether getters should be checked. Defaults to `false`. -##### checkSetters +### checkSetters A value indicating whether setters should be checked. Defaults to `false`. -##### enableFixer +### enableFixer A boolean on whether to enable the fixer (which adds an empty `@example` block). Defaults to `true`. - - -#### Fixer - -The fixer for `require-example` will add an empty `@example`, but it will still -report a missing example description after this is added. + + +## Context and settings ||| |---|---| @@ -85,7 +101,9 @@ report a missing example description after this is added. |Options|`exemptedBy`, `exemptNoArguments`, `contexts`, `checkConstructors`, `checkGetters`, `checkSetters`, `enableFixer`| |Settings|`ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`| -## Failing examples + + +# Failing examples The following patterns are considered problems: @@ -218,6 +236,10 @@ function quux (someParam) { // Message: Missing JSDoc @example declaration. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-file-overview.md b/docs/rules/require-file-overview.md index 88fc77502..4e596c431 100644 --- a/docs/rules/require-file-overview.md +++ b/docs/rules/require-file-overview.md @@ -1,6 +1,13 @@ -### require-file-overview +# require-file-overview + +* [Options](#user-content-require-file-overview-options) + * [`tags`](#user-content-require-file-overview-options-tags) +* [Context and settings](#user-content-require-file-overview-context-and-settings) +* [Failing examples](#user-content-require-file-overview-failing-examples) +* [Passing examples](#user-content-require-file-overview-passing-examples) + Checks that: @@ -14,11 +21,11 @@ Checks that: -#### Options +## Options -##### tags +### tags The keys of this object are tag names, and the values are configuration objects indicating what will be checked for these whole-file tags. @@ -73,6 +80,10 @@ in this configuration object regardless of whether you have configured `fileoverview` instead of `file` on `tagNamePreference` (i.e., `fileoverview` will be checked, but you must use `file` on the configuration object). + + +## Context and settings + ||| |---|---| |Context|Everywhere| @@ -81,6 +92,8 @@ will be checked, but you must use `file` on the configuration object). |Recommended|false| |Options|`tags`| + + ## Failing examples The following patterns are considered problems: @@ -218,6 +231,10 @@ function quux () { // Message: Duplicate @file ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-hyphen-before-param-description.md b/docs/rules/require-hyphen-before-param-description.md index d1ea07583..ff4a8ede9 100644 --- a/docs/rules/require-hyphen-before-param-description.md +++ b/docs/rules/require-hyphen-before-param-description.md @@ -1,12 +1,25 @@ -### require-hyphen-before-param-description +# require-hyphen-before-param-description + +* [Fixer](#user-content-require-hyphen-before-param-description-fixer) +* [Options](#user-content-require-hyphen-before-param-description-options) +* [Context and settings](#user-content-require-hyphen-before-param-description-context-and-settings) +* [Failing examples](#user-content-require-hyphen-before-param-description-failing-examples) +* [Passing examples](#user-content-require-hyphen-before-param-description-passing-examples) + Requires (or disallows) a hyphen before the `@param` description. + + +## Fixer + +(Todo) + -#### Options +## Options This rule takes one optional string argument and an optional options object. @@ -25,6 +38,10 @@ other tags besides the `@param` tag (or the `@arg` tag if so set): `@param` tag which follows the main string option setting and besides any other `tags` entries). + + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -33,6 +50,8 @@ other tags besides the `@param` tag (or the `@arg` tag if so set): |Recommended|false| |Options|a string matching `"always" or "never"` followed by an optional object with a `tags` property| + + ## Failing examples The following patterns are considered problems: @@ -153,6 +172,10 @@ function quux () { // Message: There must be a hyphen before @param description. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-jsdoc.md b/docs/rules/require-jsdoc.md index 703a964ec..3548e92bd 100644 --- a/docs/rules/require-jsdoc.md +++ b/docs/rules/require-jsdoc.md @@ -1,19 +1,44 @@ -### require-jsdoc +# require-jsdoc + +* [Fixer](#user-content-require-jsdoc-fixer) +* [Options](#user-content-require-jsdoc-options) + * [`publicOnly`](#user-content-require-jsdoc-options-publiconly) + * [`require`](#user-content-require-jsdoc-options-require) + * [`contexts`](#user-content-require-jsdoc-options-contexts) + * [`exemptEmptyConstructors`](#user-content-require-jsdoc-options-exemptemptyconstructors) + * [`exemptEmptyFunctions`](#user-content-require-jsdoc-options-exemptemptyfunctions) + * [`checkConstructors`](#user-content-require-jsdoc-options-checkconstructors) + * [`checkGetters`](#user-content-require-jsdoc-options-checkgetters) + * [`checkSetters`](#user-content-require-jsdoc-options-checksetters) + * [`enableFixer`](#user-content-require-jsdoc-options-enablefixer) + * [`minLineCount`](#user-content-require-jsdoc-options-minlinecount) +* [Context and settings](#user-content-require-jsdoc-context-and-settings) +* [Failing examples](#user-content-require-jsdoc-failing-examples) +* [Passing examples](#user-content-require-jsdoc-passing-examples) + Checks for presence of jsdoc comments, on class declarations as well as functions. + + +## Fixer + +Adds an empty JSDoc block unless `enableFixer` is set to `false`. See +the `contexts` option for how `inlineCommentBlock` can control the style +of the generated JSDoc block. + -#### Options +## Options Accepts one optional options object with the following optional keys. -##### publicOnly +### publicOnly This option will insist that missing jsdoc blocks are only reported for function bodies / class declarations that are exported from the module. @@ -30,7 +55,7 @@ otherwise noted): -##### require +### require An object with the following optional boolean keys which all default to `false` except as noted, indicating the contexts where the rule will apply: @@ -44,7 +69,7 @@ An object with the following optional boolean keys which all default to -##### contexts +### contexts Set this to an array of strings or objects representing the additional AST contexts where you wish the rule to be applied (e.g., `Property` for @@ -62,7 +87,7 @@ section of our README for more on the expected format. -##### exemptEmptyConstructors +### exemptEmptyConstructors Default: true @@ -72,7 +97,7 @@ name or description should be seen as sufficient to convey intent). -##### exemptEmptyFunctions +### exemptEmptyFunctions Default: false. @@ -82,7 +107,7 @@ function/method names are sufficient for themselves as documentation). -##### checkConstructors +### checkConstructors A value indicating whether `constructor`s should be checked. Defaults to `true`. When `true`, `exemptEmptyConstructors` may still avoid reporting when @@ -90,7 +115,7 @@ no parameters or return values are found. -##### checkGetters +### checkGetters A value indicating whether getters should be checked. Besides setting as a boolean, this option can be set to the string `"no-setter"` to indicate that @@ -100,7 +125,7 @@ if one only wishes documentation on one of the two accessors. Defaults to -##### checkSetters +### checkSetters A value indicating whether setters should be checked. Besides setting as a boolean, this option can be set to the string `"no-getter"` to indicate that @@ -110,19 +135,23 @@ if one only wishes documentation on one of the two accessors. Defaults to -##### enableFixer +### enableFixer A boolean on whether to enable the fixer (which adds an empty jsdoc block). Defaults to `true`. -##### minLineCount +### minLineCount An integer to indicate a minimum number of lines expected for a node in order for it to require documentation. Defaults to `undefined`. This option will apply to any context; see `contexts` for line counts per context. + + +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `ClassDeclaration`, `ClassExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| @@ -130,6 +159,8 @@ apply to any context; see `contexts` for line counts per context. |Recommended|true| |Options|`publicOnly`, `require`, `contexts`, `exemptEmptyConstructors`, `exemptEmptyFunctions`, `enableFixer`, `minLineCount`| + + ## Failing examples The following patterns are considered problems: @@ -961,6 +992,10 @@ class A { // Message: Missing JSDoc comment. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-param-description.md b/docs/rules/require-param-description.md index c8253b81e..962bf605a 100644 --- a/docs/rules/require-param-description.md +++ b/docs/rules/require-param-description.md @@ -1,12 +1,38 @@ -### require-param +# require-param + +* [Fixer](#user-content-require-param-fixer) + * [Destructured object and array naming](#user-content-require-param-fixer-destructured-object-and-array-naming) + * [Missing root fixing](#user-content-require-param-fixer-missing-root-fixing) + * [Rest Element (`RestElement`) insertions](#user-content-require-param-fixer-rest-element-restelement-insertions) + * [Object Rest Property insertions](#user-content-require-param-fixer-object-rest-property-insertions) +* [Options](#user-content-require-param-options) + * [`enableFixer`](#user-content-require-param-options-enablefixer) + * [`enableRootFixer`](#user-content-require-param-options-enablerootfixer) + * [`enableRestElementFixer`](#user-content-require-param-options-enablerestelementfixer) + * [`checkRestProperty`](#user-content-require-param-options-checkrestproperty) + * [`autoIncrementBase`](#user-content-require-param-options-autoincrementbase) + * [`unnamedRootBase`](#user-content-require-param-options-unnamedrootbase) + * [`exemptedBy`](#user-content-require-param-options-exemptedby) + * [`checkTypesPattern`](#user-content-require-param-options-checktypespattern) + * [`contexts`](#user-content-require-param-options-contexts) + * [`checkConstructors`](#user-content-require-param-options-checkconstructors) + * [`checkGetters`](#user-content-require-param-options-checkgetters) + * [`checkSetters`](#user-content-require-param-options-checksetters) + * [`checkDestructured`](#user-content-require-param-options-checkdestructured) + * [`checkDestructuredRoots`](#user-content-require-param-options-checkdestructuredroots) + * [`useDefaultObjectProperties`](#user-content-require-param-options-usedefaultobjectproperties) +* [Context and settings](#user-content-require-param-context-and-settings) +* [Failing examples](#user-content-require-param-failing-examples) +* [Passing examples](#user-content-require-param-passing-examples) + Requires that all function parameters are documented. -#### Fixer +## Fixer Adds `@param ` for each tag present in the function signature but missing in the jsdoc. Can be disabled by setting the `enableFixer` @@ -14,7 +40,7 @@ option to `false`. -##### Destructured object and array naming +### Destructured object and array naming When the fixer is applied to destructured objects, only the input name is used. @@ -67,7 +93,7 @@ function quux ([foo, bar]) { -##### Missing root fixing +### Missing root fixing Note that unless `enableRootFixer` (or `enableFixer`) is set to `false`, missing roots will be added and auto-incremented. The default behavior @@ -103,7 +129,7 @@ And one can have the count begin at another number (e.g., `1`) by changing -##### Rest Element (RestElement) insertions +### Rest Element (RestElement) insertions The fixer will automatically report/insert [jsdoc repeatable parameters](https://jsdoc.app/tags-param.html#multiple-types-and-repeatable-parameters) @@ -156,7 +182,7 @@ function baar ([a, ...extra]) { -##### Object Rest Property insertions +### Object Rest Property insertions If the `checkRestProperty` option is set to `true` (`false` by default), missing rest properties will be reported with documentation auto-inserted: @@ -192,19 +218,19 @@ function signature, it may appear that there is an actual property named -#### Options +## Options An options object accepts the following optional properties: -##### enableFixer +### enableFixer Whether to enable the fixer. Defaults to `true`. -##### enableRootFixer +### enableRootFixer Whether to enable the auto-adding of incrementing roots (see the "Fixer" section). Defaults to `true`. Has no effect if `enableFixer` is set to @@ -212,14 +238,14 @@ section). Defaults to `true`. Has no effect if `enableFixer` is set to -##### enableRestElementFixer +### enableRestElementFixer Whether to enable the rest element fixer (see "Rest Element (`RestElement`) insertions"). Defaults to `true`. -##### checkRestProperty +### checkRestProperty If set to `true`, will report (and add fixer insertions) for missing rest properties. Defaults to `false`. @@ -274,14 +300,14 @@ function quux ({num, ...extra}) { -##### autoIncrementBase +### autoIncrementBase Numeric to indicate the number at which to begin auto-incrementing roots. Defaults to `0`. -##### unnamedRootBase +### unnamedRootBase An array of root names to use in the fixer when roots are missing. Defaults to `['root']`. Note that only when all items in the array besides the last @@ -308,7 +334,7 @@ function quux ({foo}, [bar], {baz}) { -##### exemptedBy +### exemptedBy Array of tags (e.g., `['type']`) whose presence on the document block avoids the need for a `@param`. Defaults to an array with @@ -318,7 +344,7 @@ exemption of the rule. -##### checkTypesPattern +### checkTypesPattern When one specifies a type, unless it is of a generic type, like `object` or `array`, it may be considered unnecessary to have that object's @@ -354,7 +380,7 @@ need destructuring. -##### contexts +### contexts Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -367,32 +393,32 @@ section of our README for more on the expected format. -##### checkConstructors +### checkConstructors A value indicating whether `constructor`s should be checked. Defaults to `true`. -##### checkGetters +### checkGetters A value indicating whether getters should be checked. Defaults to `false`. -##### checkSetters +### checkSetters A value indicating whether setters should be checked. Defaults to `false`. -##### checkDestructured +### checkDestructured Whether to require destructured properties. Defaults to `true`. -##### checkDestructuredRoots +### checkDestructuredRoots Whether to check the existence of a corresponding `@param` for root objects of destructured properties (e.g., that for `function ({a, b}) {}`, that there @@ -406,11 +432,15 @@ documentation). Defaults to `true`. -##### useDefaultObjectProperties +### useDefaultObjectProperties Set to `true` if you wish to expect documentation of properties on objects supplied as default values. Defaults to `false`. + + +## Context and settings + | | | | -------- | ----------------------------------------------------------------------------- | | Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | @@ -420,6 +450,8 @@ supplied as default values. Defaults to `false`. | Options | `autoIncrementBase`, `checkDestructured`, `checkDestructuredRoots`, `contexts`, `enableFixer`, `enableRootFixer`, `enableRestElementFixer`, `checkRestProperty`, `exemptedBy`, `checkConstructors`, `checkGetters`, `checkSetters`, `checkTypesPattern`, `unnamedRootBase`, `useDefaultObjectProperties`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`| + + ## Failing examples The following patterns are considered problems: @@ -1113,6 +1145,10 @@ export function myPublicFunction(foo: number, bar: number, baz: number) {} // Message: Missing JSDoc @param "baz" declaration. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-param-name.md b/docs/rules/require-param-name.md index 966be194f..337b71bd3 100644 --- a/docs/rules/require-param-name.md +++ b/docs/rules/require-param-name.md @@ -1,6 +1,15 @@ -### require-param-description +# require-param-description + +* [Options](#user-content-require-param-description-options) + * [`setDefaultDestructuredRootDescription`](#user-content-require-param-description-options-setdefaultdestructuredrootdescription) + * [`defaultDestructuredRootDescription`](#user-content-require-param-description-options-defaultdestructuredrootdescription) + * [`contexts`](#user-content-require-param-description-options-contexts) +* [Context and settings](#user-content-require-param-description-context-and-settings) +* [Failing examples](#user-content-require-param-description-failing-examples) +* [Passing examples](#user-content-require-param-description-passing-examples) + Requires that each `@param` tag has a `description` value. @@ -11,11 +20,11 @@ Will exempt destructured roots and their children if -#### Options +## Options -##### setDefaultDestructuredRootDescription +### setDefaultDestructuredRootDescription Whether to set a default destructured root description. For example, you may wish to avoid manually having to set the description for a `@param` @@ -25,14 +34,14 @@ string. Defaults to `false`. -##### defaultDestructuredRootDescription +### defaultDestructuredRootDescription The description string to set by default for destructured roots. Defaults to "The root object". -##### contexts +### contexts Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -45,6 +54,10 @@ expression, i.e., `@callback` or `@function` (or its aliases `@func` or See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. + + +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| @@ -54,6 +67,8 @@ section of our README for more on the expected format. |Options|`setDefaultDestructuredRootDescription`, `defaultDestructuredRootDescription`, `contexts`| |Settings|`exemptDestructuredRootsFromChecks`| + + ## Failing examples The following patterns are considered problems: @@ -151,6 +166,10 @@ function quux (foo, {bar}, baz) { // Message: Missing JSDoc @param "root" description. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-param-type.md b/docs/rules/require-param-type.md index 8f7a0fb4a..86878b91d 100644 --- a/docs/rules/require-param-type.md +++ b/docs/rules/require-param-type.md @@ -1,8 +1,15 @@ -### require-param-name +# require-param-name -Requires that all function parameters have names. +* [Options](#user-content-require-param-name-options) + * [`contexts`](#user-content-require-param-name-options-contexts) +* [Context and settings](#user-content-require-param-name-context-and-settings) +* [Failing examples](#user-content-require-param-name-failing-examples) +* [Passing examples](#user-content-require-param-name-passing-examples) + + +Requires that all `@param` tags have names. > The `@param` tag requires you to specify the name of the parameter you are documenting. You can also include the parameter's type, enclosed in curly brackets, and a description of the parameter. > @@ -10,11 +17,11 @@ Requires that all function parameters have names. -#### Options +## Options -##### contexts +### contexts Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -27,6 +34,10 @@ expression, i.e., `@callback` or `@function` (or its aliases `@func` or See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. + + +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| @@ -35,6 +46,8 @@ section of our README for more on the expected format. |Recommended|true| |Options|`contexts`| + + ## Failing examples The following patterns are considered problems: @@ -89,6 +102,10 @@ function quux (foo) { // Message: Unexpected tag `@param` ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-param.md b/docs/rules/require-param.md index 3b81bd8f3..f2ccd2310 100644 --- a/docs/rules/require-param.md +++ b/docs/rules/require-param.md @@ -1,8 +1,17 @@ -### require-param-type +# require-param-type -Requires that each `@param` tag has a `type` value. +* [Options](#user-content-require-param-type-options) + * [`setDefaultDestructuredRootType`](#user-content-require-param-type-options-setdefaultdestructuredroottype) + * [`defaultDestructuredRootType`](#user-content-require-param-type-options-defaultdestructuredroottype) + * [`contexts`](#user-content-require-param-type-options-contexts) +* [Context and settings](#user-content-require-param-type-context-and-settings) +* [Failing examples](#user-content-require-param-type-failing-examples) +* [Passing examples](#user-content-require-param-type-passing-examples) + + +Requires that each `@param` tag has a `type` value (within curly brackets). Will exempt destructured roots and their children if `settings.exemptDestructuredRootsFromChecks` is set to `true` (e.g., @@ -11,11 +20,11 @@ Will exempt destructured roots and their children if -#### Options +## Options -##### setDefaultDestructuredRootType +### setDefaultDestructuredRootType Whether to set a default destructured root type. For example, you may wish to avoid manually having to set the type for a `@param` @@ -25,13 +34,13 @@ object. Uses `defaultDestructuredRootType` for the type string. Defaults to -##### defaultDestructuredRootType +### defaultDestructuredRootType The type string to set by default for destructured roots. Defaults to "object". -##### contexts +### contexts Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -44,6 +53,10 @@ expression, i.e., `@callback` or `@function` (or its aliases `@func` or See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. + + +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| @@ -53,6 +66,8 @@ section of our README for more on the expected format. |Options|`setDefaultDestructuredRootType`, `defaultDestructuredRootType`, `contexts`| |Settings|`exemptDestructuredRootsFromChecks`| + + ## Failing examples The following patterns are considered problems: @@ -148,6 +163,10 @@ function quux (foo, {bar}, baz) { // Message: Missing JSDoc @param "root" type. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-property-description.md b/docs/rules/require-property-description.md index f83b3dec9..225d553f2 100644 --- a/docs/rules/require-property-description.md +++ b/docs/rules/require-property-description.md @@ -1,25 +1,37 @@ -### require-property +# require-property + +* [Fixer](#user-content-require-property-fixer) +* [Context and settings](#user-content-require-property-context-and-settings) +* [Failing examples](#user-content-require-property-failing-examples) +* [Passing examples](#user-content-require-property-passing-examples) + Requires that all `@typedef` and `@namespace` tags have `@property` -when their type is a plain `object`, `Object`, or `PlainObject`. +tags when their type is a plain `object`, `Object`, or `PlainObject`. Note that any other type, including a subtype of object such as `object`, will not be reported. -#### Fixer +## Fixer The fixer for `require-property` will add an empty `@property`. + + +## Context and settings + ||| |---|---| |Context|Everywhere| |Tags|`typedef`, `namespace`| |Recommended|true| + + ## Failing examples The following patterns are considered problems: @@ -50,6 +62,10 @@ class Test { // Message: Missing JSDoc @property. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-property-name.md b/docs/rules/require-property-name.md index c411634e9..b47a66101 100644 --- a/docs/rules/require-property-name.md +++ b/docs/rules/require-property-name.md @@ -1,9 +1,18 @@ -### require-property-description +# require-property-description + +* [Context and settings](#user-content-require-property-description-context-and-settings) +* [Failing examples](#user-content-require-property-description-failing-examples) +* [Passing examples](#user-content-require-property-description-passing-examples) + Requires that each `@property` tag has a `description` value. + + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -11,6 +20,8 @@ Requires that each `@property` tag has a `description` value. |Aliases|`prop`| |Recommended|true| + + ## Failing examples The following patterns are considered problems: @@ -37,6 +48,10 @@ The following patterns are considered problems: // Message: Unexpected tag `@property` ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-property-type.md b/docs/rules/require-property-type.md index 4873e2b09..d38230db1 100644 --- a/docs/rules/require-property-type.md +++ b/docs/rules/require-property-type.md @@ -1,8 +1,17 @@ -### require-property-name +# require-property-name -Requires that all function `@property` tags have names. +* [Context and settings](#user-content-require-property-name-context-and-settings) +* [Failing examples](#user-content-require-property-name-failing-examples) +* [Passing examples](#user-content-require-property-name-passing-examples) + + +Requires that all `@property` tags have names. + + + +## Context and settings ||| |---|---| @@ -11,6 +20,8 @@ Requires that all function `@property` tags have names. |Aliases|`prop`| |Recommended|true| + + ## Failing examples The following patterns are considered problems: @@ -36,6 +47,10 @@ The following patterns are considered problems: // Message: Unexpected tag `@property` ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-property.md b/docs/rules/require-property.md index c61845a37..0206adcf9 100644 --- a/docs/rules/require-property.md +++ b/docs/rules/require-property.md @@ -1,8 +1,17 @@ -### require-property-type +# require-property-type -Requires that each `@property` tag has a `type` value. +* [Context and settings](#user-content-require-property-type-context-and-settings) +* [Failing examples](#user-content-require-property-type-failing-examples) +* [Passing examples](#user-content-require-property-type-passing-examples) + + +Requires that each `@property` tag has a type value (within curly brackets). + + + +## Context and settings ||| |---|---| @@ -11,6 +20,8 @@ Requires that each `@property` tag has a `type` value. |Aliases|`prop`| |Recommended|true| + + ## Failing examples The following patterns are considered problems: @@ -37,6 +48,10 @@ The following patterns are considered problems: // Message: Unexpected tag `@property` ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-returns-check.md b/docs/rules/require-returns-check.md index 65ca0ab54..9f5a68ac3 100644 --- a/docs/rules/require-returns-check.md +++ b/docs/rules/require-returns-check.md @@ -1,14 +1,20 @@ -### require-returns +# require-returns -Requires that returns are documented. +* [Options](#user-content-require-returns-options) +* [Context and settings](#user-content-require-returns-context-and-settings) +* [Failing examples](#user-content-require-returns-failing-examples) +* [Passing examples](#user-content-require-returns-passing-examples) + + +Requires that return statements are documented. Will also report if multiple `@returns` tags are present. -#### Options +## Options - `checkConstructors` - A value indicating whether `constructor`s should be checked for `@returns` tags. Defaults to `false`. @@ -45,6 +51,10 @@ Will also report if multiple `@returns` tags are present. (since we are not checking against the actual `return` values in these cases). + + +## Context and settings + | | | | -------- | ------- | | Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | @@ -54,6 +64,8 @@ Will also report if multiple `@returns` tags are present. | Options | `checkConstructors`, `checkGetters`, `contexts`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync` | | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | + + ## Failing examples The following patterns are considered problems: @@ -624,6 +636,10 @@ export default async function demo() { // Message: Missing JSDoc @returns declaration. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-returns-description.md b/docs/rules/require-returns-description.md index 6195c6153..0e72282f4 100644 --- a/docs/rules/require-returns-description.md +++ b/docs/rules/require-returns-description.md @@ -1,10 +1,17 @@ -### require-returns-check +# require-returns-check -Requires a return statement (or non-`undefined` Promise resolve value) in -function bodies if a `@returns` tag (without a `void` or `undefined` type) -is specified in the function's JSDoc comment. +* [Options](#user-content-require-returns-check-options) +* [Context and settings](#user-content-require-returns-check-context-and-settings) +* [Failing examples](#user-content-require-returns-check-failing-examples) +* [Passing examples](#user-content-require-returns-check-passing-examples) + + +Requires a return statement (or non-`undefined` Promise resolve value) +be present in a +function body if a `@returns` tag (without a `void` or `undefined` type) +is specified in the function's JSDoc comment block. Will also report `@returns {void}` and `@returns {undefined}` if `exemptAsync` is set to `false` and a non-`undefined` value is returned or a resolved value @@ -14,7 +21,7 @@ Will also report if multiple `@returns` tags are present. -#### Options +## Options - `exemptGenerators`- Because a generator might be labeled as having a `IterableIterator` `@returns` value (along with an iterator type @@ -38,6 +45,10 @@ Will also report if multiple `@returns` tags are present. Unlike `require-returns`, with this option in the rule, one can *discourage* the labeling of `undefined` types. Defaults to `false`. + + +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| @@ -46,6 +57,8 @@ Will also report if multiple `@returns` tags are present. |Options|`exemptAsync`, `reportMissingReturnForUndefinedTypes`| |Recommended|true| + + ## Failing examples The following patterns are considered problems: @@ -384,6 +397,10 @@ function foo() { // Message: JSDoc @returns declaration present but return expression not available in function. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-returns-type.md b/docs/rules/require-returns-type.md index a9d46b8ea..97628b2c5 100644 --- a/docs/rules/require-returns-type.md +++ b/docs/rules/require-returns-type.md @@ -1,6 +1,13 @@ -### require-returns-description +# require-returns-description + +* [Options](#user-content-require-returns-description-options) + * [`contexts`](#user-content-require-returns-description-options-contexts) +* [Context and settings](#user-content-require-returns-description-context-and-settings) +* [Failing examples](#user-content-require-returns-description-failing-examples) +* [Passing examples](#user-content-require-returns-description-passing-examples) + Requires that the `@returns` tag has a `description` value. The error will not be reported if the return value is `void` or `undefined` @@ -8,11 +15,11 @@ or if it is `Promise` or `Promise`. -#### Options +## Options -##### contexts +### contexts Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -25,6 +32,10 @@ expression, i.e., `@callback` or `@function` (or its aliases `@func` or See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. + + +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| @@ -33,6 +44,8 @@ section of our README for more on the expected format. |Recommended|true| |Options|`contexts`| + + ## Failing examples The following patterns are considered problems: @@ -96,6 +109,10 @@ function quux () { // Message: Unexpected tag `@returns` ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-returns.md b/docs/rules/require-returns.md index b3fd7939a..66077f8f7 100644 --- a/docs/rules/require-returns.md +++ b/docs/rules/require-returns.md @@ -1,16 +1,23 @@ -### require-returns-type +# require-returns-type -Requires that `@returns` tag has `type` value. +* [Options](#user-content-require-returns-type-options) + * [`contexts`](#user-content-require-returns-type-options-contexts) +* [Context and settings](#user-content-require-returns-type-context-and-settings) +* [Failing examples](#user-content-require-returns-type-failing-examples) +* [Passing examples](#user-content-require-returns-type-passing-examples) + + +Requires that `@returns` tag has a `type` value (in curly brackets). -#### Options +## Options -##### contexts +### contexts Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. @@ -23,6 +30,10 @@ expression, i.e., `@callback` or `@function` (or its aliases `@func` or See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. + + +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| @@ -31,6 +42,8 @@ section of our README for more on the expected format. |Recommended|true| |Options|`contexts`| + + ## Failing examples The following patterns are considered problems: @@ -94,6 +107,10 @@ function quux () { // Message: Unexpected tag `@returns` ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-throws.md b/docs/rules/require-throws.md index 34403b5ab..9a79c4f91 100644 --- a/docs/rules/require-throws.md +++ b/docs/rules/require-throws.md @@ -1,6 +1,12 @@ -### require-throws +# require-throws + +* [Options](#user-content-require-throws-options) +* [Context and settings](#user-content-require-throws-context-and-settings) +* [Failing examples](#user-content-require-throws-failing-examples) +* [Passing examples](#user-content-require-throws-passing-examples) + Requires that throw statements are documented. @@ -13,7 +19,7 @@ on why TypeScript doesn't offer such a feature. -#### Options +## Options - `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the document block avoids the need for a `@throws`. Defaults to an array @@ -33,6 +39,10 @@ on why TypeScript doesn't offer such a feature. 'jsdoc/require-throws': 'error', ``` + + +## Context and settings + | | | | -------- | --- | | Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | @@ -42,6 +52,8 @@ on why TypeScript doesn't offer such a feature. | Options | `contexts`, `exemptedBy` | | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | + + ## Failing examples The following patterns are considered problems: @@ -229,6 +241,10 @@ function quux (foo) { // Message: JSDoc @throws declaration set to "never" but throw value found. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-yields-check.md b/docs/rules/require-yields-check.md index 1484b4ead..f0c984a4d 100644 --- a/docs/rules/require-yields-check.md +++ b/docs/rules/require-yields-check.md @@ -1,6 +1,12 @@ -### require-yields +# require-yields + +* [Options](#user-content-require-yields-options) +* [Context and settings](#user-content-require-yields-context-and-settings) +* [Failing examples](#user-content-require-yields-failing-examples) +* [Passing examples](#user-content-require-yields-passing-examples) + Requires that yields are documented. @@ -11,7 +17,7 @@ option to expect a non-standard `@next` tag. -#### Options +## Options - `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the document block avoids the need for a `@yields`. Defaults to an array @@ -59,6 +65,10 @@ option to expect a non-standard `@next` tag. `any` if you want to catch `@generator` with `@callback` or such not attached to a function. + + +## Context and settings + ||| |---|---| |Context|Generator functions (`FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled)| @@ -68,6 +78,8 @@ option to expect a non-standard `@next` tag. | Options | `contexts`, `exemptedBy`, `withGeneratorTag`, `nextWithGeneratorTag`, `forceRequireYields`, `next` | | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | + + ## Failing examples The following patterns are considered problems: @@ -477,6 +489,10 @@ function * quux () { // Message: Missing JSDoc @yields declaration. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/require-yields.md b/docs/rules/require-yields.md index 32470bdd1..2c4f342b3 100644 --- a/docs/rules/require-yields.md +++ b/docs/rules/require-yields.md @@ -1,6 +1,12 @@ -### require-yields-check +# require-yields-check + +* [Options](#user-content-require-yields-check-options) +* [Context and settings](#user-content-require-yields-check-context-and-settings) +* [Failing examples](#user-content-require-yields-check-failing-examples) +* [Passing examples](#user-content-require-yields-check-passing-examples) + Ensures that if a `@yields` is present that a `yield` (or `yield` with a value) is present in the function body (or that if a `@next` is present that @@ -19,7 +25,7 @@ Will also report if multiple `@yields` tags are present. -#### Options +## Options - `checkGeneratorsOnly` - Avoids checking the function body and merely insists that all generators have `@yields`. This can be an optimization with the @@ -38,6 +44,10 @@ Will also report if multiple `@yields` tags are present. merely has plain `yield;` or `yield value;` statements without returning the values. Defaults to `false`. + + +## Context and settings + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| @@ -45,6 +55,9 @@ Will also report if multiple `@yields` tags are present. |Aliases|`yield`| |Recommended|true| |Options|`checkGeneratorsOnly`| + + + ## Failing examples The following patterns are considered problems: @@ -200,6 +213,10 @@ function * quux (foo) { // Message: JSDoc @next declaration set with "never" but yield expression with return value is present in function. ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/sort-tags.md b/docs/rules/sort-tags.md index 3468c5010..f879615ee 100644 --- a/docs/rules/sort-tags.md +++ b/docs/rules/sort-tags.md @@ -1,6 +1,18 @@ -### sort-tags +# sort-tags + +* [Fixer](#user-content-sort-tags-fixer) +* [Options](#user-content-sort-tags-options) + * [`tagSequence`](#user-content-sort-tags-options-tagsequence) + * [`alphabetizeExtras`](#user-content-sort-tags-options-alphabetizeextras) + * [`linesBetween`](#user-content-sort-tags-options-linesbetween) + * [`reportTagGroupSpacing`](#user-content-sort-tags-options-reporttaggroupspacing) + * [`reportIntraTagGroupSpacing`](#user-content-sort-tags-options-reportintrataggroupspacing) +* [Context and settings](#user-content-sort-tags-context-and-settings) +* [Failing examples](#user-content-sort-tags-failing-examples) +* [Passing examples](#user-content-sort-tags-passing-examples) + Sorts tags by a specified sequence according to tag name, optionally adding line breaks between tag groups. @@ -19,13 +31,19 @@ line break setting this rule will attempt to do when not disabled. You may, however, safely set the "any" option in that rule along with `startLines` and/or `endLines`. + + +## Fixer + +(TODO) + -#### Options +## Options -##### tagSequence +### tagSequence An array of tag group objects indicating the preferred sequence for sorting tags. @@ -210,7 +228,7 @@ a fixed order that doesn't change into the future, supply your own -##### alphabetizeExtras +### alphabetizeExtras Defaults to `false`. Alphabetizes any items not within `tagSequence` after any items within `tagSequence` (or in place of the special `-other` pseudo-tag) @@ -221,7 +239,7 @@ If you want all your tags alphabetized, you can supply an empty array for -##### linesBetween +### linesBetween Indicates the number of lines to be added between tag groups. Defaults to 1. Do not set to 0 or 2+ if you are using `tag-lines` and `"always"` and do not @@ -229,7 +247,7 @@ set to 1+ if you are using `tag-lines` and `"never"`. -##### reportTagGroupSpacing +### reportTagGroupSpacing Whether to enable reporting and fixing of line breaks between tag groups as set by `linesBetween`. Defaults to `true`. Note that the very last tag @@ -238,12 +256,16 @@ may wish to use the `endLines` option of the `tag-lines` rule. -##### reportIntraTagGroupSpacing +### reportIntraTagGroupSpacing Whether to enable reporting and fixing of line breaks within tags of a given tag group. Defaults to `true` which will remove any line breaks at the end of such tags. Do not use with `true` if you are using `tag-lines` and `always`. + + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -252,6 +274,8 @@ such tags. Do not use with `true` if you are using `tag-lines` and `always`. |Settings|| |Options|`tagSequence`, `alphabetizeExtras`, `linesBetween`, `reportTagGroupSpacing`, `reportIntraTagGroupSpacing`| + + ## Failing examples The following patterns are considered problems: @@ -489,6 +513,10 @@ function quux () {} // Message: Tag groups do not have the expected whitespace ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/tag-lines.md b/docs/rules/tag-lines.md index 0385634da..45cc70b32 100644 --- a/docs/rules/tag-lines.md +++ b/docs/rules/tag-lines.md @@ -1,6 +1,18 @@ -### tag-lines +# tag-lines + +* [Fixer](#user-content-tag-lines-fixer) +* [Options](#user-content-tag-lines-options) + * [`count` (defaults to 1)](#user-content-tag-lines-options-count-defaults-to-1) + * [`applyToEndTag` (defaults to `true`)](#user-content-tag-lines-options-applytoendtag-defaults-to-true) + * [`startLines` (defaults to `0`)](#user-content-tag-lines-options-startlines-defaults-to-0) + * [`endLines` (defaults to `0`)](#user-content-tag-lines-options-endlines-defaults-to-0) + * [`tags` (default to empty object)](#user-content-tag-lines-options-tags-default-to-empty-object) +* [Context and settings](#user-content-tag-lines-context-and-settings) +* [Failing examples](#user-content-tag-lines-failing-examples) +* [Passing examples](#user-content-tag-lines-passing-examples) + Enforces lines (or no lines) between tags. @@ -11,9 +23,15 @@ The "always" or "never" options of this rule should not be used with the linebreak-setting options of the `sort-tags` rule as both may try to impose a conflicting number of lines. + + +## Fixer + +(TODO) + -#### Options +## Options The first option is a single string set to "always", "never", or "any" (defaults to "never"). @@ -28,20 +46,20 @@ The second option is an object with the following optional properties. -##### count (defaults to 1) +### count (defaults to 1) Use with "always" to indicate the number of lines to require be present. -##### applyToEndTag (defaults to true) +### applyToEndTag (defaults to true) Set to `false` and use with "always" to indicate the normal lines to be added after tags should not be added after the final tag. -##### startLines (defaults to 0) +### startLines (defaults to 0) If not set to `null`, will enforce end lines to the given count before the first tag only, unless there is only whitespace content, in which case, @@ -49,14 +67,14 @@ a line count will not be enforced. -##### endLines (defaults to 0) +### endLines (defaults to 0) If not set to `null`, will enforce end lines to the given count on the final tag only. -##### tags (default to empty object) +### tags (default to empty object) Overrides the default behavior depending on specific tags. @@ -66,6 +84,10 @@ following keys: 1. `lines` - Set to `always`, `never`, or `any` to override. 2. `count` - Overrides main `count` (for "always") + + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -74,6 +96,8 @@ following keys: |Settings|N/A| |Options|(a string matching `"always"`, `"never"`, or `"any"` and optional object with `count`, `applyToEndTag`, `startLines`, `endLines`)| + + ## Failing examples The following patterns are considered problems: @@ -291,6 +315,10 @@ The following patterns are considered problems: // Message: Expected 1 lines after block description ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/text-escaping.md b/docs/rules/text-escaping.md index ed9aa5f96..8b22128ed 100644 --- a/docs/rules/text-escaping.md +++ b/docs/rules/text-escaping.md @@ -1,6 +1,15 @@ -### text-escaping +# text-escaping + +* [Fixer](#user-content-text-escaping-fixer) +* [Options](#user-content-text-escaping-options) + * [`escapeHTML`](#user-content-text-escaping-options-escapehtml) + * [`escapeMarkdown`](#user-content-text-escaping-options-escapemarkdown) +* [Context and settings](#user-content-text-escaping-context-and-settings) +* [Failing examples](#user-content-text-escaping-failing-examples) +* [Passing examples](#user-content-text-escaping-passing-examples) + This rule can auto-escape certain characters that are input within block and tag descriptions. @@ -10,23 +19,33 @@ Markdown and you therefore do not wish for it to be accidentally interpreted as such by the likes of Visual Studio Code or if you wish to view it escaped within it or your documentation. + + +## Fixer + +(TODO) + -#### Options +## Options -##### escapeHTML +### escapeHTML This option escapes all `<` and `&` characters (except those followed by whitespace which are treated as literals by Visual Studio Code). -##### escapeMarkdown +### escapeMarkdown This option escapes the first backtick (`` ` ``) in a paired sequence. + + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -35,6 +54,8 @@ This option escapes the first backtick (`` ` ``) in a paired sequence. |Settings|| |Options|| + + ## Failing examples The following patterns are considered problems: @@ -98,6 +119,10 @@ The following patterns are considered problems: // Message: You have unescaped Markdown backtick sequences in a tag ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/docs/rules/valid-types.md b/docs/rules/valid-types.md index a93655d26..05d8449d3 100644 --- a/docs/rules/valid-types.md +++ b/docs/rules/valid-types.md @@ -1,9 +1,17 @@ -### valid-types +# valid-types -Requires all types to be valid JSDoc, Closure, or TypeScript compiler types -without syntax errors. Note that what determines a valid type is handled by +* [Options](#user-content-valid-types-options) +* [Context and settings](#user-content-valid-types-context-and-settings) +* [Failing examples](#user-content-valid-types-failing-examples) +* [Passing examples](#user-content-valid-types-passing-examples) + + +Requires all types/namepaths to be valid JSDoc, Closure compiler, or +TypeScript types (configured by `settings.jsdoc.mode`). + +Note that what determines a valid type is handled by our type parsing engine, [jsdoc-type-pratt-parser](https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser), using [`settings.jsdoc.mode`](#user-content-eslint-plugin-jsdoc-settings-mode) to determine whether to use jsdoc-type-pratt-parser's "permissive" parsing or @@ -82,7 +90,7 @@ value). See the setting for more details. -#### Options +## Options - `allowEmptyNamepaths` (default: true) - Set to `false` to bulk disallow empty name paths with namepath groups 2 and 4 (these might often be @@ -92,6 +100,10 @@ value). See the setting for more details. `settings.jsdoc.structuredTags` with the `required` key set to "name" if you wish to require name paths on a tag-by-tag basis. + + +## Context and settings + ||| |---|---| |Context|everywhere| @@ -102,6 +114,8 @@ value). See the setting for more details. |Options|`allowEmptyNamepaths`| |Settings|`mode`, `structuredTags`| + + ## Failing examples The following patterns are considered problems: @@ -458,6 +472,10 @@ function quux () {} // Message: Invalid name: invalid default value syntax ```` + + + + ## Passing examples The following patterns are not considered problems: diff --git a/src/bin/generateDocs.js b/src/bin/generateDocs.js index 243d13f91..6cbf00295 100644 --- a/src/bin/generateDocs.js +++ b/src/bin/generateDocs.js @@ -142,18 +142,19 @@ const generateDocs = async () => { return docContents.map((docContent) => { return docContent.replace( - //gui, - (assertionsBlock, ruleName) => { + //gui, + (assertionsBlock, passingFailing, ruleName) => { const ruleAssertions = assertions[ruleName]; if (!ruleAssertions) { throw new Error(`No assertions available for rule "${ruleName}".`); } - return '## Failing examples\n\nThe following patterns are considered problems:\n\n````js\n' + - ruleAssertions.invalid.join('\n\n') + '\n````\n\n' + - '## Passing examples\n\nThe following patterns are not considered problems:\n\n````js\n' + - ruleAssertions.valid.join('\n\n') + '\n````\n'; + return passingFailing === 'failing' ? + 'The following patterns are considered problems:\n\n````js\n' + + ruleAssertions.invalid.join('\n\n') + '\n````\n\n' : + 'The following patterns are not considered problems:\n\n````js\n' + + ruleAssertions.valid.join('\n\n') + '\n````\n'; }, // Allow relative paths in source for #902 but generate compiled file in // manner compatible with GitHub and npmjs.com From 0b1c243283709ed266596de030f8c2c8a589cb94 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 20:59:11 +0000 Subject: [PATCH 059/273] build(deps): bump yaml from 2.2.1 to 2.2.2 Bumps [yaml](https://github.com/eemeli/yaml) from 2.2.1 to 2.2.2. - [Release notes](https://github.com/eemeli/yaml/releases) - [Commits](https://github.com/eemeli/yaml/compare/v2.2.1...v2.2.2) --- updated-dependencies: - dependency-name: yaml dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index c300909d0..5b079460c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20554,9 +20554,9 @@ "dev": true }, "node_modules/yaml": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", - "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", + "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", "dev": true, "engines": { "node": ">= 14" From a304ab12904fdec159a5fd19cf8877657dd6957e Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 29 Apr 2023 07:36:25 -0700 Subject: [PATCH 060/273] chore: update devDeps. --- .ncurc.js | 3 + package-lock.json | 2598 ++++++++++++++++++++++----------------------- package.json | 14 +- 3 files changed, 1289 insertions(+), 1326 deletions(-) diff --git a/.ncurc.js b/.ncurc.js index 1dcb0edb0..72e20a476 100644 --- a/.ncurc.js +++ b/.ncurc.js @@ -7,5 +7,8 @@ module.exports = { 'decamelize', 'escape-string-regexp', 'open-editor', + + // Todo: Waiting on merge https://github.com/gajus/eslint-plugin-canonical/pull/22 + 'eslint-config-canonical', ], }; diff --git a/package-lock.json b/package-lock.json index 5b079460c..124fd5119 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,39 +19,39 @@ "spdx-expression-parse": "^3.0.1" }, "devDependencies": { - "@babel/cli": "^7.21.0", - "@babel/core": "^7.21.4", + "@babel/cli": "^7.21.5", + "@babel/core": "^7.21.5", "@babel/eslint-parser": "^7.21.3", "@babel/node": "^7.20.7", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-transform-flow-strip-types": "^7.21.0", - "@babel/preset-env": "^7.21.4", + "@babel/preset-env": "^7.21.5", "@babel/register": "^7.21.0", "@es-joy/jsdoc-eslint-parser": "^0.17.0", "@hkdobrev/run-if-changed": "^0.3.1", "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/github": "^8.0.7", "@semantic-release/npm": "^10.0.3", - "@typescript-eslint/parser": "^5.59.0", + "@typescript-eslint/parser": "^5.59.1", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", "chai": "^4.3.7", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "^8.38.0", + "eslint": "^8.39.0", "eslint-config-canonical": "~33.0.1", "gitdown": "^3.1.5", "glob": "^8.1.0", "husky": "^8.0.3", "jsdoc-type-pratt-parser": "^4.0.0", - "lint-staged": "^13.2.1", + "lint-staged": "^13.2.2", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.2.0", "nyc": "^15.1.0", "open-editor": "^3.0.0", "rimraf": "^5.0.0", - "semantic-release": "^21.0.1", + "semantic-release": "^21.0.2", "typescript": "^5.0.4" }, "engines": { @@ -62,12 +62,12 @@ } }, "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { @@ -87,9 +87,9 @@ } }, "node_modules/@babel/cli": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.21.0.tgz", - "integrity": "sha512-xi7CxyS8XjSyiwUGCfwf+brtJxjW1/ZTcBUkP10xawIEXLX5HzLn+3aXkgxozcP2UhRhtKTmQurw9Uaes7jZrA==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.21.5.tgz", + "integrity": "sha512-TOKytQ9uQW9c4np8F+P7ZfPINy5Kv+pizDIUwSVH8X5zHgYHV4AA8HE5LA450xXeu4jEfmUckTYvv1I4S26M/g==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.17", @@ -148,30 +148,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", - "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", + "version": "7.21.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", + "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", - "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.5.tgz", + "integrity": "sha512-9M398B/QH5DlfCOTKDZT1ozXr0x8uBEeFd+dJraGUZGiaNpGCDVGCc14hZexsMblw3XxltJ+6kSvogp9J+5a9g==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-compilation-targets": "^7.21.5", + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helpers": "^7.21.5", + "@babel/parser": "^7.21.5", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.4", - "@babel/types": "^7.21.4", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -239,12 +239,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", - "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", + "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", "dev": true, "dependencies": { - "@babel/types": "^7.21.4", + "@babel/types": "^7.21.5", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -253,20 +253,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", @@ -280,25 +266,24 @@ } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz", + "integrity": "sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g==", "dev": true, "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", - "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", + "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.21.4", + "@babel/compat-data": "^7.21.5", "@babel/helper-validator-option": "^7.21.0", "browserslist": "^4.21.3", "lru-cache": "^5.1.1", @@ -321,19 +306,20 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz", - "integrity": "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.5.tgz", + "integrity": "sha512-yNSEck9SuDvPTEUYm4BSXl6ZVC7yO5ZLEMAhG3v3zi7RDxyL/nQDemWWZmw4L0stPWwhpnznRRyJHPRcbXR2jw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-environment-visitor": "^7.21.5", "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.5", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-replace-supers": "^7.21.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6" + "@babel/helper-split-export-declaration": "^7.18.6", + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -342,14 +328,24 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz", - "integrity": "sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.5.tgz", + "integrity": "sha512-1+DPMcln46eNAta/rPIqQYXYRGvQ/LRy6bRKnSt9Dzt/yLjNUbbsh+6yzD6fUHmtzc9kWvVnAhtcMSMyziHmUA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.3.1" + "regexpu-core": "^5.3.1", + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -358,6 +354,15 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-define-polyfill-provider": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", @@ -385,22 +390,10 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", + "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, "engines": { "node": ">=6.9.0" } @@ -431,43 +424,43 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", - "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz", + "integrity": "sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==", "dev": true, "dependencies": { - "@babel/types": "^7.21.0" + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.21.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", + "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-simple-access": "^7.21.5", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -486,9 +479,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz", + "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", "dev": true, "engines": { "node": ">=6.9.0" @@ -513,29 +506,29 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", - "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz", + "integrity": "sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-member-expression-to-functions": "^7.21.5", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", + "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", "dev": true, "dependencies": { - "@babel/types": "^7.20.2" + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -566,9 +559,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", + "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", "dev": true, "engines": { "node": ">=6.9.0" @@ -608,14 +601,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz", + "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==", "dev": true, "dependencies": { "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -659,9 +652,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", - "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.5.tgz", + "integrity": "sha512-J+IxH2IsxV4HbnTrSWgMAQj0UEo61hDA4Ny8h8PCX0MLXiibqHbqIOVneqdocemSBc22VpBKxt4J6FQzy9HarQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -1015,12 +1008,12 @@ } }, "node_modules/@babel/plugin-syntax-flow": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz", - "integrity": "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.21.4.tgz", + "integrity": "sha512-l9xd3N+XG4fZRxEP3vXdK6RW7vN1Uf5dxzRC/09wV86wqZ/YYQooBIGNsiRdfNR3/q2/5pPzV4B54J/9ctX5jw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1044,6 +1037,18 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -1057,13 +1062,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", + "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", "dev": true, "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1175,12 +1180,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", - "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz", + "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -1260,12 +1265,12 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", - "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz", + "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-plugin-utils": "^7.21.5", "@babel/template": "^7.20.7" }, "engines": { @@ -1354,12 +1359,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", - "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz", + "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -1432,14 +1437,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", - "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz", + "integrity": "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-simple-access": "^7.20.2" + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-simple-access": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -1560,17 +1565,17 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz", - "integrity": "sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.5.tgz", + "integrity": "sha512-ELdlq61FpoEkHO6gFRpfj0kUgSwQTGoaEU8eMRoS8Dv3v6e7BjEAj5WMtIBRdHUeAioMhKP5HyxNzNnP+heKbA==", "dev": true, "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-jsx": "^7.18.6", - "@babel/types": "^7.21.0" + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-jsx": "^7.21.4", + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -1580,12 +1585,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", - "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz", + "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-plugin-utils": "^7.21.5", "regenerator-transform": "^0.15.1" }, "engines": { @@ -1687,12 +1692,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz", + "integrity": "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -1718,14 +1723,14 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.4.tgz", - "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.5.tgz", + "integrity": "sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-plugin-utils": "^7.20.2", + "@babel/compat-data": "^7.21.5", + "@babel/helper-compilation-targets": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", "@babel/helper-validator-option": "^7.21.0", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", @@ -1750,6 +1755,7 @@ "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -1759,22 +1765,22 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.20.7", + "@babel/plugin-transform-arrow-functions": "^7.21.5", "@babel/plugin-transform-async-to-generator": "^7.20.7", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", "@babel/plugin-transform-block-scoping": "^7.21.0", "@babel/plugin-transform-classes": "^7.21.0", - "@babel/plugin-transform-computed-properties": "^7.20.7", + "@babel/plugin-transform-computed-properties": "^7.21.5", "@babel/plugin-transform-destructuring": "^7.21.3", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.21.0", + "@babel/plugin-transform-for-of": "^7.21.5", "@babel/plugin-transform-function-name": "^7.18.9", "@babel/plugin-transform-literals": "^7.18.9", "@babel/plugin-transform-member-expression-literals": "^7.18.6", "@babel/plugin-transform-modules-amd": "^7.20.11", - "@babel/plugin-transform-modules-commonjs": "^7.21.2", + "@babel/plugin-transform-modules-commonjs": "^7.21.5", "@babel/plugin-transform-modules-systemjs": "^7.20.11", "@babel/plugin-transform-modules-umd": "^7.18.6", "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", @@ -1782,17 +1788,17 @@ "@babel/plugin-transform-object-super": "^7.18.6", "@babel/plugin-transform-parameters": "^7.21.3", "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.20.5", + "@babel/plugin-transform-regenerator": "^7.21.5", "@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-shorthand-properties": "^7.18.6", "@babel/plugin-transform-spread": "^7.20.7", "@babel/plugin-transform-sticky-regex": "^7.18.6", "@babel/plugin-transform-template-literals": "^7.18.9", "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-escapes": "^7.21.5", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.21.4", + "@babel/types": "^7.21.5", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -1857,9 +1863,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", - "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", + "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", "dev": true, "dependencies": { "regenerator-runtime": "^0.13.11" @@ -1883,19 +1889,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", - "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", + "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-environment-visitor": "^7.18.9", + "@babel/generator": "^7.21.5", + "@babel/helper-environment-visitor": "^7.21.5", "@babel/helper-function-name": "^7.21.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.4", - "@babel/types": "^7.21.4", + "@babel/parser": "^7.21.5", + "@babel/types": "^7.21.5", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1904,12 +1910,12 @@ } }, "node_modules/@babel/types": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", - "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", + "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-string-parser": "^7.21.5", "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" }, @@ -1995,9 +2001,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz", - "integrity": "sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, "dependencies": { "eslint-visitor-keys": "^3.3.0" @@ -2010,18 +2016,21 @@ } }, "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz", - "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", + "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -2121,9 +2130,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", - "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", + "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2136,9 +2145,9 @@ "dev": true }, "node_modules/@graphql-eslint/eslint-plugin": { - "version": "3.16.1", - "resolved": "https://registry.npmjs.org/@graphql-eslint/eslint-plugin/-/eslint-plugin-3.16.1.tgz", - "integrity": "sha512-sKmtlwVWjxCXlmgpNJSdvBqapluyrp6PA7FbSnpkyHD0ejkp3mhwZtCiR6843LmVFgWSzfAtEdjPCT2TcJ5p/w==", + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/@graphql-eslint/eslint-plugin/-/eslint-plugin-3.18.0.tgz", + "integrity": "sha512-riEEfRycc0+pWxcEWqHi8woRxzg1xZqAfh9DRACJUR7bTN8dmc1N04i7+pvW4sevClUFYC2wuL1Vtr+DwzXLUg==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", @@ -2228,28 +2237,28 @@ } }, "node_modules/@graphql-tools/batch-execute": { - "version": "8.5.18", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.18.tgz", - "integrity": "sha512-mNv5bpZMLLwhkmPA6+RP81A6u3KF4CSKLf3VX9hbomOkQR4db8pNs8BOvpZU54wKsUzMzdlws/2g/Dabyb2Vsg==", + "version": "8.5.22", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.22.tgz", + "integrity": "sha512-hcV1JaY6NJQFQEwCKrYhpfLK8frSXDbtNMoTur98u10Cmecy1zrqNKSqhEyGetpgHxaJRqszGzKeI3RuroDN6A==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.2.1", - "dataloader": "2.2.2", + "@graphql-tools/utils": "^9.2.1", + "dataloader": "^2.2.2", "tslib": "^2.4.0", - "value-or-promise": "1.0.12" + "value-or-promise": "^1.0.12" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/code-file-loader": { - "version": "7.3.21", - "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.3.21.tgz", - "integrity": "sha512-dj+OLnz1b8SYkXcuiy0CUQ25DWnOEyandDlOcdBqU3WVwh5EEVbn0oXUYm90fDlq2/uut00OrtC5Wpyhi3tAvA==", + "version": "7.3.23", + "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.3.23.tgz", + "integrity": "sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q==", "dev": true, "dependencies": { - "@graphql-tools/graphql-tag-pluck": "7.5.0", - "@graphql-tools/utils": "9.2.1", + "@graphql-tools/graphql-tag-pluck": "7.5.2", + "@graphql-tools/utils": "^9.2.1", "globby": "^11.0.3", "tslib": "^2.4.0", "unixify": "^1.0.0" @@ -2259,14 +2268,14 @@ } }, "node_modules/@graphql-tools/delegate": { - "version": "9.0.28", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-9.0.28.tgz", - "integrity": "sha512-8j23JCs2mgXqnp+5K0v4J3QBQU/5sXd9miaLvMfRf/6963DznOXTECyS9Gcvj1VEeR5CXIw6+aX/BvRDKDdN1g==", + "version": "9.0.35", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-9.0.35.tgz", + "integrity": "sha512-jwPu8NJbzRRMqi4Vp/5QX1vIUeUPpWmlQpOkXQD2r1X45YsVceyUUBnktCrlJlDB4jPRVy7JQGwmYo3KFiOBMA==", "dev": true, "dependencies": { - "@graphql-tools/batch-execute": "^8.5.18", - "@graphql-tools/executor": "^0.0.15", - "@graphql-tools/schema": "^9.0.16", + "@graphql-tools/batch-execute": "^8.5.22", + "@graphql-tools/executor": "^0.0.20", + "@graphql-tools/schema": "^9.0.19", "@graphql-tools/utils": "^9.2.1", "dataloader": "^2.2.2", "tslib": "^2.5.0", @@ -2277,60 +2286,39 @@ } }, "node_modules/@graphql-tools/executor": { - "version": "0.0.15", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-0.0.15.tgz", - "integrity": "sha512-6U7QLZT8cEUxAMXDP4xXVplLi6RBwx7ih7TevlBto66A/qFp3PDb6o/VFo07yBKozr8PGMZ4jMfEWBGxmbGdxA==", + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-0.0.20.tgz", + "integrity": "sha512-GdvNc4vszmfeGvUqlcaH1FjBoguvMYzxAfT6tDd4/LgwymepHhinqLNA5otqwVLW+JETcDaK7xGENzFomuE6TA==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.2.1", - "@graphql-typed-document-node/core": "3.1.2", - "@repeaterjs/repeater": "3.0.4", + "@graphql-tools/utils": "^9.2.1", + "@graphql-typed-document-node/core": "3.2.0", + "@repeaterjs/repeater": "^3.0.4", "tslib": "^2.4.0", - "value-or-promise": "1.0.12" + "value-or-promise": "^1.0.12" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/executor-graphql-ws": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.12.tgz", - "integrity": "sha512-aFD79i9l282Ob5dOZ7JsyhhXXP1o8eQh0prYkSSVo/OU2ndzWigfANz4DJgWgS3LwBjLDlMcmaXPZZeXt3m4Tg==", + "version": "0.0.14", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.14.tgz", + "integrity": "sha512-P2nlkAsPZKLIXImFhj0YTtny5NQVGSsKnhi7PzXiaHSXc6KkzqbWZHKvikD4PObanqg+7IO58rKFpGXP7eeO+w==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.2.1", + "@graphql-tools/utils": "^9.2.1", "@repeaterjs/repeater": "3.0.4", "@types/ws": "^8.0.0", - "graphql-ws": "5.12.0", + "graphql-ws": "5.12.1", "isomorphic-ws": "5.0.0", "tslib": "^2.4.0", - "ws": "8.12.1" + "ws": "8.13.0" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/executor-graphql-ws/node_modules/ws": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz", - "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/@graphql-tools/executor-http": { "version": "0.1.9", "resolved": "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-0.1.9.tgz", @@ -2351,50 +2339,29 @@ } }, "node_modules/@graphql-tools/executor-legacy-ws": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.9.tgz", - "integrity": "sha512-L7oDv7R5yoXzMH+KLKDB2WHVijfVW4dB2H+Ae1RdW3MFvwbYjhnIB6QzHqKEqksjp/FndtxZkbuTIuAOsYGTYw==", + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.11.tgz", + "integrity": "sha512-4ai+NnxlNfvIQ4c70hWFvOZlSUN8lt7yc+ZsrwtNFbFPH/EroIzFMapAxM9zwyv9bH38AdO3TQxZ5zNxgBdvUw==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.2.1", + "@graphql-tools/utils": "^9.2.1", "@types/ws": "^8.0.0", "isomorphic-ws": "5.0.0", "tslib": "^2.4.0", - "ws": "8.12.1" + "ws": "8.13.0" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/executor-legacy-ws/node_modules/ws": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz", - "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/@graphql-tools/graphql-file-loader": { - "version": "7.5.16", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.16.tgz", - "integrity": "sha512-lK1N3Y2I634FS12nd4bu7oAJbai3bUc28yeX+boT+C83KTO4ujGHm+6hPC8X/FRGwhKOnZBxUM7I5nvb3HiUxw==", + "version": "7.5.17", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.17.tgz", + "integrity": "sha512-hVwwxPf41zOYgm4gdaZILCYnKB9Zap7Ys9OhY1hbwuAuC4MMNY9GpUjoTU3CQc3zUiPoYStyRtUGkHSJZ3HxBw==", "dev": true, "dependencies": { - "@graphql-tools/import": "6.7.17", - "@graphql-tools/utils": "9.2.1", + "@graphql-tools/import": "6.7.18", + "@graphql-tools/utils": "^9.2.1", "globby": "^11.0.3", "tslib": "^2.4.0", "unixify": "^1.0.0" @@ -2404,16 +2371,16 @@ } }, "node_modules/@graphql-tools/graphql-tag-pluck": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.5.0.tgz", - "integrity": "sha512-76SYzhSlH50ZWkhWH6OI94qrxa8Ww1ZeOU04MdtpSeQZVT2rjGWeTb3xM3kjTVWQJsr/YJBhDeNPGlwNUWfX4Q==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.5.2.tgz", + "integrity": "sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==", "dev": true, "dependencies": { "@babel/parser": "^7.16.8", - "@babel/plugin-syntax-import-assertions": "7.20.0", + "@babel/plugin-syntax-import-assertions": "^7.20.0", "@babel/traverse": "^7.16.8", "@babel/types": "^7.16.8", - "@graphql-tools/utils": "9.2.1", + "@graphql-tools/utils": "^9.2.1", "tslib": "^2.4.0" }, "peerDependencies": { @@ -2421,12 +2388,12 @@ } }, "node_modules/@graphql-tools/import": { - "version": "6.7.17", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.7.17.tgz", - "integrity": "sha512-bn9SgrECXq3WIasgNP7ful/uON51wBajPXtxdY+z/ce7jLWaFE6lzwTDB/GAgiZ+jo7nb0ravlxteSAz2qZmuA==", + "version": "6.7.18", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.7.18.tgz", + "integrity": "sha512-XQDdyZTp+FYmT7as3xRWH/x8dx0QZA2WZqfMF5EWb36a0PiH7WwlRQYIdyYXj8YCLpiWkeBXgBRHmMnwEYR8iQ==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.2.1", + "@graphql-tools/utils": "^9.2.1", "resolve-from": "5.0.0", "tslib": "^2.4.0" }, @@ -2435,12 +2402,12 @@ } }, "node_modules/@graphql-tools/json-file-loader": { - "version": "7.4.17", - "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-7.4.17.tgz", - "integrity": "sha512-KOSTP43nwjPfXgas90rLHAFgbcSep4nmiYyR9xRVz4ZAmw8VYHcKhOLTSGylCAzi7KUfyBXajoW+6Z7dQwdn3g==", + "version": "7.4.18", + "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-7.4.18.tgz", + "integrity": "sha512-AJ1b6Y1wiVgkwsxT5dELXhIVUPs/u3VZ8/0/oOtpcoyO/vAeM5rOvvWegzicOOnQw8G45fgBRMkkRfeuwVt6+w==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.2.1", + "@graphql-tools/utils": "^9.2.1", "globby": "^11.0.3", "tslib": "^2.4.0", "unixify": "^1.0.0" @@ -2450,13 +2417,13 @@ } }, "node_modules/@graphql-tools/load": { - "version": "7.8.13", - "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.8.13.tgz", - "integrity": "sha512-c97/GuUl81Wpa38cx3E6nMz8gUrvVcFokoPfDOaA5uTWSTXA1UxaF4KrvM9P5rNFaKVAtF9f6nMIusRE5B0mag==", + "version": "7.8.14", + "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.8.14.tgz", + "integrity": "sha512-ASQvP+snHMYm+FhIaLxxFgVdRaM0vrN9wW2BKInQpktwWTXVyk+yP5nQUCEGmn0RTdlPKrffBaigxepkEAJPrg==", "dev": true, "dependencies": { - "@graphql-tools/schema": "9.0.17", - "@graphql-tools/utils": "9.2.1", + "@graphql-tools/schema": "^9.0.18", + "@graphql-tools/utils": "^9.2.1", "p-limit": "3.1.0", "tslib": "^2.4.0" }, @@ -2465,12 +2432,12 @@ } }, "node_modules/@graphql-tools/merge": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.0.tgz", - "integrity": "sha512-3XYCWe0d3I4F1azNj1CdShlbHfTIfiDgj00R9uvFH8tHKh7i1IWN3F7QQYovcHKhayaR6zPok3YYMESYQcBoaA==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.1.tgz", + "integrity": "sha512-hssnPpZ818mxgl5+GfyOOSnnflAxiaTn1A1AojZcIbh4J52sS1Q0gSuBR5VrnUDjuxiqoCotpXdAQl+K+U6KLQ==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.2.1", + "@graphql-tools/utils": "^9.2.1", "tslib": "^2.4.0" }, "peerDependencies": { @@ -2478,33 +2445,33 @@ } }, "node_modules/@graphql-tools/schema": { - "version": "9.0.17", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.17.tgz", - "integrity": "sha512-HVLq0ecbkuXhJlpZ50IHP5nlISqH2GbNgjBJhhRzHeXhfwlUOT4ISXGquWTmuq61K0xSaO0aCjMpxe4QYbKTng==", + "version": "9.0.19", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz", + "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", "dev": true, "dependencies": { - "@graphql-tools/merge": "8.4.0", - "@graphql-tools/utils": "9.2.1", + "@graphql-tools/merge": "^8.4.1", + "@graphql-tools/utils": "^9.2.1", "tslib": "^2.4.0", - "value-or-promise": "1.0.12" + "value-or-promise": "^1.0.12" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/url-loader": { - "version": "7.17.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.17.14.tgz", - "integrity": "sha512-7boEmrZlbViqQSSvu2VFCGi9YAY7E0BCVObiv1sLYbFR+62mo825As0haU5l7wlx1zCDyUlOleNz+X2jVvBbSQ==", + "version": "7.17.18", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.17.18.tgz", + "integrity": "sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==", "dev": true, "dependencies": { "@ardatan/sync-fetch": "^0.0.1", - "@graphql-tools/delegate": "^9.0.27", - "@graphql-tools/executor-graphql-ws": "^0.0.12", + "@graphql-tools/delegate": "^9.0.31", + "@graphql-tools/executor-graphql-ws": "^0.0.14", "@graphql-tools/executor-http": "^0.1.7", - "@graphql-tools/executor-legacy-ws": "^0.0.9", + "@graphql-tools/executor-legacy-ws": "^0.0.11", "@graphql-tools/utils": "^9.2.1", - "@graphql-tools/wrap": "^9.3.8", + "@graphql-tools/wrap": "^9.4.2", "@types/ws": "^8.0.0", "@whatwg-node/fetch": "^0.8.0", "isomorphic-ws": "^5.0.0", @@ -2530,25 +2497,25 @@ } }, "node_modules/@graphql-tools/wrap": { - "version": "9.3.8", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-9.3.8.tgz", - "integrity": "sha512-MGsExYPiILMw4Qff7HcvE9MMSYdjb/tr5IQYJbxJIU4/TrBHox1/smne8HG+Bd7kmDlTTj7nU/Z8sxmoRd0hOQ==", + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-9.4.2.tgz", + "integrity": "sha512-DFcd9r51lmcEKn0JW43CWkkI2D6T9XI1juW/Yo86i04v43O9w2/k4/nx2XTJv4Yv+iXwUw7Ok81PGltwGJSDSA==", "dev": true, "dependencies": { - "@graphql-tools/delegate": "9.0.28", - "@graphql-tools/schema": "9.0.17", - "@graphql-tools/utils": "9.2.1", + "@graphql-tools/delegate": "^9.0.31", + "@graphql-tools/schema": "^9.0.18", + "@graphql-tools/utils": "^9.2.1", "tslib": "^2.4.0", - "value-or-promise": "1.0.12" + "value-or-promise": "^1.0.12" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-typed-document-node/core": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.2.tgz", - "integrity": "sha512-9anpBMM9mEgZN4wr2v8wHJI2/u5TnnggewRN6OlvXTTnuVyoY19X6rOv9XTqKRw6dcGKwZsBi8n0kDE2I5i4VA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", "dev": true, "peerDependencies": { "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" @@ -2638,13 +2605,14 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" @@ -2669,21 +2637,27 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" } }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, "node_modules/@next/eslint-plugin-next": { "version": "12.3.4", "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.3.4.tgz", @@ -2885,9 +2859,9 @@ } }, "node_modules/@octokit/openapi-types": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-16.0.0.tgz", - "integrity": "sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-17.1.0.tgz", + "integrity": "sha512-rnI26BAITDZTo5vqFOmA7oX4xRd18rO+gcK4MiTpJmsRMxAw0JmevNjPsjpry1bb9SVNo56P/0kbiyXXa4QluA==", "dev": true }, "node_modules/@octokit/plugin-paginate-rest": { @@ -2977,12 +2951,12 @@ } }, "node_modules/@octokit/types": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.0.0.tgz", - "integrity": "sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.2.0.tgz", + "integrity": "sha512-xySzJG4noWrIBFyMu4lg4tu9vAgNg9S0aoLRONhAEz6ueyi1evBzb40HitIosaYS4XOexphG305IVcLrIX/30g==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^16.0.0" + "@octokit/openapi-types": "^17.1.0" } }, "node_modules/@peculiar/asn1-schema": { @@ -3009,16 +2983,16 @@ } }, "node_modules/@peculiar/webcrypto": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.1.tgz", - "integrity": "sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.3.tgz", + "integrity": "sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A==", "dev": true, "dependencies": { - "@peculiar/asn1-schema": "^2.3.0", + "@peculiar/asn1-schema": "^2.3.6", "@peculiar/json-schema": "^1.1.12", "pvtsutils": "^1.3.2", - "tslib": "^2.4.1", - "webcrypto-core": "^1.7.4" + "tslib": "^2.5.0", + "webcrypto-core": "^1.7.7" }, "engines": { "node": ">=10.12.0" @@ -3035,9 +3009,9 @@ } }, "node_modules/@pnpm/config.env-replace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.0.0.tgz", - "integrity": "sha512-ZVPVDi1E8oeXlYqkGRtX0CkzLTwE2zt62bjWaWKaAvI8NZqHzlMvGeSNDpW+JB3+aKanYb4UETJOF1/CxGPemA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", "dev": true, "engines": { "node": ">=12.22.0" @@ -3055,13 +3029,19 @@ "node": ">=12.22.0" } }, + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, "node_modules/@pnpm/npm-conf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.1.0.tgz", - "integrity": "sha512-Oe6ntvgsMTE3hDIqy6sajqHF+MnzJrOF06qC2QSiUEybLL7cp6tjoKUa32gpd9+KPVl4QyMs3E3nsXrx/Vdnlw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.1.1.tgz", + "integrity": "sha512-yfRcuupmxxeDOSxvw4g+wFCrGiPD0L32f5WMzqMXp7Rl93EOCdFiDcaSNnZ10Up9GdNqkj70UTa8hfhPFphaZA==", "dev": true, "dependencies": { - "@pnpm/config.env-replace": "^1.0.0", + "@pnpm/config.env-replace": "^1.1.0", "@pnpm/network.ca-file": "^1.0.1", "config-chain": "^1.1.11" }, @@ -3259,27 +3239,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/npm/node_modules/hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@semantic-release/npm/node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", - "dev": true, - "engines": { - "node": ">=14.18.0" - } - }, "node_modules/@semantic-release/npm/node_modules/indent-string": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", @@ -3304,33 +3263,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/npm/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@semantic-release/npm/node_modules/lines-and-columns": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", - "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/@semantic-release/npm/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/@semantic-release/npm/node_modules/mimic-fn": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", @@ -3343,21 +3275,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/npm/node_modules/normalize-package-data": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", - "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", - "dev": true, - "dependencies": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/@semantic-release/npm/node_modules/npm-run-path": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", @@ -3388,110 +3305,196 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/npm/node_modules/parse-json": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.0.0.tgz", - "integrity": "sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==", + "node_modules/@semantic-release/npm/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/release-notes-generator": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-11.0.1.tgz", + "integrity": "sha512-4deWsiY4Rg80oc9Ms11N20BIDgYkPMys4scNYQpi2Njdrtw5Z55nXKNsUN3kn6Sy/nI9dqqbp5L63TL4luI5Bw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.21.4", - "error-ex": "^1.3.2", - "json-parse-even-better-errors": "^3.0.0", - "lines-and-columns": "^2.0.3", - "type-fest": "^3.8.0" + "conventional-changelog-angular": "^5.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.2.3", + "debug": "^4.0.0", + "get-stream": "^6.0.0", + "import-from": "^4.0.0", + "into-stream": "^7.0.0", + "lodash-es": "^4.17.21", + "read-pkg-up": "^9.0.0" }, "engines": { - "node": ">=16" + "node": ">=18" + }, + "peerDependencies": { + "semantic-release": ">=20.1.0" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/npm/node_modules/path-key": { + "node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/p-limit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, "engines": { - "node": ">=12" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/npm/node_modules/read-pkg": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.0.0.tgz", - "integrity": "sha512-Ajb9oSjxXBw0YyOiwtQ2dKbAA/vMnUPnY63XcCk+mXo0BwIdQEMgZLZiMWGttQHcUhUgbK0mH85ethMPKXxziw==", + "node_modules/@semantic-release/release-notes-generator/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, "dependencies": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^5.0.0", - "parse-json": "^7.0.0", - "type-fest": "^3.8.0" + "p-limit": "^4.0.0" }, "engines": { - "node": ">=16" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/npm/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "node_modules/@semantic-release/release-notes-generator/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/npm/node_modules/type-fest": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.8.0.tgz", - "integrity": "sha512-FVNSzGQz9Th+/9R6Lvv7WIAkstylfHN2/JYxkyhhmKFYh9At2DST8t6L6Lref9eYO8PXFTfG9Sg1Agg0K3vq3Q==", + "node_modules/@semantic-release/release-notes-generator/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, "engines": { - "node": ">=14.16" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", + "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^2.0.0" + }, + "engines": { + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/release-notes-generator": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-10.0.3.tgz", - "integrity": "sha512-k4x4VhIKneOWoBGHkx0qZogNjCldLPRiAjnIpMnlUh6PtaWXp/T+C9U7/TaNDDtgDa5HMbHl4WlREdxHio6/3w==", + "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg-up": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", + "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", "dev": true, "dependencies": { - "conventional-changelog-angular": "^5.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.2.3", - "debug": "^4.0.0", - "get-stream": "^6.0.0", - "import-from": "^4.0.0", - "into-stream": "^6.0.0", - "lodash": "^4.17.4", - "read-pkg-up": "^7.0.0" + "find-up": "^6.3.0", + "read-pkg": "^7.1.0", + "type-fest": "^2.5.0" }, "engines": { - "node": ">=14.17" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, - "peerDependencies": { - "semantic-release": ">=18.0.0-beta.1" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "node_modules/@semantic-release/release-notes-generator/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true, "engines": { - "node": ">=10" + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3525,9 +3528,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.15.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.3.tgz", - "integrity": "sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw==", + "version": "18.16.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz", + "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==", "dev": true }, "node_modules/@types/normalize-package-data": { @@ -3558,15 +3561,15 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.55.0.tgz", - "integrity": "sha512-IZGc50rtbjk+xp5YQoJvmMPmJEYoC53SiKPXyqWfv15XoD2Y5Kju6zN0DwlmaGJp1Iw33JsWJcQ7nw0lGCGjVg==", + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.1.tgz", + "integrity": "sha512-AVi0uazY5quFB9hlp2Xv+ogpfpk77xzsgsIEWyVS7uK/c7MZ5tw7ZPbapa0SbfkqE0fsAMkz5UwtgMLVk2BQAg==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.55.0", - "@typescript-eslint/type-utils": "5.55.0", - "@typescript-eslint/utils": "5.55.0", + "@typescript-eslint/scope-manager": "5.59.1", + "@typescript-eslint/type-utils": "5.59.1", + "@typescript-eslint/utils": "5.59.1", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", @@ -3592,12 +3595,12 @@ } }, "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.55.0.tgz", - "integrity": "sha512-3ZqXIZhdGyGQAIIGATeMtg7prA6VlyxGtcy5hYIR/3qUqp3t18pWWUYhL9mpsDm7y8F9mr3ISMt83TiqCt7OPQ==", + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.59.1.tgz", + "integrity": "sha512-KVtKcHEizCIRx//LC9tBi6xp94ULKbU5StVHBVWURJQOVa2qw6HP28Hu7LmHrQM3p9I3q5Y2VR4wKllCJ3IWrw==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.55.0" + "@typescript-eslint/utils": "5.59.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3611,14 +3614,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.0.tgz", - "integrity": "sha512-qK9TZ70eJtjojSUMrrEwA9ZDQ4N0e/AuoOIgXuNBorXYcBDk397D2r5MIe1B3cok/oCtdNC5j+lUUpVB+Dpb+w==", + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.1.tgz", + "integrity": "sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.59.0", - "@typescript-eslint/types": "5.59.0", - "@typescript-eslint/typescript-estree": "5.59.0", + "@typescript-eslint/scope-manager": "5.59.1", + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/typescript-estree": "5.59.1", "debug": "^4.3.4" }, "engines": { @@ -3637,100 +3640,14 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.0.tgz", - "integrity": "sha512-tsoldKaMh7izN6BvkK6zRMINj4Z2d6gGhO2UsI8zGZY3XhLq1DndP3Ycjhi1JwdwPRwtLMW4EFPgpuKhbCGOvQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.0", - "@typescript-eslint/visitor-keys": "5.59.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.0.tgz", - "integrity": "sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.0.tgz", - "integrity": "sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.0", - "@typescript-eslint/visitor-keys": "5.59.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.0.tgz", - "integrity": "sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.55.0.tgz", - "integrity": "sha512-OK+cIO1ZGhJYNCL//a3ROpsd83psf4dUJ4j7pdNVzd5DmIk+ffkuUIX2vcZQbEW/IR41DYsfJTB19tpCboxQuw==", + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.1.tgz", + "integrity": "sha512-mau0waO5frJctPuAzcxiNWqJR5Z8V0190FTSqRw1Q4Euop6+zTwHAf8YIXNwDOT29tyUDrQ65jSg9aTU/H0omA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.55.0", - "@typescript-eslint/visitor-keys": "5.55.0" + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/visitor-keys": "5.59.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3741,13 +3658,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.55.0.tgz", - "integrity": "sha512-ObqxBgHIXj8rBNm0yh8oORFrICcJuZPZTqtAFh0oZQyr5DnAHZWfyw54RwpEEH+fD8suZaI0YxvWu5tYE/WswA==", + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.1.tgz", + "integrity": "sha512-ZMWQ+Oh82jWqWzvM3xU+9y5U7MEMVv6GLioM3R5NJk6uvP47kZ7YvlgSHJ7ERD6bOY7Q4uxWm25c76HKEwIjZw==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.55.0", - "@typescript-eslint/utils": "5.55.0", + "@typescript-eslint/typescript-estree": "5.59.1", + "@typescript-eslint/utils": "5.59.1", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -3768,9 +3685,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.55.0.tgz", - "integrity": "sha512-M4iRh4AG1ChrOL6Y+mETEKGeDnT7Sparn6fhZ5LtVJF1909D5O4uqK+C5NPbLmpfZ0XIIxCdwzKiijpZUOvOug==", + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.1.tgz", + "integrity": "sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3781,13 +3698,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.55.0.tgz", - "integrity": "sha512-I7X4A9ovA8gdpWMpr7b1BN9eEbvlEtWhQvpxp/yogt48fy9Lj3iE3ild/1H3jKBBIYj5YYJmS2+9ystVhC7eaQ==", + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.1.tgz", + "integrity": "sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.55.0", - "@typescript-eslint/visitor-keys": "5.55.0", + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/visitor-keys": "5.59.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -3808,17 +3725,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.55.0.tgz", - "integrity": "sha512-FkW+i2pQKcpDC3AY6DU54yl8Lfl14FVGYDgBTyGKB75cCwV3KpkpTMFi9d9j2WAJ4271LR2HeC5SEWF/CZmmfw==", + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.1.tgz", + "integrity": "sha512-MkTe7FE+K1/GxZkP5gRj3rCztg45bEhsd8HYjczBuYm+qFHP5vtZmjx3B0yUCDotceQ4sHgTyz60Ycl225njmA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.55.0", - "@typescript-eslint/types": "5.55.0", - "@typescript-eslint/typescript-estree": "5.55.0", + "@typescript-eslint/scope-manager": "5.59.1", + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/typescript-estree": "5.59.1", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, @@ -3834,12 +3751,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.55.0.tgz", - "integrity": "sha512-q2dlHHwWgirKh1D3acnuApXG+VNXpEY5/AwRxDVuEQpxWaB0jCDe0jFMVMALJ3ebSfuOVE8/rMS+9ZOYGg1GWw==", + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.1.tgz", + "integrity": "sha512-6waEYwBTCWryx0VJmP7JaM4FpipLsFl9CvYf2foAE8Qh/Y0s+bxWysciwOs0LTBED4JCaNxTZ5rGadB14M6dwA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.55.0", + "@typescript-eslint/types": "5.59.1", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -3851,47 +3768,47 @@ } }, "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/@whatwg-node/events": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.0.2.tgz", - "integrity": "sha512-WKj/lI4QjnLuPrim0cfO7i+HsDSXHxNv1y0CrJhdntuO3hxWZmnXCwNDnwOvry11OjRin6cgWNF+j/9Pn8TN4w==", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.0.3.tgz", + "integrity": "sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA==", "dev": true }, "node_modules/@whatwg-node/fetch": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.8.2.tgz", - "integrity": "sha512-6u1xGzFZvskJpQXhWreR9s1/4nsuY4iFRsTb4BC3NiDHmzgj/Hu1Ovt4iHs5KAjLzbnsjaQOI5f5bQPucqvPsQ==", + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.8.8.tgz", + "integrity": "sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg==", "dev": true, "dependencies": { "@peculiar/webcrypto": "^1.4.0", - "@whatwg-node/node-fetch": "^0.3.1", + "@whatwg-node/node-fetch": "^0.3.6", "busboy": "^1.6.0", - "urlpattern-polyfill": "^6.0.2", + "urlpattern-polyfill": "^8.0.0", "web-streams-polyfill": "^3.2.1" } }, "node_modules/@whatwg-node/node-fetch": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.3.2.tgz", - "integrity": "sha512-MFPehIybgtPJG7vN4+wNk2i5ek4/qIl+1hzchGCdq7gObWsXWH+L+rvyazIoj8lo8Mt8EZeES8Cg+aPsl+7gPw==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.3.6.tgz", + "integrity": "sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA==", "dev": true, "dependencies": { - "@whatwg-node/events": "^0.0.2", + "@whatwg-node/events": "^0.0.3", "busboy": "^1.6.0", "fast-querystring": "^1.1.1", "fast-url-parser": "^1.1.3", "tslib": "^2.3.1" - }, - "peerDependencies": { - "@types/node": "^18.0.6" } }, "node_modules/abbrev": { @@ -4401,9 +4318,9 @@ "dev": true }, "node_modules/axe-core": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.3.tgz", - "integrity": "sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", + "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", "dev": true, "engines": { "node": ">=4" @@ -4693,6 +4610,18 @@ "node": ">=12" } }, + "node_modules/cacache/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/cacache/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -4708,6 +4637,16 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/cacache/node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/cacache/node_modules/rimraf/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -4728,6 +4667,24 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/cacache/node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/cacache/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -4872,9 +4829,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001466", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001466.tgz", - "integrity": "sha512-ewtFBSfWjEmxUgNBSZItFSmVtvk9zkwkl1OfRZlKA8slltRN+/C/tuGVrF9styXkN36Yu3+SeJ1qkXxDEyNZ5w==", + "version": "1.0.30001481", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001481.tgz", + "integrity": "sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==", "dev": true, "funding": [ { @@ -4884,6 +4841,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, @@ -5162,35 +5123,6 @@ "@colors/colors": "1.5.0" } }, - "node_modules/cli-table3/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/cli-table3/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-table3/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/cli-truncate": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", @@ -5207,44 +5139,62 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "node_modules/cli-truncate/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" } }, "node_modules/clone-deep": { @@ -5311,9 +5261,9 @@ } }, "node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, "node_modules/combined-stream": { @@ -5493,9 +5443,9 @@ } }, "node_modules/core-js": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.1.tgz", - "integrity": "sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw==", + "version": "3.30.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", + "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", "dev": true, "hasInstallScript": true, "funding": { @@ -5504,9 +5454,9 @@ } }, "node_modules/core-js-compat": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.1.tgz", - "integrity": "sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA==", + "version": "3.30.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.1.tgz", + "integrity": "sha512-d690npR7MC6P0gq4npTl5n2VQeNAmUrJ90n+MHiKS7W2+xno4o3F5GDEuylSdi6EJ3VssibSGXOa1r3YXD3Mhw==", "dev": true, "dependencies": { "browserslist": "^4.21.5" @@ -5760,16 +5710,17 @@ } }, "node_modules/deep-equal": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", - "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.1.tgz", + "integrity": "sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ==", "dev": true, "dependencies": { + "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.2", - "es-get-iterator": "^1.1.2", - "get-intrinsic": "^1.1.3", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.0", "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.1", + "is-array-buffer": "^3.0.2", "is-date-object": "^1.0.5", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", @@ -5777,7 +5728,7 @@ "object-is": "^1.1.5", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.5.0", "side-channel": "^1.0.4", "which-boxed-primitive": "^1.0.2", "which-collection": "^1.0.1", @@ -6048,9 +5999,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.328", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz", - "integrity": "sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw==", + "version": "1.4.377", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.377.tgz", + "integrity": "sha512-H3BYG6DW5Z+l0xcfXaicJGxrpA4kMlCxnN71+iNX+dBLkRMOdVJqFJiAmbNZZKA1zISpRg17JR03qGifXNsJtw==", "dev": true }, "node_modules/emoji-regex": { @@ -6097,9 +6048,9 @@ "dev": true }, "node_modules/env-ci": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-9.0.0.tgz", - "integrity": "sha512-Q3cjr1tX9xwigprw4G8M3o7PIOO/1LYji6TyGsbD1WfMmD23etZvhgmPXJqkP788yH4dgSSK7oaIMuaayUJIfg==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-9.1.0.tgz", + "integrity": "sha512-ZCEas2sDVFR3gpumwwzSU4OJZwWJ46yqJH3TqH3vSxEBzeAlC0uCJLGAnZC0vX1TIXzHzjcwpKmUn2xw5mC/qA==", "dev": true, "dependencies": { "execa": "^7.0.0", @@ -6144,15 +6095,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/env-ci/node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", - "dev": true, - "engines": { - "node": ">=14.18.0" - } - }, "node_modules/env-ci/node_modules/is-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", @@ -6219,18 +6161,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/env-ci/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/env-editor": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", @@ -6487,15 +6417,15 @@ } }, "node_modules/eslint": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", - "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", + "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.38.0", + "@eslint/js": "8.39.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -6505,7 +6435,7 @@ "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", + "eslint-scope": "^7.2.0", "eslint-visitor-keys": "^3.4.0", "espree": "^9.5.1", "esquery": "^1.4.2", @@ -6619,9 +6549,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -6687,9 +6617,9 @@ } }, "node_modules/eslint-plugin-cypress": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.12.1.tgz", - "integrity": "sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA==", + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.13.3.tgz", + "integrity": "sha512-nAPjZE5WopCsgJwl3vHm5iafpV+ZRO76Z9hMyRygWhmg5ODXDPd+9MaPl7kdJ2azj+sO87H3P1PRnggIrz848g==", "dev": true, "dependencies": { "globals": "^11.12.0" @@ -6943,12 +6873,12 @@ } }, "node_modules/eslint-plugin-jsonc": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.6.0.tgz", - "integrity": "sha512-4bA9YTx58QaWalua1Q1b82zt7eZMB7i+ed8q8cKkbKP75ofOA2SXbtFyCSok7RY6jIXeCqQnKjN9If8zCgv6PA==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.7.0.tgz", + "integrity": "sha512-DZgC71h/hZ9t5k/OGAKOMdJCleg2neZLL7No+YYi2ZMroCN4X5huZdrLf1USbrc6UTHwYujd1EDwXHg1qJ6CYw==", "dev": true, "dependencies": { - "eslint-utils": "^3.0.0", + "@eslint-community/eslint-utils": "^4.2.0", "jsonc-eslint-parser": "^2.0.4", "natural-compare": "^1.4.0" }, @@ -7375,9 +7305,9 @@ "dev": true }, "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -7385,6 +7315,9 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/eslint-visitor-keys": { @@ -8294,16 +8227,31 @@ } }, "node_modules/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", "dev": true, "dependencies": { "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" + "signal-exit": "^4.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.1.tgz", + "integrity": "sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/forever-agent": { @@ -8408,9 +8356,9 @@ ] }, "node_modules/fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -8433,6 +8381,24 @@ "node": ">= 8" } }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", @@ -8493,51 +8459,22 @@ } }, "node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/gauge/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/gauge/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" }, "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/gensync": { @@ -8917,9 +8854,9 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "node_modules/grapheme-splitter": { @@ -9073,9 +9010,9 @@ } }, "node_modules/graphql-ws": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.12.0.tgz", - "integrity": "sha512-PA3ImUp8utrpEjoxBMhvxsjkStvFEdU0E1gEBREt8HZIWkxOUymwJBhFnBL7t/iHhUq1GVPeZevPinkZFENxTw==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.12.1.tgz", + "integrity": "sha512-umt4f5NnMK46ChM2coO36PTFhHouBrK9stWWBczERguwYrGnPNxJ9dimU6IyOBfOkC6Izhkg4H8+F51W/8CYDg==", "dev": true, "engines": { "node": ">=10" @@ -9432,12 +9369,12 @@ } }, "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "dev": true, "engines": { - "node": ">=10.17.0" + "node": ">=14.18.0" } }, "node_modules/humanize-ms": { @@ -9603,16 +9540,16 @@ } }, "node_modules/into-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", - "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-7.0.0.tgz", + "integrity": "sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==", "dev": true, "dependencies": { "from2": "^2.3.0", "p-is-promise": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -9755,9 +9692,9 @@ } }, "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -10458,12 +10395,12 @@ } }, "node_modules/jackspeak": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.0.3.tgz", - "integrity": "sha512-0Jud3OMUdMbrlr3PyUMKESq51LXVAB+a239Ywdvd+Kgxj3MaBRml/nVRxf8tQFyfthMjuRkxkv7Vg58pmIMfuQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.1.1.tgz", + "integrity": "sha512-juf9stUEwUaILepraGOWIJTLwg48bUnBmRqd2ln2Os1sW987zeoj/hzhbvRB95oMuS2ZTpjULmdwHNX4rzZIZw==", "dev": true, "dependencies": { - "cliui": "^7.0.4" + "cliui": "^8.0.1" }, "engines": { "node": ">=14" @@ -10494,9 +10431,9 @@ } }, "node_modules/js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", + "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", "dev": true, "funding": { "type": "opencollective", @@ -10660,12 +10597,15 @@ } }, "node_modules/jsonc-eslint-parser/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/jsonfile": { @@ -10807,9 +10747,9 @@ "dev": true }, "node_modules/lint-staged": { - "version": "13.2.1", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.1.tgz", - "integrity": "sha512-8gfzinVXoPfga5Dz/ZOn8I2GOhf81Wvs+KwbEXQn/oWZAvCVS2PivrXfVbFJc93zD16uC0neS47RXHIjXKYZQw==", + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.2.tgz", + "integrity": "sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA==", "dev": true, "dependencies": { "chalk": "5.2.0", @@ -10824,7 +10764,7 @@ "object-inspect": "^1.12.3", "pidtree": "^0.6.0", "string-argv": "^0.3.1", - "yaml": "^2.2.1" + "yaml": "^2.2.2" }, "bin": { "lint-staged": "bin/lint-staged.js" @@ -10849,18 +10789,18 @@ } }, "node_modules/lint-staged/node_modules/commander": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", - "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, "engines": { "node": ">=14" } }, "node_modules/lint-staged/node_modules/execa": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.0.tgz", - "integrity": "sha512-T6nIJO3LHxUZ6ahVRaxXz9WLEruXLqdcluA+UuTptXmLM7nDAn9lx9IfkxPyzEL21583qSt4RmL44pO71EHaJQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", + "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", @@ -10892,15 +10832,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lint-staged/node_modules/human-signals": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.0.tgz", - "integrity": "sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ==", - "dev": true, - "engines": { - "node": ">=14.18.0" - } - }, "node_modules/lint-staged/node_modules/is-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", @@ -10989,18 +10920,6 @@ "node": ">=0.6.19" } }, - "node_modules/lint-staged/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/listr2": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.8.tgz", @@ -11077,12 +10996,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/listr2/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, "node_modules/listr2/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -11106,20 +11019,6 @@ "node": ">=8" } }, - "node_modules/listr2/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -11392,12 +11291,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/log-update/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, "node_modules/log-update/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -11424,20 +11317,6 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/log-update/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/log-update/node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -11549,6 +11428,24 @@ "node": ">=12" } }, + "node_modules/make-fetch-happen/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/make-fetch-happen/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", @@ -11931,13 +11828,10 @@ } }, "node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { "node": ">=8" } @@ -11954,6 +11848,24 @@ "node": ">= 8" } }, + "node_modules/minipass-collect/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/minipass-fetch": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", @@ -11971,6 +11883,24 @@ "encoding": "^0.1.13" } }, + "node_modules/minipass-fetch/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-fetch/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/minipass-flush": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", @@ -11983,6 +11913,24 @@ "node": ">= 8" } }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/minipass-pipeline": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", @@ -11995,6 +11943,24 @@ "node": ">=8" } }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/minipass-sized": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", @@ -12007,7 +11973,19 @@ "node": ">=8" } }, - "node_modules/minipass/node_modules/yallist": { + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", @@ -12026,6 +12004,18 @@ "node": ">= 8" } }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/minizlib/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -12538,9 +12528,9 @@ } }, "node_modules/npm": { - "version": "9.6.3", - "resolved": "https://registry.npmjs.org/npm/-/npm-9.6.3.tgz", - "integrity": "sha512-KMAw6cJF5JGPJz/NtsU8H1sMqb34qPGnSMaSWrVO8bzxOdAXJNAtDXATvLl0lflrImIze1FZCqocM8wdIu3Sfg==", + "version": "9.6.5", + "resolved": "https://registry.npmjs.org/npm/-/npm-9.6.5.tgz", + "integrity": "sha512-0SYs9lz1ND7V3+Lz6EbsnUdZ4OxjQOHbaIKdWd8OgsbZ2hCC2ZeiXMEaBEPEVBaILW+huFA0pJ1YME+52iZI5g==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -12612,8 +12602,8 @@ "dev": true, "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^6.2.6", - "@npmcli/config": "^6.1.5", + "@npmcli/arborist": "^6.2.8", + "@npmcli/config": "^6.1.6", "@npmcli/map-workspaces": "^3.0.3", "@npmcli/package-json": "^3.0.0", "@npmcli/run-script": "^6.0.0", @@ -12627,37 +12617,37 @@ "columnify": "^1.6.0", "fastest-levenshtein": "^1.0.16", "fs-minipass": "^3.0.1", - "glob": "^9.3.1", + "glob": "^9.3.2", "graceful-fs": "^4.2.11", "hosted-git-info": "^6.1.1", - "ini": "^3.0.1", + "ini": "^4.1.0", "init-package-json": "^5.0.0", "is-cidr": "^4.0.2", "json-parse-even-better-errors": "^3.0.0", "libnpmaccess": "^7.0.2", - "libnpmdiff": "^5.0.14", - "libnpmexec": "^5.0.14", - "libnpmfund": "^4.0.14", + "libnpmdiff": "^5.0.16", + "libnpmexec": "^5.0.16", + "libnpmfund": "^4.0.16", "libnpmhook": "^9.0.3", "libnpmorg": "^5.0.3", - "libnpmpack": "^5.0.14", + "libnpmpack": "^5.0.16", "libnpmpublish": "^7.1.3", "libnpmsearch": "^6.0.2", "libnpmteam": "^5.0.3", "libnpmversion": "^4.0.2", - "make-fetch-happen": "^11.0.3", - "minimatch": "^7.4.3", - "minipass": "^4.2.5", + "make-fetch-happen": "^11.1.0", + "minimatch": "^7.4.6", + "minipass": "^4.2.8", "minipass-pipeline": "^1.2.4", "ms": "^2.1.2", "node-gyp": "^9.3.1", "nopt": "^7.1.0", "npm-audit-report": "^4.0.0", - "npm-install-checks": "^6.1.0", + "npm-install-checks": "^6.1.1", "npm-package-arg": "^10.1.0", "npm-pick-manifest": "^8.0.1", "npm-profile": "^7.0.1", - "npm-registry-fetch": "^14.0.3", + "npm-registry-fetch": "^14.0.4", "npm-user-validate": "^2.0.0", "npmlog": "^7.0.1", "p-map": "^4.0.0", @@ -12665,11 +12655,11 @@ "parse-conflict-json": "^3.0.1", "proc-log": "^3.0.0", "qrcode-terminal": "^0.12.0", - "read": "^2.0.0", + "read": "^2.1.0", "read-package-json": "^6.0.1", "read-package-json-fast": "^3.0.2", - "semver": "^7.3.8", - "ssri": "^10.0.1", + "semver": "^7.5.0", + "ssri": "^10.0.3", "tar": "^6.1.13", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", @@ -12792,7 +12782,7 @@ "license": "ISC" }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "6.2.6", + "version": "6.2.8", "dev": true, "inBundle": true, "license": "ISC", @@ -12824,12 +12814,12 @@ "parse-conflict-json": "^3.0.0", "proc-log": "^3.0.0", "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^1.0.1", + "promise-call-limit": "^1.0.2", "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", "ssri": "^10.0.1", "treeverse": "^3.0.0", - "walk-up-path": "^1.0.0" + "walk-up-path": "^3.0.1" }, "bin": { "arborist": "bin/index.js" @@ -12839,18 +12829,18 @@ } }, "node_modules/npm/node_modules/@npmcli/config": { - "version": "6.1.5", + "version": "6.1.6", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/map-workspaces": "^3.0.2", - "ini": "^3.0.0", + "ini": "^4.1.0", "nopt": "^7.0.0", "proc-log": "^3.0.0", "read-package-json-fast": "^3.0.2", "semver": "^7.3.5", - "walk-up-path": "^1.0.0" + "walk-up-path": "^3.0.1" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -12931,7 +12921,7 @@ } }, "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { - "version": "5.0.0", + "version": "5.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -13046,13 +13036,23 @@ "node": ">= 10" } }, + "node_modules/npm/node_modules/@tufjs/canonical-json": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/npm/node_modules/@tufjs/models": { - "version": "1.0.1", + "version": "1.0.3", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "minimatch": "^7.4.2" + "@tufjs/canonical-json": "1.0.0", + "minimatch": "^7.4.6" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -13621,7 +13621,7 @@ } }, "node_modules/npm/node_modules/glob": { - "version": "9.3.1", + "version": "9.3.2", "dev": true, "inBundle": true, "license": "ISC", @@ -13811,12 +13811,12 @@ "license": "ISC" }, "node_modules/npm/node_modules/ini": { - "version": "3.0.1", + "version": "4.1.0", "dev": true, "inBundle": true, "license": "ISC", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/init-package-json": { @@ -13925,7 +13925,7 @@ "license": "MIT" }, "node_modules/npm/node_modules/just-diff": { - "version": "6.0.0", + "version": "6.0.2", "dev": true, "inBundle": true, "license": "MIT" @@ -13950,12 +13950,12 @@ } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "5.0.14", + "version": "5.0.16", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^6.2.6", + "@npmcli/arborist": "^6.2.8", "@npmcli/disparity-colors": "^3.0.0", "@npmcli/installed-package-contents": "^2.0.2", "binary-extensions": "^2.2.0", @@ -13970,12 +13970,12 @@ } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "5.0.14", + "version": "5.0.16", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^6.2.6", + "@npmcli/arborist": "^6.2.8", "@npmcli/run-script": "^6.0.0", "chalk": "^4.1.0", "ci-info": "^3.7.1", @@ -13986,19 +13986,19 @@ "read": "^2.0.0", "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", - "walk-up-path": "^1.0.0" + "walk-up-path": "^3.0.1" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "4.0.14", + "version": "4.0.16", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^6.2.6" + "@npmcli/arborist": "^6.2.8" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -14031,12 +14031,12 @@ } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "5.0.14", + "version": "5.0.16", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^6.2.6", + "@npmcli/arborist": "^6.2.8", "@npmcli/run-script": "^6.0.0", "npm-package-arg": "^10.1.0", "pacote": "^15.0.8" @@ -14115,7 +14115,7 @@ } }, "node_modules/npm/node_modules/make-fetch-happen": { - "version": "11.0.3", + "version": "11.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -14141,7 +14141,7 @@ } }, "node_modules/npm/node_modules/minimatch": { - "version": "7.4.3", + "version": "7.4.6", "dev": true, "inBundle": true, "license": "ISC", @@ -14156,7 +14156,7 @@ } }, "node_modules/npm/node_modules/minipass": { - "version": "4.2.5", + "version": "4.2.8", "dev": true, "inBundle": true, "license": "ISC", @@ -14189,7 +14189,7 @@ } }, "node_modules/npm/node_modules/minipass-fetch": { - "version": "3.0.1", + "version": "3.0.2", "dev": true, "inBundle": true, "license": "MIT", @@ -14764,7 +14764,7 @@ } }, "node_modules/npm/node_modules/npm-install-checks": { - "version": "6.1.0", + "version": "6.1.1", "dev": true, "inBundle": true, "license": "BSD-2-Clause", @@ -14840,7 +14840,7 @@ } }, "node_modules/npm/node_modules/npm-registry-fetch": { - "version": "14.0.3", + "version": "14.0.4", "dev": true, "inBundle": true, "license": "ISC", @@ -14961,7 +14961,7 @@ } }, "node_modules/npm/node_modules/path-scurry": { - "version": "1.6.1", + "version": "1.6.3", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", @@ -14970,7 +14970,7 @@ "minipass": "^4.0.2" }, "engines": { - "node": ">=14" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -15017,7 +15017,7 @@ } }, "node_modules/npm/node_modules/promise-call-limit": { - "version": "1.0.1", + "version": "1.0.2", "dev": true, "inBundle": true, "license": "ISC", @@ -15065,7 +15065,7 @@ } }, "node_modules/npm/node_modules/read": { - "version": "2.0.0", + "version": "2.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -15208,7 +15208,7 @@ "optional": true }, "node_modules/npm/node_modules/semver": { - "version": "7.3.8", + "version": "7.5.0", "dev": true, "inBundle": true, "license": "ISC", @@ -15247,14 +15247,14 @@ "license": "ISC" }, "node_modules/npm/node_modules/sigstore": { - "version": "1.2.0", + "version": "1.3.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { "@sigstore/protobuf-specs": "^0.1.0", "make-fetch-happen": "^11.0.1", - "tuf-js": "^1.0.0" + "tuf-js": "^1.1.3" }, "bin": { "sigstore": "bin/sigstore.js" @@ -15334,7 +15334,7 @@ "license": "CC0-1.0" }, "node_modules/npm/node_modules/ssri": { - "version": "10.0.1", + "version": "10.0.3", "dev": true, "inBundle": true, "license": "ISC", @@ -15455,12 +15455,12 @@ } }, "node_modules/npm/node_modules/tuf-js": { - "version": "1.1.2", + "version": "1.1.4", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@tufjs/models": "1.0.1", + "@tufjs/models": "1.0.3", "make-fetch-happen": "^11.0.1" }, "engines": { @@ -15520,7 +15520,7 @@ } }, "node_modules/npm/node_modules/walk-up-path": { - "version": "1.0.0", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "ISC" @@ -15707,12 +15707,6 @@ "node": ">=0.10.0" } }, - "node_modules/nyc/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, "node_modules/nyc/node_modules/find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", @@ -15730,6 +15724,19 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, + "node_modules/nyc/node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/nyc/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -15750,15 +15757,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/nyc/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/nyc/node_modules/istanbul-lib-instrument": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", @@ -15837,20 +15835,6 @@ "semver": "bin/semver.js" } }, - "node_modules/nyc/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/nyc/node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -16114,15 +16098,16 @@ } }, "node_modules/object.getownpropertydescriptors": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz", - "integrity": "sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz", + "integrity": "sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ==", "dev": true, "dependencies": { "array.prototype.reduce": "^1.0.5", "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.21.2", + "safe-array-concat": "^1.0.0" }, "engines": { "node": ">= 0.8" @@ -16266,6 +16251,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/open-editor/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, "node_modules/open-editor/node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -16290,6 +16284,15 @@ "node": ">=8" } }, + "node_modules/open-editor/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -16572,23 +16575,14 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.0.tgz", - "integrity": "sha512-qFXQEwchrZcMVen2uIDceR8Tii6kCJak5rzDStfEM0qA3YLMswaxIEZO0DhIbJ3aqaJiDjt+3crlplOb0tDtKQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", + "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==", "dev": true, "engines": { "node": "14 || >=16.14" } }, - "node_modules/path-scurry/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -17050,18 +17044,21 @@ "dev": true }, "node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.0.0.tgz", + "integrity": "sha512-Ajb9oSjxXBw0YyOiwtQ2dKbAA/vMnUPnY63XcCk+mXo0BwIdQEMgZLZiMWGttQHcUhUgbK0mH85ethMPKXxziw==", "dev": true, "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^5.0.0", + "parse-json": "^7.0.0", + "type-fest": "^3.8.0" }, "engines": { - "node": ">=8" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/read-pkg-up": { @@ -17081,22 +17078,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg/node_modules/hosted-git-info": { + "node_modules/read-pkg-up/node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, - "node_modules/read-pkg/node_modules/normalize-package-data": { + "node_modules/read-pkg-up/node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", @@ -17108,7 +17096,7 @@ "validate-npm-package-license": "^3.0.1" } }, - "node_modules/read-pkg/node_modules/parse-json": { + "node_modules/read-pkg-up/node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", @@ -17126,7 +17114,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg/node_modules/semver": { + "node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", @@ -17135,15 +17147,100 @@ "semver": "bin/semver" } }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, "engines": { "node": ">=8" } }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", + "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", + "dev": true, + "dependencies": { + "lru-cache": "^7.5.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-pkg/node_modules/json-parse-even-better-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-pkg/node_modules/lines-and-columns": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/read-pkg/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", + "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", + "dev": true, + "dependencies": { + "hosted-git-info": "^6.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-pkg/node_modules/parse-json": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.0.0.tgz", + "integrity": "sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.21.4", + "error-ex": "^1.3.2", + "json-parse-even-better-errors": "^3.0.0", + "lines-and-columns": "^2.0.3", + "type-fest": "^3.8.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.9.0.tgz", + "integrity": "sha512-hR8JP2e8UiH7SME5JZjsobBlEiatFoxpzCP+R3ZeCo7kAaG1jXQE5X/buLzogM6GJu8le9Y4OcfNuIQX0rZskA==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -17248,23 +17345,23 @@ } }, "node_modules/regexp-tree": { - "version": "0.1.24", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", - "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==", + "version": "0.1.25", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.25.tgz", + "integrity": "sha512-szcL3aqw+vEeuxhL1AMYRyeMP+goYF5I/guaH10uJX5xbGyeQeNPPneaj3ZWVmGLCDxrVaaYekkr5R12gk4dJw==", "dev": true, "bin": { "regexp-tree": "bin/regexp-tree" } }, "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -17456,12 +17553,12 @@ } }, "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.11.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -17562,30 +17659,13 @@ "balanced-match": "^1.0.0" } }, - "node_modules/rimraf/node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/rimraf/node_modules/glob": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.1.tgz", - "integrity": "sha512-ngom3wq2UhjdbmRE/krgkD8BQyi1KZ5l+D2dVm4+Yj+jJIBp74/ZGunL6gNGc/CYuQmvUBiavWEXIotRiv5R6A==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.2.tgz", + "integrity": "sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "fs.realpath": "^1.0.0", "jackspeak": "^2.0.3", "minimatch": "^9.0.0", "minipass": "^5.0.0", @@ -17616,27 +17696,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rimraf/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/rimraf/node_modules/signal-exit": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.1.tgz", - "integrity": "sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -17661,12 +17720,30 @@ } }, "node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", + "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", "dev": true, "dependencies": { - "tslib": "^2.1.0" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/safe-buffer": { @@ -17719,16 +17796,16 @@ "dev": true }, "node_modules/semantic-release": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-21.0.1.tgz", - "integrity": "sha512-UhGxTUXHJQCBFgEQRZszLOHDpMduDSHGq3Q+30Bu+g0GbXh/EW508+kuFHezP5m0mN8xINW8hooiR3dzSV5ZLA==", + "version": "21.0.2", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-21.0.2.tgz", + "integrity": "sha512-Hl6lyJdZ0pAYD07Z1FIUmg06UzSC3fEjHS7U31YppNQ8jOwjjt7pVzW9OfpoO0vbmqD3Tc+b/iZh5fqvKt01OA==", "dev": true, "dependencies": { "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/error": "^3.0.0", "@semantic-release/github": "^8.0.0", "@semantic-release/npm": "^10.0.2", - "@semantic-release/release-notes-generator": "^10.0.0", + "@semantic-release/release-notes-generator": "^11.0.0", "aggregate-error": "^4.0.1", "cosmiconfig": "^8.0.0", "debug": "^4.0.0", @@ -17797,24 +17874,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/semantic-release/node_modules/cosmiconfig": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.0.tgz", - "integrity": "sha512-0tLZ9URlPGU7JsKq0DQOQ3FoRsYX8xDZ7xMiATQfaiGMz7EHowNkbU9u1coAOmnh9p/1ySpm0RB3JNWRXM5GCg==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", + "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", "dev": true, "dependencies": { "import-fresh": "^3.2.1", @@ -17829,12 +17892,6 @@ "url": "https://github.com/sponsors/d-fischer" } }, - "node_modules/semantic-release/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, "node_modules/semantic-release/node_modules/escape-string-regexp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", @@ -17848,9 +17905,9 @@ } }, "node_modules/semantic-release/node_modules/execa": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.0.tgz", - "integrity": "sha512-T6nIJO3LHxUZ6ahVRaxXz9WLEruXLqdcluA+UuTptXmLM7nDAn9lx9IfkxPyzEL21583qSt4RmL44pO71EHaJQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", + "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", @@ -17910,15 +17967,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/semantic-release/node_modules/human-signals": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.0.tgz", - "integrity": "sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ==", - "dev": true, - "engines": { - "node": ">=14.18.0" - } - }, "node_modules/semantic-release/node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -17956,15 +18004,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/semantic-release/node_modules/is-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", @@ -18014,9 +18053,9 @@ } }, "node_modules/semantic-release/node_modules/marked": { - "version": "4.2.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.12.tgz", - "integrity": "sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", "dev": true, "bin": { "marked": "bin/marked.js" @@ -18184,32 +18223,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/semantic-release/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/semantic-release/node_modules/type-fest": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", @@ -18223,9 +18236,9 @@ } }, "node_modules/semantic-release/node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { "cliui": "^8.0.1", @@ -18810,6 +18823,19 @@ "node": ">=8" } }, + "node_modules/spawn-wrap/node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/spawn-wrap/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -18974,6 +19000,24 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/ssri/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ssri/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", @@ -19177,47 +19221,32 @@ "dev": true }, "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "node_modules/string-width/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=8" } }, "node_modules/string.prototype.matchall": { @@ -19315,12 +19344,15 @@ } }, "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/strip-indent": { @@ -19429,9 +19461,9 @@ } }, "node_modules/tar/node_modules/minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", "dev": true, "engines": { "node": ">=8" @@ -19559,9 +19591,9 @@ } }, "node_modules/tlds": { - "version": "1.237.0", - "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.237.0.tgz", - "integrity": "sha512-4IA6zR7jQop4pEdziQaptOgkIwnnZ537fXM3MKAzOXjXLjiHm77SA3/E0nXWJGSVRnKcn/JxDJmwTqyPgQ+ozg==", + "version": "1.238.0", + "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.238.0.tgz", + "integrity": "sha512-lFPF9pZFhLrPodaJ0wt9QIN0l8jOxqmUezGZnm7BfkDSVd9q667oVIJukLVzhF+4oW7uDlrLlfJrL5yu9RWwew==", "dev": true, "bin": { "tlds": "bin.js" @@ -20063,9 +20095,9 @@ "dev": true }, "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, "funding": [ { @@ -20075,6 +20107,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { @@ -20082,7 +20118,7 @@ "picocolors": "^1.0.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -20141,13 +20177,10 @@ "dev": true }, "node_modules/urlpattern-polyfill": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-6.0.2.tgz", - "integrity": "sha512-5vZjFlH9ofROmuWmXM9yj2wljYKgWstGwe8YTyiqM7hVum/g9LyCizPZtb3UqsuppVwety9QJmfc42VggLpTgg==", - "dev": true, - "dependencies": { - "braces": "^3.0.2" - } + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz", + "integrity": "sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==", + "dev": true }, "node_modules/use": { "version": "3.1.1", @@ -20228,12 +20261,12 @@ } }, "node_modules/webcrypto-core": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.6.tgz", - "integrity": "sha512-TBPiewB4Buw+HI3EQW+Bexm19/W4cP/qZG/02QJCXN+iN+T5sl074vZ3rJcle/ZtDBQSgjkbsQO/1eFcxnSBUA==", + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.7.tgz", + "integrity": "sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g==", "dev": true, "dependencies": { - "@peculiar/asn1-schema": "^2.1.6", + "@peculiar/asn1-schema": "^2.3.6", "@peculiar/json-schema": "^1.1.12", "asn1js": "^3.0.1", "pvtsutils": "^1.3.2", @@ -20312,9 +20345,9 @@ } }, "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", "dev": true }, "node_modules/which-typed-array": { @@ -20346,35 +20379,6 @@ "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "node_modules/wide-align/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/wide-align/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/wide-align/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -20446,35 +20450,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -20577,12 +20552,15 @@ } }, "node_modules/yaml-eslint-parser/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/yaml-eslint-parser/node_modules/yaml": { @@ -20657,33 +20635,15 @@ "node": ">=8" } }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/yargs/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, "node_modules/yocto-queue": { diff --git a/package.json b/package.json index 11165f9ac..a6f8a865e 100644 --- a/package.json +++ b/package.json @@ -16,39 +16,39 @@ }, "description": "JSDoc linting rules for ESLint.", "devDependencies": { - "@babel/cli": "^7.21.0", - "@babel/core": "^7.21.4", + "@babel/cli": "^7.21.5", + "@babel/core": "^7.21.5", "@babel/eslint-parser": "^7.21.3", "@babel/node": "^7.20.7", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-transform-flow-strip-types": "^7.21.0", - "@babel/preset-env": "^7.21.4", + "@babel/preset-env": "^7.21.5", "@babel/register": "^7.21.0", "@es-joy/jsdoc-eslint-parser": "^0.17.0", "@hkdobrev/run-if-changed": "^0.3.1", "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/github": "^8.0.7", "@semantic-release/npm": "^10.0.3", - "@typescript-eslint/parser": "^5.59.0", + "@typescript-eslint/parser": "^5.59.1", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", "chai": "^4.3.7", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "^8.38.0", "eslint-config-canonical": "~33.0.1", + "eslint": "^8.39.0", "gitdown": "^3.1.5", "glob": "^8.1.0", "husky": "^8.0.3", "jsdoc-type-pratt-parser": "^4.0.0", - "lint-staged": "^13.2.1", + "lint-staged": "^13.2.2", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.2.0", "nyc": "^15.1.0", "open-editor": "^3.0.0", "rimraf": "^5.0.0", - "semantic-release": "^21.0.1", + "semantic-release": "^21.0.2", "typescript": "^5.0.4" }, "engines": { From ec278a292ed343ac875359d66acc4dd81301ec23 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 29 Apr 2023 07:40:25 -0700 Subject: [PATCH 061/273] chore: update glob devDep. --- package-lock.json | 120 ++++++++++++++++++++-------------------- package.json | 2 +- src/bin/generateDocs.js | 12 ++-- 3 files changed, 68 insertions(+), 66 deletions(-) diff --git a/package-lock.json b/package-lock.json index 124fd5119..46f9ad585 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,7 +42,7 @@ "eslint": "^8.39.0", "eslint-config-canonical": "~33.0.1", "gitdown": "^3.1.5", - "glob": "^8.1.0", + "glob": "^10.2.2", "husky": "^8.0.3", "jsdoc-type-pratt-parser": "^4.0.0", "lint-staged": "^13.2.2", @@ -4601,6 +4601,34 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/cacache/node_modules/lru-cache": { "version": "7.18.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", @@ -4610,6 +4638,18 @@ "node": ">=12" } }, + "node_modules/cacache/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/cacache/node_modules/minipass": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", @@ -8737,19 +8777,22 @@ } }, "node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.2.tgz", + "integrity": "sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.7.0" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -8777,15 +8820,18 @@ } }, "node_modules/glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/globals": { @@ -17650,52 +17696,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.2.tgz", - "integrity": "sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.0", - "minipass": "^5.0.0", - "path-scurry": "^1.7.0" - }, - "bin": { - "glob": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", - "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", diff --git a/package.json b/package.json index a6f8a865e..530b0b44c 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "eslint-config-canonical": "~33.0.1", "eslint": "^8.39.0", "gitdown": "^3.1.5", - "glob": "^8.1.0", + "glob": "^10.2.2", "husky": "^8.0.3", "jsdoc-type-pratt-parser": "^4.0.0", "lint-staged": "^13.2.2", diff --git a/src/bin/generateDocs.js b/src/bin/generateDocs.js index 6cbf00295..7c009bf12 100644 --- a/src/bin/generateDocs.js +++ b/src/bin/generateDocs.js @@ -5,7 +5,9 @@ import fs from 'fs'; import path from 'path'; import decamelize from 'decamelize'; import Gitdown from 'gitdown'; -import glob from 'glob'; +import { + glob, +} from 'glob'; const trimCode = (code) => { let lines = code.replace(/^\n/u, '').trimEnd().split('\n'); @@ -47,10 +49,10 @@ const formatCodeSnippet = (setup, ruleName) => { return paragraphs.join('\n'); }; -const getAssertions = () => { - const assertionFiles = glob.sync(path.resolve(__dirname, '../../test/rules/assertions/*.js')).filter((file) => { +const getAssertions = async () => { + const assertionFiles = (await glob(path.resolve(__dirname, '../../test/rules/assertions/*.js'))).filter((file) => { return !file.includes('flatConfig'); - }); + }).reverse(); const assertionNames = assertionFiles.map((filePath) => { return path.basename(filePath, '.js'); @@ -116,7 +118,7 @@ const generateDocs = async () => { const { assertions, assertionNames, - } = getAssertions(); + } = await getAssertions(); const docContents = await Promise.all([ ...assertionNames.map((assertionName) => { From 3ae412e33ae168d2338f138c1ed7518261a37a37 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 4 May 2023 08:03:08 -0700 Subject: [PATCH 062/273] chore: switch to pnpm for development --- CONTRIBUTING.md | 24 +- package-lock.json | 20662 -------------------------------------------- package.json | 2 +- pnpm-lock.yaml | 9588 ++++++++++++++++++++ 4 files changed, 9603 insertions(+), 20673 deletions(-) delete mode 100644 package-lock.json create mode 100644 pnpm-lock.yaml diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3c8b6e009..28649cbfd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,34 +1,38 @@ # CONTRIBUTING to eslint-plugin-jsdoc +## Installing `pnpm` + +Development is conducted using `pnpm`. Install via `npm i -g pnpm`. + ## Testing changes locally You might try a TDD approach and add tests within the `test` directory, to try different configs you may find it easier to try out changes in a separate local directory. -You can run [`npm link`](https://docs.npmjs.com/cli/link) for this purpose, +You can run [`pnpm link`](https://docs.npmjs.com/cli/link) for this purpose, pointing from your project to this project. For example, while in your project root and with `eslint-plugin-jsdoc` as a sibling, run: ```shell -npm link ../eslint-plugin-jsdoc +pnpm link ../eslint-plugin-jsdoc ``` ## Building the project -After running `npm install` to get the latest dependencies and devDependencies, +After running `pnpm install` to get the latest dependencies and devDependencies, you can run the following command to update the `dist` files, with `dist/index.js` being the `main` entry point from `package.json`: ```shell -npm run build +pnpm build ``` ## Coding standards The project follows ESLint rules from [`canonical`](https://www.npmjs.com/package/eslint-config-canonical) and testing follows its subconfig, `canonical/mocha`. You can run -`npm run lint` to check the linting if your IDE is not already indicating +`pnpm lint` to check the linting if your IDE is not already indicating items needing fixing. ## Documentation building @@ -38,7 +42,7 @@ modify files within the `.README` directory. `.README/README.md` contains the main README skeleton and details on the project, its global `settings`, etc., while the documentation for specific rules (that will be pulled into the README) ought to be modified within the relevant file within `.README/rules`. -Once these files are modified, you can run `npm run create-readme` to have +Once these files are modified, you can run `pnpm create-readme` to have these files integrated into the main `/README.md`. While you should include the built file in your PR, you will not want to make manual changes directly to this file, as they will be overwritten. @@ -57,14 +61,14 @@ See ESLint's [RuleTester](https://eslint.org/docs/developer-guide/nodejs-api#rul for more on the allowable properties (e.g., `code`, `errors` (for invalid rules), `options`, `settings`, etc.). -Note that besides `npm test` there is `npm run test-cov`, which shows more +Note that besides `pnpm test` there is `pnpm test-cov`, which shows more detailed coverage information. Coverage should be maintained at 100%, and if there are a few guards in place for future use, the code block in question can be ignored by being preceded by `/* istanbul ignore next */` (including for warnings where the block is never passed over (i.e., the block is always entered)). If you want to test without coverage at all, you can use -`npm run test-no-cov`. To only test rules rather than other files, you -can use `npm run test-index`. +`pnpm test-no-cov`. To only test rules rather than other files, you +can use `npm run test-index` (`pnpm` doesn't work with this script currently). To test specific rules, you can supply a comma-separated list with the `--rule` flag passed to `test-index`, e.g., for `check-examples` and `require-example`: @@ -77,7 +81,7 @@ accepts negative offsets from the end, e.g., `-1` for the last item). For example, to check the first and third invalid tests of `check-examples` along with the second valid test, you can run: -`npm run --rule=check-examples --invalid=0,2 --valid=1 test-index`. +`npm run test-index --rule=require-example --invalid=0,2 --valid=1`. ## Requirements for PRs diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 46f9ad585..000000000 --- a/package-lock.json +++ /dev/null @@ -1,20662 +0,0 @@ -{ - "name": "eslint-plugin-jsdoc", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "eslint-plugin-jsdoc", - "version": "1.0.0", - "license": "BSD-3-Clause", - "dependencies": { - "@es-joy/jsdoccomment": "~0.37.1", - "are-docs-informative": "^0.0.2", - "comment-parser": "1.3.1", - "debug": "^4.3.4", - "escape-string-regexp": "^4.0.0", - "esquery": "^1.5.0", - "semver": "^7.5.0", - "spdx-expression-parse": "^3.0.1" - }, - "devDependencies": { - "@babel/cli": "^7.21.5", - "@babel/core": "^7.21.5", - "@babel/eslint-parser": "^7.21.3", - "@babel/node": "^7.20.7", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-transform-flow-strip-types": "^7.21.0", - "@babel/preset-env": "^7.21.5", - "@babel/register": "^7.21.0", - "@es-joy/jsdoc-eslint-parser": "^0.17.0", - "@hkdobrev/run-if-changed": "^0.3.1", - "@semantic-release/commit-analyzer": "^9.0.2", - "@semantic-release/github": "^8.0.7", - "@semantic-release/npm": "^10.0.3", - "@typescript-eslint/parser": "^5.59.1", - "babel-plugin-add-module-exports": "^1.0.4", - "babel-plugin-istanbul": "^6.1.1", - "camelcase": "^6.3.0", - "chai": "^4.3.7", - "cross-env": "^7.0.3", - "decamelize": "^5.0.1", - "eslint": "^8.39.0", - "eslint-config-canonical": "~33.0.1", - "gitdown": "^3.1.5", - "glob": "^10.2.2", - "husky": "^8.0.3", - "jsdoc-type-pratt-parser": "^4.0.0", - "lint-staged": "^13.2.2", - "lodash.defaultsdeep": "^4.6.1", - "mocha": "^10.2.0", - "nyc": "^15.1.0", - "open-editor": "^3.0.0", - "rimraf": "^5.0.0", - "semantic-release": "^21.0.2", - "typescript": "^5.0.4" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@ardatan/sync-fetch": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz", - "integrity": "sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==", - "dev": true, - "dependencies": { - "node-fetch": "^2.6.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@babel/cli": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.21.5.tgz", - "integrity": "sha512-TOKytQ9uQW9c4np8F+P7ZfPINy5Kv+pizDIUwSVH8X5zHgYHV4AA8HE5LA450xXeu4jEfmUckTYvv1I4S26M/g==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "commander": "^4.0.1", - "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.2.0", - "make-dir": "^2.1.0", - "slash": "^2.0.0" - }, - "bin": { - "babel": "bin/babel.js", - "babel-external-helpers": "bin/babel-external-helpers.js" - }, - "engines": { - "node": ">=6.9.0" - }, - "optionalDependencies": { - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", - "chokidar": "^3.4.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/cli/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.21.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", - "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.5.tgz", - "integrity": "sha512-9M398B/QH5DlfCOTKDZT1ozXr0x8uBEeFd+dJraGUZGiaNpGCDVGCc14hZexsMblw3XxltJ+6kSvogp9J+5a9g==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", - "@babel/helper-compilation-targets": "^7.21.5", - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helpers": "^7.21.5", - "@babel/parser": "^7.21.5", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/eslint-parser": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz", - "integrity": "sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg==", - "dev": true, - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.11.0", - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/@babel/eslint-parser/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/eslint-plugin": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/eslint-plugin/-/eslint-plugin-7.19.1.tgz", - "integrity": "sha512-ElGPkQPapKMa3zVqXHkZYzuL7I5LbRw9UWBUArgWsdWDDb9XcACqOpBib5tRPA9XvbVZYrFUkoQPbiJ4BFvu4w==", - "dev": true, - "dependencies": { - "eslint-rule-composer": "^0.3.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/eslint-parser": ">=7.11.0", - "eslint": ">=7.5.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", - "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.21.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz", - "integrity": "sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", - "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.5.tgz", - "integrity": "sha512-yNSEck9SuDvPTEUYm4BSXl6ZVC7yO5ZLEMAhG3v3zi7RDxyL/nQDemWWZmw4L0stPWwhpnznRRyJHPRcbXR2jw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.5", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.21.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.5.tgz", - "integrity": "sha512-1+DPMcln46eNAta/rPIqQYXYRGvQ/LRy6bRKnSt9Dzt/yLjNUbbsh+6yzD6fUHmtzc9kWvVnAhtcMSMyziHmUA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.3.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", - "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz", - "integrity": "sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", - "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.21.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", - "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-simple-access": "^7.21.5", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz", - "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz", - "integrity": "sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-member-expression-to-functions": "^7.21.5", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", - "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", - "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz", - "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==", - "dev": true, - "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/node": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.20.7.tgz", - "integrity": "sha512-AQt3gVcP+fpFuoFn4FmIW/+5JovvEoA9og4Y1LrRw0pv3jkl4tujZMMy3X/3ugjLrEy3k1aNywo3JIl3g+jVXQ==", - "dev": true, - "dependencies": { - "@babel/register": "^7.18.9", - "commander": "^4.0.1", - "core-js": "^3.26.0", - "node-environment-flags": "^1.0.5", - "regenerator-runtime": "^0.13.11", - "v8flags": "^3.1.1" - }, - "bin": { - "babel-node": "bin/babel-node.js" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/parser": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.5.tgz", - "integrity": "sha512-J+IxH2IsxV4HbnTrSWgMAQj0UEo61hDA4Ny8h8PCX0MLXiibqHbqIOVneqdocemSBc22VpBKxt4J6FQzy9HarQ==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", - "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", - "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-flow": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.21.4.tgz", - "integrity": "sha512-l9xd3N+XG4fZRxEP3vXdK6RW7vN1Uf5dxzRC/09wV86wqZ/YYQooBIGNsiRdfNR3/q2/5pPzV4B54J/9ctX5jw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", - "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz", - "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", - "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", - "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", - "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz", - "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/template": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", - "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz", - "integrity": "sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-flow": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz", - "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", - "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz", - "integrity": "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-simple-access": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", - "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.5.tgz", - "integrity": "sha512-ELdlq61FpoEkHO6gFRpfj0kUgSwQTGoaEU8eMRoS8Dv3v6e7BjEAj5WMtIBRdHUeAioMhKP5HyxNzNnP+heKbA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/plugin-syntax-jsx": "^7.21.4", - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz", - "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", - "regenerator-transform": "^0.15.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", - "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz", - "integrity": "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.5.tgz", - "integrity": "sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.21.5", - "@babel/helper-compilation-targets": "^7.21.5", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", - "@babel/plugin-proposal-async-generator-functions": "^7.20.7", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.21.0", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.21.0", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.21.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.21.5", - "@babel/plugin-transform-async-to-generator": "^7.20.7", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.21.0", - "@babel/plugin-transform-classes": "^7.21.0", - "@babel/plugin-transform-computed-properties": "^7.21.5", - "@babel/plugin-transform-destructuring": "^7.21.3", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.21.5", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.20.11", - "@babel/plugin-transform-modules-commonjs": "^7.21.5", - "@babel/plugin-transform-modules-systemjs": "^7.20.11", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.21.3", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.21.5", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.20.7", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.21.5", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.21.5", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/register": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.21.0.tgz", - "integrity": "sha512-9nKsPmYDi5DidAqJaQooxIhsLJiNMkGr8ypQ8Uic7cIox7UCDsM7HuUGxdGT7mSDTYbqzIdsOWzfBton/YJrMw==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "find-cache-dir": "^2.0.0", - "make-dir": "^2.1.0", - "pirates": "^4.0.5", - "source-map-support": "^0.5.16" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "node_modules/@babel/runtime": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", - "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.11" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", - "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.5", - "@babel/types": "^7.21.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", - "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.21.5", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@es-joy/jsdoc-eslint-parser": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoc-eslint-parser/-/jsdoc-eslint-parser-0.17.0.tgz", - "integrity": "sha512-QYmORkVbSmejgrI7zFCJmsZJPiO+yhQoIILLjMrC99XPQfqBO+2GidtWEcP8cDSFWbUDbJeCgXNoRvMq00hI5Q==", - "dev": true, - "dependencies": { - "@babel/core": "^7.17.12", - "@babel/eslint-parser": "^7.17.0", - "@es-joy/jsdoccomment": "0.30.0", - "@typescript-eslint/parser": "^5.25.0", - "eslint": "^8.15.0", - "esquery": "^1.4.0", - "typescript": "^4.6.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@es-joy/jsdoc-eslint-parser/node_modules/@es-joy/jsdoccomment": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.30.0.tgz", - "integrity": "sha512-U30cjaHCjdUqtbMgChJl80BP25GSRWg0/1R3UdB2ksitAo2oDYdRMrvzwuM21jcsFbEcLNAqwQGTCg+5CVbSIA==", - "dev": true, - "dependencies": { - "comment-parser": "1.3.1", - "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "~3.1.0" - }, - "engines": { - "node": "^14 || ^16 || ^17 || ^18" - } - }, - "node_modules/@es-joy/jsdoc-eslint-parser/node_modules/jsdoc-type-pratt-parser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", - "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==", - "dev": true, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@es-joy/jsdoc-eslint-parser/node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/@es-joy/jsdoccomment": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.37.1.tgz", - "integrity": "sha512-5vxWJ1gEkEF0yRd0O+uK6dHJf7adrxwQSX8PuRiPfFSAbNLnY0ZJfXaZucoz14Jj2N11xn2DnlEPwWRpYpvRjg==", - "dependencies": { - "comment-parser": "1.3.1", - "esquery": "^1.5.0", - "jsdoc-type-pratt-parser": "~4.0.0" - }, - "engines": { - "node": "^14 || ^16 || ^17 || ^18 || ^19 || ^20" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", - "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.1", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@eslint/eslintrc/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", - "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, - "node_modules/@graphql-eslint/eslint-plugin": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@graphql-eslint/eslint-plugin/-/eslint-plugin-3.18.0.tgz", - "integrity": "sha512-riEEfRycc0+pWxcEWqHi8woRxzg1xZqAfh9DRACJUR7bTN8dmc1N04i7+pvW4sevClUFYC2wuL1Vtr+DwzXLUg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@graphql-tools/code-file-loader": "^7.3.6", - "@graphql-tools/graphql-tag-pluck": "^7.3.6", - "@graphql-tools/utils": "^9.0.0", - "chalk": "^4.1.2", - "debug": "^4.3.4", - "fast-glob": "^3.2.12", - "graphql-config": "^4.4.0", - "graphql-depth-limit": "^1.1.0", - "lodash.lowercase": "^4.3.0", - "tslib": "^2.4.1" - }, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@graphql-eslint/eslint-plugin/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@graphql-eslint/eslint-plugin/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@graphql-eslint/eslint-plugin/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@graphql-eslint/eslint-plugin/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@graphql-eslint/eslint-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@graphql-eslint/eslint-plugin/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@graphql-tools/batch-execute": { - "version": "8.5.22", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.22.tgz", - "integrity": "sha512-hcV1JaY6NJQFQEwCKrYhpfLK8frSXDbtNMoTur98u10Cmecy1zrqNKSqhEyGetpgHxaJRqszGzKeI3RuroDN6A==", - "dev": true, - "dependencies": { - "@graphql-tools/utils": "^9.2.1", - "dataloader": "^2.2.2", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/code-file-loader": { - "version": "7.3.23", - "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.3.23.tgz", - "integrity": "sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q==", - "dev": true, - "dependencies": { - "@graphql-tools/graphql-tag-pluck": "7.5.2", - "@graphql-tools/utils": "^9.2.1", - "globby": "^11.0.3", - "tslib": "^2.4.0", - "unixify": "^1.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/delegate": { - "version": "9.0.35", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-9.0.35.tgz", - "integrity": "sha512-jwPu8NJbzRRMqi4Vp/5QX1vIUeUPpWmlQpOkXQD2r1X45YsVceyUUBnktCrlJlDB4jPRVy7JQGwmYo3KFiOBMA==", - "dev": true, - "dependencies": { - "@graphql-tools/batch-execute": "^8.5.22", - "@graphql-tools/executor": "^0.0.20", - "@graphql-tools/schema": "^9.0.19", - "@graphql-tools/utils": "^9.2.1", - "dataloader": "^2.2.2", - "tslib": "^2.5.0", - "value-or-promise": "^1.0.12" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/executor": { - "version": "0.0.20", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-0.0.20.tgz", - "integrity": "sha512-GdvNc4vszmfeGvUqlcaH1FjBoguvMYzxAfT6tDd4/LgwymepHhinqLNA5otqwVLW+JETcDaK7xGENzFomuE6TA==", - "dev": true, - "dependencies": { - "@graphql-tools/utils": "^9.2.1", - "@graphql-typed-document-node/core": "3.2.0", - "@repeaterjs/repeater": "^3.0.4", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/executor-graphql-ws": { - "version": "0.0.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.14.tgz", - "integrity": "sha512-P2nlkAsPZKLIXImFhj0YTtny5NQVGSsKnhi7PzXiaHSXc6KkzqbWZHKvikD4PObanqg+7IO58rKFpGXP7eeO+w==", - "dev": true, - "dependencies": { - "@graphql-tools/utils": "^9.2.1", - "@repeaterjs/repeater": "3.0.4", - "@types/ws": "^8.0.0", - "graphql-ws": "5.12.1", - "isomorphic-ws": "5.0.0", - "tslib": "^2.4.0", - "ws": "8.13.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/executor-http": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-0.1.9.tgz", - "integrity": "sha512-tNzMt5qc1ptlHKfpSv9wVBVKCZ7gks6Yb/JcYJluxZIT4qRV+TtOFjpptfBU63usgrGVOVcGjzWc/mt7KhmmpQ==", - "dev": true, - "dependencies": { - "@graphql-tools/utils": "^9.2.1", - "@repeaterjs/repeater": "^3.0.4", - "@whatwg-node/fetch": "^0.8.1", - "dset": "^3.1.2", - "extract-files": "^11.0.0", - "meros": "^1.2.1", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/executor-legacy-ws": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.11.tgz", - "integrity": "sha512-4ai+NnxlNfvIQ4c70hWFvOZlSUN8lt7yc+ZsrwtNFbFPH/EroIzFMapAxM9zwyv9bH38AdO3TQxZ5zNxgBdvUw==", - "dev": true, - "dependencies": { - "@graphql-tools/utils": "^9.2.1", - "@types/ws": "^8.0.0", - "isomorphic-ws": "5.0.0", - "tslib": "^2.4.0", - "ws": "8.13.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/graphql-file-loader": { - "version": "7.5.17", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.17.tgz", - "integrity": "sha512-hVwwxPf41zOYgm4gdaZILCYnKB9Zap7Ys9OhY1hbwuAuC4MMNY9GpUjoTU3CQc3zUiPoYStyRtUGkHSJZ3HxBw==", - "dev": true, - "dependencies": { - "@graphql-tools/import": "6.7.18", - "@graphql-tools/utils": "^9.2.1", - "globby": "^11.0.3", - "tslib": "^2.4.0", - "unixify": "^1.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/graphql-tag-pluck": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.5.2.tgz", - "integrity": "sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.16.8", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8", - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/import": { - "version": "6.7.18", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.7.18.tgz", - "integrity": "sha512-XQDdyZTp+FYmT7as3xRWH/x8dx0QZA2WZqfMF5EWb36a0PiH7WwlRQYIdyYXj8YCLpiWkeBXgBRHmMnwEYR8iQ==", - "dev": true, - "dependencies": { - "@graphql-tools/utils": "^9.2.1", - "resolve-from": "5.0.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/json-file-loader": { - "version": "7.4.18", - "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-7.4.18.tgz", - "integrity": "sha512-AJ1b6Y1wiVgkwsxT5dELXhIVUPs/u3VZ8/0/oOtpcoyO/vAeM5rOvvWegzicOOnQw8G45fgBRMkkRfeuwVt6+w==", - "dev": true, - "dependencies": { - "@graphql-tools/utils": "^9.2.1", - "globby": "^11.0.3", - "tslib": "^2.4.0", - "unixify": "^1.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/load": { - "version": "7.8.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.8.14.tgz", - "integrity": "sha512-ASQvP+snHMYm+FhIaLxxFgVdRaM0vrN9wW2BKInQpktwWTXVyk+yP5nQUCEGmn0RTdlPKrffBaigxepkEAJPrg==", - "dev": true, - "dependencies": { - "@graphql-tools/schema": "^9.0.18", - "@graphql-tools/utils": "^9.2.1", - "p-limit": "3.1.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/merge": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.1.tgz", - "integrity": "sha512-hssnPpZ818mxgl5+GfyOOSnnflAxiaTn1A1AojZcIbh4J52sS1Q0gSuBR5VrnUDjuxiqoCotpXdAQl+K+U6KLQ==", - "dev": true, - "dependencies": { - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/schema": { - "version": "9.0.19", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz", - "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", - "dev": true, - "dependencies": { - "@graphql-tools/merge": "^8.4.1", - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/url-loader": { - "version": "7.17.18", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.17.18.tgz", - "integrity": "sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==", - "dev": true, - "dependencies": { - "@ardatan/sync-fetch": "^0.0.1", - "@graphql-tools/delegate": "^9.0.31", - "@graphql-tools/executor-graphql-ws": "^0.0.14", - "@graphql-tools/executor-http": "^0.1.7", - "@graphql-tools/executor-legacy-ws": "^0.0.11", - "@graphql-tools/utils": "^9.2.1", - "@graphql-tools/wrap": "^9.4.2", - "@types/ws": "^8.0.0", - "@whatwg-node/fetch": "^0.8.0", - "isomorphic-ws": "^5.0.0", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.11", - "ws": "^8.12.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/utils": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", - "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", - "dev": true, - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/wrap": { - "version": "9.4.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-9.4.2.tgz", - "integrity": "sha512-DFcd9r51lmcEKn0JW43CWkkI2D6T9XI1juW/Yo86i04v43O9w2/k4/nx2XTJv4Yv+iXwUw7Ok81PGltwGJSDSA==", - "dev": true, - "dependencies": { - "@graphql-tools/delegate": "^9.0.31", - "@graphql-tools/schema": "^9.0.18", - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "dev": true, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@hkdobrev/run-if-changed": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@hkdobrev/run-if-changed/-/run-if-changed-0.3.1.tgz", - "integrity": "sha512-kxu18zdSoTwYpTuwIw4Zsc/cWa+1c/HayXA290TSD97WKBzodntiqm6pPCoXhGDZu2F6/yg5VChJNSjrfMiTSA==", - "dev": true, - "dependencies": { - "cosmiconfig": "^5.0.7", - "execa": "^1.0.0", - "micromatch": "^3.1.10", - "npm-which": "^3.0.1", - "string-argv": "^0.1.1" - }, - "bin": { - "run-if-changed": "run-if-changed.js" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@next/eslint-plugin-next": { - "version": "12.3.4", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.3.4.tgz", - "integrity": "sha512-BFwj8ykJY+zc1/jWANsDprDIu2MgwPOIKxNVnrKvPs+f5TPegrVnem8uScND+1veT4B7F6VeqgaNLFW1Hzl9Og==", - "dev": true, - "dependencies": { - "glob": "7.1.7" - } - }, - "node_modules/@next/eslint-plugin-next/node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@nicolo-ribaudo/chokidar-2": { - "version": "2.1.8-no-fsevents.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", - "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", - "dev": true, - "optional": true - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "dev": true, - "dependencies": { - "eslint-scope": "5.1.1" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "dev": true, - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/move-file/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@npmcli/move-file/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@octokit/auth-token": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.3.tgz", - "integrity": "sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==", - "dev": true, - "dependencies": { - "@octokit/types": "^9.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/core": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.0.tgz", - "integrity": "sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg==", - "dev": true, - "dependencies": { - "@octokit/auth-token": "^3.0.0", - "@octokit/graphql": "^5.0.0", - "@octokit/request": "^6.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^9.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/endpoint": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.5.tgz", - "integrity": "sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==", - "dev": true, - "dependencies": { - "@octokit/types": "^9.0.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/graphql": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.5.tgz", - "integrity": "sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==", - "dev": true, - "dependencies": { - "@octokit/request": "^6.0.0", - "@octokit/types": "^9.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/openapi-types": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-17.1.0.tgz", - "integrity": "sha512-rnI26BAITDZTo5vqFOmA7oX4xRd18rO+gcK4MiTpJmsRMxAw0JmevNjPsjpry1bb9SVNo56P/0kbiyXXa4QluA==", - "dev": true - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.0.0.tgz", - "integrity": "sha512-Sq5VU1PfT6/JyuXPyt04KZNVsFOSBaYOAq2QRZUwzVlI10KFvcbUo8lR258AAQL1Et60b0WuVik+zOWKLuDZxw==", - "dev": true, - "dependencies": { - "@octokit/types": "^9.0.0" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "@octokit/core": ">=4" - } - }, - "node_modules/@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "dev": true, - "peerDependencies": { - "@octokit/core": ">=3" - } - }, - "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.0.1.tgz", - "integrity": "sha512-pnCaLwZBudK5xCdrR823xHGNgqOzRnJ/mpC/76YPpNP7DybdsJtP7mdOwh+wYZxK5jqeQuhu59ogMI4NRlBUvA==", - "dev": true, - "dependencies": { - "@octokit/types": "^9.0.0", - "deprecation": "^2.3.1" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "@octokit/core": ">=3" - } - }, - "node_modules/@octokit/request": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.3.tgz", - "integrity": "sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==", - "dev": true, - "dependencies": { - "@octokit/endpoint": "^7.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^9.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/request-error": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", - "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", - "dev": true, - "dependencies": { - "@octokit/types": "^9.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/rest": { - "version": "19.0.7", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.7.tgz", - "integrity": "sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA==", - "dev": true, - "dependencies": { - "@octokit/core": "^4.1.0", - "@octokit/plugin-paginate-rest": "^6.0.0", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^7.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/types": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.2.0.tgz", - "integrity": "sha512-xySzJG4noWrIBFyMu4lg4tu9vAgNg9S0aoLRONhAEz6ueyi1evBzb40HitIosaYS4XOexphG305IVcLrIX/30g==", - "dev": true, - "dependencies": { - "@octokit/openapi-types": "^17.1.0" - } - }, - "node_modules/@peculiar/asn1-schema": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz", - "integrity": "sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA==", - "dev": true, - "dependencies": { - "asn1js": "^3.0.5", - "pvtsutils": "^1.3.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@peculiar/json-schema": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", - "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", - "dev": true, - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@peculiar/webcrypto": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.3.tgz", - "integrity": "sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A==", - "dev": true, - "dependencies": { - "@peculiar/asn1-schema": "^2.3.6", - "@peculiar/json-schema": "^1.1.12", - "pvtsutils": "^1.3.2", - "tslib": "^2.5.0", - "webcrypto-core": "^1.7.7" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@pnpm/config.env-replace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", - "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", - "dev": true, - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", - "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", - "dev": true, - "dependencies": { - "graceful-fs": "4.2.10" - }, - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "node_modules/@pnpm/npm-conf": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.1.1.tgz", - "integrity": "sha512-yfRcuupmxxeDOSxvw4g+wFCrGiPD0L32f5WMzqMXp7Rl93EOCdFiDcaSNnZ10Up9GdNqkj70UTa8hfhPFphaZA==", - "dev": true, - "dependencies": { - "@pnpm/config.env-replace": "^1.1.0", - "@pnpm/network.ca-file": "^1.0.1", - "config-chain": "^1.1.11" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@repeaterjs/repeater": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.4.tgz", - "integrity": "sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==", - "dev": true - }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz", - "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==", - "dev": true - }, - "node_modules/@semantic-release/commit-analyzer": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-9.0.2.tgz", - "integrity": "sha512-E+dr6L+xIHZkX4zNMe6Rnwg4YQrWNXK+rNsvwOPpdFppvZO1olE2fIgWhv89TkQErygevbjsZFSIxp+u6w2e5g==", - "dev": true, - "dependencies": { - "conventional-changelog-angular": "^5.0.0", - "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.2.3", - "debug": "^4.0.0", - "import-from": "^4.0.0", - "lodash": "^4.17.4", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=14.17" - }, - "peerDependencies": { - "semantic-release": ">=18.0.0-beta.1" - } - }, - "node_modules/@semantic-release/commit-analyzer/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/@semantic-release/error": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz", - "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==", - "dev": true, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/@semantic-release/github": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.0.7.tgz", - "integrity": "sha512-VtgicRIKGvmTHwm//iqTh/5NGQwsncOMR5vQK9pMT92Aem7dv37JFKKRuulUsAnUOIlO4G8wH3gPiBAA0iW0ww==", - "dev": true, - "dependencies": { - "@octokit/rest": "^19.0.0", - "@semantic-release/error": "^3.0.0", - "aggregate-error": "^3.0.0", - "bottleneck": "^2.18.1", - "debug": "^4.0.0", - "dir-glob": "^3.0.0", - "fs-extra": "^11.0.0", - "globby": "^11.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "issue-parser": "^6.0.0", - "lodash": "^4.17.4", - "mime": "^3.0.0", - "p-filter": "^2.0.0", - "p-retry": "^4.0.0", - "url-join": "^4.0.0" - }, - "engines": { - "node": ">=14.17" - }, - "peerDependencies": { - "semantic-release": ">=18.0.0-beta.1" - } - }, - "node_modules/@semantic-release/npm": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-10.0.3.tgz", - "integrity": "sha512-Chbv3kX4o+y+r1X6hsqBVB8NFbSVfiNlYOqMG6o9Wc8r5Y4cjxfbaMCuJ++XAtw3YXYX/NVD05cPzBi4Orjusg==", - "dev": true, - "dependencies": { - "@semantic-release/error": "^3.0.0", - "aggregate-error": "^4.0.1", - "execa": "^7.0.0", - "fs-extra": "^11.0.0", - "lodash-es": "^4.17.21", - "nerf-dart": "^1.0.0", - "normalize-url": "^8.0.0", - "npm": "^9.5.0", - "rc": "^1.2.8", - "read-pkg": "^8.0.0", - "registry-auth-token": "^5.0.0", - "semver": "^7.1.2", - "tempy": "^3.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "semantic-release": ">=20.1.0" - } - }, - "node_modules/@semantic-release/npm/node_modules/aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", - "dev": true, - "dependencies": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/execa": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@semantic-release/npm/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/release-notes-generator": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-11.0.1.tgz", - "integrity": "sha512-4deWsiY4Rg80oc9Ms11N20BIDgYkPMys4scNYQpi2Njdrtw5Z55nXKNsUN3kn6Sy/nI9dqqbp5L63TL4luI5Bw==", - "dev": true, - "dependencies": { - "conventional-changelog-angular": "^5.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.2.3", - "debug": "^4.0.0", - "get-stream": "^6.0.0", - "import-from": "^4.0.0", - "into-stream": "^7.0.0", - "lodash-es": "^4.17.21", - "read-pkg-up": "^9.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "semantic-release": ">=20.1.0" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dev": true, - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", - "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^2.0.0" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg-up": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", - "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", - "dev": true, - "dependencies": { - "find-up": "^6.3.0", - "read-pkg": "^7.1.0", - "type-fest": "^2.5.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.16.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz", - "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==", - "dev": true - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "dev": true - }, - "node_modules/@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", - "dev": true - }, - "node_modules/@types/ws": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", - "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.1.tgz", - "integrity": "sha512-AVi0uazY5quFB9hlp2Xv+ogpfpk77xzsgsIEWyVS7uK/c7MZ5tw7ZPbapa0SbfkqE0fsAMkz5UwtgMLVk2BQAg==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/type-utils": "5.59.1", - "@typescript-eslint/utils": "5.59.1", - "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.59.1.tgz", - "integrity": "sha512-KVtKcHEizCIRx//LC9tBi6xp94ULKbU5StVHBVWURJQOVa2qw6HP28Hu7LmHrQM3p9I3q5Y2VR4wKllCJ3IWrw==", - "dev": true, - "dependencies": { - "@typescript-eslint/utils": "5.59.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.1.tgz", - "integrity": "sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/typescript-estree": "5.59.1", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.1.tgz", - "integrity": "sha512-mau0waO5frJctPuAzcxiNWqJR5Z8V0190FTSqRw1Q4Euop6+zTwHAf8YIXNwDOT29tyUDrQ65jSg9aTU/H0omA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/visitor-keys": "5.59.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.1.tgz", - "integrity": "sha512-ZMWQ+Oh82jWqWzvM3xU+9y5U7MEMVv6GLioM3R5NJk6uvP47kZ7YvlgSHJ7ERD6bOY7Q4uxWm25c76HKEwIjZw==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "5.59.1", - "@typescript-eslint/utils": "5.59.1", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.1.tgz", - "integrity": "sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.1.tgz", - "integrity": "sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/visitor-keys": "5.59.1", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.1.tgz", - "integrity": "sha512-MkTe7FE+K1/GxZkP5gRj3rCztg45bEhsd8HYjczBuYm+qFHP5vtZmjx3B0yUCDotceQ4sHgTyz60Ycl225njmA==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/typescript-estree": "5.59.1", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.1.tgz", - "integrity": "sha512-6waEYwBTCWryx0VJmP7JaM4FpipLsFl9CvYf2foAE8Qh/Y0s+bxWysciwOs0LTBED4JCaNxTZ5rGadB14M6dwA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.1", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@whatwg-node/events": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.0.3.tgz", - "integrity": "sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA==", - "dev": true - }, - "node_modules/@whatwg-node/fetch": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.8.8.tgz", - "integrity": "sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg==", - "dev": true, - "dependencies": { - "@peculiar/webcrypto": "^1.4.0", - "@whatwg-node/node-fetch": "^0.3.6", - "busboy": "^1.6.0", - "urlpattern-polyfill": "^8.0.0", - "web-streams-polyfill": "^3.2.1" - } - }, - "node_modules/@whatwg-node/node-fetch": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.3.6.tgz", - "integrity": "sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA==", - "dev": true, - "dependencies": { - "@whatwg-node/events": "^0.0.3", - "busboy": "^1.6.0", - "fast-querystring": "^1.1.1", - "fast-url-parser": "^1.1.3", - "tslib": "^2.3.1" - } - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz", - "integrity": "sha512-j3/4pkfih8W4NK22gxVSXcEonTpAHOHh0hu5BoZrKcOsW/4oBPxTi4Yk3SAj+FhC1f3+bRTkXdm4019gw1vg9g==", - "dev": true, - "dependencies": { - "acorn": "^2.1.0" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", - "integrity": "sha512-pXK8ez/pVjqFdAgBkF1YPVRacuLQ9EXBKaKWaeh58WNfMkCmZhOZzu+NtKSPD5PHmCCHheQ5cD29qM1K4QTxIg==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", - "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "depd": "^2.0.0", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "dependencies": { - "default-require-extensions": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true - }, - "node_modules/are-docs-informative": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", - "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", - "engines": { - "node": ">=14" - } - }, - "node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/argv-formatter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", - "integrity": "sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==", - "dev": true - }, - "node_modules/aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", - "dev": true, - "dependencies": { - "deep-equal": "^2.0.5" - } - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "dev": true - }, - "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.reduce": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz", - "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", - "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.1.3" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1js": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", - "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", - "dev": true, - "dependencies": { - "pvtsutils": "^1.3.2", - "pvutils": "^1.1.3", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", - "dev": true - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", - "dev": true - }, - "node_modules/axe-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", - "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/axobject-query": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", - "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", - "dev": true, - "dependencies": { - "deep-equal": "^2.0.5" - } - }, - "node_modules/babel-plugin-add-module-exports": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.4.tgz", - "integrity": "sha512-g+8yxHUZ60RcyaUpfNzy56OtWW+x9cyEe9j+CranqLiqbju2yf/Cy6ZtYK40EZxtrdHllzlVZgLmcOUCTlJ7Jg==", - "dev": true - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", - "dev": true - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "node_modules/bottleneck": { - "version": "2.19.5", - "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", - "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-request": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz", - "integrity": "sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg==", - "dev": true, - "engines": [ - "node" - ] - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dev": true, - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/cacache/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/cacache/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/cacache/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cacache/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/rimraf/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/cacache/node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/rimraf/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/cacache/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/caching-transform/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caching-transform/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", - "dev": true, - "dependencies": { - "callsites": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", - "dev": true, - "dependencies": { - "caller-callsite": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-keys/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001481", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001481.tgz", - "integrity": "sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/cardinal": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", - "dev": true, - "dependencies": { - "ansicolors": "~0.3.2", - "redeyed": "~2.1.0" - }, - "bin": { - "cdl": "bin/cdl.js" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true - }, - "node_modules/chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", - "dev": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", - "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/clean-regexp/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", - "dev": true, - "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/cli-truncate/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-deep/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", - "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/comment-parser": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", - "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "node_modules/compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "dev": true, - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - } - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "dev": true, - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, - "node_modules/contents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/contents/-/contents-5.0.0.tgz", - "integrity": "sha512-wnnGorqo07ZSIzMQmUc4vUv1NEXl7elBtqoz5UcysV+pbSvphZYfI763rXgpFK2H9o5rvjQQ8kZxp7hOOwIe3A==", - "dev": true, - "dependencies": { - "lodash": "^4.17.10", - "sister": "^3.0.1" - } - }, - "node_modules/conventional-changelog-angular": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", - "dev": true, - "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-writer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", - "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", - "dev": true, - "dependencies": { - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", - "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" - }, - "bin": { - "conventional-changelog-writer": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-writer/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/conventional-commits-filter": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", - "dev": true, - "dependencies": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-commits-parser": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", - "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", - "dev": true, - "dependencies": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "conventional-commits-parser": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-js": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.1.tgz", - "integrity": "sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.1.tgz", - "integrity": "sha512-d690npR7MC6P0gq4npTl5n2VQeNAmUrJ90n+MHiKS7W2+xno4o3F5GDEuylSdi6EJ3VssibSGXOa1r3YXD3Mhw==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/create-eslint-index": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/create-eslint-index/-/create-eslint-index-1.0.0.tgz", - "integrity": "sha512-nXvJjnfDytOOaPOonX0h0a1ggMoqrhdekGeZkD6hkcWYvlCWhU719tKFVh8eU04CnMwu3uwe1JjwuUF2C3k2qg==", - "dev": true, - "dependencies": { - "lodash.get": "^4.3.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.1" - }, - "bin": { - "cross-env": "src/bin/cross-env.js", - "cross-env-shell": "src/bin/cross-env-shell.js" - }, - "engines": { - "node": ">=10.14", - "npm": ">=6", - "yarn": ">=1" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-random-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", - "dev": true, - "dependencies": { - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/crypto-random-string/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "node_modules/cssstyle": { - "version": "0.2.37", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", - "integrity": "sha512-FUpKc+1FNBsHUr9IsfSGCovr8VuGOiiuzlgCyppKBjJi2jYTOFLN3oiiNRMIvYqbFzF38mqKj4BgcevzU5/kIA==", - "dev": true, - "dependencies": { - "cssom": "0.3.x" - } - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/dataloader": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", - "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==", - "dev": true - }, - "node_modules/dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/deadlink": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/deadlink/-/deadlink-1.1.3.tgz", - "integrity": "sha512-m1h/xFi5eqcByMT7AGBt0BCygIifVyUw6CtEh1NpS/x0yeyS709+nCY5ByK255J/5hiRb9O/8dx6mmx3t6qSIQ==", - "dev": true, - "dependencies": { - "bluebird": "^2.10.1", - "jsdom": "^6.5.1", - "url-regexp": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/deadlink/node_modules/bluebird": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", - "integrity": "sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==", - "dev": true - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", - "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decamelize-keys/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/deep-equal": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.1.tgz", - "integrity": "sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.0", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.0", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/default-require-extensions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", - "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", - "dev": true, - "dependencies": { - "strip-bom": "^4.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/dom-serializer/node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/dom-serializer/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "node_modules/domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "dependencies": { - "domelementtype": "1" - } - }, - "node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dset": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.2.tgz", - "integrity": "sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexer2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/duplexer2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/duplexer2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/duplexer2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.377", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.377.tgz", - "integrity": "sha512-H3BYG6DW5Z+l0xcfXaicJGxrpA4kMlCxnN71+iNX+dBLkRMOdVJqFJiAmbNZZKA1zISpRg17JR03qGifXNsJtw==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhance-visitors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/enhance-visitors/-/enhance-visitors-1.0.0.tgz", - "integrity": "sha512-+29eJLiUixTEDRaZ35Vu8jP3gPLNcQQkQkOQjLp2X+6cZGGPDD/uasbFzvLsJKnGZnvmyZ0srxudwOtskHeIDA==", - "dev": true, - "dependencies": { - "lodash": "^4.13.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "node_modules/env-ci": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-9.1.0.tgz", - "integrity": "sha512-ZCEas2sDVFR3gpumwwzSU4OJZwWJ46yqJH3TqH3vSxEBzeAlC0uCJLGAnZC0vX1TIXzHzjcwpKmUn2xw5mC/qA==", - "dev": true, - "dependencies": { - "execa": "^7.0.0", - "java-properties": "^1.0.2" - }, - "engines": { - "node": "^16.14 || >=18" - } - }, - "node_modules/env-ci/node_modules/execa": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/env-ci/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/env-ci/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/env-ci/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/env-ci/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/env-ci/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/env-ci/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/env-editor": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", - "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.21.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", - "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true - }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=4.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", - "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.39.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-ast-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-ast-utils/-/eslint-ast-utils-1.1.0.tgz", - "integrity": "sha512-otzzTim2/1+lVrlH19EfQQJEhVJSu0zOb9ygb3iapN6UlyaDtyRq4b5U1FuW0v1lRa9Fp/GJyHkSwm6NqABgCA==", - "dev": true, - "dependencies": { - "lodash.get": "^4.4.2", - "lodash.zip": "^4.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-config-canonical": { - "version": "33.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-canonical/-/eslint-config-canonical-33.0.1.tgz", - "integrity": "sha512-g5hyJr5s4WnyAp5FdfMyItz72hOgXAB/4tsFMBP944bcei2QJyMvwslpKdiQL299HSJBpJ9xbNBhx7oeFI7zIQ==", - "dev": true, - "dependencies": { - "@babel/eslint-parser": "^7.16.3", - "@babel/eslint-plugin": "^7.14.5", - "@graphql-eslint/eslint-plugin": "^3.2.0", - "@next/eslint-plugin-next": "^12.0.7", - "@rushstack/eslint-patch": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^5.6.0", - "@typescript-eslint/parser": "^5.6.0", - "eslint-plugin-ava": "^13.1.0", - "eslint-plugin-canonical": "^2.4.1", - "eslint-plugin-cypress": "^2.12.1", - "eslint-plugin-eslint-comments": "^3.2.0", - "eslint-plugin-flowtype": "^8.0.3", - "eslint-plugin-fp": "^2.3.0", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^25.3.0", - "eslint-plugin-jsdoc": "^37.2.0", - "eslint-plugin-jsonc": "^2.0.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-lodash": "^7.3.0", - "eslint-plugin-mocha": "^10.0.1", - "eslint-plugin-modules-newline": "0.0.6", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-react": "^7.27.1", - "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-typescript-sort-keys": "^2.1.0", - "eslint-plugin-unicorn": "^39.0.0", - "eslint-plugin-yml": "^0.12.0", - "yaml-eslint-parser": "^0.5.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": "^8.4.1" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", - "dev": true, - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-ava": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-ava/-/eslint-plugin-ava-13.2.0.tgz", - "integrity": "sha512-i5B5izsEdERKQLruk1nIWzTTE7C26/ju8qQf7JeyRv32XT2lRMW0zMFZNhIrEf5/5VvpSz2rqrV7UcjClGbKsw==", - "dev": true, - "dependencies": { - "enhance-visitors": "^1.0.0", - "eslint-utils": "^3.0.0", - "espree": "^9.0.0", - "espurify": "^2.1.1", - "import-modules": "^2.1.0", - "micro-spelling-correcter": "^1.1.1", - "pkg-dir": "^5.0.0", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=12.22 <13 || >=14.17 <15 || >=16.4" - }, - "peerDependencies": { - "eslint": ">=7.22.0" - } - }, - "node_modules/eslint-plugin-canonical": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-canonical/-/eslint-plugin-canonical-2.6.0.tgz", - "integrity": "sha512-KMcx/bX9j97nllRjluykArtoT34CHXJAQOfBBk3uc1oAZgMOyAlU3yJw5Os6yeL6gBBjd+CIf74f7zUlNF3wwg==", - "dev": true, - "dependencies": { - "is-get-set-prop": "^1.0.0", - "is-js-type": "^2.0.0", - "is-obj-prop": "^1.0.0", - "is-proto-prop": "^2.0.0", - "lodash": "^4.17.21", - "natural-compare": "^1.4.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": "^8.5.0" - } - }, - "node_modules/eslint-plugin-cypress": { - "version": "2.13.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.13.3.tgz", - "integrity": "sha512-nAPjZE5WopCsgJwl3vHm5iafpV+ZRO76Z9hMyRygWhmg5ODXDPd+9MaPl7kdJ2azj+sO87H3P1PRnggIrz848g==", - "dev": true, - "dependencies": { - "globals": "^11.12.0" - }, - "peerDependencies": { - "eslint": ">= 3.2.1" - } - }, - "node_modules/eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", - "dev": true, - "dependencies": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=4.19.1" - } - }, - "node_modules/eslint-plugin-es/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-eslint-comments": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", - "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5", - "ignore": "^5.0.5" - }, - "engines": { - "node": ">=6.5.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=4.19.1" - } - }, - "node_modules/eslint-plugin-eslint-comments/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint-plugin-flowtype": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", - "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", - "dev": true, - "dependencies": { - "lodash": "^4.17.21", - "string-natural-compare": "^3.0.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@babel/plugin-syntax-flow": "^7.14.5", - "@babel/plugin-transform-react-jsx": "^7.14.9", - "eslint": "^8.1.0" - } - }, - "node_modules/eslint-plugin-fp": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-fp/-/eslint-plugin-fp-2.3.0.tgz", - "integrity": "sha512-3n2oHibwoIxAht9/+ZaTldhI6brXORgl8oNXqZd+d9xuAQt2SBJ2/aml0oQRMWvXrgsz2WG6wfC++NjzSG3prA==", - "dev": true, - "dependencies": { - "create-eslint-index": "^1.0.0", - "eslint-ast-utils": "^1.0.0", - "lodash": "^4.13.1", - "req-all": "^0.1.0" - }, - "engines": { - "node": ">=4.0.0" - }, - "peerDependencies": { - "eslint": ">=3" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-jest": { - "version": "25.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", - "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/experimental-utils": "^5.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-jsdoc": { - "version": "37.9.7", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.9.7.tgz", - "integrity": "sha512-8alON8yYcStY94o0HycU2zkLKQdcS+qhhOUNQpfONHHwvI99afbmfpYuPqf6PbLz5pLZldG3Te5I0RbAiTN42g==", - "dev": true, - "dependencies": { - "@es-joy/jsdoccomment": "~0.20.1", - "comment-parser": "1.3.0", - "debug": "^4.3.3", - "escape-string-regexp": "^4.0.0", - "esquery": "^1.4.0", - "regextras": "^0.8.0", - "semver": "^7.3.5", - "spdx-expression-parse": "^3.0.1" - }, - "engines": { - "node": "^12 || ^14 || ^16 || ^17" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/eslint-plugin-jsdoc/node_modules/@es-joy/jsdoccomment": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.20.1.tgz", - "integrity": "sha512-oeJK41dcdqkvdZy/HctKklJNkt/jh+av3PZARrZEl+fs/8HaHeeYoAvEwOV0u5I6bArTF17JEsTZMY359e/nfQ==", - "dev": true, - "dependencies": { - "comment-parser": "1.3.0", - "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "~2.2.3" - }, - "engines": { - "node": "^12 || ^14 || ^16 || ^17" - } - }, - "node_modules/eslint-plugin-jsdoc/node_modules/comment-parser": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.0.tgz", - "integrity": "sha512-hRpmWIKgzd81vn0ydoWoyPoALEOnF4wt8yKD35Ib1D6XC2siLiYaiqfGkYrunuKdsXGwpBpHU3+9r+RVw2NZfA==", - "dev": true, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/eslint-plugin-jsdoc/node_modules/jsdoc-type-pratt-parser": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.5.tgz", - "integrity": "sha512-2a6eRxSxp1BW040hFvaJxhsCMI9lT8QB8t14t+NY5tC5rckIR0U9cr2tjOeaFirmEOy6MHvmJnY7zTBHq431Lw==", - "dev": true, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/eslint-plugin-jsonc": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.7.0.tgz", - "integrity": "sha512-DZgC71h/hZ9t5k/OGAKOMdJCleg2neZLL7No+YYi2ZMroCN4X5huZdrLf1USbrc6UTHwYujd1EDwXHg1qJ6CYw==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "jsonc-eslint-parser": "^2.0.4", - "natural-compare": "^1.4.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ota-meshi" - }, - "peerDependencies": { - "eslint": ">=6.0.0" - } - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", - "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.20.7", - "aria-query": "^5.1.3", - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.6.2", - "axobject-query": "^3.1.1", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.3.3", - "language-tags": "=1.0.5", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-lodash": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-lodash/-/eslint-plugin-lodash-7.4.0.tgz", - "integrity": "sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==", - "dev": true, - "dependencies": { - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": ">=2" - } - }, - "node_modules/eslint-plugin-mocha": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.1.0.tgz", - "integrity": "sha512-xLqqWUF17llsogVOC+8C6/jvQ+4IoOREbN7ZCHuOHuD6cT5cDD4h7f2LgsZuzMAiwswWE21tO7ExaknHVDrSkw==", - "dev": true, - "dependencies": { - "eslint-utils": "^3.0.0", - "rambda": "^7.1.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-modules-newline": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-modules-newline/-/eslint-plugin-modules-newline-0.0.6.tgz", - "integrity": "sha512-69NpBr68U6pmXL+y+KHl/64PwRarceC3/sCNUVxRbe0gPI32SIw8AtdpkqNiJYCa2yMd4lRrkrnU09Yio7KVzA==", - "dev": true, - "dependencies": { - "requireindex": "~1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "dependencies": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "peerDependencies": { - "eslint": ">=5.16.0" - } - }, - "node_modules/eslint-plugin-node/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-plugin-node/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-node/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.32.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", - "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.8" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", - "dev": true, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-typescript-sort-keys": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-typescript-sort-keys/-/eslint-plugin-typescript-sort-keys-2.3.0.tgz", - "integrity": "sha512-3LAcYulo5gNYiPWee+TksITfvWeBuBjGgcSLTacPESFVKEoy8laOQuZvJlSCwTBHT2SCGIxr3bJ56zuux+3MCQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/experimental-utils": "^5.0.0", - "json-schema": "^0.4.0", - "natural-compare-lite": "^1.4.0" - }, - "engines": { - "node": "12 || >= 13.9" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^1 || ^2 || ^3 || ^4 || ^5", - "eslint": "^5 || ^6 || ^7 || ^8", - "typescript": "^3 || ^4 || ^5" - } - }, - "node_modules/eslint-plugin-unicorn": { - "version": "39.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-39.0.0.tgz", - "integrity": "sha512-fd5RK2FtYjGcIx3wra7csIE/wkkmBo22T1gZtRTsLr1Mb+KsFKJ+JOdSqhHXQUrI/JTs/Mon64cEYzTgSCbltw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.9", - "ci-info": "^3.2.0", - "clean-regexp": "^1.0.0", - "eslint-template-visitor": "^2.3.2", - "eslint-utils": "^3.0.0", - "esquery": "^1.4.0", - "indent-string": "4", - "is-builtin-module": "^3.1.0", - "lodash": "^4.17.21", - "pluralize": "^8.0.0", - "read-pkg-up": "^7.0.1", - "regexp-tree": "^0.1.23", - "safe-regex": "^2.1.1", - "semver": "^7.3.5", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" - }, - "peerDependencies": { - "eslint": ">=7.32.0" - } - }, - "node_modules/eslint-plugin-yml": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-0.12.0.tgz", - "integrity": "sha512-aS82M+diohZTusadiByzh/bKDrfi+Y6VBQkD3ym/7JH+KF9WUB9qKCizLfTaCACwtRrHpqaLz3G8GKmslshyiw==", - "dev": true, - "dependencies": { - "debug": "^4.3.2", - "lodash": "^4.17.21", - "natural-compare": "^1.4.0", - "yaml-eslint-parser": "^0.5.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": ">=6.0.0" - } - }, - "node_modules/eslint-rule-composer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", - "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint-template-visitor": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.3.2.tgz", - "integrity": "sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.16", - "@babel/eslint-parser": "^7.12.16", - "eslint-visitor-keys": "^2.0.0", - "esquery": "^1.3.1", - "multimap": "^1.1.0" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", - "dev": true, - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/espurify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/espurify/-/espurify-2.1.1.tgz", - "integrity": "sha512-zttWvnkhcDyGOhSH4vO2qCBILpdCMv/MX8lp4cqgRkQoDRGK2oZxi2GfWhlP2dIXmk7BaKeOTuzbHhyC68o8XQ==", - "dev": true - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/execa/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/execa/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/execa/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/execa/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", - "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extract-files": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-11.0.0.tgz", - "integrity": "sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==", - "dev": true, - "engines": { - "node": "^12.20 || >= 14.13" - }, - "funding": { - "url": "https://github.com/sponsors/jaydenseric" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-decode-uri-component": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", - "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", - "dev": true - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fast-querystring": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.1.tgz", - "integrity": "sha512-qR2r+e3HvhEFmpdHMv//U8FnFlnYjaC6QKDuaXALDkw2kvHO8WDjxH+f/rHGR4Me4pnk8p9JAkRNTjYHAKRn2Q==", - "dev": true, - "dependencies": { - "fast-decode-uri-component": "^1.0.1" - } - }, - "node_modules/fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", - "dev": true, - "dependencies": { - "punycode": "^1.3.2" - } - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/filesize": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.4.0.tgz", - "integrity": "sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-versions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-5.1.0.tgz", - "integrity": "sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==", - "dev": true, - "dependencies": { - "semver-regex": "^4.0.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.1.tgz", - "integrity": "sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", - "dev": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/from2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/from2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/from2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/from2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fs-minipass/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-set-props": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-set-props/-/get-set-props-0.1.0.tgz", - "integrity": "sha512-7oKuKzAGKj0ag+eWZwcGw2fjiZ78tXnXQoBgY0aU7ZOxTu4bB7hSuQSDgtKy978EDH062P5FmD2EWiDpQS9K9Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-urls": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/get-urls/-/get-urls-10.0.1.tgz", - "integrity": "sha512-5usUMF4FE0cTS7yUuRvBsB4tSs5u8KFn7v01+IDGL/18tuoADu5ehthqw+y2EHnJsWhsp1443K5P+C/XWZQ04g==", - "dev": true, - "dependencies": { - "normalize-url": "^5.1.0", - "url-regex-safe": "^2.0.2" - }, - "engines": { - "node": ">=10.12.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-urls/node_modules/normalize-url": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-5.3.1.tgz", - "integrity": "sha512-K1c7+vaAP+Yh5bOGmA10PGPpp+6h7WZrl7GwqKhUflBc9flU9pzG27DDeB9+iuhZkE3BJZOcgN1P/2sS5pqrWw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/git-log-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz", - "integrity": "sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==", - "dev": true, - "dependencies": { - "argv-formatter": "~1.0.0", - "spawn-error-forwarder": "~1.0.0", - "split2": "~1.0.0", - "stream-combiner2": "~1.1.1", - "through2": "~2.0.0", - "traverse": "~0.6.6" - } - }, - "node_modules/git-log-parser/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/git-log-parser/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/git-log-parser/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/git-log-parser/node_modules/split2": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", - "integrity": "sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==", - "dev": true, - "dependencies": { - "through2": "~2.0.0" - } - }, - "node_modules/git-log-parser/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/git-log-parser/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/gitdown": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/gitdown/-/gitdown-3.1.5.tgz", - "integrity": "sha512-nvdK4qp8yQdzbdHgnEUuC0ubfAvv27fHNpsX9/0FLJvAJk687zGkptRNvls4U5UNYMKdunIL84QR+qQKyHMDaw==", - "dev": true, - "dependencies": { - "bluebird": "^3.7.2", - "deadlink": "^1.1.3", - "filesize": "^6.1.0", - "get-urls": "^10.0.0", - "gitinfo": "^2.4.0", - "glob": "^7.1.6", - "jsonfile": "^6.1.0", - "lodash": "^4.17.20", - "markdown-contents": "^1.0.11", - "marked": "^2.0.0", - "moment": "^2.29.1", - "stack-trace": "^0.0.10", - "yargs": "^16.2.0" - }, - "bin": { - "gitdown": "dist/bin/index.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gitdown/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/gitinfo": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/gitinfo/-/gitinfo-2.4.0.tgz", - "integrity": "sha512-cQU3oInRu7+LaPwFNlppP0NmJa1SBdZtNCUoo+XT/nGRbmwlhssbjkN7gQmfQZAuMxphghx0ACfbIQmMBmPT2w==", - "dev": true, - "dependencies": { - "ini": "^1.3.5", - "ramda": "^0.26.1" - } - }, - "node_modules/glob": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.2.tgz", - "integrity": "sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.0", - "minipass": "^5.0.0", - "path-scurry": "^1.7.0" - }, - "bin": { - "glob": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", - "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "node_modules/graphql": { - "version": "16.6.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", - "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==", - "dev": true, - "peer": true, - "engines": { - "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" - } - }, - "node_modules/graphql-config": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-4.5.0.tgz", - "integrity": "sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==", - "dev": true, - "dependencies": { - "@graphql-tools/graphql-file-loader": "^7.3.7", - "@graphql-tools/json-file-loader": "^7.3.7", - "@graphql-tools/load": "^7.5.5", - "@graphql-tools/merge": "^8.2.6", - "@graphql-tools/url-loader": "^7.9.7", - "@graphql-tools/utils": "^9.0.0", - "cosmiconfig": "8.0.0", - "jiti": "1.17.1", - "minimatch": "4.2.3", - "string-env-interpolation": "1.0.1", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "cosmiconfig-toml-loader": "^1.0.0", - "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - }, - "peerDependenciesMeta": { - "cosmiconfig-toml-loader": { - "optional": true - } - } - }, - "node_modules/graphql-config/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/graphql-config/node_modules/cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", - "dev": true, - "dependencies": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/graphql-config/node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graphql-config/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/graphql-config/node_modules/minimatch": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.3.tgz", - "integrity": "sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/graphql-config/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graphql-config/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/graphql-depth-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/graphql-depth-limit/-/graphql-depth-limit-1.1.0.tgz", - "integrity": "sha512-+3B2BaG8qQ8E18kzk9yiSdAa75i/hnnOwgSeAxVJctGQPvmeiLtqKOYF6HETCyRjiF7Xfsyal0HbLlxCQkgkrw==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "graphql": "*" - } - }, - "node_modules/graphql-ws": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.12.1.tgz", - "integrity": "sha512-umt4f5NnMK46ChM2coO36PTFhHouBrK9stWWBczERguwYrGnPNxJ9dimU6IyOBfOkC6Izhkg4H8+F51W/8CYDg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": ">=0.11 <=16" - } - }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", - "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hasha/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hasha/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "dependencies": { - "parse-passwd": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hook-std": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-3.0.0.tgz", - "integrity": "sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dev": true, - "dependencies": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", - "dev": true, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dev": true, - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/husky": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", - "dev": true, - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", - "dev": true, - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", - "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==", - "dev": true, - "engines": { - "node": ">=12.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-modules": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-modules/-/import-modules-2.1.0.tgz", - "integrity": "sha512-8HEWcnkbGpovH9yInoisxaSoIg9Brbul+Ju3Kqe2UsYDUBJD/iQjSgEj0zPcTDPKfPp2fs5xlv1i+JSye/m1/A==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/install-artifact-from-github": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/install-artifact-from-github/-/install-artifact-from-github-1.3.2.tgz", - "integrity": "sha512-yCFcLvqk0yQdxx0uJz4t9Z3adDMLAYrcGYv546uRXCSvxE+GqNYhhz/KmrGcUKGI/gVLR9n/e/zM9jX/+ASMJQ==", - "dev": true, - "bin": { - "install-from-cache": "bin/install-from-cache.js", - "save-to-github-cache": "bin/save-to-github-cache.js" - } - }, - "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/into-stream": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-7.0.0.tgz", - "integrity": "sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==", - "dev": true, - "dependencies": { - "from2": "^2.3.0", - "p-is-promise": "^3.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "dev": true - }, - "node_modules/ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/is-builtin-module": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", - "dev": true, - "dependencies": { - "builtin-modules": "^3.3.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", - "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extendable/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-get-set-prop": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-get-set-prop/-/is-get-set-prop-1.0.0.tgz", - "integrity": "sha512-DvAYZ1ZgGUz4lzxKMPYlt08qAUqyG9ckSg2pIjfvcQ7+pkVNUHk8yVLXOnCLe5WKXhLop8oorWFBJHpwWQpszQ==", - "dev": true, - "dependencies": { - "get-set-props": "^0.1.0", - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-js-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-js-type/-/is-js-type-2.0.0.tgz", - "integrity": "sha512-Aj13l47+uyTjlQNHtXBV8Cji3jb037vxwMWCgopRR8h6xocgBGW3qG8qGlIOEmbXQtkKShKuBM9e8AA1OeQ+xw==", - "dev": true, - "dependencies": { - "js-types": "^1.0.0" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true - }, - "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-obj-prop": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-obj-prop/-/is-obj-prop-1.0.0.tgz", - "integrity": "sha512-5Idb61slRlJlsAzi0Wsfwbp+zZY+9LXKUAZpvT/1ySw+NxKLRWfa0Bzj+wXI3fX5O9hiddm5c3DAaRSNP/yl2w==", - "dev": true, - "dependencies": { - "lowercase-keys": "^1.0.0", - "obj-props": "^1.0.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-proto-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-proto-prop/-/is-proto-prop-2.0.0.tgz", - "integrity": "sha512-jl3NbQ/fGLv5Jhan4uX+Ge9ohnemqyblWVVCpAvtTQzNFvV2xhJq+esnkIbYQ9F1nITXoLfDDQLp7LBw/zzncg==", - "dev": true, - "dependencies": { - "lowercase-keys": "^1.0.0", - "proto-props": "^2.0.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", - "dev": true, - "dependencies": { - "text-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isomorphic-ws": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", - "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", - "dev": true, - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true - }, - "node_modules/issue-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz", - "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==", - "dev": true, - "dependencies": { - "lodash.capitalize": "^4.2.1", - "lodash.escaperegexp": "^4.1.2", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.uniqby": "^4.7.0" - }, - "engines": { - "node": ">=10.13" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-processinfo": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", - "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", - "dev": true, - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/istanbul-lib-report/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jackspeak": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.1.1.tgz", - "integrity": "sha512-juf9stUEwUaILepraGOWIJTLwg48bUnBmRqd2ln2Os1sW987zeoj/hzhbvRB95oMuS2ZTpjULmdwHNX4rzZIZw==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/java-properties": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", - "integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/jiti": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.17.1.tgz", - "integrity": "sha512-NZIITw8uZQFuzQimqjUxIrIcEdxYDFIe/0xYfIlVXTkiBjjyBEvgasj5bb0/cHtPRD/NziPbT312sFrkI5ALpw==", - "dev": true, - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-sdsl": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", - "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-types": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/js-types/-/js-types-1.0.0.tgz", - "integrity": "sha512-bfwqBW9cC/Lp7xcRpug7YrXm0IVw+T9e3g4mCYnv0Pjr3zIzU9PCQElYU9oSGAWzXlbdl9X5SAMPejO9sxkeUw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true - }, - "node_modules/jsdoc-type-pratt-parser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", - "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/jsdom": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-6.5.1.tgz", - "integrity": "sha512-KeCN3yqR+MmjAZDnVZgIaL2tP9BxSFlsYZw9Z+zy64+jJzHc1m8ruccb83Qe8AG0xKUjpo2kxEGFCMtiF4MmAg==", - "dev": true, - "dependencies": { - "acorn": "^2.4.0", - "acorn-globals": "^1.0.4", - "browser-request": ">= 0.3.1 < 0.4.0", - "cssom": ">= 0.3.0 < 0.4.0", - "cssstyle": ">= 0.2.29 < 0.3.0", - "escodegen": "^1.6.1", - "htmlparser2": ">= 3.7.3 < 4.0.0", - "nwmatcher": ">= 1.3.6 < 2.0.0", - "parse5": "^1.4.2", - "request": "^2.55.0", - "symbol-tree": ">= 3.1.0 < 4.0.0", - "tough-cookie": "^2.0.0", - "whatwg-url-compat": "~0.6.5", - "xml-name-validator": ">= 2.0.1 < 3.0.0", - "xmlhttprequest": ">= 1.6.0 < 2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/jsdom/node_modules/acorn": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", - "integrity": "sha512-pXK8ez/pVjqFdAgBkF1YPVRacuLQ9EXBKaKWaeh58WNfMkCmZhOZzu+NtKSPD5PHmCCHheQ5cD29qM1K4QTxIg==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-eslint-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-2.2.0.tgz", - "integrity": "sha512-x5QjzBOORd+T2EjErIxJnkOEbLVEdD1ILEeBbIJt8Eq/zUn7P7M8qdnWiNVBK5f8oxnJpc6SBHOeeIEl/swPjg==", - "dev": true, - "dependencies": { - "acorn": "^8.5.0", - "eslint-visitor-keys": "^3.0.0", - "espree": "^9.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ota-meshi" - } - }, - "node_modules/jsonc-eslint-parser/node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", - "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.5", - "object.assign": "^4.1.3" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/language-subtag-registry": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", - "dev": true - }, - "node_modules/language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", - "dev": true, - "dependencies": { - "language-subtag-registry": "~0.3.2" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/line-column-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/line-column-path/-/line-column-path-2.0.0.tgz", - "integrity": "sha512-nz3A+vi4bElhwd62E9+Qk/f9BDYLSzD/4Hy1rir0I4GnMxSTezSymzANyph5N1PgRZ3sSbA+yR5hOuXxc71a0Q==", - "dev": true, - "dependencies": { - "type-fest": "^0.4.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/line-column-path/node_modules/type-fest": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", - "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/lint-staged": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.2.tgz", - "integrity": "sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA==", - "dev": true, - "dependencies": { - "chalk": "5.2.0", - "cli-truncate": "^3.1.0", - "commander": "^10.0.0", - "debug": "^4.3.4", - "execa": "^7.0.0", - "lilconfig": "2.1.0", - "listr2": "^5.0.7", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-inspect": "^1.12.3", - "pidtree": "^0.6.0", - "string-argv": "^0.3.1", - "yaml": "^2.2.2" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" - } - }, - "node_modules/lint-staged/node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/lint-staged/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/lint-staged/node_modules/execa": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/lint-staged/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/lint-staged/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true, - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/listr2": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.8.tgz", - "integrity": "sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==", - "dev": true, - "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.19", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.8.0", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } - } - }, - "node_modules/listr2/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/listr2/node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/listr2/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/listr2/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/listr2/node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true - }, - "node_modules/lodash.capitalize": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", - "integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.defaultsdeep": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", - "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", - "dev": true - }, - "node_modules/lodash.escaperegexp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", - "dev": true - }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true - }, - "node_modules/lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", - "dev": true - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", - "dev": true - }, - "node_modules/lodash.lowercase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.lowercase/-/lodash.lowercase-4.3.0.tgz", - "integrity": "sha512-UcvP1IZYyDKyEL64mmrwoA1AbFu5ahojhTtkOUr1K9dbuxzS9ev8i4TxMMGCqRC9TE8uDaSoufNAXxRPNTseVA==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.uniqby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", - "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==", - "dev": true - }, - "node_modules/lodash.zip": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", - "integrity": "sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-update/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-update/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.0" - } - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/make-fetch-happen/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/make-fetch-happen/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", - "dev": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/markdown-contents": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/markdown-contents/-/markdown-contents-1.0.11.tgz", - "integrity": "sha512-6o8It0JhmoN398ATp8zOWHAniTB3/tEXUVTCP00gTqwZNc465DIoHTTaspyEkaov93QLhrqirxizJ29E/i8/0Q==", - "dev": true, - "dependencies": { - "contents": "^5.0.0", - "lodash": "^4.17.10" - } - }, - "node_modules/marked": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz", - "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==", - "dev": true, - "bin": { - "marked": "bin/marked" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/marked-terminal": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.1.1.tgz", - "integrity": "sha512-+cKTOx9P4l7HwINYhzbrBSyzgxO2HaHKGZGuB1orZsMIgXYaJyfidT81VXRdpelW/PcHEWxywscePVgI/oUF6g==", - "dev": true, - "dependencies": { - "ansi-escapes": "^5.0.0", - "cardinal": "^2.1.1", - "chalk": "^5.0.0", - "cli-table3": "^0.6.1", - "node-emoji": "^1.11.0", - "supports-hyperlinks": "^2.2.0" - }, - "engines": { - "node": ">=14.13.1 || >=16.0.0" - }, - "peerDependencies": { - "marked": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" - } - }, - "node_modules/marked-terminal/node_modules/ansi-escapes": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", - "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", - "dev": true, - "dependencies": { - "type-fest": "^1.0.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/marked-terminal/node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/marked-terminal/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/meros": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/meros/-/meros-1.2.1.tgz", - "integrity": "sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g==", - "dev": true, - "engines": { - "node": ">=13" - }, - "peerDependencies": { - "@types/node": ">=13" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/micro-spelling-correcter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/micro-spelling-correcter/-/micro-spelling-correcter-1.1.1.tgz", - "integrity": "sha512-lkJ3Rj/mtjlRcHk6YyCbvZhyWTOzdBvTHsxMmZSk5jxN1YyVSQ+JETAom55mdzfcyDrY/49Z7UCW760BK30crg==", - "dev": true - }, - "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "dev": true, - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/minipass-fetch/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-fetch/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-flush/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "dev": true, - "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mocha/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/mocha/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/mocha/node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mocha/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/mocha/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/mocha/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/mocha/node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/multimap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multimap/-/multimap-1.1.0.tgz", - "integrity": "sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==", - "dev": true - }, - "node_modules/nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/nerf-dart": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz", - "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==", - "dev": true - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", - "dev": true, - "dependencies": { - "lodash": "^4.17.21" - } - }, - "node_modules/node-environment-flags": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", - "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", - "dev": true, - "dependencies": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" - } - }, - "node_modules/node-environment-flags/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-gyp": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", - "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", - "dev": true, - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^12.13 || ^14.13 || >=16" - } - }, - "node_modules/node-gyp/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/node-gyp/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", - "dev": true - }, - "node_modules/nopt": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", - "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", - "dev": true, - "dependencies": { - "abbrev": "^1.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm": { - "version": "9.6.5", - "resolved": "https://registry.npmjs.org/npm/-/npm-9.6.5.tgz", - "integrity": "sha512-0SYs9lz1ND7V3+Lz6EbsnUdZ4OxjQOHbaIKdWd8OgsbZ2hCC2ZeiXMEaBEPEVBaILW+huFA0pJ1YME+52iZI5g==", - "bundleDependencies": [ - "@isaacs/string-locale-compare", - "@npmcli/arborist", - "@npmcli/config", - "@npmcli/map-workspaces", - "@npmcli/package-json", - "@npmcli/run-script", - "abbrev", - "archy", - "cacache", - "chalk", - "ci-info", - "cli-columns", - "cli-table3", - "columnify", - "fastest-levenshtein", - "fs-minipass", - "glob", - "graceful-fs", - "hosted-git-info", - "ini", - "init-package-json", - "is-cidr", - "json-parse-even-better-errors", - "libnpmaccess", - "libnpmdiff", - "libnpmexec", - "libnpmfund", - "libnpmhook", - "libnpmorg", - "libnpmpack", - "libnpmpublish", - "libnpmsearch", - "libnpmteam", - "libnpmversion", - "make-fetch-happen", - "minimatch", - "minipass", - "minipass-pipeline", - "ms", - "node-gyp", - "nopt", - "npm-audit-report", - "npm-install-checks", - "npm-package-arg", - "npm-pick-manifest", - "npm-profile", - "npm-registry-fetch", - "npm-user-validate", - "npmlog", - "p-map", - "pacote", - "parse-conflict-json", - "proc-log", - "qrcode-terminal", - "read", - "read-package-json", - "read-package-json-fast", - "semver", - "ssri", - "tar", - "text-table", - "tiny-relative-date", - "treeverse", - "validate-npm-package-name", - "which", - "write-file-atomic" - ], - "dev": true, - "dependencies": { - "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^6.2.8", - "@npmcli/config": "^6.1.6", - "@npmcli/map-workspaces": "^3.0.3", - "@npmcli/package-json": "^3.0.0", - "@npmcli/run-script": "^6.0.0", - "abbrev": "^2.0.0", - "archy": "~1.0.0", - "cacache": "^17.0.5", - "chalk": "^4.1.2", - "ci-info": "^3.8.0", - "cli-columns": "^4.0.0", - "cli-table3": "^0.6.3", - "columnify": "^1.6.0", - "fastest-levenshtein": "^1.0.16", - "fs-minipass": "^3.0.1", - "glob": "^9.3.2", - "graceful-fs": "^4.2.11", - "hosted-git-info": "^6.1.1", - "ini": "^4.1.0", - "init-package-json": "^5.0.0", - "is-cidr": "^4.0.2", - "json-parse-even-better-errors": "^3.0.0", - "libnpmaccess": "^7.0.2", - "libnpmdiff": "^5.0.16", - "libnpmexec": "^5.0.16", - "libnpmfund": "^4.0.16", - "libnpmhook": "^9.0.3", - "libnpmorg": "^5.0.3", - "libnpmpack": "^5.0.16", - "libnpmpublish": "^7.1.3", - "libnpmsearch": "^6.0.2", - "libnpmteam": "^5.0.3", - "libnpmversion": "^4.0.2", - "make-fetch-happen": "^11.1.0", - "minimatch": "^7.4.6", - "minipass": "^4.2.8", - "minipass-pipeline": "^1.2.4", - "ms": "^2.1.2", - "node-gyp": "^9.3.1", - "nopt": "^7.1.0", - "npm-audit-report": "^4.0.0", - "npm-install-checks": "^6.1.1", - "npm-package-arg": "^10.1.0", - "npm-pick-manifest": "^8.0.1", - "npm-profile": "^7.0.1", - "npm-registry-fetch": "^14.0.4", - "npm-user-validate": "^2.0.0", - "npmlog": "^7.0.1", - "p-map": "^4.0.0", - "pacote": "^15.1.1", - "parse-conflict-json": "^3.0.1", - "proc-log": "^3.0.0", - "qrcode-terminal": "^0.12.0", - "read": "^2.1.0", - "read-package-json": "^6.0.1", - "read-package-json-fast": "^3.0.2", - "semver": "^7.5.0", - "ssri": "^10.0.3", - "tar": "^6.1.13", - "text-table": "~0.2.0", - "tiny-relative-date": "^1.3.0", - "treeverse": "^3.0.0", - "validate-npm-package-name": "^5.0.0", - "which": "^3.0.0", - "write-file-atomic": "^5.0.0" - }, - "bin": { - "npm": "bin/npm-cli.js", - "npx": "bin/npx-cli.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-path": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz", - "integrity": "sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==", - "dev": true, - "dependencies": { - "which": "^1.2.10" - }, - "bin": { - "npm-path": "bin/npm-path" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npm-path/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", - "dev": true, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz", - "integrity": "sha512-CM8vMpeFQ7MAPin0U3wzDhSGV0hMHNwHU0wjo402IVizPDrs45jSfSuoC+wThevY88LQti8VvaAnqYAeVy3I1A==", - "dev": true, - "dependencies": { - "commander": "^2.9.0", - "npm-path": "^2.0.2", - "which": "^1.2.10" - }, - "bin": { - "npm-which": "bin/npm-which.js" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/npm-which/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/npm-which/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/npm/node_modules/@colors/colors": { - "version": "1.5.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/npm/node_modules/@gar/promisify": { - "version": "1.1.3", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/@isaacs/string-locale-compare": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "6.2.8", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/fs": "^3.1.0", - "@npmcli/installed-package-contents": "^2.0.2", - "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/metavuln-calculator": "^5.0.0", - "@npmcli/name-from-folder": "^2.0.0", - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^3.0.0", - "@npmcli/query": "^3.0.0", - "@npmcli/run-script": "^6.0.0", - "bin-links": "^4.0.1", - "cacache": "^17.0.4", - "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^6.1.1", - "json-parse-even-better-errors": "^3.0.0", - "json-stringify-nice": "^1.1.4", - "minimatch": "^7.4.2", - "nopt": "^7.0.0", - "npm-install-checks": "^6.0.0", - "npm-package-arg": "^10.1.0", - "npm-pick-manifest": "^8.0.1", - "npm-registry-fetch": "^14.0.3", - "npmlog": "^7.0.1", - "pacote": "^15.0.8", - "parse-conflict-json": "^3.0.0", - "proc-log": "^3.0.0", - "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^1.0.2", - "read-package-json-fast": "^3.0.2", - "semver": "^7.3.7", - "ssri": "^10.0.1", - "treeverse": "^3.0.0", - "walk-up-path": "^3.0.1" - }, - "bin": { - "arborist": "bin/index.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/config": { - "version": "6.1.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/map-workspaces": "^3.0.2", - "ini": "^4.1.0", - "nopt": "^7.0.0", - "proc-log": "^3.0.0", - "read-package-json-fast": "^3.0.2", - "semver": "^7.3.5", - "walk-up-path": "^3.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/disparity-colors": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "ansi-styles": "^4.3.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/fs": { - "version": "3.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/git": { - "version": "4.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/promise-spawn": "^6.0.0", - "lru-cache": "^7.4.4", - "npm-pick-manifest": "^8.0.0", - "proc-log": "^3.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/installed-package-contents": { - "version": "2.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "bin": { - "installed-package-contents": "lib/index.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/map-workspaces": { - "version": "3.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/name-from-folder": "^2.0.0", - "glob": "^9.3.1", - "minimatch": "^7.4.2", - "read-package-json-fast": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "cacache": "^17.0.0", - "json-parse-even-better-errors": "^3.0.0", - "pacote": "^15.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/move-file": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/name-from-folder": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/node-gyp": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/package-json": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "json-parse-even-better-errors": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/promise-spawn": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "which": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/query": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/run-script": { - "version": "6.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^6.0.0", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^3.0.0", - "which": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@sigstore/protobuf-specs": { - "version": "0.1.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@tootallnate/once": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/npm/node_modules/@tufjs/canonical-json": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@tufjs/models": { - "version": "1.0.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "@tufjs/canonical-json": "1.0.0", - "minimatch": "^7.4.6" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/abbrev": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/abort-controller": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/npm/node_modules/agent-base": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/npm/node_modules/agentkeepalive": { - "version": "4.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "depd": "^2.0.0", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/npm/node_modules/aggregate-error": { - "version": "3.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/npm/node_modules/aproba": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/archy": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/are-we-there-yet": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^4.1.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/balanced-match": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/base64-js": { - "version": "1.5.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/bin-links": { - "version": "4.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "cmd-shim": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "read-cmd-shim": "^4.0.0", - "write-file-atomic": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/binary-extensions": { - "version": "2.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/npm/node_modules/buffer": { - "version": "6.0.3", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/npm/node_modules/builtins": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "semver": "^7.0.0" - } - }, - "node_modules/npm/node_modules/cacache": { - "version": "17.0.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^9.3.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/npm/node_modules/chownr": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/ci-info": { - "version": "3.8.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/cidr-regex": { - "version": "3.1.1", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "ip-regex": "^4.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/npm/node_modules/cli-columns": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/npm/node_modules/cli-table3": { - "version": "0.6.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/npm/node_modules/clone": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npm/node_modules/cmd-shim": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/npm/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/color-support": { - "version": "1.1.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/npm/node_modules/columnify": { - "version": "1.6.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "strip-ansi": "^6.0.1", - "wcwidth": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/npm/node_modules/common-ancestor-path": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/console-control-strings": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/cssesc": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/debug": { - "version": "4.3.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/npm/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/defaults": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm/node_modules/delegates": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/depd": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/npm/node_modules/diff": { - "version": "5.1.0", - "dev": true, - "inBundle": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/npm/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/encoding": { - "version": "0.1.13", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/npm/node_modules/env-paths": { - "version": "2.2.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/npm/node_modules/err-code": { - "version": "2.0.3", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/event-target-shim": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/npm/node_modules/events": { - "version": "3.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/npm/node_modules/fastest-levenshtein": { - "version": "1.0.16", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 4.9.1" - } - }, - "node_modules/npm/node_modules/fs-minipass": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/function-bind": { - "version": "1.1.1", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/gauge": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/glob": { - "version": "9.3.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "minimatch": "^7.4.1", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/has": { - "version": "1.0.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/npm/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/has-unicode": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/hosted-git-info": { - "version": "6.1.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/http-cache-semantics": { - "version": "4.1.1", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause" - }, - "node_modules/npm/node_modules/http-proxy-agent": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/npm/node_modules/https-proxy-agent": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/npm/node_modules/humanize-ms": { - "version": "1.2.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/npm/node_modules/iconv-lite": { - "version": "0.6.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/ieee754": { - "version": "1.2.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "BSD-3-Clause" - }, - "node_modules/npm/node_modules/ignore-walk": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minimatch": "^7.4.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/npm/node_modules/indent-string": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/infer-owner": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/inflight": { - "version": "1.0.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/npm/node_modules/inherits": { - "version": "2.0.4", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/ini": { - "version": "4.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/init-package-json": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-package-arg": "^10.0.0", - "promzard": "^1.0.0", - "read": "^2.0.0", - "read-package-json": "^6.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/ip": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/ip-regex": { - "version": "4.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/is-cidr": { - "version": "4.0.2", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "cidr-regex": "^3.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/is-core-module": { - "version": "2.11.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/npm/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/is-lambda": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/isexe": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/json-stringify-nice": { - "version": "1.1.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/jsonparse": { - "version": "1.3.1", - "dev": true, - "engines": [ - "node >= 0.2.0" - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/just-diff": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/just-diff-apply": { - "version": "5.5.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/libnpmaccess": { - "version": "7.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-package-arg": "^10.1.0", - "npm-registry-fetch": "^14.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/libnpmdiff": { - "version": "5.0.16", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/arborist": "^6.2.8", - "@npmcli/disparity-colors": "^3.0.0", - "@npmcli/installed-package-contents": "^2.0.2", - "binary-extensions": "^2.2.0", - "diff": "^5.1.0", - "minimatch": "^7.4.2", - "npm-package-arg": "^10.1.0", - "pacote": "^15.0.8", - "tar": "^6.1.13" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/libnpmexec": { - "version": "5.0.16", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/arborist": "^6.2.8", - "@npmcli/run-script": "^6.0.0", - "chalk": "^4.1.0", - "ci-info": "^3.7.1", - "npm-package-arg": "^10.1.0", - "npmlog": "^7.0.1", - "pacote": "^15.0.8", - "proc-log": "^3.0.0", - "read": "^2.0.0", - "read-package-json-fast": "^3.0.2", - "semver": "^7.3.7", - "walk-up-path": "^3.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/libnpmfund": { - "version": "4.0.16", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/arborist": "^6.2.8" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/libnpmhook": { - "version": "9.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/libnpmorg": { - "version": "5.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/libnpmpack": { - "version": "5.0.16", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/arborist": "^6.2.8", - "@npmcli/run-script": "^6.0.0", - "npm-package-arg": "^10.1.0", - "pacote": "^15.0.8" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/libnpmpublish": { - "version": "7.1.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "ci-info": "^3.6.1", - "normalize-package-data": "^5.0.0", - "npm-package-arg": "^10.1.0", - "npm-registry-fetch": "^14.0.3", - "proc-log": "^3.0.0", - "semver": "^7.3.7", - "sigstore": "^1.0.0", - "ssri": "^10.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/libnpmsearch": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-registry-fetch": "^14.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/libnpmteam": { - "version": "5.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/libnpmversion": { - "version": "4.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^4.0.1", - "@npmcli/run-script": "^6.0.0", - "json-parse-even-better-errors": "^3.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/lru-cache": { - "version": "7.18.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/npm/node_modules/make-fetch-happen": { - "version": "11.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/minimatch": { - "version": "7.4.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/minipass": { - "version": "4.2.8", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/minipass-collect": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/minipass-fetch": { - "version": "3.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^4.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/npm/node_modules/minipass-flush": { - "version": "1.0.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/minipass-json-stream": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/npm/node_modules/minipass-json-stream/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/minipass-pipeline": { - "version": "1.2.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/minipass-sized": { - "version": "1.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/minizlib": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/mkdirp": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/ms": { - "version": "2.1.3", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/mute-stream": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/negotiator": { - "version": "0.6.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/npm/node_modules/node-gyp": { - "version": "9.3.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^12.13 || ^14.13 || >=16" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/@npmcli/fs": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/abbrev": { - "version": "1.1.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/node-gyp/node_modules/are-we-there-yet": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/cacache": { - "version": "16.1.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob": { - "version": "8.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch": { - "version": "5.1.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/fs-minipass": { - "version": "2.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/gauge": { - "version": "4.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/make-fetch-happen": { - "version": "10.2.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/minipass-fetch": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/nopt": { - "version": "6.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "abbrev": "^1.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/npmlog": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/readable-stream": { - "version": "3.6.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/ssri": { - "version": "9.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/unique-filename": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/unique-slug": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/which": { - "version": "2.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/nopt": { - "version": "7.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "abbrev": "^2.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/normalize-package-data": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-audit-report": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-bundled": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-install-checks": { - "version": "6.1.1", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-normalize-package-bin": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-package-arg": { - "version": "10.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-packlist": { - "version": "7.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "ignore-walk": "^6.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-pick-manifest": { - "version": "8.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^10.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-profile": { - "version": "7.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-registry-fetch": "^14.0.0", - "proc-log": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-registry-fetch": { - "version": "14.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "make-fetch-happen": "^11.0.0", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^10.0.0", - "proc-log": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-user-validate": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npmlog": { - "version": "7.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "are-we-there-yet": "^4.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^5.0.0", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/once": { - "version": "1.4.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/npm/node_modules/p-map": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm/node_modules/pacote": { - "version": "15.1.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^4.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^6.0.1", - "@npmcli/run-script": "^6.0.0", - "cacache": "^17.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^4.0.0", - "npm-package-arg": "^10.0.0", - "npm-packlist": "^7.0.0", - "npm-pick-manifest": "^8.0.0", - "npm-registry-fetch": "^14.0.0", - "proc-log": "^3.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^6.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^1.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "lib/bin.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/parse-conflict-json": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "just-diff": "^6.0.0", - "just-diff-apply": "^5.2.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/path-scurry": { - "version": "1.6.3", - "dev": true, - "inBundle": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^7.14.1", - "minipass": "^4.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/postcss-selector-parser": { - "version": "6.0.11", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/proc-log": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/process": { - "version": "0.11.10", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/npm/node_modules/promise-all-reject-late": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/promise-call-limit": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/promise-inflight": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/promise-retry": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/promzard": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "read": "^2.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/qrcode-terminal": { - "version": "0.12.0", - "dev": true, - "inBundle": true, - "bin": { - "qrcode-terminal": "bin/qrcode-terminal.js" - } - }, - "node_modules/npm/node_modules/read": { - "version": "2.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "mute-stream": "~1.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/read-cmd-shim": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/read-package-json": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "glob": "^9.3.0", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/read-package-json-fast": { - "version": "3.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/readable-stream": { - "version": "4.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/retry": { - "version": "0.12.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/npm/node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/rimraf/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/npm/node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/rimraf/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/safer-buffer": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/npm/node_modules/semver": { - "version": "7.5.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/signal-exit": { - "version": "3.0.7", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/sigstore": { - "version": "1.3.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.1.0", - "make-fetch-happen": "^11.0.1", - "tuf-js": "^1.1.3" - }, - "bin": { - "sigstore": "bin/sigstore.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/smart-buffer": { - "version": "4.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/npm/node_modules/socks": { - "version": "2.7.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/npm/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/npm/node_modules/spdx-correct": { - "version": "3.2.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/npm/node_modules/spdx-exceptions": { - "version": "2.3.0", - "dev": true, - "inBundle": true, - "license": "CC-BY-3.0" - }, - "node_modules/npm/node_modules/spdx-expression-parse": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/npm/node_modules/spdx-license-ids": { - "version": "3.0.13", - "dev": true, - "inBundle": true, - "license": "CC0-1.0" - }, - "node_modules/npm/node_modules/ssri": { - "version": "10.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/npm/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/tar": { - "version": "6.1.13", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/text-table": { - "version": "0.2.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/tiny-relative-date": { - "version": "1.3.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/treeverse": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/tuf-js": { - "version": "1.1.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "@tufjs/models": "1.0.3", - "make-fetch-happen": "^11.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/unique-filename": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/unique-slug": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/util-deprecate": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/validate-npm-package-license": { - "version": "3.0.4", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/npm/node_modules/validate-npm-package-name": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "builtins": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/walk-up-path": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/wcwidth": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/npm/node_modules/which": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/wide-align": { - "version": "1.1.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/npm/node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/write-file-atomic": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/nwmatcher": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz", - "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==", - "dev": true - }, - "node_modules/nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/nyc/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/nyc/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/nyc/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/nyc/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/nyc/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nyc/node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/nyc/node_modules/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/nyc/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/nyc/node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/nyc/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/nyc/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/obj-props": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/obj-props/-/obj-props-1.4.0.tgz", - "integrity": "sha512-p7p/7ltzPDiBs6DqxOrIbtRdwxxVRBj5ROukeNb9RgA+fawhrz5n2hpNz8DDmYR//tviJSj7nUnlppGmONkjiQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", - "dev": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", - "dev": true, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz", - "integrity": "sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ==", - "dev": true, - "dependencies": { - "array.prototype.reduce": "^1.0.5", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.21.2", - "safe-array-concat": "^1.0.0" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.hasown": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", - "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open-editor": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/open-editor/-/open-editor-3.0.0.tgz", - "integrity": "sha512-00Nqoa7k8F4AK1oSFMIIhYku+essXiCljR2L2kV+bl5j90ANgbQgzEeTdZu23LsikDoz+KfhyRHpGLAwpQhugA==", - "dev": true, - "dependencies": { - "env-editor": "^0.4.1", - "execa": "^5.0.0", - "line-column-path": "^2.0.0", - "open": "^7.3.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open-editor/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/open-editor/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open-editor/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/open-editor/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open-editor/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/open-editor/node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-each-series": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-3.0.0.tgz", - "integrity": "sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", - "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", - "dev": true, - "dependencies": { - "p-map": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-filter/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-is-promise": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", - "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-reduce": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", - "integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "dev": true, - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parent-module/node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse5": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", - "integrity": "sha512-w2jx/0tJzvgKwZa58sj2vAYq/S/K1QJfIB3cWYea/Iu1scFPDQQ3IQiVZTHWtRBwAjv2Yd7S/xeZf3XqLDb3bA==", - "dev": true - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-scurry": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.7.0.tgz", - "integrity": "sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==", - "dev": true, - "dependencies": { - "lru-cache": "^9.0.0", - "minipass": "^5.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", - "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidtree": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", - "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-conf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", - "integrity": "sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==", - "dev": true, - "dependencies": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", - "dev": true, - "dependencies": { - "find-up": "^5.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/promise-retry/node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true - }, - "node_modules/proto-props": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/proto-props/-/proto-props-2.0.0.tgz", - "integrity": "sha512-2yma2tog9VaRZY2mn3Wq51uiSW4NcPYT1cQdBagwyrznrilKSZwIZ0UG3ZPL/mx+axEns0hE35T5ufOYZXEnBQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, - "node_modules/pvtsutils": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.2.tgz", - "integrity": "sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==", - "dev": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/pvutils": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", - "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", - "dev": true, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/rambda": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", - "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", - "dev": true - }, - "node_modules/ramda": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz", - "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==", - "dev": true - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/re2": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/re2/-/re2-1.18.0.tgz", - "integrity": "sha512-MoCYZlJ9YUgksND9asyNF2/x532daXU/ARp1UeJbQ5flMY6ryKNEhrWt85aw3YluzOJlC3vXpGgK2a1jb0b4GA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "install-artifact-from-github": "^1.3.1", - "nan": "^2.17.0", - "node-gyp": "^9.3.0" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "node_modules/read-pkg": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.0.0.tgz", - "integrity": "sha512-Ajb9oSjxXBw0YyOiwtQ2dKbAA/vMnUPnY63XcCk+mXo0BwIdQEMgZLZiMWGttQHcUhUgbK0mH85ethMPKXxziw==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^5.0.0", - "parse-json": "^7.0.0", - "type-fest": "^3.8.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/read-pkg-up/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/read-pkg-up/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-pkg/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-pkg/node_modules/lines-and-columns": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", - "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/read-pkg/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", - "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", - "dev": true, - "dependencies": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-pkg/node_modules/parse-json": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.0.0.tgz", - "integrity": "sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.21.4", - "error-ex": "^1.3.2", - "json-parse-even-better-errors": "^3.0.0", - "lines-and-columns": "^2.0.3", - "type-fest": "^3.8.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.9.0.tgz", - "integrity": "sha512-hR8JP2e8UiH7SME5JZjsobBlEiatFoxpzCP+R3ZeCo7kAaG1jXQE5X/buLzogM6GJu8le9Y4OcfNuIQX0rZskA==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/redeyed": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==", - "dev": true, - "dependencies": { - "esprima": "~4.0.0" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/regexp-tree": { - "version": "0.1.25", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.25.tgz", - "integrity": "sha512-szcL3aqw+vEeuxhL1AMYRyeMP+goYF5I/guaH10uJX5xbGyeQeNPPneaj3ZWVmGLCDxrVaaYekkr5R12gk4dJw==", - "dev": true, - "bin": { - "regexp-tree": "bin/regexp-tree" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", - "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regextras": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.8.0.tgz", - "integrity": "sha512-k519uI04Z3SaY0fLX843MRXnDeG2+vHOFsyhiPZvNLe7r8rD2YNRjq4BQLZZ0oAr2NrtvZlICsXysGNFPGa3CQ==", - "dev": true, - "engines": { - "node": ">=0.1.14" - } - }, - "node_modules/registry-auth-token": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", - "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", - "dev": true, - "dependencies": { - "@pnpm/npm-conf": "^2.1.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", - "dev": true, - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "dev": true - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/req-all": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/req-all/-/req-all-0.1.0.tgz", - "integrity": "sha512-ZdvPr8uXy9ujX3KujwE2P1HWkMYgogIhqeAeyb47MqWjSfyxERSm0TNbN/IapCCmWDufXab04AYrRgObaJCJ6Q==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/requireindex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.1.0.tgz", - "integrity": "sha512-LBnkqsDE7BZKvqylbmn7lTIVdpx4K/QCduRATpO5R+wtPmky/a8pN1bO2D6wXppn1497AJF9mNjqAXr6bdl9jg==", - "dev": true, - "engines": { - "node": ">=0.10.5" - } - }, - "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dev": true, - "dependencies": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "node_modules/rimraf": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.0.tgz", - "integrity": "sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==", - "dev": true, - "dependencies": { - "glob": "^10.0.0" - }, - "bin": { - "rimraf": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-array-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", - "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", - "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", - "dev": true, - "dependencies": { - "regexp-tree": "~0.1.1" - } - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/semantic-release": { - "version": "21.0.2", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-21.0.2.tgz", - "integrity": "sha512-Hl6lyJdZ0pAYD07Z1FIUmg06UzSC3fEjHS7U31YppNQ8jOwjjt7pVzW9OfpoO0vbmqD3Tc+b/iZh5fqvKt01OA==", - "dev": true, - "dependencies": { - "@semantic-release/commit-analyzer": "^9.0.2", - "@semantic-release/error": "^3.0.0", - "@semantic-release/github": "^8.0.0", - "@semantic-release/npm": "^10.0.2", - "@semantic-release/release-notes-generator": "^11.0.0", - "aggregate-error": "^4.0.1", - "cosmiconfig": "^8.0.0", - "debug": "^4.0.0", - "env-ci": "^9.0.0", - "execa": "^7.0.0", - "figures": "^5.0.0", - "find-versions": "^5.1.0", - "get-stream": "^6.0.0", - "git-log-parser": "^1.2.0", - "hook-std": "^3.0.0", - "hosted-git-info": "^6.0.0", - "lodash-es": "^4.17.21", - "marked": "^4.1.0", - "marked-terminal": "^5.1.1", - "micromatch": "^4.0.2", - "p-each-series": "^3.0.0", - "p-reduce": "^3.0.0", - "read-pkg-up": "^9.1.0", - "resolve-from": "^5.0.0", - "semver": "^7.3.2", - "semver-diff": "^4.0.0", - "signale": "^1.2.1", - "yargs": "^17.5.1" - }, - "bin": { - "semantic-release": "bin/semantic-release.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/semantic-release/node_modules/aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", - "dev": true, - "dependencies": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/semantic-release/node_modules/clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/cosmiconfig": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", - "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", - "dev": true, - "dependencies": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - } - }, - "node_modules/semantic-release/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/execa": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/semantic-release/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dev": true, - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/semantic-release/node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/semantic-release/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/semantic-release/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/semantic-release/node_modules/marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "dev": true, - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/semantic-release/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/semantic-release/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/semantic-release/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/read-pkg": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", - "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^2.0.0" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/read-pkg-up": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", - "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", - "dev": true, - "dependencies": { - "find-up": "^6.3.0", - "read-pkg": "^7.1.0", - "type-fest": "^2.5.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/semantic-release/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/semantic-release/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", - "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", - "dev": true, - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semver-regex": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-4.0.5.tgz", - "integrity": "sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/signale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", - "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", - "dev": true, - "dependencies": { - "chalk": "^2.3.2", - "figures": "^2.0.0", - "pkg-conf": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/signale/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/signale/node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sister": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/sister/-/sister-3.0.2.tgz", - "integrity": "sha512-p19rtTs+NksBRKW9qn0UhZ8/TUI9BPw9lmtHny+Y3TinWlOa9jWh9xB0AtPSdmOy49NJJJSSe0Ey4C7h0TrcYA==", - "dev": true - }, - "node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "dev": true, - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true - }, - "node_modules/spawn-error-forwarder": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", - "integrity": "sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==", - "dev": true - }, - "node_modules/spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "dependencies": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/spawn-wrap/node_modules/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/spawn-wrap/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/spawn-wrap/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/spawn-wrap/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/spawn-wrap/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==" - }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/ssri/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ssri/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", - "dev": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "dev": true, - "dependencies": { - "internal-slot": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", - "dev": true, - "dependencies": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-combiner2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/stream-combiner2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/stream-combiner2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/stream-combiner2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-argv": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.1.2.tgz", - "integrity": "sha512-mBqPGEOMNJKXRo7z0keX0wlAhbBAjilUdPW13nN0PecVryZxdHIeM7TqbsSUA7VYuS00HGC6mojP7DlQzfa9ZA==", - "dev": true, - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-env-interpolation": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz", - "integrity": "sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==", - "dev": true - }, - "node_modules/string-natural-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", - "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==", - "dev": true - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/string-width/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "node_modules/tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/minipass": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", - "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/tempy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.0.0.tgz", - "integrity": "sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==", - "dev": true, - "dependencies": { - "is-stream": "^3.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^2.12.2", - "unique-string": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-exclude/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/tlds": { - "version": "1.238.0", - "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.238.0.tgz", - "integrity": "sha512-lFPF9pZFhLrPodaJ0wt9QIN0l8jOxqmUezGZnm7BfkDSVd9q667oVIJukLVzhF+4oW7uDlrLlfJrL5yu9RWwew==", - "dev": true, - "bin": { - "tlds": "bin.js" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/to-regex-range/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/to-regex/node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tough-cookie/node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/traverse": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz", - "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", - "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=12.20" - } - }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "dev": true, - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, - "dependencies": { - "unique-slug": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/unique-string": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", - "dev": true, - "dependencies": { - "crypto-random-string": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", - "dev": true - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unixify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", - "integrity": "sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==", - "dev": true, - "dependencies": { - "normalize-path": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unixify/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", - "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", - "dev": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true - }, - "node_modules/url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", - "dev": true - }, - "node_modules/url-regex-safe": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/url-regex-safe/-/url-regex-safe-2.1.0.tgz", - "integrity": "sha512-nfrmOb62+kN4JJRkY/w9QzZeuc63/ddIFfqS9ntok0UYsJW3C5J/jGvYZecwk8V68og2zWA7fcVn4GUXIi5qbg==", - "deprecated": "Please upgrade to url-regex-safe@v3.0.0+ AND install re2 as an additional dependency in your project via `npm install re2` or `yarn add re2`.", - "dev": true, - "dependencies": { - "ip-regex": "^4.3.0", - "re2": "^1.16.0", - "tlds": "^1.217.0" - }, - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/url-regexp": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/url-regexp/-/url-regexp-1.0.2.tgz", - "integrity": "sha512-Tt0N/yu3iNSCqZ7wJ6AxTtF/QSemtfzLH+astikB0CR/u/7X132VaBdiNEXbiAGiU+LXsIpyB2Hqz8OY4zw8MA==", - "dev": true - }, - "node_modules/urlpattern-polyfill": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz", - "integrity": "sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==", - "dev": true - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", - "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/value-or-promise": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", - "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/webcrypto-core": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.7.tgz", - "integrity": "sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g==", - "dev": true, - "dependencies": { - "@peculiar/asn1-schema": "^2.3.6", - "@peculiar/json-schema": "^1.1.12", - "asn1js": "^3.0.1", - "pvtsutils": "^1.3.2", - "tslib": "^2.4.0" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/whatwg-url-compat": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz", - "integrity": "sha512-vbg5+JVNwGtHRI3GheZGWrcUlxF9BXHbA80dLa+2XqJjlV/BK6upoi2j8dIRW9FGPUUyaMm7Hf1pTexHnsk85g==", - "dev": true, - "dependencies": { - "tr46": "~0.0.1" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dev": true, - "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true - }, - "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", - "integrity": "sha512-jRKe/iQYMyVJpzPH+3HL97Lgu5HrCfii+qSo+TfjKHtOnvbnvdVfMYrn9Q34YV81M2e5sviJlI6Ko9y+nByzvA==", - "dev": true - }, - "node_modules/xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yaml": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", - "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yaml-eslint-parser": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-0.5.0.tgz", - "integrity": "sha512-nJeyLA3YHAzhBTZbRAbu3W6xrSCucyxExmA+ZDtEdUFpGllxAZpto2Zxo2IG0r0eiuEiBM4e+wiAdxTziTq94g==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.0.0", - "lodash": "^4.17.21", - "yaml": "^1.10.2" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/yaml-eslint-parser/node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/yaml-eslint-parser/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs-unparser/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/package.json b/package.json index 530b0b44c..4545157f1 100644 --- a/package.json +++ b/package.json @@ -111,7 +111,7 @@ "check-readme": "babel-node ./src/bin/generateDocs.js --check", "create-readme": "babel-node ./src/bin/generateDocs.js", "create-rule": "babel-node ./src/bin/generateRule.js", - "install-offline": "npm install --prefer-offline --no-audit", + "install-offline": "pnpm install --prefer-offline --no-audit", "lint": "npm run lint-arg -- .", "lint-arg": "eslint --report-unused-disable-directives", "lint-fix": "npm run lint-arg -- --fix .", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 000000000..15d0296f3 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,9588 @@ +lockfileVersion: '6.0' + +dependencies: + '@es-joy/jsdoccomment': + specifier: ~0.37.1 + version: 0.37.1 + are-docs-informative: + specifier: ^0.0.2 + version: 0.0.2 + comment-parser: + specifier: 1.3.1 + version: 1.3.1 + debug: + specifier: ^4.3.4 + version: 4.3.4(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 + semver: + specifier: ^7.5.0 + version: 7.5.0 + spdx-expression-parse: + specifier: ^3.0.1 + version: 3.0.1 + +devDependencies: + '@babel/cli': + specifier: ^7.21.5 + version: 7.21.5(@babel/core@7.21.5) + '@babel/core': + specifier: ^7.21.5 + version: 7.21.5 + '@babel/eslint-parser': + specifier: ^7.21.3 + version: 7.21.3(@babel/core@7.21.5)(eslint@8.39.0) + '@babel/node': + specifier: ^7.20.7 + version: 7.20.7(@babel/core@7.21.5) + '@babel/plugin-syntax-class-properties': + specifier: ^7.12.13 + version: 7.12.13(@babel/core@7.21.5) + '@babel/plugin-transform-flow-strip-types': + specifier: ^7.21.0 + version: 7.21.0(@babel/core@7.21.5) + '@babel/preset-env': + specifier: ^7.21.5 + version: 7.21.5(@babel/core@7.21.5) + '@babel/register': + specifier: ^7.21.0 + version: 7.21.0(@babel/core@7.21.5) + '@es-joy/jsdoc-eslint-parser': + specifier: ^0.17.0 + version: 0.17.0 + '@hkdobrev/run-if-changed': + specifier: ^0.3.1 + version: 0.3.1 + '@semantic-release/commit-analyzer': + specifier: ^9.0.2 + version: 9.0.2(semantic-release@21.0.2) + '@semantic-release/github': + specifier: ^8.0.7 + version: 8.0.7(semantic-release@21.0.2) + '@semantic-release/npm': + specifier: ^10.0.3 + version: 10.0.3(semantic-release@21.0.2) + '@typescript-eslint/parser': + specifier: ^5.59.1 + version: 5.59.1(eslint@8.39.0)(typescript@5.0.4) + babel-plugin-add-module-exports: + specifier: ^1.0.4 + version: 1.0.4 + babel-plugin-istanbul: + specifier: ^6.1.1 + version: 6.1.1 + camelcase: + specifier: ^6.3.0 + version: 6.3.0 + chai: + specifier: ^4.3.7 + version: 4.3.7 + cross-env: + specifier: ^7.0.3 + version: 7.0.3 + decamelize: + specifier: ^5.0.1 + version: 5.0.1 + eslint: + specifier: ^8.39.0 + version: 8.39.0 + eslint-config-canonical: + specifier: ~33.0.1 + version: 33.0.1(@babel/core@7.21.5)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4) + gitdown: + specifier: ^3.1.5 + version: 3.1.5 + glob: + specifier: ^10.2.2 + version: 10.2.2 + husky: + specifier: ^8.0.3 + version: 8.0.3 + jsdoc-type-pratt-parser: + specifier: ^4.0.0 + version: 4.0.0 + lint-staged: + specifier: ^13.2.2 + version: 13.2.2 + lodash.defaultsdeep: + specifier: ^4.6.1 + version: 4.6.1 + mocha: + specifier: ^10.2.0 + version: 10.2.0 + nyc: + specifier: ^15.1.0 + version: 15.1.0 + open-editor: + specifier: ^3.0.0 + version: 3.0.0 + rimraf: + specifier: ^5.0.0 + version: 5.0.0 + semantic-release: + specifier: ^21.0.2 + version: 21.0.2 + typescript: + specifier: ^5.0.4 + version: 5.0.4 + +packages: + + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 + dev: true + + /@ardatan/sync-fetch@0.0.1: + resolution: {integrity: sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==} + engines: {node: '>=14'} + dependencies: + node-fetch: 2.6.9 + transitivePeerDependencies: + - encoding + dev: true + + /@babel/cli@7.21.5(@babel/core@7.21.5): + resolution: {integrity: sha512-TOKytQ9uQW9c4np8F+P7ZfPINy5Kv+pizDIUwSVH8X5zHgYHV4AA8HE5LA450xXeu4jEfmUckTYvv1I4S26M/g==} + engines: {node: '>=6.9.0'} + hasBin: true + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@jridgewell/trace-mapping': 0.3.18 + commander: 4.1.1 + convert-source-map: 1.9.0 + fs-readdir-recursive: 1.1.0 + glob: 7.2.3 + make-dir: 2.1.0 + slash: 2.0.0 + optionalDependencies: + '@nicolo-ribaudo/chokidar-2': 2.1.8-no-fsevents.3 + chokidar: 3.5.3 + dev: true + + /@babel/code-frame@7.21.4: + resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + dev: true + + /@babel/compat-data@7.21.7: + resolution: {integrity: sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.21.5: + resolution: {integrity: sha512-9M398B/QH5DlfCOTKDZT1ozXr0x8uBEeFd+dJraGUZGiaNpGCDVGCc14hZexsMblw3XxltJ+6kSvogp9J+5a9g==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.21.4 + '@babel/generator': 7.21.5 + '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) + '@babel/helper-module-transforms': 7.21.5 + '@babel/helpers': 7.21.5 + '@babel/parser': 7.21.8 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.5 + '@babel/types': 7.21.5 + convert-source-map: 1.9.0 + debug: 4.3.4(supports-color@8.1.1) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/eslint-parser@7.21.3(@babel/core@7.21.5)(eslint@8.39.0): + resolution: {integrity: sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg==} + engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + peerDependencies: + '@babel/core': '>=7.11.0' + eslint: ^7.5.0 || ^8.0.0 + dependencies: + '@babel/core': 7.21.5 + '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 + eslint: 8.39.0 + eslint-visitor-keys: 2.1.0 + semver: 6.3.0 + dev: true + + /@babel/eslint-plugin@7.19.1(@babel/eslint-parser@7.21.3)(eslint@8.39.0): + resolution: {integrity: sha512-ElGPkQPapKMa3zVqXHkZYzuL7I5LbRw9UWBUArgWsdWDDb9XcACqOpBib5tRPA9XvbVZYrFUkoQPbiJ4BFvu4w==} + engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + peerDependencies: + '@babel/eslint-parser': '>=7.11.0' + eslint: '>=7.5.0' + dependencies: + '@babel/eslint-parser': 7.21.3(@babel/core@7.21.5)(eslint@8.39.0) + eslint: 8.39.0 + eslint-rule-composer: 0.3.0 + dev: true + + /@babel/generator@7.21.5: + resolution: {integrity: sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure@7.18.6: + resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + dev: true + + /@babel/helper-builder-binary-assignment-operator-visitor@7.21.5: + resolution: {integrity: sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + dev: true + + /@babel/helper-compilation-targets@7.21.5(@babel/core@7.21.5): + resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.21.7 + '@babel/core': 7.21.5 + '@babel/helper-validator-option': 7.21.0 + browserslist: 4.21.5 + lru-cache: 5.1.1 + semver: 6.3.0 + dev: true + + /@babel/helper-create-class-features-plugin@7.21.8(@babel/core@7.21.5): + resolution: {integrity: sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.21.5 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-member-expression-to-functions': 7.21.5 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-replace-supers': 7.21.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/helper-split-export-declaration': 7.18.6 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-create-regexp-features-plugin@7.21.8(@babel/core@7.21.5): + resolution: {integrity: sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-annotate-as-pure': 7.18.6 + regexpu-core: 5.3.2 + semver: 6.3.0 + dev: true + + /@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.21.5): + resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} + peerDependencies: + '@babel/core': ^7.4.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) + '@babel/helper-plugin-utils': 7.21.5 + debug: 4.3.4(supports-color@8.1.1) + lodash.debounce: 4.0.8 + resolve: 1.22.2 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-environment-visitor@7.21.5: + resolution: {integrity: sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name@7.21.0: + resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/types': 7.21.5 + dev: true + + /@babel/helper-hoist-variables@7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + dev: true + + /@babel/helper-member-expression-to-functions@7.21.5: + resolution: {integrity: sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + dev: true + + /@babel/helper-module-imports@7.21.4: + resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + dev: true + + /@babel/helper-module-transforms@7.21.5: + resolution: {integrity: sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.21.5 + '@babel/helper-module-imports': 7.21.4 + '@babel/helper-simple-access': 7.21.5 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.5 + '@babel/types': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-optimise-call-expression@7.18.6: + resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + dev: true + + /@babel/helper-plugin-utils@7.21.5: + resolution: {integrity: sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.21.5): + resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.21.5 + '@babel/helper-wrap-function': 7.20.5 + '@babel/types': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-replace-supers@7.21.5: + resolution: {integrity: sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.21.5 + '@babel/helper-member-expression-to-functions': 7.21.5 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.5 + '@babel/types': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-simple-access@7.21.5: + resolution: {integrity: sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + dev: true + + /@babel/helper-skip-transparent-expression-wrappers@7.20.0: + resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + dev: true + + /@babel/helper-split-export-declaration@7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + dev: true + + /@babel/helper-string-parser@7.21.5: + resolution: {integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier@7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-option@7.21.0: + resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-wrap-function@7.20.5: + resolution: {integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.21.0 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.5 + '@babel/types': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helpers@7.21.5: + resolution: {integrity: sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.5 + '@babel/types': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight@7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/node@7.20.7(@babel/core@7.21.5): + resolution: {integrity: sha512-AQt3gVcP+fpFuoFn4FmIW/+5JovvEoA9og4Y1LrRw0pv3jkl4tujZMMy3X/3ugjLrEy3k1aNywo3JIl3g+jVXQ==} + engines: {node: '>=6.9.0'} + hasBin: true + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/register': 7.21.0(@babel/core@7.21.5) + commander: 4.1.1 + core-js: 3.30.1 + node-environment-flags: 1.0.6 + regenerator-runtime: 0.13.11 + v8flags: 3.2.0 + dev: true + + /@babel/parser@7.21.8: + resolution: {integrity: sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.21.5 + dev: true + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.20.7(@babel/core@7.21.5): + resolution: {integrity: sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.21.5) + dev: true + + /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.21.5): + resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-environment-visitor': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.21.5) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.21.5) + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.21.5) + '@babel/helper-plugin-utils': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-class-static-block@7.21.0(@babel/core@7.21.5): + resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.21.5) + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.21.5) + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.21.5) + dev: true + + /@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.21.5): + resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.21.5) + dev: true + + /@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.21.5) + dev: true + + /@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.21.5): + resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.21.5) + dev: true + + /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.21.5) + dev: true + + /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.21.5) + dev: true + + /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.21.5): + resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.21.7 + '@babel/core': 7.21.5 + '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-transform-parameters': 7.21.3(@babel/core@7.21.5) + dev: true + + /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.21.5) + dev: true + + /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.21.5): + resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.21.5) + dev: true + + /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.21.5) + '@babel/helper-plugin-utils': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-private-property-in-object@7.21.0(@babel/core@7.21.5): + resolution: {integrity: sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.21.5) + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.21.5) + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} + engines: {node: '>=4'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-create-regexp-features-plugin': 7.21.8(@babel/core@7.21.5) + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.21.5): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.21.5): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.21.5): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.21.5): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.21.5): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-flow@7.21.4(@babel/core@7.21.5): + resolution: {integrity: sha512-l9xd3N+XG4fZRxEP3vXdK6RW7vN1Uf5dxzRC/09wV86wqZ/YYQooBIGNsiRdfNR3/q2/5pPzV4B54J/9ctX5jw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.21.5): + resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.21.5): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.21.5): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-jsx@7.21.4(@babel/core@7.21.5): + resolution: {integrity: sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.21.5): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.21.5): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.21.5): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.21.5): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.21.5): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.21.5): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.21.5): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.21.5): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-arrow-functions@7.21.5(@babel/core@7.21.5): + resolution: {integrity: sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-async-to-generator@7.20.7(@babel/core@7.21.5): + resolution: {integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-module-imports': 7.21.4 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.21.5) + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-block-scoping@7.21.0(@babel/core@7.21.5): + resolution: {integrity: sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-classes@7.21.0(@babel/core@7.21.5): + resolution: {integrity: sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) + '@babel/helper-environment-visitor': 7.21.5 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-replace-supers': 7.21.5 + '@babel/helper-split-export-declaration': 7.18.6 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-computed-properties@7.21.5(@babel/core@7.21.5): + resolution: {integrity: sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/template': 7.20.7 + dev: true + + /@babel/plugin-transform-destructuring@7.21.3(@babel/core@7.21.5): + resolution: {integrity: sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-create-regexp-features-plugin': 7.21.8(@babel/core@7.21.5) + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-duplicate-keys@7.18.9(@babel/core@7.21.5): + resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-flow-strip-types@7.21.0(@babel/core@7.21.5): + resolution: {integrity: sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-flow': 7.21.4(@babel/core@7.21.5) + dev: true + + /@babel/plugin-transform-for-of@7.21.5(@babel/core@7.21.5): + resolution: {integrity: sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-function-name@7.18.9(@babel/core@7.21.5): + resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) + '@babel/helper-function-name': 7.21.0 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-literals@7.18.9(@babel/core@7.21.5): + resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-modules-amd@7.20.11(@babel/core@7.21.5): + resolution: {integrity: sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-module-transforms': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-commonjs@7.21.5(@babel/core@7.21.5): + resolution: {integrity: sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-module-transforms': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-simple-access': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-systemjs@7.20.11(@babel/core@7.21.5): + resolution: {integrity: sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-module-transforms': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-validator-identifier': 7.19.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-module-transforms': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex@7.20.5(@babel/core@7.21.5): + resolution: {integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-create-regexp-features-plugin': 7.21.8(@babel/core@7.21.5) + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-new-target@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-object-super@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-replace-supers': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-parameters@7.21.3(@babel/core@7.21.5): + resolution: {integrity: sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-react-jsx@7.21.5(@babel/core@7.21.5): + resolution: {integrity: sha512-ELdlq61FpoEkHO6gFRpfj0kUgSwQTGoaEU8eMRoS8Dv3v6e7BjEAj5WMtIBRdHUeAioMhKP5HyxNzNnP+heKbA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-module-imports': 7.21.4 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-jsx': 7.21.4(@babel/core@7.21.5) + '@babel/types': 7.21.5 + dev: true + + /@babel/plugin-transform-regenerator@7.21.5(@babel/core@7.21.5): + resolution: {integrity: sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + regenerator-transform: 0.15.1 + dev: true + + /@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-spread@7.20.7(@babel/core@7.21.5): + resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + dev: true + + /@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-template-literals@7.18.9(@babel/core@7.21.5): + resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-typeof-symbol@7.18.9(@babel/core@7.21.5): + resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-unicode-escapes@7.21.5(@babel/core@7.21.5): + resolution: {integrity: sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.21.5): + resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-create-regexp-features-plugin': 7.21.8(@babel/core@7.21.5) + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/preset-env@7.21.5(@babel/core@7.21.5): + resolution: {integrity: sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.21.7 + '@babel/core': 7.21.5 + '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-validator-option': 7.21.0 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7(@babel/core@7.21.5) + '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.21.5) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-proposal-class-static-block': 7.21.0(@babel/core@7.21.5) + '@babel/plugin-proposal-dynamic-import': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-proposal-export-namespace-from': 7.18.9(@babel/core@7.21.5) + '@babel/plugin-proposal-json-strings': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.21.5) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.21.5) + '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.21.5) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-proposal-private-property-in-object': 7.21.0(@babel/core@7.21.5) + '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.21.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.21.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.21.5) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.21.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.21.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.21.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.21.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.21.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.21.5) + '@babel/plugin-transform-arrow-functions': 7.21.5(@babel/core@7.21.5) + '@babel/plugin-transform-async-to-generator': 7.20.7(@babel/core@7.21.5) + '@babel/plugin-transform-block-scoped-functions': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-transform-block-scoping': 7.21.0(@babel/core@7.21.5) + '@babel/plugin-transform-classes': 7.21.0(@babel/core@7.21.5) + '@babel/plugin-transform-computed-properties': 7.21.5(@babel/core@7.21.5) + '@babel/plugin-transform-destructuring': 7.21.3(@babel/core@7.21.5) + '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-transform-duplicate-keys': 7.18.9(@babel/core@7.21.5) + '@babel/plugin-transform-exponentiation-operator': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-transform-for-of': 7.21.5(@babel/core@7.21.5) + '@babel/plugin-transform-function-name': 7.18.9(@babel/core@7.21.5) + '@babel/plugin-transform-literals': 7.18.9(@babel/core@7.21.5) + '@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-transform-modules-amd': 7.20.11(@babel/core@7.21.5) + '@babel/plugin-transform-modules-commonjs': 7.21.5(@babel/core@7.21.5) + '@babel/plugin-transform-modules-systemjs': 7.20.11(@babel/core@7.21.5) + '@babel/plugin-transform-modules-umd': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5(@babel/core@7.21.5) + '@babel/plugin-transform-new-target': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-transform-object-super': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-transform-parameters': 7.21.3(@babel/core@7.21.5) + '@babel/plugin-transform-property-literals': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-transform-regenerator': 7.21.5(@babel/core@7.21.5) + '@babel/plugin-transform-reserved-words': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-transform-shorthand-properties': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-transform-spread': 7.20.7(@babel/core@7.21.5) + '@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-transform-template-literals': 7.18.9(@babel/core@7.21.5) + '@babel/plugin-transform-typeof-symbol': 7.18.9(@babel/core@7.21.5) + '@babel/plugin-transform-unicode-escapes': 7.21.5(@babel/core@7.21.5) + '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.21.5) + '@babel/preset-modules': 0.1.5(@babel/core@7.21.5) + '@babel/types': 7.21.5 + babel-plugin-polyfill-corejs2: 0.3.3(@babel/core@7.21.5) + babel-plugin-polyfill-corejs3: 0.6.0(@babel/core@7.21.5) + babel-plugin-polyfill-regenerator: 0.4.1(@babel/core@7.21.5) + core-js-compat: 3.30.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/preset-modules@0.1.5(@babel/core@7.21.5): + resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.21.5) + '@babel/types': 7.21.5 + esutils: 2.0.3 + dev: true + + /@babel/register@7.21.0(@babel/core@7.21.5): + resolution: {integrity: sha512-9nKsPmYDi5DidAqJaQooxIhsLJiNMkGr8ypQ8Uic7cIox7UCDsM7HuUGxdGT7mSDTYbqzIdsOWzfBton/YJrMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + clone-deep: 4.0.1 + find-cache-dir: 2.1.0 + make-dir: 2.1.0 + pirates: 4.0.5 + source-map-support: 0.5.21 + dev: true + + /@babel/regjsgen@0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + dev: true + + /@babel/runtime@7.21.5: + resolution: {integrity: sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + dev: true + + /@babel/template@7.20.7: + resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.21.4 + '@babel/parser': 7.21.8 + '@babel/types': 7.21.5 + dev: true + + /@babel/traverse@7.21.5: + resolution: {integrity: sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.21.4 + '@babel/generator': 7.21.5 + '@babel/helper-environment-visitor': 7.21.5 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.21.8 + '@babel/types': 7.21.5 + debug: 4.3.4(supports-color@8.1.1) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.21.5: + resolution: {integrity: sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.21.5 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + dev: true + + /@colors/colors@1.5.0: + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + requiresBuild: true + dev: true + optional: true + + /@es-joy/jsdoc-eslint-parser@0.17.0: + resolution: {integrity: sha512-QYmORkVbSmejgrI7zFCJmsZJPiO+yhQoIILLjMrC99XPQfqBO+2GidtWEcP8cDSFWbUDbJeCgXNoRvMq00hI5Q==} + engines: {node: '>=12.0.0'} + dependencies: + '@babel/core': 7.21.5 + '@babel/eslint-parser': 7.21.3(@babel/core@7.21.5)(eslint@8.39.0) + '@es-joy/jsdoccomment': 0.30.0 + '@typescript-eslint/parser': 5.59.1(eslint@8.39.0)(typescript@4.9.5) + eslint: 8.39.0 + esquery: 1.5.0 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@es-joy/jsdoccomment@0.20.1: + resolution: {integrity: sha512-oeJK41dcdqkvdZy/HctKklJNkt/jh+av3PZARrZEl+fs/8HaHeeYoAvEwOV0u5I6bArTF17JEsTZMY359e/nfQ==} + engines: {node: ^12 || ^14 || ^16 || ^17} + dependencies: + comment-parser: 1.3.0 + esquery: 1.5.0 + jsdoc-type-pratt-parser: 2.2.5 + dev: true + + /@es-joy/jsdoccomment@0.30.0: + resolution: {integrity: sha512-U30cjaHCjdUqtbMgChJl80BP25GSRWg0/1R3UdB2ksitAo2oDYdRMrvzwuM21jcsFbEcLNAqwQGTCg+5CVbSIA==} + engines: {node: ^14 || ^16 || ^17 || ^18} + dependencies: + comment-parser: 1.3.1 + esquery: 1.5.0 + jsdoc-type-pratt-parser: 3.1.0 + dev: true + + /@es-joy/jsdoccomment@0.37.1: + resolution: {integrity: sha512-5vxWJ1gEkEF0yRd0O+uK6dHJf7adrxwQSX8PuRiPfFSAbNLnY0ZJfXaZucoz14Jj2N11xn2DnlEPwWRpYpvRjg==} + engines: {node: ^14 || ^16 || ^17 || ^18 || ^19 || ^20} + dependencies: + comment-parser: 1.3.1 + esquery: 1.5.0 + jsdoc-type-pratt-parser: 4.0.0 + dev: false + + /@eslint-community/eslint-utils@4.4.0(eslint@8.39.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.39.0 + eslint-visitor-keys: 3.4.0 + dev: true + + /@eslint-community/regexpp@4.5.1: + resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.0.2: + resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4(supports-color@8.1.1) + espree: 9.5.1 + globals: 13.20.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.39.0: + resolution: {integrity: sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@gar/promisify@1.1.3: + resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + dev: true + + /@graphql-eslint/eslint-plugin@3.18.0(@babel/core@7.21.5)(graphql@16.6.0): + resolution: {integrity: sha512-riEEfRycc0+pWxcEWqHi8woRxzg1xZqAfh9DRACJUR7bTN8dmc1N04i7+pvW4sevClUFYC2wuL1Vtr+DwzXLUg==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + '@babel/code-frame': 7.21.4 + '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.21.5)(graphql@16.6.0) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.21.5)(graphql@16.6.0) + '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + chalk: 4.1.2 + debug: 4.3.4(supports-color@8.1.1) + fast-glob: 3.2.12 + graphql: 16.6.0 + graphql-config: 4.5.0(graphql@16.6.0) + graphql-depth-limit: 1.1.0(graphql@16.6.0) + lodash.lowercase: 4.3.0 + tslib: 2.5.0 + transitivePeerDependencies: + - '@babel/core' + - '@types/node' + - bufferutil + - cosmiconfig-toml-loader + - encoding + - supports-color + - utf-8-validate + dev: true + + /@graphql-tools/batch-execute@8.5.22(graphql@16.6.0): + resolution: {integrity: sha512-hcV1JaY6NJQFQEwCKrYhpfLK8frSXDbtNMoTur98u10Cmecy1zrqNKSqhEyGetpgHxaJRqszGzKeI3RuroDN6A==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + dataloader: 2.2.2 + graphql: 16.6.0 + tslib: 2.5.0 + value-or-promise: 1.0.12 + dev: true + + /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.21.5)(graphql@16.6.0): + resolution: {integrity: sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.21.5)(graphql@16.6.0) + '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + globby: 11.1.0 + graphql: 16.6.0 + tslib: 2.5.0 + unixify: 1.0.0 + transitivePeerDependencies: + - '@babel/core' + - supports-color + dev: true + + /@graphql-tools/delegate@9.0.35(graphql@16.6.0): + resolution: {integrity: sha512-jwPu8NJbzRRMqi4Vp/5QX1vIUeUPpWmlQpOkXQD2r1X45YsVceyUUBnktCrlJlDB4jPRVy7JQGwmYo3KFiOBMA==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/batch-execute': 8.5.22(graphql@16.6.0) + '@graphql-tools/executor': 0.0.20(graphql@16.6.0) + '@graphql-tools/schema': 9.0.19(graphql@16.6.0) + '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + dataloader: 2.2.2 + graphql: 16.6.0 + tslib: 2.5.0 + value-or-promise: 1.0.12 + dev: true + + /@graphql-tools/executor-graphql-ws@0.0.14(graphql@16.6.0): + resolution: {integrity: sha512-P2nlkAsPZKLIXImFhj0YTtny5NQVGSsKnhi7PzXiaHSXc6KkzqbWZHKvikD4PObanqg+7IO58rKFpGXP7eeO+w==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + '@repeaterjs/repeater': 3.0.4 + '@types/ws': 8.5.4 + graphql: 16.6.0 + graphql-ws: 5.12.1(graphql@16.6.0) + isomorphic-ws: 5.0.0(ws@8.13.0) + tslib: 2.5.0 + ws: 8.13.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: true + + /@graphql-tools/executor-http@0.1.9(graphql@16.6.0): + resolution: {integrity: sha512-tNzMt5qc1ptlHKfpSv9wVBVKCZ7gks6Yb/JcYJluxZIT4qRV+TtOFjpptfBU63usgrGVOVcGjzWc/mt7KhmmpQ==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + '@repeaterjs/repeater': 3.0.4 + '@whatwg-node/fetch': 0.8.8 + dset: 3.1.2 + extract-files: 11.0.0 + graphql: 16.6.0 + meros: 1.2.1 + tslib: 2.5.0 + value-or-promise: 1.0.12 + transitivePeerDependencies: + - '@types/node' + dev: true + + /@graphql-tools/executor-legacy-ws@0.0.11(graphql@16.6.0): + resolution: {integrity: sha512-4ai+NnxlNfvIQ4c70hWFvOZlSUN8lt7yc+ZsrwtNFbFPH/EroIzFMapAxM9zwyv9bH38AdO3TQxZ5zNxgBdvUw==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + '@types/ws': 8.5.4 + graphql: 16.6.0 + isomorphic-ws: 5.0.0(ws@8.13.0) + tslib: 2.5.0 + ws: 8.13.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: true + + /@graphql-tools/executor@0.0.20(graphql@16.6.0): + resolution: {integrity: sha512-GdvNc4vszmfeGvUqlcaH1FjBoguvMYzxAfT6tDd4/LgwymepHhinqLNA5otqwVLW+JETcDaK7xGENzFomuE6TA==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.6.0) + '@repeaterjs/repeater': 3.0.4 + graphql: 16.6.0 + tslib: 2.5.0 + value-or-promise: 1.0.12 + dev: true + + /@graphql-tools/graphql-file-loader@7.5.17(graphql@16.6.0): + resolution: {integrity: sha512-hVwwxPf41zOYgm4gdaZILCYnKB9Zap7Ys9OhY1hbwuAuC4MMNY9GpUjoTU3CQc3zUiPoYStyRtUGkHSJZ3HxBw==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/import': 6.7.18(graphql@16.6.0) + '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + globby: 11.1.0 + graphql: 16.6.0 + tslib: 2.5.0 + unixify: 1.0.0 + dev: true + + /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.21.5)(graphql@16.6.0): + resolution: {integrity: sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@babel/parser': 7.21.8 + '@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.21.5) + '@babel/traverse': 7.21.5 + '@babel/types': 7.21.5 + '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + graphql: 16.6.0 + tslib: 2.5.0 + transitivePeerDependencies: + - '@babel/core' + - supports-color + dev: true + + /@graphql-tools/import@6.7.18(graphql@16.6.0): + resolution: {integrity: sha512-XQDdyZTp+FYmT7as3xRWH/x8dx0QZA2WZqfMF5EWb36a0PiH7WwlRQYIdyYXj8YCLpiWkeBXgBRHmMnwEYR8iQ==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + graphql: 16.6.0 + resolve-from: 5.0.0 + tslib: 2.5.0 + dev: true + + /@graphql-tools/json-file-loader@7.4.18(graphql@16.6.0): + resolution: {integrity: sha512-AJ1b6Y1wiVgkwsxT5dELXhIVUPs/u3VZ8/0/oOtpcoyO/vAeM5rOvvWegzicOOnQw8G45fgBRMkkRfeuwVt6+w==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + globby: 11.1.0 + graphql: 16.6.0 + tslib: 2.5.0 + unixify: 1.0.0 + dev: true + + /@graphql-tools/load@7.8.14(graphql@16.6.0): + resolution: {integrity: sha512-ASQvP+snHMYm+FhIaLxxFgVdRaM0vrN9wW2BKInQpktwWTXVyk+yP5nQUCEGmn0RTdlPKrffBaigxepkEAJPrg==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/schema': 9.0.19(graphql@16.6.0) + '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + graphql: 16.6.0 + p-limit: 3.1.0 + tslib: 2.5.0 + dev: true + + /@graphql-tools/merge@8.4.1(graphql@16.6.0): + resolution: {integrity: sha512-hssnPpZ818mxgl5+GfyOOSnnflAxiaTn1A1AojZcIbh4J52sS1Q0gSuBR5VrnUDjuxiqoCotpXdAQl+K+U6KLQ==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + graphql: 16.6.0 + tslib: 2.5.0 + dev: true + + /@graphql-tools/schema@9.0.19(graphql@16.6.0): + resolution: {integrity: sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/merge': 8.4.1(graphql@16.6.0) + '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + graphql: 16.6.0 + tslib: 2.5.0 + value-or-promise: 1.0.12 + dev: true + + /@graphql-tools/url-loader@7.17.18(graphql@16.6.0): + resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@ardatan/sync-fetch': 0.0.1 + '@graphql-tools/delegate': 9.0.35(graphql@16.6.0) + '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.6.0) + '@graphql-tools/executor-http': 0.1.9(graphql@16.6.0) + '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.6.0) + '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + '@graphql-tools/wrap': 9.4.2(graphql@16.6.0) + '@types/ws': 8.5.4 + '@whatwg-node/fetch': 0.8.8 + graphql: 16.6.0 + isomorphic-ws: 5.0.0(ws@8.13.0) + tslib: 2.5.0 + value-or-promise: 1.0.12 + ws: 8.13.0 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - encoding + - utf-8-validate + dev: true + + /@graphql-tools/utils@9.2.1(graphql@16.6.0): + resolution: {integrity: sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.6.0) + graphql: 16.6.0 + tslib: 2.5.0 + dev: true + + /@graphql-tools/wrap@9.4.2(graphql@16.6.0): + resolution: {integrity: sha512-DFcd9r51lmcEKn0JW43CWkkI2D6T9XI1juW/Yo86i04v43O9w2/k4/nx2XTJv4Yv+iXwUw7Ok81PGltwGJSDSA==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/delegate': 9.0.35(graphql@16.6.0) + '@graphql-tools/schema': 9.0.19(graphql@16.6.0) + '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + graphql: 16.6.0 + tslib: 2.5.0 + value-or-promise: 1.0.12 + dev: true + + /@graphql-typed-document-node/core@3.2.0(graphql@16.6.0): + resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + graphql: 16.6.0 + dev: true + + /@hkdobrev/run-if-changed@0.3.1: + resolution: {integrity: sha512-kxu18zdSoTwYpTuwIw4Zsc/cWa+1c/HayXA290TSD97WKBzodntiqm6pPCoXhGDZu2F6/yg5VChJNSjrfMiTSA==} + hasBin: true + dependencies: + cosmiconfig: 5.2.1 + execa: 1.0.0 + micromatch: 3.1.10 + npm-which: 3.0.1 + string-argv: 0.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/config-array@0.11.8: + resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4(supports-color@8.1.1) + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true + + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.0.1 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true + + /@istanbuljs/load-nyc-config@1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + dev: true + + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.18 + dev: true + + /@jridgewell/resolve-uri@3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec@1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + + /@jridgewell/trace-mapping@0.3.18: + resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@next/eslint-plugin-next@12.3.4: + resolution: {integrity: sha512-BFwj8ykJY+zc1/jWANsDprDIu2MgwPOIKxNVnrKvPs+f5TPegrVnem8uScND+1veT4B7F6VeqgaNLFW1Hzl9Og==} + dependencies: + glob: 7.1.7 + dev: true + + /@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3: + resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==} + requiresBuild: true + dev: true + optional: true + + /@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1: + resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} + dependencies: + eslint-scope: 5.1.1 + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: true + + /@npmcli/fs@2.1.2: + resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + '@gar/promisify': 1.1.3 + semver: 7.5.0 + dev: true + + /@npmcli/move-file@2.0.1: + resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This functionality has been moved to @npmcli/fs + dependencies: + mkdirp: 1.0.4 + rimraf: 3.0.2 + dev: true + + /@octokit/auth-token@3.0.3: + resolution: {integrity: sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==} + engines: {node: '>= 14'} + dependencies: + '@octokit/types': 9.2.0 + dev: true + + /@octokit/core@4.2.0: + resolution: {integrity: sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg==} + engines: {node: '>= 14'} + dependencies: + '@octokit/auth-token': 3.0.3 + '@octokit/graphql': 5.0.5 + '@octokit/request': 6.2.3 + '@octokit/request-error': 3.0.3 + '@octokit/types': 9.2.0 + before-after-hook: 2.2.3 + universal-user-agent: 6.0.0 + transitivePeerDependencies: + - encoding + dev: true + + /@octokit/endpoint@7.0.5: + resolution: {integrity: sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==} + engines: {node: '>= 14'} + dependencies: + '@octokit/types': 9.2.0 + is-plain-object: 5.0.0 + universal-user-agent: 6.0.0 + dev: true + + /@octokit/graphql@5.0.5: + resolution: {integrity: sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==} + engines: {node: '>= 14'} + dependencies: + '@octokit/request': 6.2.3 + '@octokit/types': 9.2.0 + universal-user-agent: 6.0.0 + transitivePeerDependencies: + - encoding + dev: true + + /@octokit/openapi-types@17.1.0: + resolution: {integrity: sha512-rnI26BAITDZTo5vqFOmA7oX4xRd18rO+gcK4MiTpJmsRMxAw0JmevNjPsjpry1bb9SVNo56P/0kbiyXXa4QluA==} + dev: true + + /@octokit/plugin-paginate-rest@6.0.0(@octokit/core@4.2.0): + resolution: {integrity: sha512-Sq5VU1PfT6/JyuXPyt04KZNVsFOSBaYOAq2QRZUwzVlI10KFvcbUo8lR258AAQL1Et60b0WuVik+zOWKLuDZxw==} + engines: {node: '>= 14'} + peerDependencies: + '@octokit/core': '>=4' + dependencies: + '@octokit/core': 4.2.0 + '@octokit/types': 9.2.0 + dev: true + + /@octokit/plugin-request-log@1.0.4(@octokit/core@4.2.0): + resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} + peerDependencies: + '@octokit/core': '>=3' + dependencies: + '@octokit/core': 4.2.0 + dev: true + + /@octokit/plugin-rest-endpoint-methods@7.0.1(@octokit/core@4.2.0): + resolution: {integrity: sha512-pnCaLwZBudK5xCdrR823xHGNgqOzRnJ/mpC/76YPpNP7DybdsJtP7mdOwh+wYZxK5jqeQuhu59ogMI4NRlBUvA==} + engines: {node: '>= 14'} + peerDependencies: + '@octokit/core': '>=3' + dependencies: + '@octokit/core': 4.2.0 + '@octokit/types': 9.2.0 + deprecation: 2.3.1 + dev: true + + /@octokit/request-error@3.0.3: + resolution: {integrity: sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==} + engines: {node: '>= 14'} + dependencies: + '@octokit/types': 9.2.0 + deprecation: 2.3.1 + once: 1.4.0 + dev: true + + /@octokit/request@6.2.3: + resolution: {integrity: sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==} + engines: {node: '>= 14'} + dependencies: + '@octokit/endpoint': 7.0.5 + '@octokit/request-error': 3.0.3 + '@octokit/types': 9.2.0 + is-plain-object: 5.0.0 + node-fetch: 2.6.9 + universal-user-agent: 6.0.0 + transitivePeerDependencies: + - encoding + dev: true + + /@octokit/rest@19.0.7: + resolution: {integrity: sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA==} + engines: {node: '>= 14'} + dependencies: + '@octokit/core': 4.2.0 + '@octokit/plugin-paginate-rest': 6.0.0(@octokit/core@4.2.0) + '@octokit/plugin-request-log': 1.0.4(@octokit/core@4.2.0) + '@octokit/plugin-rest-endpoint-methods': 7.0.1(@octokit/core@4.2.0) + transitivePeerDependencies: + - encoding + dev: true + + /@octokit/types@9.2.0: + resolution: {integrity: sha512-xySzJG4noWrIBFyMu4lg4tu9vAgNg9S0aoLRONhAEz6ueyi1evBzb40HitIosaYS4XOexphG305IVcLrIX/30g==} + dependencies: + '@octokit/openapi-types': 17.1.0 + dev: true + + /@peculiar/asn1-schema@2.3.6: + resolution: {integrity: sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA==} + dependencies: + asn1js: 3.0.5 + pvtsutils: 1.3.2 + tslib: 2.5.0 + dev: true + + /@peculiar/json-schema@1.1.12: + resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} + engines: {node: '>=8.0.0'} + dependencies: + tslib: 2.5.0 + dev: true + + /@peculiar/webcrypto@1.4.3: + resolution: {integrity: sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A==} + engines: {node: '>=10.12.0'} + dependencies: + '@peculiar/asn1-schema': 2.3.6 + '@peculiar/json-schema': 1.1.12 + pvtsutils: 1.3.2 + tslib: 2.5.0 + webcrypto-core: 1.7.7 + dev: true + + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + dev: true + optional: true + + /@pnpm/config.env-replace@1.1.0: + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} + dev: true + + /@pnpm/network.ca-file@1.0.2: + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} + dependencies: + graceful-fs: 4.2.10 + dev: true + + /@pnpm/npm-conf@2.2.0: + resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==} + engines: {node: '>=12'} + dependencies: + '@pnpm/config.env-replace': 1.1.0 + '@pnpm/network.ca-file': 1.0.2 + config-chain: 1.1.13 + dev: true + + /@repeaterjs/repeater@3.0.4: + resolution: {integrity: sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==} + dev: true + + /@rushstack/eslint-patch@1.2.0: + resolution: {integrity: sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==} + dev: true + + /@semantic-release/commit-analyzer@9.0.2(semantic-release@21.0.2): + resolution: {integrity: sha512-E+dr6L+xIHZkX4zNMe6Rnwg4YQrWNXK+rNsvwOPpdFppvZO1olE2fIgWhv89TkQErygevbjsZFSIxp+u6w2e5g==} + engines: {node: '>=14.17'} + peerDependencies: + semantic-release: '>=18.0.0-beta.1' + dependencies: + conventional-changelog-angular: 5.0.13 + conventional-commits-filter: 2.0.7 + conventional-commits-parser: 3.2.4 + debug: 4.3.4(supports-color@8.1.1) + import-from: 4.0.0 + lodash: 4.17.21 + micromatch: 4.0.5 + semantic-release: 21.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@semantic-release/error@3.0.0: + resolution: {integrity: sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==} + engines: {node: '>=14.17'} + dev: true + + /@semantic-release/github@8.0.7(semantic-release@21.0.2): + resolution: {integrity: sha512-VtgicRIKGvmTHwm//iqTh/5NGQwsncOMR5vQK9pMT92Aem7dv37JFKKRuulUsAnUOIlO4G8wH3gPiBAA0iW0ww==} + engines: {node: '>=14.17'} + peerDependencies: + semantic-release: '>=18.0.0-beta.1' + dependencies: + '@octokit/rest': 19.0.7 + '@semantic-release/error': 3.0.0 + aggregate-error: 3.1.0 + bottleneck: 2.19.5 + debug: 4.3.4(supports-color@8.1.1) + dir-glob: 3.0.1 + fs-extra: 11.1.1 + globby: 11.1.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + issue-parser: 6.0.0 + lodash: 4.17.21 + mime: 3.0.0 + p-filter: 2.1.0 + p-retry: 4.6.2 + semantic-release: 21.0.2 + url-join: 4.0.1 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@semantic-release/npm@10.0.3(semantic-release@21.0.2): + resolution: {integrity: sha512-Chbv3kX4o+y+r1X6hsqBVB8NFbSVfiNlYOqMG6o9Wc8r5Y4cjxfbaMCuJ++XAtw3YXYX/NVD05cPzBi4Orjusg==} + engines: {node: '>=18'} + peerDependencies: + semantic-release: '>=20.1.0' + dependencies: + '@semantic-release/error': 3.0.0 + aggregate-error: 4.0.1 + execa: 7.1.1 + fs-extra: 11.1.1 + lodash-es: 4.17.21 + nerf-dart: 1.0.0 + normalize-url: 8.0.0 + npm: 9.6.6 + rc: 1.2.8 + read-pkg: 8.0.0 + registry-auth-token: 5.0.2 + semantic-release: 21.0.2 + semver: 7.5.0 + tempy: 3.0.0 + dev: true + + /@semantic-release/release-notes-generator@11.0.1(semantic-release@21.0.2): + resolution: {integrity: sha512-4deWsiY4Rg80oc9Ms11N20BIDgYkPMys4scNYQpi2Njdrtw5Z55nXKNsUN3kn6Sy/nI9dqqbp5L63TL4luI5Bw==} + engines: {node: '>=18'} + peerDependencies: + semantic-release: '>=20.1.0' + dependencies: + conventional-changelog-angular: 5.0.13 + conventional-changelog-writer: 5.0.1 + conventional-commits-filter: 2.0.7 + conventional-commits-parser: 3.2.4 + debug: 4.3.4(supports-color@8.1.1) + get-stream: 6.0.1 + import-from: 4.0.0 + into-stream: 7.0.0 + lodash-es: 4.17.21 + read-pkg-up: 9.1.0 + semantic-release: 21.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@tootallnate/once@2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + dev: true + + /@types/json-schema@7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + dev: true + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true + + /@types/minimist@1.2.2: + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + dev: true + + /@types/node@18.16.3: + resolution: {integrity: sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==} + dev: true + + /@types/normalize-package-data@2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + dev: true + + /@types/retry@0.12.0: + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + dev: true + + /@types/semver@7.3.13: + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + dev: true + + /@types/ws@8.5.4: + resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} + dependencies: + '@types/node': 18.16.3 + dev: true + + /@typescript-eslint/eslint-plugin@5.59.2(@typescript-eslint/parser@5.59.1)(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-yVrXupeHjRxLDcPKL10sGQ/QlVrA8J5IYOEWVqk0lJaSZP7X5DfnP7Ns3cc74/blmbipQ1htFNVGsHX6wsYm0A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.5.1 + '@typescript-eslint/parser': 5.59.1(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/scope-manager': 5.59.2 + '@typescript-eslint/type-utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.39.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + natural-compare-lite: 1.4.0 + semver: 7.5.0 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/experimental-utils@5.59.2(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-JLw2UImsjHDuVukpA8Nt+UK7JKE/LQAeV3tU5f7wJo2/NNYVwcakzkWjoYzu/2qzWY/Z9c7zojngNDfecNt92g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@typescript-eslint/utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + eslint: 8.39.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/parser@5.59.1(eslint@8.39.0)(typescript@4.9.5): + resolution: {integrity: sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.59.1 + '@typescript-eslint/types': 5.59.1 + '@typescript-eslint/typescript-estree': 5.59.1(typescript@4.9.5) + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.39.0 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@5.59.1(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.59.1 + '@typescript-eslint/types': 5.59.1 + '@typescript-eslint/typescript-estree': 5.59.1(typescript@5.0.4) + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.39.0 + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@5.59.1: + resolution: {integrity: sha512-mau0waO5frJctPuAzcxiNWqJR5Z8V0190FTSqRw1Q4Euop6+zTwHAf8YIXNwDOT29tyUDrQ65jSg9aTU/H0omA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.59.1 + '@typescript-eslint/visitor-keys': 5.59.1 + dev: true + + /@typescript-eslint/scope-manager@5.59.2: + resolution: {integrity: sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.59.2 + '@typescript-eslint/visitor-keys': 5.59.2 + dev: true + + /@typescript-eslint/type-utils@5.59.2(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-b1LS2phBOsEy/T381bxkkywfQXkV1dWda/z0PhnIy3bC5+rQWQDS7fk9CSpcXBccPY27Z6vBEuaPBCKCgYezyQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.39.0 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@5.59.1: + resolution: {integrity: sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/types@5.59.2: + resolution: {integrity: sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/typescript-estree@5.59.1(typescript@4.9.5): + resolution: {integrity: sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.59.1 + '@typescript-eslint/visitor-keys': 5.59.1 + debug: 4.3.4(supports-color@8.1.1) + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.0 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/typescript-estree@5.59.1(typescript@5.0.4): + resolution: {integrity: sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.59.1 + '@typescript-eslint/visitor-keys': 5.59.1 + debug: 4.3.4(supports-color@8.1.1) + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.0 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/typescript-estree@5.59.2(typescript@5.0.4): + resolution: {integrity: sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.59.2 + '@typescript-eslint/visitor-keys': 5.59.2 + debug: 4.3.4(supports-color@8.1.1) + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.0 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@5.59.2(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-kSuF6/77TZzyGPhGO4uVp+f0SBoYxCDf+lW3GKhtKru/L8k/Hd7NFQxyWUeY7Z/KGB2C6Fe3yf2vVi4V9TsCSQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) + '@types/json-schema': 7.0.11 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.59.2 + '@typescript-eslint/types': 5.59.2 + '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.0.4) + eslint: 8.39.0 + eslint-scope: 5.1.1 + semver: 7.5.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@5.59.1: + resolution: {integrity: sha512-6waEYwBTCWryx0VJmP7JaM4FpipLsFl9CvYf2foAE8Qh/Y0s+bxWysciwOs0LTBED4JCaNxTZ5rGadB14M6dwA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.59.1 + eslint-visitor-keys: 3.4.0 + dev: true + + /@typescript-eslint/visitor-keys@5.59.2: + resolution: {integrity: sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.59.2 + eslint-visitor-keys: 3.4.0 + dev: true + + /@whatwg-node/events@0.0.3: + resolution: {integrity: sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA==} + dev: true + + /@whatwg-node/fetch@0.8.8: + resolution: {integrity: sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg==} + dependencies: + '@peculiar/webcrypto': 1.4.3 + '@whatwg-node/node-fetch': 0.3.6 + busboy: 1.6.0 + urlpattern-polyfill: 8.0.2 + web-streams-polyfill: 3.2.1 + dev: true + + /@whatwg-node/node-fetch@0.3.6: + resolution: {integrity: sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA==} + dependencies: + '@whatwg-node/events': 0.0.3 + busboy: 1.6.0 + fast-querystring: 1.1.1 + fast-url-parser: 1.1.3 + tslib: 2.5.0 + dev: true + + /JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + dev: true + + /abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + dev: true + + /acorn-globals@1.0.9: + resolution: {integrity: sha512-j3/4pkfih8W4NK22gxVSXcEonTpAHOHh0hu5BoZrKcOsW/4oBPxTi4Yk3SAj+FhC1f3+bRTkXdm4019gw1vg9g==} + dependencies: + acorn: 2.7.0 + dev: true + + /acorn-jsx@5.3.2(acorn@8.8.2): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.8.2 + dev: true + + /acorn@2.7.0: + resolution: {integrity: sha512-pXK8ez/pVjqFdAgBkF1YPVRacuLQ9EXBKaKWaeh58WNfMkCmZhOZzu+NtKSPD5PHmCCHheQ5cD29qM1K4QTxIg==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /acorn@8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.4(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + dev: true + + /agentkeepalive@4.3.0: + resolution: {integrity: sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==} + engines: {node: '>= 8.0.0'} + dependencies: + debug: 4.3.4(supports-color@8.1.1) + depd: 2.0.0 + humanize-ms: 1.2.1 + transitivePeerDependencies: + - supports-color + dev: true + + /aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + + /aggregate-error@4.0.1: + resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} + engines: {node: '>=12'} + dependencies: + clean-stack: 4.2.0 + indent-string: 5.0.0 + dev: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ansi-colors@4.1.1: + resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + engines: {node: '>=6'} + dev: true + + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-escapes@5.0.0: + resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} + engines: {node: '>=12'} + dependencies: + type-fest: 1.4.0 + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true + + /ansicolors@0.3.2: + resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==} + dev: true + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /append-transform@2.0.0: + resolution: {integrity: sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==} + engines: {node: '>=8'} + dependencies: + default-require-extensions: 3.0.1 + dev: true + + /aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + dev: true + + /archy@1.0.0: + resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} + dev: true + + /are-docs-informative@0.0.2: + resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} + engines: {node: '>=14'} + dev: false + + /are-we-there-yet@3.0.1: + resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + dev: true + + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /argv-formatter@1.0.0: + resolution: {integrity: sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==} + dev: true + + /aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + dependencies: + deep-equal: 2.2.1 + dev: true + + /arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + dev: true + + /arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} + dev: true + + /arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + dev: true + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + dev: true + + /array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + dev: true + + /array-includes@3.1.6: + resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + get-intrinsic: 1.2.0 + is-string: 1.0.7 + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} + dev: true + + /array.prototype.flat@1.3.1: + resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.flatmap@1.3.1: + resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.reduce@1.0.5: + resolution: {integrity: sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + es-array-method-boxes-properly: 1.0.0 + is-string: 1.0.7 + dev: true + + /array.prototype.tosorted@1.1.1: + resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.0 + dev: true + + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true + + /asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /asn1js@3.0.5: + resolution: {integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==} + engines: {node: '>=12.0.0'} + dependencies: + pvtsutils: 1.3.2 + pvutils: 1.1.3 + tslib: 2.5.0 + dev: true + + /assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + dev: true + + /assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true + + /assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + dev: true + + /ast-types-flow@0.0.7: + resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} + dev: true + + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: true + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true + + /atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + dev: true + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + + /aws-sign2@0.7.0: + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + dev: true + + /aws4@1.12.0: + resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} + dev: true + + /axe-core@4.7.0: + resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} + engines: {node: '>=4'} + dev: true + + /axobject-query@3.1.1: + resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} + dependencies: + deep-equal: 2.2.1 + dev: true + + /babel-plugin-add-module-exports@1.0.4: + resolution: {integrity: sha512-g+8yxHUZ60RcyaUpfNzy56OtWW+x9cyEe9j+CranqLiqbju2yf/Cy6ZtYK40EZxtrdHllzlVZgLmcOUCTlJ7Jg==} + dev: true + + /babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + dependencies: + '@babel/helper-plugin-utils': 7.21.5 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.21.5): + resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.21.7 + '@babel/core': 7.21.5 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.21.5) + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs3@0.6.0(@babel/core@7.21.5): + resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.21.5) + core-js-compat: 3.30.1 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-regenerator@0.4.1(@babel/core@7.21.5): + resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.21.5) + transitivePeerDependencies: + - supports-color + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.0 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + dev: true + + /bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + dependencies: + tweetnacl: 0.14.5 + dev: true + + /before-after-hook@2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + dev: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /bluebird@2.11.0: + resolution: {integrity: sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==} + dev: true + + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: true + + /bottleneck@2.19.5: + resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + + /braces@2.3.2: + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} + dependencies: + arr-flatten: 1.1.0 + array-unique: 0.3.2 + extend-shallow: 2.0.1 + fill-range: 4.0.0 + isobject: 3.0.1 + repeat-element: 1.1.4 + snapdragon: 0.8.2 + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browser-request@0.3.3: + resolution: {integrity: sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg==} + engines: {'0': node} + dev: true + + /browser-stdout@1.3.1: + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + dev: true + + /browserslist@4.21.5: + resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001482 + electron-to-chromium: 1.4.382 + node-releases: 2.0.10 + update-browserslist-db: 1.0.11(browserslist@4.21.5) + dev: true + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: true + + /busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + dependencies: + streamsearch: 1.1.0 + dev: true + + /cacache@16.1.3(bluebird@3.7.2): + resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + '@npmcli/fs': 2.1.2 + '@npmcli/move-file': 2.0.1 + chownr: 2.0.0 + fs-minipass: 2.1.0 + glob: 8.1.0 + infer-owner: 1.0.4 + lru-cache: 7.18.3 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + mkdirp: 1.0.4 + p-map: 4.0.0 + promise-inflight: 1.0.1(bluebird@3.7.2) + rimraf: 3.0.2 + ssri: 9.0.1 + tar: 6.1.14 + unique-filename: 2.0.1 + transitivePeerDependencies: + - bluebird + dev: true + + /cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.0 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + dev: true + + /caching-transform@4.0.0: + resolution: {integrity: sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==} + engines: {node: '>=8'} + dependencies: + hasha: 5.2.2 + make-dir: 3.1.0 + package-hash: 4.0.0 + write-file-atomic: 3.0.3 + dev: true + + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.0 + dev: true + + /caller-callsite@2.0.0: + resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} + engines: {node: '>=4'} + dependencies: + callsites: 2.0.0 + dev: true + + /caller-path@2.0.0: + resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==} + engines: {node: '>=4'} + dependencies: + caller-callsite: 2.0.0 + dev: true + + /callsites@2.0.0: + resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==} + engines: {node: '>=4'} + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + dev: true + + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: true + + /caniuse-lite@1.0.30001482: + resolution: {integrity: sha512-F1ZInsg53cegyjroxLNW9DmrEQ1SuGRTO1QlpA0o2/6OpQ0gFeDRoq1yFmnr8Sakn9qwwt9DmbxHB6w167OSuQ==} + dev: true + + /cardinal@2.1.1: + resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==} + hasBin: true + dependencies: + ansicolors: 0.3.2 + redeyed: 2.1.1 + dev: true + + /caseless@0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + dev: true + + /chai@4.3.7: + resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.2 + deep-eql: 4.1.3 + get-func-name: 2.0.0 + loupe: 2.3.6 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk@5.2.0: + resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /check-error@1.0.2: + resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + dev: true + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + dev: true + + /ci-info@3.8.0: + resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} + engines: {node: '>=8'} + dev: true + + /class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + dev: true + + /clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + dev: true + + /clean-stack@4.2.0: + resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} + engines: {node: '>=12'} + dependencies: + escape-string-regexp: 5.0.0 + dev: true + + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-table3@0.6.3: + resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} + engines: {node: 10.* || >= 12.*} + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 + dev: true + + /cli-truncate@2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + dev: true + + /cli-truncate@3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + slice-ansi: 5.0.0 + string-width: 5.1.2 + dev: true + + /cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: true + + /cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + dev: true + + /collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + dev: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + dev: true + + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + dev: true + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: true + + /commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + dev: true + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true + + /comment-parser@1.3.0: + resolution: {integrity: sha512-hRpmWIKgzd81vn0ydoWoyPoALEOnF4wt8yKD35Ib1D6XC2siLiYaiqfGkYrunuKdsXGwpBpHU3+9r+RVw2NZfA==} + engines: {node: '>= 12.0.0'} + dev: true + + /comment-parser@1.3.1: + resolution: {integrity: sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==} + engines: {node: '>= 12.0.0'} + + /commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + dev: true + + /compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + dev: true + + /component-emitter@1.3.0: + resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + dev: true + + /config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + dev: true + + /console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + dev: true + + /contents@5.0.0: + resolution: {integrity: sha512-wnnGorqo07ZSIzMQmUc4vUv1NEXl7elBtqoz5UcysV+pbSvphZYfI763rXgpFK2H9o5rvjQQ8kZxp7hOOwIe3A==} + dependencies: + lodash: 4.17.21 + sister: 3.0.2 + dev: true + + /conventional-changelog-angular@5.0.13: + resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} + engines: {node: '>=10'} + dependencies: + compare-func: 2.0.0 + q: 1.5.1 + dev: true + + /conventional-changelog-writer@5.0.1: + resolution: {integrity: sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + conventional-commits-filter: 2.0.7 + dateformat: 3.0.3 + handlebars: 4.7.7 + json-stringify-safe: 5.0.1 + lodash: 4.17.21 + meow: 8.1.2 + semver: 6.3.0 + split: 1.0.1 + through2: 4.0.2 + dev: true + + /conventional-commits-filter@2.0.7: + resolution: {integrity: sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==} + engines: {node: '>=10'} + dependencies: + lodash.ismatch: 4.4.0 + modify-values: 1.0.1 + dev: true + + /conventional-commits-parser@3.2.4: + resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} + engines: {node: '>=10'} + hasBin: true + dependencies: + JSONStream: 1.3.5 + is-text-path: 1.0.1 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + dev: true + + /convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: true + + /copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} + dev: true + + /core-js-compat@3.30.1: + resolution: {integrity: sha512-d690npR7MC6P0gq4npTl5n2VQeNAmUrJ90n+MHiKS7W2+xno4o3F5GDEuylSdi6EJ3VssibSGXOa1r3YXD3Mhw==} + dependencies: + browserslist: 4.21.5 + dev: true + + /core-js@3.30.1: + resolution: {integrity: sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==} + requiresBuild: true + dev: true + + /core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + dev: true + + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: true + + /cosmiconfig@5.2.1: + resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==} + engines: {node: '>=4'} + dependencies: + import-fresh: 2.0.0 + is-directory: 0.3.1 + js-yaml: 3.14.1 + parse-json: 4.0.0 + dev: true + + /cosmiconfig@8.0.0: + resolution: {integrity: sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==} + engines: {node: '>=14'} + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + dev: true + + /cosmiconfig@8.1.3: + resolution: {integrity: sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==} + engines: {node: '>=14'} + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + dev: true + + /create-eslint-index@1.0.0: + resolution: {integrity: sha512-nXvJjnfDytOOaPOonX0h0a1ggMoqrhdekGeZkD6hkcWYvlCWhU719tKFVh8eU04CnMwu3uwe1JjwuUF2C3k2qg==} + engines: {node: '>=4.0.0'} + dependencies: + lodash.get: 4.4.2 + dev: true + + /cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + dependencies: + cross-spawn: 7.0.3 + dev: true + + /cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.1 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /crypto-random-string@4.0.0: + resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} + engines: {node: '>=12'} + dependencies: + type-fest: 1.4.0 + dev: true + + /cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + dev: true + + /cssstyle@0.2.37: + resolution: {integrity: sha512-FUpKc+1FNBsHUr9IsfSGCovr8VuGOiiuzlgCyppKBjJi2jYTOFLN3oiiNRMIvYqbFzF38mqKj4BgcevzU5/kIA==} + dependencies: + cssom: 0.3.8 + dev: true + + /damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + dev: true + + /dashdash@1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} + dependencies: + assert-plus: 1.0.0 + dev: true + + /dataloader@2.2.2: + resolution: {integrity: sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==} + dev: true + + /dateformat@3.0.3: + resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} + dev: true + + /deadlink@1.1.3: + resolution: {integrity: sha512-m1h/xFi5eqcByMT7AGBt0BCygIifVyUw6CtEh1NpS/x0yeyS709+nCY5ByK255J/5hiRb9O/8dx6mmx3t6qSIQ==} + engines: {node: '>=4'} + dependencies: + bluebird: 2.11.0 + jsdom: 6.5.1 + url-regexp: 1.0.2 + dev: true + + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: true + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug@4.3.4(supports-color@8.1.1): + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + supports-color: 8.1.1 + + /decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /decamelize@4.0.0: + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + engines: {node: '>=10'} + dev: true + + /decamelize@5.0.1: + resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} + engines: {node: '>=10'} + dev: true + + /decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + dev: true + + /deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + dependencies: + type-detect: 4.0.8 + dev: true + + /deep-equal@2.2.1: + resolution: {integrity: sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ==} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.0 + is-arguments: 1.1.1 + is-array-buffer: 3.0.2 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + isarray: 2.0.5 + object-is: 1.1.5 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.0 + side-channel: 1.0.4 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.9 + dev: true + + /deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /default-require-extensions@3.0.1: + resolution: {integrity: sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==} + engines: {node: '>=8'} + dependencies: + strip-bom: 4.0.0 + dev: true + + /define-properties@1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 0.1.6 + dev: true + + /define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.2 + dev: true + + /define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.2 + isobject: 3.0.1 + dev: true + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: true + + /delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + dev: true + + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dev: true + + /deprecation@2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + dev: true + + /diff@5.0.0: + resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} + engines: {node: '>=0.3.1'} + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dom-serializer@0.2.2: + resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} + dependencies: + domelementtype: 2.3.0 + entities: 2.2.0 + dev: true + + /domelementtype@1.3.1: + resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} + dev: true + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: true + + /domhandler@2.4.2: + resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} + dependencies: + domelementtype: 1.3.1 + dev: true + + /domutils@1.7.0: + resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} + dependencies: + dom-serializer: 0.2.2 + domelementtype: 1.3.1 + dev: true + + /dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + dependencies: + is-obj: 2.0.0 + dev: true + + /dset@3.1.2: + resolution: {integrity: sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==} + engines: {node: '>=4'} + dev: true + + /duplexer2@0.1.4: + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + dependencies: + readable-stream: 2.3.8 + dev: true + + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /ecc-jsbn@0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + dev: true + + /electron-to-chromium@1.4.382: + resolution: {integrity: sha512-czMavlW52VIPgutbVL9JnZIZuFijzsG1ww/1z2Otu1r1q+9Qe2bTsH3My3sZarlvwyqHM6+mnZfEnt2Vr4dsIg==} + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + requiresBuild: true + dependencies: + iconv-lite: 0.6.3 + dev: true + optional: true + + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: true + + /enhance-visitors@1.0.0: + resolution: {integrity: sha512-+29eJLiUixTEDRaZ35Vu8jP3gPLNcQQkQkOQjLp2X+6cZGGPDD/uasbFzvLsJKnGZnvmyZ0srxudwOtskHeIDA==} + engines: {node: '>=4.0.0'} + dependencies: + lodash: 4.17.21 + dev: true + + /entities@1.1.2: + resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} + dev: true + + /entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + dev: true + + /env-ci@9.1.0: + resolution: {integrity: sha512-ZCEas2sDVFR3gpumwwzSU4OJZwWJ46yqJH3TqH3vSxEBzeAlC0uCJLGAnZC0vX1TIXzHzjcwpKmUn2xw5mC/qA==} + engines: {node: ^16.14 || >=18} + dependencies: + execa: 7.1.1 + java-properties: 1.0.2 + dev: true + + /env-editor@0.4.2: + resolution: {integrity: sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==} + engines: {node: '>=8'} + dev: true + + /env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + dev: true + + /err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + dev: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-abstract@1.21.2: + resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.0 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.10 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.0 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.7 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.9 + dev: true + + /es-array-method-boxes-properly@1.0.0: + resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} + dev: true + + /es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.2 + is-set: 2.0.2 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + dev: true + + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: true + + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /es6-error@4.1.1: + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + dev: true + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: true + + /escodegen@1.14.3: + resolution: {integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==} + engines: {node: '>=4.0'} + hasBin: true + dependencies: + esprima: 4.0.1 + estraverse: 4.3.0 + esutils: 2.0.3 + optionator: 0.8.3 + optionalDependencies: + source-map: 0.6.1 + dev: true + + /eslint-ast-utils@1.1.0: + resolution: {integrity: sha512-otzzTim2/1+lVrlH19EfQQJEhVJSu0zOb9ygb3iapN6UlyaDtyRq4b5U1FuW0v1lRa9Fp/GJyHkSwm6NqABgCA==} + engines: {node: '>=4'} + dependencies: + lodash.get: 4.4.2 + lodash.zip: 4.2.0 + dev: true + + /eslint-config-canonical@33.0.1(@babel/core@7.21.5)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4): + resolution: {integrity: sha512-g5hyJr5s4WnyAp5FdfMyItz72hOgXAB/4tsFMBP944bcei2QJyMvwslpKdiQL299HSJBpJ9xbNBhx7oeFI7zIQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: ^8.4.1 + dependencies: + '@babel/eslint-parser': 7.21.3(@babel/core@7.21.5)(eslint@8.39.0) + '@babel/eslint-plugin': 7.19.1(@babel/eslint-parser@7.21.3)(eslint@8.39.0) + '@graphql-eslint/eslint-plugin': 3.18.0(@babel/core@7.21.5)(graphql@16.6.0) + '@next/eslint-plugin-next': 12.3.4 + '@rushstack/eslint-patch': 1.2.0 + '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.1)(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.1(eslint@8.39.0)(typescript@5.0.4) + eslint: 8.39.0 + eslint-plugin-ava: 13.2.0(eslint@8.39.0) + eslint-plugin-canonical: 2.6.0(eslint@8.39.0) + eslint-plugin-cypress: 2.13.3(eslint@8.39.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.39.0) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.39.0) + eslint-plugin-fp: 2.3.0(eslint@8.39.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.1)(eslint@8.39.0) + eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.59.2)(eslint@8.39.0)(typescript@5.0.4) + eslint-plugin-jsdoc: 37.9.7(eslint@8.39.0) + eslint-plugin-jsonc: 2.7.0(eslint@8.39.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.39.0) + eslint-plugin-lodash: 7.4.0(eslint@8.39.0) + eslint-plugin-mocha: 10.1.0(eslint@8.39.0) + eslint-plugin-modules-newline: 0.0.6 + eslint-plugin-node: 11.1.0(eslint@8.39.0) + eslint-plugin-react: 7.32.2(eslint@8.39.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.39.0) + eslint-plugin-typescript-sort-keys: 2.3.0(@typescript-eslint/parser@5.59.1)(eslint@8.39.0)(typescript@5.0.4) + eslint-plugin-unicorn: 39.0.0(eslint@8.39.0) + eslint-plugin-yml: 0.12.0(eslint@8.39.0) + yaml-eslint-parser: 0.5.0 + transitivePeerDependencies: + - '@babel/core' + - '@babel/plugin-syntax-flow' + - '@babel/plugin-transform-react-jsx' + - '@types/node' + - bufferutil + - cosmiconfig-toml-loader + - encoding + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - graphql + - jest + - supports-color + - typescript + - utf-8-validate + dev: true + + /eslint-import-resolver-node@0.3.7: + resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} + dependencies: + debug: 3.2.7 + is-core-module: 2.12.0 + resolve: 1.22.2 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.1)(eslint-import-resolver-node@0.3.7)(eslint@8.39.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.59.1(eslint@8.39.0)(typescript@5.0.4) + debug: 3.2.7 + eslint: 8.39.0 + eslint-import-resolver-node: 0.3.7 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-ava@13.2.0(eslint@8.39.0): + resolution: {integrity: sha512-i5B5izsEdERKQLruk1nIWzTTE7C26/ju8qQf7JeyRv32XT2lRMW0zMFZNhIrEf5/5VvpSz2rqrV7UcjClGbKsw==} + engines: {node: '>=12.22 <13 || >=14.17 <15 || >=16.4'} + peerDependencies: + eslint: '>=7.22.0' + dependencies: + enhance-visitors: 1.0.0 + eslint: 8.39.0 + eslint-utils: 3.0.0(eslint@8.39.0) + espree: 9.5.1 + espurify: 2.1.1 + import-modules: 2.1.0 + micro-spelling-correcter: 1.1.1 + pkg-dir: 5.0.0 + resolve-from: 5.0.0 + dev: true + + /eslint-plugin-canonical@2.6.0(eslint@8.39.0): + resolution: {integrity: sha512-KMcx/bX9j97nllRjluykArtoT34CHXJAQOfBBk3uc1oAZgMOyAlU3yJw5Os6yeL6gBBjd+CIf74f7zUlNF3wwg==} + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: ^8.5.0 + dependencies: + eslint: 8.39.0 + is-get-set-prop: 1.0.0 + is-js-type: 2.0.0 + is-obj-prop: 1.0.0 + is-proto-prop: 2.0.0 + lodash: 4.17.21 + natural-compare: 1.4.0 + dev: true + + /eslint-plugin-cypress@2.13.3(eslint@8.39.0): + resolution: {integrity: sha512-nAPjZE5WopCsgJwl3vHm5iafpV+ZRO76Z9hMyRygWhmg5ODXDPd+9MaPl7kdJ2azj+sO87H3P1PRnggIrz848g==} + peerDependencies: + eslint: '>= 3.2.1' + dependencies: + eslint: 8.39.0 + globals: 11.12.0 + dev: true + + /eslint-plugin-es@3.0.1(eslint@8.39.0): + resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + eslint: 8.39.0 + eslint-utils: 2.1.0 + regexpp: 3.2.0 + dev: true + + /eslint-plugin-eslint-comments@3.2.0(eslint@8.39.0): + resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} + engines: {node: '>=6.5.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + escape-string-regexp: 1.0.5 + eslint: 8.39.0 + ignore: 5.2.4 + dev: true + + /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.39.0): + resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@babel/plugin-syntax-flow': ^7.14.5 + '@babel/plugin-transform-react-jsx': ^7.14.9 + eslint: ^8.1.0 + dependencies: + '@babel/plugin-syntax-flow': 7.21.4(@babel/core@7.21.5) + '@babel/plugin-transform-react-jsx': 7.21.5(@babel/core@7.21.5) + eslint: 8.39.0 + lodash: 4.17.21 + string-natural-compare: 3.0.1 + dev: true + + /eslint-plugin-fp@2.3.0(eslint@8.39.0): + resolution: {integrity: sha512-3n2oHibwoIxAht9/+ZaTldhI6brXORgl8oNXqZd+d9xuAQt2SBJ2/aml0oQRMWvXrgsz2WG6wfC++NjzSG3prA==} + engines: {node: '>=4.0.0'} + peerDependencies: + eslint: '>=3' + dependencies: + create-eslint-index: 1.0.0 + eslint: 8.39.0 + eslint-ast-utils: 1.1.0 + lodash: 4.17.21 + req-all: 0.1.0 + dev: true + + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.1)(eslint@8.39.0): + resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 5.59.1(eslint@8.39.0)(typescript@5.0.4) + array-includes: 3.1.6 + array.prototype.flat: 1.3.1 + array.prototype.flatmap: 1.3.1 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.39.0 + eslint-import-resolver-node: 0.3.7 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.1)(eslint-import-resolver-node@0.3.7)(eslint@8.39.0) + has: 1.0.3 + is-core-module: 2.12.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.6 + resolve: 1.22.2 + semver: 6.3.0 + tsconfig-paths: 3.14.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.59.2)(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^4.0.0 || ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + jest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + jest: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.1)(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/experimental-utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + eslint: 8.39.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /eslint-plugin-jsdoc@37.9.7(eslint@8.39.0): + resolution: {integrity: sha512-8alON8yYcStY94o0HycU2zkLKQdcS+qhhOUNQpfONHHwvI99afbmfpYuPqf6PbLz5pLZldG3Te5I0RbAiTN42g==} + engines: {node: ^12 || ^14 || ^16 || ^17} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@es-joy/jsdoccomment': 0.20.1 + comment-parser: 1.3.0 + debug: 4.3.4(supports-color@8.1.1) + escape-string-regexp: 4.0.0 + eslint: 8.39.0 + esquery: 1.5.0 + regextras: 0.8.0 + semver: 7.5.0 + spdx-expression-parse: 3.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-jsonc@2.7.0(eslint@8.39.0): + resolution: {integrity: sha512-DZgC71h/hZ9t5k/OGAKOMdJCleg2neZLL7No+YYi2ZMroCN4X5huZdrLf1USbrc6UTHwYujd1EDwXHg1qJ6CYw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) + eslint: 8.39.0 + jsonc-eslint-parser: 2.2.0 + natural-compare: 1.4.0 + dev: true + + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.39.0): + resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + '@babel/runtime': 7.21.5 + aria-query: 5.1.3 + array-includes: 3.1.6 + array.prototype.flatmap: 1.3.1 + ast-types-flow: 0.0.7 + axe-core: 4.7.0 + axobject-query: 3.1.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.39.0 + has: 1.0.3 + jsx-ast-utils: 3.3.3 + language-tags: 1.0.5 + minimatch: 3.1.2 + object.entries: 1.1.6 + object.fromentries: 2.0.6 + semver: 6.3.0 + dev: true + + /eslint-plugin-lodash@7.4.0(eslint@8.39.0): + resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} + engines: {node: '>=10'} + peerDependencies: + eslint: '>=2' + dependencies: + eslint: 8.39.0 + lodash: 4.17.21 + dev: true + + /eslint-plugin-mocha@10.1.0(eslint@8.39.0): + resolution: {integrity: sha512-xLqqWUF17llsogVOC+8C6/jvQ+4IoOREbN7ZCHuOHuD6cT5cDD4h7f2LgsZuzMAiwswWE21tO7ExaknHVDrSkw==} + engines: {node: '>=14.0.0'} + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.39.0 + eslint-utils: 3.0.0(eslint@8.39.0) + rambda: 7.5.0 + dev: true + + /eslint-plugin-modules-newline@0.0.6: + resolution: {integrity: sha512-69NpBr68U6pmXL+y+KHl/64PwRarceC3/sCNUVxRbe0gPI32SIw8AtdpkqNiJYCa2yMd4lRrkrnU09Yio7KVzA==} + engines: {node: '>=0.10.0'} + dependencies: + requireindex: 1.1.0 + dev: true + + /eslint-plugin-node@11.1.0(eslint@8.39.0): + resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=5.16.0' + dependencies: + eslint: 8.39.0 + eslint-plugin-es: 3.0.1(eslint@8.39.0) + eslint-utils: 2.1.0 + ignore: 5.2.4 + minimatch: 3.1.2 + resolve: 1.22.2 + semver: 6.3.0 + dev: true + + /eslint-plugin-react-hooks@4.6.0(eslint@8.39.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.39.0 + dev: true + + /eslint-plugin-react@7.32.2(eslint@8.39.0): + resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.6 + array.prototype.flatmap: 1.3.1 + array.prototype.tosorted: 1.1.1 + doctrine: 2.1.0 + eslint: 8.39.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.3 + minimatch: 3.1.2 + object.entries: 1.1.6 + object.fromentries: 2.0.6 + object.hasown: 1.1.2 + object.values: 1.1.6 + prop-types: 15.8.1 + resolve: 2.0.0-next.4 + semver: 6.3.0 + string.prototype.matchall: 4.0.8 + dev: true + + /eslint-plugin-typescript-sort-keys@2.3.0(@typescript-eslint/parser@5.59.1)(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-3LAcYulo5gNYiPWee+TksITfvWeBuBjGgcSLTacPESFVKEoy8laOQuZvJlSCwTBHT2SCGIxr3bJ56zuux+3MCQ==} + engines: {node: 12 || >= 13.9} + peerDependencies: + '@typescript-eslint/parser': ^1 || ^2 || ^3 || ^4 || ^5 + eslint: ^5 || ^6 || ^7 || ^8 + typescript: ^3 || ^4 || ^5 + dependencies: + '@typescript-eslint/experimental-utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.1(eslint@8.39.0)(typescript@5.0.4) + eslint: 8.39.0 + json-schema: 0.4.0 + natural-compare-lite: 1.4.0 + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-unicorn@39.0.0(eslint@8.39.0): + resolution: {integrity: sha512-fd5RK2FtYjGcIx3wra7csIE/wkkmBo22T1gZtRTsLr1Mb+KsFKJ+JOdSqhHXQUrI/JTs/Mon64cEYzTgSCbltw==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=7.32.0' + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + ci-info: 3.8.0 + clean-regexp: 1.0.0 + eslint: 8.39.0 + eslint-template-visitor: 2.3.2(eslint@8.39.0) + eslint-utils: 3.0.0(eslint@8.39.0) + esquery: 1.5.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + lodash: 4.17.21 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.27 + safe-regex: 2.1.1 + semver: 7.5.0 + strip-indent: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-yml@0.12.0(eslint@8.39.0): + resolution: {integrity: sha512-aS82M+diohZTusadiByzh/bKDrfi+Y6VBQkD3ym/7JH+KF9WUB9qKCizLfTaCACwtRrHpqaLz3G8GKmslshyiw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.39.0 + lodash: 4.17.21 + natural-compare: 1.4.0 + yaml-eslint-parser: 0.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-rule-composer@0.3.0: + resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} + engines: {node: '>=4.0.0'} + dev: true + + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-scope@7.2.0: + resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-template-visitor@2.3.2(eslint@8.39.0): + resolution: {integrity: sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA==} + peerDependencies: + eslint: '>=7.0.0' + dependencies: + '@babel/core': 7.21.5 + '@babel/eslint-parser': 7.21.3(@babel/core@7.21.5)(eslint@8.39.0) + eslint: 8.39.0 + eslint-visitor-keys: 2.1.0 + esquery: 1.5.0 + multimap: 1.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-utils@2.1.0: + resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} + engines: {node: '>=6'} + dependencies: + eslint-visitor-keys: 1.3.0 + dev: true + + /eslint-utils@3.0.0(eslint@8.39.0): + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.39.0 + eslint-visitor-keys: 2.1.0 + dev: true + + /eslint-visitor-keys@1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} + dev: true + + /eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true + + /eslint-visitor-keys@3.4.0: + resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.39.0: + resolution: {integrity: sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) + '@eslint-community/regexpp': 4.5.1 + '@eslint/eslintrc': 2.0.2 + '@eslint/js': 8.39.0 + '@humanwhocodes/config-array': 0.11.8 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4(supports-color@8.1.1) + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.0 + eslint-visitor-keys: 3.4.0 + espree: 9.5.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.20.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-sdsl: 4.4.0 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@9.5.1: + resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.2 + acorn-jsx: 5.3.2(acorn@8.8.2) + eslint-visitor-keys: 3.4.0 + dev: true + + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /espurify@2.1.1: + resolution: {integrity: sha512-zttWvnkhcDyGOhSH4vO2qCBILpdCMv/MX8lp4cqgRkQoDRGK2oZxi2GfWhlP2dIXmk7BaKeOTuzbHhyC68o8XQ==} + dev: true + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /execa@1.0.0: + resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} + engines: {node: '>=6'} + dependencies: + cross-spawn: 6.0.5 + get-stream: 4.1.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + dev: true + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa@7.1.1: + resolution: {integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + + /expand-brackets@2.1.4: + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} + dependencies: + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: true + + /extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + dev: true + + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: true + + /extglob@2.0.4: + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4 + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /extract-files@11.0.0: + resolution: {integrity: sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==} + engines: {node: ^12.20 || >= 14.13} + dev: true + + /extsprintf@1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} + dev: true + + /fast-decode-uri-component@1.0.1: + resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} + dev: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-glob@3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fast-querystring@1.1.1: + resolution: {integrity: sha512-qR2r+e3HvhEFmpdHMv//U8FnFlnYjaC6QKDuaXALDkw2kvHO8WDjxH+f/rHGR4Me4pnk8p9JAkRNTjYHAKRn2Q==} + dependencies: + fast-decode-uri-component: 1.0.1 + dev: true + + /fast-url-parser@1.1.3: + resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} + dependencies: + punycode: 1.4.1 + dev: true + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + dev: true + + /figures@2.0.0: + resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} + engines: {node: '>=4'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /figures@5.0.0: + resolution: {integrity: sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==} + engines: {node: '>=14'} + dependencies: + escape-string-regexp: 5.0.0 + is-unicode-supported: 1.3.0 + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + dev: true + + /filesize@6.4.0: + resolution: {integrity: sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==} + engines: {node: '>= 0.4.0'} + dev: true + + /fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-cache-dir@2.1.0: + resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} + engines: {node: '>=6'} + dependencies: + commondir: 1.0.1 + make-dir: 2.1.0 + pkg-dir: 3.0.0 + dev: true + + /find-cache-dir@3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} + dependencies: + commondir: 1.0.1 + make-dir: 3.1.0 + pkg-dir: 4.2.0 + dev: true + + /find-up@2.1.0: + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} + engines: {node: '>=4'} + dependencies: + locate-path: 2.0.0 + dev: true + + /find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + dependencies: + locate-path: 3.0.0 + dev: true + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + dev: true + + /find-versions@5.1.0: + resolution: {integrity: sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==} + engines: {node: '>=12'} + dependencies: + semver-regex: 4.0.5 + dev: true + + /flat-cache@3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.7 + rimraf: 3.0.2 + dev: true + + /flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + dev: true + + /flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + dev: true + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + dev: true + + /foreground-child@2.0.0: + resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} + engines: {node: '>=8.0.0'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 3.0.7 + dev: true + + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.0.1 + dev: true + + /forever-agent@0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + dev: true + + /form-data@2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} + dependencies: + map-cache: 0.2.2 + dev: true + + /from2@2.3.0: + resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + dev: true + + /fromentries@1.3.2: + resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==} + dev: true + + /fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + + /fs-readdir-recursive@1.1.0: + resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==} + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: true + + /function.prototype.name@1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /gauge@4.0.4: + resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + dev: true + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-func-name@2.0.0: + resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} + dev: true + + /get-intrinsic@1.2.0: + resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.3 + dev: true + + /get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + dev: true + + /get-set-props@0.1.0: + resolution: {integrity: sha512-7oKuKzAGKj0ag+eWZwcGw2fjiZ78tXnXQoBgY0aU7ZOxTu4bB7hSuQSDgtKy978EDH062P5FmD2EWiDpQS9K9Q==} + engines: {node: '>=0.10.0'} + dev: true + + /get-stream@4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} + dependencies: + pump: 3.0.0 + dev: true + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + dev: true + + /get-urls@10.0.1(bluebird@3.7.2): + resolution: {integrity: sha512-5usUMF4FE0cTS7yUuRvBsB4tSs5u8KFn7v01+IDGL/18tuoADu5ehthqw+y2EHnJsWhsp1443K5P+C/XWZQ04g==} + engines: {node: '>=10.12.0'} + dependencies: + normalize-url: 5.3.1 + url-regex-safe: 2.1.0(bluebird@3.7.2) + transitivePeerDependencies: + - bluebird + - supports-color + dev: true + + /get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + dev: true + + /getpass@0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + dependencies: + assert-plus: 1.0.0 + dev: true + + /git-log-parser@1.2.0: + resolution: {integrity: sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==} + dependencies: + argv-formatter: 1.0.0 + spawn-error-forwarder: 1.0.0 + split2: 1.0.0 + stream-combiner2: 1.1.1 + through2: 2.0.5 + traverse: 0.6.7 + dev: true + + /gitdown@3.1.5: + resolution: {integrity: sha512-nvdK4qp8yQdzbdHgnEUuC0ubfAvv27fHNpsX9/0FLJvAJk687zGkptRNvls4U5UNYMKdunIL84QR+qQKyHMDaw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + bluebird: 3.7.2 + deadlink: 1.1.3 + filesize: 6.4.0 + get-urls: 10.0.1(bluebird@3.7.2) + gitinfo: 2.4.0 + glob: 7.2.3 + jsonfile: 6.1.0 + lodash: 4.17.21 + markdown-contents: 1.0.11 + marked: 2.1.3 + moment: 2.29.4 + stack-trace: 0.0.10 + yargs: 16.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /gitinfo@2.4.0: + resolution: {integrity: sha512-cQU3oInRu7+LaPwFNlppP0NmJa1SBdZtNCUoo+XT/nGRbmwlhssbjkN7gQmfQZAuMxphghx0ACfbIQmMBmPT2w==} + dependencies: + ini: 1.3.8 + ramda: 0.26.1 + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob@10.2.2: + resolution: {integrity: sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.2.0 + minimatch: 9.0.0 + minipass: 5.0.0 + path-scurry: 1.7.0 + dev: true + + /glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob@7.2.0: + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + dev: true + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /globals@13.20.0: + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.0 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.0 + dev: true + + /graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true + + /grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true + + /graphql-config@4.5.0(graphql@16.6.0): + resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} + engines: {node: '>= 10.0.0'} + peerDependencies: + cosmiconfig-toml-loader: ^1.0.0 + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + cosmiconfig-toml-loader: + optional: true + dependencies: + '@graphql-tools/graphql-file-loader': 7.5.17(graphql@16.6.0) + '@graphql-tools/json-file-loader': 7.4.18(graphql@16.6.0) + '@graphql-tools/load': 7.8.14(graphql@16.6.0) + '@graphql-tools/merge': 8.4.1(graphql@16.6.0) + '@graphql-tools/url-loader': 7.17.18(graphql@16.6.0) + '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + cosmiconfig: 8.0.0 + graphql: 16.6.0 + jiti: 1.17.1 + minimatch: 4.2.3 + string-env-interpolation: 1.0.1 + tslib: 2.5.0 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - encoding + - utf-8-validate + dev: true + + /graphql-depth-limit@1.1.0(graphql@16.6.0): + resolution: {integrity: sha512-+3B2BaG8qQ8E18kzk9yiSdAa75i/hnnOwgSeAxVJctGQPvmeiLtqKOYF6HETCyRjiF7Xfsyal0HbLlxCQkgkrw==} + engines: {node: '>=6.0.0'} + peerDependencies: + graphql: '*' + dependencies: + arrify: 1.0.1 + graphql: 16.6.0 + dev: true + + /graphql-ws@5.12.1(graphql@16.6.0): + resolution: {integrity: sha512-umt4f5NnMK46ChM2coO36PTFhHouBrK9stWWBczERguwYrGnPNxJ9dimU6IyOBfOkC6Izhkg4H8+F51W/8CYDg==} + engines: {node: '>=10'} + peerDependencies: + graphql: '>=0.11 <=16' + dependencies: + graphql: 16.6.0 + dev: true + + /graphql@16.6.0: + resolution: {integrity: sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + dev: true + + /handlebars@4.7.7: + resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} + engines: {node: '>=0.4.7'} + hasBin: true + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.17.4 + dev: true + + /har-schema@2.0.0: + resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} + engines: {node: '>=4'} + dev: true + + /har-validator@5.1.5: + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} + engines: {node: '>=6'} + deprecated: this library is no longer supported + dependencies: + ajv: 6.12.6 + har-schema: 2.0.0 + dev: true + + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.0 + dev: true + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + dev: true + + /has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + dev: true + + /has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + dev: true + + /has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} + dev: true + + /has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + dev: true + + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: true + + /hasha@5.2.2: + resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==} + engines: {node: '>=8'} + dependencies: + is-stream: 2.0.1 + type-fest: 0.8.1 + dev: true + + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + + /homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + dependencies: + parse-passwd: 1.0.0 + dev: true + + /hook-std@3.0.0: + resolution: {integrity: sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + + /hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: true + + /hosted-git-info@6.1.1: + resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + lru-cache: 7.18.3 + dev: true + + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true + + /htmlparser2@3.10.1: + resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} + dependencies: + domelementtype: 1.3.1 + domhandler: 2.4.2 + domutils: 1.7.0 + entities: 1.1.2 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + dev: true + + /http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.3.4(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + dev: true + + /http-signature@1.2.0: + resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} + engines: {node: '>=0.8', npm: '>=1.3.7'} + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.2 + sshpk: 1.17.0 + dev: true + + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + dev: true + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + dev: true + + /humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + dependencies: + ms: 2.1.3 + dev: true + + /husky@8.0.3: + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + optional: true + + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: true + + /import-fresh@2.0.0: + resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} + engines: {node: '>=4'} + dependencies: + caller-path: 2.0.0 + resolve-from: 3.0.0 + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /import-from@4.0.0: + resolution: {integrity: sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==} + engines: {node: '>=12.2'} + dev: true + + /import-modules@2.1.0: + resolution: {integrity: sha512-8HEWcnkbGpovH9yInoisxaSoIg9Brbul+Ju3Kqe2UsYDUBJD/iQjSgEj0zPcTDPKfPp2fs5xlv1i+JSye/m1/A==} + engines: {node: '>=8'} + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + dev: true + + /infer-owner@1.0.4: + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: true + + /install-artifact-from-github@1.3.2: + resolution: {integrity: sha512-yCFcLvqk0yQdxx0uJz4t9Z3adDMLAYrcGYv546uRXCSvxE+GqNYhhz/KmrGcUKGI/gVLR9n/e/zM9jX/+ASMJQ==} + hasBin: true + dev: true + + /internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /into-stream@7.0.0: + resolution: {integrity: sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==} + engines: {node: '>=12'} + dependencies: + from2: 2.3.0 + p-is-promise: 3.0.0 + dev: true + + /ip-regex@4.3.0: + resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==} + engines: {node: '>=8'} + dev: true + + /ip@2.0.0: + resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} + dev: true + + /is-accessor-descriptor@0.1.6: + resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-accessor-descriptor@1.0.0: + resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-typed-array: 1.1.10 + dev: true + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + dev: true + + /is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + dependencies: + builtin-modules: 3.3.0 + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-core-module@2.12.0: + resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==} + dependencies: + has: 1.0.3 + dev: true + + /is-data-descriptor@0.1.4: + resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-data-descriptor@1.0.0: + resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-descriptor@0.1.6: + resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} + engines: {node: '>=0.10.0'} + dependencies: + is-accessor-descriptor: 0.1.6 + is-data-descriptor: 0.1.4 + kind-of: 5.1.0 + dev: true + + /is-descriptor@1.0.2: + resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} + engines: {node: '>=0.10.0'} + dependencies: + is-accessor-descriptor: 1.0.0 + is-data-descriptor: 1.0.0 + kind-of: 6.0.3 + dev: true + + /is-directory@0.3.1: + resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} + engines: {node: '>=0.10.0'} + dev: true + + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true + + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: true + + /is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-object: 2.0.4 + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + dev: true + + /is-get-set-prop@1.0.0: + resolution: {integrity: sha512-DvAYZ1ZgGUz4lzxKMPYlt08qAUqyG9ckSg2pIjfvcQ7+pkVNUHk8yVLXOnCLe5WKXhLop8oorWFBJHpwWQpszQ==} + dependencies: + get-set-props: 0.1.0 + lowercase-keys: 1.0.1 + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-js-type@2.0.0: + resolution: {integrity: sha512-Aj13l47+uyTjlQNHtXBV8Cji3jb037vxwMWCgopRR8h6xocgBGW3qG8qGlIOEmbXQtkKShKuBM9e8AA1OeQ+xw==} + dependencies: + js-types: 1.0.0 + dev: true + + /is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + dev: true + + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-obj-prop@1.0.0: + resolution: {integrity: sha512-5Idb61slRlJlsAzi0Wsfwbp+zZY+9LXKUAZpvT/1ySw+NxKLRWfa0Bzj+wXI3fX5O9hiddm5c3DAaRSNP/yl2w==} + dependencies: + lowercase-keys: 1.0.1 + obj-props: 1.4.0 + dev: true + + /is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + dev: true + + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: true + + /is-proto-prop@2.0.0: + resolution: {integrity: sha512-jl3NbQ/fGLv5Jhan4uX+Ge9ohnemqyblWVVCpAvtTQzNFvV2xhJq+esnkIbYQ9F1nITXoLfDDQLp7LBw/zzncg==} + dependencies: + lowercase-keys: 1.0.1 + proto-props: 2.0.0 + dev: true + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-text-path@1.0.1: + resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} + engines: {node: '>=0.10.0'} + dependencies: + text-extensions: 1.9.0 + dev: true + + /is-typed-array@1.1.10: + resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + dev: true + + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true + + /is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + dev: true + + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + dev: true + + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true + + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: true + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: true + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + dependencies: + isarray: 1.0.0 + dev: true + + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + dev: true + + /isomorphic-ws@5.0.0(ws@8.13.0): + resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} + peerDependencies: + ws: '*' + dependencies: + ws: 8.13.0 + dev: true + + /isstream@0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + dev: true + + /issue-parser@6.0.0: + resolution: {integrity: sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==} + engines: {node: '>=10.13'} + dependencies: + lodash.capitalize: 4.2.1 + lodash.escaperegexp: 4.1.2 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.uniqby: 4.7.0 + dev: true + + /istanbul-lib-coverage@3.2.0: + resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-hook@3.0.0: + resolution: {integrity: sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==} + engines: {node: '>=8'} + dependencies: + append-transform: 2.0.0 + dev: true + + /istanbul-lib-instrument@4.0.3: + resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} + engines: {node: '>=8'} + dependencies: + '@babel/core': 7.21.5 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + dependencies: + '@babel/core': 7.21.5 + '@babel/parser': 7.21.8 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-processinfo@2.0.3: + resolution: {integrity: sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==} + engines: {node: '>=8'} + dependencies: + archy: 1.0.0 + cross-spawn: 7.0.3 + istanbul-lib-coverage: 3.2.0 + p-map: 3.0.0 + rimraf: 3.0.2 + uuid: 8.3.2 + dev: true + + /istanbul-lib-report@3.0.0: + resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} + engines: {node: '>=8'} + dependencies: + istanbul-lib-coverage: 3.2.0 + make-dir: 3.1.0 + supports-color: 7.2.0 + dev: true + + /istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + dependencies: + debug: 4.3.4(supports-color@8.1.1) + istanbul-lib-coverage: 3.2.0 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-reports@3.1.5: + resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.0 + dev: true + + /jackspeak@2.2.0: + resolution: {integrity: sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + dev: true + + /java-properties@1.0.2: + resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==} + engines: {node: '>= 0.6.0'} + dev: true + + /jiti@1.17.1: + resolution: {integrity: sha512-NZIITw8uZQFuzQimqjUxIrIcEdxYDFIe/0xYfIlVXTkiBjjyBEvgasj5bb0/cHtPRD/NziPbT312sFrkI5ALpw==} + hasBin: true + dev: true + + /js-sdsl@4.4.0: + resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==} + dev: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + + /js-types@1.0.0: + resolution: {integrity: sha512-bfwqBW9cC/Lp7xcRpug7YrXm0IVw+T9e3g4mCYnv0Pjr3zIzU9PCQElYU9oSGAWzXlbdl9X5SAMPejO9sxkeUw==} + engines: {node: '>=0.10.0'} + dev: true + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsbn@0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + dev: true + + /jsdoc-type-pratt-parser@2.2.5: + resolution: {integrity: sha512-2a6eRxSxp1BW040hFvaJxhsCMI9lT8QB8t14t+NY5tC5rckIR0U9cr2tjOeaFirmEOy6MHvmJnY7zTBHq431Lw==} + engines: {node: '>=12.0.0'} + dev: true + + /jsdoc-type-pratt-parser@3.1.0: + resolution: {integrity: sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==} + engines: {node: '>=12.0.0'} + dev: true + + /jsdoc-type-pratt-parser@4.0.0: + resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} + engines: {node: '>=12.0.0'} + + /jsdom@6.5.1: + resolution: {integrity: sha512-KeCN3yqR+MmjAZDnVZgIaL2tP9BxSFlsYZw9Z+zy64+jJzHc1m8ruccb83Qe8AG0xKUjpo2kxEGFCMtiF4MmAg==} + dependencies: + acorn: 2.7.0 + acorn-globals: 1.0.9 + browser-request: 0.3.3 + cssom: 0.3.8 + cssstyle: 0.2.37 + escodegen: 1.14.3 + htmlparser2: 3.10.1 + nwmatcher: 1.4.4 + parse5: 1.5.1 + request: 2.88.2 + symbol-tree: 3.2.4 + tough-cookie: 2.5.0 + whatwg-url-compat: 0.6.5 + xml-name-validator: 2.0.1 + xmlhttprequest: 1.8.0 + xtend: 4.0.2 + dev: true + + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: true + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /json-parse-even-better-errors@3.0.0: + resolution: {integrity: sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + dev: true + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonc-eslint-parser@2.2.0: + resolution: {integrity: sha512-x5QjzBOORd+T2EjErIxJnkOEbLVEdD1ILEeBbIJt8Eq/zUn7P7M8qdnWiNVBK5f8oxnJpc6SBHOeeIEl/swPjg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.2 + eslint-visitor-keys: 3.4.0 + espree: 9.5.1 + semver: 7.5.0 + dev: true + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + dev: true + + /jsprim@1.4.2: + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} + engines: {node: '>=0.6.0'} + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + dev: true + + /jsx-ast-utils@3.3.3: + resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.6 + object.assign: 4.1.4 + dev: true + + /kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: true + + /kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: true + + /kind-of@5.1.0: + resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} + engines: {node: '>=0.10.0'} + dev: true + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /language-subtag-registry@0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + dev: true + + /language-tags@1.0.5: + resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} + dependencies: + language-subtag-registry: 0.3.22 + dev: true + + /levn@0.3.0: + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.1.2 + type-check: 0.3.2 + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + + /line-column-path@2.0.0: + resolution: {integrity: sha512-nz3A+vi4bElhwd62E9+Qk/f9BDYLSzD/4Hy1rir0I4GnMxSTezSymzANyph5N1PgRZ3sSbA+yR5hOuXxc71a0Q==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.4.1 + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /lines-and-columns@2.0.3: + resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /lint-staged@13.2.2: + resolution: {integrity: sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + chalk: 5.2.0 + cli-truncate: 3.1.0 + commander: 10.0.1 + debug: 4.3.4(supports-color@8.1.1) + execa: 7.1.1 + lilconfig: 2.1.0 + listr2: 5.0.8 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-inspect: 1.12.3 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.2.2 + transitivePeerDependencies: + - enquirer + - supports-color + dev: true + + /listr2@5.0.8: + resolution: {integrity: sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==} + engines: {node: ^14.13.1 || >=16.0.0} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.20 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.3.0 + rxjs: 7.8.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} + engines: {node: '>=4'} + dependencies: + graceful-fs: 4.2.11 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + dev: true + + /locate-path@2.0.0: + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} + engines: {node: '>=4'} + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + dev: true + + /locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + dev: true + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-locate: 6.0.0 + dev: true + + /lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: true + + /lodash.capitalize@4.2.1: + resolution: {integrity: sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==} + dev: true + + /lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: true + + /lodash.defaultsdeep@4.6.1: + resolution: {integrity: sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==} + dev: true + + /lodash.escaperegexp@4.1.2: + resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + dev: true + + /lodash.flattendeep@4.4.0: + resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==} + dev: true + + /lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + dev: true + + /lodash.ismatch@4.4.0: + resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} + dev: true + + /lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + dev: true + + /lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + dev: true + + /lodash.lowercase@4.3.0: + resolution: {integrity: sha512-UcvP1IZYyDKyEL64mmrwoA1AbFu5ahojhTtkOUr1K9dbuxzS9ev8i4TxMMGCqRC9TE8uDaSoufNAXxRPNTseVA==} + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.uniqby@4.7.0: + resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} + dev: true + + /lodash.zip@4.2.0: + resolution: {integrity: sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==} + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + + /log-update@4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + dev: true + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: true + + /loupe@2.3.6: + resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + dependencies: + get-func-name: 2.0.0 + dev: true + + /lowercase-keys@1.0.1: + resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} + engines: {node: '>=0.10.0'} + dev: true + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + + /lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + dev: true + + /lru-cache@9.1.1: + resolution: {integrity: sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==} + engines: {node: 14 || >=16.14} + dev: true + + /make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + dependencies: + pify: 4.0.1 + semver: 5.7.1 + dev: true + + /make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.0 + dev: true + + /make-fetch-happen@10.2.1(bluebird@3.7.2): + resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + agentkeepalive: 4.3.0 + cacache: 16.1.3(bluebird@3.7.2) + http-cache-semantics: 4.1.1 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-lambda: 1.0.1 + lru-cache: 7.18.3 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-fetch: 2.1.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.3 + promise-retry: 2.0.1 + socks-proxy-agent: 7.0.0 + ssri: 9.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + dev: true + + /map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true + + /map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} + dependencies: + object-visit: 1.0.1 + dev: true + + /markdown-contents@1.0.11: + resolution: {integrity: sha512-6o8It0JhmoN398ATp8zOWHAniTB3/tEXUVTCP00gTqwZNc465DIoHTTaspyEkaov93QLhrqirxizJ29E/i8/0Q==} + dependencies: + contents: 5.0.0 + lodash: 4.17.21 + dev: true + + /marked-terminal@5.1.1(marked@4.3.0): + resolution: {integrity: sha512-+cKTOx9P4l7HwINYhzbrBSyzgxO2HaHKGZGuB1orZsMIgXYaJyfidT81VXRdpelW/PcHEWxywscePVgI/oUF6g==} + engines: {node: '>=14.13.1 || >=16.0.0'} + peerDependencies: + marked: ^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 + dependencies: + ansi-escapes: 5.0.0 + cardinal: 2.1.1 + chalk: 5.2.0 + cli-table3: 0.6.3 + marked: 4.3.0 + node-emoji: 1.11.0 + supports-hyperlinks: 2.3.0 + dev: true + + /marked@2.1.3: + resolution: {integrity: sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==} + engines: {node: '>= 10'} + hasBin: true + dev: true + + /marked@4.3.0: + resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} + engines: {node: '>= 12'} + hasBin: true + dev: true + + /meow@8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /meros@1.2.1: + resolution: {integrity: sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g==} + engines: {node: '>=13'} + peerDependencies: + '@types/node': '>=13' + peerDependenciesMeta: + '@types/node': + optional: true + dev: true + + /micro-spelling-correcter@1.1.1: + resolution: {integrity: sha512-lkJ3Rj/mtjlRcHk6YyCbvZhyWTOzdBvTHsxMmZSk5jxN1YyVSQ+JETAom55mdzfcyDrY/49Z7UCW760BK30crg==} + dev: true + + /micromatch@3.1.10: + resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 6.0.3 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: true + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: true + + /mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + dev: true + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@4.2.3: + resolution: {integrity: sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@5.0.1: + resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@9.0.0: + resolution: {integrity: sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /minipass-collect@1.0.2: + resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + + /minipass-fetch@2.1.2: + resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + minipass: 3.3.6 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 + dev: true + + /minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + + /minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + dependencies: + minipass: 3.3.6 + dev: true + + /minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + dependencies: + minipass: 3.3.6 + dev: true + + /minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + dependencies: + yallist: 4.0.0 + dev: true + + /minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + dev: true + + /minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + dev: true + + /mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + dev: true + + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /mocha@10.2.0: + resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==} + engines: {node: '>= 14.0.0'} + hasBin: true + dependencies: + ansi-colors: 4.1.1 + browser-stdout: 1.3.1 + chokidar: 3.5.3 + debug: 4.3.4(supports-color@8.1.1) + diff: 5.0.0 + escape-string-regexp: 4.0.0 + find-up: 5.0.0 + glob: 7.2.0 + he: 1.2.0 + js-yaml: 4.1.0 + log-symbols: 4.1.0 + minimatch: 5.0.1 + ms: 2.1.3 + nanoid: 3.3.3 + serialize-javascript: 6.0.0 + strip-json-comments: 3.1.1 + supports-color: 8.1.1 + workerpool: 6.2.1 + yargs: 16.2.0 + yargs-parser: 20.2.4 + yargs-unparser: 2.0.0 + dev: true + + /modify-values@1.0.1: + resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} + engines: {node: '>=0.10.0'} + dev: true + + /moment@2.29.4: + resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} + dev: true + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + + /multimap@1.1.0: + resolution: {integrity: sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==} + dev: true + + /nan@2.17.0: + resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==} + dev: true + + /nanoid@3.3.3: + resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /nanomatch@1.2.13: + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + fragment-cache: 0.2.1 + is-windows: 1.0.2 + kind-of: 6.0.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: true + + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + dev: true + + /nerf-dart@1.0.0: + resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} + dev: true + + /nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + dev: true + + /node-emoji@1.11.0: + resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} + dependencies: + lodash: 4.17.21 + dev: true + + /node-environment-flags@1.0.6: + resolution: {integrity: sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==} + dependencies: + object.getownpropertydescriptors: 2.1.6 + semver: 5.7.1 + dev: true + + /node-fetch@2.6.9: + resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: true + + /node-gyp@9.3.1(bluebird@3.7.2): + resolution: {integrity: sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==} + engines: {node: ^12.13 || ^14.13 || >=16} + hasBin: true + dependencies: + env-paths: 2.2.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + make-fetch-happen: 10.2.1(bluebird@3.7.2) + nopt: 6.0.0 + npmlog: 6.0.2 + rimraf: 3.0.2 + semver: 7.5.0 + tar: 6.1.14 + which: 2.0.2 + transitivePeerDependencies: + - bluebird + - supports-color + dev: true + + /node-preload@0.2.1: + resolution: {integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==} + engines: {node: '>=8'} + dependencies: + process-on-spawn: 1.0.0 + dev: true + + /node-releases@2.0.10: + resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} + dev: true + + /nopt@6.0.0: + resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + hasBin: true + dependencies: + abbrev: 1.1.1 + dev: true + + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.2 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.12.0 + semver: 7.5.0 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-package-data@5.0.0: + resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + hosted-git-info: 6.1.1 + is-core-module: 2.12.0 + semver: 7.5.0 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path@2.1.1: + resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} + engines: {node: '>=0.10.0'} + dependencies: + remove-trailing-separator: 1.1.0 + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-url@5.3.1: + resolution: {integrity: sha512-K1c7+vaAP+Yh5bOGmA10PGPpp+6h7WZrl7GwqKhUflBc9flU9pzG27DDeB9+iuhZkE3BJZOcgN1P/2sS5pqrWw==} + engines: {node: '>=10'} + dev: true + + /normalize-url@8.0.0: + resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==} + engines: {node: '>=14.16'} + dev: true + + /npm-path@2.0.4: + resolution: {integrity: sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==} + engines: {node: '>=0.8'} + hasBin: true + dependencies: + which: 1.3.1 + dev: true + + /npm-run-path@2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} + engines: {node: '>=4'} + dependencies: + path-key: 2.0.1 + dev: true + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + + /npm-which@3.0.1: + resolution: {integrity: sha512-CM8vMpeFQ7MAPin0U3wzDhSGV0hMHNwHU0wjo402IVizPDrs45jSfSuoC+wThevY88LQti8VvaAnqYAeVy3I1A==} + engines: {node: '>=4.2.0'} + hasBin: true + dependencies: + commander: 2.20.3 + npm-path: 2.0.4 + which: 1.3.1 + dev: true + + /npm@9.6.6: + resolution: {integrity: sha512-GIe+nCIw8EJIv52IXDVETSGnx7p9Ttg4VsaXNIeT4eaKZpIZ635rKC/uzQ6nnc4ibCUmESoK3PrXG0/puoqNcg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + dev: true + bundledDependencies: + - '@isaacs/string-locale-compare' + - '@npmcli/arborist' + - '@npmcli/config' + - '@npmcli/map-workspaces' + - '@npmcli/package-json' + - '@npmcli/run-script' + - abbrev + - archy + - cacache + - chalk + - ci-info + - cli-columns + - cli-table3 + - columnify + - fastest-levenshtein + - fs-minipass + - glob + - graceful-fs + - hosted-git-info + - ini + - init-package-json + - is-cidr + - json-parse-even-better-errors + - libnpmaccess + - libnpmdiff + - libnpmexec + - libnpmfund + - libnpmhook + - libnpmorg + - libnpmpack + - libnpmpublish + - libnpmsearch + - libnpmteam + - libnpmversion + - make-fetch-happen + - minimatch + - minipass + - minipass-pipeline + - ms + - node-gyp + - nopt + - npm-audit-report + - npm-install-checks + - npm-package-arg + - npm-pick-manifest + - npm-profile + - npm-registry-fetch + - npm-user-validate + - npmlog + - p-map + - pacote + - parse-conflict-json + - proc-log + - qrcode-terminal + - read + - read-package-json + - read-package-json-fast + - semver + - ssri + - tar + - text-table + - tiny-relative-date + - treeverse + - validate-npm-package-name + - which + - write-file-atomic + + /npmlog@6.0.2: + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + are-we-there-yet: 3.0.1 + console-control-strings: 1.1.0 + gauge: 4.0.4 + set-blocking: 2.0.0 + dev: true + + /nwmatcher@1.4.4: + resolution: {integrity: sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==} + dev: true + + /nyc@15.1.0: + resolution: {integrity: sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==} + engines: {node: '>=8.9'} + hasBin: true + dependencies: + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + caching-transform: 4.0.0 + convert-source-map: 1.9.0 + decamelize: 1.2.0 + find-cache-dir: 3.3.2 + find-up: 4.1.0 + foreground-child: 2.0.0 + get-package-type: 0.1.0 + glob: 7.2.3 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-hook: 3.0.0 + istanbul-lib-instrument: 4.0.3 + istanbul-lib-processinfo: 2.0.3 + istanbul-lib-report: 3.0.0 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.5 + make-dir: 3.1.0 + node-preload: 0.2.1 + p-map: 3.0.0 + process-on-spawn: 1.0.0 + resolve-from: 5.0.0 + rimraf: 3.0.2 + signal-exit: 3.0.7 + spawn-wrap: 2.0.0 + test-exclude: 6.0.0 + yargs: 15.4.1 + transitivePeerDependencies: + - supports-color + dev: true + + /oauth-sign@0.9.0: + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + dev: true + + /obj-props@1.4.0: + resolution: {integrity: sha512-p7p/7ltzPDiBs6DqxOrIbtRdwxxVRBj5ROukeNb9RgA+fawhrz5n2hpNz8DDmYR//tviJSj7nUnlppGmONkjiQ==} + engines: {node: '>=0.10.0'} + dev: true + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true + + /object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + dev: true + + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: true + + /object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.entries@1.1.6: + resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + dev: true + + /object.fromentries@2.0.6: + resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + dev: true + + /object.getownpropertydescriptors@2.1.6: + resolution: {integrity: sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ==} + engines: {node: '>= 0.8'} + dependencies: + array.prototype.reduce: 1.0.5 + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + safe-array-concat: 1.0.0 + dev: true + + /object.hasown@1.1.2: + resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} + dependencies: + define-properties: 1.2.0 + es-abstract: 1.21.2 + dev: true + + /object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /object.values@1.1.6: + resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + + /open-editor@3.0.0: + resolution: {integrity: sha512-00Nqoa7k8F4AK1oSFMIIhYku+essXiCljR2L2kV+bl5j90ANgbQgzEeTdZu23LsikDoz+KfhyRHpGLAwpQhugA==} + engines: {node: '>=10'} + dependencies: + env-editor: 0.4.2 + execa: 5.1.1 + line-column-path: 2.0.0 + open: 7.4.2 + dev: true + + /open@7.4.2: + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: true + + /optionator@0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.3.0 + prelude-ls: 1.1.2 + type-check: 0.3.2 + word-wrap: 1.2.3 + dev: true + + /optionator@0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + + /p-each-series@3.0.0: + resolution: {integrity: sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==} + engines: {node: '>=12'} + dev: true + + /p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + dependencies: + p-map: 2.1.0 + dev: true + + /p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + dev: true + + /p-is-promise@3.0.0: + resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} + engines: {node: '>=8'} + dev: true + + /p-limit@1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + dependencies: + p-try: 1.0.0 + dev: true + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + yocto-queue: 1.0.0 + dev: true + + /p-locate@2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} + dependencies: + p-limit: 1.3.0 + dev: true + + /p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-limit: 4.0.0 + dev: true + + /p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + dev: true + + /p-map@3.0.0: + resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} + engines: {node: '>=8'} + dependencies: + aggregate-error: 3.1.0 + dev: true + + /p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: true + + /p-reduce@3.0.0: + resolution: {integrity: sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==} + engines: {node: '>=12'} + dev: true + + /p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + dependencies: + '@types/retry': 0.12.0 + retry: 0.13.1 + dev: true + + /p-try@1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} + engines: {node: '>=4'} + dev: true + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /package-hash@4.0.0: + resolution: {integrity: sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==} + engines: {node: '>=8'} + dependencies: + graceful-fs: 4.2.11 + hasha: 5.2.2 + lodash.flattendeep: 4.4.0 + release-zalgo: 1.0.0 + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + dev: true + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.21.4 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /parse-json@7.0.0: + resolution: {integrity: sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==} + engines: {node: '>=16'} + dependencies: + '@babel/code-frame': 7.21.4 + error-ex: 1.3.2 + json-parse-even-better-errors: 3.0.0 + lines-and-columns: 2.0.3 + type-fest: 3.9.0 + dev: true + + /parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + dev: true + + /parse5@1.5.1: + resolution: {integrity: sha512-w2jx/0tJzvgKwZa58sj2vAYq/S/K1QJfIB3cWYea/Iu1scFPDQQ3IQiVZTHWtRBwAjv2Yd7S/xeZf3XqLDb3bA==} + dev: true + + /pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} + dev: true + + /path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-scurry@1.7.0: + resolution: {integrity: sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: 9.1.1 + minipass: 5.0.0 + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true + + /performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + dev: true + + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + dev: true + + /pirates@4.0.5: + resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} + engines: {node: '>= 6'} + dev: true + + /pkg-conf@2.1.0: + resolution: {integrity: sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==} + engines: {node: '>=4'} + dependencies: + find-up: 2.1.0 + load-json-file: 4.0.0 + dev: true + + /pkg-dir@3.0.0: + resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} + engines: {node: '>=6'} + dependencies: + find-up: 3.0.0 + dev: true + + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + dev: true + + /pkg-dir@5.0.0: + resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} + engines: {node: '>=10'} + dependencies: + find-up: 5.0.0 + dev: true + + /pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + dev: true + + /posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + dev: true + + /prelude-ls@1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + engines: {node: '>= 0.8.0'} + dev: true + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: true + + /process-on-spawn@1.0.0: + resolution: {integrity: sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==} + engines: {node: '>=8'} + dependencies: + fromentries: 1.3.2 + dev: true + + /promise-inflight@1.0.1(bluebird@3.7.2): + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + dependencies: + bluebird: 3.7.2 + dev: true + + /promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + dev: true + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: true + + /proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + dev: true + + /proto-props@2.0.0: + resolution: {integrity: sha512-2yma2tog9VaRZY2mn3Wq51uiSW4NcPYT1cQdBagwyrznrilKSZwIZ0UG3ZPL/mx+axEns0hE35T5ufOYZXEnBQ==} + engines: {node: '>=4'} + dev: true + + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true + + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + dev: true + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + dev: true + + /pvtsutils@1.3.2: + resolution: {integrity: sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==} + dependencies: + tslib: 2.5.0 + dev: true + + /pvutils@1.1.3: + resolution: {integrity: sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==} + engines: {node: '>=6.0.0'} + dev: true + + /q@1.5.1: + resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} + engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + dev: true + + /qs@6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + dev: true + + /rambda@7.5.0: + resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==} + dev: true + + /ramda@0.26.1: + resolution: {integrity: sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==} + dev: true + + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + dev: true + + /re2@1.18.0(bluebird@3.7.2): + resolution: {integrity: sha512-MoCYZlJ9YUgksND9asyNF2/x532daXU/ARp1UeJbQ5flMY6ryKNEhrWt85aw3YluzOJlC3vXpGgK2a1jb0b4GA==} + requiresBuild: true + dependencies: + install-artifact-from-github: 1.3.2 + nan: 2.17.0 + node-gyp: 9.3.1(bluebird@3.7.2) + transitivePeerDependencies: + - bluebird + - supports-color + dev: true + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: true + + /read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg-up@9.1.0: + resolution: {integrity: sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + find-up: 6.3.0 + read-pkg: 7.1.0 + type-fest: 2.19.0 + dev: true + + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + + /read-pkg@7.1.0: + resolution: {integrity: sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==} + engines: {node: '>=12.20'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 3.0.3 + parse-json: 5.2.0 + type-fest: 2.19.0 + dev: true + + /read-pkg@8.0.0: + resolution: {integrity: sha512-Ajb9oSjxXBw0YyOiwtQ2dKbAA/vMnUPnY63XcCk+mXo0BwIdQEMgZLZiMWGttQHcUhUgbK0mH85ethMPKXxziw==} + engines: {node: '>=16'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 5.0.0 + parse-json: 7.0.0 + type-fest: 3.9.0 + dev: true + + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: true + + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + + /redeyed@2.1.1: + resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==} + dependencies: + esprima: 4.0.1 + dev: true + + /regenerate-unicode-properties@10.1.0: + resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + dev: true + + /regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + dev: true + + /regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + dev: true + + /regenerator-transform@0.15.1: + resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==} + dependencies: + '@babel/runtime': 7.21.5 + dev: true + + /regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + dev: true + + /regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + dev: true + + /regexp.prototype.flags@1.5.0: + resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + functions-have-names: 1.2.3 + dev: true + + /regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true + + /regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} + dependencies: + '@babel/regjsgen': 0.8.0 + regenerate: 1.4.2 + regenerate-unicode-properties: 10.1.0 + regjsparser: 0.9.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.1.0 + dev: true + + /regextras@0.8.0: + resolution: {integrity: sha512-k519uI04Z3SaY0fLX843MRXnDeG2+vHOFsyhiPZvNLe7r8rD2YNRjq4BQLZZ0oAr2NrtvZlICsXysGNFPGa3CQ==} + engines: {node: '>=0.1.14'} + dev: true + + /registry-auth-token@5.0.2: + resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} + engines: {node: '>=14'} + dependencies: + '@pnpm/npm-conf': 2.2.0 + dev: true + + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + + /release-zalgo@1.0.0: + resolution: {integrity: sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==} + engines: {node: '>=4'} + dependencies: + es6-error: 4.1.1 + dev: true + + /remove-trailing-separator@1.1.0: + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + dev: true + + /repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} + dev: true + + /repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + dev: true + + /req-all@0.1.0: + resolution: {integrity: sha512-ZdvPr8uXy9ujX3KujwE2P1HWkMYgogIhqeAeyb47MqWjSfyxERSm0TNbN/IapCCmWDufXab04AYrRgObaJCJ6Q==} + engines: {node: '>=4'} + dev: true + + /request@2.88.2: + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} + engines: {node: '>= 6'} + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + dependencies: + aws-sign2: 0.7.0 + aws4: 1.12.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + har-validator: 5.1.5 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.3 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 3.4.0 + dev: true + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true + + /require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + dev: true + + /requireindex@1.1.0: + resolution: {integrity: sha512-LBnkqsDE7BZKvqylbmn7lTIVdpx4K/QCduRATpO5R+wtPmky/a8pN1bO2D6wXppn1497AJF9mNjqAXr6bdl9jg==} + engines: {node: '>=0.10.5'} + dev: true + + /resolve-from@3.0.0: + resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} + engines: {node: '>=4'} + dev: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + deprecated: https://github.com/lydell/resolve-url#deprecated + dev: true + + /resolve@1.22.2: + resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} + hasBin: true + dependencies: + is-core-module: 2.12.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /resolve@2.0.0-next.4: + resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} + hasBin: true + dependencies: + is-core-module: 2.12.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + dev: true + + /retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + dev: true + + /retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rfdc@1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rimraf@5.0.0: + resolution: {integrity: sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==} + engines: {node: '>=14'} + hasBin: true + dependencies: + glob: 10.2.2 + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + dependencies: + tslib: 2.5.0 + dev: true + + /safe-array-concat@1.0.0: + resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-regex: 1.1.4 + dev: true + + /safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + dependencies: + ret: 0.1.15 + dev: true + + /safe-regex@2.1.1: + resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} + dependencies: + regexp-tree: 0.1.27 + dev: true + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true + + /semantic-release@21.0.2: + resolution: {integrity: sha512-Hl6lyJdZ0pAYD07Z1FIUmg06UzSC3fEjHS7U31YppNQ8jOwjjt7pVzW9OfpoO0vbmqD3Tc+b/iZh5fqvKt01OA==} + engines: {node: '>=18'} + hasBin: true + dependencies: + '@semantic-release/commit-analyzer': 9.0.2(semantic-release@21.0.2) + '@semantic-release/error': 3.0.0 + '@semantic-release/github': 8.0.7(semantic-release@21.0.2) + '@semantic-release/npm': 10.0.3(semantic-release@21.0.2) + '@semantic-release/release-notes-generator': 11.0.1(semantic-release@21.0.2) + aggregate-error: 4.0.1 + cosmiconfig: 8.1.3 + debug: 4.3.4(supports-color@8.1.1) + env-ci: 9.1.0 + execa: 7.1.1 + figures: 5.0.0 + find-versions: 5.1.0 + get-stream: 6.0.1 + git-log-parser: 1.2.0 + hook-std: 3.0.0 + hosted-git-info: 6.1.1 + lodash-es: 4.17.21 + marked: 4.3.0 + marked-terminal: 5.1.1(marked@4.3.0) + micromatch: 4.0.5 + p-each-series: 3.0.0 + p-reduce: 3.0.0 + read-pkg-up: 9.1.0 + resolve-from: 5.0.0 + semver: 7.5.0 + semver-diff: 4.0.0 + signale: 1.4.0 + yargs: 17.7.2 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /semver-diff@4.0.0: + resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} + engines: {node: '>=12'} + dependencies: + semver: 7.5.0 + dev: true + + /semver-regex@4.0.5: + resolution: {integrity: sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==} + engines: {node: '>=12'} + dev: true + + /semver@5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true + dev: true + + /semver@6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + dev: true + + /semver@7.5.0: + resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + + /serialize-javascript@6.0.0: + resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + dependencies: + randombytes: 2.1.0 + dev: true + + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: true + + /set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + dev: true + + /shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + dependencies: + kind-of: 6.0.3 + dev: true + + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: 1.0.0 + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + object-inspect: 1.12.3 + dev: true + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /signal-exit@4.0.1: + resolution: {integrity: sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==} + engines: {node: '>=14'} + dev: true + + /signale@1.4.0: + resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==} + engines: {node: '>=6'} + dependencies: + chalk: 2.4.2 + figures: 2.0.0 + pkg-conf: 2.1.0 + dev: true + + /sister@3.0.2: + resolution: {integrity: sha512-p19rtTs+NksBRKW9qn0UhZ8/TUI9BPw9lmtHny+Y3TinWlOa9jWh9xB0AtPSdmOy49NJJJSSe0Ey4C7h0TrcYA==} + dev: true + + /slash@2.0.0: + resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} + engines: {node: '>=6'} + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slice-ansi@3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + dev: true + + /smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + dev: true + + /snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + dev: true + + /snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /snapdragon@0.8.2: + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} + dependencies: + base: 0.11.2 + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: 0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /socks-proxy-agent@7.0.0: + resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} + engines: {node: '>= 10'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4(supports-color@8.1.1) + socks: 2.7.1 + transitivePeerDependencies: + - supports-color + dev: true + + /socks@2.7.1: + resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} + engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + dependencies: + ip: 2.0.0 + smart-buffer: 4.2.0 + dev: true + + /source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.2 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + dev: true + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + dev: true + + /source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /spawn-error-forwarder@1.0.0: + resolution: {integrity: sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==} + dev: true + + /spawn-wrap@2.0.0: + resolution: {integrity: sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==} + engines: {node: '>=8'} + dependencies: + foreground-child: 2.0.0 + is-windows: 1.0.2 + make-dir: 3.1.0 + rimraf: 3.0.2 + signal-exit: 3.0.7 + which: 2.0.2 + dev: true + + /spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.13 + dev: true + + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.13 + + /spdx-license-ids@3.0.13: + resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} + + /split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + dev: true + + /split2@1.0.0: + resolution: {integrity: sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==} + dependencies: + through2: 2.0.5 + dev: true + + /split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + dependencies: + readable-stream: 3.6.2 + dev: true + + /split@1.0.1: + resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} + dependencies: + through: 2.3.8 + dev: true + + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true + + /sshpk@1.17.0: + resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + dev: true + + /ssri@9.0.1: + resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + minipass: 3.3.6 + dev: true + + /stack-trace@0.0.10: + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + dev: true + + /static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + dev: true + + /stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + dependencies: + internal-slot: 1.0.5 + dev: true + + /stream-combiner2@1.1.1: + resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} + dependencies: + duplexer2: 0.1.4 + readable-stream: 2.3.8 + dev: true + + /streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + dev: true + + /string-argv@0.1.2: + resolution: {integrity: sha512-mBqPGEOMNJKXRo7z0keX0wlAhbBAjilUdPW13nN0PecVryZxdHIeM7TqbsSUA7VYuS00HGC6mojP7DlQzfa9ZA==} + engines: {node: '>=0.6.19'} + dev: true + + /string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + dev: true + + /string-env-interpolation@1.0.1: + resolution: {integrity: sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==} + dev: true + + /string-natural-compare@3.0.1: + resolution: {integrity: sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==} + dev: true + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.0.1 + dev: true + + /string.prototype.matchall@4.0.8: + resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + get-intrinsic: 1.2.0 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + regexp.prototype.flags: 1.5.0 + side-channel: 1.0.4 + dev: true + + /string.prototype.trim@1.2.7: + resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + dev: true + + /string.prototype.trimend@1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + dev: true + + /string.prototype.trimstart@1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + dev: true + + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-ansi@7.0.1: + resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true + + /strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + dev: true + + /strip-eof@1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + engines: {node: '>=0.10.0'} + dev: true + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + + /supports-hyperlinks@2.3.0: + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true + + /tar@6.1.14: + resolution: {integrity: sha512-piERznXu0U7/pW7cdSn7hjqySIVTYT6F76icmFk7ptU7dDYlXTm5r9A6K04R2vU3olYgoKeo1Cg3eeu5nhftAw==} + engines: {node: '>=10'} + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: true + + /temp-dir@2.0.0: + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} + engines: {node: '>=8'} + dev: true + + /tempy@3.0.0: + resolution: {integrity: sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==} + engines: {node: '>=14.16'} + dependencies: + is-stream: 3.0.0 + temp-dir: 2.0.0 + type-fest: 2.19.0 + unique-string: 3.0.0 + dev: true + + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + dev: true + + /text-extensions@1.9.0: + resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} + engines: {node: '>=0.10'} + dev: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + dependencies: + readable-stream: 2.3.8 + xtend: 4.0.2 + dev: true + + /through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + dependencies: + readable-stream: 3.6.2 + dev: true + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + + /tlds@1.238.0: + resolution: {integrity: sha512-lFPF9pZFhLrPodaJ0wt9QIN0l8jOxqmUezGZnm7BfkDSVd9q667oVIJukLVzhF+4oW7uDlrLlfJrL5yu9RWwew==} + hasBin: true + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + + /to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + dev: true + + /tough-cookie@2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} + engines: {node: '>=0.8'} + dependencies: + psl: 1.9.0 + punycode: 2.3.0 + dev: true + + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: true + + /traverse@0.6.7: + resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==} + dev: true + + /trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: true + + /tsconfig-paths@3.14.2: + resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tslib@2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} + dev: true + + /tsutils@3.21.0(typescript@4.9.5): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.9.5 + dev: true + + /tsutils@3.21.0(typescript@5.0.4): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 5.0.4 + dev: true + + /tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + dev: true + + /type-check@0.3.2: + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.1.2 + dev: true + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + + /type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.4.1: + resolution: {integrity: sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==} + engines: {node: '>=6'} + dev: true + + /type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: true + + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true + + /type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + dev: true + + /type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + dev: true + + /type-fest@3.9.0: + resolution: {integrity: sha512-hR8JP2e8UiH7SME5JZjsobBlEiatFoxpzCP+R3ZeCo7kAaG1jXQE5X/buLzogM6GJu8le9Y4OcfNuIQX0rZskA==} + engines: {node: '>=14.16'} + dev: true + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.10 + dev: true + + /typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + dependencies: + is-typedarray: 1.0.0 + dev: true + + /typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /typescript@5.0.4: + resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} + engines: {node: '>=12.20'} + hasBin: true + dev: true + + /uglify-js@3.17.4: + resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + engines: {node: '>=0.8.0'} + hasBin: true + requiresBuild: true + dev: true + optional: true + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + dev: true + + /unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.1.0 + dev: true + + /unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + dev: true + + /unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + dev: true + + /union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + dev: true + + /unique-filename@2.0.1: + resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + unique-slug: 3.0.0 + dev: true + + /unique-slug@3.0.0: + resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: 0.1.4 + dev: true + + /unique-string@3.0.0: + resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + engines: {node: '>=12'} + dependencies: + crypto-random-string: 4.0.0 + dev: true + + /universal-user-agent@6.0.0: + resolution: {integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==} + dev: true + + /universalify@2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + + /unixify@1.0.0: + resolution: {integrity: sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==} + engines: {node: '>=0.10.0'} + dependencies: + normalize-path: 2.1.1 + dev: true + + /unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + dev: true + + /update-browserslist-db@1.0.11(browserslist@4.21.5): + resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.5 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.0 + dev: true + + /urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + deprecated: Please see https://github.com/lydell/urix#deprecated + dev: true + + /url-join@4.0.1: + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + dev: true + + /url-regex-safe@2.1.0(bluebird@3.7.2): + resolution: {integrity: sha512-nfrmOb62+kN4JJRkY/w9QzZeuc63/ddIFfqS9ntok0UYsJW3C5J/jGvYZecwk8V68og2zWA7fcVn4GUXIi5qbg==} + engines: {node: '>= 10.12.0'} + deprecated: Please upgrade to url-regex-safe@v3.0.0+ AND install re2 as an additional dependency in your project via `npm install re2` or `yarn add re2`. + dependencies: + ip-regex: 4.3.0 + re2: 1.18.0(bluebird@3.7.2) + tlds: 1.238.0 + transitivePeerDependencies: + - bluebird + - supports-color + dev: true + + /url-regexp@1.0.2: + resolution: {integrity: sha512-Tt0N/yu3iNSCqZ7wJ6AxTtF/QSemtfzLH+astikB0CR/u/7X132VaBdiNEXbiAGiU+LXsIpyB2Hqz8OY4zw8MA==} + dev: true + + /urlpattern-polyfill@8.0.2: + resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} + dev: true + + /use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} + dev: true + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true + + /uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + dev: true + + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: true + + /v8flags@3.2.0: + resolution: {integrity: sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==} + engines: {node: '>= 0.10'} + dependencies: + homedir-polyfill: 1.0.3 + dev: true + + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + dev: true + + /value-or-promise@1.0.12: + resolution: {integrity: sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==} + engines: {node: '>=12'} + dev: true + + /verror@1.10.0: + resolution: {integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=} + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + dev: true + + /web-streams-polyfill@3.2.1: + resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} + engines: {node: '>= 8'} + dev: true + + /webcrypto-core@1.7.7: + resolution: {integrity: sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g==} + dependencies: + '@peculiar/asn1-schema': 2.3.6 + '@peculiar/json-schema': 1.1.12 + asn1js: 3.0.5 + pvtsutils: 1.3.2 + tslib: 2.5.0 + dev: true + + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: true + + /whatwg-url-compat@0.6.5: + resolution: {integrity: sha512-vbg5+JVNwGtHRI3GheZGWrcUlxF9BXHbA80dLa+2XqJjlV/BK6upoi2j8dIRW9FGPUUyaMm7Hf1pTexHnsk85g==} + dependencies: + tr46: 0.0.3 + dev: true + + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: true + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + + /which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + dev: true + + /which-typed-array@1.1.9: + resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + is-typed-array: 1.1.10 + dev: true + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + dependencies: + string-width: 4.2.3 + dev: true + + /word-wrap@1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + dev: true + + /wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + dev: true + + /workerpool@6.2.1: + resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} + dev: true + + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.0.1 + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /write-file-atomic@3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + dependencies: + imurmurhash: 0.1.4 + is-typedarray: 1.0.0 + signal-exit: 3.0.7 + typedarray-to-buffer: 3.1.5 + dev: true + + /ws@8.13.0: + resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + /xml-name-validator@2.0.1: + resolution: {integrity: sha512-jRKe/iQYMyVJpzPH+3HL97Lgu5HrCfii+qSo+TfjKHtOnvbnvdVfMYrn9Q34YV81M2e5sviJlI6Ko9y+nByzvA==} + dev: true + + /xmlhttprequest@1.8.0: + resolution: {integrity: sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==} + engines: {node: '>=0.4.0'} + dev: true + + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: true + + /y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + dev: true + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + /yaml-eslint-parser@0.5.0: + resolution: {integrity: sha512-nJeyLA3YHAzhBTZbRAbu3W6xrSCucyxExmA+ZDtEdUFpGllxAZpto2Zxo2IG0r0eiuEiBM4e+wiAdxTziTq94g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + eslint-visitor-keys: 3.4.0 + lodash: 4.17.21 + yaml: 1.10.2 + dev: true + + /yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true + + /yaml@2.2.2: + resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==} + engines: {node: '>= 14'} + dev: true + + /yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: true + + /yargs-parser@20.2.4: + resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} + engines: {node: '>=10'} + dev: true + + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true + + /yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} + dependencies: + camelcase: 6.3.0 + decamelize: 4.0.0 + flat: 5.0.2 + is-plain-obj: 2.1.0 + dev: true + + /yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: true + + /yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.4 + dev: true + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true From aeaae4fa1621f9c860b03e0fcdba07e0c73e4693 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 4 May 2023 08:04:58 -0700 Subject: [PATCH 063/273] chore: update devDeps. --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- .github/workflows/feature.yaml | 21 +- .github/workflows/main.yaml | 12 +- package.json | 8 +- pnpm-lock.yaml | 786 ++++++++++++--------------- 5 files changed, 366 insertions(+), 463 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index efdf71765..954229fc7 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -70,5 +70,5 @@ the error). ## Environment - Node version: -- ESLint version +- ESLint version - `eslint-plugin-jsdoc` version: diff --git a/.github/workflows/feature.yaml b/.github/workflows/feature.yaml index 58c580d15..c2074cb2f 100644 --- a/.github/workflows/feature.yaml +++ b/.github/workflows/feature.yaml @@ -3,6 +3,9 @@ jobs: runs-on: ubuntu-latest name: Lint steps: + - uses: pnpm/action-setup@v2 + with: + version: latest - name: setup repository uses: actions/checkout@v3 with: @@ -11,13 +14,16 @@ jobs: uses: actions/setup-node@v3 with: node-version: '20' - - run: npm ci - - run: npm run lint + - run: pnpm install + - run: pnpm lint timeout-minutes: 10 test: runs-on: ubuntu-latest name: Test (Node.js ${{ matrix.node_js_version }}) steps: + - uses: pnpm/action-setup@v2 + with: + version: latest - name: setup repository uses: actions/checkout@v3 with: @@ -26,8 +32,8 @@ jobs: uses: actions/setup-node@v3 with: node-version: '${{ matrix.node_js_version }}' - - run: npm ci - - run: npm run test + - run: pnpm install + - run: pnpm test timeout-minutes: 10 strategy: fail-fast: false @@ -40,6 +46,9 @@ jobs: runs-on: ubuntu-latest name: Build steps: + - uses: pnpm/action-setup@v2 + with: + version: latest - name: setup repository uses: actions/checkout@v3 with: @@ -48,8 +57,8 @@ jobs: uses: actions/setup-node@v3 with: node-version: '20' - - run: npm ci - - run: npm run build + - run: pnpm install + - run: pnpm build timeout-minutes: 10 name: Lint, test and build on: diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index fbc4586ab..2bc7f2c63 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -1,4 +1,12 @@ jobs: + install: + runs-on: ubuntu-latest + + steps: + - uses: pnpm/action-setup@v2 + with: + version: latest + release: runs-on: ubuntu-latest environment: release @@ -12,8 +20,8 @@ jobs: uses: actions/setup-node@v3 with: node-version: "20" - - run: npm ci - - run: npm run build + - run: pnpm install + - run: pnpm build - run: npx semantic-release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/package.json b/package.json index 4545157f1..4174cbed8 100644 --- a/package.json +++ b/package.json @@ -17,19 +17,19 @@ "description": "JSDoc linting rules for ESLint.", "devDependencies": { "@babel/cli": "^7.21.5", - "@babel/core": "^7.21.5", - "@babel/eslint-parser": "^7.21.3", + "@babel/core": "^7.21.8", + "@babel/eslint-parser": "^7.21.8", "@babel/node": "^7.20.7", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-transform-flow-strip-types": "^7.21.0", "@babel/preset-env": "^7.21.5", "@babel/register": "^7.21.0", - "@es-joy/jsdoc-eslint-parser": "^0.17.0", + "@es-joy/jsdoc-eslint-parser": "^0.18.0", "@hkdobrev/run-if-changed": "^0.3.1", "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/github": "^8.0.7", "@semantic-release/npm": "^10.0.3", - "@typescript-eslint/parser": "^5.59.1", + "@typescript-eslint/parser": "^5.59.2", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 15d0296f3..9cbfa6b3f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,31 +29,31 @@ dependencies: devDependencies: '@babel/cli': specifier: ^7.21.5 - version: 7.21.5(@babel/core@7.21.5) + version: 7.21.5(@babel/core@7.21.8) '@babel/core': - specifier: ^7.21.5 - version: 7.21.5 + specifier: ^7.21.8 + version: 7.21.8 '@babel/eslint-parser': - specifier: ^7.21.3 - version: 7.21.3(@babel/core@7.21.5)(eslint@8.39.0) + specifier: ^7.21.8 + version: 7.21.8(@babel/core@7.21.8)(eslint@8.39.0) '@babel/node': specifier: ^7.20.7 - version: 7.20.7(@babel/core@7.21.5) + version: 7.20.7(@babel/core@7.21.8) '@babel/plugin-syntax-class-properties': specifier: ^7.12.13 - version: 7.12.13(@babel/core@7.21.5) + version: 7.12.13(@babel/core@7.21.8) '@babel/plugin-transform-flow-strip-types': specifier: ^7.21.0 - version: 7.21.0(@babel/core@7.21.5) + version: 7.21.0(@babel/core@7.21.8) '@babel/preset-env': specifier: ^7.21.5 - version: 7.21.5(@babel/core@7.21.5) + version: 7.21.5(@babel/core@7.21.8) '@babel/register': specifier: ^7.21.0 - version: 7.21.0(@babel/core@7.21.5) + version: 7.21.0(@babel/core@7.21.8) '@es-joy/jsdoc-eslint-parser': - specifier: ^0.17.0 - version: 0.17.0 + specifier: ^0.18.0 + version: 0.18.0 '@hkdobrev/run-if-changed': specifier: ^0.3.1 version: 0.3.1 @@ -67,8 +67,8 @@ devDependencies: specifier: ^10.0.3 version: 10.0.3(semantic-release@21.0.2) '@typescript-eslint/parser': - specifier: ^5.59.1 - version: 5.59.1(eslint@8.39.0)(typescript@5.0.4) + specifier: ^5.59.2 + version: 5.59.2(eslint@8.39.0)(typescript@5.0.4) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -92,7 +92,7 @@ devDependencies: version: 8.39.0 eslint-config-canonical: specifier: ~33.0.1 - version: 33.0.1(@babel/core@7.21.5)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4) + version: 33.0.1(@babel/core@7.21.8)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4) gitdown: specifier: ^3.1.5 version: 3.1.5 @@ -149,14 +149,14 @@ packages: - encoding dev: true - /@babel/cli@7.21.5(@babel/core@7.21.5): + /@babel/cli@7.21.5(@babel/core@7.21.8): resolution: {integrity: sha512-TOKytQ9uQW9c4np8F+P7ZfPINy5Kv+pizDIUwSVH8X5zHgYHV4AA8HE5LA450xXeu4jEfmUckTYvv1I4S26M/g==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@jridgewell/trace-mapping': 0.3.18 commander: 4.1.1 convert-source-map: 1.9.0 @@ -181,14 +181,14 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.21.5: - resolution: {integrity: sha512-9M398B/QH5DlfCOTKDZT1ozXr0x8uBEeFd+dJraGUZGiaNpGCDVGCc14hZexsMblw3XxltJ+6kSvogp9J+5a9g==} + /@babel/core@7.21.8: + resolution: {integrity: sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.21.4 '@babel/generator': 7.21.5 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) + '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.8) '@babel/helper-module-transforms': 7.21.5 '@babel/helpers': 7.21.5 '@babel/parser': 7.21.8 @@ -204,28 +204,28 @@ packages: - supports-color dev: true - /@babel/eslint-parser@7.21.3(@babel/core@7.21.5)(eslint@8.39.0): - resolution: {integrity: sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg==} + /@babel/eslint-parser@7.21.8(@babel/core@7.21.8)(eslint@8.39.0): + resolution: {integrity: sha512-HLhI+2q+BP3sf78mFUZNCGc10KEmoUqtUT1OCdMZsN+qr4qFeLUod62/zAnF3jNQstwyasDkZnVXwfK2Bml7MQ==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': '>=7.11.0' eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 eslint: 8.39.0 eslint-visitor-keys: 2.1.0 semver: 6.3.0 dev: true - /@babel/eslint-plugin@7.19.1(@babel/eslint-parser@7.21.3)(eslint@8.39.0): + /@babel/eslint-plugin@7.19.1(@babel/eslint-parser@7.21.8)(eslint@8.39.0): resolution: {integrity: sha512-ElGPkQPapKMa3zVqXHkZYzuL7I5LbRw9UWBUArgWsdWDDb9XcACqOpBib5tRPA9XvbVZYrFUkoQPbiJ4BFvu4w==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': '>=7.11.0' eslint: '>=7.5.0' dependencies: - '@babel/eslint-parser': 7.21.3(@babel/core@7.21.5)(eslint@8.39.0) + '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.39.0) eslint: 8.39.0 eslint-rule-composer: 0.3.0 dev: true @@ -254,27 +254,27 @@ packages: '@babel/types': 7.21.5 dev: true - /@babel/helper-compilation-targets@7.21.5(@babel/core@7.21.5): + /@babel/helper-compilation-targets@7.21.5(@babel/core@7.21.8): resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/compat-data': 7.21.7 - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-validator-option': 7.21.0 browserslist: 4.21.5 lru-cache: 5.1.1 semver: 6.3.0 dev: true - /@babel/helper-create-class-features-plugin@7.21.8(@babel/core@7.21.5): + /@babel/helper-create-class-features-plugin@7.21.8(@babel/core@7.21.8): resolution: {integrity: sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-environment-visitor': 7.21.5 '@babel/helper-function-name': 7.21.0 @@ -288,25 +288,25 @@ packages: - supports-color dev: true - /@babel/helper-create-regexp-features-plugin@7.21.8(@babel/core@7.21.5): + /@babel/helper-create-regexp-features-plugin@7.21.8(@babel/core@7.21.8): resolution: {integrity: sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-annotate-as-pure': 7.18.6 regexpu-core: 5.3.2 semver: 6.3.0 dev: true - /@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.21.5): + /@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.21.8): resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} peerDependencies: '@babel/core': ^7.4.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) + '@babel/core': 7.21.8 + '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.8) '@babel/helper-plugin-utils': 7.21.5 debug: 4.3.4(supports-color@8.1.1) lodash.debounce: 4.0.8 @@ -378,13 +378,13 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.21.5): + /@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.21.8): resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-environment-visitor': 7.21.5 '@babel/helper-wrap-function': 7.20.5 @@ -475,15 +475,15 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/node@7.20.7(@babel/core@7.21.5): + /@babel/node@7.20.7(@babel/core@7.21.8): resolution: {integrity: sha512-AQt3gVcP+fpFuoFn4FmIW/+5JovvEoA9og4Y1LrRw0pv3jkl4tujZMMy3X/3ugjLrEy3k1aNywo3JIl3g+jVXQ==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/register': 7.21.0(@babel/core@7.21.5) + '@babel/core': 7.21.8 + '@babel/register': 7.21.0(@babel/core@7.21.8) commander: 4.1.1 core-js: 3.30.1 node-environment-flags: 1.0.6 @@ -499,433 +499,433 @@ packages: '@babel/types': 7.21.5 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.21.5): + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.20.7(@babel/core@7.21.5): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.20.7(@babel/core@7.21.8): resolution: {integrity: sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.21.5) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.21.8) dev: true - /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.21.5): + /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.21.8): resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-environment-visitor': 7.21.5 '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.21.5) + '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.21.8) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.21.8) transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.21.5) + '@babel/core': 7.21.8 + '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.21.8) '@babel/helper-plugin-utils': 7.21.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-class-static-block@7.21.0(@babel/core@7.21.5): + /@babel/plugin-proposal-class-static-block@7.21.0(@babel/core@7.21.8): resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.21.5) + '@babel/core': 7.21.8 + '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.21.8) '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.21.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.21.8) transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.21.8) dev: true - /@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.21.5): + /@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.21.8): resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.21.8) dev: true - /@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.21.8) dev: true - /@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.21.5): + /@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.21.8): resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.21.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.21.8) dev: true - /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.21.8) dev: true - /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.21.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.21.8) dev: true - /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.21.5): + /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.21.8): resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.21.7 - '@babel/core': 7.21.5 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) + '@babel/core': 7.21.8 + '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.8) '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-transform-parameters': 7.21.3(@babel/core@7.21.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.21.8) + '@babel/plugin-transform-parameters': 7.21.3(@babel/core@7.21.8) dev: true - /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.21.8) dev: true - /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.21.5): + /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.21.8): resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.21.8) dev: true - /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.21.5) + '@babel/core': 7.21.8 + '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.21.8) '@babel/helper-plugin-utils': 7.21.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0(@babel/core@7.21.5): + /@babel/plugin-proposal-private-property-in-object@7.21.0(@babel/core@7.21.8): resolution: {integrity: sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.21.5) + '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.21.8) '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.21.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.21.8) transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} engines: {node: '>=4'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-create-regexp-features-plugin': 7.21.8(@babel/core@7.21.5) + '@babel/core': 7.21.8 + '@babel/helper-create-regexp-features-plugin': 7.21.8(@babel/core@7.21.8) '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.21.5): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.21.8): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.21.5): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.21.8): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.21.5): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.21.8): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.21.8): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.21.8): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-syntax-flow@7.21.4(@babel/core@7.21.5): + /@babel/plugin-syntax-flow@7.21.4(@babel/core@7.21.8): resolution: {integrity: sha512-l9xd3N+XG4fZRxEP3vXdK6RW7vN1Uf5dxzRC/09wV86wqZ/YYQooBIGNsiRdfNR3/q2/5pPzV4B54J/9ctX5jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.21.5): + /@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.21.8): resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.21.5): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.21.8): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.21.8): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-syntax-jsx@7.21.4(@babel/core@7.21.5): + /@babel/plugin-syntax-jsx@7.21.4(@babel/core@7.21.8): resolution: {integrity: sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.21.5): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.21.8): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.21.8): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.21.5): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.21.8): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.21.8): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.21.8): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.21.8): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.21.5): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.21.8): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.21.5): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.21.8): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-arrow-functions@7.21.5(@babel/core@7.21.5): + /@babel/plugin-transform-arrow-functions@7.21.5(@babel/core@7.21.8): resolution: {integrity: sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-async-to-generator@7.20.7(@babel/core@7.21.5): + /@babel/plugin-transform-async-to-generator@7.20.7(@babel/core@7.21.8): resolution: {integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-module-imports': 7.21.4 '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.21.5) + '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.21.8) transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-block-scoping@7.21.0(@babel/core@7.21.5): + /@babel/plugin-transform-block-scoping@7.21.0(@babel/core@7.21.8): resolution: {integrity: sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-classes@7.21.0(@babel/core@7.21.5): + /@babel/plugin-transform-classes@7.21.0(@babel/core@7.21.8): resolution: {integrity: sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) + '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.8) '@babel/helper-environment-visitor': 7.21.5 '@babel/helper-function-name': 7.21.0 '@babel/helper-optimise-call-expression': 7.18.6 @@ -937,132 +937,132 @@ packages: - supports-color dev: true - /@babel/plugin-transform-computed-properties@7.21.5(@babel/core@7.21.5): + /@babel/plugin-transform-computed-properties@7.21.5(@babel/core@7.21.8): resolution: {integrity: sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 '@babel/template': 7.20.7 dev: true - /@babel/plugin-transform-destructuring@7.21.3(@babel/core@7.21.5): + /@babel/plugin-transform-destructuring@7.21.3(@babel/core@7.21.8): resolution: {integrity: sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-create-regexp-features-plugin': 7.21.8(@babel/core@7.21.5) + '@babel/core': 7.21.8 + '@babel/helper-create-regexp-features-plugin': 7.21.8(@babel/core@7.21.8) '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.18.9(@babel/core@7.21.5): + /@babel/plugin-transform-duplicate-keys@7.18.9(@babel/core@7.21.8): resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-builder-binary-assignment-operator-visitor': 7.21.5 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-flow-strip-types@7.21.0(@babel/core@7.21.5): + /@babel/plugin-transform-flow-strip-types@7.21.0(@babel/core@7.21.8): resolution: {integrity: sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-flow': 7.21.4(@babel/core@7.21.5) + '@babel/plugin-syntax-flow': 7.21.4(@babel/core@7.21.8) dev: true - /@babel/plugin-transform-for-of@7.21.5(@babel/core@7.21.5): + /@babel/plugin-transform-for-of@7.21.5(@babel/core@7.21.8): resolution: {integrity: sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-function-name@7.18.9(@babel/core@7.21.5): + /@babel/plugin-transform-function-name@7.18.9(@babel/core@7.21.8): resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) + '@babel/core': 7.21.8 + '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.8) '@babel/helper-function-name': 7.21.0 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-literals@7.18.9(@babel/core@7.21.5): + /@babel/plugin-transform-literals@7.18.9(@babel/core@7.21.8): resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-modules-amd@7.20.11(@babel/core@7.21.5): + /@babel/plugin-transform-modules-amd@7.20.11(@babel/core@7.21.8): resolution: {integrity: sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-module-transforms': 7.21.5 '@babel/helper-plugin-utils': 7.21.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-modules-commonjs@7.21.5(@babel/core@7.21.5): + /@babel/plugin-transform-modules-commonjs@7.21.5(@babel/core@7.21.8): resolution: {integrity: sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-module-transforms': 7.21.5 '@babel/helper-plugin-utils': 7.21.5 '@babel/helper-simple-access': 7.21.5 @@ -1070,13 +1070,13 @@ packages: - supports-color dev: true - /@babel/plugin-transform-modules-systemjs@7.20.11(@babel/core@7.21.5): + /@babel/plugin-transform-modules-systemjs@7.20.11(@babel/core@7.21.8): resolution: {integrity: sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-hoist-variables': 7.18.6 '@babel/helper-module-transforms': 7.21.5 '@babel/helper-plugin-utils': 7.21.5 @@ -1085,287 +1085,287 @@ packages: - supports-color dev: true - /@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-module-transforms': 7.21.5 '@babel/helper-plugin-utils': 7.21.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.20.5(@babel/core@7.21.5): + /@babel/plugin-transform-named-capturing-groups-regex@7.20.5(@babel/core@7.21.8): resolution: {integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-create-regexp-features-plugin': 7.21.8(@babel/core@7.21.5) + '@babel/core': 7.21.8 + '@babel/helper-create-regexp-features-plugin': 7.21.8(@babel/core@7.21.8) '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-new-target@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-new-target@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-object-super@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-object-super@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 '@babel/helper-replace-supers': 7.21.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-parameters@7.21.3(@babel/core@7.21.5): + /@babel/plugin-transform-parameters@7.21.3(@babel/core@7.21.8): resolution: {integrity: sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-react-jsx@7.21.5(@babel/core@7.21.5): + /@babel/plugin-transform-react-jsx@7.21.5(@babel/core@7.21.8): resolution: {integrity: sha512-ELdlq61FpoEkHO6gFRpfj0kUgSwQTGoaEU8eMRoS8Dv3v6e7BjEAj5WMtIBRdHUeAioMhKP5HyxNzNnP+heKbA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-module-imports': 7.21.4 '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-jsx': 7.21.4(@babel/core@7.21.5) + '@babel/plugin-syntax-jsx': 7.21.4(@babel/core@7.21.8) '@babel/types': 7.21.5 dev: true - /@babel/plugin-transform-regenerator@7.21.5(@babel/core@7.21.5): + /@babel/plugin-transform-regenerator@7.21.5(@babel/core@7.21.8): resolution: {integrity: sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 regenerator-transform: 0.15.1 dev: true - /@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-spread@7.20.7(@babel/core@7.21.5): + /@babel/plugin-transform-spread@7.20.7(@babel/core@7.21.8): resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 dev: true - /@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-template-literals@7.18.9(@babel/core@7.21.5): + /@babel/plugin-transform-template-literals@7.18.9(@babel/core@7.21.8): resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.18.9(@babel/core@7.21.5): + /@babel/plugin-transform-typeof-symbol@7.18.9(@babel/core@7.21.8): resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-unicode-escapes@7.21.5(@babel/core@7.21.5): + /@babel/plugin-transform-unicode-escapes@7.21.5(@babel/core@7.21.8): resolution: {integrity: sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.21.8): resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-create-regexp-features-plugin': 7.21.8(@babel/core@7.21.5) + '@babel/core': 7.21.8 + '@babel/helper-create-regexp-features-plugin': 7.21.8(@babel/core@7.21.8) '@babel/helper-plugin-utils': 7.21.5 dev: true - /@babel/preset-env@7.21.5(@babel/core@7.21.5): + /@babel/preset-env@7.21.5(@babel/core@7.21.8): resolution: {integrity: sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.21.7 - '@babel/core': 7.21.5 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) + '@babel/core': 7.21.8 + '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.8) '@babel/helper-plugin-utils': 7.21.5 '@babel/helper-validator-option': 7.21.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-class-static-block': 7.21.0(@babel/core@7.21.5) - '@babel/plugin-proposal-dynamic-import': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-export-namespace-from': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-proposal-json-strings': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.21.5) - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-private-property-in-object': 7.21.0(@babel/core@7.21.5) - '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.21.5) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.21.5) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.21.5) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.21.5) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.21.5) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.21.5) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.21.5) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.21.5) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.21.5) - '@babel/plugin-transform-arrow-functions': 7.21.5(@babel/core@7.21.5) - '@babel/plugin-transform-async-to-generator': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-transform-block-scoped-functions': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-block-scoping': 7.21.0(@babel/core@7.21.5) - '@babel/plugin-transform-classes': 7.21.0(@babel/core@7.21.5) - '@babel/plugin-transform-computed-properties': 7.21.5(@babel/core@7.21.5) - '@babel/plugin-transform-destructuring': 7.21.3(@babel/core@7.21.5) - '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-duplicate-keys': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-transform-exponentiation-operator': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-for-of': 7.21.5(@babel/core@7.21.5) - '@babel/plugin-transform-function-name': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-transform-literals': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-modules-amd': 7.20.11(@babel/core@7.21.5) - '@babel/plugin-transform-modules-commonjs': 7.21.5(@babel/core@7.21.5) - '@babel/plugin-transform-modules-systemjs': 7.20.11(@babel/core@7.21.5) - '@babel/plugin-transform-modules-umd': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5(@babel/core@7.21.5) - '@babel/plugin-transform-new-target': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-object-super': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-parameters': 7.21.3(@babel/core@7.21.5) - '@babel/plugin-transform-property-literals': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-regenerator': 7.21.5(@babel/core@7.21.5) - '@babel/plugin-transform-reserved-words': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-shorthand-properties': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-spread': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-template-literals': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-transform-typeof-symbol': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-transform-unicode-escapes': 7.21.5(@babel/core@7.21.5) - '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.21.5) - '@babel/preset-modules': 0.1.5(@babel/core@7.21.5) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7(@babel/core@7.21.8) + '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.21.8) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-proposal-class-static-block': 7.21.0(@babel/core@7.21.8) + '@babel/plugin-proposal-dynamic-import': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-proposal-export-namespace-from': 7.18.9(@babel/core@7.21.8) + '@babel/plugin-proposal-json-strings': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.21.8) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.21.8) + '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.21.8) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-proposal-private-property-in-object': 7.21.0(@babel/core@7.21.8) + '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.21.8) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.21.8) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.21.8) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.21.8) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.21.8) + '@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.21.8) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.21.8) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.21.8) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.21.8) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.21.8) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.21.8) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.21.8) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.21.8) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.21.8) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.21.8) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.21.8) + '@babel/plugin-transform-arrow-functions': 7.21.5(@babel/core@7.21.8) + '@babel/plugin-transform-async-to-generator': 7.20.7(@babel/core@7.21.8) + '@babel/plugin-transform-block-scoped-functions': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-transform-block-scoping': 7.21.0(@babel/core@7.21.8) + '@babel/plugin-transform-classes': 7.21.0(@babel/core@7.21.8) + '@babel/plugin-transform-computed-properties': 7.21.5(@babel/core@7.21.8) + '@babel/plugin-transform-destructuring': 7.21.3(@babel/core@7.21.8) + '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-transform-duplicate-keys': 7.18.9(@babel/core@7.21.8) + '@babel/plugin-transform-exponentiation-operator': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-transform-for-of': 7.21.5(@babel/core@7.21.8) + '@babel/plugin-transform-function-name': 7.18.9(@babel/core@7.21.8) + '@babel/plugin-transform-literals': 7.18.9(@babel/core@7.21.8) + '@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-transform-modules-amd': 7.20.11(@babel/core@7.21.8) + '@babel/plugin-transform-modules-commonjs': 7.21.5(@babel/core@7.21.8) + '@babel/plugin-transform-modules-systemjs': 7.20.11(@babel/core@7.21.8) + '@babel/plugin-transform-modules-umd': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5(@babel/core@7.21.8) + '@babel/plugin-transform-new-target': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-transform-object-super': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-transform-parameters': 7.21.3(@babel/core@7.21.8) + '@babel/plugin-transform-property-literals': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-transform-regenerator': 7.21.5(@babel/core@7.21.8) + '@babel/plugin-transform-reserved-words': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-transform-shorthand-properties': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-transform-spread': 7.20.7(@babel/core@7.21.8) + '@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-transform-template-literals': 7.18.9(@babel/core@7.21.8) + '@babel/plugin-transform-typeof-symbol': 7.18.9(@babel/core@7.21.8) + '@babel/plugin-transform-unicode-escapes': 7.21.5(@babel/core@7.21.8) + '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.21.8) + '@babel/preset-modules': 0.1.5(@babel/core@7.21.8) '@babel/types': 7.21.5 - babel-plugin-polyfill-corejs2: 0.3.3(@babel/core@7.21.5) - babel-plugin-polyfill-corejs3: 0.6.0(@babel/core@7.21.5) - babel-plugin-polyfill-regenerator: 0.4.1(@babel/core@7.21.5) + babel-plugin-polyfill-corejs2: 0.3.3(@babel/core@7.21.8) + babel-plugin-polyfill-corejs3: 0.6.0(@babel/core@7.21.8) + babel-plugin-polyfill-regenerator: 0.4.1(@babel/core@7.21.8) core-js-compat: 3.30.1 semver: 6.3.0 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.5(@babel/core@7.21.5): + /@babel/preset-modules@0.1.5(@babel/core@7.21.8): resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.21.5) + '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.21.8) + '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.21.8) '@babel/types': 7.21.5 esutils: 2.0.3 dev: true - /@babel/register@7.21.0(@babel/core@7.21.5): + /@babel/register@7.21.0(@babel/core@7.21.8): resolution: {integrity: sha512-9nKsPmYDi5DidAqJaQooxIhsLJiNMkGr8ypQ8Uic7cIox7UCDsM7HuUGxdGT7mSDTYbqzIdsOWzfBton/YJrMw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -1427,17 +1427,17 @@ packages: dev: true optional: true - /@es-joy/jsdoc-eslint-parser@0.17.0: - resolution: {integrity: sha512-QYmORkVbSmejgrI7zFCJmsZJPiO+yhQoIILLjMrC99XPQfqBO+2GidtWEcP8cDSFWbUDbJeCgXNoRvMq00hI5Q==} + /@es-joy/jsdoc-eslint-parser@0.18.0: + resolution: {integrity: sha512-vMlRlszK0/nF0RAmENipGt9Re+maPlBSFxsup3UePJqWrzfch2jKCAU3Mu/SMWJUp1ME8vXCW1dqoavFcM7zXw==} engines: {node: '>=12.0.0'} dependencies: - '@babel/core': 7.21.5 - '@babel/eslint-parser': 7.21.3(@babel/core@7.21.5)(eslint@8.39.0) - '@es-joy/jsdoccomment': 0.30.0 - '@typescript-eslint/parser': 5.59.1(eslint@8.39.0)(typescript@4.9.5) + '@babel/core': 7.21.8 + '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.39.0) + '@es-joy/jsdoccomment': 0.37.1 + '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4) eslint: 8.39.0 esquery: 1.5.0 - typescript: 4.9.5 + typescript: 5.0.4 transitivePeerDependencies: - supports-color dev: true @@ -1451,15 +1451,6 @@ packages: jsdoc-type-pratt-parser: 2.2.5 dev: true - /@es-joy/jsdoccomment@0.30.0: - resolution: {integrity: sha512-U30cjaHCjdUqtbMgChJl80BP25GSRWg0/1R3UdB2ksitAo2oDYdRMrvzwuM21jcsFbEcLNAqwQGTCg+5CVbSIA==} - engines: {node: ^14 || ^16 || ^17 || ^18} - dependencies: - comment-parser: 1.3.1 - esquery: 1.5.0 - jsdoc-type-pratt-parser: 3.1.0 - dev: true - /@es-joy/jsdoccomment@0.37.1: resolution: {integrity: sha512-5vxWJ1gEkEF0yRd0O+uK6dHJf7adrxwQSX8PuRiPfFSAbNLnY0ZJfXaZucoz14Jj2N11xn2DnlEPwWRpYpvRjg==} engines: {node: ^14 || ^16 || ^17 || ^18 || ^19 || ^20} @@ -1467,7 +1458,6 @@ packages: comment-parser: 1.3.1 esquery: 1.5.0 jsdoc-type-pratt-parser: 4.0.0 - dev: false /@eslint-community/eslint-utils@4.4.0(eslint@8.39.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} @@ -1510,14 +1500,14 @@ packages: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true - /@graphql-eslint/eslint-plugin@3.18.0(@babel/core@7.21.5)(graphql@16.6.0): + /@graphql-eslint/eslint-plugin@3.18.0(@babel/core@7.21.8)(graphql@16.6.0): resolution: {integrity: sha512-riEEfRycc0+pWxcEWqHi8woRxzg1xZqAfh9DRACJUR7bTN8dmc1N04i7+pvW4sevClUFYC2wuL1Vtr+DwzXLUg==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: '@babel/code-frame': 7.21.4 - '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.21.5)(graphql@16.6.0) - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.21.5)(graphql@16.6.0) + '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.21.8)(graphql@16.6.0) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.21.8)(graphql@16.6.0) '@graphql-tools/utils': 9.2.1(graphql@16.6.0) chalk: 4.1.2 debug: 4.3.4(supports-color@8.1.1) @@ -1549,12 +1539,12 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.21.5)(graphql@16.6.0): + /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.21.8)(graphql@16.6.0): resolution: {integrity: sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.21.5)(graphql@16.6.0) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.21.8)(graphql@16.6.0) '@graphql-tools/utils': 9.2.1(graphql@16.6.0) globby: 11.1.0 graphql: 16.6.0 @@ -1658,13 +1648,13 @@ packages: unixify: 1.0.0 dev: true - /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.21.5)(graphql@16.6.0): + /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.21.8)(graphql@16.6.0): resolution: {integrity: sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: '@babel/parser': 7.21.8 - '@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.21.5) + '@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.21.8) '@babel/traverse': 7.21.5 '@babel/types': 7.21.5 '@graphql-tools/utils': 9.2.1(graphql@16.6.0) @@ -2251,7 +2241,7 @@ packages: '@types/node': 18.16.3 dev: true - /@typescript-eslint/eslint-plugin@5.59.2(@typescript-eslint/parser@5.59.1)(eslint@8.39.0)(typescript@5.0.4): + /@typescript-eslint/eslint-plugin@5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4): resolution: {integrity: sha512-yVrXupeHjRxLDcPKL10sGQ/QlVrA8J5IYOEWVqk0lJaSZP7X5DfnP7Ns3cc74/blmbipQ1htFNVGsHX6wsYm0A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2263,7 +2253,7 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 5.59.1(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4) '@typescript-eslint/scope-manager': 5.59.2 '@typescript-eslint/type-utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) '@typescript-eslint/utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) @@ -2292,28 +2282,8 @@ packages: - typescript dev: true - /@typescript-eslint/parser@5.59.1(eslint@8.39.0)(typescript@4.9.5): - resolution: {integrity: sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.59.1 - '@typescript-eslint/types': 5.59.1 - '@typescript-eslint/typescript-estree': 5.59.1(typescript@4.9.5) - debug: 4.3.4(supports-color@8.1.1) - eslint: 8.39.0 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/parser@5.59.1(eslint@8.39.0)(typescript@5.0.4): - resolution: {integrity: sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==} + /@typescript-eslint/parser@5.59.2(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-uq0sKyw6ao1iFOZZGk9F8Nro/8+gfB5ezl1cA06SrqbgJAt0SRoFhb9pXaHvkrxUpZaoLxt8KlovHNk8Gp6/HQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -2322,9 +2292,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.59.1 - '@typescript-eslint/types': 5.59.1 - '@typescript-eslint/typescript-estree': 5.59.1(typescript@5.0.4) + '@typescript-eslint/scope-manager': 5.59.2 + '@typescript-eslint/types': 5.59.2 + '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.0.4) debug: 4.3.4(supports-color@8.1.1) eslint: 8.39.0 typescript: 5.0.4 @@ -2332,14 +2302,6 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@5.59.1: - resolution: {integrity: sha512-mau0waO5frJctPuAzcxiNWqJR5Z8V0190FTSqRw1Q4Euop6+zTwHAf8YIXNwDOT29tyUDrQ65jSg9aTU/H0omA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.59.1 - '@typescript-eslint/visitor-keys': 5.59.1 - dev: true - /@typescript-eslint/scope-manager@5.59.2: resolution: {integrity: sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2368,58 +2330,11 @@ packages: - supports-color dev: true - /@typescript-eslint/types@5.59.1: - resolution: {integrity: sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - /@typescript-eslint/types@5.59.2: resolution: {integrity: sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree@5.59.1(typescript@4.9.5): - resolution: {integrity: sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.59.1 - '@typescript-eslint/visitor-keys': 5.59.1 - debug: 4.3.4(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.5.0 - tsutils: 3.21.0(typescript@4.9.5) - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/typescript-estree@5.59.1(typescript@5.0.4): - resolution: {integrity: sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.59.1 - '@typescript-eslint/visitor-keys': 5.59.1 - debug: 4.3.4(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.5.0 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/typescript-estree@5.59.2(typescript@5.0.4): resolution: {integrity: sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2461,14 +2376,6 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@5.59.1: - resolution: {integrity: sha512-6waEYwBTCWryx0VJmP7JaM4FpipLsFl9CvYf2foAE8Qh/Y0s+bxWysciwOs0LTBED4JCaNxTZ5rGadB14M6dwA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.59.1 - eslint-visitor-keys: 3.4.0 - dev: true - /@typescript-eslint/visitor-keys@5.59.2: resolution: {integrity: sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2874,38 +2781,38 @@ packages: - supports-color dev: true - /babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.21.5): + /babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.21.8): resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.21.7 - '@babel/core': 7.21.5 - '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.21.5) + '@babel/core': 7.21.8 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.21.8) semver: 6.3.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.6.0(@babel/core@7.21.5): + /babel-plugin-polyfill-corejs3@0.6.0(@babel/core@7.21.8): resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.21.5) + '@babel/core': 7.21.8 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.21.8) core-js-compat: 3.30.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.4.1(@babel/core@7.21.5): + /babel-plugin-polyfill-regenerator@0.4.1(@babel/core@7.21.8): resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.21.5) + '@babel/core': 7.21.8 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.21.8) transitivePeerDependencies: - supports-color dev: true @@ -4026,19 +3933,19 @@ packages: lodash.zip: 4.2.0 dev: true - /eslint-config-canonical@33.0.1(@babel/core@7.21.5)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4): + /eslint-config-canonical@33.0.1(@babel/core@7.21.8)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4): resolution: {integrity: sha512-g5hyJr5s4WnyAp5FdfMyItz72hOgXAB/4tsFMBP944bcei2QJyMvwslpKdiQL299HSJBpJ9xbNBhx7oeFI7zIQ==} engines: {node: '>=12.0.0'} peerDependencies: eslint: ^8.4.1 dependencies: - '@babel/eslint-parser': 7.21.3(@babel/core@7.21.5)(eslint@8.39.0) - '@babel/eslint-plugin': 7.19.1(@babel/eslint-parser@7.21.3)(eslint@8.39.0) - '@graphql-eslint/eslint-plugin': 3.18.0(@babel/core@7.21.5)(graphql@16.6.0) + '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.39.0) + '@babel/eslint-plugin': 7.19.1(@babel/eslint-parser@7.21.8)(eslint@8.39.0) + '@graphql-eslint/eslint-plugin': 3.18.0(@babel/core@7.21.8)(graphql@16.6.0) '@next/eslint-plugin-next': 12.3.4 '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.1)(eslint@8.39.0)(typescript@5.0.4) - '@typescript-eslint/parser': 5.59.1(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4) eslint: 8.39.0 eslint-plugin-ava: 13.2.0(eslint@8.39.0) eslint-plugin-canonical: 2.6.0(eslint@8.39.0) @@ -4046,7 +3953,7 @@ packages: eslint-plugin-eslint-comments: 3.2.0(eslint@8.39.0) eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.39.0) eslint-plugin-fp: 2.3.0(eslint@8.39.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.1)(eslint@8.39.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint@8.39.0) eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.59.2)(eslint@8.39.0)(typescript@5.0.4) eslint-plugin-jsdoc: 37.9.7(eslint@8.39.0) eslint-plugin-jsonc: 2.7.0(eslint@8.39.0) @@ -4057,7 +3964,7 @@ packages: eslint-plugin-node: 11.1.0(eslint@8.39.0) eslint-plugin-react: 7.32.2(eslint@8.39.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.39.0) - eslint-plugin-typescript-sort-keys: 2.3.0(@typescript-eslint/parser@5.59.1)(eslint@8.39.0)(typescript@5.0.4) + eslint-plugin-typescript-sort-keys: 2.3.0(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4) eslint-plugin-unicorn: 39.0.0(eslint@8.39.0) eslint-plugin-yml: 0.12.0(eslint@8.39.0) yaml-eslint-parser: 0.5.0 @@ -4088,7 +3995,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.1)(eslint-import-resolver-node@0.3.7)(eslint@8.39.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint@8.39.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4109,7 +4016,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.59.1(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4) debug: 3.2.7 eslint: 8.39.0 eslint-import-resolver-node: 0.3.7 @@ -4188,8 +4095,8 @@ packages: '@babel/plugin-transform-react-jsx': ^7.14.9 eslint: ^8.1.0 dependencies: - '@babel/plugin-syntax-flow': 7.21.4(@babel/core@7.21.5) - '@babel/plugin-transform-react-jsx': 7.21.5(@babel/core@7.21.5) + '@babel/plugin-syntax-flow': 7.21.4(@babel/core@7.21.8) + '@babel/plugin-transform-react-jsx': 7.21.5(@babel/core@7.21.8) eslint: 8.39.0 lodash: 4.17.21 string-natural-compare: 3.0.1 @@ -4208,7 +4115,7 @@ packages: req-all: 0.1.0 dev: true - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.1)(eslint@8.39.0): + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.2)(eslint@8.39.0): resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -4218,7 +4125,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.59.1(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4) array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 @@ -4226,7 +4133,7 @@ packages: doctrine: 2.1.0 eslint: 8.39.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.1)(eslint-import-resolver-node@0.3.7)(eslint@8.39.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint@8.39.0) has: 1.0.3 is-core-module: 2.12.0 is-glob: 4.0.3 @@ -4254,7 +4161,7 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.1)(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4) '@typescript-eslint/experimental-utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) eslint: 8.39.0 transitivePeerDependencies: @@ -4394,7 +4301,7 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-typescript-sort-keys@2.3.0(@typescript-eslint/parser@5.59.1)(eslint@8.39.0)(typescript@5.0.4): + /eslint-plugin-typescript-sort-keys@2.3.0(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4): resolution: {integrity: sha512-3LAcYulo5gNYiPWee+TksITfvWeBuBjGgcSLTacPESFVKEoy8laOQuZvJlSCwTBHT2SCGIxr3bJ56zuux+3MCQ==} engines: {node: 12 || >= 13.9} peerDependencies: @@ -4403,7 +4310,7 @@ packages: typescript: ^3 || ^4 || ^5 dependencies: '@typescript-eslint/experimental-utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) - '@typescript-eslint/parser': 5.59.1(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4) eslint: 8.39.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 @@ -4479,8 +4386,8 @@ packages: peerDependencies: eslint: '>=7.0.0' dependencies: - '@babel/core': 7.21.5 - '@babel/eslint-parser': 7.21.3(@babel/core@7.21.5)(eslint@8.39.0) + '@babel/core': 7.21.8 + '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.39.0) eslint: 8.39.0 eslint-visitor-keys: 2.1.0 esquery: 1.5.0 @@ -6047,7 +5954,7 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.0 @@ -6059,7 +5966,7 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.21.8 '@babel/parser': 7.21.8 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 @@ -6164,11 +6071,6 @@ packages: engines: {node: '>=12.0.0'} dev: true - /jsdoc-type-pratt-parser@3.1.0: - resolution: {integrity: sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==} - engines: {node: '>=12.0.0'} - dev: true - /jsdoc-type-pratt-parser@4.0.0: resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} engines: {node: '>=12.0.0'} @@ -8988,16 +8890,6 @@ packages: resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} dev: true - /tsutils@3.21.0(typescript@4.9.5): - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 4.9.5 - dev: true - /tsutils@3.21.0(typescript@5.0.4): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -9096,12 +8988,6 @@ packages: is-typedarray: 1.0.0 dev: true - /typescript@4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} - hasBin: true - dev: true - /typescript@5.0.4: resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} engines: {node: '>=12.20'} From 40d5ee067c5e3b06df2bb622bff94296d1d073f0 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 5 May 2023 07:49:11 -0700 Subject: [PATCH 064/273] feat: update @es-joy/jsdoccomment Also: - test: demo use of `inlineTags` --- docs/rules/no-restricted-syntax.md | 18 +++++++ package.json | 2 +- pnpm-lock.yaml | 14 +++++- test/iterateJsdoc.js | 2 + test/rules/assertions/noRestrictedSyntax.js | 52 +++++++++++++++++++++ 5 files changed, 85 insertions(+), 3 deletions(-) diff --git a/docs/rules/no-restricted-syntax.md b/docs/rules/no-restricted-syntax.md index ab4970a54..e4622248f 100644 --- a/docs/rules/no-restricted-syntax.md +++ b/docs/rules/no-restricted-syntax.md @@ -243,6 +243,24 @@ class Test { } // "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(*:has(JsdocTag[tag=/returns/]))","context":"TSEmptyBodyFunctionExpression[returnType.typeAnnotation.type!=/TSVoidKeyword|TSUndefinedKeyword/]","message":"methods with non-void return types must have a @returns tag"}]}] // Message: methods with non-void return types must have a @returns tag + +/** + * This has an inline {@link http://example.com} + */ +function quux () { + +} +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocInlineTag)","context":"FunctionDeclaration"}]}] +// Message: Syntax is restricted: FunctionDeclaration with JsdocBlock:has(JsdocInlineTag) + +/** + * @see This has an inline {@link http://example.com} + */ +function quux () { + +} +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag:has(JsdocInlineTag[format=\"plain\"]))","context":"FunctionDeclaration"}]}] +// Message: Syntax is restricted: FunctionDeclaration with JsdocBlock:has(JsdocTag:has(JsdocInlineTag[format="plain"])) ```` diff --git a/package.json b/package.json index 4174cbed8..2ac8ffd07 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "url": "http://gajus.com" }, "dependencies": { - "@es-joy/jsdoccomment": "~0.37.1", + "@es-joy/jsdoccomment": "~0.38.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.3.1", "debug": "^4.3.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9cbfa6b3f..8275a1df4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,8 +2,8 @@ lockfileVersion: '6.0' dependencies: '@es-joy/jsdoccomment': - specifier: ~0.37.1 - version: 0.37.1 + specifier: ~0.38.0 + version: 0.38.0 are-docs-informative: specifier: ^0.0.2 version: 0.0.2 @@ -1458,6 +1458,16 @@ packages: comment-parser: 1.3.1 esquery: 1.5.0 jsdoc-type-pratt-parser: 4.0.0 + dev: true + + /@es-joy/jsdoccomment@0.38.0: + resolution: {integrity: sha512-TFac4Bnv0ZYNkEeDnOWHQhaS1elWlvOCQxH06iHeu5iffs+hCaLVIZJwF+FqksQi68R4i66Pu+4DfFGvble+Uw==} + engines: {node: '>=16'} + dependencies: + comment-parser: 1.3.1 + esquery: 1.5.0 + jsdoc-type-pratt-parser: 4.0.0 + dev: false /@eslint-community/eslint-utils@4.4.0(eslint@8.39.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} diff --git a/test/iterateJsdoc.js b/test/iterateJsdoc.js index f6e32a094..a82b21148 100644 --- a/test/iterateJsdoc.js +++ b/test/iterateJsdoc.js @@ -122,6 +122,7 @@ describe('iterateJsdoc', () => { `, }, '')).to.deep.equal({ description: 'SomeDescription', + inlineTags: [], problems: [], source: [ { @@ -147,6 +148,7 @@ describe('iterateJsdoc', () => { tags: [ { description: ' desc', + inlineTags: [], name: 'name', optional: false, problems: [], diff --git a/test/rules/assertions/noRestrictedSyntax.js b/test/rules/assertions/noRestrictedSyntax.js index 157b5510c..d49395e75 100644 --- a/test/rules/assertions/noRestrictedSyntax.js +++ b/test/rules/assertions/noRestrictedSyntax.js @@ -652,6 +652,58 @@ export default { ], parser: require.resolve('@typescript-eslint/parser'), }, + { + code: ` + /** + * This has an inline {@link http://example.com} + */ + function quux () { + + } + `, + errors: [ + { + line: 2, + message: 'Syntax is restricted: FunctionDeclaration with JsdocBlock:has(JsdocInlineTag)', + }, + ], + options: [ + { + contexts: [ + { + comment: 'JsdocBlock:has(JsdocInlineTag)', + context: 'FunctionDeclaration', + }, + ], + }, + ], + }, + { + code: ` + /** + * @see This has an inline {@link http://example.com} + */ + function quux () { + + } + `, + errors: [ + { + line: 2, + message: 'Syntax is restricted: FunctionDeclaration with JsdocBlock:has(JsdocTag:has(JsdocInlineTag[format="plain"]))', + }, + ], + options: [ + { + contexts: [ + { + comment: 'JsdocBlock:has(JsdocTag:has(JsdocInlineTag[format="plain"]))', + context: 'FunctionDeclaration', + }, + ], + }, + ], + }, ], valid: [ { From 60c8d2906aa2bd515ef1e9e78b6c952da2dd8825 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 5 May 2023 08:04:38 -0700 Subject: [PATCH 065/273] feat: update @es-joy/jsdoccomment Also: - test: demo use of `inlineTags` --- .github/workflows/main.yaml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 2bc7f2c63..da2a9412f 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -1,17 +1,12 @@ jobs: - install: - runs-on: ubuntu-latest - - steps: - - uses: pnpm/action-setup@v2 - with: - version: latest - release: runs-on: ubuntu-latest environment: release name: Release steps: + - uses: pnpm/action-setup@v2 + with: + version: latest - name: setup repository uses: actions/checkout@v3 with: From 055adf85c437a2c125e7d642c54080f430f2ac7b Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 7 May 2023 14:31:01 -0700 Subject: [PATCH 066/273] refactor: switch default `mode` to `typescript`; fixes #834 BREAKING CHANGE: Users must now opt into adding `settings.jsdoc.mode` set to `"jsdoc"` if they want normal JSDoc mode. Note that "typescript" mode does not need to imply use of TypeScript syntax, but rather use of the TypeScript flavor within JSDoc comment blocks which holds the advantages of working in IDEs to draw in third-party module documentation and optionally allowing one to type check one's JavaScript code by TypeScript. There are also tools for building docs with this flavor (e.g., typedoc). --- docs/rules/check-tag-names.md | 1 + docs/rules/check-types.md | 1 + docs/rules/no-undefined-types.md | 1 + docs/rules/valid-types.md | 1 + src/iterateJsdoc.js | 5 +---- test/rules/assertions/checkTagNames.js | 5 +++++ test/rules/assertions/checkTypes.js | 5 +++++ test/rules/assertions/noUndefinedTypes.js | 5 +++++ test/rules/assertions/validTypes.js | 10 ++++++++++ 9 files changed, 30 insertions(+), 4 deletions(-) diff --git a/docs/rules/check-tag-names.md b/docs/rules/check-tag-names.md index d3bc5cac7..b6c7282d9 100644 --- a/docs/rules/check-tag-names.md +++ b/docs/rules/check-tag-names.md @@ -720,6 +720,7 @@ function quux (foo) {} * @template */ function quux (foo) {} +// Settings: {"jsdoc":{"mode":"jsdoc"}} // Message: Invalid JSDoc tag name "internal". /** diff --git a/docs/rules/check-types.md b/docs/rules/check-types.md index b54ce34c7..ba4dbbe63 100644 --- a/docs/rules/check-types.md +++ b/docs/rules/check-types.md @@ -1179,6 +1179,7 @@ function foo(spec) { } foo() +// Settings: {"jsdoc":{"mode":"jsdoc"}} /** * @param {object} root diff --git a/docs/rules/no-undefined-types.md b/docs/rules/no-undefined-types.md index 760ccb029..05e774a73 100644 --- a/docs/rules/no-undefined-types.md +++ b/docs/rules/no-undefined-types.md @@ -201,6 +201,7 @@ class Foo { bar (baz) { } } +// Settings: {"jsdoc":{"mode":"jsdoc"}} // Message: The type 'TEMPLATE_TYPE_A' is undefined. /** diff --git a/docs/rules/valid-types.md b/docs/rules/valid-types.md index 05d8449d3..f0e9a739b 100644 --- a/docs/rules/valid-types.md +++ b/docs/rules/valid-types.md @@ -231,6 +231,7 @@ function quux() { * @this */ class Bar {}; +// Settings: {"jsdoc":{"mode":"jsdoc"}} // "jsdoc/valid-types": ["error"|"warn", {"allowEmptyNamepaths":false}] // Message: Tag @this must have either a type or namepath in "jsdoc" mode. diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index d41ab0fe3..245b93cd8 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -974,10 +974,7 @@ const getSettings = (context) => { exemptDestructuredRootsFromChecks: context.settings.jsdoc?.exemptDestructuredRootsFromChecks, // Many rules, e.g., `check-tag-names` - mode: context.settings.jsdoc?.mode ?? - (context.parserPath?.includes('@typescript-eslint') || - context.languageOptions?.parser?.meta?.name?.includes('typescript') ? - 'typescript' : 'jsdoc'), + mode: context.settings.jsdoc?.mode ?? 'typescript', // Many rules contexts: context.settings.jsdoc?.contexts, diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index 87b2864ab..d9b54910c 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -858,6 +858,11 @@ export default { message: 'Invalid JSDoc tag name "template".', }, ], + settings: { + jsdoc: { + mode: 'jsdoc', + }, + }, }, { code: `${ONE_CLOSURE_TAGS_COMMENT}\nfunction quux (foo) {}`, diff --git a/test/rules/assertions/checkTypes.js b/test/rules/assertions/checkTypes.js index 33aa941af..f4cb968ac 100644 --- a/test/rules/assertions/checkTypes.js +++ b/test/rules/assertions/checkTypes.js @@ -3073,6 +3073,11 @@ export default { foo() `, + settings: { + jsdoc: { + mode: 'jsdoc', + }, + }, }, { code: ` diff --git a/test/rules/assertions/noUndefinedTypes.js b/test/rules/assertions/noUndefinedTypes.js index 808667070..d5ba59fc4 100644 --- a/test/rules/assertions/noUndefinedTypes.js +++ b/test/rules/assertions/noUndefinedTypes.js @@ -276,6 +276,11 @@ export default { message: 'The type \'TEMPLATE_TYPE_B\' is undefined.', }, ], + settings: { + jsdoc: { + mode: 'jsdoc', + }, + }, }, { code: ` diff --git a/test/rules/assertions/validTypes.js b/test/rules/assertions/validTypes.js index 3c825ca66..77d0cd65c 100644 --- a/test/rules/assertions/validTypes.js +++ b/test/rules/assertions/validTypes.js @@ -251,6 +251,11 @@ export default { allowEmptyNamepaths: false, }, ], + settings: { + jsdoc: { + mode: 'jsdoc', + }, + }, }, { code: ` @@ -887,6 +892,11 @@ export default { }, ], ignoreReadme: true, + settings: { + jsdoc: { + mode: 'jsdoc', + }, + }, }, { code: ` From 4eaf868db9917ed8bec3b7aa92154dd99bb9adc6 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 7 May 2023 14:47:30 -0700 Subject: [PATCH 067/273] docs: update info on default `mode` --- .README/settings.md | 9 +++++++-- docs/settings.md | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/.README/settings.md b/.README/settings.md index ae107dd6b..4e7e9c892 100644 --- a/.README/settings.md +++ b/.README/settings.md @@ -27,8 +27,7 @@ how many line breaks to add when a block is missing. ### Mode - `settings.jsdoc.mode` - Set to `typescript`, `closure`, or `jsdoc` (the - default unless the `@typescript-eslint` parser is in use in which case - `typescript` will be the default). + default is now `typescript`). Note that if you do not wish to use separate `.eslintrc.*` files for a project containing both JavaScript and TypeScript, you can also use [`overrides`](https://eslint.org/docs/user-guide/configuring). You may also @@ -51,6 +50,12 @@ how many line breaks to add when a block is missing. - Disallows namepath on `@interface` for "closure" mode in `valid-types` (and avoids checking in other rules) +Note that if you are using TypeScript syntax (and not just the TypeScript +flavor of JSDoc which `mode` set to "typescript" implies), you may wish +to use the `recommended-typescript` or `recommended-typescript-error` +config. This will add rules such as `jsdoc/no-types` to expect you have +no types expressed in JSDoc (since these can be added in TypeScript). + ### Alias Preference Use `settings.jsdoc.tagNamePreference` to configure a preferred alias name for diff --git a/docs/settings.md b/docs/settings.md index c97878327..d87bae090 100644 --- a/docs/settings.md +++ b/docs/settings.md @@ -44,8 +44,7 @@ how many line breaks to add when a block is missing. ### Mode - `settings.jsdoc.mode` - Set to `typescript`, `closure`, or `jsdoc` (the - default unless the `@typescript-eslint` parser is in use in which case - `typescript` will be the default). + default is now `typescript`). Note that if you do not wish to use separate `.eslintrc.*` files for a project containing both JavaScript and TypeScript, you can also use [`overrides`](https://eslint.org/docs/user-guide/configuring). You may also @@ -68,6 +67,12 @@ how many line breaks to add when a block is missing. - Disallows namepath on `@interface` for "closure" mode in `valid-types` (and avoids checking in other rules) +Note that if you are using TypeScript syntax (and not just the TypeScript +flavor of JSDoc which `mode` set to "typescript" implies), you may wish +to use the `recommended-typescript` or `recommended-typescript-error` +config. This will add rules such as `jsdoc/no-types` to expect you have +no types expressed in JSDoc (since these can be added in TypeScript). + ### Alias Preference From 815eb00aa3e0e3d948665f85766f0a938ba629aa Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 8 May 2023 06:52:29 -0700 Subject: [PATCH 068/273] fix(`valid-types`): report postfix nullable in object or labeled tuple position; fixes https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/62 --- docs/rules/valid-types.md | 16 ++++++++++++ src/rules/validTypes.js | 21 +++++++++++++-- test/rules/assertions/validTypes.js | 40 +++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+), 2 deletions(-) diff --git a/docs/rules/valid-types.md b/docs/rules/valid-types.md index f0e9a739b..f77d927f5 100644 --- a/docs/rules/valid-types.md +++ b/docs/rules/valid-types.md @@ -471,6 +471,22 @@ function quux () {} */ function quux () {} // Message: Invalid name: invalid default value syntax + +/** + * @type {{message: string?}} + */ +function quux (items) { +} +// Settings: {"jsdoc":{"mode":"closure"}} +// Message: Syntax error in type: JsdocTypeNullable + +/** + * @type {[message: string?]} + */ +function quux (items) { +} +// Settings: {"jsdoc":{"mode":"typescript"}} +// Message: Syntax error in type: JsdocTypeNullable ```` diff --git a/src/rules/validTypes.js b/src/rules/validTypes.js index 109229045..e01e23026 100644 --- a/src/rules/validTypes.js +++ b/src/rules/validTypes.js @@ -143,11 +143,12 @@ export default iterateJsdoc(({ }; const validTypeParsing = function (type) { + let parsedTypes; try { if (mode === 'permissive') { - tryParse(type); + parsedTypes = tryParse(type); } else { - parse(type, mode); + parsedTypes = parse(type, mode); } } catch { report(`Syntax error in type: ${type}`, null, tag); @@ -155,6 +156,22 @@ export default iterateJsdoc(({ return false; } + if (mode === 'closure' || mode === 'typescript') { + traverse(parsedTypes, (node) => { + const { + type: typ, + } = node; + + if ( + (typ === 'JsdocTypeObjectField' || typ === 'JsdocTypeKeyValue') && + node.right.type === 'JsdocTypeNullable' && + node.right.meta.position === 'suffix' + ) { + report(`Syntax error in type: ${node.right.type}`, null, tag); + } + }); + } + return true; }; diff --git a/test/rules/assertions/validTypes.js b/test/rules/assertions/validTypes.js index 77d0cd65c..bb2a8f20e 100644 --- a/test/rules/assertions/validTypes.js +++ b/test/rules/assertions/validTypes.js @@ -1062,6 +1062,46 @@ export default { }, ], }, + { + code: ` + /** + * @type {{message: string?}} + */ + function quux (items) { + } + `, + errors: [ + { + line: 3, + message: 'Syntax error in type: JsdocTypeNullable', + }, + ], + settings: { + jsdoc: { + mode: 'closure', + }, + }, + }, + { + code: ` + /** + * @type {[message: string?]} + */ + function quux (items) { + } + `, + errors: [ + { + line: 3, + message: 'Syntax error in type: JsdocTypeNullable', + }, + ], + settings: { + jsdoc: { + mode: 'typescript', + }, + }, + }, ], valid: [ { From 0e0e288b6cc4a7910d596179b9e1193b61fa558a Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 8 May 2023 17:45:51 -0700 Subject: [PATCH 069/273] refactor: fix `generateRule.js` Also: - refactor: TypeScript for `checkJs` --- .eslintrc.json | 4 +++- .husky/pre-push | 2 +- CONTRIBUTING.md | 2 +- package.json | 9 ++++--- pnpm-lock.yaml | 49 +++++++++++++++++++++++++------------ src/WarnSettings.js | 14 ++++++++--- src/bin/generateDocs.js | 46 +++++++++++++++++++++++++++-------- src/bin/generateRule.js | 53 +++++++++++++++++++++++++++++++++-------- src/bin/gitdown.d.ts | 12 ++++++++++ src/index.js | 13 ++++++++++ tsconfig.json | 19 +++++++++++++++ 11 files changed, 179 insertions(+), 44 deletions(-) create mode 100644 src/bin/gitdown.d.ts create mode 100644 tsconfig.json diff --git a/.eslintrc.json b/.eslintrc.json index dae15268b..a9adc04bc 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -37,6 +37,8 @@ "unicorn/no-unsafe-regex": 0, "unicorn/prefer-array-some": 0, "unicorn/prevent-abbreviations": 0, - "linebreak-style": 0 + "linebreak-style": 0, + "no-inline-comments": 0, + "no-extra-parens": 0 } } diff --git a/.husky/pre-push b/.husky/pre-push index 8b51deba9..05340f7e4 100755 --- a/.husky/pre-push +++ b/.husky/pre-push @@ -1,4 +1,4 @@ #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" -npm test && npm run build && npm run check-readme +npm test && npm run build && npm run check-docs diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 28649cbfd..3bfd4fb33 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -42,7 +42,7 @@ modify files within the `.README` directory. `.README/README.md` contains the main README skeleton and details on the project, its global `settings`, etc., while the documentation for specific rules (that will be pulled into the README) ought to be modified within the relevant file within `.README/rules`. -Once these files are modified, you can run `pnpm create-readme` to have +Once these files are modified, you can run `pnpm create-docs` to have these files integrated into the main `/README.md`. While you should include the built file in your PR, you will not want to make manual changes directly to this file, as they will be overwritten. diff --git a/package.json b/package.json index 2ac8ffd07..e42c0e336 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,8 @@ "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/github": "^8.0.7", "@semantic-release/npm": "^10.0.3", + "@types/eslint": "^8.37.0", + "@types/node": "^20.1.1", "@typescript-eslint/parser": "^5.59.2", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", @@ -36,8 +38,8 @@ "chai": "^4.3.7", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint-config-canonical": "~33.0.1", "eslint": "^8.39.0", + "eslint-config-canonical": "~33.0.1", "gitdown": "^3.1.5", "glob": "^10.2.2", "husky": "^8.0.3", @@ -107,9 +109,10 @@ "package-lock.json": "npm run install-offline" }, "scripts": { + "tsc": "tsc", "build": "rimraf ./dist && cross-env NODE_ENV=production babel ./src --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored", - "check-readme": "babel-node ./src/bin/generateDocs.js --check", - "create-readme": "babel-node ./src/bin/generateDocs.js", + "check-docs": "babel-node ./src/bin/generateDocs.js --check", + "create-docs": "babel-node ./src/bin/generateDocs.js", "create-rule": "babel-node ./src/bin/generateRule.js", "install-offline": "pnpm install --prefer-offline --no-audit", "lint": "npm run lint-arg -- .", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8275a1df4..8f0ee02b7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -66,6 +66,12 @@ devDependencies: '@semantic-release/npm': specifier: ^10.0.3 version: 10.0.3(semantic-release@21.0.2) + '@types/eslint': + specifier: ^8.37.0 + version: 8.37.0 + '@types/node': + specifier: ^20.1.1 + version: 20.1.1 '@typescript-eslint/parser': specifier: ^5.59.2 version: 5.59.2(eslint@8.39.0)(typescript@5.0.4) @@ -92,7 +98,7 @@ devDependencies: version: 8.39.0 eslint-config-canonical: specifier: ~33.0.1 - version: 33.0.1(@babel/core@7.21.8)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4) + version: 33.0.1(@babel/core@7.21.8)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.1.1)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4) gitdown: specifier: ^3.1.5 version: 3.1.5 @@ -1510,7 +1516,7 @@ packages: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true - /@graphql-eslint/eslint-plugin@3.18.0(@babel/core@7.21.8)(graphql@16.6.0): + /@graphql-eslint/eslint-plugin@3.18.0(@babel/core@7.21.8)(@types/node@20.1.1)(graphql@16.6.0): resolution: {integrity: sha512-riEEfRycc0+pWxcEWqHi8woRxzg1xZqAfh9DRACJUR7bTN8dmc1N04i7+pvW4sevClUFYC2wuL1Vtr+DwzXLUg==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -1523,7 +1529,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.2.12 graphql: 16.6.0 - graphql-config: 4.5.0(graphql@16.6.0) + graphql-config: 4.5.0(@types/node@20.1.1)(graphql@16.6.0) graphql-depth-limit: 1.1.0(graphql@16.6.0) lodash.lowercase: 4.3.0 tslib: 2.5.0 @@ -1598,7 +1604,7 @@ packages: - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.9(graphql@16.6.0): + /@graphql-tools/executor-http@0.1.9(@types/node@20.1.1)(graphql@16.6.0): resolution: {integrity: sha512-tNzMt5qc1ptlHKfpSv9wVBVKCZ7gks6Yb/JcYJluxZIT4qRV+TtOFjpptfBU63usgrGVOVcGjzWc/mt7KhmmpQ==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1609,7 +1615,7 @@ packages: dset: 3.1.2 extract-files: 11.0.0 graphql: 16.6.0 - meros: 1.2.1 + meros: 1.2.1(@types/node@20.1.1) tslib: 2.5.0 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -1732,7 +1738,7 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(graphql@16.6.0): + /@graphql-tools/url-loader@7.17.18(@types/node@20.1.1)(graphql@16.6.0): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1740,7 +1746,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 9.0.35(graphql@16.6.0) '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.6.0) - '@graphql-tools/executor-http': 0.1.9(graphql@16.6.0) + '@graphql-tools/executor-http': 0.1.9(@types/node@20.1.1)(graphql@16.6.0) '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.6.0) '@graphql-tools/utils': 9.2.1(graphql@16.6.0) '@graphql-tools/wrap': 9.4.2(graphql@16.6.0) @@ -2217,6 +2223,17 @@ packages: engines: {node: '>= 10'} dev: true + /@types/eslint@8.37.0: + resolution: {integrity: sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==} + dependencies: + '@types/estree': 1.0.1 + '@types/json-schema': 7.0.11 + dev: true + + /@types/estree@1.0.1: + resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} + dev: true + /@types/json-schema@7.0.11: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true @@ -2229,8 +2246,8 @@ packages: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true - /@types/node@18.16.3: - resolution: {integrity: sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==} + /@types/node@20.1.1: + resolution: {integrity: sha512-uKBEevTNb+l6/aCQaKVnUModfEMjAl98lw2Si9P5y4hLu9tm6AlX2ZIoXZX6Wh9lJueYPrGPKk5WMCNHg/u6/A==} dev: true /@types/normalize-package-data@2.4.1: @@ -2248,7 +2265,7 @@ packages: /@types/ws@8.5.4: resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: - '@types/node': 18.16.3 + '@types/node': 20.1.1 dev: true /@typescript-eslint/eslint-plugin@5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4): @@ -3943,7 +3960,7 @@ packages: lodash.zip: 4.2.0 dev: true - /eslint-config-canonical@33.0.1(@babel/core@7.21.8)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4): + /eslint-config-canonical@33.0.1(@babel/core@7.21.8)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.1.1)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4): resolution: {integrity: sha512-g5hyJr5s4WnyAp5FdfMyItz72hOgXAB/4tsFMBP944bcei2QJyMvwslpKdiQL299HSJBpJ9xbNBhx7oeFI7zIQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -3951,7 +3968,7 @@ packages: dependencies: '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.39.0) '@babel/eslint-plugin': 7.19.1(@babel/eslint-parser@7.21.8)(eslint@8.39.0) - '@graphql-eslint/eslint-plugin': 3.18.0(@babel/core@7.21.8)(graphql@16.6.0) + '@graphql-eslint/eslint-plugin': 3.18.0(@babel/core@7.21.8)(@types/node@20.1.1)(graphql@16.6.0) '@next/eslint-plugin-next': 12.3.4 '@rushstack/eslint-patch': 1.2.0 '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4) @@ -5160,7 +5177,7 @@ packages: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: true - /graphql-config@4.5.0(graphql@16.6.0): + /graphql-config@4.5.0(@types/node@20.1.1)(graphql@16.6.0): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -5174,7 +5191,7 @@ packages: '@graphql-tools/json-file-loader': 7.4.18(graphql@16.6.0) '@graphql-tools/load': 7.8.14(graphql@16.6.0) '@graphql-tools/merge': 8.4.1(graphql@16.6.0) - '@graphql-tools/url-loader': 7.17.18(graphql@16.6.0) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.1.1)(graphql@16.6.0) '@graphql-tools/utils': 9.2.1(graphql@16.6.0) cosmiconfig: 8.0.0 graphql: 16.6.0 @@ -6600,7 +6617,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.2.1: + /meros@1.2.1(@types/node@20.1.1): resolution: {integrity: sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g==} engines: {node: '>=13'} peerDependencies: @@ -6608,6 +6625,8 @@ packages: peerDependenciesMeta: '@types/node': optional: true + dependencies: + '@types/node': 20.1.1 dev: true /micro-spelling-correcter@1.1.1: diff --git a/src/WarnSettings.js b/src/WarnSettings.js index dd4bdfd93..cce7481ee 100644 --- a/src/WarnSettings.js +++ b/src/WarnSettings.js @@ -6,20 +6,28 @@ const WarnSettings = function () { /** * Warn only once for each context and setting * - * @param {object} context + * @param {import('eslint').Rule.RuleContext} context * @param {string} setting + * @returns {boolean} */ hasBeenWarned (context, setting) { - return warnedSettings.has(context) && warnedSettings.get(context).has(setting); + return warnedSettings.has(context) && /** @type {Set} */ ( + warnedSettings.get(context) + ).has(setting); }, + /** + * @param {import('eslint').Rule.RuleContext} context + * @param {string} setting + * @returns {void} + */ markSettingAsWarned (context, setting) { // istanbul ignore else if (!warnedSettings.has(context)) { warnedSettings.set(context, new Set()); } - warnedSettings.get(context).add(setting); + /** @type {Set} */ (warnedSettings.get(context)).add(setting); }, }; }; diff --git a/src/bin/generateDocs.js b/src/bin/generateDocs.js index 7c009bf12..0c3e34ec3 100644 --- a/src/bin/generateDocs.js +++ b/src/bin/generateDocs.js @@ -9,6 +9,10 @@ import { glob, } from 'glob'; +/** + * @param {string} code + * @returns {string} + */ const trimCode = (code) => { let lines = code.replace(/^\n/u, '').trimEnd().split('\n'); @@ -29,6 +33,11 @@ const trimCode = (code) => { return lines.join('\n').replaceAll('\r', '\\r'); }; +/** + * @param {import('eslint').RuleTester.InvalidTestCase|import('eslint').RuleTester.ValidTestCase} setup + * @param {string} ruleName + * @returns {string} + */ const formatCodeSnippet = (setup, ruleName) => { const paragraphs = []; @@ -42,8 +51,11 @@ const formatCodeSnippet = (setup, ruleName) => { paragraphs.push(`// "jsdoc/${ruleName}": ["error"|"warn", ${JSON.stringify(setup.options).slice(1)}`); } - if (setup.errors) { - paragraphs.push(`// Message: ${setup.errors[0].message}`); + if ('errors' in setup) { + paragraphs.push(`// Message: ${ + /** @type {Array} */ ( + setup.errors + )[0].message}`); } return paragraphs.join('\n'); @@ -58,9 +70,14 @@ const getAssertions = async () => { return path.basename(filePath, '.js'); }); - const assertionCodes = assertionFiles.map((filePath, idx) => { - // eslint-disable-next-line import/no-dynamic-require - const codes = require(filePath); + const assertionCodes = await Promise.all(assertionFiles.map(async (filePath, idx) => { + /** + * @type {{ + * invalid: (import('eslint').RuleTester.InvalidTestCase & {ignoreReadme?: true})[], + * valid: (import('eslint').RuleTester.ValidTestCase & {ignoreReadme?: true})[] + * }} + */ + const codes = await import(filePath); const ruleName = decamelize(assertionNames[idx], { separator: '-', @@ -82,7 +99,7 @@ const getAssertions = async () => { return formatCodeSnippet(setup, ruleName); }), }; - }); + })); return { assertionNames, @@ -145,7 +162,13 @@ const generateDocs = async () => { return docContents.map((docContent) => { return docContent.replace( //gui, - (assertionsBlock, passingFailing, ruleName) => { + /** + * @param {string} _assertionsBlock + * @param {string} passingFailing + * @param {string} ruleName + * @returns {string} + */ + (_assertionsBlock, passingFailing, ruleName) => { const ruleAssertions = assertions[ruleName]; if (!ruleAssertions) { @@ -164,10 +187,13 @@ const generateDocs = async () => { }); }; +/** + * @returns {string[]} + */ const getDocPaths = () => { const basePath = path.join(__dirname, '..', '..', '.README'); const writeBasePath = path.join(__dirname, '..', '..', 'docs'); - const docPaths = fs.readdirSync(basePath).flatMap((docFile) => { + const docPaths = /** @type {string[]} */ (fs.readdirSync(basePath).flatMap((docFile) => { if (extraFiles.includes(docFile)) { // Will get path separately below return null; @@ -190,7 +216,7 @@ const getDocPaths = () => { return null; }).filter((file) => { return file; - }); + })); return [ ...docPaths, @@ -232,7 +258,7 @@ const assertDocsAreUpToDate = async () => { const isUpToDate = fs.readFileSync(docPath, 'utf8') === docContent; if (!isUpToDate) { - throw new Error('Readme is not up to date, please run `npm run create-readme` to update it.'); + throw new Error('Readme is not up to date, please run `npm run create-docs` to update it.'); } } }; diff --git a/src/bin/generateRule.js b/src/bin/generateRule.js index b83595bb8..a88e69cf6 100644 --- a/src/bin/generateRule.js +++ b/src/bin/generateRule.js @@ -18,7 +18,8 @@ import { import camelCase from 'camelcase'; import open from 'open-editor'; -// Todo: Would ideally have prompts, e.g., to ask for whether type was problem/layout, etc. +// Todo: Would ideally have prompts, e.g., to ask for whether +// type was problem/layout, etc. const [ , , ruleName, @@ -133,6 +134,15 @@ export default iterateJsdoc(({ await fs.writeFile(ruleReadmePath, ruleReadmeTemplate); } + /** + * @param {object} cfg + * @param {string} cfg.path + * @param {RegExp} cfg.oldRegex + * @param {string} cfg.checkName + * @param {string} cfg.newLine + * @param {boolean} [cfg.oldIsCamel] + * @returns {Promise} + */ const replaceInOrder = async ({ path, oldRegex, @@ -140,11 +150,33 @@ export default iterateJsdoc(({ newLine, oldIsCamel, }) => { + /** + * @typedef {number} Integer + */ + /** + * @typedef {{ + * matchedLine: string, + * offset: Integer, + * oldRule: string, + * }} OffsetInfo + */ + /** + * @type {OffsetInfo[]} + */ const offsets = []; let readme = await fs.readFile(path, 'utf8'); readme.replace( oldRegex, + /** + * @param {string} matchedLine + * @param {string} n1 + * @param {Integer} offset + * @param {string} str + * @param {object} groups + * @param {string} groups.oldRule + * @returns {string} + */ (matchedLine, n1, offset, str, { oldRule, }) => { @@ -153,6 +185,8 @@ export default iterateJsdoc(({ offset, oldRule, }); + + return matchedLine; }, ); @@ -161,7 +195,6 @@ export default iterateJsdoc(({ }, { oldRule: oldRuleB, }) => { - // eslint-disable-next-line no-extra-parens return oldRule < oldRuleB ? -1 : (oldRule > oldRuleB ? 1 : 0); }); @@ -183,7 +216,7 @@ export default iterateJsdoc(({ } if (!item) { - item = offsets.pop(); + item = /** @type {OffsetInfo} */ (offsets.pop()); item.offset += item.matchedLine.length; } @@ -200,12 +233,12 @@ export default iterateJsdoc(({ } }; - await replaceInOrder({ - checkName: 'README', - newLine: `{"gitdown": "include", "file": "./rules/${ruleName}.md"}`, - oldRegex: /\n\{"gitdown": "include", "file": ".\/rules\/(?[^.]*).md"\}/gu, - path: './.README/README.md', - }); + // await replaceInOrder({ + // checkName: 'README', + // newLine: `{"gitdown": "include", "file": "./rules/${ruleName}.md"}`, + // oldRegex: /\n\{"gitdown": "include", "file": ".\/rules\/(?[^.]*).md"\}/gu, + // path: './.README/README.md', + // }); await replaceInOrder({ checkName: 'index import', @@ -229,7 +262,7 @@ export default iterateJsdoc(({ path: './src/index.js', }); - await import('./generateReadme.js'); + await import('./generateDocs.js'); /* console.log('Paths to open for further editing\n'); diff --git a/src/bin/gitdown.d.ts b/src/bin/gitdown.d.ts new file mode 100644 index 000000000..60192a21a --- /dev/null +++ b/src/bin/gitdown.d.ts @@ -0,0 +1,12 @@ +declare module 'gitdown' { + interface Gitdown { + setConfig: (info: { + gitinfo: { + defaultBranchName: string, + gitPath: string + } + }) => void + get: () => string + } + export function readFile(path: string): Gitdown +} diff --git a/src/index.js b/src/index.js index 257f0245c..06ef81499 100644 --- a/src/index.js +++ b/src/index.js @@ -52,7 +52,12 @@ import textEscaping from './rules/textEscaping'; import validTypes from './rules/validTypes'; const index = { + /* eslint-disable jsdoc/no-undefined-types -- Bug */ + /** + * @type {Record>} + */ configs: {}, + /* eslint-enable jsdoc/no-undefined-types -- Bug */ rules: { 'check-access': checkAccess, 'check-alignment': checkAlignment, @@ -109,6 +114,10 @@ const index = { }, }; +/** + * @param {"warn"|"error"} warnOrError + * @returns {import('eslint').ESLint.ConfigData} + */ const createRecommendedRuleset = (warnOrError) => { return { plugins: [ @@ -171,6 +180,10 @@ const createRecommendedRuleset = (warnOrError) => { }; }; +/** + * @param {"warn"|"error"} warnOrError + * @returns {import('eslint').ESLint.ConfigData} + */ const createRecommendedTypeScriptRuleset = (warnOrError) => { const ruleset = createRecommendedRuleset(warnOrError); diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 000000000..f96ccde9a --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "lib": ["es2022"], + "moduleResolution": "node", + "module": "esnext", + "allowJs": true, + "checkJs": true, + "noEmit": true, + "declaration": true, + "declarationMap": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "target": "es6", + "outDir": "dist" + }, + // Restore to `src/**/*.js` as ready + "include": ["src/bin/*.js", "src/bin/gitdown.d.ts"], + "exclude": ["node_modules"] +} From 28fa65d2cba2bf2bdb6fb01aaf8ca92df3fc0199 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 9 May 2023 06:08:51 -0700 Subject: [PATCH 070/273] fix(`valid-types`): regression with object field checking; fixes #1068 --- src/rules/validTypes.js | 4 ++-- test/rules/assertions/validTypes.js | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/rules/validTypes.js b/src/rules/validTypes.js index e01e23026..95742d428 100644 --- a/src/rules/validTypes.js +++ b/src/rules/validTypes.js @@ -164,8 +164,8 @@ export default iterateJsdoc(({ if ( (typ === 'JsdocTypeObjectField' || typ === 'JsdocTypeKeyValue') && - node.right.type === 'JsdocTypeNullable' && - node.right.meta.position === 'suffix' + node.right?.type === 'JsdocTypeNullable' && + node.right?.meta?.position === 'suffix' ) { report(`Syntax error in type: ${node.right.type}`, null, tag); } diff --git a/test/rules/assertions/validTypes.js b/test/rules/assertions/validTypes.js index bb2a8f20e..8d46f1d9b 100644 --- a/test/rules/assertions/validTypes.js +++ b/test/rules/assertions/validTypes.js @@ -1783,5 +1783,12 @@ export default { }, }, }, + { + code: ` + /** + * @returns {Promise<{publicKey, privateKey}>} - The public and private key + */ + `, + }, ], }; From dce0a4064341d5c35ef153576c907622693e6606 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 9 May 2023 06:09:50 -0700 Subject: [PATCH 071/273] docs: update --- docs/rules/valid-types.md | 4 ++++ src/bin/generateDocs.js | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/rules/valid-types.md b/docs/rules/valid-types.md index f77d927f5..4271b6f73 100644 --- a/docs/rules/valid-types.md +++ b/docs/rules/valid-types.md @@ -846,5 +846,9 @@ function quux() { } // Settings: {"jsdoc":{"mode":"typescript"}} + +/** + * @returns {Promise<{publicKey, privateKey}>} - The public and private key + */ ```` diff --git a/src/bin/generateDocs.js b/src/bin/generateDocs.js index 0c3e34ec3..a815ffd4f 100644 --- a/src/bin/generateDocs.js +++ b/src/bin/generateDocs.js @@ -258,7 +258,7 @@ const assertDocsAreUpToDate = async () => { const isUpToDate = fs.readFileSync(docPath, 'utf8') === docContent; if (!isUpToDate) { - throw new Error('Readme is not up to date, please run `npm run create-docs` to update it.'); + throw new Error('Docs are not up to date, please run `npm run create-docs` to update it.'); } } }; From 7c8212a5bf9dc6f4c2a5a529ce746b120979eec3 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 9 May 2023 06:20:01 -0700 Subject: [PATCH 072/273] chore: update devDeps. and lint --- package.json | 4 +- pnpm-lock.yaml | 244 +++++++++++++++++++++++++++++++++++--------- src/iterateJsdoc.js | 1 - 3 files changed, 196 insertions(+), 53 deletions(-) diff --git a/package.json b/package.json index e42c0e336..228a86e80 100644 --- a/package.json +++ b/package.json @@ -24,14 +24,14 @@ "@babel/plugin-transform-flow-strip-types": "^7.21.0", "@babel/preset-env": "^7.21.5", "@babel/register": "^7.21.0", - "@es-joy/jsdoc-eslint-parser": "^0.18.0", + "@es-joy/jsdoc-eslint-parser": "^0.19.0", "@hkdobrev/run-if-changed": "^0.3.1", "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/github": "^8.0.7", "@semantic-release/npm": "^10.0.3", "@types/eslint": "^8.37.0", "@types/node": "^20.1.1", - "@typescript-eslint/parser": "^5.59.2", + "@typescript-eslint/parser": "^5.59.5", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8f0ee02b7..031a046ac 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,8 +52,8 @@ devDependencies: specifier: ^7.21.0 version: 7.21.0(@babel/core@7.21.8) '@es-joy/jsdoc-eslint-parser': - specifier: ^0.18.0 - version: 0.18.0 + specifier: ^0.19.0 + version: 0.19.0 '@hkdobrev/run-if-changed': specifier: ^0.3.1 version: 0.3.1 @@ -73,8 +73,8 @@ devDependencies: specifier: ^20.1.1 version: 20.1.1 '@typescript-eslint/parser': - specifier: ^5.59.2 - version: 5.59.2(eslint@8.39.0)(typescript@5.0.4) + specifier: ^5.59.5 + version: 5.59.5(eslint@8.39.0)(typescript@5.0.4) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -224,6 +224,20 @@ packages: semver: 6.3.0 dev: true + /@babel/eslint-parser@7.21.8(@babel/core@7.21.8)(eslint@8.40.0): + resolution: {integrity: sha512-HLhI+2q+BP3sf78mFUZNCGc10KEmoUqtUT1OCdMZsN+qr4qFeLUod62/zAnF3jNQstwyasDkZnVXwfK2Bml7MQ==} + engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + peerDependencies: + '@babel/core': '>=7.11.0' + eslint: ^7.5.0 || ^8.0.0 + dependencies: + '@babel/core': 7.21.8 + '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 + eslint: 8.40.0 + eslint-visitor-keys: 2.1.0 + semver: 6.3.0 + dev: true + /@babel/eslint-plugin@7.19.1(@babel/eslint-parser@7.21.8)(eslint@8.39.0): resolution: {integrity: sha512-ElGPkQPapKMa3zVqXHkZYzuL7I5LbRw9UWBUArgWsdWDDb9XcACqOpBib5tRPA9XvbVZYrFUkoQPbiJ4BFvu4w==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} @@ -1433,15 +1447,15 @@ packages: dev: true optional: true - /@es-joy/jsdoc-eslint-parser@0.18.0: - resolution: {integrity: sha512-vMlRlszK0/nF0RAmENipGt9Re+maPlBSFxsup3UePJqWrzfch2jKCAU3Mu/SMWJUp1ME8vXCW1dqoavFcM7zXw==} + /@es-joy/jsdoc-eslint-parser@0.19.0: + resolution: {integrity: sha512-PvggHK8390M0S/KyS2hUriNu83TLpOv2fjtuKdqE7+SeIKh7o6BgbCVjh0nxbMKVWToG2rGAaMGbOQIhxcq3ew==} engines: {node: '>=12.0.0'} dependencies: '@babel/core': 7.21.8 - '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.39.0) - '@es-joy/jsdoccomment': 0.37.1 - '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4) - eslint: 8.39.0 + '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.40.0) + '@es-joy/jsdoccomment': 0.38.0 + '@typescript-eslint/parser': 5.59.5(eslint@8.40.0)(typescript@5.0.4) + eslint: 8.40.0 esquery: 1.5.0 typescript: 5.0.4 transitivePeerDependencies: @@ -1457,15 +1471,6 @@ packages: jsdoc-type-pratt-parser: 2.2.5 dev: true - /@es-joy/jsdoccomment@0.37.1: - resolution: {integrity: sha512-5vxWJ1gEkEF0yRd0O+uK6dHJf7adrxwQSX8PuRiPfFSAbNLnY0ZJfXaZucoz14Jj2N11xn2DnlEPwWRpYpvRjg==} - engines: {node: ^14 || ^16 || ^17 || ^18 || ^19 || ^20} - dependencies: - comment-parser: 1.3.1 - esquery: 1.5.0 - jsdoc-type-pratt-parser: 4.0.0 - dev: true - /@es-joy/jsdoccomment@0.38.0: resolution: {integrity: sha512-TFac4Bnv0ZYNkEeDnOWHQhaS1elWlvOCQxH06iHeu5iffs+hCaLVIZJwF+FqksQi68R4i66Pu+4DfFGvble+Uw==} engines: {node: '>=16'} @@ -1473,7 +1478,6 @@ packages: comment-parser: 1.3.1 esquery: 1.5.0 jsdoc-type-pratt-parser: 4.0.0 - dev: false /@eslint-community/eslint-utils@4.4.0(eslint@8.39.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} @@ -1482,7 +1486,17 @@ packages: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: eslint: 8.39.0 - eslint-visitor-keys: 3.4.0 + eslint-visitor-keys: 3.4.1 + dev: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.40.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.40.0 + eslint-visitor-keys: 3.4.1 dev: true /@eslint-community/regexpp@4.5.1: @@ -1490,13 +1504,13 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.0.2: - resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==} + /@eslint/eslintrc@2.0.3: + resolution: {integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4(supports-color@8.1.1) - espree: 9.5.1 + espree: 9.5.2 globals: 13.20.0 ignore: 5.2.4 import-fresh: 3.3.0 @@ -1512,6 +1526,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@eslint/js@8.40.0: + resolution: {integrity: sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + /@gar/promisify@1.1.3: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true @@ -2268,7 +2287,7 @@ packages: '@types/node': 20.1.1 dev: true - /@typescript-eslint/eslint-plugin@5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4): + /@typescript-eslint/eslint-plugin@5.59.2(@typescript-eslint/parser@5.59.5)(eslint@8.39.0)(typescript@5.0.4): resolution: {integrity: sha512-yVrXupeHjRxLDcPKL10sGQ/QlVrA8J5IYOEWVqk0lJaSZP7X5DfnP7Ns3cc74/blmbipQ1htFNVGsHX6wsYm0A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2280,7 +2299,7 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.5(eslint@8.39.0)(typescript@5.0.4) '@typescript-eslint/scope-manager': 5.59.2 '@typescript-eslint/type-utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) '@typescript-eslint/utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) @@ -2309,8 +2328,8 @@ packages: - typescript dev: true - /@typescript-eslint/parser@5.59.2(eslint@8.39.0)(typescript@5.0.4): - resolution: {integrity: sha512-uq0sKyw6ao1iFOZZGk9F8Nro/8+gfB5ezl1cA06SrqbgJAt0SRoFhb9pXaHvkrxUpZaoLxt8KlovHNk8Gp6/HQ==} + /@typescript-eslint/parser@5.59.5(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-NJXQC4MRnF9N9yWqQE2/KLRSOLvrrlZb48NGVfBa+RuPMN6B7ZcK5jZOvhuygv4D64fRKnZI4L4p8+M+rfeQuw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -2319,9 +2338,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.59.2 - '@typescript-eslint/types': 5.59.2 - '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.0.4) + '@typescript-eslint/scope-manager': 5.59.5 + '@typescript-eslint/types': 5.59.5 + '@typescript-eslint/typescript-estree': 5.59.5(typescript@5.0.4) debug: 4.3.4(supports-color@8.1.1) eslint: 8.39.0 typescript: 5.0.4 @@ -2329,6 +2348,26 @@ packages: - supports-color dev: true + /@typescript-eslint/parser@5.59.5(eslint@8.40.0)(typescript@5.0.4): + resolution: {integrity: sha512-NJXQC4MRnF9N9yWqQE2/KLRSOLvrrlZb48NGVfBa+RuPMN6B7ZcK5jZOvhuygv4D64fRKnZI4L4p8+M+rfeQuw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.59.5 + '@typescript-eslint/types': 5.59.5 + '@typescript-eslint/typescript-estree': 5.59.5(typescript@5.0.4) + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.40.0 + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/scope-manager@5.59.2: resolution: {integrity: sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2337,6 +2376,14 @@ packages: '@typescript-eslint/visitor-keys': 5.59.2 dev: true + /@typescript-eslint/scope-manager@5.59.5: + resolution: {integrity: sha512-jVecWwnkX6ZgutF+DovbBJirZcAxgxC0EOHYt/niMROf8p4PwxxG32Qdhj/iIQQIuOflLjNkxoXyArkcIP7C3A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.59.5 + '@typescript-eslint/visitor-keys': 5.59.5 + dev: true + /@typescript-eslint/type-utils@5.59.2(eslint@8.39.0)(typescript@5.0.4): resolution: {integrity: sha512-b1LS2phBOsEy/T381bxkkywfQXkV1dWda/z0PhnIy3bC5+rQWQDS7fk9CSpcXBccPY27Z6vBEuaPBCKCgYezyQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2362,6 +2409,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@typescript-eslint/types@5.59.5: + resolution: {integrity: sha512-xkfRPHbqSH4Ggx4eHRIO/eGL8XL4Ysb4woL8c87YuAo8Md7AUjyWKa9YMwTL519SyDPrfEgKdewjkxNCVeJW7w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + /@typescript-eslint/typescript-estree@5.59.2(typescript@5.0.4): resolution: {integrity: sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2383,6 +2435,27 @@ packages: - supports-color dev: true + /@typescript-eslint/typescript-estree@5.59.5(typescript@5.0.4): + resolution: {integrity: sha512-+XXdLN2CZLZcD/mO7mQtJMvCkzRfmODbeSKuMY/yXbGkzvA9rJyDY5qDYNoiz2kP/dmyAxXquL2BvLQLJFPQIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.59.5 + '@typescript-eslint/visitor-keys': 5.59.5 + debug: 4.3.4(supports-color@8.1.1) + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.0 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/utils@5.59.2(eslint@8.39.0)(typescript@5.0.4): resolution: {integrity: sha512-kSuF6/77TZzyGPhGO4uVp+f0SBoYxCDf+lW3GKhtKru/L8k/Hd7NFQxyWUeY7Z/KGB2C6Fe3yf2vVi4V9TsCSQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2408,7 +2481,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.59.2 - eslint-visitor-keys: 3.4.0 + eslint-visitor-keys: 3.4.1 + dev: true + + /@typescript-eslint/visitor-keys@5.59.5: + resolution: {integrity: sha512-qL+Oz+dbeBRTeyJTIy0eniD3uvqU7x+y1QceBismZ41hd4aBSRh8UAw4pZP0+XzLuPZmx4raNMq/I+59W2lXKA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.59.5 + eslint-visitor-keys: 3.4.1 dev: true /@whatwg-node/events@0.0.3: @@ -3971,8 +4052,8 @@ packages: '@graphql-eslint/eslint-plugin': 3.18.0(@babel/core@7.21.8)(@types/node@20.1.1)(graphql@16.6.0) '@next/eslint-plugin-next': 12.3.4 '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4) - '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.5)(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.5(eslint@8.39.0)(typescript@5.0.4) eslint: 8.39.0 eslint-plugin-ava: 13.2.0(eslint@8.39.0) eslint-plugin-canonical: 2.6.0(eslint@8.39.0) @@ -3980,7 +4061,7 @@ packages: eslint-plugin-eslint-comments: 3.2.0(eslint@8.39.0) eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.39.0) eslint-plugin-fp: 2.3.0(eslint@8.39.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint@8.39.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.5)(eslint@8.39.0) eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.59.2)(eslint@8.39.0)(typescript@5.0.4) eslint-plugin-jsdoc: 37.9.7(eslint@8.39.0) eslint-plugin-jsonc: 2.7.0(eslint@8.39.0) @@ -3991,7 +4072,7 @@ packages: eslint-plugin-node: 11.1.0(eslint@8.39.0) eslint-plugin-react: 7.32.2(eslint@8.39.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.39.0) - eslint-plugin-typescript-sort-keys: 2.3.0(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4) + eslint-plugin-typescript-sort-keys: 2.3.0(@typescript-eslint/parser@5.59.5)(eslint@8.39.0)(typescript@5.0.4) eslint-plugin-unicorn: 39.0.0(eslint@8.39.0) eslint-plugin-yml: 0.12.0(eslint@8.39.0) yaml-eslint-parser: 0.5.0 @@ -4022,7 +4103,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint@8.39.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.5)(eslint-import-resolver-node@0.3.7)(eslint@8.39.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4043,7 +4124,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.5(eslint@8.39.0)(typescript@5.0.4) debug: 3.2.7 eslint: 8.39.0 eslint-import-resolver-node: 0.3.7 @@ -4142,7 +4223,7 @@ packages: req-all: 0.1.0 dev: true - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.2)(eslint@8.39.0): + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.5)(eslint@8.39.0): resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -4152,7 +4233,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.5(eslint@8.39.0)(typescript@5.0.4) array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 @@ -4160,7 +4241,7 @@ packages: doctrine: 2.1.0 eslint: 8.39.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint@8.39.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.5)(eslint-import-resolver-node@0.3.7)(eslint@8.39.0) has: 1.0.3 is-core-module: 2.12.0 is-glob: 4.0.3 @@ -4188,7 +4269,7 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.5)(eslint@8.39.0)(typescript@5.0.4) '@typescript-eslint/experimental-utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) eslint: 8.39.0 transitivePeerDependencies: @@ -4328,7 +4409,7 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-typescript-sort-keys@2.3.0(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4): + /eslint-plugin-typescript-sort-keys@2.3.0(@typescript-eslint/parser@5.59.5)(eslint@8.39.0)(typescript@5.0.4): resolution: {integrity: sha512-3LAcYulo5gNYiPWee+TksITfvWeBuBjGgcSLTacPESFVKEoy8laOQuZvJlSCwTBHT2SCGIxr3bJ56zuux+3MCQ==} engines: {node: 12 || >= 13.9} peerDependencies: @@ -4337,7 +4418,7 @@ packages: typescript: ^3 || ^4 || ^5 dependencies: '@typescript-eslint/experimental-utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) - '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.5(eslint@8.39.0)(typescript@5.0.4) eslint: 8.39.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 @@ -4455,6 +4536,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /eslint-visitor-keys@3.4.1: + resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + /eslint@8.39.0: resolution: {integrity: sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4462,7 +4548,7 @@ packages: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) '@eslint-community/regexpp': 4.5.1 - '@eslint/eslintrc': 2.0.2 + '@eslint/eslintrc': 2.0.3 '@eslint/js': 8.39.0 '@humanwhocodes/config-array': 0.11.8 '@humanwhocodes/module-importer': 1.0.1 @@ -4474,8 +4560,57 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.0 - eslint-visitor-keys: 3.4.0 - espree: 9.5.1 + eslint-visitor-keys: 3.4.1 + espree: 9.5.2 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.20.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-sdsl: 4.4.0 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint@8.40.0: + resolution: {integrity: sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.40.0) + '@eslint-community/regexpp': 4.5.1 + '@eslint/eslintrc': 2.0.3 + '@eslint/js': 8.40.0 + '@humanwhocodes/config-array': 0.11.8 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4(supports-color@8.1.1) + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.0 + eslint-visitor-keys: 3.4.1 + espree: 9.5.2 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -4510,7 +4645,16 @@ packages: dependencies: acorn: 8.8.2 acorn-jsx: 5.3.2(acorn@8.8.2) - eslint-visitor-keys: 3.4.0 + eslint-visitor-keys: 3.4.1 + dev: true + + /espree@9.5.2: + resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.2 + acorn-jsx: 5.3.2(acorn@8.8.2) + eslint-visitor-keys: 3.4.1 dev: true /esprima@4.0.1: @@ -6181,8 +6325,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.8.2 - eslint-visitor-keys: 3.4.0 - espree: 9.5.1 + eslint-visitor-keys: 3.4.1 + espree: 9.5.2 semver: 7.5.0 dev: true diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index 245b93cd8..47d08fe0a 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -617,7 +617,6 @@ const getUtils = ( postName = ''; } else if (postType) { postType = ''; - // eslint-disable-next-line no-inline-comments } else /* istanbul ignore else -- `comment-parser` prevents empty blocks currently per https://github.com/syavorsky/comment-parser/issues/128 */ if (postTag) { postTag = ''; } From 7016f02b4266da69e93313d5f48ded3cccbf4bca Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 9 May 2023 06:29:45 -0700 Subject: [PATCH 073/273] chore: prevent eslint updating for now --- .ncurc.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.ncurc.js b/.ncurc.js index 72e20a476..9aa73b7be 100644 --- a/.ncurc.js +++ b/.ncurc.js @@ -8,6 +8,9 @@ module.exports = { 'escape-string-regexp', 'open-editor', + // Todo: When canonical includes latest Unicorn + 'eslint', + // Todo: Waiting on merge https://github.com/gajus/eslint-plugin-canonical/pull/22 'eslint-config-canonical', ], From 3bcee32ef6d8081f6bb3f811ef06a60ffdb1aa9c Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 7 May 2023 15:28:35 -0700 Subject: [PATCH 074/273] feat: `disableReporting` and `markVariablesAsUsed` options --- .README/rules/no-undefined-types.md | 11 ++++- docs/rules/no-undefined-types.md | 24 ++++++++-- src/rules/noUndefinedTypes.js | 14 +++++- test/rules/assertions/noUndefinedTypes.js | 55 ++++++++++++++++++++--- 4 files changed, 90 insertions(+), 14 deletions(-) diff --git a/.README/rules/no-undefined-types.md b/.README/rules/no-undefined-types.md index bc5935714..5f830ca8e 100644 --- a/.README/rules/no-undefined-types.md +++ b/.README/rules/no-undefined-types.md @@ -47,11 +47,18 @@ array's items will be considered as defined for the purposes of that tag. ## Options -An option object may have the following key: +An option object may have the following keys: - `definedTypes` - This array can be populated to indicate other types which are automatically considered as defined (in addition to globals, etc.). Defaults to an empty array. +- `markVariablesAsUsed` - Whether to mark variables as used for the purposes + of the `no-unused-vars` rule when they are not found to be undefined. + Defaults to `true`. May be set to `false` to enforce a practice of not + importing types unless used in code. +- `disableReporting` - Whether to disable reporting of errors. Defaults to + `false`. This may be set to `true` in order to take advantage of only + marking defined variables as used. ## Context and settings @@ -62,7 +69,7 @@ An option object may have the following key: |Aliases|`constructor`, `const`, `extends`, `var`, `arg`, `argument`, `prop`, `return`, `exception`, `yield`| |Closure-only|`package`, `private`, `protected`, `public`, `static`| |Recommended|true| -|Options|`definedTypes`| +|Options|`definedTypes`, `markVariablesAsUsed`, `disableReporting`| |Settings|`preferredTypes`, `mode`, `structuredTags`| diff --git a/docs/rules/no-undefined-types.md b/docs/rules/no-undefined-types.md index 05e774a73..f0321a0d9 100644 --- a/docs/rules/no-undefined-types.md +++ b/docs/rules/no-undefined-types.md @@ -55,11 +55,18 @@ array's items will be considered as defined for the purposes of that tag. ## Options -An option object may have the following key: +An option object may have the following keys: - `definedTypes` - This array can be populated to indicate other types which are automatically considered as defined (in addition to globals, etc.). Defaults to an empty array. +- `markVariablesAsUsed` - Whether to mark variables as used for the purposes + of the `no-unused-vars` rule when they are not found to be undefined. + Defaults to `true`. May be set to `false` to enforce a practice of not + importing types unless used in code. +- `disableReporting` - Whether to disable reporting of errors. Defaults to + `false`. This may be set to `true` in order to take advantage of only + marking defined variables as used. @@ -72,7 +79,7 @@ An option object may have the following key: |Aliases|`constructor`, `const`, `extends`, `var`, `arg`, `argument`, `prop`, `return`, `exception`, `yield`| |Closure-only|`package`, `private`, `protected`, `public`, `static`| |Recommended|true| -|Options|`definedTypes`| +|Options|`definedTypes`, `markVariablesAsUsed`, `disableReporting`| |Settings|`preferredTypes`, `mode`, `structuredTags`| @@ -354,7 +361,7 @@ import {MyType} from 'my-library'; * @param {object} foo * @param {Array} baz */ - function quux(foo, bar, baz) { +function quux(foo, bar, baz) { } @@ -727,5 +734,16 @@ class Foo { } } // Settings: {"jsdoc":{"mode":"typescript"}} + +import {MyType} from 'my-library'; + +/** + * @param {MyType} foo - Bar. + * @param {AnUndefinedType} bar + */ +function quux(foo, bar) { + +} +// "jsdoc/no-undefined-types": ["error"|"warn", {"disableReporting":true}] ```` diff --git a/src/rules/noUndefinedTypes.js b/src/rules/noUndefinedTypes.js index 5dcc64d62..873068443 100644 --- a/src/rules/noUndefinedTypes.js +++ b/src/rules/noUndefinedTypes.js @@ -64,6 +64,8 @@ export default iterateJsdoc(({ const { definedTypes = [], + disableReporting = false, + markVariablesAsUsed = true, } = context.options[0] || {}; let definedPreferredTypes = []; @@ -209,8 +211,10 @@ export default iterateJsdoc(({ if (!allDefinedTypes.has(value) && (!Array.isArray(structuredTypes) || !structuredTypes.includes(value)) ) { - report(`The type '${value}' is undefined.`, null, tag); - } else if (!extraTypes.includes(value)) { + if (!disableReporting) { + report(`The type '${value}' is undefined.`, null, tag); + } + } else if (markVariablesAsUsed && !extraTypes.includes(value)) { context.markVariableAsUsed(value); } } @@ -233,6 +237,12 @@ export default iterateJsdoc(({ }, type: 'array', }, + disableReporting: { + type: 'boolean', + }, + markVariablesAsUsed: { + type: 'boolean', + }, }, type: 'object', }, diff --git a/test/rules/assertions/noUndefinedTypes.js b/test/rules/assertions/noUndefinedTypes.js index d5ba59fc4..85a43aafc 100644 --- a/test/rules/assertions/noUndefinedTypes.js +++ b/test/rules/assertions/noUndefinedTypes.js @@ -65,9 +65,6 @@ export default { message: 'The type \'strnig\' is undefined.', }, ], - rules: { - 'no-undef': 'error', - }, }, { code: ` @@ -248,9 +245,6 @@ export default { message: 'The type \'strnig\' is undefined.', }, ], - rules: { - 'no-undef': 'error', - }, }, { code: ` @@ -585,7 +579,7 @@ export default { * @param {object} foo * @param {Array} baz */ - function quux(foo, bar, baz) { + function quux(foo, bar, baz) { } `, @@ -1283,5 +1277,52 @@ export default { }, }, }, + { + code: ` + // THIS SHOULD CAUSE ERRORS, BUT DUE TO ESLINT TESTER + // LIMITATIONS, WE CAN'T TEST THE \`no-unused-vars\` RULE; + // WE PUT IT HERE FOR COVERAGE + + import {MyInterface} from 'xyz'; + /** + * @type {MyInterface} + */ + function quux(foo) { + console.log(foo); + } + + quux(0); + `, + ignoreReadme: true, + options: [ + { + markVariablesAsUsed: false, + }, + ], + parserOptions: { + sourceType: 'module', + }, + }, + { + code: ` + import {MyType} from 'my-library'; + + /** + * @param {MyType} foo - Bar. + * @param {AnUndefinedType} bar + */ + function quux(foo, bar) { + + } + `, + options: [ + { + disableReporting: true, + }, + ], + parserOptions: { + sourceType: 'module', + }, + }, ], }; From c1781d2b4a8ace2647fa38ba57f14691fbfc88c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kr=C3=A6n=20Hansen?= Date: Wed, 10 May 2023 13:31:41 +0200 Subject: [PATCH 075/273] feat(`no-undefined-types`): check inline and namepath-referencing tags (#1062) --- docs/rules/no-undefined-types.md | 36 +++++-- src/getDefaultTagStructureForMode.js | 124 +++++++++++++--------- src/iterateJsdoc.js | 7 +- src/jsdocUtils.js | 48 ++++++++- src/rules/noUndefinedTypes.js | 49 +++++++-- test/rules/assertions/noUndefinedTypes.js | 49 ++++++++- 6 files changed, 236 insertions(+), 77 deletions(-) diff --git a/docs/rules/no-undefined-types.md b/docs/rules/no-undefined-types.md index f0321a0d9..28403a0b6 100644 --- a/docs/rules/no-undefined-types.md +++ b/docs/rules/no-undefined-types.md @@ -247,20 +247,12 @@ function quux () {} // Message: The type 'SomeType' is undefined. /** - * @namepathDefiner SomeType - */ -/** - * @type {SomeType} - */ -// Settings: {"jsdoc":{"structuredTags":{"namepathDefiner":{"name":"namepath-referencing"}}}} -// Message: The type 'SomeType' is undefined. - -/** - * @namepathDefiner SomeType + * @namepathReferencing SomeType */ /** * @type {SomeType} */ +// Settings: {"jsdoc":{"structuredTags":{"namepathReferencing":{"name":"namepath-referencing"}}}} // Message: The type 'SomeType' is undefined. /** @@ -745,5 +737,29 @@ function quux(foo, bar) { } // "jsdoc/no-undefined-types": ["error"|"warn", {"disableReporting":true}] + +class MyClass {} +class AnotherClass {} + +/** + * A description mentioning {@link MyClass} and {@link AnotherClass | another class} and a URL via [this link]{@link https://www.example.com}. + */ +function quux(foo) { + console.log(foo); +} + +quux(0); + +class MyClass {} +class AnotherClass {} + +/** + * @see A tag mentioning {@link MyClass} and {@link AnotherClass | another class} and a URL via [this link]{@link https://www.example.com}. + */ +function quux(foo) { + console.log(foo); +} + +quux(0); ```` diff --git a/src/getDefaultTagStructureForMode.js b/src/getDefaultTagStructureForMode.js index 1dc01860a..c3016c4c0 100644 --- a/src/getDefaultTagStructureForMode.js +++ b/src/getDefaultTagStructureForMode.js @@ -11,7 +11,7 @@ const getDefaultTagStructureForMode = (mode) => { const isJsdocTypescriptOrPermissive = isJsdocOrTypescript || isPermissive; // Properties: - // `nameContents` - 'namepath-referencing'|'namepath-defining'|'text'|false + // `namepathRole` - 'namepath-referencing'|'namepath-defining'|'namepath-or-url-referencing'|'text'|false // `typeAllowed` - boolean // `nameRequired` - boolean // `typeRequired` - boolean @@ -23,7 +23,7 @@ const getDefaultTagStructureForMode = (mode) => { // `property`/`prop` (no signature) // `modifies` (undocumented) - // None of the `nameContents: 'namepath-defining'` show as having curly + // None of the `namepathRole: 'namepath-defining'` show as having curly // brackets for their name/namepath // Among `namepath-defining` and `namepath-referencing`, these do not seem @@ -35,8 +35,6 @@ const getDefaultTagStructureForMode = (mode) => { // "namepath" (e.g., param can't define a namepath) // Once checking inline tags: - // Todo: Re: `typeOrNameRequired`, `@link` (or @linkcode/@linkplain) seems - // to require a namepath OR URL and might be checked as such. // Todo: Should support a `tutorialID` type (for `@tutorial` block and // inline) @@ -45,7 +43,7 @@ const getDefaultTagStructureForMode = (mode) => { 'alias', new Map([ // Signature seems to require a "namepath" (and no counter-examples) [ - 'nameContents', 'namepath-referencing', + 'namepathRole', 'namepath-referencing', ], // "namepath" @@ -58,7 +56,7 @@ const getDefaultTagStructureForMode = (mode) => { [ 'arg', new Map([ [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], // See `param` @@ -77,7 +75,7 @@ const getDefaultTagStructureForMode = (mode) => { [ 'argument', new Map([ [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], // See `param` @@ -97,7 +95,7 @@ const getDefaultTagStructureForMode = (mode) => { 'augments', new Map([ // Signature seems to require a "namepath" (and no counter-examples) [ - 'nameContents', 'namepath-referencing', + 'namepathRole', 'namepath-referencing', ], // Does not show curly brackets in either the signature or examples @@ -117,7 +115,7 @@ const getDefaultTagStructureForMode = (mode) => { // `borrows` has a different format, however, so needs special parsing; // seems to require both, and as "namepath"'s [ - 'nameContents', 'namepath-referencing', + 'namepathRole', 'namepath-referencing', ], // "namepath" @@ -133,7 +131,7 @@ const getDefaultTagStructureForMode = (mode) => { // counter-examples); TypeScript does not enforce but seems // problematic as not attached so presumably not useable without it [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], // "namepath" @@ -147,7 +145,7 @@ const getDefaultTagStructureForMode = (mode) => { 'class', new Map([ // Allows for "name"'s in signature, but indicated as optional [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], // Not in use, but should be this value if using to power `empty-tags` @@ -165,7 +163,7 @@ const getDefaultTagStructureForMode = (mode) => { 'const', new Map([ // Allows for "name"'s in signature, but indicated as optional [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], [ @@ -177,7 +175,7 @@ const getDefaultTagStructureForMode = (mode) => { 'constant', new Map([ // Allows for "name"'s in signature, but indicated as optional [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], [ @@ -189,7 +187,7 @@ const getDefaultTagStructureForMode = (mode) => { 'constructor', new Map([ // Allows for "name"'s in signature, but indicated as optional [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], [ @@ -202,7 +200,7 @@ const getDefaultTagStructureForMode = (mode) => { 'constructs', new Map([ // Allows for "name"'s in signature, but indicated as optional [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], [ @@ -227,7 +225,7 @@ const getDefaultTagStructureForMode = (mode) => { 'emits', new Map([ // Signature seems to require a "name" (of an event) and no counter-examples [ - 'nameContents', 'namepath-referencing', + 'namepathRole', 'namepath-referencing', ], [ @@ -260,7 +258,7 @@ const getDefaultTagStructureForMode = (mode) => { // different from other "name"'s (including as described // at https://jsdoc.app/about-namepaths.html ) [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], ]), ], @@ -286,7 +284,7 @@ const getDefaultTagStructureForMode = (mode) => { [ 'exports', new Map([ [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], [ @@ -303,7 +301,7 @@ const getDefaultTagStructureForMode = (mode) => { 'extends', new Map([ // Signature seems to require a "namepath" (and no counter-examples) [ - 'nameContents', 'namepath-referencing', + 'namepathRole', 'namepath-referencing', ], // Does not show curly brackets in either the signature or examples @@ -328,7 +326,7 @@ const getDefaultTagStructureForMode = (mode) => { // different from other "name"'s (including as described // at https://jsdoc.app/about-namepaths.html ) [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], // "name" (and a special syntax for the `external` name) @@ -347,7 +345,7 @@ const getDefaultTagStructureForMode = (mode) => { // Signature seems to require a "name" (of an event) and no // counter-examples [ - 'nameContents', 'namepath-referencing', + 'namepathRole', 'namepath-referencing', ], [ @@ -364,7 +362,7 @@ const getDefaultTagStructureForMode = (mode) => { 'function', new Map([ // Allows for "name"'s in signature, but indicated as optional [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], [ @@ -380,7 +378,7 @@ const getDefaultTagStructureForMode = (mode) => { 'func', new Map([ // Allows for "name"'s in signature, but indicated as optional [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], ]), ], @@ -391,7 +389,7 @@ const getDefaultTagStructureForMode = (mode) => { // different from other "name"'s (including as described // at https://jsdoc.app/about-namepaths.html ) [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], // See `external` @@ -409,7 +407,7 @@ const getDefaultTagStructureForMode = (mode) => { 'interface', new Map([ // Allows for "name" in signature, but indicates as optional [ - 'nameContents', + 'namepathRole', isJsdocTypescriptOrPermissive ? 'namepath-defining' : false, ], @@ -428,7 +426,7 @@ const getDefaultTagStructureForMode = (mode) => { 'internal', new Map([ // https://www.typescriptlang.org/tsconfig/#stripInternal [ - 'nameContents', false, + 'namepathRole', false, ], // Not in use, but should be this value if using to power `empty-tags` [ @@ -451,7 +449,7 @@ const getDefaultTagStructureForMode = (mode) => { 'lends', new Map([ // Signature seems to require a "namepath" (and no counter-examples) [ - 'nameContents', 'namepath-referencing', + 'namepathRole', 'namepath-referencing', ], // "namepath" @@ -461,12 +459,42 @@ const getDefaultTagStructureForMode = (mode) => { ]), ], + [ + 'link', new Map([ + // Signature seems to require a namepath OR URL and might be checked as such. + [ + 'namepathRole', 'namepath-or-url-referencing', + ], + + ]), + ], + + [ + 'linkcode', new Map([ + // Synonym for "link" + // Signature seems to require a namepath OR URL and might be checked as such. + [ + 'namepathRole', 'namepath-or-url-referencing', + ], + ]), + ], + + [ + 'linkplain', new Map([ + // Synonym for "link" + // Signature seems to require a namepath OR URL and might be checked as such. + [ + 'namepathRole', 'namepath-or-url-referencing', + ], + ]), + ], + [ 'listens', new Map([ // Signature seems to require a "name" (of an event) and no // counter-examples [ - 'nameContents', 'namepath-referencing', + 'namepathRole', 'namepath-referencing', ], [ @@ -483,7 +511,7 @@ const getDefaultTagStructureForMode = (mode) => { 'member', new Map([ // Allows for "name"'s in signature, but indicated as optional [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], // Has example showing curly brackets but not in doc signature @@ -498,7 +526,7 @@ const getDefaultTagStructureForMode = (mode) => { // Signature seems to require a "namepath" (and no counter-examples), // though it allows an incomplete namepath ending with connecting symbol [ - 'nameContents', 'namepath-referencing', + 'namepathRole', 'namepath-referencing', ], // "namepath" @@ -512,7 +540,7 @@ const getDefaultTagStructureForMode = (mode) => { // Signature seems to require a "namepath" (and no counter-examples), // though it allows an incomplete namepath ending with connecting symbol [ - 'nameContents', 'namepath-referencing', + 'namepathRole', 'namepath-referencing', ], // "namepath" @@ -526,7 +554,7 @@ const getDefaultTagStructureForMode = (mode) => { 'method', new Map([ // Allows for "name"'s in signature, but indicated as optional [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], ]), ], @@ -535,7 +563,7 @@ const getDefaultTagStructureForMode = (mode) => { // Signature seems to require a "OtherObjectPath" with no // counter-examples [ - 'nameContents', 'namepath-referencing', + 'namepathRole', 'namepath-referencing', ], // "OtherObjectPath" @@ -549,7 +577,7 @@ const getDefaultTagStructureForMode = (mode) => { 'mixin', new Map([ // Allows for "name"'s in signature, but indicated as optional [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], [ @@ -579,7 +607,7 @@ const getDefaultTagStructureForMode = (mode) => { // this block impacts `no-undefined-types` and `valid-types` (search for // "isNamepathDefiningTag|tagMightHaveNamepath|tagMightHaveEitherTypeOrNamePosition") [ - 'nameContents', isJsdoc ? 'namepath-defining' : 'text', + 'namepathRole', isJsdoc ? 'namepath-defining' : 'text', ], // Shows the signature with curly brackets but not in the example @@ -594,7 +622,7 @@ const getDefaultTagStructureForMode = (mode) => { // Seems to require a "namepath" in the signature (with no // counter-examples) [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], // "namepath" @@ -613,7 +641,7 @@ const getDefaultTagStructureForMode = (mode) => { 'namespace', new Map([ // Allows for "name"'s in signature, but indicated as optional [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], // Shows the signature with curly brackets but not in the example @@ -635,7 +663,7 @@ const getDefaultTagStructureForMode = (mode) => { [ 'param', new Map([ [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], // Though no signature provided requiring, per @@ -667,7 +695,7 @@ const getDefaultTagStructureForMode = (mode) => { [ 'prop', new Map([ [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], // See `property` @@ -686,7 +714,7 @@ const getDefaultTagStructureForMode = (mode) => { [ 'property', new Map([ [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], // No docs indicate required, but since parallel to `param`, we treat as @@ -726,7 +754,7 @@ const getDefaultTagStructureForMode = (mode) => { 'requires', new Map([ // [ - 'nameContents', 'namepath-referencing', + 'namepathRole', 'namepath-referencing', ], [ @@ -770,7 +798,7 @@ const getDefaultTagStructureForMode = (mode) => { // Signature allows for "namepath" or text, so user must configure to // 'namepath-referencing' to enforce checks [ - 'nameContents', 'text', + 'namepathRole', 'text', ], ]), ], @@ -787,7 +815,7 @@ const getDefaultTagStructureForMode = (mode) => { [ 'suppress', new Map([ [ - 'nameContents', !isClosure, + 'namepathRole', !isClosure, ], [ 'typeRequired', isClosure, @@ -798,10 +826,10 @@ const getDefaultTagStructureForMode = (mode) => { [ 'template', new Map([ [ - 'nameContents', isJsdoc ? 'text' : 'namepath-referencing', + 'namepathRole', isJsdoc ? 'text' : 'namepath-referencing', ], - // Though defines `nameContents: 'namepath-defining'` in a sense, it is + // Though defines `namepathRole: 'namepath-defining'` in a sense, it is // not parseable in the same way for template (e.g., allowing commas), // so not adding [ @@ -815,7 +843,7 @@ const getDefaultTagStructureForMode = (mode) => { // Signature seems to require a "namepath" (and no counter-examples) // Not used with namepath in Closure/TypeScript, however [ - 'nameContents', isJsdoc ? 'namepath-referencing' : false, + 'namepathRole', isJsdoc ? 'namepath-referencing' : false, ], [ @@ -866,7 +894,7 @@ const getDefaultTagStructureForMode = (mode) => { // Seems to require a "namepath" in the signature (with no // counter-examples) [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], // TypeScript may allow it to be dropped if followed by @property or @member; @@ -896,7 +924,7 @@ const getDefaultTagStructureForMode = (mode) => { 'var', new Map([ // Allows for "name"'s in signature, but indicated as optional [ - 'nameContents', 'namepath-defining', + 'namepathRole', 'namepath-defining', ], // Has example showing curly brackets but not in doc signature diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index 47d08fe0a..19a5d7a03 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -815,6 +815,8 @@ const getUtils = ( for (const method of [ 'isNamepathDefiningTag', + 'isNamepathReferencingTag', + 'isNamepathOrUrlReferencingTag', 'tagMightHaveNamepath', ]) { utils[method] = (tagName) => { @@ -868,8 +870,9 @@ const getUtils = ( }); }; - utils.filterTags = (filter) => { - return jsdocUtils.filterTags(jsdoc.tags, filter); + utils.filterTags = (filter, includeInlineTags = false) => { + const tags = jsdocUtils.getAllTags(jsdoc, includeInlineTags); + return jsdocUtils.filterTags(tags, filter); }; utils.getTagsByType = (tags) => { diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index c6715dc35..8d3d4e5f3 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -452,6 +452,22 @@ const hasTag = (jsdoc, targetTagName) => { }); }; +/** + * Get all tags, inline tags and inline tags in tags + * + * @param {object} jsdoc + * @returns {Array} + */ +const getAllTags = (jsdoc, includeInlineTags) => { + return includeInlineTags ? [ + ...jsdoc.tags, + ...jsdoc.inlineTags, + ...jsdoc.tags.flatMap((tag) => { + return tag.inlineTags; + }), + ] : jsdoc.tags; +}; + /** * @param {object} jsdoc * @param {Array} targetTagNames @@ -544,7 +560,7 @@ const overrideTagStructure = (structuredTags, tagMap = tagStructure) => { ] of Object.entries(structuredTags)) { const tagStruct = ensureMap(tagMap, tag); - tagStruct.set('nameContents', name); + tagStruct.set('namepathRole', name); tagStruct.set('typeAllowed', type); const requiredName = required.includes('name'); @@ -599,7 +615,27 @@ const getTagStructureForMode = (mode, structuredTags) => { const isNamepathDefiningTag = (tag, tagMap = tagStructure) => { const tagStruct = ensureMap(tagMap, tag); - return tagStruct.get('nameContents') === 'namepath-defining'; + return tagStruct.get('namepathRole') === 'namepath-defining'; +}; + +/** + * @param tag + * @param {Map} tagMap + * @returns {boolean} + */ +const isNamepathReferencingTag = (tag, tagMap = tagStructure) => { + const tagStruct = ensureMap(tagMap, tag); + return tagStruct.get('namepathRole') === 'namepath-referencing'; +}; + +/** + * @param tag + * @param {Map} tagMap + * @returns {boolean} + */ +const isNamepathOrUrlReferencingTag = (tag, tagMap = tagStructure) => { + const tagStruct = ensureMap(tagMap, tag); + return tagStruct.get('namepathRole') === 'namepath-or-url-referencing'; }; /** @@ -642,7 +678,7 @@ const namepathTypes = new Set([ const tagMightHaveNamePosition = (tag, tagMap = tagStructure) => { const tagStruct = ensureMap(tagMap, tag); - const ret = tagStruct.get('nameContents'); + const ret = tagStruct.get('namepathRole'); return ret === undefined ? true : Boolean(ret); }; @@ -655,7 +691,7 @@ const tagMightHaveNamePosition = (tag, tagMap = tagStructure) => { const tagMightHaveNamepath = (tag, tagMap = tagStructure) => { const tagStruct = ensureMap(tagMap, tag); - return namepathTypes.has(tagStruct.get('nameContents')); + return namepathTypes.has(tagStruct.get('namepathRole')); }; /** @@ -1232,6 +1268,7 @@ export default { exemptSpeciaMethods, filterTags, flattenRoots, + getAllTags, getContextObject, getFunctionParameterNames, getIndent, @@ -1250,6 +1287,8 @@ export default { isConstructor, isGetter, isNamepathDefiningTag, + isNamepathOrUrlReferencingTag, + isNamepathReferencingTag, isSetter, isValidTag, mayBeUndefinedTypeTag, @@ -1257,6 +1296,7 @@ export default { parseClosureTemplateTag, pathDoesNotBeginWith, setTagStructure, + tagMightHaveEitherTypeOrNamePosition, tagMightHaveNamepath, tagMightHaveNamePosition, tagMightHaveTypePosition, diff --git a/src/rules/noUndefinedTypes.js b/src/rules/noUndefinedTypes.js index 873068443..61c45886f 100644 --- a/src/rules/noUndefinedTypes.js +++ b/src/rules/noUndefinedTypes.js @@ -186,22 +186,51 @@ export default iterateJsdoc(({ ], )); - const jsdocTagsWithPossibleType = utils.filterTags(({ + const tagToParsedType = (propertyName) => { + return (tag) => { + try { + const potentialType = tag[propertyName]; + return { + parsedType: mode === 'permissive' ? tryParseType(potentialType) : parseType(potentialType, mode), + tag, + }; + } catch { + return undefined; + } + }; + }; + + const typeTags = utils.filterTags(({ tag, }) => { return utils.tagMightHaveTypePosition(tag) && (tag !== 'suppress' || settings.mode !== 'closure'); - }); + }).map(tagToParsedType('type')); - for (const tag of jsdocTagsWithPossibleType) { - let parsedType; + const namepathReferencingTags = utils.filterTags(({ + tag, + }) => { + return utils.isNamepathReferencingTag(tag); + }).map(tagToParsedType('name')); - try { - parsedType = mode === 'permissive' ? tryParseType(tag.type) : parseType(tag.type, mode); - } catch { - // On syntax error, will be handled by valid-types. - continue; - } + const namepathOrUrlReferencingTags = utils.filterTags(({ + tag, + }) => { + return utils.isNamepathOrUrlReferencingTag(tag); + }, true).map(tagToParsedType('namepathOrURL')); + const tagsWithTypes = [ + ...typeTags, + ...namepathReferencingTags, + ...namepathOrUrlReferencingTags, + ].filter((result) => { + // Remove types which failed to parse + return result; + }); + + for (const { + tag, + parsedType, + } of tagsWithTypes) { traverse(parsedType, ({ type, value, diff --git a/test/rules/assertions/noUndefinedTypes.js b/test/rules/assertions/noUndefinedTypes.js index 85a43aafc..6482d5076 100644 --- a/test/rules/assertions/noUndefinedTypes.js +++ b/test/rules/assertions/noUndefinedTypes.js @@ -380,13 +380,17 @@ export default { { code: ` /** - * @namepathDefiner SomeType + * @namepathReferencing SomeType */ /** * @type {SomeType} */ `, errors: [ + { + line: 3, + message: 'The type \'SomeType\' is undefined.', + }, { line: 6, message: 'The type \'SomeType\' is undefined.', @@ -395,7 +399,7 @@ export default { settings: { jsdoc: { structuredTags: { - namepathDefiner: { + namepathReferencing: { name: 'namepath-referencing', }, }, @@ -403,9 +407,11 @@ export default { }, }, { + // An unknown tag without any namepath contents declared via settings, + // defaults to not having an impact on the type. code: ` /** - * @namepathDefiner SomeType + * @namepathMentioning SomeType */ /** * @type {SomeType} @@ -417,6 +423,7 @@ export default { message: 'The type \'SomeType\' is undefined.', }, ], + ignoreReadme: true, }, { code: ` @@ -1324,5 +1331,41 @@ export default { sourceType: 'module', }, }, + { + code: ` + class MyClass {} + class AnotherClass {} + + /** + * A description mentioning {@link MyClass} and {@link AnotherClass | another class} and a URL via [this link]{@link https://www.example.com}. + */ + function quux(foo) { + console.log(foo); + } + + quux(0); + `, + rules: { + 'no-unused-vars': 'error', + }, + }, + { + code: ` + class MyClass {} + class AnotherClass {} + + /** + * @see A tag mentioning {@link MyClass} and {@link AnotherClass | another class} and a URL via [this link]{@link https://www.example.com}. + */ + function quux(foo) { + console.log(foo); + } + + quux(0); + `, + rules: { + 'no-unused-vars': 'error', + }, + }, ], }; From e6b6a85a92938d4ea3f971382c669da4d952d554 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 10 May 2023 21:53:17 +0800 Subject: [PATCH 076/273] fix(`no-undefined-types`): treat `@alias` as namepath-defining; fixes #1070 (#1071) --- src/getDefaultTagStructureForMode.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/getDefaultTagStructureForMode.js b/src/getDefaultTagStructureForMode.js index c3016c4c0..9363128fc 100644 --- a/src/getDefaultTagStructureForMode.js +++ b/src/getDefaultTagStructureForMode.js @@ -43,7 +43,7 @@ const getDefaultTagStructureForMode = (mode) => { 'alias', new Map([ // Signature seems to require a "namepath" (and no counter-examples) [ - 'namepathRole', 'namepath-referencing', + 'namepathRole', 'namepath-defining', ], // "namepath" From fc56924d6831fbb80c2d9b5115683f3fbde2023f Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 10 May 2023 23:50:19 +0800 Subject: [PATCH 077/273] docs: indicate available `enableFixer` option; fixes #1072 (#1073) --- .README/README.md | 5 ++ README.md | 5 ++ package.json | 2 +- pnpm-lock.yaml | 124 +++------------------------------------------- 4 files changed, 17 insertions(+), 119 deletions(-) diff --git a/.README/README.md b/.README/README.md index 5a241d1e5..92c363e24 100644 --- a/.README/README.md +++ b/.README/README.md @@ -187,6 +187,11 @@ See [Advanced](./docs/advanced.md#readme). Problems reported by rules which have a wrench :wrench: below can be fixed automatically by running ESLint on the command line with `--fix` option. +Note that a number of fixable rules have an `enableFixer` option which can +be set to `false` to disable the fixer (or in the case of `check-param-names`, +`check-property-names`, and `no-blank-blocks`, set to `true` to enable a +non-default-recommended fixer). + |recommended|fixable|rule|description| |-|-|-|-| |:heavy_check_mark:|| [check-access](./docs/rules/check-access.md#readme) | Enforces valid `@access` tags| diff --git a/README.md b/README.md index 19ed07970..e30e8a1b2 100644 --- a/README.md +++ b/README.md @@ -208,6 +208,11 @@ See [Advanced](./docs/advanced.md#readme). Problems reported by rules which have a wrench :wrench: below can be fixed automatically by running ESLint on the command line with `--fix` option. +Note that a number of fixable rules have an `enableFixer` option which can +be set to `false` to disable the fixer (or in the case of `check-param-names`, +`check-property-names`, and `no-blank-blocks`, set to `true` to enable a +non-default-recommended fixer). + |recommended|fixable|rule|description| |-|-|-|-| |:heavy_check_mark:|| [check-access](./docs/rules/check-access.md#readme) | Enforces valid `@access` tags| diff --git a/package.json b/package.json index 228a86e80..9d4b10fbc 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "chai": "^4.3.7", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "^8.39.0", + "eslint": "8.39.0", "eslint-config-canonical": "~33.0.1", "gitdown": "^3.1.5", "glob": "^10.2.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 031a046ac..49e2d9fd2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -94,7 +94,7 @@ devDependencies: specifier: ^5.0.1 version: 5.0.1 eslint: - specifier: ^8.39.0 + specifier: 8.39.0 version: 8.39.0 eslint-config-canonical: specifier: ~33.0.1 @@ -224,20 +224,6 @@ packages: semver: 6.3.0 dev: true - /@babel/eslint-parser@7.21.8(@babel/core@7.21.8)(eslint@8.40.0): - resolution: {integrity: sha512-HLhI+2q+BP3sf78mFUZNCGc10KEmoUqtUT1OCdMZsN+qr4qFeLUod62/zAnF3jNQstwyasDkZnVXwfK2Bml7MQ==} - engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} - peerDependencies: - '@babel/core': '>=7.11.0' - eslint: ^7.5.0 || ^8.0.0 - dependencies: - '@babel/core': 7.21.8 - '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.40.0 - eslint-visitor-keys: 2.1.0 - semver: 6.3.0 - dev: true - /@babel/eslint-plugin@7.19.1(@babel/eslint-parser@7.21.8)(eslint@8.39.0): resolution: {integrity: sha512-ElGPkQPapKMa3zVqXHkZYzuL7I5LbRw9UWBUArgWsdWDDb9XcACqOpBib5tRPA9XvbVZYrFUkoQPbiJ4BFvu4w==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} @@ -1452,10 +1438,10 @@ packages: engines: {node: '>=12.0.0'} dependencies: '@babel/core': 7.21.8 - '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.40.0) + '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.39.0) '@es-joy/jsdoccomment': 0.38.0 - '@typescript-eslint/parser': 5.59.5(eslint@8.40.0)(typescript@5.0.4) - eslint: 8.40.0 + '@typescript-eslint/parser': 5.59.5(eslint@8.39.0)(typescript@5.0.4) + eslint: 8.39.0 esquery: 1.5.0 typescript: 5.0.4 transitivePeerDependencies: @@ -1489,16 +1475,6 @@ packages: eslint-visitor-keys: 3.4.1 dev: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.40.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.40.0 - eslint-visitor-keys: 3.4.1 - dev: true - /@eslint-community/regexpp@4.5.1: resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -1526,11 +1502,6 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@eslint/js@8.40.0: - resolution: {integrity: sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - /@gar/promisify@1.1.3: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true @@ -2348,26 +2319,6 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@5.59.5(eslint@8.40.0)(typescript@5.0.4): - resolution: {integrity: sha512-NJXQC4MRnF9N9yWqQE2/KLRSOLvrrlZb48NGVfBa+RuPMN6B7ZcK5jZOvhuygv4D64fRKnZI4L4p8+M+rfeQuw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.59.5 - '@typescript-eslint/types': 5.59.5 - '@typescript-eslint/typescript-estree': 5.59.5(typescript@5.0.4) - debug: 4.3.4(supports-color@8.1.1) - eslint: 8.40.0 - typescript: 5.0.4 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/scope-manager@5.59.2: resolution: {integrity: sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4141,7 +4092,7 @@ packages: enhance-visitors: 1.0.0 eslint: 8.39.0 eslint-utils: 3.0.0(eslint@8.39.0) - espree: 9.5.1 + espree: 9.5.2 espurify: 2.1.1 import-modules: 2.1.0 micro-spelling-correcter: 1.1.1 @@ -4531,11 +4482,6 @@ packages: engines: {node: '>=10'} dev: true - /eslint-visitor-keys@3.4.0: - resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - /eslint-visitor-keys@3.4.1: resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4590,64 +4536,6 @@ packages: - supports-color dev: true - /eslint@8.40.0: - resolution: {integrity: sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.40.0) - '@eslint-community/regexpp': 4.5.1 - '@eslint/eslintrc': 2.0.3 - '@eslint/js': 8.40.0 - '@humanwhocodes/config-array': 0.11.8 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@8.1.1) - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.0 - eslint-visitor-keys: 3.4.1 - espree: 9.5.2 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.20.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.4 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-sdsl: 4.4.0 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.1 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - dev: true - - /espree@9.5.1: - resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2(acorn@8.8.2) - eslint-visitor-keys: 3.4.1 - dev: true - /espree@9.5.2: resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -9545,7 +9433,7 @@ packages: resolution: {integrity: sha512-nJeyLA3YHAzhBTZbRAbu3W6xrSCucyxExmA+ZDtEdUFpGllxAZpto2Zxo2IG0r0eiuEiBM4e+wiAdxTziTq94g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - eslint-visitor-keys: 3.4.0 + eslint-visitor-keys: 3.4.1 lodash: 4.17.21 yaml: 1.10.2 dev: true From 52119a59e70d2d255e0f475f0fcd0bf780d0acd2 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 11 May 2023 00:35:40 +0800 Subject: [PATCH 078/273] fix(`require-hyphen-before-param-description`): more targeted replacement for hyphen removal; fixes #1074 (#1075) --- ...require-hyphen-before-param-description.md | 23 ++++++ .../requireHyphenBeforeParamDescription.js | 37 ++++++--- .../requireHyphenBeforeParamDescription.js | 77 ++++++++++++++++++- 3 files changed, 127 insertions(+), 10 deletions(-) diff --git a/docs/rules/require-hyphen-before-param-description.md b/docs/rules/require-hyphen-before-param-description.md index ff4a8ede9..288eea5a3 100644 --- a/docs/rules/require-hyphen-before-param-description.md +++ b/docs/rules/require-hyphen-before-param-description.md @@ -170,6 +170,29 @@ function quux () { } // "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"returns":"never"}}] // Message: There must be a hyphen before @param description. + +/** + * Split a unit to metric prefix and basic unit. + * + * @param {string} unit - Unit to split. + * @param {string} [basicUnit] - Basic unit regardless of the metric prefix. + * If omitted, basic unit will be inferred by trying to remove the metric + * prefix in `unit`. + * + * @returns {{ prefix: string, basicUnit: string }} - Split result. + * If `unit` does not have a metric prefix, `''` is returned for `prefix`. + * If `unit` does not have a basic unit, `''` is returned for `basicUnit`. + */ +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"*":"never","property":"always"}}] +// Message: There must be no hyphen before @returns description. + +/** + * @returns {{ + * prefix: string, basicUnit: string + * }} - Split result. + */ +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"*":"never","property":"always"}}] +// Message: There must be no hyphen before @returns description. ```` diff --git a/src/rules/requireHyphenBeforeParamDescription.js b/src/rules/requireHyphenBeforeParamDescription.js index 811fb661e..2241f59b6 100644 --- a/src/rules/requireHyphenBeforeParamDescription.js +++ b/src/rules/requireHyphenBeforeParamDescription.js @@ -42,17 +42,36 @@ export default iterateJsdoc(({ }, jsdocTag); } } else if (startsWithHyphen) { - report(`There must be no hyphen before @${targetTagName} description.`, (fixer) => { - const [ - unwantedPart, - ] = /^\s*-\s*/u.exec(desc); + let lines = 0; + for (const { + tokens, + } of jsdocTag.source) { + if (tokens.description) { + break; + } - const replacement = sourceCode - .getText(jsdocNode) - .replace(desc, desc.slice(unwantedPart.length)); + lines++; + } - return fixer.replaceText(jsdocNode, replacement); - }, jsdocTag); + utils.reportJSDoc( + `There must be no hyphen before @${targetTagName} description.`, + { + line: jsdocTag.source[0].number + lines, + }, + () => { + for (const { + tokens, + } of jsdocTag.source) { + if (tokens.description) { + tokens.description = tokens.description.replace( + /^\s*-\s*/u, '', + ); + break; + } + } + }, + true, + ); } }; diff --git a/test/rules/assertions/requireHyphenBeforeParamDescription.js b/test/rules/assertions/requireHyphenBeforeParamDescription.js index 16fed038c..34e527d6b 100644 --- a/test/rules/assertions/requireHyphenBeforeParamDescription.js +++ b/test/rules/assertions/requireHyphenBeforeParamDescription.js @@ -371,7 +371,82 @@ export default { } `, }, - + { + code: ` + /** + * Split a unit to metric prefix and basic unit. + * + * @param {string} unit - Unit to split. + * @param {string} [basicUnit] - Basic unit regardless of the metric prefix. + * If omitted, basic unit will be inferred by trying to remove the metric + * prefix in \`unit\`. + * + * @returns {{ prefix: string, basicUnit: string }} - Split result. + * If \`unit\` does not have a metric prefix, \`''\` is returned for \`prefix\`. + * If \`unit\` does not have a basic unit, \`''\` is returned for \`basicUnit\`. + */ + `, + errors: [ + { + line: 10, + message: 'There must be no hyphen before @returns description.', + }, + ], + options: [ + 'always', + { + tags: { + '*': 'never', + property: 'always', + }, + }, + ], + output: ` + /** + * Split a unit to metric prefix and basic unit. + * + * @param {string} unit - Unit to split. + * @param {string} [basicUnit] - Basic unit regardless of the metric prefix. + * If omitted, basic unit will be inferred by trying to remove the metric + * prefix in \`unit\`. + * + * @returns {{ prefix: string, basicUnit: string }} Split result. + * If \`unit\` does not have a metric prefix, \`''\` is returned for \`prefix\`. + * If \`unit\` does not have a basic unit, \`''\` is returned for \`basicUnit\`. + */ + `, + }, + { + code: ` + /** + * @returns {{ + * prefix: string, basicUnit: string + * }} - Split result. + */ + `, + errors: [ + { + line: 5, + message: 'There must be no hyphen before @returns description.', + }, + ], + options: [ + 'always', + { + tags: { + '*': 'never', + property: 'always', + }, + }, + ], + output: ` + /** + * @returns {{ + * prefix: string, basicUnit: string + * }} Split result. + */ + `, + }, ], valid: [ { From 4e79f507225cccf4e6231d4ec7bd7e038f800485 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 11 May 2023 16:45:00 +0800 Subject: [PATCH 079/273] chore: bump jsdoccomment and add devDeps. for ts (#1078) Also: - docs: some ts work --- .eslintrc.json | 1 + package.json | 13 +- pnpm-lock.yaml | 119 ++++++++--- src/getDefaultTagStructureForMode.js | 271 +++++++++++++------------ src/index.js | 13 +- src/iterateJsdoc.js | 5 +- src/jsdocUtils.js | 30 ++- src/rules/requireJsdoc.js | 1 + src/tagNames.js | 23 +++ src/utils/hasReturnValue.js | 20 +- test/iterateJsdoc.js | 4 + test/jsdocUtils.js | 2 +- test/rules/assertions/checkTagNames.js | 18 +- test/rules/index.js | 38 +++- tsconfig.json | 8 +- 15 files changed, 378 insertions(+), 188 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index a9adc04bc..bdf5c130e 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -37,6 +37,7 @@ "unicorn/no-unsafe-regex": 0, "unicorn/prefer-array-some": 0, "unicorn/prevent-abbreviations": 0, + "unicorn/import-index": 0, "linebreak-style": 0, "no-inline-comments": 0, "no-extra-parens": 0 diff --git a/package.json b/package.json index 9d4b10fbc..45158e0d1 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "url": "http://gajus.com" }, "dependencies": { - "@es-joy/jsdoccomment": "~0.38.0", + "@es-joy/jsdoccomment": "~0.39.1", "are-docs-informative": "^0.0.2", "comment-parser": "1.3.1", "debug": "^4.3.4", @@ -29,8 +29,15 @@ "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/github": "^8.0.7", "@semantic-release/npm": "^10.0.3", + "@types/chai": "^4.3.5", + "@types/debug": "^4.1.7", "@types/eslint": "^8.37.0", - "@types/node": "^20.1.1", + "@types/estree": "^1.0.1", + "@types/lodash.defaultsdeep": "^4.6.7", + "@types/mocha": "^10.0.1", + "@types/node": "^20.1.2", + "@types/semver": "^7.5.0", + "@types/spdx-expression-parse": "^3.0.2", "@typescript-eslint/parser": "^5.59.5", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", @@ -41,7 +48,7 @@ "eslint": "8.39.0", "eslint-config-canonical": "~33.0.1", "gitdown": "^3.1.5", - "glob": "^10.2.2", + "glob": "^10.2.3", "husky": "^8.0.3", "jsdoc-type-pratt-parser": "^4.0.0", "lint-staged": "^13.2.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 49e2d9fd2..f410e6a47 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,8 +2,8 @@ lockfileVersion: '6.0' dependencies: '@es-joy/jsdoccomment': - specifier: ~0.38.0 - version: 0.38.0 + specifier: ~0.39.1 + version: 0.39.1 are-docs-informative: specifier: ^0.0.2 version: 0.0.2 @@ -66,12 +66,33 @@ devDependencies: '@semantic-release/npm': specifier: ^10.0.3 version: 10.0.3(semantic-release@21.0.2) + '@types/chai': + specifier: ^4.3.5 + version: 4.3.5 + '@types/debug': + specifier: ^4.1.7 + version: 4.1.7 '@types/eslint': specifier: ^8.37.0 version: 8.37.0 + '@types/estree': + specifier: ^1.0.1 + version: 1.0.1 + '@types/lodash.defaultsdeep': + specifier: ^4.6.7 + version: 4.6.7 + '@types/mocha': + specifier: ^10.0.1 + version: 10.0.1 '@types/node': - specifier: ^20.1.1 - version: 20.1.1 + specifier: ^20.1.2 + version: 20.1.2 + '@types/semver': + specifier: ^7.5.0 + version: 7.5.0 + '@types/spdx-expression-parse': + specifier: ^3.0.2 + version: 3.0.2 '@typescript-eslint/parser': specifier: ^5.59.5 version: 5.59.5(eslint@8.39.0)(typescript@5.0.4) @@ -98,13 +119,13 @@ devDependencies: version: 8.39.0 eslint-config-canonical: specifier: ~33.0.1 - version: 33.0.1(@babel/core@7.21.8)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.1.1)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4) + version: 33.0.1(@babel/core@7.21.8)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.1.2)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4) gitdown: specifier: ^3.1.5 version: 3.1.5 glob: - specifier: ^10.2.2 - version: 10.2.2 + specifier: ^10.2.3 + version: 10.2.3 husky: specifier: ^8.0.3 version: 8.0.3 @@ -1464,6 +1485,16 @@ packages: comment-parser: 1.3.1 esquery: 1.5.0 jsdoc-type-pratt-parser: 4.0.0 + dev: true + + /@es-joy/jsdoccomment@0.39.1: + resolution: {integrity: sha512-jTgq0ZTLIvVGdgm1KfzX/kd1XgrcbnVJ0zAuk7vTrzIo/byntdtG6fj9KwV6wuN1+jIONMbsiFnx9RYa6N5nLQ==} + engines: {node: '>=16'} + dependencies: + comment-parser: 1.3.1 + esquery: 1.5.0 + jsdoc-type-pratt-parser: 4.0.0 + dev: false /@eslint-community/eslint-utils@4.4.0(eslint@8.39.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} @@ -1506,7 +1537,7 @@ packages: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true - /@graphql-eslint/eslint-plugin@3.18.0(@babel/core@7.21.8)(@types/node@20.1.1)(graphql@16.6.0): + /@graphql-eslint/eslint-plugin@3.18.0(@babel/core@7.21.8)(@types/node@20.1.2)(graphql@16.6.0): resolution: {integrity: sha512-riEEfRycc0+pWxcEWqHi8woRxzg1xZqAfh9DRACJUR7bTN8dmc1N04i7+pvW4sevClUFYC2wuL1Vtr+DwzXLUg==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -1519,7 +1550,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.2.12 graphql: 16.6.0 - graphql-config: 4.5.0(@types/node@20.1.1)(graphql@16.6.0) + graphql-config: 4.5.0(@types/node@20.1.2)(graphql@16.6.0) graphql-depth-limit: 1.1.0(graphql@16.6.0) lodash.lowercase: 4.3.0 tslib: 2.5.0 @@ -1594,7 +1625,7 @@ packages: - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.9(@types/node@20.1.1)(graphql@16.6.0): + /@graphql-tools/executor-http@0.1.9(@types/node@20.1.2)(graphql@16.6.0): resolution: {integrity: sha512-tNzMt5qc1ptlHKfpSv9wVBVKCZ7gks6Yb/JcYJluxZIT4qRV+TtOFjpptfBU63usgrGVOVcGjzWc/mt7KhmmpQ==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1605,7 +1636,7 @@ packages: dset: 3.1.2 extract-files: 11.0.0 graphql: 16.6.0 - meros: 1.2.1(@types/node@20.1.1) + meros: 1.2.1(@types/node@20.1.2) tslib: 2.5.0 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -1728,7 +1759,7 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.1.1)(graphql@16.6.0): + /@graphql-tools/url-loader@7.17.18(@types/node@20.1.2)(graphql@16.6.0): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1736,7 +1767,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 9.0.35(graphql@16.6.0) '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.6.0) - '@graphql-tools/executor-http': 0.1.9(@types/node@20.1.1)(graphql@16.6.0) + '@graphql-tools/executor-http': 0.1.9(@types/node@20.1.2)(graphql@16.6.0) '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.6.0) '@graphql-tools/utils': 9.2.1(graphql@16.6.0) '@graphql-tools/wrap': 9.4.2(graphql@16.6.0) @@ -2213,6 +2244,16 @@ packages: engines: {node: '>= 10'} dev: true + /@types/chai@4.3.5: + resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} + dev: true + + /@types/debug@4.1.7: + resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==} + dependencies: + '@types/ms': 0.7.31 + dev: true + /@types/eslint@8.37.0: resolution: {integrity: sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==} dependencies: @@ -2232,12 +2273,30 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true + /@types/lodash.defaultsdeep@4.6.7: + resolution: {integrity: sha512-D+AUxs64qehDMkbfFoskG0XsIOh2CHBGqYfcQcubLbZSFCGKJKS885su3a97huqBNHj+p9of9UZ/uUIP46wUGQ==} + dependencies: + '@types/lodash': 4.14.194 + dev: true + + /@types/lodash@4.14.194: + resolution: {integrity: sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==} + dev: true + /@types/minimist@1.2.2: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true - /@types/node@20.1.1: - resolution: {integrity: sha512-uKBEevTNb+l6/aCQaKVnUModfEMjAl98lw2Si9P5y4hLu9tm6AlX2ZIoXZX6Wh9lJueYPrGPKk5WMCNHg/u6/A==} + /@types/mocha@10.0.1: + resolution: {integrity: sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==} + dev: true + + /@types/ms@0.7.31: + resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} + dev: true + + /@types/node@20.1.2: + resolution: {integrity: sha512-CTO/wa8x+rZU626cL2BlbCDzydgnFNgc19h4YvizpTO88MFQxab8wqisxaofQJ/9bLGugRdWIuX/TbIs6VVF6g==} dev: true /@types/normalize-package-data@2.4.1: @@ -2248,14 +2307,18 @@ packages: resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} dev: true - /@types/semver@7.3.13: - resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + /@types/semver@7.5.0: + resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} + dev: true + + /@types/spdx-expression-parse@3.0.2: + resolution: {integrity: sha512-sMUf6orVVBVkpUEynLJu+Vt192vpG6CnPQA4Nk+i0hWoRGk6kxLjbr9gvISWfKb2IJNSoX/rUWbig32iP+FjWA==} dev: true /@types/ws@8.5.4: resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: - '@types/node': 20.1.1 + '@types/node': 20.1.2 dev: true /@typescript-eslint/eslint-plugin@5.59.2(@typescript-eslint/parser@5.59.5)(eslint@8.39.0)(typescript@5.0.4): @@ -2415,7 +2478,7 @@ packages: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) '@types/json-schema': 7.0.11 - '@types/semver': 7.3.13 + '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.59.2 '@typescript-eslint/types': 5.59.2 '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.0.4) @@ -3992,7 +4055,7 @@ packages: lodash.zip: 4.2.0 dev: true - /eslint-config-canonical@33.0.1(@babel/core@7.21.8)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.1.1)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4): + /eslint-config-canonical@33.0.1(@babel/core@7.21.8)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.1.2)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4): resolution: {integrity: sha512-g5hyJr5s4WnyAp5FdfMyItz72hOgXAB/4tsFMBP944bcei2QJyMvwslpKdiQL299HSJBpJ9xbNBhx7oeFI7zIQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -4000,7 +4063,7 @@ packages: dependencies: '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.39.0) '@babel/eslint-plugin': 7.19.1(@babel/eslint-parser@7.21.8)(eslint@8.39.0) - '@graphql-eslint/eslint-plugin': 3.18.0(@babel/core@7.21.8)(@types/node@20.1.1)(graphql@16.6.0) + '@graphql-eslint/eslint-plugin': 3.18.0(@babel/core@7.21.8)(@types/node@20.1.2)(graphql@16.6.0) '@next/eslint-plugin-next': 12.3.4 '@rushstack/eslint-patch': 1.2.0 '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.5)(eslint@8.39.0)(typescript@5.0.4) @@ -5104,8 +5167,8 @@ packages: is-glob: 4.0.3 dev: true - /glob@10.2.2: - resolution: {integrity: sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==} + /glob@10.2.3: + resolution: {integrity: sha512-Kb4rfmBVE3eQTAimgmeqc2LwSnN0wIOkkUL6HmxEFxNJ4fHghYHVbFba/HcGcRjE6s9KoMNK3rSOwkL4PioZjg==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: @@ -5209,7 +5272,7 @@ packages: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: true - /graphql-config@4.5.0(@types/node@20.1.1)(graphql@16.6.0): + /graphql-config@4.5.0(@types/node@20.1.2)(graphql@16.6.0): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -5223,7 +5286,7 @@ packages: '@graphql-tools/json-file-loader': 7.4.18(graphql@16.6.0) '@graphql-tools/load': 7.8.14(graphql@16.6.0) '@graphql-tools/merge': 8.4.1(graphql@16.6.0) - '@graphql-tools/url-loader': 7.17.18(@types/node@20.1.1)(graphql@16.6.0) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.1.2)(graphql@16.6.0) '@graphql-tools/utils': 9.2.1(graphql@16.6.0) cosmiconfig: 8.0.0 graphql: 16.6.0 @@ -6649,7 +6712,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.2.1(@types/node@20.1.1): + /meros@1.2.1(@types/node@20.1.2): resolution: {integrity: sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g==} engines: {node: '>=13'} peerDependencies: @@ -6658,7 +6721,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.1.1 + '@types/node': 20.1.2 dev: true /micro-spelling-correcter@1.1.1: @@ -8182,7 +8245,7 @@ packages: engines: {node: '>=14'} hasBin: true dependencies: - glob: 10.2.2 + glob: 10.2.3 dev: true /run-parallel@1.2.0: diff --git a/src/getDefaultTagStructureForMode.js b/src/getDefaultTagStructureForMode.js index 9363128fc..ec987b8f5 100644 --- a/src/getDefaultTagStructureForMode.js +++ b/src/getDefaultTagStructureForMode.js @@ -1,3 +1,10 @@ +/** + * @typedef {Map>} TagStructure + */ +/** + * @param {"permissive"|"jsdoc"|"closure"|"typescript"} mode + * @returns {TagStructure} + */ const getDefaultTagStructureForMode = (mode) => { const isJsdoc = mode === 'jsdoc'; const isClosure = mode === 'closure'; @@ -34,13 +41,15 @@ const getDefaultTagStructureForMode = (mode) => { // Todo: Should support special processing for "name" as distinct from // "namepath" (e.g., param can't define a namepath) - // Once checking inline tags: // Todo: Should support a `tutorialID` type (for `@tutorial` block and // inline) + /** + * @type {TagStructure} + */ return new Map([ [ - 'alias', new Map([ + 'alias', new Map(/** @type {[string, string|boolean][]} */ ([ // Signature seems to require a "namepath" (and no counter-examples) [ 'namepathRole', 'namepath-defining', @@ -50,11 +59,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeOrNameRequired', true, ], - ]), + ])), ], [ - 'arg', new Map([ + 'arg', new Map(/** @type {[string, string|boolean][]} */ ([ [ 'namepathRole', 'namepath-defining', ], @@ -69,11 +78,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', true, ], - ]), + ])), ], [ - 'argument', new Map([ + 'argument', new Map(/** @type {[string, string|boolean][]} */ ([ [ 'namepathRole', 'namepath-defining', ], @@ -88,11 +97,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', true, ], - ]), + ])), ], [ - 'augments', new Map([ + 'augments', new Map(/** @type {[string, string|boolean][]} */ ([ // Signature seems to require a "namepath" (and no counter-examples) [ 'namepathRole', 'namepath-referencing', @@ -107,11 +116,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeOrNameRequired', true, ], - ]), + ])), ], [ - 'borrows', new Map([ + 'borrows', new Map(/** @type {[string, string|boolean][]} */ ([ // `borrows` has a different format, however, so needs special parsing; // seems to require both, and as "namepath"'s [ @@ -122,11 +131,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeOrNameRequired', true, ], - ]), + ])), ], [ - 'callback', new Map([ + 'callback', new Map(/** @type {[string, string|boolean][]} */ ([ // Seems to require a "namepath" in the signature (with no // counter-examples); TypeScript does not enforce but seems // problematic as not attached so presumably not useable without it @@ -138,11 +147,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'nameRequired', true, ], - ]), + ])), ], [ - 'class', new Map([ + 'class', new Map(/** @type {[string, string|boolean][]} */ ([ // Allows for "name"'s in signature, but indicated as optional [ 'namepathRole', 'namepath-defining', @@ -156,11 +165,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', true, ], - ]), + ])), ], [ - 'const', new Map([ + 'const', new Map(/** @type {[string, string|boolean][]} */ ([ // Allows for "name"'s in signature, but indicated as optional [ 'namepathRole', 'namepath-defining', @@ -169,10 +178,10 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', true, ], - ]), + ])), ], [ - 'constant', new Map([ + 'constant', new Map(/** @type {[string, string|boolean][]} */ ([ // Allows for "name"'s in signature, but indicated as optional [ 'namepathRole', 'namepath-defining', @@ -181,10 +190,10 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', true, ], - ]), + ])), ], [ - 'constructor', new Map([ + 'constructor', new Map(/** @type {[string, string|boolean][]} */ ([ // Allows for "name"'s in signature, but indicated as optional [ 'namepathRole', 'namepath-defining', @@ -193,11 +202,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', true, ], - ]), + ])), ], [ - 'constructs', new Map([ + 'constructs', new Map(/** @type {[string, string|boolean][]} */ ([ // Allows for "name"'s in signature, but indicated as optional [ 'namepathRole', 'namepath-defining', @@ -210,19 +219,19 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', false, ], - ]), + ])), ], [ - 'define', new Map([ + 'define', new Map(/** @type {[string, string|boolean][]} */ ([ [ 'typeRequired', isClosure, ], - ]), + ])), ], [ - 'emits', new Map([ + 'emits', new Map(/** @type {[string, string|boolean][]} */ ([ // Signature seems to require a "name" (of an event) and no counter-examples [ 'namepathRole', 'namepath-referencing', @@ -235,20 +244,20 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', false, ], - ]), + ])), ], [ - 'enum', new Map([ + 'enum', new Map(/** @type {[string, string|boolean][]} */ ([ // Has example showing curly brackets but not in doc signature [ 'typeAllowed', true, ], - ]), + ])), ], [ - 'event', new Map([ + 'event', new Map(/** @type {[string, string|boolean][]} */ ([ // The doc signature of `event` seems to require a "name" [ 'nameRequired', true, @@ -260,29 +269,29 @@ const getDefaultTagStructureForMode = (mode) => { [ 'namepathRole', 'namepath-defining', ], - ]), + ])), ], [ - 'exception', new Map([ + 'exception', new Map(/** @type {[string, string|boolean][]} */ ([ // Shows curly brackets in the signature and in the examples [ 'typeAllowed', true, ], - ]), + ])), ], // Closure [ - 'export', new Map([ + 'export', new Map(/** @type {[string, string|boolean][]} */ ([ [ 'typeAllowed', isClosureOrPermissive, ], - ]), + ])), ], [ - 'exports', new Map([ + 'exports', new Map(/** @type {[string, string|boolean][]} */ ([ [ 'namepathRole', 'namepath-defining', ], @@ -294,11 +303,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', isClosureOrPermissive, ], - ]), + ])), ], [ - 'extends', new Map([ + 'extends', new Map(/** @type {[string, string|boolean][]} */ ([ // Signature seems to require a "namepath" (and no counter-examples) [ 'namepathRole', 'namepath-referencing', @@ -317,11 +326,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeOrNameRequired', isTypescriptOrClosure || isPermissive, ], - ]), + ])), ], [ - 'external', new Map([ + 'external', new Map(/** @type {[string, string|boolean][]} */ ([ // Appears to require a "name" in its signature, albeit somewhat // different from other "name"'s (including as described // at https://jsdoc.app/about-namepaths.html ) @@ -337,11 +346,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', false, ], - ]), + ])), ], [ - 'fires', new Map([ + 'fires', new Map(/** @type {[string, string|boolean][]} */ ([ // Signature seems to require a "name" (of an event) and no // counter-examples [ @@ -355,11 +364,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', false, ], - ]), + ])), ], [ - 'function', new Map([ + 'function', new Map(/** @type {[string, string|boolean][]} */ ([ // Allows for "name"'s in signature, but indicated as optional [ 'namepathRole', 'namepath-defining', @@ -372,19 +381,19 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', false, ], - ]), + ])), ], [ - 'func', new Map([ + 'func', new Map(/** @type {[string, string|boolean][]} */ ([ // Allows for "name"'s in signature, but indicated as optional [ 'namepathRole', 'namepath-defining', ], - ]), + ])), ], [ - 'host', new Map([ + 'host', new Map(/** @type {[string, string|boolean][]} */ ([ // Appears to require a "name" in its signature, albeit somewhat // different from other "name"'s (including as described // at https://jsdoc.app/about-namepaths.html ) @@ -400,11 +409,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', false, ], - ]), + ])), ], [ - 'interface', new Map([ + 'interface', new Map(/** @type {[string, string|boolean][]} */ ([ // Allows for "name" in signature, but indicates as optional [ 'namepathRole', @@ -419,11 +428,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', false, ], - ]), + ])), ], [ - 'internal', new Map([ + 'internal', new Map(/** @type {[string, string|boolean][]} */ ([ // https://www.typescriptlang.org/tsconfig/#stripInternal [ 'namepathRole', false, @@ -432,21 +441,21 @@ const getDefaultTagStructureForMode = (mode) => { [ 'nameAllowed', false, ], - ]), + ])), ], [ - 'implements', new Map([ + 'implements', new Map(/** @type {[string, string|boolean][]} */ ([ // Shows curly brackets in the doc signature and examples // "typeExpression" [ 'typeRequired', true, ], - ]), + ])), ], [ - 'lends', new Map([ + 'lends', new Map(/** @type {[string, string|boolean][]} */ ([ // Signature seems to require a "namepath" (and no counter-examples) [ 'namepathRole', 'namepath-referencing', @@ -456,41 +465,41 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeOrNameRequired', true, ], - ]), + ])), ], [ - 'link', new Map([ + 'link', new Map(/** @type {[string, string|boolean][]} */ ([ // Signature seems to require a namepath OR URL and might be checked as such. [ 'namepathRole', 'namepath-or-url-referencing', ], - ]), + ])), ], [ - 'linkcode', new Map([ + 'linkcode', new Map(/** @type {[string, string|boolean][]} */ ([ // Synonym for "link" // Signature seems to require a namepath OR URL and might be checked as such. [ 'namepathRole', 'namepath-or-url-referencing', ], - ]), + ])), ], [ - 'linkplain', new Map([ + 'linkplain', new Map(/** @type {[string, string|boolean][]} */ ([ // Synonym for "link" // Signature seems to require a namepath OR URL and might be checked as such. [ 'namepathRole', 'namepath-or-url-referencing', ], - ]), + ])), ], [ - 'listens', new Map([ + 'listens', new Map(/** @type {[string, string|boolean][]} */ ([ // Signature seems to require a "name" (of an event) and no // counter-examples [ @@ -504,11 +513,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', false, ], - ]), + ])), ], [ - 'member', new Map([ + 'member', new Map(/** @type {[string, string|boolean][]} */ ([ // Allows for "name"'s in signature, but indicated as optional [ 'namepathRole', 'namepath-defining', @@ -518,11 +527,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', true, ], - ]), + ])), ], [ - 'memberof', new Map([ + 'memberof', new Map(/** @type {[string, string|boolean][]} */ ([ // Signature seems to require a "namepath" (and no counter-examples), // though it allows an incomplete namepath ending with connecting symbol [ @@ -533,10 +542,10 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeOrNameRequired', true, ], - ]), + ])), ], [ - 'memberof!', new Map([ + 'memberof!', new Map(/** @type {[string, string|boolean][]} */ ([ // Signature seems to require a "namepath" (and no counter-examples), // though it allows an incomplete namepath ending with connecting symbol [ @@ -547,19 +556,19 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeOrNameRequired', true, ], - ]), + ])), ], [ - 'method', new Map([ + 'method', new Map(/** @type {[string, string|boolean][]} */ ([ // Allows for "name"'s in signature, but indicated as optional [ 'namepathRole', 'namepath-defining', ], - ]), + ])), ], [ - 'mixes', new Map([ + 'mixes', new Map(/** @type {[string, string|boolean][]} */ ([ // Signature seems to require a "OtherObjectPath" with no // counter-examples [ @@ -570,11 +579,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeOrNameRequired', true, ], - ]), + ])), ], [ - 'mixin', new Map([ + 'mixin', new Map(/** @type {[string, string|boolean][]} */ ([ // Allows for "name"'s in signature, but indicated as optional [ 'namepathRole', 'namepath-defining', @@ -587,22 +596,22 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', false, ], - ]), + ])), ], [ - 'modifies', new Map([ + 'modifies', new Map(/** @type {[string, string|boolean][]} */ ([ // Has no documentation, but test example has curly brackets, and // "name" would be suggested rather than "namepath" based on example; // not sure if name is required [ 'typeAllowed', true, ], - ]), + ])), ], [ - 'module', new Map([ + 'module', new Map(/** @type {[string, string|boolean][]} */ ([ // Optional "name" and no curly brackets // this block impacts `no-undefined-types` and `valid-types` (search for // "isNamepathDefiningTag|tagMightHaveNamepath|tagMightHaveEitherTypeOrNamePosition") @@ -614,11 +623,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', true, ], - ]), + ])), ], [ - 'name', new Map([ + 'name', new Map(/** @type {[string, string|boolean][]} */ ([ // Seems to require a "namepath" in the signature (with no // counter-examples) [ @@ -634,11 +643,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeOrNameRequired', true, ], - ]), + ])), ], [ - 'namespace', new Map([ + 'namespace', new Map(/** @type {[string, string|boolean][]} */ ([ // Allows for "name"'s in signature, but indicated as optional [ 'namepathRole', 'namepath-defining', @@ -648,20 +657,20 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', true, ], - ]), + ])), ], [ - 'package', new Map([ + 'package', new Map(/** @type {[string, string|boolean][]} */ ([ // Shows the signature with curly brackets but not in the example // "typeExpression" [ 'typeAllowed', isClosureOrPermissive, ], - ]), + ])), ], [ - 'param', new Map([ + 'param', new Map(/** @type {[string, string|boolean][]} */ ([ [ 'namepathRole', 'namepath-defining', ], @@ -679,21 +688,21 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', true, ], - ]), + ])), ], [ - 'private', new Map([ + 'private', new Map(/** @type {[string, string|boolean][]} */ ([ // Shows the signature with curly brackets but not in the example // "typeExpression" [ 'typeAllowed', isClosureOrPermissive, ], - ]), + ])), ], [ - 'prop', new Map([ + 'prop', new Map(/** @type {[string, string|boolean][]} */ ([ [ 'namepathRole', 'namepath-defining', ], @@ -708,11 +717,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', true, ], - ]), + ])), ], [ - 'property', new Map([ + 'property', new Map(/** @type {[string, string|boolean][]} */ ([ [ 'namepathRole', 'namepath-defining', ], @@ -728,30 +737,30 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', true, ], - ]), + ])), ], [ - 'protected', new Map([ + 'protected', new Map(/** @type {[string, string|boolean][]} */ ([ // Shows the signature with curly brackets but not in the example // "typeExpression" [ 'typeAllowed', isClosureOrPermissive, ], - ]), + ])), ], [ - 'public', new Map([ + 'public', new Map(/** @type {[string, string|boolean][]} */ ([ // Does not show a signature nor show curly brackets in the example [ 'typeAllowed', isClosureOrPermissive, ], - ]), + ])), ], [ - 'requires', new Map([ + 'requires', new Map(/** @type {[string, string|boolean][]} */ ([ // [ 'namepathRole', 'namepath-referencing', @@ -764,67 +773,67 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', false, ], - ]), + ])), ], [ - 'returns', new Map([ + 'returns', new Map(/** @type {[string, string|boolean][]} */ ([ // Shows curly brackets in the signature and in the examples [ 'typeAllowed', true, ], - ]), + ])), ], [ - 'return', new Map([ + 'return', new Map(/** @type {[string, string|boolean][]} */ ([ // Shows curly brackets in the signature and in the examples [ 'typeAllowed', true, ], - ]), + ])), ], [ - 'satisfies', new Map([ + 'satisfies', new Map(/** @type {[string, string|boolean][]} */ ([ // Shows curly brackets in the doc signature and examples [ 'typeRequired', true, ], - ]), + ])), ], [ - 'see', new Map([ + 'see', new Map(/** @type {[string, string|boolean][]} */ ([ // Signature allows for "namepath" or text, so user must configure to // 'namepath-referencing' to enforce checks [ 'namepathRole', 'text', ], - ]), + ])), ], [ - 'static', new Map([ + 'static', new Map(/** @type {[string, string|boolean][]} */ ([ // Does not show a signature nor show curly brackets in the example [ 'typeAllowed', isClosureOrPermissive, ], - ]), + ])), ], [ - 'suppress', new Map([ + 'suppress', new Map(/** @type {[string, string|boolean][]} */ ([ [ 'namepathRole', !isClosure, ], [ 'typeRequired', isClosure, ], - ]), + ])), ], [ - 'template', new Map([ + 'template', new Map(/** @type {[string, string|boolean][]} */ ([ [ 'namepathRole', isJsdoc ? 'text' : 'namepath-referencing', ], @@ -835,11 +844,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', isTypescriptOrClosure || isPermissive, ], - ]), + ])), ], [ - 'this', new Map([ + 'this', new Map(/** @type {[string, string|boolean][]} */ ([ // Signature seems to require a "namepath" (and no counter-examples) // Not used with namepath in Closure/TypeScript, however [ @@ -854,20 +863,20 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeOrNameRequired', isJsdoc, ], - ]), + ])), ], [ - 'throws', new Map([ + 'throws', new Map(/** @type {[string, string|boolean][]} */ ([ // Shows curly brackets in the signature and in the examples [ 'typeAllowed', true, ], - ]), + ])), ], [ - 'tutorial', new Map([ + 'tutorial', new Map(/** @type {[string, string|boolean][]} */ ([ // (a tutorial ID) [ 'nameRequired', true, @@ -876,21 +885,21 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', false, ], - ]), + ])), ], [ - 'type', new Map([ + 'type', new Map(/** @type {[string, string|boolean][]} */ ([ // Shows curly brackets in the doc signature and examples // "typeName" [ 'typeRequired', true, ], - ]), + ])), ], [ - 'typedef', new Map([ + 'typedef', new Map(/** @type {[string, string|boolean][]} */ ([ // Seems to require a "namepath" in the signature (with no // counter-examples) [ @@ -917,11 +926,11 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeOrNameRequired', !isTypescript, ], - ]), + ])), ], [ - 'var', new Map([ + 'var', new Map(/** @type {[string, string|boolean][]} */ ([ // Allows for "name"'s in signature, but indicated as optional [ 'namepathRole', 'namepath-defining', @@ -931,24 +940,24 @@ const getDefaultTagStructureForMode = (mode) => { [ 'typeAllowed', true, ], - ]), + ])), ], [ - 'yields', new Map([ + 'yields', new Map(/** @type {[string, string|boolean][]} */ ([ // Shows curly brackets in the signature and in the examples [ 'typeAllowed', true, ], - ]), + ])), ], [ - 'yield', new Map([ + 'yield', new Map(/** @type {[string, string|boolean][]} */ ([ // Shows curly brackets in the signature and in the examples [ 'typeAllowed', true, ], - ]), + ])), ], ]); }; diff --git a/src/index.js b/src/index.js index 06ef81499..aad4359e9 100644 --- a/src/index.js +++ b/src/index.js @@ -51,13 +51,11 @@ import tagLines from './rules/tagLines'; import textEscaping from './rules/textEscaping'; import validTypes from './rules/validTypes'; +/** + * @type {import('eslint').ESLint.Plugin} + */ const index = { - /* eslint-disable jsdoc/no-undefined-types -- Bug */ - /** - * @type {Record>} - */ configs: {}, - /* eslint-enable jsdoc/no-undefined-types -- Bug */ rules: { 'check-access': checkAccess, 'check-alignment': checkAlignment, @@ -206,6 +204,11 @@ const createRecommendedTypeScriptRuleset = (warnOrError) => { }; }; +/* istanbul ignore if -- TS */ +if (!index.configs) { + throw new Error('TypeScript guard'); +} + index.configs.recommended = createRecommendedRuleset('warn'); index.configs['recommended-error'] = createRecommendedRuleset('error'); index.configs['recommended-typescript'] = createRecommendedTypeScriptRuleset('warn'); diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index 19a5d7a03..d17c958ea 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -1390,6 +1390,7 @@ export { /** * @param {JsdocVisitor} iterator * @param {RuleConfig} ruleConfig + * @returns {import('eslint').Rule.RuleModule} */ export default function iterateJsdoc (iterator, ruleConfig) { const metaType = ruleConfig?.meta?.type; @@ -1415,10 +1416,10 @@ export default function iterateJsdoc (iterator, ruleConfig) { /** * The entrypoint for the JSDoc rule. * - * @param {*} context + * @param {import('eslint').Rule.RuleContext} context * a reference to the context which hold all important information * like settings and the sourcecode to check. - * @returns {object} + * @returns {import('eslint').Rule.RuleListener} * a list with parser callback function. */ create (context) { diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index 8d3d4e5f3..91c578502 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -19,17 +19,39 @@ import { * @typedef {"jsdoc"|"typescript"|"closure"} ParserMode */ +/** + * @type {import('./getDefaultTagStructureForMode.js').TagStructure} + */ let tagStructure; +/** + * @param {ParserMode|"permissive"} mode + * @returns {void} + */ const setTagStructure = (mode) => { tagStructure = getDefaultTagStructureForMode(mode); }; -// Given a nested array of property names, reduce them to a single array, -// appending the name of the root element along the way if present. +/** + * Given a nested array of property names, reduce them to a single array, + * appending the name of the root element along the way if present. + * + * @param {} params + * @param {string} root + * @returns {{ + * hasPropertyRest: boolean, + * hasRestElement: boolean, + * names, + * rests: boolean[], + * }} + */ const flattenRoots = (params, root = '') => { let hasRestElement = false; let hasPropertyRest = false; + + /** + * @type {boolean[]} + */ const rests = []; const names = params.reduce((acc, cur) => { @@ -122,7 +144,7 @@ const getPropertiesFromPropertySignature = (propSignature) => { /** * @param {object} functionNode - * @param {boolean} checkDefaultObjects + * @param {boolean} [checkDefaultObjects] * @returns {Array} */ const getFunctionParameterNames = ( @@ -484,7 +506,7 @@ const hasATag = (jsdoc, targetTagNames) => { * * @param {JsDocTag} tag * the tag which should be checked. - * @param {"jsdoc"|"closure"|"typescript"} mode + * @param {ParserMode|"permissive"} mode * @returns {boolean} * true in case a defined type is undeclared; otherwise false. */ diff --git a/src/rules/requireJsdoc.js b/src/rules/requireJsdoc.js index a60eed55d..002e7f337 100644 --- a/src/rules/requireJsdoc.js +++ b/src/rules/requireJsdoc.js @@ -205,6 +205,7 @@ const getOptions = (context, settings) => { }; }; +/** @type {import('eslint').Rule.RuleModule} */ export default { create (context) { const sourceCode = context.getSourceCode(); diff --git a/src/tagNames.js b/src/tagNames.js index 868ab668d..d321c3669 100644 --- a/src/tagNames.js +++ b/src/tagNames.js @@ -1,3 +1,14 @@ +/* eslint-disable jsdoc/valid-types -- Old version */ +/** + * @typedef {{ + * [key: string]: string[] + * }} AliasedTags + */ +/* eslint-enable jsdoc/valid-types -- Old version */ + +/** + * @type {AliasedTags} + */ const jsdocTagsUndocumented = { // Undocumented but present; see // https://github.com/jsdoc/jsdoc/issues/1283#issuecomment-516816802 @@ -5,6 +16,9 @@ const jsdocTagsUndocumented = { modifies: [], }; +/** + * @type {AliasedTags} + */ const jsdocTags = { ...jsdocTagsUndocumented, abstract: [ @@ -118,6 +132,9 @@ const jsdocTags = { ], }; +/** + * @type {AliasedTags} + */ const typeScriptTags = { ...jsdocTags, @@ -135,6 +152,9 @@ const typeScriptTags = { template: [], }; +/** + * @type {AliasedTags} + */ const undocumentedClosureTags = { // These are in Closure source but not in jsdoc source nor in the Closure // docs: https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/parsing/Annotation.java @@ -165,6 +185,9 @@ const { ...typeScriptTagsInClosure } = typeScriptTags; +/** + * @type {AliasedTags} + */ const closureTags = { ...typeScriptTagsInClosure, ...undocumentedClosureTags, diff --git a/src/utils/hasReturnValue.js b/src/utils/hasReturnValue.js index 42ea9cebd..e66a37360 100644 --- a/src/utils/hasReturnValue.js +++ b/src/utils/hasReturnValue.js @@ -1,9 +1,15 @@ /* eslint-disable jsdoc/no-undefined-types */ + +/** + * @typedef {import('estree').Node| + * import('@typescript-eslint/types').TSESTree.TSTypeReference} ESTreeOrTypeScriptNode + */ + /** * Checks if a node is a promise but has no resolve value or an empty value. * An `undefined` resolve does not count. * - * @param {object} node + * @param {ESTreeOrTypeScriptNode} node * @returns {boolean} */ const isNewPromiseExpression = (node) => { @@ -11,6 +17,10 @@ const isNewPromiseExpression = (node) => { node.callee.name === 'Promise'; }; +/** + * @param {import('@typescript-eslint/types').TSESTree.TSTypeReference} node + * @returns {boolean} + */ const isVoidPromise = (node) => { return node?.typeParameters?.params?.[0]?.type === 'TSVoidKeyword'; }; @@ -22,10 +32,10 @@ const undefinedKeywords = new Set([ /** * Checks if a node has a return statement. Void return does not count. * - * @param {object} node + * @param {import('estree').Node|import('@typescript-eslint/types').TSESTree.Node} node * @param {boolean} throwOnNullReturn * @param {PromiseFilter} promFilter - * @returns {boolean|Node} + * @returns {boolean|undefined} */ // eslint-disable-next-line complexity const hasReturnValue = (node, throwOnNullReturn, promFilter) => { @@ -46,7 +56,7 @@ const hasReturnValue = (node, throwOnNullReturn, promFilter) => { case 'FunctionExpression': case 'FunctionDeclaration': case 'ArrowFunctionExpression': { - return node.expression && (!isNewPromiseExpression(node.body) || !isVoidPromise(node.body)) || + return 'expression' in node && node.expression && (!isNewPromiseExpression(node.body) || !isVoidPromise(node.body)) || hasReturnValue(node.body, throwOnNullReturn, promFilter); } @@ -117,7 +127,7 @@ const hasReturnValue = (node, throwOnNullReturn, promFilter) => { * * @param {object} node * @param {PromiseFilter} promFilter - * @returns {boolean|Node} + * @returns {boolean|import('estree').Node} */ // eslint-disable-next-line complexity const allBrancheshaveReturnValues = (node, promFilter) => { diff --git a/test/iterateJsdoc.js b/test/iterateJsdoc.js index a82b21148..fdfa5e692 100644 --- a/test/iterateJsdoc.js +++ b/test/iterateJsdoc.js @@ -12,6 +12,7 @@ describe('iterateJsdoc', () => { context('options', () => { it('throws with missing options', () => { expect(() => { + // @ts-expect-error Bad arguments iterateJsdoc(() => {}); }).to.throw(TypeError); }); @@ -21,6 +22,7 @@ describe('iterateJsdoc', () => { context('Invalid iterator', () => { it('throws with missing function', () => { expect(() => { + // @ts-expect-error Bad argument iterateJsdoc(undefined, { meta: { type: 'suggestion', @@ -30,6 +32,7 @@ describe('iterateJsdoc', () => { }); it('throws with object missing `returns` method', () => { expect(() => { + // @ts-expect-error Bad argument iterateJsdoc({}, { meta: { type: 'suggestion', @@ -41,6 +44,7 @@ describe('iterateJsdoc', () => { context('Invalid options', () => { it('throws with missing meta', () => { expect(() => { + // @ts-expect-error Bad argument iterateJsdoc(() => {}, {}); }).to.throw(TypeError); }); diff --git a/test/jsdocUtils.js b/test/jsdocUtils.js index 5d5f6722a..2b68323e7 100644 --- a/test/jsdocUtils.js +++ b/test/jsdocUtils.js @@ -71,7 +71,7 @@ describe('jsdocUtils', () => { describe('mayBeUndefinedTypeTag()', () => { context('Missing tag', () => { it('should return `false` with a missing tag', () => { - expect(jsdocUtils.mayBeUndefinedTypeTag(null)).to.equal(true); + expect(jsdocUtils.mayBeUndefinedTypeTag(null, 'permissive')).to.equal(true); }); }); }); diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index d9b54910c..32595d43b 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -2,8 +2,12 @@ import { jsdocTags, typeScriptTags, closureTags, -} from '../../../src/tagNames'; +} from '../../../src/tagNames.js'; +/** + * @param {import('../../../src/tagNames.js').AliasedTags} tags + * @returns {string} + */ const buildTagBlock = (tags) => { return '/** \n * @' + Object.keys(tags).map((tagName, idx) => { return (idx === 0 ? '' : '\n * @') + tagName; @@ -11,8 +15,18 @@ const buildTagBlock = (tags) => { .join('') + '\n */'; }; +/** + * @typedef {number} Integer + */ + +/** + * @param {string} code + * @returns {Integer} + */ const lineCount = (code) => { - return code.match(/\n/ug).length; + /* eslint-disable jsdoc/no-undefined-types -- TS */ + return /** @type {RegExpMatchArray} */ (code.match(/\n/ug)).length; + /* eslint-enable jsdoc/no-undefined-types -- TS */ }; // We avoid testing all closure tags as too many diff --git a/test/rules/index.js b/test/rules/index.js index 9419e48da..f398b91ea 100644 --- a/test/rules/index.js +++ b/test/rules/index.js @@ -1,3 +1,11 @@ +import { + readFileSync, +} from 'fs'; +import { + // dirname, + join, +} from 'path'; +// import {fileURLToPath} from 'url'; import camelCase from 'camelcase'; import { ESLint, @@ -6,8 +14,9 @@ import { import pkg from 'eslint/use-at-your-own-risk'; import defaultsDeep from 'lodash.defaultsdeep'; import semver from 'semver'; -import config from '../../src'; -import ruleNames from './ruleNames.json'; +import config from '../../src/index.js'; + +// const __dirname = dirname(fileURLToPath(import.meta.url)); const ruleTester = new RuleTester(); const { @@ -15,6 +24,12 @@ const { } = pkg; const main = async () => { + const ruleNames = JSON.parse(readFileSync(join(__dirname, './ruleNames.json'), 'utf8')); + + if (!config.rules) { + throw new Error('TypeScript guard'); + } + for (const ruleName of process.env.npm_config_rule ? process.env.npm_config_rule.split(',') : ruleNames) { if (semver.gte(ESLint.version, '8.0.0') && ruleName === 'check-examples') { // TODO: This rule cannot yet be supported for ESLint 8; @@ -22,13 +37,22 @@ const main = async () => { continue; } - const rule = config.rules[ruleName]; + const rule = /** @type {import('eslint').Rule.RuleModule} */ ( + config.rules[ruleName] + ); const parserOptions = { ecmaVersion: 6, }; // Catch syntax errors + + /** + * @type {{ + * invalid: import('eslint').RuleTester.InvalidTestCase[], + * valid: import('eslint').RuleTester.ValidTestCase[] + * }} + */ let assertions; try { assertions = (await import(`./assertions/${camelCase(ruleName)}`)).default; @@ -38,7 +62,7 @@ const main = async () => { return; } - if (!('meta' in rule && 'schema' in rule.meta) && ( + if (!(rule.meta && 'schema' in rule.meta) && ( assertions.invalid.some((item) => { return item.options; }) || @@ -56,7 +80,9 @@ const main = async () => { assertions.invalid = assertions.invalid.map((assertion) => { Reflect.deleteProperty(assertion, 'ignoreReadme'); assertion.parserOptions = defaultsDeep(assertion.parserOptions, parserOptions); - for (const error of assertion.errors) { + for (const error of /** @type {import('eslint').RuleTester.TestCaseError[]} */ ( + assertion.errors + )) { if (!('line' in error)) { count++; } @@ -83,10 +109,12 @@ const main = async () => { assertions.valid = assertions.valid.map((assertion) => { Reflect.deleteProperty(assertion, 'ignoreReadme'); + // @ts-expect-error Bad valid format if (assertion.errors) { throw new Error(`Valid assertions for rule ${ruleName} should not have an \`errors\` array.`); } + // @ts-expect-error Bad valid format if (assertion.output) { throw new Error(`Valid assertions for rule ${ruleName} should not have an \`output\` property.`); } diff --git a/tsconfig.json b/tsconfig.json index f96ccde9a..639657a08 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,7 +13,11 @@ "target": "es6", "outDir": "dist" }, - // Restore to `src/**/*.js` as ready - "include": ["src/bin/*.js", "src/bin/gitdown.d.ts"], + // Uncomment below as ready + "include": [ + // "src/**/*.js", + // "test/**/*.js", + "src/bin/gitdown.d.ts" + ], "exclude": ["node_modules"] } From 46fcd7ef17848ae0002faab8340102f0d5bb17e1 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 11 May 2023 02:10:48 -0700 Subject: [PATCH 080/273] fix: allow `ArrayPattern` with empty value Also: - refactor: ts work --- src/getDefaultTagStructureForMode.js | 2 +- src/iterateJsdoc.js | 419 ++++++++++++++++-- src/jsdocUtils.js | 273 +++++++++--- src/rules/checkLineAlignment.js | 2 +- src/rules/checkTypes.js | 2 +- src/rules/emptyTags.js | 1 + src/rules/matchDescription.js | 2 +- src/rules/noBadBlocks.js | 2 +- .../requireDescriptionCompleteSentence.js | 2 +- src/rules/requireJsdoc.js | 4 +- 10 files changed, 598 insertions(+), 111 deletions(-) diff --git a/src/getDefaultTagStructureForMode.js b/src/getDefaultTagStructureForMode.js index ec987b8f5..5f473b59b 100644 --- a/src/getDefaultTagStructureForMode.js +++ b/src/getDefaultTagStructureForMode.js @@ -2,7 +2,7 @@ * @typedef {Map>} TagStructure */ /** - * @param {"permissive"|"jsdoc"|"closure"|"typescript"} mode + * @param {import('./jsdocUtils.js').ParserMode} mode * @returns {TagStructure} */ const getDefaultTagStructureForMode = (mode) => { diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index d17c958ea..001f875a6 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -9,6 +9,10 @@ import { } from 'comment-parser'; import jsdocUtils from './jsdocUtils'; +/** + * @typedef {number} Integer + */ + const { rewireSpecs, seedTokens, @@ -43,15 +47,31 @@ const { */ const globalState = new Map(); - +/** + * @param {import('eslint').Rule.RuleContext} context + * @param {{ + * tagNamePreference?: import('./jsdocUtils.js').TagNamePreference, + * mode?: import('./jsdocUtils.js').ParserMode + * }} cfg + * @returns {Utils} + */ const getBasicUtils = (context, { tagNamePreference, mode, }) => { const utils = {}; + + /** + * @param {string} message + * @returns {void} + */ utils.reportSettings = (message) => { context.report({ loc: { + end: { + column: 1, + line: 1, + }, start: { column: 1, line: 1, @@ -61,16 +81,30 @@ const getBasicUtils = (context, { }); }; + /** + * @param {import('comment-parser').Spec} tag + * @returns {string[]} + */ utils.parseClosureTemplateTag = (tag) => { return jsdocUtils.parseClosureTemplateTag(tag); }; utils.pathDoesNotBeginWith = jsdocUtils.pathDoesNotBeginWith; + /** + * @param {{ + * tagName: string + * }} cfg + */ utils.getPreferredTagNameObject = ({ tagName, }) => { - const ret = jsdocUtils.getPreferredTagName(context, mode, tagName, tagNamePreference); + const ret = jsdocUtils.getPreferredTagName( + context, + /** @type {import('./jsdocUtils.js').ParserMode} */ (mode), + tagName, + tagNamePreference, + ); const isObject = ret && typeof ret === 'object'; if (ret === false || isObject && !ret.replacement) { return { @@ -85,6 +119,18 @@ const getBasicUtils = (context, { return utils; }; +/** + * @param {} node + * @param {import('comment-parser').Block} jsdoc + * @param {import('@es-joy/jsdoccomment').Token} jsdocNode + * @param {Settings} settings + * @param {} report + * @param {import('eslint').Rule.RuleContext} context + * @param {boolean} iteratingAll + * @param {} ruleConfig + * @param {string} indent + * @returns {} + */ const getUtils = ( node, jsdoc, @@ -112,6 +158,9 @@ const getUtils = ( mode, } = settings; + /** + * @returns {boolean} + */ utils.isIteratingFunction = () => { return !iteratingAll || [ 'MethodDefinition', @@ -121,23 +170,45 @@ const getUtils = ( ].includes(node && node.type); }; + /** + * @returns {boolean} + */ utils.isVirtualFunction = () => { return iteratingAll && utils.hasATag([ 'callback', 'function', 'func', 'method', ]); }; + /** + * @param {import('comment-parser').Block} tagBlock + * @param {boolean} [specRewire] + * @returns {string} + */ utils.stringify = (tagBlock, specRewire) => { let block; if (specRewire) { block = rewireSpecs(tagBlock); } - return commentStringify(specRewire ? block : tagBlock); + return commentStringify(/** @type {import('comment-parser').Block} */ ( + specRewire ? block : tagBlock)); }; + /* eslint-disable jsdoc/valid-types -- Old version */ + /** + * @param {string} msg + * @param {import('comment-parser').Spec} tag + * @param {() => void} handler + * @param {boolean} [specRewire] + * @param {{ + * [key: string]: undefined|string + * }} [data] + */ utils.reportJSDoc = (msg, tag, handler, specRewire, data) => { - report(msg, handler ? (fixer) => { + /* eslint-enable jsdoc/valid-types -- Old version */ + report(msg, handler ? /** @type {import('eslint').Rule.ReportFixer} */ ( + fixer, + ) => { handler(); const replacement = utils.stringify(jsdoc, specRewire); @@ -165,11 +236,24 @@ const getUtils = ( } : null, tag, data); }; + /** + * @param {string} str + * @param {string} requiredFlags + * @returns {RegExp} + */ utils.getRegexFromString = (str, requiredFlags) => { return jsdocUtils.getRegexFromString(str, requiredFlags); }; + /** + * @param {import('comment-parser').Spec} tg + * @param {boolean} returnArray + * @returns {string[]|string} + */ utils.getTagDescription = (tg, returnArray) => { + /** + * @type {string[]} + */ const descriptions = []; tg.source.some(({ tokens: { @@ -207,6 +291,12 @@ const getUtils = ( return returnArray ? descriptions : descriptions.join('\n'); }; + /** + * @param {import('comment-parser').Spec} tg + * @param {RegExp} matcher + * @param {(description: string) => string} setter + * @returns {Integer} + */ utils.setTagDescription = (tg, matcher, setter) => { let finalIdx = 0; tg.source.some(({ @@ -226,7 +316,15 @@ const getUtils = ( return finalIdx; }; + /** + * @returns {{ + * description: string, + * descriptions: string[], + * lastDescriptionLine: Integer + * }} + */ utils.getDescription = () => { + /** @type {string[]} */ const descriptions = []; let lastDescriptionLine = 0; let tagsBegun = false; @@ -264,9 +362,32 @@ const getUtils = ( }; }; + /* eslint-disable jsdoc/no-undefined-types -- Bug */ + /** + * @param {( + * info: undefined|{ + * delimiter: string, + * postDelimiter: string, + * start: string + * }, + * seedTokens: ( + * tokens?: Partial | undefined + * ) => import('comment-parser').Tokens, + * descLines: string[] + * ) => import('comment-parser').Tokens[]} setter + * @returns {void} + */ utils.setBlockDescription = (setter) => { + /* eslint-enable jsdoc/no-undefined-types -- Bug */ + /** @type {string[]} */ const descLines = []; + /** + * @type {undefined|Integer} + */ let startIdx; + /** + * @type {undefined|Integer} + */ let endIdx; let info; @@ -305,11 +426,18 @@ const getUtils = ( /* istanbul ignore else -- Won't be called if missing */ if (descLines.length) { jsdoc.source.splice( - startIdx, endIdx - startIdx, ...setter(info, seedTokens, descLines), + /** @type {Integer} */ (startIdx), + /** @type {Integer} */ (endIdx) - /** @type {Integer} */ (startIdx), + ...setter(info, seedTokens, descLines), ); } }; + /** + * @param {RegExp} matcher + * @param {(description: string) => string} setter + * @returns {Integer} + */ utils.setDescriptionLines = (matcher, setter) => { let finalIdx = 0; jsdoc.source.some(({ @@ -336,6 +464,11 @@ const getUtils = ( return finalIdx; }; + /** + * @param {import('comment-parser').Spec} tag + * @param {import('comment-parser').Tokens[]} tokens + * @returns {void} + */ utils.changeTag = (tag, ...tokens) => { for (const [ idx, @@ -348,11 +481,21 @@ const getUtils = ( } }; + /* eslint-disable jsdoc/no-undefined-types -- TS */ + /** + * @param {import('comment-parser').Spec & { + * line: Integer + * }} tag + * @param {Partial} tokens + * @returns {void} + */ utils.setTag = (tag, tokens) => { + /* eslint-enable jsdoc/no-undefined-types -- TS */ tag.source = [ { - // Or tag.source[0].number? number: tag.line, + // Or tag.source[0].number? + source: '', tokens: seedTokens({ delimiter: '*', postDelimiter: ' ', @@ -364,6 +507,14 @@ const getUtils = ( ]; }; + /** + * @param {Integer} tagIndex + * @param {{ + * removeEmptyBlock?: boolean, + * tagSourceOffset?: Integer + * }} cfg + * @returns {void} + */ utils.removeTag = (tagIndex, { removeEmptyBlock = false, tagSourceOffset = 0, @@ -371,6 +522,7 @@ const getUtils = ( const { source: tagSource, } = jsdoc.tags[tagIndex]; + /** @type {Integer|undefined} */ let lastIndex; const firstNumber = jsdoc.source[0].number; tagSource.some(({ @@ -424,7 +576,14 @@ const getUtils = ( 'postName', 'description', ]) { - tokens[item] = ''; + tokens[ + /** + * @type {"postDelimiter"|"tag"|"type"|"postType"| + * "postTag"|"name"|"postName"|"description"} + */ ( + item + ) + ] = ''; } } else { jsdoc.source.splice(spliceIdx, spliceCount - tagSourceOffset + (spliceIdx ? 0 : jsdoc.source.length)); @@ -443,14 +602,21 @@ const getUtils = ( idx, src, ] of jsdoc.source.slice(lastIndex).entries()) { - src.number = firstNumber + lastIndex + idx; + src.number = firstNumber + /** @type {Integer} */ (lastIndex) + idx; } - // Todo: Once rewiring of tags may be fixed in comment-parser to reflect missing tags, - // this step should be added here (so that, e.g., if accessing `jsdoc.tags`, - // such as to add a new tag, the correct information will be available) + // Todo: Once rewiring of tags may be fixed in comment-parser to reflect + // missing tags, this step should be added here (so that, e.g., + // if accessing `jsdoc.tags`, such as to add a new tag, the + // correct information will be available) }; + /** + * @param {string} targetTagName + * @param {Integer} number + * @param {import('comment-parser').Tokens|{}} tokens + * @returns {void} + */ utils.addTag = ( targetTagName, number = (jsdoc.tags[jsdoc.tags.length - 1]?.source[0]?.number ?? jsdoc.source.findIndex(({ @@ -478,6 +644,9 @@ const getUtils = ( } }; + /** + * @returns {Integer|undefined} + */ utils.getFirstLine = () => { let firstLine; for (const { @@ -497,6 +666,12 @@ const getUtils = ( utils.seedTokens = seedTokens; + /** + * Sets tokens to empty string. + * + * @param {import('comment-parser').Tokens} tokens + * @returns {void} + */ utils.emptyTokens = (tokens) => { for (const prop of [ 'start', @@ -511,10 +686,22 @@ const getUtils = ( 'end', 'lineEnd', ]) { - tokens[prop] = ''; + tokens[ + /** + * @type {"start"|"postDelimiter"|"tag"|"type"|"postType"| + * "postTag"|"name"|"postName"|"description"|"end"|"lineEnd"} + */ ( + prop + ) + ] = ''; } }; + /** + * @param {Integer} sourceIndex + * @param {import('comment-parser').Tokens} tokens + * @returns {void} + */ utils.addLine = (sourceIndex, tokens) => { const number = (jsdoc.source[sourceIndex - 1]?.number || 0) + 1; jsdoc.source.splice(sourceIndex, 0, { @@ -530,10 +717,17 @@ const getUtils = ( // rewireSource(jsdoc); }; + /** + * @param {Integer} tagIndex + * @param {Integer} tagSourceOffset + * @param {Integer} numLines + * @returns {void} + */ utils.addLines = (tagIndex, tagSourceOffset, numLines) => { const { source: tagSource, } = jsdoc.tags[tagIndex]; + /** @type {Integer|undefined} */ let lastIndex; const firstNumber = jsdoc.source[0].number; tagSource.some(({ @@ -586,6 +780,9 @@ const getUtils = ( } }; + /** + * @returns {void} + */ utils.makeMultiline = () => { const { source: [ @@ -646,18 +843,32 @@ const getUtils = ( }); }; + /** + * @param {} params + * @returns {} + */ utils.flattenRoots = (params) => { return jsdocUtils.flattenRoots(params); }; + /** + * @param {boolean} useDefaultObjectProperties + * @returns {} + */ utils.getFunctionParameterNames = (useDefaultObjectProperties) => { return jsdocUtils.getFunctionParameterNames(node, useDefaultObjectProperties); }; + /** + * @returns {Integer} + */ utils.hasParams = () => { return jsdocUtils.hasParams(node); }; + /** + * @returns {boolean} + */ utils.isGenerator = () => { return node && ( node.generator || @@ -669,10 +880,21 @@ const getUtils = ( ); }; + /** + * @returns {boolean} + */ utils.isConstructor = () => { return jsdocUtils.isConstructor(node); }; + /** + * @param {string} tagName + * @returns {false|{ + * idx: Integer, + * name: string, + * type: string + * }[]} + */ utils.getJsdocTagsDeep = (tagName) => { const name = utils.getPreferredTagName({ tagName, @@ -684,6 +906,14 @@ const getUtils = ( return jsdocUtils.getJsdocTagsDeep(jsdoc, name); }; + /** + * @param {{ + * tagName: string, + * skipReportingBlockedTag?: boolean, + * allowObjectReturn?: boolean, + * defaultMessage?: string + * }} cfg + */ utils.getPreferredTagName = ({ tagName, skipReportingBlockedTag = false, @@ -709,26 +939,50 @@ const getUtils = ( return isObject && !allowObjectReturn ? ret.replacement : ret; }; + /** + * @param {string} name + * @param {string[]} definedTags + * @returns {boolean} + */ utils.isValidTag = (name, definedTags) => { return jsdocUtils.isValidTag(context, mode, name, definedTags); }; + /** + * @param {string[]} names + * @returns {boolean} + */ utils.hasATag = (names) => { return jsdocUtils.hasATag(jsdoc, names); }; + /** + * @param {string} name + * @returns {boolean} + */ utils.hasTag = (name) => { return jsdocUtils.hasTag(jsdoc, name); }; + /** + * @param {string} name + * @returns {} + */ utils.comparePaths = (name) => { return jsdocUtils.comparePaths(name); }; + /** + * @param {string} name + * @returns {} + */ utils.dropPathSegmentQuotes = (name) => { return jsdocUtils.dropPathSegmentQuotes(name); }; + /** + * @returns {boolean} + */ utils.avoidDocs = () => { if ( ignoreReplacesDocs !== false && @@ -770,8 +1024,21 @@ const getUtils = ( 'tagMightHaveNamePosition', 'tagMightHaveTypePosition', ]) { - utils[method] = (tagName, otherModeMaps) => { - const result = jsdocUtils[method](tagName); + /** + * @param {string} tagName + * @param {import('./getDefaultTagStructureForMode.js'). + * TagStructure[]} [otherModeMaps] + * @returns {boolean|{otherMode: true}} + */ + utils[ + /** @type {"tagMightHaveNamePosition"|"tagMightHaveTypePosition"} */ ( + method + ) + ] = (tagName, otherModeMaps) => { + const result = jsdocUtils[ + /** @type {"tagMightHaveNamePosition"|"tagMightHaveTypePosition"} */ + (method) + ](tagName); if (result) { return true; } @@ -781,7 +1048,10 @@ const getUtils = ( } const otherResult = otherModeMaps.some((otherModeMap) => { - return jsdocUtils[method](tagName, otherModeMap); + return jsdocUtils[ + /** @type {"tagMightHaveNamePosition"|"tagMightHaveTypePosition"} */ + (method) + ](tagName, otherModeMap); }); return otherResult ? { @@ -795,8 +1065,20 @@ const getUtils = ( 'tagMustHaveTypePosition', 'tagMissingRequiredTypeOrNamepath', ]) { - utils[method] = (tagName, otherModeMaps) => { - const result = jsdocUtils[method](tagName); + /** + * @param {string} tagName + * @param {import('./getDefaultTagStructureForMode.js'). + * TagStructure[]} otherModeMaps + * @returns {} + */ + utils[ + /** @type {"tagMustHaveNamePosition"|"tagMustHaveTypePosition"|"tagMissingRequiredTypeOrNamepath"} */ + (method) + ] = (tagName, otherModeMaps) => { + const result = jsdocUtils[ + /** @type {"tagMustHaveNamePosition"|"tagMustHaveTypePosition"|"tagMissingRequiredTypeOrNamepath"} */ + (method) + ](tagName); if (!result) { return false; } @@ -804,7 +1086,10 @@ const getUtils = ( // if (!otherModeMaps) { return true; } const otherResult = otherModeMaps.every((otherModeMap) => { - return jsdocUtils[method](tagName, otherModeMap); + return jsdocUtils[ + /** @type {"tagMustHaveNamePosition"|"tagMustHaveTypePosition"|"tagMissingRequiredTypeOrNamepath"} */ + (method) + ](tagName, otherModeMap); }); return otherResult ? true : { @@ -819,15 +1104,27 @@ const getUtils = ( 'isNamepathOrUrlReferencingTag', 'tagMightHaveNamepath', ]) { + /** + * @param {string} tagName + * @returns {} + */ utils[method] = (tagName) => { return jsdocUtils[method](tagName); }; } + /** + * @param {import('./jsdocUtils.js').ParserMode} mde + * @returns {import('./getDefaultTagStructureForMode.js').TagStructure} + */ utils.getTagStructureForMode = (mde) => { return jsdocUtils.getTagStructureForMode(mde, settings.structuredTags); }; + /** + * @param {} tag + * @returns {} + */ utils.mayBeUndefinedTypeTag = (tag) => { return jsdocUtils.mayBeUndefinedTypeTag(tag, settings.mode); }; @@ -836,6 +1133,9 @@ const getUtils = ( return jsdocUtils.hasValueOrExecutorHasNonEmptyResolveValue(node, anyPromiseAsReturn, allBranches); }; + /** + * @returns {boolean} + */ utils.hasYieldValue = () => { if ([ 'ExportNamedDeclaration', 'ExportDefaultDeclaration', @@ -846,14 +1146,23 @@ const getUtils = ( return jsdocUtils.hasYieldValue(node); }; + /** + * @returns {boolean} + */ utils.hasYieldReturnValue = () => { return jsdocUtils.hasYieldValue(node, true); }; + /** + * @returns {boolean} + */ utils.hasThrowValue = () => { return jsdocUtils.hasThrowValue(node); }; + /** + * @returns {boolean} + */ utils.isAsync = () => { return node.async; }; @@ -875,10 +1184,18 @@ const getUtils = ( return jsdocUtils.filterTags(tags, filter); }; + /** + * @param {import('comment-parser').Spec[]} tags + * @returns {} + */ utils.getTagsByType = (tags) => { return jsdocUtils.getTagsByType(context, mode, tags, tagNamePreference); }; + /** + * @param {string} tagName + * @returns {boolean} + */ utils.hasOptionTag = (tagName) => { const { tags, @@ -947,6 +1264,20 @@ const getUtils = ( return utils; }; +/* eslint-disable jsdoc/valid-types -- Old version */ +/** + * Settings from ESLint types. + * + * @typedef {{ + * [name: string]: any + * }} Settings + */ +/* eslint-enable jsdoc/valid-types -- Old version */ + +/** + * @param {import('eslint').Rule.RuleContext} context + * @returns {Settings} + */ const getSettings = (context) => { /* eslint-disable canonical/sort-keys */ const settings = { @@ -1006,11 +1337,22 @@ const getSettings = (context) => { /** * Create the report function * - * @param {object} context + * @param {import('eslint').Rule.RuleContext} context * @param {object} commentNode */ const makeReport = (context, commentNode) => { - const report = (message, fix = null, jsdocLoc = null, data = null) => { + /* eslint-disable jsdoc/valid-types -- Old version */ + /** + * @param {string} message + * @param {import('eslint').Rule.ReportFixer|null} fix + * @param {} jsdocLoc + * @param {undefined|{ + * [key: string]: string + * }} data + * @returns {void} + */ + const report = (message, fix = null, jsdocLoc = null, data = undefined) => { + /* eslint-enable jsdoc/valid-types -- Old version */ let loc; if (jsdocLoc) { @@ -1056,11 +1398,10 @@ const makeReport = (context, commentNode) => { /* eslint-disable jsdoc/no-undefined-types -- canonical still using an older version where not defined */ /** * @typedef {ReturnType} Utils - * @typedef {ReturnType} Settings * @typedef {( * arg: { - * context: object, - * sourceCode: object, + * context: import('eslint').Rule.RuleContext, + * sourceCode: import('eslint').SourceCode, * indent: string, * jsdoc: object, * jsdocNode: object, @@ -1073,6 +1414,21 @@ const makeReport = (context, commentNode) => { */ /* eslint-enable jsdoc/no-undefined-types -- canonical still using an older version where not defined */ +/** + * @param {} info + * @param {} indent + * @param {import('comment-parser').Block} jsdoc + * @param {} ruleConfig + * @param {import('eslint').Rule.RuleContext} context + * @param {} lines + * @param {import('@es-joy/jsdoccomment').Token} jsdocNode + * @param {} node + * @param {Settings} settings + * @param {import('eslint').SourceCode} sourceCode + * @param {} iterator + * @param {} state + * @param {boolean} iteratingAll + */ const iterate = ( info, indent, jsdoc, @@ -1137,6 +1493,13 @@ const iterate = ( }); }; +/** + * @param {} lines + * @param {import('@es-joy/jsdoccomment').Token} jsdocNode + * @returns {[indent: string, jsdoc: import('comment-parser').Block & { + * inlineTags: import('@es-joy/jsdoccomment').JsdocInlineTagNoType[] + * }]} + */ const getIndentAndJSDoc = function (lines, jsdocNode) { const sourceLine = lines[jsdocNode.loc.start.line - 1]; const indnt = sourceLine.charAt(0).repeat(jsdocNode.loc.start.column); @@ -1152,13 +1515,6 @@ const getIndentAndJSDoc = function (lines, jsdocNode) { * @typedef {{node: Node, state: StateObject}} NonCommentArgs */ -/** - * Our internal dynamic set of utilities. - * - * @todo Document - * @typedef {any} Utils - */ - /** * @typedef {object} RuleConfig * @property {EslintRuleMeta} meta ESLint rule meta @@ -1182,6 +1538,7 @@ const getIndentAndJSDoc = function (lines, jsdocNode) { * @param {boolean} additiveCommentContexts If true, will have a separate * iteration for each matching comment context. Otherwise, will iterate * once if there is a single matching comment context. + * @returns {import('eslint').Rule.RuleModule} */ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContexts) => { const trackedJsdocs = new Set(); @@ -1347,6 +1704,7 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext * * @param {JsdocVisitor} iterator * @param {RuleConfig} ruleConfig + * @returns {import('eslint').Rule.RuleModule} */ const checkFile = (iterator, ruleConfig) => { return { @@ -1412,6 +1770,7 @@ export default function iterateJsdoc (iterator, ruleConfig) { return iterateAllJsdocs(iterator, ruleConfig); } + /** @type {import('eslint').Rule.RuleModule} */ return { /** * The entrypoint for the JSDoc rule. diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index 91c578502..6ba34312e 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -1,5 +1,3 @@ -/* eslint-disable jsdoc/no-undefined-types */ - import { tryParse, } from '@es-joy/jsdoccomment'; @@ -16,7 +14,14 @@ import { } from './utils/hasReturnValue'; /** - * @typedef {"jsdoc"|"typescript"|"closure"} ParserMode + * @typedef {number} Integer + */ +/** + * @typedef {import('./utils/hasReturnValue.js').ESTreeOrTypeScriptNode} ESTreeOrTypeScriptNode + */ + +/** + * @typedef {"jsdoc"|"typescript"|"closure"|"permissive"} ParserMode */ /** @@ -25,25 +30,29 @@ import { let tagStructure; /** - * @param {ParserMode|"permissive"} mode + * @param {ParserMode} mode * @returns {void} */ const setTagStructure = (mode) => { tagStructure = getDefaultTagStructureForMode(mode); }; +/** + * @typedef {{ + * hasPropertyRest: boolean, + * hasRestElement: boolean, + * names: string[], + * rests: boolean[], + * }} FlattendRootInfo + */ + /** * Given a nested array of property names, reduce them to a single array, * appending the name of the root element along the way if present. * * @param {} params * @param {string} root - * @returns {{ - * hasPropertyRest: boolean, - * hasRestElement: boolean, - * names, - * rests: boolean[], - * }} + * @returns {FlattendRootInfo} */ const flattenRoots = (params, root = '') => { let hasRestElement = false; @@ -119,7 +128,7 @@ const flattenRoots = (params, root = '') => { }; /** - * @param {object} propSignature + * @param {ESTreeOrTypeScriptNode} propSignature * @returns {undefined|Array|string} */ const getPropertiesFromPropertySignature = (propSignature) => { @@ -143,15 +152,28 @@ const getPropertiesFromPropertySignature = (propSignature) => { }; /** - * @param {object} functionNode + * @param {ESTreeOrTypeScriptNode} functionNode * @param {boolean} [checkDefaultObjects] * @returns {Array} */ const getFunctionParameterNames = ( functionNode, checkDefaultObjects, ) => { - // eslint-disable-next-line complexity + /* eslint-disable complexity -- Temporary */ + /** + * @param {} param + * @param {boolean} [isProperty] + * @returns {undefined|{ + * isRestProperty: boolean|undefined, + * name: string, + * restElement: true + * }|[undefined|string, FlattendRootInfo|{ + * name: Integer, + * restElement: boolean + * }[]]} + */ const getParamName = (param, isProperty) => { + /* eslint-enable complexity -- Temporary */ const hasLeftTypeAnnotation = 'left' in param && 'typeAnnotation' in param.left; if ('typeAnnotation' in param || hasLeftTypeAnnotation) { @@ -203,16 +225,22 @@ const getFunctionParameterNames = ( switch (param.value.type) { case 'ArrayPattern': return [ - param.key.name, param.value.elements.map((prop, idx) => { + param.key.name, + /** @type {import('estree').ArrayPattern} */ ( + param.value + ).elements.map((prop, idx) => { return { name: idx, - restElement: prop.type === 'RestElement', + restElement: prop?.type === 'RestElement', }; }), ]; case 'ObjectPattern': return [ - param.key.name, param.value.properties.map((prop) => { + param.key.name, + /** @type {import('estree').ObjectPattern} */ ( + param.value + ).properties.map((prop) => { return getParamName(prop, isProperty); }), ]; @@ -223,7 +251,9 @@ const getFunctionParameterNames = ( // Default parameter if (checkDefaultObjects && param.value.right.type === 'ObjectExpression') { return [ - param.key.name, param.value.right.properties.map((prop) => { + param.key.name, /** @type {import('estree').AssignmentPattern} */ ( + param.value + ).right.properties.map((prop) => { return getParamName(prop, isProperty); }), ]; @@ -232,16 +262,20 @@ const getFunctionParameterNames = ( break; case 'ObjectPattern': return [ - param.key.name, param.value.left.properties.map((prop) => { + param.key.name, /** @type {import('estree').ObjectPattern} */ ( + param.value.left + ).properties.map((prop) => { return getParamName(prop, isProperty); }), ]; case 'ArrayPattern': return [ - param.key.name, param.value.left.elements.map((prop, idx) => { + param.key.name, /** @type {import('estree').ArrayPattern} */ ( + param.value.left + ).elements.map((prop, idx) => { return { name: idx, - restElement: prop.type === 'RestElement', + restElement: prop?.type === 'RestElement', }; }), ]; @@ -270,7 +304,11 @@ const getFunctionParameterNames = ( } if (param.type === 'ArrayPattern' || param.left?.type === 'ArrayPattern') { - const elements = param.elements || param.left?.elements; + const elements = /** @type {import('estree').ArrayPattern} */ ( + param + ).elements || /** @type {import('estree').ArrayPattern} */ ( + param.left + )?.elements; const roots = elements.map((prop, idx) => { return { name: `"${idx}"`, @@ -310,7 +348,7 @@ const getFunctionParameterNames = ( }; /** - * @param {Node} functionNode + * @param {ESTreeOrTypeScriptNode} functionNode * @returns {Integer} */ const hasParams = (functionNode) => { @@ -322,9 +360,13 @@ const hasParams = (functionNode) => { * Gets all names of the target type, including those that refer to a path, e.g. * "@param foo; @param foo.bar". * - * @param {object} jsdoc + * @param {import('comment-parser').Block} jsdoc * @param {string} targetTagName - * @returns {Array} + * @returns {{ + * idx: Integer, + * name: string, + * type: string + * }[]} */ const getJsdocTagsDeep = (jsdoc, targetTagName) => { const ret = []; @@ -353,8 +395,9 @@ const getJsdocTagsDeep = (jsdoc, targetTagName) => { const modeWarnSettings = WarnSettings(); /** - * @param {string} mode - * @param context + * @param {ParserMode} mode + * @param {import('eslint').Rule.RuleContext} context + * @returns {import('./tagNames.js').AliasedTags} */ const getTagNamesForMode = (mode, context) => { switch (mode) { @@ -384,11 +427,14 @@ const getTagNamesForMode = (mode, context) => { }; /** - * @param context + * @param {import('eslint').Rule.RuleContext} context * @param {ParserMode} mode * @param {string} name - * @param {object} tagPreference - * @returns {string|object} + * @param {TagNamePreference} tagPreference + * @returns {string|boolean|{ + * message: string; + * replacement?: string|undefined; + * }} */ const getPreferredTagName = ( context, @@ -421,7 +467,7 @@ const getPreferredTagName = ( }), ); - if (Object.prototype.hasOwnProperty.call(tagPreferenceFixed, name)) { + if (Object.hasOwn(tagPreferenceFixed, name)) { return tagPreferenceFixed[name]; } @@ -477,22 +523,34 @@ const hasTag = (jsdoc, targetTagName) => { /** * Get all tags, inline tags and inline tags in tags * - * @param {object} jsdoc - * @returns {Array} + * @param {import('comment-parser').Block & { + * inlineTags: import('@es-joy/jsdoccomment').JsdocInlineTagNoType[] + * }} jsdoc + * @param {boolean} includeInlineTags + * @returns {(import('comment-parser').Spec| + * import('@es-joy/jsdoccomment').JsdocInlineTagNoType)[]} */ const getAllTags = (jsdoc, includeInlineTags) => { return includeInlineTags ? [ ...jsdoc.tags, ...jsdoc.inlineTags, ...jsdoc.tags.flatMap((tag) => { - return tag.inlineTags; + return ( + /** + * @type {import('comment-parser').Spec & { + * inlineTags: import('@es-joy/jsdoccomment').JsdocInlineTagNoType[] + * }} + */ ( + tag + ).inlineTags + ); }), ] : jsdoc.tags; }; /** * @param {object} jsdoc - * @param {Array} targetTagNames + * @param {string[]} targetTagNames * @returns {boolean} */ const hasATag = (jsdoc, targetTagNames) => { @@ -504,9 +562,9 @@ const hasATag = (jsdoc, targetTagNames) => { /** * Checks if the JSDoc comment has an undefined type. * - * @param {JsDocTag} tag + * @param {import('comment-parser').Spec} tag * the tag which should be checked. - * @param {ParserMode|"permissive"} mode + * @param {ParserMode} mode * @returns {boolean} * true in case a defined type is undeclared; otherwise false. */ @@ -555,21 +613,34 @@ const mayBeUndefinedTypeTag = (tag, mode) => { }; /** - * @param map - * @param tag - * @returns {Map} + * @param {import('./getDefaultTagStructureForMode.js').TagStructure} map + * @param {string} tag + * @returns {Map} */ const ensureMap = (map, tag) => { if (!map.has(tag)) { map.set(tag, new Map()); } - return map.get(tag); + return /** @type {Map} */ (map.get(tag)); }; +/* eslint-disable jsdoc/valid-types -- Older non-TS version */ +/** + * @typedef {{ + * [tag: string]: { + * name: string|boolean, + * type: string[]|boolean, + * required: string[] + * } + * }} StructuredTags + */ +/* eslint-enable jsdoc/valid-types -- Older non-TS version */ + /** - * @param structuredTags - * @param tagMap + * @param {StructuredTags} structuredTags + * @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap + * @returns {void} */ const overrideTagStructure = (structuredTags, tagMap = tagStructure) => { for (const [ @@ -613,9 +684,9 @@ const overrideTagStructure = (structuredTags, tagMap = tagStructure) => { }; /** - * @param mode - * @param structuredTags - * @returns {Map} + * @param {ParserMode} mode + * @param {StructuredTags} structuredTags + * @returns {import('./getDefaultTagStructureForMode.js').TagStructure} */ const getTagStructureForMode = (mode, structuredTags) => { const tagStruct = getDefaultTagStructureForMode(mode); @@ -630,8 +701,8 @@ const getTagStructureForMode = (mode, structuredTags) => { }; /** - * @param tag - * @param {Map} tagMap + * @param {string} tag + * @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap * @returns {boolean} */ const isNamepathDefiningTag = (tag, tagMap = tagStructure) => { @@ -641,8 +712,8 @@ const isNamepathDefiningTag = (tag, tagMap = tagStructure) => { }; /** - * @param tag - * @param {Map} tagMap + * @param {string} tag + * @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap * @returns {boolean} */ const isNamepathReferencingTag = (tag, tagMap = tagStructure) => { @@ -651,8 +722,8 @@ const isNamepathReferencingTag = (tag, tagMap = tagStructure) => { }; /** - * @param tag - * @param {Map} tagMap + * @param {string} tag + * @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap * @returns {boolean} */ const isNamepathOrUrlReferencingTag = (tag, tagMap = tagStructure) => { @@ -661,8 +732,8 @@ const isNamepathOrUrlReferencingTag = (tag, tagMap = tagStructure) => { }; /** - * @param tag - * @param {Map} tagMap + * @param {string} tag + * @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap * @returns {boolean} */ const tagMustHaveTypePosition = (tag, tagMap = tagStructure) => { @@ -672,9 +743,9 @@ const tagMustHaveTypePosition = (tag, tagMap = tagStructure) => { }; /** - * @param tag - * @param {Map} tagMap - * @returns {boolean} + * @param {string} tag + * @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap + * @returns {boolean|string} */ const tagMightHaveTypePosition = (tag, tagMap = tagStructure) => { if (tagMustHaveTypePosition(tag, tagMap)) { @@ -693,8 +764,8 @@ const namepathTypes = new Set([ ]); /** - * @param tag - * @param {Map} tagMap + * @param {string} tag + * @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap * @returns {boolean} */ const tagMightHaveNamePosition = (tag, tagMap = tagStructure) => { @@ -706,8 +777,8 @@ const tagMightHaveNamePosition = (tag, tagMap = tagStructure) => { }; /** - * @param tag - * @param {Map} tagMap + * @param {string} tag + * @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap * @returns {boolean} */ const tagMightHaveNamepath = (tag, tagMap = tagStructure) => { @@ -717,8 +788,8 @@ const tagMightHaveNamepath = (tag, tagMap = tagStructure) => { }; /** - * @param tag - * @param {Map} tagMap + * @param {string} tag + * @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap * @returns {boolean} */ const tagMustHaveNamePosition = (tag, tagMap = tagStructure) => { @@ -729,7 +800,7 @@ const tagMustHaveNamePosition = (tag, tagMap = tagStructure) => { /** * @param tag - * @param {Map} tagMap + * @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap * @returns {boolean} */ const tagMightHaveEitherTypeOrNamePosition = (tag, tagMap) => { @@ -737,8 +808,8 @@ const tagMightHaveEitherTypeOrNamePosition = (tag, tagMap) => { }; /** - * @param tag - * @param {Map} tagMap + * @param {string} tag + * @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap * @returns {boolean} */ const tagMustHaveEitherTypeOrNamePosition = (tag, tagMap) => { @@ -749,7 +820,7 @@ const tagMustHaveEitherTypeOrNamePosition = (tag, tagMap) => { /** * @param tag - * @param {Map} tagMap + * @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap * @returns {boolean} */ const tagMissingRequiredTypeOrNamepath = (tag, tagMap = tagStructure) => { @@ -767,8 +838,14 @@ const tagMissingRequiredTypeOrNamepath = (tag, tagMap = tagStructure) => { return mustHaveEither && !hasEither && !mustHaveTypePosition; }; -// eslint-disable-next-line complexity +/* eslint-disable complexity -- Temporary */ +/** + * @param {ESTreeOrTypeScriptNode} node + * @param {boolean} [checkYieldReturnValue] + * @returns {boolean} + */ const hasNonFunctionYield = (node, checkYieldReturnValue) => { + /* eslint-enable complexity -- Temporary */ if (!node) { return false; } @@ -941,7 +1018,8 @@ const hasNonFunctionYield = (node, checkYieldReturnValue) => { /** * Checks if a node has a return statement. Void return does not count. * - * @param {object} node + * @param {ESTreeOrTypeScriptNode} node + * @param {boolean} [checkYieldReturnValue] * @returns {boolean} */ const hasYieldValue = (node, checkYieldReturnValue) => { @@ -953,8 +1031,8 @@ const hasYieldValue = (node, checkYieldReturnValue) => { /** * Checks if a node has a throws statement. * - * @param {object} node - * @param {boolean} innerFunction + * @param {ESTreeOrTypeScriptNode} node + * @param {boolean} [innerFunction] * @returns {boolean} */ // eslint-disable-next-line complexity @@ -1033,8 +1111,8 @@ const isInlineTag = (tag) => { * * @see {https://github.com/google/closure-compiler/wiki/Generic-Types} * @see {https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html#template} - * @param {JsDocTag} tag - * @returns {Array} + * @param {import('comment-parser').Spec} tag + * @returns {string[]} */ const parseClosureTemplateTag = (tag) => { return tag.name @@ -1053,7 +1131,7 @@ const parseClosureTemplateTag = (tag) => { * contexts designated by the rule. Returns an array of * ESTree AST types, indicating allowable contexts. * - * @param {*} context + * @param {import('eslint').Rule.RuleContext} context * @param {DefaultContexts} defaultContexts * @param settings * @returns {string[]} @@ -1134,8 +1212,30 @@ const tagsWithNamesAndDescriptions = new Set([ 'returns', 'return', ]); +/* eslint-disable jsdoc/valid-types -- Old version */ +/** + * @typedef {{ + * [key: string]: false| + * {message: string, replacement?: string} + * }} TagNamePreference + */ +/* eslint-enable jsdoc/valid-types -- Old version */ + +/** + * @param {import('eslint').Rule.RuleContext} context + * @param {ParserMode} mode + * @param {import('comment-parser').Spec[]} tags + * @param {TagNamePreference} tagPreference + * @returns {{ + * tagsWithNames: import('comment-parser').Spec[], + * tagsWithoutNames: import('comment-parser').Spec[] + * }} + */ const getTagsByType = (context, mode, tags, tagPreference) => { const descName = getPreferredTagName(context, mode, 'description', tagPreference); + /** + * @type {import('comment-parser').Spec[]} + */ const tagsWithoutNames = []; const tagsWithNames = filterTags(tags, (tag) => { const { @@ -1155,23 +1255,43 @@ const getTagsByType = (context, mode, tags, tagPreference) => { }; }; +/** + * @param {import('eslint').SourceCode} sourceCode + * @returns {string} + */ const getIndent = (sourceCode) => { return (sourceCode.text.match(/^\n*([ \t]+)/u)?.[1] ?? '') + ' '; }; +/** + * @param {ESTreeOrTypeScriptNode} node + * @returns {boolean} + */ const isConstructor = (node) => { return node?.type === 'MethodDefinition' && node.kind === 'constructor' || node?.parent?.kind === 'constructor'; }; +/** + * @param {ESTreeOrTypeScriptNode} node + * @returns {boolean} + */ const isGetter = (node) => { return node && node.parent?.kind === 'get'; }; +/** + * @param {ESTreeOrTypeScriptNode} node + * @returns {boolean} + */ const isSetter = (node) => { return node && node.parent?.kind === 'set'; }; +/** + * @param {ESTreeOrTypeScriptNode} node + * @returns {boolean} + */ const hasAccessorPair = (node) => { const { type, @@ -1194,6 +1314,13 @@ const hasAccessorPair = (node) => { }); }; +/** + * @param {import('comment-parser').Block} jsdoc + * @param {ESTreeOrTypeScriptNode} node + * @param {import('eslint').Rule.RuleContext} context + * @param {} schema + * @returns {boolean} + */ const exemptSpeciaMethods = (jsdoc, node, context, schema) => { const hasSchemaOption = (prop) => { const schemaProperties = schema[0].properties; diff --git a/src/rules/checkLineAlignment.js b/src/rules/checkLineAlignment.js index c4e144b4e..eb7dfba1d 100644 --- a/src/rules/checkLineAlignment.js +++ b/src/rules/checkLineAlignment.js @@ -157,7 +157,7 @@ const checkAlignment = ({ if (comment !== formatted) { report( 'Expected JSDoc block lines to be aligned.', - (fixer) => { + /** @type {import('eslint').Rule.ReportFixer} */ (fixer) => { return fixer.replaceText(jsdocNode, formatted); }, ); diff --git a/src/rules/checkTypes.js b/src/rules/checkTypes.js index 6778c5549..b4b6b3873 100644 --- a/src/rules/checkTypes.js +++ b/src/rules/checkTypes.js @@ -375,7 +375,7 @@ export default iterateJsdoc(({ const fixedType = stringify(typeAst); /** - * @param {any} fixer The ESLint fixer + * @param {import('eslint').Rule.ReportFixer} fixer The ESLint fixer * @returns {string} */ const fix = (fixer) => { diff --git a/src/rules/emptyTags.js b/src/rules/emptyTags.js index 148291ed4..fd590a35a 100644 --- a/src/rules/emptyTags.js +++ b/src/rules/emptyTags.js @@ -41,6 +41,7 @@ export default iterateJsdoc(({ settings.mode === 'closure' && emptyIfClosure.has(tagName) || settings.mode !== 'closure' && emptyIfNotClosure.has(tagName); }); + for (const tag of emptyTags) { const content = tag.name || tag.description || tag.type; if (content.trim()) { diff --git a/src/rules/matchDescription.js b/src/rules/matchDescription.js index 60d31423a..d241664dc 100644 --- a/src/rules/matchDescription.js +++ b/src/rules/matchDescription.js @@ -32,7 +32,7 @@ export default iterateJsdoc(({ } if (mainDescriptionMatch === false && ( - !tag || !Object.prototype.hasOwnProperty.call(tags, tag.tag)) + !tag || !Object.hasOwn(tags, tag.tag)) ) { return; } diff --git a/src/rules/noBadBlocks.js b/src/rules/noBadBlocks.js index a8e53b737..becde420a 100644 --- a/src/rules/noBadBlocks.js +++ b/src/rules/noBadBlocks.js @@ -66,7 +66,7 @@ export default iterateJsdoc(({ const report = makeReport(context, node); // eslint-disable-next-line no-loop-func - const fix = (fixer) => { + const fix = /** @type {import('eslint').Rule.ReportFixer} */ (fixer) => { const text = sourceCode.getText(node); return fixer.replaceText( diff --git a/src/rules/requireDescriptionCompleteSentence.js b/src/rules/requireDescriptionCompleteSentence.js index 958f2a0a8..875abae32 100644 --- a/src/rules/requireDescriptionCompleteSentence.js +++ b/src/rules/requireDescriptionCompleteSentence.js @@ -79,7 +79,7 @@ const validateDescription = ( return paragraphs.some((paragraph, parIdx) => { const sentences = extractSentences(paragraph, abbreviationsRegex); - const fix = (fixer) => { + const fix = /** @type {import('eslint').Rule.ReportFixer} */ (fixer) => { let text = sourceCode.getText(jsdocNode); if (!/[.:?!]$/u.test(paragraph)) { diff --git a/src/rules/requireJsdoc.js b/src/rules/requireJsdoc.js index 002e7f337..ed50bbc9b 100644 --- a/src/rules/requireJsdoc.js +++ b/src/rules/requireJsdoc.js @@ -288,7 +288,7 @@ export default { } } - const fix = (fixer) => { + 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; let baseNode = getReducedASTNode(node, sourceCode); @@ -451,7 +451,7 @@ export default { docs: { category: 'Stylistic Issues', description: 'Require JSDoc comments', - recommended: 'true', + recommended: true, url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-jsdoc', }, From d26fdf0db1fd290264d65cf21c1ede3f7cd02527 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 11 May 2023 15:04:12 -0700 Subject: [PATCH 081/273] fix(`no-undefined-types`): add line info to inline tags; fixes #1079 --- docs/rules/no-undefined-types.md | 18 +++++++++ src/jsdocUtils.js | 48 ++++++++++++++++++++++- test/rules/assertions/noUndefinedTypes.js | 42 ++++++++++++++++++++ 3 files changed, 107 insertions(+), 1 deletion(-) diff --git a/docs/rules/no-undefined-types.md b/docs/rules/no-undefined-types.md index 28403a0b6..a668d6195 100644 --- a/docs/rules/no-undefined-types.md +++ b/docs/rules/no-undefined-types.md @@ -283,6 +283,24 @@ function foo () { const a = new Todo(); // Settings: {"jsdoc":{"mode":"jsdoc"}} // Message: The type 'Omit' is undefined. + +/** + * Message with {@link NotKnown} + */ +// Message: The type 'NotKnown' is undefined. + +/** + * Message with + * a link that is {@link NotKnown} + */ +// Message: The type 'NotKnown' is undefined. + +/** + * @abc + * @someTag Message with + * a link that is {@link NotKnown} + */ +// Message: The type 'NotKnown' is undefined. ```` diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index 6ba34312e..939cbaad2 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -533,8 +533,54 @@ const hasTag = (jsdoc, targetTagName) => { const getAllTags = (jsdoc, includeInlineTags) => { return includeInlineTags ? [ ...jsdoc.tags, - ...jsdoc.inlineTags, + ...jsdoc.inlineTags.map((inlineTag) => { + // Tags don't have source or line numbers, so add before returning + let line = -1; + for (const { + tokens: { + description, + }, + } of jsdoc.source) { + line++; + if (description && description.includes(`{@${inlineTag.tag}`)) { + break; + } + } + + inlineTag.line = line; + + return inlineTag; + }), ...jsdoc.tags.flatMap((tag) => { + let tagBegins = -1; + for (const { + tokens: { + tag: tg, + }, + } of jsdoc.source) { + tagBegins++; + if (tg) { + break; + } + } + + for (const inlineTag of tag.inlineTags) { + let line; + for (const { + number, + tokens: { + description, + }, + } of tag.source) { + if (description && description.includes(`{@${inlineTag.tag}`)) { + line = number; + break; + } + } + + inlineTag.line = tagBegins + line - 1; + } + return ( /** * @type {import('comment-parser').Spec & { diff --git a/test/rules/assertions/noUndefinedTypes.js b/test/rules/assertions/noUndefinedTypes.js index 6482d5076..3bb00cf0e 100644 --- a/test/rules/assertions/noUndefinedTypes.js +++ b/test/rules/assertions/noUndefinedTypes.js @@ -490,6 +490,48 @@ export default { }, }, }, + { + code: ` + /** + * Message with {@link NotKnown} + */ + `, + errors: [ + { + line: 3, + message: 'The type \'NotKnown\' is undefined.', + }, + ], + }, + { + code: ` + /** + * Message with + * a link that is {@link NotKnown} + */ + `, + errors: [ + { + line: 4, + message: 'The type \'NotKnown\' is undefined.', + }, + ], + }, + { + code: ` + /** + * @abc + * @someTag Message with + * a link that is {@link NotKnown} + */ + `, + errors: [ + { + line: 5, + message: 'The type \'NotKnown\' is undefined.', + }, + ], + }, ], valid: [ { From 6ed61d66fee7a1b7aae992ae5bd8c4dc47219c45 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 11 May 2023 15:26:26 -0700 Subject: [PATCH 082/273] chore: update semver, jsdoccomment Also: - refactor: ts work - fix(`valid-types`): correct error message sp. --- docs/rules/no-missing-syntax.md | 6 + docs/rules/require-file-overview.md | 7 + docs/rules/valid-types.md | 2 +- package.json | 7 +- pnpm-lock.yaml | 89 +- src/alignTransform.js | 62 + src/iterateJsdoc.js | 1001 ++++++++++++----- src/jsdocUtils.js | 215 ++-- src/rules/checkAlignment.js | 5 + src/rules/checkExamples.js | 66 +- src/rules/checkIndentation.js | 11 +- src/rules/checkLineAlignment.js | 73 +- src/rules/checkParamNames.js | 6 +- src/rules/checkPropertyNames.js | 18 +- src/rules/checkTagNames.js | 77 +- src/rules/checkTypes.js | 12 +- src/rules/checkValues.js | 24 +- src/rules/emptyTags.js | 9 +- src/rules/matchDescription.js | 18 +- src/rules/noBadBlocks.js | 8 +- src/rules/noBlankBlockDescriptions.js | 2 + src/rules/noMissingSyntax.js | 68 +- src/rules/noMultiAsterisks.js | 9 +- src/rules/noRestrictedSyntax.js | 26 +- src/rules/noTypes.js | 3 + src/rules/noUndefinedTypes.js | 77 +- src/rules/requireAsteriskPrefix.js | 15 + src/rules/requireDescription.js | 4 + .../requireDescriptionCompleteSentence.js | 85 +- src/rules/requireFileOverview.js | 10 +- .../requireHyphenBeforeParamDescription.js | 34 +- src/rules/requireReturns.js | 2 +- src/rules/requireReturnsCheck.js | 5 + src/rules/requireThrows.js | 2 +- src/rules/requireYields.js | 8 +- src/rules/requireYieldsCheck.js | 33 +- src/rules/tagLines.js | 31 +- src/rules/textEscaping.js | 20 +- src/rules/validTypes.js | 37 +- src/utils/hasReturnValue.js | 2 +- test/iterateJsdoc.js | 8 +- test/jsdocUtils.js | 36 +- test/rules/assertions/noMissingSyntax.js | 22 + test/rules/assertions/requireFileOverview.js | 23 + test/rules/assertions/validTypes.js | 2 +- 45 files changed, 1716 insertions(+), 564 deletions(-) diff --git a/docs/rules/no-missing-syntax.md b/docs/rules/no-missing-syntax.md index f11eb3d43..6608f9a8f 100644 --- a/docs/rules/no-missing-syntax.md +++ b/docs/rules/no-missing-syntax.md @@ -189,6 +189,12 @@ function quux () { function quux () {} // "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[name=/opt_/])","context":"any","message":"Require names matching `/^opt_/i`."}]}] // Message: Require names matching `/^opt_/i`. + +/** + * @implements {Bar|Foo} + */ +// "jsdoc/no-missing-syntax": ["error"|"warn", {"contexts":[{"context":"FunctionDeclaration"}]}] +// Message: Syntax is required: FunctionDeclaration ```` diff --git a/docs/rules/require-file-overview.md b/docs/rules/require-file-overview.md index 4e596c431..731ae22a1 100644 --- a/docs/rules/require-file-overview.md +++ b/docs/rules/require-file-overview.md @@ -229,6 +229,13 @@ function quux () { */ // "jsdoc/require-file-overview": ["error"|"warn", {"tags":{"file":{"initialCommentsOnly":true,"preventDuplicates":true}}}] // Message: Duplicate @file + +/** + * + */ +function quux () {} +// Settings: {"jsdoc":{"tagNamePreference":{"file":{"replacement":"fileoverview"}}}} +// Message: Missing @fileoverview ```` diff --git a/docs/rules/valid-types.md b/docs/rules/valid-types.md index 4271b6f73..8c88d81d5 100644 --- a/docs/rules/valid-types.md +++ b/docs/rules/valid-types.md @@ -437,7 +437,7 @@ function quux () {} */ function quux () {} // Settings: {"jsdoc":{"mode":"closure"}} -// Message: Syntax error in supresss type: blah +// Message: Syntax error in suppress type: blah /** * @param {Object[]} employees diff --git a/package.json b/package.json index 45158e0d1..3b27f4c7a 100644 --- a/package.json +++ b/package.json @@ -5,13 +5,13 @@ "url": "http://gajus.com" }, "dependencies": { - "@es-joy/jsdoccomment": "~0.39.1", + "@es-joy/jsdoccomment": "~0.39.3", "are-docs-informative": "^0.0.2", "comment-parser": "1.3.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", - "semver": "^7.5.0", + "semver": "^7.5.1", "spdx-expression-parse": "^3.0.1" }, "description": "JSDoc linting rules for ESLint.", @@ -32,10 +32,11 @@ "@types/chai": "^4.3.5", "@types/debug": "^4.1.7", "@types/eslint": "^8.37.0", + "@types/esquery": "^1.0.2", "@types/estree": "^1.0.1", "@types/lodash.defaultsdeep": "^4.6.7", "@types/mocha": "^10.0.1", - "@types/node": "^20.1.2", + "@types/node": "^20.1.3", "@types/semver": "^7.5.0", "@types/spdx-expression-parse": "^3.0.2", "@typescript-eslint/parser": "^5.59.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f410e6a47..f9ba68227 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,8 +2,8 @@ lockfileVersion: '6.0' dependencies: '@es-joy/jsdoccomment': - specifier: ~0.39.1 - version: 0.39.1 + specifier: ~0.39.3 + version: 0.39.3 are-docs-informative: specifier: ^0.0.2 version: 0.0.2 @@ -20,8 +20,8 @@ dependencies: specifier: ^1.5.0 version: 1.5.0 semver: - specifier: ^7.5.0 - version: 7.5.0 + specifier: ^7.5.1 + version: 7.5.1 spdx-expression-parse: specifier: ^3.0.1 version: 3.0.1 @@ -75,6 +75,9 @@ devDependencies: '@types/eslint': specifier: ^8.37.0 version: 8.37.0 + '@types/esquery': + specifier: ^1.0.2 + version: 1.0.2 '@types/estree': specifier: ^1.0.1 version: 1.0.1 @@ -85,8 +88,8 @@ devDependencies: specifier: ^10.0.1 version: 10.0.1 '@types/node': - specifier: ^20.1.2 - version: 20.1.2 + specifier: ^20.1.3 + version: 20.1.3 '@types/semver': specifier: ^7.5.0 version: 7.5.0 @@ -119,7 +122,7 @@ devDependencies: version: 8.39.0 eslint-config-canonical: specifier: ~33.0.1 - version: 33.0.1(@babel/core@7.21.8)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.1.2)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4) + version: 33.0.1(@babel/core@7.21.8)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.1.3)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4) gitdown: specifier: ^3.1.5 version: 3.1.5 @@ -1487,8 +1490,8 @@ packages: jsdoc-type-pratt-parser: 4.0.0 dev: true - /@es-joy/jsdoccomment@0.39.1: - resolution: {integrity: sha512-jTgq0ZTLIvVGdgm1KfzX/kd1XgrcbnVJ0zAuk7vTrzIo/byntdtG6fj9KwV6wuN1+jIONMbsiFnx9RYa6N5nLQ==} + /@es-joy/jsdoccomment@0.39.3: + resolution: {integrity: sha512-q6pObzaS+aTA96kl4DF91QILNpSiDE8S89cQdJnhIc7hWzwIHPnfBnsiBVa0Z/R9pLHdZTnXEMnggGMmCq7HmA==} engines: {node: '>=16'} dependencies: comment-parser: 1.3.1 @@ -1537,7 +1540,7 @@ packages: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true - /@graphql-eslint/eslint-plugin@3.18.0(@babel/core@7.21.8)(@types/node@20.1.2)(graphql@16.6.0): + /@graphql-eslint/eslint-plugin@3.18.0(@babel/core@7.21.8)(@types/node@20.1.3)(graphql@16.6.0): resolution: {integrity: sha512-riEEfRycc0+pWxcEWqHi8woRxzg1xZqAfh9DRACJUR7bTN8dmc1N04i7+pvW4sevClUFYC2wuL1Vtr+DwzXLUg==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -1550,7 +1553,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.2.12 graphql: 16.6.0 - graphql-config: 4.5.0(@types/node@20.1.2)(graphql@16.6.0) + graphql-config: 4.5.0(@types/node@20.1.3)(graphql@16.6.0) graphql-depth-limit: 1.1.0(graphql@16.6.0) lodash.lowercase: 4.3.0 tslib: 2.5.0 @@ -1625,7 +1628,7 @@ packages: - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.9(@types/node@20.1.2)(graphql@16.6.0): + /@graphql-tools/executor-http@0.1.9(@types/node@20.1.3)(graphql@16.6.0): resolution: {integrity: sha512-tNzMt5qc1ptlHKfpSv9wVBVKCZ7gks6Yb/JcYJluxZIT4qRV+TtOFjpptfBU63usgrGVOVcGjzWc/mt7KhmmpQ==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1636,7 +1639,7 @@ packages: dset: 3.1.2 extract-files: 11.0.0 graphql: 16.6.0 - meros: 1.2.1(@types/node@20.1.2) + meros: 1.2.1(@types/node@20.1.3) tslib: 2.5.0 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -1759,7 +1762,7 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.1.2)(graphql@16.6.0): + /@graphql-tools/url-loader@7.17.18(@types/node@20.1.3)(graphql@16.6.0): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1767,7 +1770,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 9.0.35(graphql@16.6.0) '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.6.0) - '@graphql-tools/executor-http': 0.1.9(@types/node@20.1.2)(graphql@16.6.0) + '@graphql-tools/executor-http': 0.1.9(@types/node@20.1.3)(graphql@16.6.0) '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.6.0) '@graphql-tools/utils': 9.2.1(graphql@16.6.0) '@graphql-tools/wrap': 9.4.2(graphql@16.6.0) @@ -1955,7 +1958,7 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: '@gar/promisify': 1.1.3 - semver: 7.5.0 + semver: 7.5.1 dev: true /@npmcli/move-file@2.0.1: @@ -2214,7 +2217,7 @@ packages: read-pkg: 8.0.0 registry-auth-token: 5.0.2 semantic-release: 21.0.2 - semver: 7.5.0 + semver: 7.5.1 tempy: 3.0.0 dev: true @@ -2261,6 +2264,12 @@ packages: '@types/json-schema': 7.0.11 dev: true + /@types/esquery@1.0.2: + resolution: {integrity: sha512-qeAoHiWfqF4ST6An3DM2r1743bWL7B5hW4oNR9tWkdOjFUR1aK2j0jnYvW6h30VGDeXQ+1bWOYTej4JVo/5+PA==} + dependencies: + '@types/estree': 1.0.1 + dev: true + /@types/estree@1.0.1: resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} dev: true @@ -2295,8 +2304,8 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node@20.1.2: - resolution: {integrity: sha512-CTO/wa8x+rZU626cL2BlbCDzydgnFNgc19h4YvizpTO88MFQxab8wqisxaofQJ/9bLGugRdWIuX/TbIs6VVF6g==} + /@types/node@20.1.3: + resolution: {integrity: sha512-NP2yfZpgmf2eDRPmgGq+fjGjSwFgYbihA8/gK+ey23qT9RkxsgNTZvGOEpXgzIGqesTYkElELLgtKoMQTys5vA==} dev: true /@types/normalize-package-data@2.4.1: @@ -2318,7 +2327,7 @@ packages: /@types/ws@8.5.4: resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: - '@types/node': 20.1.2 + '@types/node': 20.1.3 dev: true /@typescript-eslint/eslint-plugin@5.59.2(@typescript-eslint/parser@5.59.5)(eslint@8.39.0)(typescript@5.0.4): @@ -2342,7 +2351,7 @@ packages: grapheme-splitter: 1.0.4 ignore: 5.2.4 natural-compare-lite: 1.4.0 - semver: 7.5.0 + semver: 7.5.1 tsutils: 3.21.0(typescript@5.0.4) typescript: 5.0.4 transitivePeerDependencies: @@ -2442,7 +2451,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.0 + semver: 7.5.1 tsutils: 3.21.0(typescript@5.0.4) typescript: 5.0.4 transitivePeerDependencies: @@ -2463,7 +2472,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.0 + semver: 7.5.1 tsutils: 3.21.0(typescript@5.0.4) typescript: 5.0.4 transitivePeerDependencies: @@ -2484,7 +2493,7 @@ packages: '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.0.4) eslint: 8.39.0 eslint-scope: 5.1.1 - semver: 7.5.0 + semver: 7.5.1 transitivePeerDependencies: - supports-color - typescript @@ -4055,7 +4064,7 @@ packages: lodash.zip: 4.2.0 dev: true - /eslint-config-canonical@33.0.1(@babel/core@7.21.8)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.1.2)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4): + /eslint-config-canonical@33.0.1(@babel/core@7.21.8)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.1.3)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4): resolution: {integrity: sha512-g5hyJr5s4WnyAp5FdfMyItz72hOgXAB/4tsFMBP944bcei2QJyMvwslpKdiQL299HSJBpJ9xbNBhx7oeFI7zIQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -4063,7 +4072,7 @@ packages: dependencies: '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.39.0) '@babel/eslint-plugin': 7.19.1(@babel/eslint-parser@7.21.8)(eslint@8.39.0) - '@graphql-eslint/eslint-plugin': 3.18.0(@babel/core@7.21.8)(@types/node@20.1.2)(graphql@16.6.0) + '@graphql-eslint/eslint-plugin': 3.18.0(@babel/core@7.21.8)(@types/node@20.1.3)(graphql@16.6.0) '@next/eslint-plugin-next': 12.3.4 '@rushstack/eslint-patch': 1.2.0 '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.5)(eslint@8.39.0)(typescript@5.0.4) @@ -4304,7 +4313,7 @@ packages: eslint: 8.39.0 esquery: 1.5.0 regextras: 0.8.0 - semver: 7.5.0 + semver: 7.5.1 spdx-expression-parse: 3.0.1 transitivePeerDependencies: - supports-color @@ -4461,7 +4470,7 @@ packages: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 safe-regex: 2.1.1 - semver: 7.5.0 + semver: 7.5.1 strip-indent: 3.0.0 transitivePeerDependencies: - supports-color @@ -5272,7 +5281,7 @@ packages: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: true - /graphql-config@4.5.0(@types/node@20.1.2)(graphql@16.6.0): + /graphql-config@4.5.0(@types/node@20.1.3)(graphql@16.6.0): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -5286,7 +5295,7 @@ packages: '@graphql-tools/json-file-loader': 7.4.18(graphql@16.6.0) '@graphql-tools/load': 7.8.14(graphql@16.6.0) '@graphql-tools/merge': 8.4.1(graphql@16.6.0) - '@graphql-tools/url-loader': 7.17.18(@types/node@20.1.2)(graphql@16.6.0) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.1.3)(graphql@16.6.0) '@graphql-tools/utils': 9.2.1(graphql@16.6.0) cosmiconfig: 8.0.0 graphql: 16.6.0 @@ -6278,7 +6287,7 @@ packages: acorn: 8.8.2 eslint-visitor-keys: 3.4.1 espree: 9.5.2 - semver: 7.5.0 + semver: 7.5.1 dev: true /jsonfile@6.1.0: @@ -6712,7 +6721,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.2.1(@types/node@20.1.2): + /meros@1.2.1(@types/node@20.1.3): resolution: {integrity: sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g==} engines: {node: '>=13'} peerDependencies: @@ -6721,7 +6730,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.1.2 + '@types/node': 20.1.3 dev: true /micro-spelling-correcter@1.1.1: @@ -7053,7 +7062,7 @@ packages: nopt: 6.0.0 npmlog: 6.0.2 rimraf: 3.0.2 - semver: 7.5.0 + semver: 7.5.1 tar: 6.1.14 which: 2.0.2 transitivePeerDependencies: @@ -7095,7 +7104,7 @@ packages: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.12.0 - semver: 7.5.0 + semver: 7.5.1 validate-npm-package-license: 3.0.4 dev: true @@ -7105,7 +7114,7 @@ packages: dependencies: hosted-git-info: 6.1.1 is-core-module: 2.12.0 - semver: 7.5.0 + semver: 7.5.1 validate-npm-package-license: 3.0.4 dev: true @@ -8331,7 +8340,7 @@ packages: p-reduce: 3.0.0 read-pkg-up: 9.1.0 resolve-from: 5.0.0 - semver: 7.5.0 + semver: 7.5.1 semver-diff: 4.0.0 signale: 1.4.0 yargs: 17.7.2 @@ -8344,7 +8353,7 @@ packages: resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} engines: {node: '>=12'} dependencies: - semver: 7.5.0 + semver: 7.5.1 dev: true /semver-regex@4.0.5: @@ -8362,8 +8371,8 @@ packages: hasBin: true dev: true - /semver@7.5.0: - resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==} + /semver@7.5.1: + resolution: {integrity: sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==} engines: {node: '>=10'} hasBin: true dependencies: diff --git a/src/alignTransform.js b/src/alignTransform.js index a634dfc6d..20cbb94c8 100644 --- a/src/alignTransform.js +++ b/src/alignTransform.js @@ -15,6 +15,16 @@ const { rewireSource, } = util; +/** + * @typedef {{ + * name: import('./iterateJsdoc').Integer, + * start: import('./iterateJsdoc').Integer, + * tag: import('./iterateJsdoc').Integer, + * type: import('./iterateJsdoc').Integer + * }} Width + */ + +/** @type {Width} */ const zeroWidth = { name: 0, start: 0, @@ -22,6 +32,12 @@ const zeroWidth = { type: 0, }; +/** + * @param {string[]} tags + * @param {} index + * @param {import('comment-parser').Line[]} source + * @returns {boolean} + */ const shouldAlign = (tags, index, source) => { const tag = source[index].tokens.tag.replace('@', ''); const includesTag = tags.includes(tag); @@ -49,6 +65,22 @@ const shouldAlign = (tags, index, source) => { return true; }; +/** + * @param {string[]} tags + * @returns {( + * width: Width, + * line: { + * tokens: import('comment-parser').Tokens + * }, + * index: import('./iterateJsdoc.js').Integer, + * source: import('comment-parser').Line[] + * ) => { + * name: import('./iterateJsdoc.js').Integer, + * start: import('./iterateJsdoc.js').Integer, + * tag: import('./iterateJsdoc.js').Integer, + * type: import('./iterateJsdoc.js').Integer + * }} + */ const getWidth = (tags) => { return (width, { tokens, @@ -66,6 +98,10 @@ const getWidth = (tags) => { }; }; +/** + * @param {} fields + * @returns {} + */ const getTypelessInfo = (fields) => { const hasNoTypes = fields.tags.every(({ type, @@ -95,10 +131,23 @@ const getTypelessInfo = (fields) => { }; }; +/** + * @param {import('./iterateJsdoc.js').Integer} len + * @returns {string} + */ const space = (len) => { return ''.padStart(len, ' '); }; +/** + * @param {{ + * customSpacings: import('../src/rules/checkLineAlignment.js').CustomSpacings, + * tags: string[], + * indent: string, + * preserveMainDescriptionPostDelimiter: boolean, + * wrapIndent: string, + * }} cfg + */ const alignTransform = ({ customSpacings, tags, @@ -109,6 +158,11 @@ const alignTransform = ({ let intoTags = false; let width; + /** + * @param {} tokens + * @param {} typelessInfo + * @returns {} + */ const alignTokens = (tokens, typelessInfo) => { const nothingAfter = { delim: false, @@ -181,6 +235,14 @@ const alignTransform = ({ return tokens; }; + /** + * @param {} line + * @param {} index + * @param {} source + * @param {} typelessInfo + * @param {} indentTag + * @returns {} + */ const update = (line, index, source, typelessInfo, indentTag) => { const tokens = { ...line.tokens, diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index 001f875a6..00d695eaf 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -13,6 +13,495 @@ import jsdocUtils from './jsdocUtils'; * @typedef {number} Integer */ +/** + * @callback CheckJsdoc + * @param {{ + * lastIndex?: Integer, + * selector: string + * }} info + * @param {(jsdoc: import('comment-parser').Block) => boolean|undefined} handler + * @param {import('eslint').Rule.Node} node + * @returns {void} + */ + +/** + * @callback ForEachPreferredTag + * @param {string} tagName + * @param {( + * matchingJsdocTag: import('comment-parser').Spec & { + * line: Integer + * }, + * targetTagName: string + * ) => void} arrayHandler + * @param {boolean} [skipReportingBlockedTag] + * @returns {void} + */ + +/** + * @callback ReportSettings + * @param {string} message + * @returns {void} + */ + +/** + * @callback ParseClosureTemplateTag + * @param {import('comment-parser').Spec} tag + * @returns {string[]} + */ + +/** + * @callback GetPreferredTagNameObject + * @param {{ + * tagName: string + * }} cfg + * @returns {string|boolean|{ + * message: string; + * replacement?: string|undefined + * }|{ + * blocked: true, + * tagName: string + * }} + */ + +/** + * @typedef {{ + * forEachPreferredTag: ForEachPreferredTag, + * reportSettings: ReportSettings, + * parseClosureTemplateTag: ParseClosureTemplateTag, + * getPreferredTagNameObject: GetPreferredTagNameObject, + * pathDoesNotBeginWith: import('./jsdocUtils.js').PathDoesNotBeginWith + * }} BasicUtils + */ + +/** + * @callback IsIteratingFunction + * @returns {boolean} + */ + +/** + * @callback IsVirtualFunction + * @returns {boolean} + */ + +/** + * @callback Stringify + * @param {import('comment-parser').Block} tagBlock + * @param {boolean} [specRewire] + * @returns {string} + */ + +/* eslint-disable jsdoc/valid-types -- Old version */ +/** + * @callback ReportJSDoc + * @param {string} msg + * @param {null|import('comment-parser').Spec|{line: Integer, column?: Integer}} tag + * @param {(() => void)|null} handler + * @param {boolean} [specRewire] + * @param {{ + * [key: string]: undefined|string + * }} [data] + */ +/* eslint-enable jsdoc/valid-types -- Old version */ + +/** + * @callback GetRegexFromString + * @param {string} str + * @param {string} [requiredFlags] + * @returns {RegExp} + */ + +/** + * @callback GetTagDescription + * @param {import('comment-parser').Spec} tg + * @param {boolean} [returnArray] + * @returns {string[]|string} + */ + +/** + * @callback SetTagDescription + * @param {import('comment-parser').Spec} tg + * @param {RegExp} matcher + * @param {(description: string) => string} setter + * @returns {Integer} + */ + +/** + * @callback GetDescription + * @returns {{ + * description: string, + * descriptions: string[], + * lastDescriptionLine: Integer + * }} + */ + +/* eslint-disable jsdoc/no-undefined-types -- Bug */ +/** + * @callback SetBlockDescription + * @param {( + * info: { + * delimiter: string, + * postDelimiter: string, + * start: string + * }, + * seedTokens: ( + * tokens?: Partial + * ) => import('comment-parser').Tokens, + * descLines: string[] + * ) => import('comment-parser').Line[]} setter + * @returns {void} + */ +/* eslint-enable jsdoc/no-undefined-types -- Bug */ + +/** + * @callback SetDescriptionLines + * @param {RegExp} matcher + * @param {(description: string) => string} setter + * @returns {Integer} + */ + +/* eslint-disable jsdoc/no-undefined-types -- TS */ +/** + * @callback ChangeTag + * @param {import('comment-parser').Spec} tag + * @param {...Partial} tokens + * @returns {void} + */ +/* eslint-enable jsdoc/no-undefined-types -- TS */ + +/* eslint-disable jsdoc/no-undefined-types -- TS */ +/** + * @callback SetTag + * @param {import('comment-parser').Spec & { + * line: Integer + * }} tag + * @param {Partial} [tokens] + * @returns {void} + */ +/* eslint-enable jsdoc/no-undefined-types -- TS */ + +/** + * @callback RemoveTag + * @param {Integer} tagIndex + * @param {{ + * removeEmptyBlock?: boolean, + * tagSourceOffset?: Integer + * }} [cfg] + * @returns {void} + */ + +/** + * @callback AddTag + * @param {string} targetTagName + * @param {Integer} [number] + * @param {import('comment-parser').Tokens|{}} [tokens] + * @returns {void} + */ + +/** + * @callback GetFirstLine + * @returns {Integer|undefined} + */ + +/* eslint-disable jsdoc/no-undefined-types -- TS */ +/** + * @typedef {( + * tokens?: Partial | undefined + * ) => import('comment-parser').Tokens} SeedTokens + */ +/* eslint-enable jsdoc/no-undefined-types -- TS */ + +/** + * Sets tokens to empty string. + * + * @callback EmptyTokens + * @param {import('comment-parser').Tokens} tokens + * @returns {void} + */ + +/** + * @callback AddLine + * @param {Integer} sourceIndex + * @param {import('comment-parser').Tokens} tokens + * @returns {void} + */ + +/** + * @callback AddLines + * @param {Integer} tagIndex + * @param {Integer} tagSourceOffset + * @param {Integer} numLines + * @returns {void} + */ + +/** + * @callback MakeMultiline + * @returns {void} + */ + +/** + * @callback GetFunctionParameterNames + * @param {boolean} [useDefaultObjectProperties] + * @returns {} + */ + +/** + * @callback HasParams + * @returns {Integer} + */ + +/** + * @callback IsGenerator + * @returns {boolean} + */ + +/** + * @callback IsConstructor + * @returns {boolean} + */ + +/** + * @callback GetJsdocTagsDeep + * @param {string} tagName + * @returns {false|{ + * idx: Integer, + * name: string, + * type: string + * }[]} + */ + +/** + * @callback GetPreferredTagName + * @param {{ + * tagName: string, + * skipReportingBlockedTag?: boolean, + * allowObjectReturn?: boolean, + * defaultMessage?: string + * }} cfg + */ + +/** + * @callback IsValidTag + * @param {string} name + * @param {string[]} definedTags + * @returns {boolean} + */ + +/** + * @callback HasATag + * @param {string[]} names + * @returns {boolean} + */ + +/** + * @callback HasTag + * @param {string} name + * @returns {boolean} + */ + +/** + * @callback ComparePaths + * @param {string} name + * @returns {(otherPathName: string) => void} + */ + +/** + * @callback DropPathSegmentQuotes + * @param {string} name + * @returns {string} + */ + +/** + * @callback AvoidDocs + * @returns {boolean} + */ + +/** + * @callback TagMightHaveNamePositionTypePosition + * @param {string} tagName + * @param {import('./getDefaultTagStructureForMode.js'). + * TagStructure[]} [otherModeMaps] + * @returns {boolean|{otherMode: true}} + */ + +/** + * @callback TagMustHave + * @param {string} tagName + * @param {import('./getDefaultTagStructureForMode.js'). + * TagStructure[]} otherModeMaps + * @returns {boolean|{ + * otherMode: false + * }} + */ + +/** + * @callback TagMissingRequiredTypeOrNamepath + * @param {import('comment-parser').Spec} tag + * @param {import('./getDefaultTagStructureForMode.js'). + * TagStructure[]} otherModeMaps + * @returns {boolean|{ + * otherMode: false + * }} + */ + +/** + * @callback IsNamepathX + * @param {string} tagName + * @returns {} + */ + +/** + * @callback GetTagStructureForMode + * @param {import('./jsdocUtils.js').ParserMode} mde + * @returns {import('./getDefaultTagStructureForMode.js').TagStructure} + */ + +/** + * @callback MayBeUndefinedTypeTag + * @param {import('comment-parser').Spec} tag + * @returns {boolean} + */ + +/** + * @callback HasValueOrExecutorHasNonEmptyResolveValue + * @param {boolean} anyPromiseAsReturn + * @param {boolean} [allBranches] + * @returns {boolean} + */ + +/** + * @callback HasYieldValue + * @returns {boolean} + */ + +/** + * @callback HasYieldReturnValue + * @returns {boolean} + */ + +/** + * @callback HasThrowValue + * @returns {boolean} + */ + +/** + * @callback IsAsync + * @returns {boolean|undefined} + */ + +/** + * @callback GetTags + * @param {string} tagName + * @returns {import('comment-parser').Spec[]} + */ + +/** + * @callback GetPresentTags + * @param {string[]} tagList + * @returns {import('comment-parser').Spec[]} + */ + +/** + * @callback FilterTags + * @param {(tag: import('comment-parser').Spec) => boolean} filter + * @param {boolean} [includeInlineTags] + * @returns {import('comment-parser').Spec[]} + */ + +/** + * @callback GetTagsByType + * @param {import('comment-parser').Spec[]} tags + * @returns {{ + * tagsWithNames: import('comment-parser').Spec[], + * tagsWithoutNames: import('comment-parser').Spec[] + * }} + */ + +/** + * @callback HasOptionTag + * @param {string} tagName + * @returns {boolean} + */ + +/** + * @callback GetClassNode + * @returns {Node|null} + */ + +/** + * @callback GetClassJsdoc + * @returns {null|import('comment-parser').Block & { + * inlineTags: import('@es-joy/jsdoccomment').InlineTag[]} + * } + */ + +/** + * @callback ClassHasTag + * @param {string} tagName + * @returns {boolean} + */ + +/** + * @typedef {BasicUtils & { + * isIteratingFunction: IsIteratingFunction, + * isVirtualFunction: IsVirtualFunction, + * stringify: Stringify, + * reportJSDoc: ReportJSDoc, + * getRegexFromString: GetRegexFromString, + * getTagDescription: GetTagDescription, + * setTagDescription: SetTagDescription, + * getDescription: GetDescription, + * setBlockDescription: SetBlockDescription, + * setDescriptionLines: SetDescriptionLines, + * changeTag: ChangeTag, + * setTag: SetTag, + * removeTag: RemoveTag, + * addTag: AddTag, + * getFirstLine: GetFirstLine, + * seedTokens: SeedTokens, + * emptyTokens: EmptyTokens, + * addLine: AddLine, + * addLines: AddLines, + * makeMultiline: MakeMultiline, + * flattenRoots: import('./jsdocUtils.js').FlattenRoots, + * getFunctionParameterNames: GetFunctionParameterNames, + * hasParams: HasParams, + * isGenerator: IsGenerator, + * isConstructor: IsConstructor, + * getJsdocTagsDeep: GetJsdocTagsDeep, + * getPreferredTagName: GetPreferredTagName, + * isValidTag: IsValidTag, + * hasATag: HasATag, + * hasTag: HasTag, + * comparePaths: ComparePaths, + * dropPathSegmentQuotes: DropPathSegmentQuotes, + * avoidDocs: AvoidDocs, + * tagMightHaveNamePosition: TagMightHaveNamePositionTypePosition, + * tagMightHaveTypePosition: TagMightHaveNamePositionTypePosition, + * tagMustHaveNamePosition: TagMustHave, + * tagMustHaveTypePosition: TagMustHave, + * tagMissingRequiredTypeOrNamepath: TagMissingRequiredTypeOrNamepath, + * isNamepathDefiningTag: IsNamepathX, + * isNamepathReferencingTag: IsNamepathX, + * isNamepathOrUrlReferencingTag: IsNamepathX, + * tagMightHaveNamepath: IsNamepathX, + * getTagStructureForMode: GetTagStructureForMode, + * mayBeUndefinedTypeTag: MayBeUndefinedTypeTag, + * hasValueOrExecutorHasNonEmptyResolveValue: HasValueOrExecutorHasNonEmptyResolveValue, + * hasYieldValue: HasYieldValue, + * hasYieldReturnValue: HasYieldReturnValue, + * hasThrowValue: HasThrowValue, + * isAsync: IsAsync, + * getTags: GetTags, + * getPresentTags: GetPresentTags, + * filterTags: FilterTags, + * getTagsByType: GetTagsByType, + * hasOptionTag: HasOptionTag, + * getClassNode: GetClassNode, + * getClassJsdoc: GetClassJsdoc, + * classHasTag: ClassHasTag + * }} Utils + */ + const { rewireSpecs, seedTokens, @@ -23,19 +512,38 @@ const { /** * Should use ESLint rule's typing. * - * @typedef {any} EslintRuleMeta + * @typedef {import('eslint').Rule.RuleMetaData} EslintRuleMeta */ +/* eslint-disable jsdoc/valid-types -- Old version */ /** * A plain object for tracking state as needed by rules across iterations. * - * @typedef {any} StateObject + * @typedef {{ + * globalTags: {}, + * hasDuplicates: { + * [key: string]: boolean + * }, + * selectorMap: { + * [selector: string]: { + * [comment: string]: Integer + * } + * }, + * hasTag: { + * [key: string]: boolean + * }, + * hasNonComment: number, + * hasNonCommentBeforeTag: { + * [key: string]: boolean|number + * } + * }} StateObject */ +/* eslint-enable jsdoc/valid-types -- Old version */ /** * The Node AST as supplied by the parser. * - * @typedef {any} Node + * @typedef {import('eslint').Rule.Node} Node */ /* @@ -53,18 +561,16 @@ const globalState = new Map(); * tagNamePreference?: import('./jsdocUtils.js').TagNamePreference, * mode?: import('./jsdocUtils.js').ParserMode * }} cfg - * @returns {Utils} + * @returns {BasicUtils} */ const getBasicUtils = (context, { tagNamePreference, mode, }) => { + /** @type {BasicUtils} */ const utils = {}; - /** - * @param {string} message - * @returns {void} - */ + /** @type {ReportSettings} */ utils.reportSettings = (message) => { context.report({ loc: { @@ -81,21 +587,14 @@ const getBasicUtils = (context, { }); }; - /** - * @param {import('comment-parser').Spec} tag - * @returns {string[]} - */ + /** @type {ParseClosureTemplateTag} */ utils.parseClosureTemplateTag = (tag) => { return jsdocUtils.parseClosureTemplateTag(tag); }; utils.pathDoesNotBeginWith = jsdocUtils.pathDoesNotBeginWith; - /** - * @param {{ - * tagName: string - * }} cfg - */ + /** @type {GetPreferredTagNameObject} */ utils.getPreferredTagNameObject = ({ tagName, }) => { @@ -106,7 +605,7 @@ const getBasicUtils = (context, { tagNamePreference, ); const isObject = ret && typeof ret === 'object'; - if (ret === false || isObject && !ret.replacement) { + if (ret === false || (isObject && !ret.replacement)) { return { blocked: true, tagName, @@ -119,17 +618,35 @@ const getBasicUtils = (context, { return utils; }; +/* eslint-disable jsdoc/valid-types -- Old version of pratt */ /** - * @param {} node - * @param {import('comment-parser').Block} jsdoc - * @param {import('@es-joy/jsdoccomment').Token} jsdocNode + * @callback Report + * @param {string} message + * @param {import('eslint').Rule.ReportFixer|null} [fix] + * @param {null| + * {line?: Integer, column?: Integer}| + * import('comment-parser').Spec & {line?: Integer} + * } [jsdocLoc] + * @param {undefined|{ + * [key: string]: string + * }} [data] + * @returns {void} + */ +/* eslint-enable jsdoc/valid-types -- Old version of pratt */ + +/** + * @param {Node} node + * @param {import('comment-parser').Block & { + * inlineTags: import('@es-joy/jsdoccomment').JsdocInlineTagNoType[] + * }} jsdoc + * @param {import('eslint').AST.Token} jsdocNode * @param {Settings} settings - * @param {} report + * @param {Report} report * @param {import('eslint').Rule.RuleContext} context * @param {boolean} iteratingAll - * @param {} ruleConfig + * @param {RuleConfig} ruleConfig * @param {string} indent - * @returns {} + * @returns {Utils} */ const getUtils = ( node, @@ -145,7 +662,7 @@ const getUtils = ( const ancestors = context.getAncestors(); const sourceCode = context.getSourceCode(); - const utils = getBasicUtils(context, settings); + const utils = /** @type {Utils} */ (getBasicUtils(context, settings)); const { tagNamePreference, @@ -158,9 +675,7 @@ const getUtils = ( mode, } = settings; - /** - * @returns {boolean} - */ + /** @type {IsIteratingFunction} */ utils.isIteratingFunction = () => { return !iteratingAll || [ 'MethodDefinition', @@ -170,20 +685,14 @@ const getUtils = ( ].includes(node && node.type); }; - /** - * @returns {boolean} - */ + /** @type {IsVirtualFunction} */ utils.isVirtualFunction = () => { return iteratingAll && utils.hasATag([ 'callback', 'function', 'func', 'method', ]); }; - /** - * @param {import('comment-parser').Block} tagBlock - * @param {boolean} [specRewire] - * @returns {string} - */ + /** @type {Stringify} */ utils.stringify = (tagBlock, specRewire) => { let block; if (specRewire) { @@ -194,18 +703,8 @@ const getUtils = ( specRewire ? block : tagBlock)); }; - /* eslint-disable jsdoc/valid-types -- Old version */ - /** - * @param {string} msg - * @param {import('comment-parser').Spec} tag - * @param {() => void} handler - * @param {boolean} [specRewire] - * @param {{ - * [key: string]: undefined|string - * }} [data] - */ + /** @type {ReportJSDoc} */ utils.reportJSDoc = (msg, tag, handler, specRewire, data) => { - /* eslint-enable jsdoc/valid-types -- Old version */ report(msg, handler ? /** @type {import('eslint').Rule.ReportFixer} */ ( fixer, ) => { @@ -236,20 +735,12 @@ const getUtils = ( } : null, tag, data); }; - /** - * @param {string} str - * @param {string} requiredFlags - * @returns {RegExp} - */ + /** @type {GetRegexFromString} */ utils.getRegexFromString = (str, requiredFlags) => { return jsdocUtils.getRegexFromString(str, requiredFlags); }; - /** - * @param {import('comment-parser').Spec} tg - * @param {boolean} returnArray - * @returns {string[]|string} - */ + /** @type {GetTagDescription} */ utils.getTagDescription = (tg, returnArray) => { /** * @type {string[]} @@ -291,12 +782,7 @@ const getUtils = ( return returnArray ? descriptions : descriptions.join('\n'); }; - /** - * @param {import('comment-parser').Spec} tg - * @param {RegExp} matcher - * @param {(description: string) => string} setter - * @returns {Integer} - */ + /** @type {SetTagDescription} */ utils.setTagDescription = (tg, matcher, setter) => { let finalIdx = 0; tg.source.some(({ @@ -316,13 +802,7 @@ const getUtils = ( return finalIdx; }; - /** - * @returns {{ - * description: string, - * descriptions: string[], - * lastDescriptionLine: Integer - * }} - */ + /** @type {GetDescription} */ utils.getDescription = () => { /** @type {string[]} */ const descriptions = []; @@ -362,23 +842,8 @@ const getUtils = ( }; }; - /* eslint-disable jsdoc/no-undefined-types -- Bug */ - /** - * @param {( - * info: undefined|{ - * delimiter: string, - * postDelimiter: string, - * start: string - * }, - * seedTokens: ( - * tokens?: Partial | undefined - * ) => import('comment-parser').Tokens, - * descLines: string[] - * ) => import('comment-parser').Tokens[]} setter - * @returns {void} - */ + /** @type {SetBlockDescription} */ utils.setBlockDescription = (setter) => { - /* eslint-enable jsdoc/no-undefined-types -- Bug */ /** @type {string[]} */ const descLines = []; /** @@ -389,6 +854,14 @@ const getUtils = ( * @type {undefined|Integer} */ let endIdx; + + /** + * @type {undefined|{ + * delimiter: string, + * postDelimiter: string, + * start: string + * }} + */ let info; jsdoc.source.some(({ @@ -428,16 +901,23 @@ const getUtils = ( jsdoc.source.splice( /** @type {Integer} */ (startIdx), /** @type {Integer} */ (endIdx) - /** @type {Integer} */ (startIdx), - ...setter(info, seedTokens, descLines), + ...setter( + /** + * @type {{ + * delimiter: string, + * postDelimiter: string, + * start: string + * }} + */ + (info), + seedTokens, + descLines, + ), ); } }; - /** - * @param {RegExp} matcher - * @param {(description: string) => string} setter - * @returns {Integer} - */ + /** @type {SetDescriptionLines} */ utils.setDescriptionLines = (matcher, setter) => { let finalIdx = 0; jsdoc.source.some(({ @@ -464,11 +944,7 @@ const getUtils = ( return finalIdx; }; - /** - * @param {import('comment-parser').Spec} tag - * @param {import('comment-parser').Tokens[]} tokens - * @returns {void} - */ + /** @type {ChangeTag} */ utils.changeTag = (tag, ...tokens) => { for (const [ idx, @@ -481,16 +957,8 @@ const getUtils = ( } }; - /* eslint-disable jsdoc/no-undefined-types -- TS */ - /** - * @param {import('comment-parser').Spec & { - * line: Integer - * }} tag - * @param {Partial} tokens - * @returns {void} - */ + /** @type {SetTag} */ utils.setTag = (tag, tokens) => { - /* eslint-enable jsdoc/no-undefined-types -- TS */ tag.source = [ { number: tag.line, @@ -507,14 +975,7 @@ const getUtils = ( ]; }; - /** - * @param {Integer} tagIndex - * @param {{ - * removeEmptyBlock?: boolean, - * tagSourceOffset?: Integer - * }} cfg - * @returns {void} - */ + /** @type {RemoveTag} */ utils.removeTag = (tagIndex, { removeEmptyBlock = false, tagSourceOffset = 0, @@ -611,12 +1072,7 @@ const getUtils = ( // correct information will be available) }; - /** - * @param {string} targetTagName - * @param {Integer} number - * @param {import('comment-parser').Tokens|{}} tokens - * @returns {void} - */ + /** @type {AddTag} */ utils.addTag = ( targetTagName, number = (jsdoc.tags[jsdoc.tags.length - 1]?.source[0]?.number ?? jsdoc.source.findIndex(({ @@ -644,9 +1100,7 @@ const getUtils = ( } }; - /** - * @returns {Integer|undefined} - */ + /** @type {GetFirstLine} */ utils.getFirstLine = () => { let firstLine; for (const { @@ -664,14 +1118,10 @@ const getUtils = ( return firstLine; }; + /** @type {SeedTokens} */ utils.seedTokens = seedTokens; - /** - * Sets tokens to empty string. - * - * @param {import('comment-parser').Tokens} tokens - * @returns {void} - */ + /** @type {EmptyTokens} */ utils.emptyTokens = (tokens) => { for (const prop of [ 'start', @@ -697,11 +1147,7 @@ const getUtils = ( } }; - /** - * @param {Integer} sourceIndex - * @param {import('comment-parser').Tokens} tokens - * @returns {void} - */ + /** @type {AddLine} */ utils.addLine = (sourceIndex, tokens) => { const number = (jsdoc.source[sourceIndex - 1]?.number || 0) + 1; jsdoc.source.splice(sourceIndex, 0, { @@ -717,12 +1163,7 @@ const getUtils = ( // rewireSource(jsdoc); }; - /** - * @param {Integer} tagIndex - * @param {Integer} tagSourceOffset - * @param {Integer} numLines - * @returns {void} - */ + /** @type {AddLines} */ utils.addLines = (tagIndex, tagSourceOffset, numLines) => { const { source: tagSource, @@ -780,9 +1221,7 @@ const getUtils = ( } }; - /** - * @returns {void} - */ + /** @type {MakeMultiline} */ utils.makeMultiline = () => { const { source: [ @@ -844,31 +1283,21 @@ const getUtils = ( }; /** - * @param {} params - * @returns {} + * @type {import('./jsdocUtils.js').FlattenRoots} */ - utils.flattenRoots = (params) => { - return jsdocUtils.flattenRoots(params); - }; + utils.flattenRoots = jsdocUtils.flattenRoots; - /** - * @param {boolean} useDefaultObjectProperties - * @returns {} - */ + /** @type {GetFunctionParameterNames} */ utils.getFunctionParameterNames = (useDefaultObjectProperties) => { return jsdocUtils.getFunctionParameterNames(node, useDefaultObjectProperties); }; - /** - * @returns {Integer} - */ + /** @type {HasParams} */ utils.hasParams = () => { return jsdocUtils.hasParams(node); }; - /** - * @returns {boolean} - */ + /** @type {IsGenerator} */ utils.isGenerator = () => { return node && ( node.generator || @@ -880,21 +1309,12 @@ const getUtils = ( ); }; - /** - * @returns {boolean} - */ + /** @type {IsConstructor} */ utils.isConstructor = () => { return jsdocUtils.isConstructor(node); }; - /** - * @param {string} tagName - * @returns {false|{ - * idx: Integer, - * name: string, - * type: string - * }[]} - */ + /** @type {GetJsdocTagsDeep} */ utils.getJsdocTagsDeep = (tagName) => { const name = utils.getPreferredTagName({ tagName, @@ -906,14 +1326,7 @@ const getUtils = ( return jsdocUtils.getJsdocTagsDeep(jsdoc, name); }; - /** - * @param {{ - * tagName: string, - * skipReportingBlockedTag?: boolean, - * allowObjectReturn?: boolean, - * defaultMessage?: string - * }} cfg - */ + /** @type {GetPreferredTagName} */ utils.getPreferredTagName = ({ tagName, skipReportingBlockedTag = false, @@ -939,50 +1352,32 @@ const getUtils = ( return isObject && !allowObjectReturn ? ret.replacement : ret; }; - /** - * @param {string} name - * @param {string[]} definedTags - * @returns {boolean} - */ + /** @type {IsValidTag} */ utils.isValidTag = (name, definedTags) => { return jsdocUtils.isValidTag(context, mode, name, definedTags); }; - /** - * @param {string[]} names - * @returns {boolean} - */ + /** @type {HasATag} */ utils.hasATag = (names) => { return jsdocUtils.hasATag(jsdoc, names); }; - /** - * @param {string} name - * @returns {boolean} - */ + /** @type {HasTag} */ utils.hasTag = (name) => { return jsdocUtils.hasTag(jsdoc, name); }; - /** - * @param {string} name - * @returns {} - */ + /** @type {ComparePaths} */ utils.comparePaths = (name) => { return jsdocUtils.comparePaths(name); }; - /** - * @param {string} name - * @returns {} - */ + /** @type {DropPathSegmentQuotes} */ utils.dropPathSegmentQuotes = (name) => { return jsdocUtils.dropPathSegmentQuotes(name); }; - /** - * @returns {boolean} - */ + /** @type {AvoidDocs} */ utils.avoidDocs = () => { if ( ignoreReplacesDocs !== false && @@ -1024,12 +1419,7 @@ const getUtils = ( 'tagMightHaveNamePosition', 'tagMightHaveTypePosition', ]) { - /** - * @param {string} tagName - * @param {import('./getDefaultTagStructureForMode.js'). - * TagStructure[]} [otherModeMaps] - * @returns {boolean|{otherMode: true}} - */ + /** @type {TagMightHaveNamePositionTypePosition} */ utils[ /** @type {"tagMightHaveNamePosition"|"tagMightHaveTypePosition"} */ ( method @@ -1060,23 +1450,33 @@ const getUtils = ( }; } + /** @type {TagMissingRequiredTypeOrNamepath} */ + utils.tagMissingRequiredTypeOrNamepath = (tagName, otherModeMaps) => { + const result = jsdocUtils.tagMissingRequiredTypeOrNamepath(tagName); + if (!result) { + return false; + } + + const otherResult = otherModeMaps.every((otherModeMap) => { + return jsdocUtils.tagMissingRequiredTypeOrNamepath(tagName, otherModeMap); + }); + + return otherResult ? true : { + otherMode: false, + }; + }; + for (const method of [ 'tagMustHaveNamePosition', 'tagMustHaveTypePosition', - 'tagMissingRequiredTypeOrNamepath', ]) { - /** - * @param {string} tagName - * @param {import('./getDefaultTagStructureForMode.js'). - * TagStructure[]} otherModeMaps - * @returns {} - */ + /** @type {TagMustHave} */ utils[ - /** @type {"tagMustHaveNamePosition"|"tagMustHaveTypePosition"|"tagMissingRequiredTypeOrNamepath"} */ + /** @type {"tagMustHaveNamePosition"|"tagMustHaveTypePosition"} */ (method) ] = (tagName, otherModeMaps) => { const result = jsdocUtils[ - /** @type {"tagMustHaveNamePosition"|"tagMustHaveTypePosition"|"tagMissingRequiredTypeOrNamepath"} */ + /** @type {"tagMustHaveNamePosition"|"tagMustHaveTypePosition"} */ (method) ](tagName); if (!result) { @@ -1087,7 +1487,7 @@ const getUtils = ( const otherResult = otherModeMaps.every((otherModeMap) => { return jsdocUtils[ - /** @type {"tagMustHaveNamePosition"|"tagMustHaveTypePosition"|"tagMissingRequiredTypeOrNamepath"} */ + /** @type {"tagMustHaveNamePosition"|"tagMustHaveTypePosition"} */ (method) ](tagName, otherModeMap); }); @@ -1104,38 +1504,34 @@ const getUtils = ( 'isNamepathOrUrlReferencingTag', 'tagMightHaveNamepath', ]) { - /** - * @param {string} tagName - * @returns {} - */ - utils[method] = (tagName) => { - return jsdocUtils[method](tagName); + /** @type {IsNamepathX} */ + utils[ + /** @type {"isNamepathDefiningTag"|"isNamepathReferencingTag"|"isNamepathOrUrlReferencingTag"|"tagMightHaveNamepath"} */ ( + method + )] = (tagName) => { + return jsdocUtils[ + /** @type {"isNamepathDefiningTag"|"isNamepathReferencingTag"|"isNamepathOrUrlReferencingTag"|"tagMightHaveNamepath"} */ + (method) + ](tagName); }; } - /** - * @param {import('./jsdocUtils.js').ParserMode} mde - * @returns {import('./getDefaultTagStructureForMode.js').TagStructure} - */ + /** @type {GetTagStructureForMode} */ utils.getTagStructureForMode = (mde) => { return jsdocUtils.getTagStructureForMode(mde, settings.structuredTags); }; - /** - * @param {} tag - * @returns {} - */ + /** @type {MayBeUndefinedTypeTag} */ utils.mayBeUndefinedTypeTag = (tag) => { return jsdocUtils.mayBeUndefinedTypeTag(tag, settings.mode); }; + /** @type {HasValueOrExecutorHasNonEmptyResolveValue} */ utils.hasValueOrExecutorHasNonEmptyResolveValue = (anyPromiseAsReturn, allBranches) => { return jsdocUtils.hasValueOrExecutorHasNonEmptyResolveValue(node, anyPromiseAsReturn, allBranches); }; - /** - * @returns {boolean} - */ + /** @type {HasYieldValue} */ utils.hasYieldValue = () => { if ([ 'ExportNamedDeclaration', 'ExportDefaultDeclaration', @@ -1146,56 +1542,47 @@ const getUtils = ( return jsdocUtils.hasYieldValue(node); }; - /** - * @returns {boolean} - */ + /** @type {HasYieldReturnValue} */ utils.hasYieldReturnValue = () => { return jsdocUtils.hasYieldValue(node, true); }; - /** - * @returns {boolean} - */ + /** @type {HasThrowValue} */ utils.hasThrowValue = () => { return jsdocUtils.hasThrowValue(node); }; - /** - * @returns {boolean} - */ + /** @type {IsAsync} */ utils.isAsync = () => { - return node.async; + return 'async' in node && node.async; }; + /** @type {GetTags} */ utils.getTags = (tagName) => { return utils.filterTags((item) => { return item.tag === tagName; }); }; + /** @type {GetPresentTags} */ utils.getPresentTags = (tagList) => { return utils.filterTags((tag) => { return tagList.includes(tag.tag); }); }; + /** @type {FilterTags} */ utils.filterTags = (filter, includeInlineTags = false) => { const tags = jsdocUtils.getAllTags(jsdoc, includeInlineTags); return jsdocUtils.filterTags(tags, filter); }; - /** - * @param {import('comment-parser').Spec[]} tags - * @returns {} - */ + /** @type {GetTagsByType} */ utils.getTagsByType = (tags) => { return jsdocUtils.getTagsByType(context, mode, tags, tagNamePreference); }; - /** - * @param {string} tagName - * @returns {boolean} - */ + /** @type {HasOptionTag} */ utils.hasOptionTag = (tagName) => { const { tags, @@ -1204,6 +1591,7 @@ const getUtils = ( return Boolean(tags && tags.includes(tagName)); }; + /** @type {GetClassNode} */ utils.getClassNode = () => { return [ ...ancestors, node, @@ -1211,9 +1599,10 @@ const getUtils = ( return parent && [ 'ClassDeclaration', 'ClassExpression', ].includes(parent.type); - }) || null; + }) ?? null; }; + /** @type {GetClassJsdoc} */ utils.getClassJsdoc = () => { const classNode = utils.getClassNode(); @@ -1233,12 +1622,14 @@ const getUtils = ( return null; }; + /** @type {ClassHasTag} */ utils.classHasTag = (tagName) => { const classJsdoc = utils.getClassJsdoc(); return Boolean(classJsdoc) && jsdocUtils.hasTag(classJsdoc, tagName); }; + /** @type {ForEachPreferredTag} */ utils.forEachPreferredTag = (tagName, arrayHandler, skipReportingBlockedTag = false) => { const targetTagName = utils.getPreferredTagName({ skipReportingBlockedTag, @@ -1269,6 +1660,10 @@ const getUtils = ( * Settings from ESLint types. * * @typedef {{ + * maxLines: Integer, + * minLines: Integer, + * tagNamePreference: import('./jsdocUtils.js').TagNamePreference, + * mode: import('./jsdocUtils.js').ParserMode, * [name: string]: any * }} Settings */ @@ -1276,7 +1671,7 @@ const getUtils = ( /** * @param {import('eslint').Rule.RuleContext} context - * @returns {Settings} + * @returns {Settings|false} */ const getSettings = (context) => { /* eslint-disable canonical/sort-keys */ @@ -1325,7 +1720,7 @@ const getSettings = (context) => { line: 1, }, }, - message: error.message, + message: /** @type {Error} */ (error).message, }); return false; @@ -1337,27 +1732,24 @@ const getSettings = (context) => { /** * Create the report function * + * @callback MakeReport * @param {import('eslint').Rule.RuleContext} context * @param {object} commentNode + * @returns {Report} */ + +/** @type {MakeReport} */ const makeReport = (context, commentNode) => { - /* eslint-disable jsdoc/valid-types -- Old version */ - /** - * @param {string} message - * @param {import('eslint').Rule.ReportFixer|null} fix - * @param {} jsdocLoc - * @param {undefined|{ - * [key: string]: string - * }} data - * @returns {void} - */ + /** @type {Report} */ const report = (message, fix = null, jsdocLoc = null, data = undefined) => { /* eslint-enable jsdoc/valid-types -- Old version */ let loc; if (jsdocLoc) { if (!('line' in jsdocLoc)) { - jsdocLoc.line = jsdocLoc.source[0].number; + jsdocLoc.line = /** @type {import('comment-parser').Spec & {line?: Integer}} */ ( + jsdocLoc + ).source[0].number; } const lineNumber = commentNode.loc.start.line + jsdocLoc.line; @@ -1375,7 +1767,7 @@ const makeReport = (context, commentNode) => { // Todo: Remove ignore once `check-examples` can be restored for ESLint 8+ // istanbul ignore if - if (jsdocLoc.column) { + if ('column' in jsdocLoc) { const colNumber = commentNode.loc.start.column + jsdocLoc.column; loc.end.column = colNumber; @@ -1395,39 +1787,49 @@ const makeReport = (context, commentNode) => { return report; }; -/* eslint-disable jsdoc/no-undefined-types -- canonical still using an older version where not defined */ +/* eslint-disable jsdoc/valid-types -- Old version */ /** - * @typedef {ReturnType} Utils * @typedef {( * arg: { * context: import('eslint').Rule.RuleContext, * sourceCode: import('eslint').SourceCode, * indent: string, - * jsdoc: object, - * jsdocNode: object, + * info: { + * comment: string|undefined, + * lastIndex: Integer + * }, + * state: StateObject, + * globalState: Map>, + * jsdoc: import('comment-parser').Block, + * jsdocNode: import('eslint').Rule.Node & { + * range: [number, number] + * }, * node: Node | null, - * report: ReturnType, + * allComments: import('estree').Node[] + * report: Report, + * makeReport: MakeReport, * settings: Settings, * utils: Utils, * } * ) => any } JsdocVisitor */ +/* eslint-enable jsdoc/valid-types -- Old version */ /* eslint-enable jsdoc/no-undefined-types -- canonical still using an older version where not defined */ /** * @param {} info * @param {} indent * @param {import('comment-parser').Block} jsdoc - * @param {} ruleConfig + * @param {RuleConfig} ruleConfig * @param {import('eslint').Rule.RuleContext} context * @param {} lines * @param {import('@es-joy/jsdoccomment').Token} jsdocNode - * @param {} node + * @param {Node} node * @param {Settings} settings * @param {import('eslint').SourceCode} sourceCode * @param {} iterator - * @param {} state - * @param {boolean} iteratingAll + * @param {StateObject} state + * @param {boolean} [iteratingAll] */ const iterate = ( info, @@ -1512,7 +1914,9 @@ const getIndentAndJSDoc = function (lines, jsdocNode) { /** * - * @typedef {{node: Node, state: StateObject}} NonCommentArgs + * @typedef {{node: Node & { + * range: [number, number] + * }, state: StateObject}} NonCommentArgs */ /** @@ -1522,9 +1926,18 @@ const getIndentAndJSDoc = function (lines, jsdocNode) { * @property {true} [contextSelected] Whether to force a `contexts` check * @property {true} [iterateAllJsdocs] Whether to iterate all JSDoc blocks by default * regardless of context - * @property {(context, state: StateObject, utils: Utils) => void} [exit] Handler to be executed - * upon exiting iteration of program AST - * @property {(NonCommentArgs) => void} [nonComment] Handler to be executed if rule wishes + * @property {true} [checkPrivate] Whether to check `@private` blocks (normally exempted) + * @property {true} [checkInternal] Whether to check `@internal` blocks (normally exempted) + * @property {true} [checkFile] Whether to iterates over all JSDoc blocks regardless of attachment + * @property {true} [nonGlobalSettings] Whether to avoid relying on settings for global contexts + * @property {true} [matchContext] Whether the rule expects contexts to be based on a match option + * @property {(args: { + * context: import('eslint').Rule.RuleContext, + * state: StateObject, + * settings: Settings, + * utils: Utils + * }) => void} [exit] Handler to be executed upon exiting iteration of program AST + * @property {(nca: NonCommentArgs) => void} [nonComment] Handler to be executed if rule wishes * to be supplied nodes without comments */ @@ -1534,8 +1947,8 @@ const getIndentAndJSDoc = function (lines, jsdocNode) { * * @param {JsdocVisitor} iterator * @param {RuleConfig} ruleConfig The rule's configuration - * @param contexts The `contexts` containing relevant `comment` info. - * @param {boolean} additiveCommentContexts If true, will have a separate + * @param {} [contexts] The `contexts` containing relevant `comment` info. + * @param {boolean} [additiveCommentContexts] If true, will have a separate * iteration for each matching comment context. Otherwise, will iterate * once if there is a single matching comment context. * @returns {import('eslint').Rule.RuleModule} @@ -1543,8 +1956,20 @@ const getIndentAndJSDoc = function (lines, jsdocNode) { const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContexts) => { const trackedJsdocs = new Set(); + /** @type {import('@es-joy/jsdoccomment')} */ let handler; + + /** @type {Settings} */ let settings; + + /** + * @param {import('eslint').Rule.RuleContext} context + * @param {Node} node + * @param {import('eslint').Rule.Node[]} jsdocNodes + * @param {StateObject} state + * @param {boolean} [lastCall] + * @returns {void} + */ const callIterator = (context, node, jsdocNodes, state, lastCall) => { const sourceCode = context.getSourceCode(); const { @@ -1787,7 +2212,14 @@ export default function iterateJsdoc (iterator, ruleConfig) { return {}; } + /* eslint-disable jsdoc/valid-types -- Old version */ + /** + * @type {(string|{ + * [key: string]: string + * })[]} + */ let contexts; + /* eslint-enable jsdoc/valid-types -- Old version */ if (ruleConfig.contextDefaults || ruleConfig.contextSelected || ruleConfig.matchContext) { contexts = ruleConfig.matchContext && context.options[0]?.match ? context.options[0].match : @@ -1808,6 +2240,10 @@ export default function iterateJsdoc (iterator, ruleConfig) { const hasPlainAny = contexts?.includes('any'); const hasObjectAny = !hasPlainAny && contexts?.find((ctxt) => { + if (typeof ctxt === 'string') { + return false; + } + return ctxt?.context === 'any'; }); if (hasPlainAny || hasObjectAny) { @@ -1824,6 +2260,7 @@ export default function iterateJsdoc (iterator, ruleConfig) { const state = {}; + /** @type {CheckJsdoc} */ const checkJsdoc = (info, handler, node) => { const jsdocNode = getJSDocComment(sourceCode, node, settings); if (!jsdocNode) { diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index 939cbaad2..2dae70d32 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -46,14 +46,30 @@ const setTagStructure = (mode) => { * }} FlattendRootInfo */ +/** + * @typedef {string|{ + * isRestProperty: boolean, + * restElement: boolean, + * name: string + * }|[string, { + * hasPropertyRest: boolean, + * hasRestElement: boolean, + * names: string[], + * rests: boolean[], + * }]|[string, string[]]} ParamInfo + */ + /** * Given a nested array of property names, reduce them to a single array, * appending the name of the root element along the way if present. * - * @param {} params - * @param {string} root + * @callback FlattenRoots + * @param {ParamInfo[]} params + * @param {string} [root] * @returns {FlattendRootInfo} */ + +/** @type {FlattenRoots} */ const flattenRoots = (params, root = '') => { let hasRestElement = false; let hasPropertyRest = false; @@ -63,61 +79,68 @@ const flattenRoots = (params, root = '') => { */ const rests = []; - const names = params.reduce((acc, cur) => { - if (Array.isArray(cur)) { - let nms; - if (Array.isArray(cur[1])) { - nms = cur[1]; - } else { - if (cur[1].hasRestElement) { + const names = params.reduce( + /** + * @param {string[]} acc + * @param {ParamInfo} cur + * @returns {string[]} + */ + (acc, cur) => { + if (Array.isArray(cur)) { + let nms; + if (Array.isArray(cur[1])) { + nms = cur[1]; + } else { + if (cur[1].hasRestElement) { + hasRestElement = true; + } + + if (cur[1].hasPropertyRest) { + hasPropertyRest = true; + } + + nms = cur[1].names; + } + + const flattened = flattenRoots(nms, root ? `${root}.${cur[0]}` : cur[0]); + if (flattened.hasRestElement) { hasRestElement = true; } - if (cur[1].hasPropertyRest) { + if (flattened.hasPropertyRest) { hasPropertyRest = true; } - nms = cur[1].names; - } + const inner = [ + root ? `${root}.${cur[0]}` : cur[0], + ...flattened.names, + ].filter(Boolean); + rests.push(false, ...flattened.rests); - const flattened = flattenRoots(nms, root ? `${root}.${cur[0]}` : cur[0]); - if (flattened.hasRestElement) { - hasRestElement = true; + return acc.concat(inner); } - if (flattened.hasPropertyRest) { - hasPropertyRest = true; - } - - const inner = [ - root ? `${root}.${cur[0]}` : cur[0], - ...flattened.names, - ].filter(Boolean); - rests.push(false, ...flattened.rests); + if (typeof cur === 'object') { + if (cur.isRestProperty) { + hasPropertyRest = true; + rests.push(true); + } else { + rests.push(false); + } - return acc.concat(inner); - } + if (cur.restElement) { + hasRestElement = true; + } - if (typeof cur === 'object') { - if (cur.isRestProperty) { - hasPropertyRest = true; - rests.push(true); - } else { + acc.push(root ? `${root}.${cur.name}` : cur.name); + } else if (typeof cur !== 'undefined') { rests.push(false); + acc.push(root ? `${root}.${cur}` : cur); } - if (cur.restElement) { - hasRestElement = true; - } - - acc.push(root ? `${root}.${cur.name}` : cur.name); - } else if (typeof cur !== 'undefined') { - rests.push(false); - acc.push(root ? `${root}.${cur}` : cur); - } - - return acc; - }, []); + return acc; + }, [], + ); return { hasPropertyRest, @@ -128,8 +151,11 @@ const flattenRoots = (params, root = '') => { }; /** - * @param {ESTreeOrTypeScriptNode} propSignature - * @returns {undefined|Array|string} + * @param {import('@typescript-eslint/types').TSESTree.TSIndexSignature| + * import('@typescript-eslint/types').TSESTree.TSConstructSignatureDeclaration| + * import('@typescript-eslint/types').TSESTree.TSCallSignatureDeclaration| + * import('@typescript-eslint/types').TSESTree.TSPropertySignature} propSignature + * @returns {undefined|string|[string, string[]]} */ const getPropertiesFromPropertySignature = (propSignature) => { if ( @@ -142,42 +168,65 @@ const getPropertiesFromPropertySignature = (propSignature) => { if (propSignature.typeAnnotation && propSignature.typeAnnotation.typeAnnotation.type === 'TSTypeLiteral') { return [ - propSignature.key.name, propSignature.typeAnnotation.typeAnnotation.members.map((member) => { - return getPropertiesFromPropertySignature(member); + /** @type {import('@typescript-eslint/types').TSESTree.Identifier} */ ( + propSignature.key + ).name, + propSignature.typeAnnotation.typeAnnotation.members.map((member) => { + return /** @type {string} */ ( + getPropertiesFromPropertySignature( + /** @type {import('@typescript-eslint/types').TSESTree.TSPropertySignature} */ ( + member + ), + ) + ); }), ]; } - return propSignature.key.name; + return /** @type {import('@typescript-eslint/types').TSESTree.Identifier} */ ( + propSignature.key + ).name; }; +/** + * @typedef {undefined|{ + * isRestProperty: boolean|undefined, + * name: string, + * restElement: true + * }|[undefined|string, FlattendRootInfo|{ + * name: Integer, + * restElement: boolean + * }[]]} ParamNameInfo + */ + /** * @param {ESTreeOrTypeScriptNode} functionNode * @param {boolean} [checkDefaultObjects] - * @returns {Array} + * @throws {Error} + * @returns {ParamNameInfo[]} */ const getFunctionParameterNames = ( functionNode, checkDefaultObjects, ) => { /* eslint-disable complexity -- Temporary */ /** - * @param {} param + * @param {import('estree').Identifier|import('estree').AssignmentPattern| + * import('estree').ObjectPattern|import('estree').Property| + * import('estree').RestElement|import('estree').ArrayPattern| + * import('@typescript-eslint/types').TSESTree.TSParameterProperty + * } param * @param {boolean} [isProperty] - * @returns {undefined|{ - * isRestProperty: boolean|undefined, - * name: string, - * restElement: true - * }|[undefined|string, FlattendRootInfo|{ - * name: Integer, - * restElement: boolean - * }[]]} + * @returns {ParamNameInfo} */ const getParamName = (param, isProperty) => { /* eslint-enable complexity -- Temporary */ const hasLeftTypeAnnotation = 'left' in param && 'typeAnnotation' in param.left; if ('typeAnnotation' in param || hasLeftTypeAnnotation) { - const typeAnnotation = hasLeftTypeAnnotation ? param.left.typeAnnotation : param.typeAnnotation; + const typeAnnotation = hasLeftTypeAnnotation ? + /** @type {import('@typescript-eslint/types').TSESTree.Identifier} */ ( + param.left + ).typeAnnotation : param.typeAnnotation; if (typeAnnotation?.typeAnnotation?.type === 'TSTypeLiteral') { const propertyNames = typeAnnotation.typeAnnotation.members.map((member) => { @@ -395,7 +444,7 @@ const getJsdocTagsDeep = (jsdoc, targetTagName) => { const modeWarnSettings = WarnSettings(); /** - * @param {ParserMode} mode + * @param {ParserMode|undefined} mode * @param {import('eslint').Rule.RuleContext} context * @returns {import('./tagNames.js').AliasedTags} */ @@ -428,7 +477,7 @@ const getTagNamesForMode = (mode, context) => { /** * @param {import('eslint').Rule.RuleContext} context - * @param {ParserMode} mode + * @param {ParserMode|undefined} mode * @param {string} name * @param {TagNamePreference} tagPreference * @returns {string|boolean|{ @@ -486,10 +535,10 @@ const getPreferredTagName = ( }; /** - * @param context - * @param {ParserMode} mode + * @param {import('eslint').Rule.RuleContext} context + * @param {ParserMode|undefined} mode * @param {string} name - * @param {Array} definedTags + * @param {string[]} definedTags * @returns {boolean} */ const isValidTag = ( @@ -608,7 +657,7 @@ const hasATag = (jsdoc, targetTagNames) => { /** * Checks if the JSDoc comment has an undefined type. * - * @param {import('comment-parser').Spec} tag + * @param {import('comment-parser').Spec|null|undefined} tag * the tag which should be checked. * @param {ParserMode} mode * @returns {boolean} @@ -856,18 +905,18 @@ const tagMightHaveEitherTypeOrNamePosition = (tag, tagMap) => { /** * @param {string} tag * @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap - * @returns {boolean} + * @returns {boolean|undefined} */ const tagMustHaveEitherTypeOrNamePosition = (tag, tagMap) => { const tagStruct = ensureMap(tagMap, tag); - return tagStruct.get('typeOrNameRequired'); + return /** @type {boolean} */ (tagStruct.get('typeOrNameRequired')); }; /** - * @param tag + * @param {import('comment-parser').Spec} tag * @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap - * @returns {boolean} + * @returns {boolean|undefined} */ const tagMissingRequiredTypeOrNamepath = (tag, tagMap = tagStructure) => { const mustHaveTypePosition = tagMustHaveTypePosition(tag.tag, tagMap); @@ -1179,7 +1228,7 @@ const parseClosureTemplateTag = (tag) => { * * @param {import('eslint').Rule.RuleContext} context * @param {DefaultContexts} defaultContexts - * @param settings + * @param {import('./iterateJsdoc.js').Settings} settings * @returns {string[]} */ const enforcedContexts = (context, defaultContexts, settings) => { @@ -1195,8 +1244,8 @@ const enforcedContexts = (context, defaultContexts, settings) => { /** * @param {string[]} contexts - * @param {Function} checkJsdoc - * @param {Function} handler + * @param {import('./iterateJsdoc.js').CheckJsdoc} checkJsdoc + * @param {Function} [handler] */ const getContextObject = (contexts, checkJsdoc, handler) => { const properties = {}; @@ -1244,6 +1293,11 @@ const getContextObject = (contexts, checkJsdoc, handler) => { return properties; }; +/** + * @param {import('comment-parser').Spec[]} tags + * @param {(tag: import('comment-parser').Spec) => boolean} filter + * @returns {import('comment-parser').Spec[]} + */ const filterTags = (tags, filter) => { return tags.filter((tag) => { return filter(tag); @@ -1269,7 +1323,7 @@ const tagsWithNamesAndDescriptions = new Set([ /** * @param {import('eslint').Rule.RuleContext} context - * @param {ParserMode} mode + * @param {ParserMode|undefined} mode * @param {import('comment-parser').Spec[]} tags * @param {TagNamePreference} tagPreference * @returns {{ @@ -1335,7 +1389,7 @@ const isSetter = (node) => { }; /** - * @param {ESTreeOrTypeScriptNode} node + * @param {import('eslint').Rule.Node} node * @returns {boolean} */ const hasAccessorPair = (node) => { @@ -1362,12 +1416,16 @@ const hasAccessorPair = (node) => { /** * @param {import('comment-parser').Block} jsdoc - * @param {ESTreeOrTypeScriptNode} node + * @param {import('eslint').Rule.Node} node * @param {import('eslint').Rule.RuleContext} context - * @param {} schema + * @param {import('json-schema').JSONSchema4} schema * @returns {boolean} */ const exemptSpeciaMethods = (jsdoc, node, context, schema) => { + /** + * @param {"checkGetters"|"checkSetters"|"checkConstructors"} prop + * @returns {boolean|"no-setter"|"no-getter"} + */ const hasSchemaOption = (prop) => { const schemaProperties = schema[0].properties; @@ -1420,10 +1478,13 @@ const comparePaths = (name) => { }; /** + * @callback PathDoesNotBeginWith * @param {string} name * @param {string} otherPathName * @returns {boolean} */ + +/** @type {PathDoesNotBeginWith} */ const pathDoesNotBeginWith = (name, otherPathName) => { return !name.startsWith(otherPathName) && !dropPathSegmentQuotes(name).startsWith(dropPathSegmentQuotes(otherPathName)); @@ -1431,7 +1492,7 @@ const pathDoesNotBeginWith = (name, otherPathName) => { /** * @param {string} regexString - * @param {string} requiredFlags + * @param {string} [requiredFlags] * @returns {RegExp} */ const getRegexFromString = (regexString, requiredFlags) => { diff --git a/src/rules/checkAlignment.js b/src/rules/checkAlignment.js index 5eaa8cead..b2e8aec6b 100644 --- a/src/rules/checkAlignment.js +++ b/src/rules/checkAlignment.js @@ -1,5 +1,9 @@ import iterateJsdoc from '../iterateJsdoc'; +/** + * @param {string} string + * @returns {string} + */ const trimStart = (string) => { return string.replace(/^\s+/u, ''); }; @@ -21,6 +25,7 @@ export default iterateJsdoc(({ return !trimStart(line).length; }); + /** @type {import('eslint').Rule.ReportFixer} */ const fix = (fixer) => { const replacement = sourceCode.getText(jsdocNode).split('\n') .map((line, index) => { diff --git a/src/rules/checkExamples.js b/src/rules/checkExamples.js index dd43e371b..0b90dcb64 100644 --- a/src/rules/checkExamples.js +++ b/src/rules/checkExamples.js @@ -16,14 +16,24 @@ const firstLinePrefixLength = preTagSpaceLength; const hasCaptionRegex = /^\s*([\s\S]*?)<\/caption>/u; +/** + * @param {string} str + * @returns {string} + */ const escapeStringRegexp = (str) => { return str.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&'); }; +/** + * @param {string} str + * @param {string} ch + * @returns {import('../iterateJsdoc').Integer} + */ const countChars = (str, ch) => { return (str.match(new RegExp(escapeStringRegexp(ch), 'gu')) || []).length; }; +/** @type {import('eslint').Linter.RulesRecord} */ const defaultMdRules = { // "always" newline rule at end unlikely in sample code 'eol-last': 0, @@ -60,6 +70,7 @@ const defaultMdRules = { 'padded-blocks': 0, }; +/** @type {import('eslint').Linter.RulesRecord} */ const defaultExpressionRules = { ...defaultMdRules, 'chai-friendly/no-unused-expressions': 'off', @@ -75,6 +86,13 @@ const defaultExpressionRules = { strict: 'off', }; +/** + * @param {string} text + * @returns {[ + * import('../iterateJsdoc.js').Integer, + * import('../iterateJsdoc.js').Integer + * ]} + */ const getLinesCols = (text) => { const matchLines = countChars(text, '\n'); @@ -98,6 +116,7 @@ export default iterateJsdoc(({ 'This rule cannot yet be supported for ESLint 8; you ' + 'should either downgrade to ESLint 7 or disable this rule. The ' + 'possibility for ESLint 8 support is being tracked at https://github.com/eslint/eslint/issues/14745', + null, { column: 1, line: 1, @@ -111,7 +130,9 @@ export default iterateJsdoc(({ globalState.set('checkExamples-matchingFileName', new Map()); } - const matchingFileNameMap = globalState.get('checkExamples-matchingFileName'); + const matchingFileNameMap = /** @type {Map} */ ( + globalState.get('checkExamples-matchingFileName') + ); const options = context.options[0] || {}; let { @@ -137,6 +158,9 @@ export default iterateJsdoc(({ } = options; // Make this configurable? + /** + * @type {never[]} + */ const rulePaths = []; const mdRules = noDefaultExampleRules ? undefined : defaultMdRules; @@ -151,6 +175,28 @@ export default iterateJsdoc(({ rejectExampleCodeRegex = utils.getRegexFromString(rejectExampleCodeRegex); } + /** + * @param {{ + * filename: string, + * defaultFileName: string|undefined, + * source: string, + * targetTagName: string, + * rules?: import('eslint').Linter.RulesRecord|undefined, + * lines?: import('../iterateJsdoc.js').Integer, + * cols?: import('../iterateJsdoc.js').Integer, + * skipInit?: boolean, + * sources?: { + * nonJSPrefacingCols: import('../iterateJsdoc.js').Integer, + * nonJSPrefacingLines: import('../iterateJsdoc.js').Integer, + * string: string, + * }[], + * tag?: import('comment-parser').Spec & { + * line?: import('../iterateJsdoc.js').Integer, + * }|{ + * line: import('../iterateJsdoc.js').Integer, + * } + * }} cfg + */ const checkSource = ({ filename, defaultFileName, @@ -174,6 +220,14 @@ export default iterateJsdoc(({ } // Todo: Make fixable + + /** + * @param {{ + * nonJSPrefacingCols: import('../iterateJsdoc').Integer, + * nonJSPrefacingLines: import('../iterateJsdoc').Integer, + * string: string + * }} cfg + */ const checkRules = function ({ nonJSPrefacingCols, nonJSPrefacingLines, @@ -240,7 +294,11 @@ export default iterateJsdoc(({ } // NOTE: `tag.line` can be 0 if of form `/** @tag ... */` - const codeStartLine = tag.line + nonJSPrefacingLines; + const codeStartLine = /** + * @type {import('comment-parser').Spec & { + * line: import('../iterateJsdoc.js').Integer, + * }} + */ (tag).line + nonJSPrefacingLines; const codeStartCol = likelyNestedJSDocIndentSpace; for (const { @@ -281,7 +339,7 @@ export default iterateJsdoc(({ * @param {string} [ext] Since `eslint-plugin-markdown` v2, and * ESLint 7, this is the default which other JS-fenced rules will used. * Formerly "md" was the default. - * @returns {{defaultFileName: string, fileName: string}} + * @returns {{defaultFileName: string|undefined, filename: string}} */ const getFilenameInfo = (filename, ext = 'md/*.js') => { let defaultFileName; @@ -355,7 +413,7 @@ export default iterateJsdoc(({ const matchingFilenameInfo = getFilenameInfo(matchingFileName); utils.forEachPreferredTag('example', (tag, targetTagName) => { - let source = utils.getTagDescription(tag); + let source = /** @type {string} */ (utils.getTagDescription(tag)); const match = source.match(hasCaptionRegex); if (captionRequired && (!match || !match[1].trim())) { diff --git a/src/rules/checkIndentation.js b/src/rules/checkIndentation.js index 78d191eeb..f54738618 100644 --- a/src/rules/checkIndentation.js +++ b/src/rules/checkIndentation.js @@ -1,5 +1,10 @@ import iterateJsdoc from '../iterateJsdoc'; +/** + * @param {string} str + * @param {string[]} excludeTags + * @returns {string} + */ const maskExcludedContent = (str, excludeTags) => { const regContent = new RegExp(`([ \\t]+\\*)[ \\t]@(?:${excludeTags.join('|')})(?=[ \\n])([\\w|\\W]*?\\n)(?=[ \\t]*\\*(?:[ \\t]*@\\w+\\s|\\/))`, 'gu'); @@ -8,6 +13,10 @@ const maskExcludedContent = (str, excludeTags) => { }); }; +/** + * @param {string} str + * @returns {string} + */ const maskCodeBlocks = (str) => { const regContent = /([ \t]+\*)[ \t]```[^\n]*?([\w|\W]*?\n)(?=[ \t]*\*(?:[ \t]*(?:```|@\w+\s)|\/))/gu; @@ -23,7 +32,7 @@ export default iterateJsdoc(({ context, }) => { const options = context.options[0] || {}; - const { + const /** @type {{excludeTags: string[]}} */ { excludeTags = [ 'example', ], diff --git a/src/rules/checkLineAlignment.js b/src/rules/checkLineAlignment.js index eb7dfba1d..8427e70aa 100644 --- a/src/rules/checkLineAlignment.js +++ b/src/rules/checkLineAlignment.js @@ -8,6 +8,23 @@ const { flow: commentFlow, } = transforms; +/** + * @typedef {{ + * postDelimiter: import('../iterateJsdoc.js').Integer, + * postHyphen: import('../iterateJsdoc.js').Integer, + * postName: import('../iterateJsdoc.js').Integer, + * postTag: import('../iterateJsdoc.js').Integer, + * postType: import('../iterateJsdoc.js').Integer, + * }} CustomSpacings + */ + +/** + * @param {import('../iterateJsdoc.js').Utils} utils + * @param {import('comment-parser').Spec & { + * line: import('../iterateJsdoc.js').Integer + * }} tag + * @param {CustomSpacings} customSpacings + */ const checkNotAlignedPerTag = (utils, tag, customSpacings) => { /* start + @@ -23,7 +40,14 @@ const checkNotAlignedPerTag = (utils, tag, customSpacings) => { end + lineEnd */ + + /** + * @typedef {"tag"|"type"|"name"|"description"} ContentProp + */ + + /** @type {("postDelimiter"|"postTag"|"postType"|"postName")[]} */ let spacerProps; + /** @type {ContentProp[]} */ let contentProps; const mightHaveNamepath = utils.tagMightHaveNamepath(tag.tag); if (mightHaveNamepath) { @@ -46,6 +70,10 @@ const checkNotAlignedPerTag = (utils, tag, customSpacings) => { tokens, } = tag.source[0]; + /** + * @param {import('../iterateJsdoc.js').Integer} idx + * @param {(notRet: boolean, contentProp: ContentProp) => void} [callbck] + */ const followedBySpace = (idx, callbck) => { const nextIndex = idx + 1; @@ -128,6 +156,21 @@ const checkNotAlignedPerTag = (utils, tag, customSpacings) => { utils.reportJSDoc('Expected JSDoc block lines to not be aligned.', tag, fix, true); }; +/** + * @param {object} cfg + * @param {CustomSpacings} cfg.customSpacings + * @param {string} cfg.indent + * @param {import('comment-parser').Block} cfg.jsdoc + * @param {import('eslint').Rule.Node & { + * range: [number, number] + * }} cfg.jsdocNode + * @param {boolean} cfg.preserveMainDescriptionPostDelimiter + * @param {import('../iterateJsdoc.js').Report} cfg.report + * @param {string[]} cfg.tags + * @param {import('../iterateJsdoc.js').Utils} cfg.utils + * @param {string} cfg.wrapIndent + * @returns {void} + */ const checkAlignment = ({ customSpacings, indent, @@ -150,7 +193,13 @@ const checkAlignment = ({ ); const transformedJsdoc = transform(jsdoc); - const comment = '/*' + jsdocNode.value + '*/'; + const comment = '/*' + + /** + * @type {import('eslint').Rule.Node & { + * range: [number, number], value: string + * }} + */ (jsdocNode).value + '*/'; + const formatted = utils.stringify(transformedJsdoc) .trimStart(); @@ -183,7 +232,14 @@ export default iterateJsdoc(({ if (context.options[0] === 'always') { // Skip if it contains only a single line. - if (!jsdocNode.value.includes('\n')) { + if (!( + /** + * @type {import('eslint').Rule.Node & { + * range: [number, number], value: string + * }} + */ + (jsdocNode).value.includes('\n') + )) { return; } @@ -205,7 +261,16 @@ export default iterateJsdoc(({ const foundTags = utils.getPresentTags(applicableTags); if (context.options[0] !== 'any') { for (const tag of foundTags) { - checkNotAlignedPerTag(utils, tag, customSpacings); + checkNotAlignedPerTag( + utils, + /** + * @type {import('comment-parser').Spec & { + * line: import('../iterateJsdoc.js').Integer + * }} + */ + (tag), + customSpacings, + ); } } @@ -232,7 +297,7 @@ export default iterateJsdoc(({ utils.reportJSDoc('Expected wrap indent', { line: tag.source[0].number + idx, }, () => { - tokens.postDelimiter = tokens.postDelimiter.charAt() + wrapIndent; + tokens.postDelimiter = tokens.postDelimiter.charAt(0) + wrapIndent; }); return; } diff --git a/src/rules/checkParamNames.js b/src/rules/checkParamNames.js index 48206b287..2724b23db 100644 --- a/src/rules/checkParamNames.js +++ b/src/rules/checkParamNames.js @@ -9,9 +9,9 @@ import iterateJsdoc from '../iterateJsdoc'; * @param {boolean} disableExtraPropertyReporting * @param {boolean} enableFixer * @param {Array} functionParameterNames - * @param jsdoc - * @param utils - * @param report + * @param {import('comment-parser').Block} jsdoc + * @param {import('../iterateJsdoc.js').Utils} utils + * @param {import('../iterateJsdoc.js').Report} report * @returns {boolean} */ const validateParameterNames = ( diff --git a/src/rules/checkPropertyNames.js b/src/rules/checkPropertyNames.js index c1fad080b..2e2cc4995 100644 --- a/src/rules/checkPropertyNames.js +++ b/src/rules/checkPropertyNames.js @@ -3,8 +3,8 @@ import iterateJsdoc from '../iterateJsdoc'; /** * @param {string} targetTagName * @param {boolean} enableFixer - * @param jsdoc - * @param utils + * @param {import('comment-parser').Block} jsdoc + * @param {import('../iterateJsdoc.js').Utils} utils * @returns {boolean} */ const validatePropertyNames = ( @@ -21,12 +21,13 @@ const validatePropertyNames = ( return propertyTags.some(([ , tag, ], index) => { + /** @type {import('../iterateJsdoc.js').Integer} */ let tagsIndex; const dupeTagInfo = propertyTags.find(([ tgsIndex, tg, ], idx) => { - tagsIndex = tgsIndex; + tagsIndex = Number(tgsIndex); return tg.name === tag.name && idx !== index; }); @@ -44,14 +45,19 @@ const validatePropertyNames = ( /** * @param {string} targetTagName - * @param {string[]} jsdocPropertyNames - * @param jsdoc + * @param {{ + * idx: number; + * name: string; + * type: string; + * }[]} jsdocPropertyNames + * @param {import('comment-parser').Block} jsdoc * @param {Function} report */ const validatePropertyNamesDeep = ( targetTagName, jsdocPropertyNames, jsdoc, report, ) => { + /** @type {string} */ let lastRealProperty; return jsdocPropertyNames.some(({ @@ -101,7 +107,7 @@ export default iterateJsdoc(({ enableFixer = false, } = context.options[0] || {}; const jsdocPropertyNamesDeep = utils.getJsdocTagsDeep('property'); - if (!jsdocPropertyNamesDeep.length) { + if (!jsdocPropertyNamesDeep || !jsdocPropertyNamesDeep.length) { return; } diff --git a/src/rules/checkTagNames.js b/src/rules/checkTagNames.js index aa03da4c8..9c3915aa1 100644 --- a/src/rules/checkTagNames.js +++ b/src/rules/checkTagNames.js @@ -70,13 +70,21 @@ export default iterateJsdoc(({ settings, jsdocNode, }) => { - const { - definedTags = [], - enableFixer = true, - jsxTags, - typed, - } = context.options[0] || {}; + const + /** + * @type {{ + * definedTags: string[], + * enableFixer: boolean, + * jsxTags: boolean, + * typed: boolean + }} */ { + definedTags = [], + enableFixer = true, + jsxTags, + typed, + } = context.options[0] || {}; + /** @type {(string|undefined)[]} */ let definedPreferredTags = []; const { tagNamePreference, @@ -108,12 +116,24 @@ export default iterateJsdoc(({ }); } + /** + * @param {import('eslint').Rule.Node} subNode + * @returns {boolean} + */ const isInAmbientContext = (subNode) => { return subNode.type === 'Program' ? context.getFilename().endsWith('.d.ts') : - Boolean(subNode.declare) || isInAmbientContext(subNode.parent); + Boolean( + /** @type {import('@typescript-eslint/types').TSESTree.VariableDeclaration} */ ( + subNode + ).declare, + ) || isInAmbientContext(subNode.parent); }; + /** + * @param {import('comment-parser').Spec} jsdocTag + * @returns {boolean} + */ const tagIsRedundantWhenTyped = (jsdocTag) => { if (!typedTagsUnnecessaryOutsideDeclare.has(jsdocTag.tag)) { return false; @@ -129,14 +149,23 @@ export default iterateJsdoc(({ return false; } - if (isInAmbientContext(node)) { + if (isInAmbientContext(/** @type {import('eslint').Rule.Node} */ (node))) { return false; } return true; }; + /* eslint-disable jsdoc/no-undefined-types -- TS */ + /** + * @param {string} message + * @param {import('comment-parser').Spec} jsdocTag + * @param {import('../iterateJsdoc.js').Integer} tagIndex + * @param {Partial} [additionalTagChanges] + * @returns {void} + */ const reportWithTagRemovalFixer = (message, jsdocTag, tagIndex, additionalTagChanges) => { + /* eslint-enable jsdoc/no-undefined-types -- TS */ utils.reportJSDoc(message, jsdocTag, enableFixer ? () => { if (jsdocTag.description.trim()) { utils.changeTag(jsdocTag, { @@ -152,22 +181,40 @@ export default iterateJsdoc(({ } : null, true); }; + /** + * @param {import('comment-parser').Spec} jsdocTag + * @param {import('../iterateJsdoc.js').Integer} tagIndex + * @returns {boolean} + */ const checkTagForTypedValidity = (jsdocTag, tagIndex) => { if (typedTagsAlwaysUnnecessary.has(jsdocTag.tag)) { - reportWithTagRemovalFixer(`'@${jsdocTag.tag}' is redundant when using a type system.`, jsdocTag, tagIndex, { - postTag: '', - tag: '', - }); + reportWithTagRemovalFixer( + `'@${jsdocTag.tag}' is redundant when using a type system.`, + jsdocTag, + tagIndex, + { + postTag: '', + tag: '', + }, + ); return true; } if (tagIsRedundantWhenTyped(jsdocTag)) { - reportWithTagRemovalFixer(`'@${jsdocTag.tag}' is redundant outside of ambient (\`declare\`/\`.d.ts\`) contexts when using a type system.`, jsdocTag, tagIndex); + reportWithTagRemovalFixer( + `'@${jsdocTag.tag}' is redundant outside of ambient (\`declare\`/\`.d.ts\`) contexts when using a type system.`, + jsdocTag, + tagIndex, + ); return true; } if (typedTagsNeedingName.has(jsdocTag.tag) && !jsdocTag.name) { - reportWithTagRemovalFixer(`'@${jsdocTag.tag}' without a name is redundant when using a type system.`, jsdocTag, tagIndex); + reportWithTagRemovalFixer( + `'@${jsdocTag.tag}' without a name is redundant when using a type system.`, + jsdocTag, + tagIndex, + ); return true; } @@ -187,7 +234,7 @@ export default iterateJsdoc(({ const validTags = [ ...definedTags, - ...definedPreferredTags, + ...(/** @type {string[]} */ (definedPreferredTags)), ...definedNonPreferredTags, ...definedStructuredTags, ...typed ? typedTagsNeedingName : [], diff --git a/src/rules/checkTypes.js b/src/rules/checkTypes.js index b4b6b3873..714bd3abe 100644 --- a/src/rules/checkTypes.js +++ b/src/rules/checkTypes.js @@ -29,8 +29,8 @@ const strictNativeTypes = [ * @param {string} preferred The preferred type * @param {boolean} isGenericMatch * @param {string} typeNodeName - * @param {import('jsdoc-type-pratt-parser/dist/src/index.d.ts').NonTerminalResult} node - * @param {import('jsdoc-type-pratt-parser/dist/src/index.d.ts').NonTerminalResult} parentNode + * @param {import('jsdoc-type-pratt-parser').NonRootResult} node + * @param {import('jsdoc-type-pratt-parser').NonRootResult} parentNode * @returns {void} */ const adjustNames = (type, preferred, isGenericMatch, typeNodeName, node, parentNode) => { @@ -73,6 +73,10 @@ const adjustNames = (type, preferred, isGenericMatch, typeNodeName, node, parent } }; +/** + * @param {boolean} upperCase + * @returns {string} + */ const getMessage = (upperCase) => { return 'Use object shorthand or index signatures instead of ' + '`' + (upperCase ? 'O' : 'o') + 'bject`, e.g., `{[key: string]: string}`'; @@ -267,8 +271,8 @@ export default iterateJsdoc(({ * @param {string} nameInTag * @param {number} idx * @param {string} property - * @param {import('jsdoc-type-pratt-parser/dist/src/index.d.ts').NonTerminalResult} node - * @param {import('jsdoc-type-pratt-parser/dist/src/index.d.ts').NonTerminalResult} parentNode + * @param {import('jsdoc-type-pratt-parser').NonRootResult} node + * @param {import('jsdoc-type-pratt-parser').NonRootResult} parentNode * @param {string[]} invalidTypes * @returns {void} */ diff --git a/src/rules/checkValues.js b/src/rules/checkValues.js index 6daef5e9e..fbd023bf8 100644 --- a/src/rules/checkValues.js +++ b/src/rules/checkValues.js @@ -30,7 +30,9 @@ export default iterateJsdoc(({ } = options; utils.forEachPreferredTag('version', (jsdocParameter, targetTagName) => { - const version = utils.getTagDescription(jsdocParameter).trim(); + const version = /** @type {string} */ ( + utils.getTagDescription(jsdocParameter) + ).trim(); if (!version) { report( `Missing JSDoc @${targetTagName} value.`, @@ -47,7 +49,9 @@ export default iterateJsdoc(({ }); utils.forEachPreferredTag('kind', (jsdocParameter, targetTagName) => { - const kind = utils.getTagDescription(jsdocParameter).trim(); + const kind = /** @type {string} */ ( + utils.getTagDescription(jsdocParameter) + ).trim(); if (!kind) { report( `Missing JSDoc @${targetTagName} value.`, @@ -68,7 +72,9 @@ export default iterateJsdoc(({ if (numericOnlyVariation) { utils.forEachPreferredTag('variation', (jsdocParameter, targetTagName) => { - const variation = utils.getTagDescription(jsdocParameter).trim(); + const variation = /** @type {string} */ ( + utils.getTagDescription(jsdocParameter) + ).trim(); if (!variation) { report( `Missing JSDoc @${targetTagName} value.`, @@ -89,7 +95,9 @@ export default iterateJsdoc(({ } utils.forEachPreferredTag('since', (jsdocParameter, targetTagName) => { - const version = utils.getTagDescription(jsdocParameter).trim(); + const version = /** @type {string} */ ( + utils.getTagDescription(jsdocParameter) + ).trim(); if (!version) { report( `Missing JSDoc @${targetTagName} value.`, @@ -106,7 +114,9 @@ export default iterateJsdoc(({ }); utils.forEachPreferredTag('license', (jsdocParameter, targetTagName) => { const licenseRegex = utils.getRegexFromString(licensePattern, 'g'); - const matches = utils.getTagDescription(jsdocParameter).matchAll(licenseRegex); + const matches = /** @type {string} */ ( + utils.getTagDescription(jsdocParameter) + ).matchAll(licenseRegex); let positiveMatch = false; for (const match of matches) { const license = match[1] || match[0]; @@ -148,7 +158,9 @@ export default iterateJsdoc(({ }); utils.forEachPreferredTag('author', (jsdocParameter, targetTagName) => { - const author = utils.getTagDescription(jsdocParameter).trim(); + const author = /** @type {string} */ ( + utils.getTagDescription(jsdocParameter) + ).trim(); if (!author) { report( `Missing JSDoc @${targetTagName} value.`, diff --git a/src/rules/emptyTags.js b/src/rules/emptyTags.js index fd590a35a..e9c69d6e6 100644 --- a/src/rules/emptyTags.js +++ b/src/rules/emptyTags.js @@ -46,7 +46,14 @@ export default iterateJsdoc(({ const content = tag.name || tag.description || tag.type; if (content.trim()) { const fix = () => { - utils.setTag(tag); + // By time of call in fixer, `tag` will have `line` added + utils.setTag( + /** + * @type {import('comment-parser').Spec & { + * line: import('../iterateJsdoc.js').Integer + * }} + */ (tag), + ); }; utils.reportJSDoc(`@${tag.tag} should be empty.`, tag, fix, true); diff --git a/src/rules/matchDescription.js b/src/rules/matchDescription.js index d241664dc..aa47d553d 100644 --- a/src/rules/matchDescription.js +++ b/src/rules/matchDescription.js @@ -4,6 +4,11 @@ import iterateJsdoc from '../iterateJsdoc'; // initial letter: \\p{Upper} const matchDescriptionDefault = '^\n?([A-Z`\\d_][\\s\\S]*[.?!`]\\s*)?$'; +/** + * @param {string} value + * @param {string} userDefault + * @returns {string} + */ const stringOrDefault = (value, userDefault) => { return typeof value === 'string' ? value : @@ -23,6 +28,11 @@ export default iterateJsdoc(({ tags, } = context.options[0] || {}; + /** + * @param {string} desc + * @param {import('comment-parser').Spec} [tag] + * @returns {void} + */ const validateDescription = (desc, tag) => { let mainDescriptionMatch = mainDescription; let errorMessage = message; @@ -75,6 +85,10 @@ export default iterateJsdoc(({ return; } + /** + * @param {string} tagName + * @returns {boolean} + */ const hasOptionTag = (tagName) => { return Boolean(tags[tagName]); }; @@ -97,7 +111,9 @@ export default iterateJsdoc(({ } = utils.getTagsByType(whitelistedTags); tagsWithNames.some((tag) => { - const desc = utils.getTagDescription(tag).replace(/^[- ]*/u, '') + const desc = /** @type {string} */ ( + utils.getTagDescription(tag) + ).replace(/^[- ]*/u, '') .trim(); return validateDescription(desc, tag); diff --git a/src/rules/noBadBlocks.js b/src/rules/noBadBlocks.js index becde420a..10f0a01d9 100644 --- a/src/rules/noBadBlocks.js +++ b/src/rules/noBadBlocks.js @@ -43,13 +43,9 @@ export default iterateJsdoc(({ } } - const [ - { - tags = {}, - } = {}, - ] = commentParser( + const tags = (commentParser( `${commentText.slice(0, 2)}*${commentText.slice(sliceIndex)}`, - ); + )[0] || {}).tags ?? []; return tags.length && !tags.some(({ tag, diff --git a/src/rules/noBlankBlockDescriptions.js b/src/rules/noBlankBlockDescriptions.js index 97aae5e28..5f5d0bfd6 100644 --- a/src/rules/noBlankBlockDescriptions.js +++ b/src/rules/noBlankBlockDescriptions.js @@ -42,6 +42,8 @@ export default iterateJsdoc(({ return [ // Keep the starting line { + number: 0, + source: '', tokens: seedTokens({ ...info, description: '', diff --git a/src/rules/noMissingSyntax.js b/src/rules/noMissingSyntax.js index a889812fe..bbb809108 100644 --- a/src/rules/noMissingSyntax.js +++ b/src/rules/noMissingSyntax.js @@ -1,12 +1,35 @@ import esquery from 'esquery'; import iterateJsdoc from '../iterateJsdoc'; +/** + * @typedef {{ + * comment: string, + * context: string, + * message: string, + * minimum: import('../iterateJsdoc.js').Integer + * }} ContextObject + */ + +/** + * @typedef {string|ContextObject} Context + */ + +/** + * @param {import('../iterateJsdoc.js').StateObject} state + * @returns {void} + */ const setDefaults = (state) => { if (!state.selectorMap) { state.selectorMap = {}; } }; +/** + * @param {import('../iterateJsdoc.js').StateObject} state + * @param {string} selector + * @param {string} comment + * @returns {void} + */ const incrementSelector = (state, selector, comment) => { if (!state.selectorMap[selector]) { state.selectorMap[selector] = {}; @@ -33,9 +56,10 @@ export default iterateJsdoc(({ return; } - const { - contexts, - } = context.options[0]; + /** + * @type {Context[]} + */ + const contexts = context.options[0].contexts; const foundContext = contexts.find((cntxt) => { return typeof cntxt === 'string' ? @@ -50,11 +74,11 @@ export default iterateJsdoc(({ const contextStr = typeof foundContext === 'object' ? foundContext.context ?? 'any' : - foundContext; + String(foundContext); setDefaults(state); - incrementSelector(state, contextStr, comment); + incrementSelector(state, contextStr, String(comment)); }, { contextSelected: true, exit ({ @@ -65,6 +89,10 @@ export default iterateJsdoc(({ if (!context.options.length && !settings.contexts) { context.report({ loc: { + end: { + column: 1, + line: 1, + }, start: { column: 1, line: 1, @@ -77,27 +105,37 @@ export default iterateJsdoc(({ } setDefaults(state); - const { - contexts = settings?.contexts, - } = context.options[0] || {}; + + /** + * @type {Context[]} + */ + const contexts = (context.options[0] ?? {}).contexts ?? settings?.contexts; // Report when MISSING contexts.some((cntxt) => { const contextStr = typeof cntxt === 'object' ? cntxt.context ?? 'any' : cntxt; - const comment = cntxt?.comment ?? ''; + const comment = typeof cntxt === 'string' ? '' : cntxt?.comment; - const contextKey = contextStr === 'any' ? undefined : contextStr; + const contextKey = contextStr === 'any' ? 'undefined' : contextStr; if ( (!state.selectorMap[contextKey] || !state.selectorMap[contextKey][comment] || - state.selectorMap[contextKey][comment] < (cntxt?.minimum ?? 1)) && + state.selectorMap[contextKey][comment] < ( + // @ts-expect-error comment would need an object, not string + cntxt?.minimum ?? 1 + )) && (contextStr !== 'any' || Object.values(state.selectorMap).every((cmmnt) => { - return !cmmnt[comment] || cmmnt[comment] < (cntxt?.minimum ?? 1); + return !cmmnt[comment] || cmmnt[comment] < ( + // @ts-expect-error comment would need an object, not string + cntxt?.minimum ?? 1 + ); })) ) { - const message = cntxt?.message ?? 'Syntax is required: {{context}}' + - (comment ? ' with {{comment}}' : ''); + const message = typeof cntxt === 'string' ? + 'Syntax is required: {{context}}' : + cntxt?.message ?? ('Syntax is required: {{context}}' + + (comment ? ' with {{comment}}' : '')); context.report({ data: { comment, @@ -105,9 +143,11 @@ export default iterateJsdoc(({ }, loc: { end: { + column: 1, line: 1, }, start: { + column: 1, line: 1, }, }, diff --git a/src/rules/noMultiAsterisks.js b/src/rules/noMultiAsterisks.js index 49515a5e4..f71258e9e 100644 --- a/src/rules/noMultiAsterisks.js +++ b/src/rules/noMultiAsterisks.js @@ -68,12 +68,9 @@ export default iterateJsdoc(({ const isSingleLineBlock = delimiter === '/**'; const delim = isSingleLineBlock ? '*' : delimiter; - let endAsterisks; - if (allowWhitespace) { - endAsterisks = isSingleLineBlock ? endAsterisksSingleLineNoBlockWS : endAsterisksMultipleLineNoBlockWS; - } else { - endAsterisks = isSingleLineBlock ? endAsterisksSingleLineBlockWS : endAsterisksMultipleLineBlockWS; - } + const endAsterisks = allowWhitespace ? + (isSingleLineBlock ? endAsterisksSingleLineNoBlockWS : endAsterisksMultipleLineNoBlockWS) : + (isSingleLineBlock ? endAsterisksSingleLineBlockWS : endAsterisksMultipleLineBlockWS); const endingAsterisksAndSpaces = ( allowWhitespace ? postDelimiter + description + delim : description + delim diff --git a/src/rules/noRestrictedSyntax.js b/src/rules/noRestrictedSyntax.js index a92358a71..bd58d80ba 100644 --- a/src/rules/noRestrictedSyntax.js +++ b/src/rules/noRestrictedSyntax.js @@ -20,16 +20,22 @@ export default iterateJsdoc(({ contexts, } = context.options[0]; - const foundContext = contexts.find((cntxt) => { - return typeof cntxt === 'string' ? - esquery.matches(node, esquery.parse(cntxt), null, { - visitorKeys: sourceCode.visitorKeys, - }) : - (!cntxt.context || cntxt.context === 'any' || esquery.matches(node, esquery.parse(cntxt.context), null, { - visitorKeys: sourceCode.visitorKeys, - })) && - comment === cntxt.comment; - }); + const foundContext = contexts.find( + /** + * @param {string|{context: string, comment: string}} cntxt + * @returns {boolean} + */ + (cntxt) => { + return typeof cntxt === 'string' ? + esquery.matches(node, esquery.parse(cntxt), null, { + visitorKeys: sourceCode.visitorKeys, + }) : + (!cntxt.context || cntxt.context === 'any' || esquery.matches(node, esquery.parse(cntxt.context), null, { + visitorKeys: sourceCode.visitorKeys, + })) && + comment === cntxt.comment; + }, + ); // We are not on the *particular* matching context/comment, so don't assume // we need reporting diff --git a/src/rules/noTypes.js b/src/rules/noTypes.js index af56dab3b..5c60313a9 100644 --- a/src/rules/noTypes.js +++ b/src/rules/noTypes.js @@ -1,5 +1,8 @@ import iterateJsdoc from '../iterateJsdoc'; +/** + * @param {import('comment-parser').Line} line + */ const removeType = ({ tokens, }) => { diff --git a/src/rules/noUndefinedTypes.js b/src/rules/noUndefinedTypes.js index 61c45886f..b7721f14a 100644 --- a/src/rules/noUndefinedTypes.js +++ b/src/rules/noUndefinedTypes.js @@ -43,6 +43,10 @@ const typescriptGlobals = [ 'Uncapitalize', ]; +/** + * @param {string} str + * @returns {undefined|string} + */ const stripPseudoTypes = (str) => { return str && str.replace(/(?:\.|<>|\.<>|\[\])$/u, ''); }; @@ -58,16 +62,26 @@ export default iterateJsdoc(({ const { scopeManager, } = sourceCode; - const { - globalScope, - } = scopeManager; - const { - definedTypes = [], - disableReporting = false, - markVariablesAsUsed = true, - } = context.options[0] || {}; + // When is this ever `null`? + const globalScope = /** @type {import('eslint').Scope.Scope} */ ( + scopeManager.globalScope + ); + + const + /** + * @type {{ + * definedTypes: string[], + * disableReporting: boolean, + * markVariablesAsUsed: boolean + * }} + */ { + definedTypes = [], + disableReporting = false, + markVariablesAsUsed = true, + } = context.options[0] || {}; + /** @type {(string|undefined)[]} */ let definedPreferredTypes = []; const { preferredTypes, @@ -98,7 +112,7 @@ export default iterateJsdoc(({ }); } - const typedefDeclarations = context.getAllComments() + const typedefDeclarations = sourceCode.getAllComments() .filter((comment) => { return (/^\*\s/u).test(comment.value); }) @@ -125,6 +139,10 @@ export default iterateJsdoc(({ currentNode = currentNode.parent; } + /** + * @param {import('eslint').Rule.Node} ancestorNode + * @returns {import('comment-parser').Spec[]} + */ const getTemplateTags = function (ancestorNode) { const commentNode = getJSDocComment(sourceCode, ancestorNode, settings); if (!commentNode) { @@ -144,7 +162,9 @@ export default iterateJsdoc(({ ancestorNodes.flatMap((ancestorNode) => { return getTemplateTags(ancestorNode); }) : - utils.getPresentTags('template'); + utils.getPresentTags([ + 'template', + ]); const closureGenericTypes = templateTags.flatMap((tag) => { return utils.parseClosureTemplateTag(tag); @@ -176,7 +196,7 @@ export default iterateJsdoc(({ .concat(extraTypes) .concat(typedefDeclarations) .concat(definedTypes) - .concat(definedPreferredTypes) + .concat(/** @type {string[]} */ (definedPreferredTypes)) .concat( settings.mode === 'jsdoc' ? [] : @@ -186,12 +206,29 @@ export default iterateJsdoc(({ ], )); + /** + * @typedef {{ + * parsedType: import('jsdoc-type-pratt-parser').RootResult; + * tag: import('comment-parser').Spec + * }} TypeAndTagInfo + */ + + /** + * @param {string} propertyName + * @returns {(tag: import('comment-parser').Spec & { + * namepathOrURL?: string + * }) => undefined|TypeAndTagInfo} + */ const tagToParsedType = (propertyName) => { return (tag) => { try { - const potentialType = tag[propertyName]; + const potentialType = tag[ + /** @type {"type"|"name"|"namepathOrURL"} */ (propertyName) + ]; return { - parsedType: mode === 'permissive' ? tryParseType(potentialType) : parseType(potentialType, mode), + parsedType: mode === 'permissive' ? + tryParseType(/** @type {string} */ (potentialType)) : + parseType(/** @type {string} */ (potentialType), mode), tag, }; } catch { @@ -218,23 +255,25 @@ export default iterateJsdoc(({ return utils.isNamepathOrUrlReferencingTag(tag); }, true).map(tagToParsedType('namepathOrURL')); - const tagsWithTypes = [ + const tagsWithTypes = /** @type {TypeAndTagInfo[]} */ ([ ...typeTags, ...namepathReferencingTags, ...namepathOrUrlReferencingTags, ].filter((result) => { // Remove types which failed to parse return result; - }); + })); for (const { tag, parsedType, } of tagsWithTypes) { - traverse(parsedType, ({ - type, - value, - }) => { + traverse(parsedType, (nde) => { + const { + type, + value, + } = /** @type {import('jsdoc-type-pratt-parser').NameResult} */ (nde); + if (type === 'JsdocTypeName') { const structuredTypes = structuredTags[tag.tag]?.type; if (!allDefinedTypes.has(value) && diff --git a/src/rules/requireAsteriskPrefix.js b/src/rules/requireAsteriskPrefix.js index 8a05ec628..872da1fe9 100644 --- a/src/rules/requireAsteriskPrefix.js +++ b/src/rules/requireAsteriskPrefix.js @@ -20,6 +20,7 @@ export default iterateJsdoc(({ const always = defaultRequireValue === 'always'; const never = defaultRequireValue === 'never'; + /** @type {string} */ let currentTag; source.some(({ number, @@ -32,11 +33,18 @@ export default iterateJsdoc(({ description, } = tokens; + /** + * @returns {void} + */ const neverFix = () => { tokens.delimiter = ''; tokens.postDelimiter = ''; }; + /** + * @param {string} checkValue + * @returns {boolean} + */ const checkNever = (checkValue) => { if (delimiter && delimiter !== '/**' && ( never && !tagMap.always?.includes(checkValue) || @@ -53,6 +61,9 @@ export default iterateJsdoc(({ return false; }; + /** + * @returns {void} + */ const alwaysFix = () => { if (!tokens.start) { tokens.start = indent + ' '; @@ -62,6 +73,10 @@ export default iterateJsdoc(({ tokens.postDelimiter = tag || description ? ' ' : ''; }; + /** + * @param {string} checkValue + * @returns {boolean} + */ const checkAlways = (checkValue) => { if ( !delimiter && ( diff --git a/src/rules/requireDescription.js b/src/rules/requireDescription.js index d54ade9c7..ae36e8382 100644 --- a/src/rules/requireDescription.js +++ b/src/rules/requireDescription.js @@ -1,5 +1,9 @@ import iterateJsdoc from '../iterateJsdoc'; +/** + * @param {string} description + * @returns {import('../iterateJsdoc.js').Integer} + */ const checkDescription = (description) => { return description .trim() diff --git a/src/rules/requireDescriptionCompleteSentence.js b/src/rules/requireDescriptionCompleteSentence.js index 875abae32..f46816056 100644 --- a/src/rules/requireDescriptionCompleteSentence.js +++ b/src/rules/requireDescriptionCompleteSentence.js @@ -9,10 +9,19 @@ const otherDescriptiveTags = new Set([ 'deprecated', 'throws', 'exception', 'yields', 'yield', ]); +/** + * @param {string} text + * @returns {string[]} + */ const extractParagraphs = (text) => { return text.split(/(? { const txt = text // Remove all {} tags. @@ -38,7 +47,12 @@ const extractSentences = (text, abbreviationsRegex) => { }); }; +/** + * @param {string} text + * @returns {boolean} + */ const isNewLinePrecededByAPeriod = (text) => { + /** @type {boolean} */ let lastLineEndsSentence; const lines = text.split('\n'); @@ -54,18 +68,42 @@ const isNewLinePrecededByAPeriod = (text) => { }); }; +/** + * @param {string} str + * @returns {boolean} + */ const isCapitalized = (str) => { return str[0] === str[0].toUpperCase(); }; +/** + * @param {string} str + * @returns {boolean} + */ const isTable = (str) => { - return str.charAt() === '|'; + return str.charAt(0) === '|'; }; +/** + * @param {string} str + * @returns {string} + */ const capitalize = (str) => { return str.charAt(0).toUpperCase() + str.slice(1); }; +/** + * @param {string} description + * @param {import('../iterateJsdoc.js').Report} reportOrig + * @param {import('eslint').Rule.Node} jsdocNode + * @param {string|RegExp} abbreviationsRegex + * @param {import('eslint').SourceCode} sourceCode + * @param {import('comment-parser').Spec|{ + * line: import('../iterateJsdoc.js').Integer + * }} tag + * @param {boolean} newlineBeforeCapsAssumesBadSentenceEnd + * @returns {boolean} + */ const validateDescription = ( description, reportOrig, jsdocNode, abbreviationsRegex, sourceCode, tag, newlineBeforeCapsAssumesBadSentenceEnd, @@ -84,8 +122,10 @@ const validateDescription = ( if (!/[.:?!]$/u.test(paragraph)) { const line = paragraph.split('\n').filter(Boolean).pop(); - - text = text.replace(new RegExp(`${escapeStringRegexp(line)}$`, 'mu'), `${line}.`); + text = text.replace(new RegExp(`${escapeStringRegexp( + /** @type {string} */ + (line), + )}$`, 'mu'), `${line}.`); } for (const sentence of sentences.filter((sentence_) => { @@ -94,7 +134,7 @@ const validateDescription = ( })) { const beginning = sentence.split('\n')[0]; - if (tag.tag) { + if ('tag' in tag && tag.tag) { const reg = new RegExp(`(@${escapeStringRegexp(tag.tag)}.*)${escapeStringRegexp(beginning)}`, 'u'); text = text.replace(reg, (_$0, $1) => { @@ -108,11 +148,29 @@ const validateDescription = ( return fixer.replaceText(jsdocNode, text); }; + /** + * @param {string} msg + * @param {import('eslint').Rule.ReportFixer | null | undefined} fixer + * @param {{ + * line?: number | undefined; + * column?: number | undefined; + * } | (import('comment-parser').Spec & { + * line?: number | undefined; + * column?: number | undefined; + * })} tagObj + * @returns {void} + */ const report = (msg, fixer, tagObj) => { if ('line' in tagObj) { - tagObj.line += parIdx * 2; + /** + * @type {{ + * line: number; + * }} + */ (tagObj).line += parIdx * 2; } else { - tagObj.source[0].number += parIdx * 2; + /** @type {import('comment-parser').Spec} */ ( + tagObj + ).source[0].number += parIdx * 2; } // Avoid errors if old column doesn't exist here @@ -136,7 +194,6 @@ const validateDescription = ( if (!/(?:[.?!|]|```)\s*$/u.test(paragraphNoAbbreviations)) { report('Sentences must end with a period.', fix, tag); - return true; } @@ -158,11 +215,10 @@ export default iterateJsdoc(({ jsdocNode, utils, }) => { - const options = context.options[0] || {}; - const { + const /** @type {{abbreviations: string[], newlineBeforeCapsAssumesBadSentenceEnd: boolean}} */ { abbreviations = [], newlineBeforeCapsAssumesBadSentenceEnd = false, - } = options; + } = context.options[0] || {}; const abbreviationsRegex = abbreviations.length ? new RegExp('\\b' + abbreviations.map((abbreviation) => { @@ -195,7 +251,10 @@ export default iterateJsdoc(({ index, length, } of indices) { - description = description.slice(0, index) + description.slice(index + length); + description = description.slice(0, index) + + description.slice(/** @type {import('../iterateJsdoc.js').Integer} */ ( + index + ) + length); } if (validateDescription(description, report, jsdocNode, abbreviationsRegex, sourceCode, { @@ -226,7 +285,9 @@ export default iterateJsdoc(({ }); tagsWithNames.some((tag) => { - const desc = utils.getTagDescription(tag).replace(/^- /u, '').trimEnd(); + const desc = /** @type {string} */ ( + utils.getTagDescription(tag) + ).replace(/^- /u, '').trimEnd(); return validateDescription(desc, report, jsdocNode, abbreviationsRegex, sourceCode, tag, newlineBeforeCapsAssumesBadSentenceEnd); }); diff --git a/src/rules/requireFileOverview.js b/src/rules/requireFileOverview.js index 216ba308a..126350d5d 100644 --- a/src/rules/requireFileOverview.js +++ b/src/rules/requireFileOverview.js @@ -8,6 +8,10 @@ const defaultTags = { }, }; +/** + * @param {import('../iterateJsdoc.js').StateObject} state + * @returns {void} + */ const setDefaults = (state) => { // First iteration if (!state.globalTags) { @@ -74,13 +78,15 @@ export default iterateJsdoc(({ const obj = utils.getPreferredTagNameObject({ tagName, }); - if (obj && obj.blocked) { + if (obj && typeof obj === 'object' && 'blocked' in obj) { utils.reportSettings( `\`settings.jsdoc.tagNamePreference\` cannot block @${obj.tagName} ` + 'for the `require-file-overview` rule', ); } else { - const targetTagName = obj && obj.replacement || obj; + const targetTagName = ( + obj && typeof obj === 'object' && obj.replacement + ) || obj; if (mustExist && !state.hasTag[tagName]) { utils.reportSettings(`Missing @${targetTagName}`); } diff --git a/src/rules/requireHyphenBeforeParamDescription.js b/src/rules/requireHyphenBeforeParamDescription.js index 2241f59b6..8a0e82409 100644 --- a/src/rules/requireHyphenBeforeParamDescription.js +++ b/src/rules/requireHyphenBeforeParamDescription.js @@ -11,13 +11,27 @@ export default iterateJsdoc(({ const [ mainCircumstance, { - tags, + tags = null, } = {}, ] = context.options; + /* eslint-disable jsdoc/valid-types -- Old version */ + const tgs = /** + * @type {null|"any"|{[key: string]: "always"|"never"}} + */ (tags); + /* eslint-enable jsdoc/valid-types -- Old version */ + + /** + * @param {import('comment-parser').Spec & { + * line: import('../iterateJsdoc.js').Integer + * }} jsdocTag + * @param {string} targetTagName + * @param {"always"|"never"} [circumstance] + * @returns {void} + */ const checkHyphens = (jsdocTag, targetTagName, circumstance = mainCircumstance) => { const always = !circumstance || circumstance === 'always'; - const desc = utils.getTagDescription(jsdocTag); + const desc = /** @type {string} */ (utils.getTagDescription(jsdocTag)); if (!desc.trim()) { return; } @@ -76,8 +90,8 @@ export default iterateJsdoc(({ }; utils.forEachPreferredTag('param', checkHyphens); - if (tags) { - const tagEntries = Object.entries(tags); + if (tgs) { + const tagEntries = Object.entries(tgs); for (const [ tagName, circumstance, @@ -98,7 +112,11 @@ export default iterateJsdoc(({ } utils.forEachPreferredTag(tag, (jsdocTag, targetTagName) => { - checkHyphens(jsdocTag, targetTagName, circumstance); + checkHyphens( + jsdocTag, + targetTagName, + /** @type {"always"|"never"} */ (circumstance), + ); }); } @@ -106,7 +124,11 @@ export default iterateJsdoc(({ } utils.forEachPreferredTag(tagName, (jsdocTag, targetTagName) => { - checkHyphens(jsdocTag, targetTagName, circumstance); + checkHyphens( + jsdocTag, + targetTagName, + /** @type {"always"|"never"} */ (circumstance), + ); }); } } diff --git a/src/rules/requireReturns.js b/src/rules/requireReturns.js index e06fe6cd8..ac32d9b24 100644 --- a/src/rules/requireReturns.js +++ b/src/rules/requireReturns.js @@ -6,7 +6,7 @@ import iterateJsdoc from '../iterateJsdoc'; * * In either of these cases the return value is optional or not defined. * - * @param {*} utils + * @param {import('../iterateJsdoc.js').Utils} utils * a reference to the utils which are used to probe if a tag is present or not. * @returns {boolean} * true in case deep checking can be skipped; otherwise false. diff --git a/src/rules/requireReturnsCheck.js b/src/rules/requireReturnsCheck.js index 1a3fb05e1..d5dae8bda 100755 --- a/src/rules/requireReturnsCheck.js +++ b/src/rules/requireReturnsCheck.js @@ -1,5 +1,10 @@ import iterateJsdoc from '../iterateJsdoc'; +/** + * @param {import('../iterateJsdoc.js').Utils} utils + * @param {import('../iterateJsdoc.js').Settings} settings + * @returns {boolean} + */ const canSkip = (utils, settings) => { const voidingTags = [ // An abstract function is by definition incomplete diff --git a/src/rules/requireThrows.js b/src/rules/requireThrows.js index 7e989a77e..cae68a271 100644 --- a/src/rules/requireThrows.js +++ b/src/rules/requireThrows.js @@ -4,7 +4,7 @@ import iterateJsdoc from '../iterateJsdoc'; * We can skip checking for a throws value, in case the documentation is inherited * or the method is either a constructor or an abstract method. * - * @param {*} utils a reference to the utils which are used to probe if a tag is present or not. + * @param {import('../iterateJsdoc.js').Utils} utils a reference to the utils which are used to probe if a tag is present or not. * @returns {boolean} true in case deep checking can be skipped; otherwise false. */ const canSkip = (utils) => { diff --git a/src/rules/requireYields.js b/src/rules/requireYields.js index b29094d07..c18b65472 100644 --- a/src/rules/requireYields.js +++ b/src/rules/requireYields.js @@ -6,7 +6,7 @@ import iterateJsdoc from '../iterateJsdoc'; * * In either of these cases the yield value is optional or not defined. * - * @param {*} utils a reference to the utils which are used to probe if a tag is present or not. + * @param {import('../iterateJsdoc.js').Utils} utils a reference to the utils which are used to probe if a tag is present or not. * @returns {boolean} true in case deep checking can be skipped; otherwise false. */ const canSkip = (utils) => { @@ -34,6 +34,12 @@ const canSkip = (utils) => { utils.avoidDocs(); }; +/** + * @param {import('../iterateJsdoc.js').Utils} utils + * @param {import('../iterateJsdoc.js').Report} report + * @param {string} tagName + * @returns {[preferredTagName?: string, missingTag?: boolean]} + */ const checkTagName = (utils, report, tagName) => { const preferredTagName = utils.getPreferredTagName({ tagName, diff --git a/src/rules/requireYieldsCheck.js b/src/rules/requireYieldsCheck.js index f3837b216..fcc8a2a5c 100644 --- a/src/rules/requireYieldsCheck.js +++ b/src/rules/requireYieldsCheck.js @@ -1,5 +1,10 @@ import iterateJsdoc from '../iterateJsdoc'; +/** + * @param {import('../iterateJsdoc.js').Utils} utils + * @param {import('../iterateJsdoc.js').Settings} settings + * @returns {boolean} + */ const canSkip = (utils, settings) => { const voidingTags = [ // An abstract function is by definition incomplete @@ -30,6 +35,12 @@ const canSkip = (utils, settings) => { settings.mode === 'closure' && utils.classHasTag('record'); }; +/** + * @param {import('../iterateJsdoc.js').Utils} utils + * @param {import('../iterateJsdoc.js').Report} report + * @param {string} tagName + * @returns {[]|[preferredTagName: string, tag: import('comment-parser').Spec]} + */ const checkTagName = (utils, report, tagName) => { const preferredTagName = utils.getPreferredTagName({ tagName, @@ -78,7 +89,11 @@ export default iterateJsdoc(({ ); if (preferredYieldTagName) { const shouldReportYields = () => { - if (yieldTag.type.trim() === 'never') { + if ( + /** @type {import('comment-parser').Spec} */ ( + yieldTag + ).type.trim() === 'never' + ) { if (utils.hasYieldValue()) { report(`JSDoc @${preferredYieldTagName} declaration set with "never" but yield expression is present in function.`); } @@ -90,7 +105,10 @@ export default iterateJsdoc(({ return true; } - return !utils.mayBeUndefinedTypeTag(yieldTag) && !utils.hasYieldValue(); + return !utils.mayBeUndefinedTypeTag( + /** @type {import('comment-parser').Spec} */ + (yieldTag), + ) && !utils.hasYieldValue(); }; // In case a yield value is declared in JSDoc, we also expect one in the code. @@ -108,7 +126,11 @@ export default iterateJsdoc(({ ); if (preferredNextTagName) { const shouldReportNext = () => { - if (nextTag.type.trim() === 'never') { + if ( + /** @type {import('comment-parser').Spec} */ ( + nextTag + ).type.trim() === 'never' + ) { if (utils.hasYieldReturnValue()) { report(`JSDoc @${preferredNextTagName} declaration set with "never" but yield expression with return value is present in function.`); } @@ -120,7 +142,10 @@ export default iterateJsdoc(({ return true; } - return !utils.mayBeUndefinedTypeTag(nextTag) && !utils.hasYieldReturnValue(); + return !utils.mayBeUndefinedTypeTag( + /** @type {import('comment-parser').Spec} */ + (nextTag), + ) && !utils.hasYieldReturnValue(); }; if (shouldReportNext()) { diff --git a/src/rules/tagLines.js b/src/rules/tagLines.js index 45a79fb99..af4f7aee9 100644 --- a/src/rules/tagLines.js +++ b/src/rules/tagLines.js @@ -19,8 +19,15 @@ export default iterateJsdoc(({ // eslint-disable-next-line complexity -- Temporary jsdoc.tags.some((tg, tagIdx) => { let lastTag; + + /** + * @type {null|import('../iterateJsdoc.js').Integer} + */ let lastEmpty = null; + /** + * @type {null|import('../iterateJsdoc.js').Integer} + */ let reportIndex = null; let emptyLinesCount = 0; for (const [ @@ -80,7 +87,9 @@ export default iterateJsdoc(({ if (lineDiff < 0) { const fixer = () => { utils.removeTag(tagIdx, { - tagSourceOffset: lastEmpty + lineDiff + 1, + tagSourceOffset: /** @type {import('../iterateJsdoc.js').Integer} */ ( + lastEmpty + ) + lineDiff + 1, }); }; @@ -93,7 +102,11 @@ export default iterateJsdoc(({ ); } else if (lineDiff > 0) { const fixer = () => { - utils.addLines(tagIdx, lastEmpty, endLines - emptyLinesCount); + utils.addLines( + tagIdx, + /** @type {import('../iterateJsdoc.js').Integer} */ (lastEmpty), + endLines - emptyLinesCount, + ); }; utils.reportJSDoc( @@ -111,7 +124,9 @@ export default iterateJsdoc(({ if (reportIndex !== null) { const fixer = () => { utils.removeTag(tagIdx, { - tagSourceOffset: reportIndex, + tagSourceOffset: /** @type {import('../iterateJsdoc.js').Integer} */ ( + reportIndex + ), }); }; @@ -130,6 +145,12 @@ export default iterateJsdoc(({ }); (applyToEndTag ? jsdoc.tags : jsdoc.tags.slice(0, -1)).some((tg, tagIdx) => { + /** + * @type {{ + * idx: import('../iterateJsdoc.js').Integer, + * number: import('../iterateJsdoc.js').Integer + * }[]} + */ const lines = []; let currentTag; @@ -223,6 +244,8 @@ export default iterateJsdoc(({ utils.setBlockDescription((info, seedTokens, descLines) => { return descLines.slice(0, -trailingDiff).map((desc) => { return { + number: 0, + source: '', tokens: seedTokens({ ...info, description: desc, @@ -250,6 +273,8 @@ export default iterateJsdoc(({ }), ].map((desc) => { return { + number: 0, + source: '', tokens: seedTokens({ ...info, description: desc, diff --git a/src/rules/textEscaping.js b/src/rules/textEscaping.js index 13dcb5d20..d494a45e7 100644 --- a/src/rules/textEscaping.js +++ b/src/rules/textEscaping.js @@ -5,6 +5,10 @@ import iterateJsdoc from '../iterateJsdoc'; const htmlRegex = /(<|&(?!(?:amp|lt|gt|quot|apos);))(?=\S)/u; const markdownRegex = /(? { return desc.replace(new RegExp(htmlRegex, 'gu'), (_) => { if (_ === '<') { @@ -15,6 +19,10 @@ const htmlReplacer = (desc) => { }); }; +/** + * @param {string} desc + * @returns {string} + */ const markdownReplacer = (desc) => { return desc.replace(new RegExp(markdownRegex, 'gu'), (_, backticks, encapsed) => { const bookend = '`'.repeat(backticks.length); @@ -35,6 +43,10 @@ export default iterateJsdoc(({ if (!escapeHTML && !escapeMarkdown) { context.report({ loc: { + end: { + column: 1, + line: 1, + }, start: { column: 1, line: 1, @@ -61,7 +73,9 @@ export default iterateJsdoc(({ } for (const tag of jsdoc.tags) { - if (utils.getTagDescription(tag, true).some((desc) => { + if (/** @type {string[]} */ ( + utils.getTagDescription(tag, true) + ).some((desc) => { return htmlRegex.test(desc); })) { const line = utils.setTagDescription(tag, htmlRegex, htmlReplacer) + @@ -86,7 +100,9 @@ export default iterateJsdoc(({ } for (const tag of jsdoc.tags) { - if (utils.getTagDescription(tag, true).some((desc) => { + if (/** @type {string[]} */ ( + utils.getTagDescription(tag, true) + ).some((desc) => { return markdownRegex.test(desc); })) { const line = utils.setTagDescription( diff --git a/src/rules/validTypes.js b/src/rules/validTypes.js index 95742d428..d38a6b4b5 100644 --- a/src/rules/validTypes.js +++ b/src/rules/validTypes.js @@ -64,6 +64,10 @@ const suppressTypes = new Set([ 'with', ]); +/** + * @param {string} path + * @returns {boolean} + */ const tryParsePathIgnoreError = (path) => { try { tryParse(path); @@ -92,6 +96,11 @@ export default iterateJsdoc(({ } = settings; for (const tag of jsdoc.tags) { + /** + * @param {string} namepath + * @param {string} [tagName] + * @returns {boolean} + */ const validNamepathParsing = function (namepath, tagName) { if (tryParsePathIgnoreError(namepath)) { return true; @@ -123,7 +132,7 @@ export default iterateJsdoc(({ } case 'borrows': { - const startChar = namepath.charAt(); + const startChar = namepath.charAt(0); if ([ '#', '.', '~', ].includes(startChar)) { @@ -142,6 +151,10 @@ export default iterateJsdoc(({ return true; }; + /** + * @param {string} type + * @returns {boolean} + */ const validTypeParsing = function (type) { let parsedTypes; try { @@ -186,10 +199,14 @@ export default iterateJsdoc(({ } if (tag.tag === 'borrows') { - const thisNamepath = utils.getTagDescription(tag).replace(asExpression, '') + const thisNamepath = /** @type {string} */ ( + utils.getTagDescription(tag) + ).replace(asExpression, '') .trim(); - if (!asExpression.test(utils.getTagDescription(tag)) || !thisNamepath) { + if (!asExpression.test(/** @type {string} */ ( + utils.getTagDescription(tag) + )) || !thisNamepath) { report(`@borrows must have an "as" expression. Found "${utils.getTagDescription(tag)}"`, null, tag); continue; @@ -215,19 +232,21 @@ export default iterateJsdoc(({ if (parsedTypes) { traverse(parsedTypes, (node) => { - const { - value: type, - } = node; + let type; + if ('value' in node && typeof node.value === 'string') { + type = node.value; + } + if (type !== undefined && !suppressTypes.has(type)) { - report(`Syntax error in supresss type: ${type}`, null, tag); + report(`Syntax error in suppress type: ${type}`, null, tag); } }); } } - const otherModeMaps = [ + const otherModeMaps = /** @type {import('../jsdocUtils.js').ParserMode[]} */ ([ 'jsdoc', 'typescript', 'closure', 'permissive', - ].filter( + ]).filter( (mde) => { return mde !== mode; }, diff --git a/src/utils/hasReturnValue.js b/src/utils/hasReturnValue.js index e66a37360..72438959f 100644 --- a/src/utils/hasReturnValue.js +++ b/src/utils/hasReturnValue.js @@ -455,7 +455,7 @@ const hasNonEmptyResolverCall = (node, resolverName) => { * * @param {object} node * @param {boolean} anyPromiseAsReturn - * @param {boolean} allBranches + * @param {boolean} [allBranches] * @returns {boolean} */ const hasValueOrExecutorHasNonEmptyResolveValue = (node, anyPromiseAsReturn, allBranches) => { diff --git a/test/iterateJsdoc.js b/test/iterateJsdoc.js index fdfa5e692..a6c851c32 100644 --- a/test/iterateJsdoc.js +++ b/test/iterateJsdoc.js @@ -7,6 +7,10 @@ import { default as iterateJsdoc, } from '../src/iterateJsdoc'; +/** + * @typedef {any} BadArgument + */ + describe('iterateJsdoc', () => { describe('constructor', () => { context('options', () => { @@ -57,11 +61,11 @@ describe('iterateJsdoc', () => { }); it('throws with bad type', () => { expect(() => { - iterateJsdoc(() => {}, { + iterateJsdoc(() => {}, /** @type {BadArgument} */ ({ meta: { type: 'bad', }, - }); + })); }).to.throw(TypeError); }); }); diff --git a/test/jsdocUtils.js b/test/jsdocUtils.js index 2b68323e7..34376a72a 100644 --- a/test/jsdocUtils.js +++ b/test/jsdocUtils.js @@ -3,51 +3,55 @@ import { } from 'chai'; import jsdocUtils from '../src/jsdocUtils'; +/** + * @typedef {any} BadArgument + */ + describe('jsdocUtils', () => { describe('getPreferredTagName()', () => { context('no preferences', () => { context('alias name', () => { it('returns the primary tag name', () => { - expect(jsdocUtils.getPreferredTagName({}, 'jsdoc', 'return')).to.equal('returns'); + expect(jsdocUtils.getPreferredTagName(/** @type {BadArgument} */ ({}), 'jsdoc', 'return')).to.equal('returns'); }); it('works with the constructor tag', () => { - expect(jsdocUtils.getPreferredTagName({}, 'jsdoc', 'constructor')).to.equal('class'); + expect(jsdocUtils.getPreferredTagName(/** @type {BadArgument} */ ({}), 'jsdoc', 'constructor')).to.equal('class'); }); }); it('works with tags that clash with prototype properties', () => { - expect(jsdocUtils.getPreferredTagName({}, 'jsdoc', 'toString')).to.equal('toString'); + expect(jsdocUtils.getPreferredTagName(/** @type {BadArgument} */ ({}), 'jsdoc', 'toString')).to.equal('toString'); }); it('returns the primary tag name', () => { - expect(jsdocUtils.getPreferredTagName({}, 'jsdoc', 'returns')).to.equal('returns'); + expect(jsdocUtils.getPreferredTagName(/** @type {BadArgument} */ ({}), 'jsdoc', 'returns')).to.equal('returns'); }); }); context('with preferences', () => { it('returns the preferred tag name', () => { - expect(jsdocUtils.getPreferredTagName({}, 'jsdoc', 'return', { + expect(jsdocUtils.getPreferredTagName(/** @type {BadArgument} */ ({}), 'jsdoc', 'return', /** @type {BadArgument} */ ({ returns: 'return', - })).to.equal('return'); + }))).to.equal('return'); }); }); }); describe('isValidTag()', () => { context('tag is invalid', () => { it('returns false', () => { - expect(jsdocUtils.isValidTag({}, 'jsdoc', 'foo', [])).to.equal(false); + expect(jsdocUtils.isValidTag(/** @type {BadArgument} */ ({}), 'jsdoc', 'foo', [])).to.equal(false); }); }); context('tag is valid', () => { it('returns true', () => { - expect(jsdocUtils.isValidTag({}, 'jsdoc', 'param', [])).to.equal(true); + expect(jsdocUtils.isValidTag(/** @type {BadArgument} */ ({}), 'jsdoc', 'param', [])).to.equal(true); }); }); context('tag is valid alias', () => { it('returns true', () => { - expect(jsdocUtils.isValidTag({}, 'jsdoc', 'arg', [])).to.equal(true); + expect(jsdocUtils.isValidTag(/** @type {BadArgument} */ ({}), 'jsdoc', 'arg', [])).to.equal(true); }); }); context('tag is valid and customized', () => { it('returns true', () => { - expect(jsdocUtils.isValidTag({}, 'jsdoc', 'foobar', [ + expect(jsdocUtils.isValidTag(/** @type {BadArgument} */ ({}), 'jsdoc', 'foobar', [ 'foobar', ])).to.equal(true); }); @@ -57,13 +61,13 @@ describe('jsdocUtils', () => { context('Unhandled param type', () => { it('should throw with an unknown param type', () => { expect(() => { - jsdocUtils.getFunctionParameterNames({ + jsdocUtils.getFunctionParameterNames(/** @type {BadArgument} */ ({ params: [ { type: 'AssignmentPattern', }, ], - }); + })); }).to.throw('Unsupported function signature format: `AssignmentPattern`.'); }); }); @@ -78,7 +82,7 @@ describe('jsdocUtils', () => { describe('flattenRoots()', () => { context('Provided root', () => { it('should prepend properties with provided root', () => { - const roots = [ + const roots = /** @type {import('../src/jsdocUtils.js').ParamInfo[]} */ ([ [ 'data', [ 'last_modified', @@ -88,7 +92,7 @@ describe('jsdocUtils', () => { 'headers', ], ], - ]; + ]); const expected = { hasPropertyRest: false, hasRestElement: false, @@ -108,7 +112,7 @@ describe('jsdocUtils', () => { context('Without root', () => { it('should prepend properties with provided root', () => { - const roots = [ + const roots = /** @type {import('../src/jsdocUtils.js').ParamInfo[]} */ ([ [ 'data', [ 'last_modified', @@ -118,7 +122,7 @@ describe('jsdocUtils', () => { 'headers', ], ], - ]; + ]); const expected = { hasPropertyRest: false, hasRestElement: false, diff --git a/test/rules/assertions/noMissingSyntax.js b/test/rules/assertions/noMissingSyntax.js index 7baa30444..0caffef09 100644 --- a/test/rules/assertions/noMissingSyntax.js +++ b/test/rules/assertions/noMissingSyntax.js @@ -321,6 +321,28 @@ export default { }, ], }, + { + code: ` + /** + * @implements {Bar|Foo} + */ + `, + errors: [ + { + line: 1, + message: 'Syntax is required: FunctionDeclaration', + }, + ], + options: [ + { + contexts: [ + { + context: 'FunctionDeclaration', + }, + ], + }, + ], + }, ], valid: [ { diff --git a/test/rules/assertions/requireFileOverview.js b/test/rules/assertions/requireFileOverview.js index ff214b40d..8e2ad863c 100644 --- a/test/rules/assertions/requireFileOverview.js +++ b/test/rules/assertions/requireFileOverview.js @@ -389,6 +389,29 @@ export default { }, ], }, + { + code: ` + /** + * + */ + function quux () {} + `, + errors: [ + { + line: 1, + message: 'Missing @fileoverview', + }, + ], + settings: { + jsdoc: { + tagNamePreference: { + file: { + replacement: 'fileoverview', + }, + }, + }, + }, + }, ], valid: [ { diff --git a/test/rules/assertions/validTypes.js b/test/rules/assertions/validTypes.js index 8d46f1d9b..d7b12db92 100644 --- a/test/rules/assertions/validTypes.js +++ b/test/rules/assertions/validTypes.js @@ -813,7 +813,7 @@ export default { errors: [ { line: 3, - message: 'Syntax error in supresss type: blah', + message: 'Syntax error in suppress type: blah', }, ], settings: { From dd0c4bb00ad1a161269e1fc9c9d8d9c566761ac3 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 13 May 2023 03:24:55 -0700 Subject: [PATCH 083/273] refactor: ts --- docs/rules/require-jsdoc.md | 2 +- src/iterateJsdoc.js | 78 ++++++++++---- src/jsdocUtils.js | 94 ++++++++++------- src/rules/checkParamNames.js | 13 ++- src/rules/noUndefinedTypes.js | 22 ++-- src/rules/requireJsdoc.js | 141 ++++++++++++++++++++++---- src/rules/sortTags.js | 93 ++++++++++++++--- src/utils/hasReturnValue.js | 26 +++-- test/rules/assertions/requireJsdoc.js | 1 + tsconfig.json | 5 +- 10 files changed, 362 insertions(+), 113 deletions(-) diff --git a/docs/rules/require-jsdoc.md b/docs/rules/require-jsdoc.md index 3548e92bd..22f8b480f 100644 --- a/docs/rules/require-jsdoc.md +++ b/docs/rules/require-jsdoc.md @@ -1825,7 +1825,7 @@ var a = { b: 1, c: 2 }; -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[{"context":"FunctionDeclaration","minLineCount":4},{"context":"VariableDeclaration","minLineCount":5}],"require":{"FunctionDeclaration":false}}] +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["ClassDeclaration",{"context":"FunctionDeclaration","minLineCount":4},{"context":"VariableDeclaration","minLineCount":5}],"require":{"FunctionDeclaration":false}}] class A { setId(newId: number): void { diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index 00d695eaf..02e5beee0 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -17,9 +17,10 @@ import jsdocUtils from './jsdocUtils'; * @callback CheckJsdoc * @param {{ * lastIndex?: Integer, - * selector: string + * isFunctionContext?: boolean, + * selector?: string * }} info - * @param {(jsdoc: import('comment-parser').Block) => boolean|undefined} handler + * @param {null|((jsdoc: import('comment-parser').Block) => boolean|undefined)} handler * @param {import('eslint').Rule.Node} node * @returns {void} */ @@ -97,8 +98,8 @@ import jsdocUtils from './jsdocUtils'; * @param {null|import('comment-parser').Spec|{line: Integer, column?: Integer}} tag * @param {(() => void)|null} handler * @param {boolean} [specRewire] - * @param {{ - * [key: string]: undefined|string + * @param {undefined|{ + * [key: string]: string * }} [data] */ /* eslint-enable jsdoc/valid-types -- Old version */ @@ -218,12 +219,14 @@ import jsdocUtils from './jsdocUtils'; * @returns {void} */ +/* eslint-disable jsdoc/no-undefined-types -- TS */ /** * @callback AddLine * @param {Integer} sourceIndex - * @param {import('comment-parser').Tokens} tokens + * @param {Partial} tokens * @returns {void} */ +/* eslint-enable jsdoc/no-undefined-types -- TS */ /** * @callback AddLines @@ -241,7 +244,7 @@ import jsdocUtils from './jsdocUtils'; /** * @callback GetFunctionParameterNames * @param {boolean} [useDefaultObjectProperties] - * @returns {} + * @returns {import('./jsdocUtils.js').ParamNameInfo[]} */ /** @@ -346,7 +349,7 @@ import jsdocUtils from './jsdocUtils'; /** * @callback IsNamepathX * @param {string} tagName - * @returns {} + * @returns {boolean} */ /** @@ -403,10 +406,17 @@ import jsdocUtils from './jsdocUtils'; /** * @callback FilterTags * @param {(tag: import('comment-parser').Spec) => boolean} filter - * @param {boolean} [includeInlineTags] * @returns {import('comment-parser').Spec[]} */ +/** + * @callback FilterAllTags + * @param {(tag: (import('comment-parser').Spec| + * import('@es-joy/jsdoccomment').JsdocInlineTagNoType)) => boolean} filter + * @returns {(import('comment-parser').Spec| + * import('@es-joy/jsdoccomment').JsdocInlineTagNoType)[]} + */ + /** * @callback GetTagsByType * @param {import('comment-parser').Spec[]} tags @@ -494,6 +504,7 @@ import jsdocUtils from './jsdocUtils'; * getTags: GetTags, * getPresentTags: GetPresentTags, * filterTags: FilterTags, + * filterAllTags: FilterAllTags, * getTagsByType: GetTagsByType, * hasOptionTag: HasOptionTag, * getClassNode: GetClassNode, @@ -659,7 +670,7 @@ const getUtils = ( ruleConfig, indent, ) => { - const ancestors = context.getAncestors(); + const ancestors = /** @type {import('eslint').Rule.Node[]} */ (context.getAncestors()); const sourceCode = context.getSourceCode(); const utils = /** @type {Utils} */ (getBasicUtils(context, settings)); @@ -1213,11 +1224,12 @@ const getUtils = ( // istanbul ignore next return false; }); + for (const [ idx, src, ] of jsdoc.source.slice(lastIndex).entries()) { - src.number = firstNumber + lastIndex + idx; + src.number = firstNumber + /** @type {Integer} */ (lastIndex) + idx; } }; @@ -1299,13 +1311,22 @@ const getUtils = ( /** @type {IsGenerator} */ utils.isGenerator = () => { - return node && ( - node.generator || + return node && Boolean( + /** + * @type {import('estree').FunctionDeclaration| + * import('estree').FunctionExpression} + */ (node).generator || node.type === 'MethodDefinition' && node.value.generator || [ 'ExportNamedDeclaration', 'ExportDefaultDeclaration', ].includes(node.type) && - node.declaration.generator + /** @type {import('estree').FunctionDeclaration} */ + ( + /** + * @type {import('estree').ExportNamedDeclaration| + * import('estree').ExportDefaultDeclaration} + */ (node).declaration + ).generator, ); }; @@ -1397,7 +1418,12 @@ const getUtils = ( } if (jsdocUtils.exemptSpeciaMethods( - jsdoc, node, context, ruleConfig.meta.schema, + jsdoc, + node, + context, + /** @type {import('json-schema').JSONSchema4|import('json-schema').JSONSchema4[]} */ ( + ruleConfig.meta.schema + ), )) { return true; } @@ -1536,7 +1562,12 @@ const getUtils = ( if ([ 'ExportNamedDeclaration', 'ExportDefaultDeclaration', ].includes(node.type)) { - return jsdocUtils.hasYieldValue(node.declaration); + return jsdocUtils.hasYieldValue( + /** @type {import('estree').Declaration|import('estree').Expression} */ ( + /** @type {import('estree').ExportNamedDeclaration|import('estree').ExportDefaultDeclaration} */ + (node).declaration + ), + ); } return jsdocUtils.hasYieldValue(node); @@ -1572,9 +1603,18 @@ const getUtils = ( }; /** @type {FilterTags} */ - utils.filterTags = (filter, includeInlineTags = false) => { - const tags = jsdocUtils.getAllTags(jsdoc, includeInlineTags); - return jsdocUtils.filterTags(tags, filter); + utils.filterTags = (filter) => { + return jsdoc.tags.filter((tag) => { + return filter(tag); + }); + }; + + /** @type {FilterAllTags} */ + utils.filterAllTags = (filter) => { + const tags = jsdocUtils.getAllTags(jsdoc); + return tags.filter((tag) => { + return filter(tag); + }); }; /** @type {GetTagsByType} */ @@ -1734,7 +1774,7 @@ const getSettings = (context) => { * * @callback MakeReport * @param {import('eslint').Rule.RuleContext} context - * @param {object} commentNode + * @param {import('@es-joy/jsdoccomment').Token} commentNode * @returns {Report} */ diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index 2dae70d32..f84af0164 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -47,7 +47,20 @@ const setTagStructure = (mode) => { */ /** - * @typedef {string|{ + * @typedef {undefined|string|{ + * isRestProperty: boolean|undefined, + * name: string, + * restElement: true + * }|[undefined|string, FlattendRootInfo & { + * annotationParamName?: string + * }|{ + * name: Integer, + * restElement: boolean + * }[]]} ParamNameInfo + */ + +/** + * @typedef {undefined|string|{ * isRestProperty: boolean, * restElement: boolean, * name: string @@ -188,17 +201,6 @@ const getPropertiesFromPropertySignature = (propSignature) => { ).name; }; -/** - * @typedef {undefined|{ - * isRestProperty: boolean|undefined, - * name: string, - * restElement: true - * }|[undefined|string, FlattendRootInfo|{ - * name: Integer, - * restElement: boolean - * }[]]} ParamNameInfo - */ - /** * @param {ESTreeOrTypeScriptNode} functionNode * @param {boolean} [checkDefaultObjects] @@ -213,7 +215,9 @@ const getFunctionParameterNames = ( * @param {import('estree').Identifier|import('estree').AssignmentPattern| * import('estree').ObjectPattern|import('estree').Property| * import('estree').RestElement|import('estree').ArrayPattern| - * import('@typescript-eslint/types').TSESTree.TSParameterProperty + * import('@typescript-eslint/types').TSESTree.TSParameterProperty| + * import('@typescript-eslint/types').TSESTree.Property| + * import('@typescript-eslint/types').TSESTree.RestElement * } param * @param {boolean} [isProperty] * @returns {ParamNameInfo} @@ -226,21 +230,34 @@ const getFunctionParameterNames = ( const typeAnnotation = hasLeftTypeAnnotation ? /** @type {import('@typescript-eslint/types').TSESTree.Identifier} */ ( param.left - ).typeAnnotation : param.typeAnnotation; + ).typeAnnotation : + /** @type {import('@typescript-eslint/types').TSESTree.Identifier|import('@typescript-eslint/types').TSESTree.ObjectPattern} */ + (param).typeAnnotation; if (typeAnnotation?.typeAnnotation?.type === 'TSTypeLiteral') { const propertyNames = typeAnnotation.typeAnnotation.members.map((member) => { - return getPropertiesFromPropertySignature(member); + return getPropertiesFromPropertySignature( + /** @type {import('@typescript-eslint/types').TSESTree.TSPropertySignature} */ + (member), + ); }); + const flattened = { ...flattenRoots(propertyNames), - annotationParamName: param.name, + annotationParamName: 'name' in param ? param.name : undefined, }; const hasLeftName = 'left' in param && 'name' in param.left; if ('name' in param || hasLeftName) { return [ - hasLeftName ? param.left.name : param.name, flattened, + hasLeftName ? + /** @type {import('@typescript-eslint/types').TSESTree.Identifier} */ ( + param.left + ).name : + /** @type {import('@typescript-eslint/types').TSESTree.Identifier} */ ( + param + ).name, + flattened, ]; } @@ -258,8 +275,22 @@ const getFunctionParameterNames = ( return param.left.name; } - if (param.type === 'ObjectPattern' || param.left?.type === 'ObjectPattern') { - const properties = param.properties || param.left?.properties; + if ( + param.type === 'ObjectPattern' || + ('left' in param && + ( + param + ).left.type === 'ObjectPattern') + ) { + const properties = /** @type {import('@typescript-eslint/types').TSESTree.ObjectPattern} */ ( + param + ).properties || + /** @type {import('estree').ObjectPattern} */ + ( + /** @type {import('@typescript-eslint/types').TSESTree.AssignmentPattern} */ ( + param + ).left + )?.properties; const roots = properties.map((prop) => { return getParamName(prop, true); }); @@ -557,7 +588,7 @@ const isValidTag = ( }; /** - * @param {object} jsdoc + * @param {import('comment-parser').Block} jsdoc * @param {string} targetTagName * @returns {boolean} */ @@ -575,12 +606,11 @@ const hasTag = (jsdoc, targetTagName) => { * @param {import('comment-parser').Block & { * inlineTags: import('@es-joy/jsdoccomment').JsdocInlineTagNoType[] * }} jsdoc - * @param {boolean} includeInlineTags * @returns {(import('comment-parser').Spec| * import('@es-joy/jsdoccomment').JsdocInlineTagNoType)[]} */ -const getAllTags = (jsdoc, includeInlineTags) => { - return includeInlineTags ? [ +const getAllTags = (jsdoc) => { + return [ ...jsdoc.tags, ...jsdoc.inlineTags.map((inlineTag) => { // Tags don't have source or line numbers, so add before returning @@ -640,11 +670,11 @@ const getAllTags = (jsdoc, includeInlineTags) => { ).inlineTags ); }), - ] : jsdoc.tags; + ]; }; /** - * @param {object} jsdoc + * @param {import('comment-parser').Block} jsdoc * @param {string[]} targetTagNames * @returns {boolean} */ @@ -1293,17 +1323,6 @@ const getContextObject = (contexts, checkJsdoc, handler) => { return properties; }; -/** - * @param {import('comment-parser').Spec[]} tags - * @param {(tag: import('comment-parser').Spec) => boolean} filter - * @returns {import('comment-parser').Spec[]} - */ -const filterTags = (tags, filter) => { - return tags.filter((tag) => { - return filter(tag); - }); -}; - const tagsWithNamesAndDescriptions = new Set([ 'param', 'arg', 'argument', 'property', 'prop', 'template', @@ -1337,7 +1356,7 @@ const getTagsByType = (context, mode, tags, tagPreference) => { * @type {import('comment-parser').Spec[]} */ const tagsWithoutNames = []; - const tagsWithNames = filterTags(tags, (tag) => { + const tagsWithNames = tags.filter((tag) => { const { tag: tagName, } = tag; @@ -1522,7 +1541,6 @@ export default { dropPathSegmentQuotes, enforcedContexts, exemptSpeciaMethods, - filterTags, flattenRoots, getAllTags, getContextObject, diff --git a/src/rules/checkParamNames.js b/src/rules/checkParamNames.js index 2724b23db..2a871490f 100644 --- a/src/rules/checkParamNames.js +++ b/src/rules/checkParamNames.js @@ -8,7 +8,7 @@ import iterateJsdoc from '../iterateJsdoc'; * @param {RegExp} checkTypesRegex * @param {boolean} disableExtraPropertyReporting * @param {boolean} enableFixer - * @param {Array} functionParameterNames + * @param {import('../jsdocUtils.js').ParamNameInfo[]} functionParameterNames * @param {import('comment-parser').Block} jsdoc * @param {import('../iterateJsdoc.js').Utils} utils * @param {import('../iterateJsdoc.js').Report} report @@ -42,12 +42,13 @@ const validateParameterNames = ( return paramTags.some(([ , tag, ], index) => { + /** @type {import('../iterateJsdoc.js').Integer} */ let tagsIndex; const dupeTagInfo = paramTags.find(([ tgsIndex, tg, ], idx) => { - tagsIndex = tgsIndex; + tagsIndex = Number(tgsIndex); return tg.name === tag.name && idx !== index; }); @@ -252,8 +253,11 @@ const validateParameterNames = ( /** * @param {string} targetTagName * @param {boolean} _allowExtraTrailingParamDocs - * @param {Array} jsdocParameterNames - * @param jsdoc + * @param {{ + * name: string, + * idx: import('../iterateJsdoc.js').Integer + * }[]} jsdocParameterNames + * @param {import('comment-parser').Block} jsdoc * @param {Function} report * @returns {boolean} */ @@ -261,6 +265,7 @@ const validateParameterNamesDeep = ( targetTagName, _allowExtraTrailingParamDocs, jsdocParameterNames, jsdoc, report, ) => { + /** @type {string} */ let lastRealParameter; return jsdocParameterNames.some(({ diff --git a/src/rules/noUndefinedTypes.js b/src/rules/noUndefinedTypes.js index b7721f14a..604bc11e8 100644 --- a/src/rules/noUndefinedTypes.js +++ b/src/rules/noUndefinedTypes.js @@ -8,7 +8,6 @@ import { import iterateJsdoc, { parseComment, } from '../iterateJsdoc'; -import jsdocUtils from '../jsdocUtils'; const extraTypes = [ 'null', 'undefined', 'void', 'string', 'boolean', 'object', @@ -151,7 +150,7 @@ export default iterateJsdoc(({ const jsdoc = parseComment(commentNode, ''); - return jsdocUtils.filterTags(jsdoc.tags, (tag) => { + return jsdoc.tags.filter((tag) => { return tag.tag === 'template'; }); }; @@ -209,15 +208,22 @@ export default iterateJsdoc(({ /** * @typedef {{ * parsedType: import('jsdoc-type-pratt-parser').RootResult; - * tag: import('comment-parser').Spec + * tag: import('comment-parser').Spec|import('@es-joy/jsdoccomment').JsdocInlineTagNoType & { + * line?: import('../iterateJsdoc.js').Integer + * } * }} TypeAndTagInfo */ /** * @param {string} propertyName - * @returns {(tag: import('comment-parser').Spec & { - * namepathOrURL?: string - * }) => undefined|TypeAndTagInfo} + * @returns {(tag: (import('@es-joy/jsdoccomment').JsdocInlineTagNoType & { + * name?: string, + * type?: string, + * line?: import('../iterateJsdoc.js').Integer + * })|import('comment-parser').Spec & { + * namepathOrURL?: string + * } + * ) => undefined|TypeAndTagInfo} */ const tagToParsedType = (propertyName) => { return (tag) => { @@ -249,11 +255,11 @@ export default iterateJsdoc(({ return utils.isNamepathReferencingTag(tag); }).map(tagToParsedType('name')); - const namepathOrUrlReferencingTags = utils.filterTags(({ + const namepathOrUrlReferencingTags = utils.filterAllTags(({ tag, }) => { return utils.isNamepathOrUrlReferencingTag(tag); - }, true).map(tagToParsedType('namepathOrURL')); + }).map(tagToParsedType('namepathOrURL')); const tagsWithTypes = /** @type {TypeAndTagInfo[]} */ ([ ...typeTags, diff --git a/src/rules/requireJsdoc.js b/src/rules/requireJsdoc.js index ed50bbc9b..371197705 100644 --- a/src/rules/requireJsdoc.js +++ b/src/rules/requireJsdoc.js @@ -9,6 +9,7 @@ import { } from '../iterateJsdoc'; import jsdocUtils from '../jsdocUtils'; +/** @type {import('json-schema').JSONSchema4} */ const OPTIONS_SCHEMA = { additionalProperties: false, properties: { @@ -150,6 +151,13 @@ const OPTIONS_SCHEMA = { type: 'object', }; +/** + * @param {import('eslint').Rule.RuleContext} context + * @param {import('json-schema').JSONSchema4Object} baseObject + * @param {string} option + * @param {string} key + * @returns {boolean|undefined} + */ const getOption = (context, baseObject, option, key) => { if (context.options[0] && option in context.options[0] && // Todo: boolean shouldn't be returning property, but tests currently require @@ -159,10 +167,34 @@ const getOption = (context, baseObject, option, key) => { return context.options[0][option][key]; } - return baseObject.properties[key].default; + /* eslint-disable jsdoc/valid-types -- Old version */ + return /** @type {{[key: string]: {default?: boolean|undefined}}} */ ( + baseObject.properties + )[key].default; + /* eslint-enable jsdoc/valid-types -- Old version */ }; +/* eslint-disable jsdoc/valid-types -- Old version */ +/** + * @param {import('eslint').Rule.RuleContext} context + * @param {import('../iterateJsdoc.js').Settings} settings + * @returns {{ + * contexts: (string|{ + * context: string, + * inlineCommentBlock: boolean, + * minLineCount: import('../iterateJsdoc.js').Integer + * })[], + * enableFixer: boolean, + * exemptEmptyConstructors: boolean, + * exemptEmptyFunctions: boolean, + * fixerMessage: string, + * minLineCount: undefined|import('../iterateJsdoc.js').Integer, + * publicOnly: boolean|{[key: string]: boolean|undefined} + * require: {[key: string]: boolean|undefined} + * }} + */ const getOptions = (context, settings) => { + /* eslint-enable jsdoc/valid-types -- Old version */ const { publicOnly, contexts = settings.contexts || [], @@ -185,23 +217,65 @@ const getOptions = (context, settings) => { return false; } + /* eslint-disable jsdoc/valid-types -- Old version */ + /** @type {{[key: string]: boolean|undefined}} */ const properties = {}; - for (const prop of Object.keys(baseObj.properties)) { - const opt = getOption(context, baseObj, 'publicOnly', prop); + /* eslint-enable jsdoc/valid-types -- Old version */ + for (const prop of Object.keys( + /** @type {import('json-schema').JSONSchema4Object} */ ( + /** @type {import('json-schema').JSONSchema4Object} */ ( + baseObj + ).properties), + )) { + const opt = getOption( + context, + /** @type {import('json-schema').JSONSchema4Object} */ (baseObj), + 'publicOnly', + prop, + ); + properties[prop] = opt; } return properties; - })(OPTIONS_SCHEMA.properties.publicOnly.oneOf[1]), + })( + /** @type {import('json-schema').JSONSchema4Object} */ + ( + /** @type {import('json-schema').JSONSchema4Object} */ + ( + /** @type {import('json-schema').JSONSchema4Object} */ + ( + OPTIONS_SCHEMA.properties + ).publicOnly + ).oneOf + )[1], + ), require: ((baseObj) => { + /* eslint-disable jsdoc/valid-types -- Old version */ + /** @type {{[key: string]: boolean|undefined}} */ const properties = {}; - for (const prop of Object.keys(baseObj.properties)) { - const opt = getOption(context, baseObj, 'require', prop); + /* eslint-enable jsdoc/valid-types -- Old version */ + for (const prop of Object.keys( + /** @type {import('json-schema').JSONSchema4Object} */ ( + /** @type {import('json-schema').JSONSchema4Object} */ ( + baseObj + ).properties), + )) { + const opt = getOption( + context, + /** @type {import('json-schema').JSONSchema4Object} */ + (baseObj), + 'require', + prop, + ); properties[prop] = opt; } return properties; - })(OPTIONS_SCHEMA.properties.require), + })( + /** @type {import('json-schema').JSONSchema4Object} */ + (OPTIONS_SCHEMA.properties).require, + ), }; }; @@ -225,15 +299,26 @@ export default { minLineCount, } = getOptions(context, settings); - const checkJsDoc = (info, handler, node) => { + /** + * @type {import('../iterateJsdoc.js').CheckJsdoc} + */ + const checkJsDoc = (info, _handler, node) => { if ( // Optimize - minLineCount !== undefined || contexts.some(({ - minLineCount: count, - }) => { + minLineCount !== undefined || contexts.some((ctxt) => { + if (typeof ctxt === 'string') { + return false; + } + + const { + minLineCount: count, + } = ctxt; return count !== undefined; }) ) { + /** + * @param {undefined|import('../iterateJsdoc.js').Integer} count + */ const underMinLine = (count) => { return count !== undefined && count > (sourceCode.getText(node).match(/\n/gu)?.length ?? 0) + 1; @@ -245,11 +330,23 @@ export default { const { minLineCount: contextMinLineCount, - } = contexts.find(({ - context: ctxt, - }) => { - return ctxt === (info.selector || node.type); - }) || {}; + } = + /** + * @type {{ + * context: string; + * inlineCommentBlock: boolean; + * minLineCount: number; + * }} + */ (contexts.find((ctxt) => { + if (typeof ctxt === 'string') { + return false; + } + + const { + context: ctx, + } = ctxt; + return ctx === (info.selector || node.type); + })) || {}; if (underMinLine(contextMinLineCount)) { return; } @@ -265,8 +362,14 @@ export default { // setters or getters) being reported if (jsdocUtils.exemptSpeciaMethods( { + description: '', + problems: [], + source: [], tags: [], - }, node, context, [ + }, + node, + context, + [ OPTIONS_SCHEMA, ], )) { @@ -356,6 +459,10 @@ export default { } }; + /** + * @param {string} prop + * @returns {boolean} + */ const hasOption = (prop) => { return requireOption[prop] || contexts.some((ctxt) => { return typeof ctxt === 'object' ? ctxt.context === prop : ctxt === prop; diff --git a/src/rules/sortTags.js b/src/rules/sortTags.js index 3d4e19129..df9149b59 100644 --- a/src/rules/sortTags.js +++ b/src/rules/sortTags.js @@ -7,13 +7,24 @@ export default iterateJsdoc(({ jsdoc, utils, }) => { - const { - linesBetween = 1, - tagSequence = defaultTagOrder, - alphabetizeExtras = false, - reportTagGroupSpacing = true, - reportIntraTagGroupSpacing = true, - } = context.options[0] || {}; + const + /** + * @type {{ + * linesBetween: import('../iterateJsdoc.js').Integer, + * tagSequence: { + * tags: string[] + * }[], + * alphabetizeExtras: boolean, + * reportTagGroupSpacing: boolean, + * reportIntraTagGroupSpacing: boolean, + * }} + */ { + linesBetween = 1, + tagSequence = defaultTagOrder, + alphabetizeExtras = false, + reportTagGroupSpacing = true, + reportIntraTagGroupSpacing = true, + } = context.options[0] || {}; const tagList = tagSequence.flatMap((obj) => { /* typeof obj === 'string' ? obj : */ @@ -27,14 +38,31 @@ export default iterateJsdoc(({ for (const [ idx, tag, - ] of jsdoc.tags.entries()) { + ] of + /** + * @type {( + * import('comment-parser').Spec & { + * originalIndex: import('../iterateJsdoc.js').Integer, + * originalLine: import('../iterateJsdoc.js').Integer, + * } + * )[]} + */ (jsdoc.tags).entries()) { tag.originalIndex = idx; ongoingCount += tag.source.length; tag.originalLine = ongoingCount; } + /** @type {import('../iterateJsdoc.js').Integer|undefined} */ let firstChangedTagLine; + /** @type {import('../iterateJsdoc.js').Integer|undefined} */ let firstChangedTagIndex; + + /** + * @type {(import('comment-parser').Spec & { + * originalIndex: import('../iterateJsdoc.js').Integer, + * originalLine: import('../iterateJsdoc.js').Integer, + * })[]} + */ const sortedTags = JSON.parse(JSON.stringify(jsdoc.tags)); sortedTags.sort(({ tag: tagNew, @@ -94,9 +122,22 @@ export default iterateJsdoc(({ if (firstChangedTagLine === undefined) { // Should be ordered by now + /** + * @type {import('comment-parser').Spec[]} + */ const lastTagsOfGroup = []; + + /** + * @type {[ + * import('comment-parser').Spec, + * import('../iterateJsdoc.js').Integer + * ][]} + */ const badLastTagsOfGroup = []; + /** + * @param {import('comment-parser').Spec} tag + */ const countTagEmptyLines = (tag) => { return tag.source.reduce((acc, { tokens: { @@ -109,7 +150,7 @@ export default iterateJsdoc(({ }) => { const empty = !tg && !type && !name && !description; // Reset the count so long as there is content - return empty ? acc + (empty && !end) : 0; + return empty ? acc + Number(empty && !end) : 0; }, 0); }; @@ -118,7 +159,9 @@ export default iterateJsdoc(({ tags, } of tagSequence) { let innerIdx; + /** @type {import('comment-parser').Spec} */ let currentTag; + /** @type {import('comment-parser').Spec|undefined} */ let lastTag; do { currentTag = jsdoc.tags[idx]; @@ -165,6 +208,10 @@ export default iterateJsdoc(({ } if (reportTagGroupSpacing && badLastTagsOfGroup.length) { + /** + * @param {import('comment-parser').Spec} tg + * @returns {() => void} + */ const fixer = (tg) => { return () => { // Due to https://github.com/syavorsky/comment-parser/issues/110 , @@ -186,6 +233,8 @@ export default iterateJsdoc(({ const emptyLine = () => { return { + number: 0, + source: '', tokens: utils.seedTokens({ delimiter: '*', start: jsdoc.source[newIdx - 1].tokens.start, @@ -256,12 +305,11 @@ export default iterateJsdoc(({ for (const [ tg, - ct, ] of badLastTagsOfGroup) { utils.reportJSDoc( 'Tag groups do not have the expected whitespace', tg, - fixer(tg, ct), + fixer(tg), ); } @@ -285,7 +333,10 @@ export default iterateJsdoc(({ // eslint-disable-next-line complexity -- Temporary const fixer = () => { let foundFirstTag = false; + + /** @type {string|undefined} */ let currentTag; + for (const [ currIdx, { @@ -378,7 +429,10 @@ export default iterateJsdoc(({ const fix = () => { const itemsToMoveRange = [ ...Array.from({ - length: jsdoc.tags.length - firstChangedTagIndex, + length: jsdoc.tags.length - + /** @type {import('../iterateJsdoc.js').Integer} */ ( + firstChangedTagIndex + ), }).keys(), ]; @@ -394,14 +448,21 @@ export default iterateJsdoc(({ // This offset includes not only the offset from where the first tag // must begin, and the additional offset of where the first changed // tag begins, but it must also account for prior descriptions - const initialOffset = firstLine + firstChangedTagIndex + + const initialOffset = /** @type {import('../iterateJsdoc.js').Integer} */ ( + firstLine + ) + /** @type {import('../iterateJsdoc.js').Integer} */ (firstChangedTagIndex) + // May be the first tag, so don't try finding a prior one if so unchangedPriorTagDescriptions; // Use `firstChangedTagLine` for line number to begin reporting/splicing for (const idx of itemsToMoveRange) { - utils.removeTag(idx + firstChangedTagIndex); + utils.removeTag( + idx + + /** @type {import('../iterateJsdoc.js').Integer} */ ( + firstChangedTagIndex + ), + ); } const changedTags = sortedTags.slice(firstChangedTagIndex); @@ -443,7 +504,9 @@ export default iterateJsdoc(({ `Tags are not in the prescribed order: ${ tagList.join(', ') || '(alphabetical)' }`, - jsdoc.tags[firstChangedTagIndex], + jsdoc.tags[/** @type {import('../iterateJsdoc.js').Integer} */ ( + firstChangedTagIndex + )], fix, true, ); diff --git a/src/utils/hasReturnValue.js b/src/utils/hasReturnValue.js index 72438959f..768652777 100644 --- a/src/utils/hasReturnValue.js +++ b/src/utils/hasReturnValue.js @@ -33,8 +33,8 @@ const undefinedKeywords = new Set([ * Checks if a node has a return statement. Void return does not count. * * @param {import('estree').Node|import('@typescript-eslint/types').TSESTree.Node} node - * @param {boolean} throwOnNullReturn - * @param {PromiseFilter} promFilter + * @param {boolean} [throwOnNullReturn] + * @param {PromiseFilter} [promFilter] * @returns {boolean|undefined} */ // eslint-disable-next-line complexity @@ -125,9 +125,9 @@ const hasReturnValue = (node, throwOnNullReturn, promFilter) => { /** * Checks if a node has a return statement. Void return does not count. * - * @param {object} node + * @param {import('@typescript-eslint/types').TSESTree.Node} node * @param {PromiseFilter} promFilter - * @returns {boolean|import('estree').Node} + * @returns {undefined|boolean|import('@typescript-eslint/types').TSESTree.Node} */ // eslint-disable-next-line complexity const allBrancheshaveReturnValues = (node, promFilter) => { @@ -243,7 +243,7 @@ const allBrancheshaveReturnValues = (node, promFilter) => { /** * @callback PromiseFilter - * @param {object} node + * @param {import('@typescript-eslint/types').TSESTree.Node} node * @returns {boolean} */ @@ -453,13 +453,18 @@ const hasNonEmptyResolverCall = (node, resolverName) => { * Checks if a Promise executor has no resolve value or an empty value. * An `undefined` resolve does not count. * - * @param {object} node + * @param {import('@typescript-eslint/types').TSESTree.Node} node * @param {boolean} anyPromiseAsReturn * @param {boolean} [allBranches] * @returns {boolean} */ const hasValueOrExecutorHasNonEmptyResolveValue = (node, anyPromiseAsReturn, allBranches) => { const hasReturnMethod = allBranches ? + /** + * @param {import('@typescript-eslint/types').TSESTree.Node} nde + * @param {PromiseFilter} promiseFilter + * @returns {boolean} + */ (nde, promiseFilter) => { let hasReturn; try { @@ -476,10 +481,15 @@ const hasValueOrExecutorHasNonEmptyResolveValue = (node, anyPromiseAsReturn, all // `hasReturn` check needed since `throw` treated as valid return by // `allBrancheshaveReturnValues` - return hasReturn && allBrancheshaveReturnValues(nde, promiseFilter); + return Boolean(hasReturn && allBrancheshaveReturnValues(nde, promiseFilter)); } : + /** + * @param {import('@typescript-eslint/types').TSESTree.Node} nde + * @param {PromiseFilter} promiseFilter + * @returns {boolean} + */ (nde, promiseFilter) => { - return hasReturnValue(nde, false, promiseFilter); + return Boolean(hasReturnValue(nde, false, promiseFilter)); }; return hasReturnMethod(node, (prom) => { diff --git a/test/rules/assertions/requireJsdoc.js b/test/rules/assertions/requireJsdoc.js index 3d64cf96d..e4de29a6a 100644 --- a/test/rules/assertions/requireJsdoc.js +++ b/test/rules/assertions/requireJsdoc.js @@ -6057,6 +6057,7 @@ function quux (foo) { options: [ { contexts: [ + 'ClassDeclaration', { context: 'FunctionDeclaration', minLineCount: 4, diff --git a/tsconfig.json b/tsconfig.json index 639657a08..98579a525 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,10 +13,9 @@ "target": "es6", "outDir": "dist" }, - // Uncomment below as ready "include": [ - // "src/**/*.js", - // "test/**/*.js", + "src/**/*.js", + "test/**/*.js", "src/bin/gitdown.d.ts" ], "exclude": ["node_modules"] From 231da2a130c2186a4c3e07fac992ba80a6897a7f Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 14 May 2023 04:30:09 -0700 Subject: [PATCH 084/273] docs: due to ordering issue, some doc files output under wrong name --- .../require-description-complete-sentence.md | 814 +++++--- docs/rules/require-description.md | 814 +++----- docs/rules/require-param-description.md | 1810 ++-------------- docs/rules/require-param-name.md | 191 +- docs/rules/require-param-type.md | 174 +- docs/rules/require-param.md | 1811 ++++++++++++++++- docs/rules/require-property-description.md | 118 +- docs/rules/require-property-name.md | 51 +- docs/rules/require-property-type.md | 42 +- docs/rules/require-property.md | 115 +- docs/rules/require-returns-check.md | 1383 ++++++------- docs/rules/require-returns-description.md | 994 +-------- docs/rules/require-returns-type.md | 121 +- docs/rules/require-returns.md | 1142 ++++++++++- docs/rules/require-yields-check.md | 755 +++---- docs/rules/require-yields.md | 755 ++++--- src/bin/generateDocs.js | 4 + 17 files changed, 5549 insertions(+), 5545 deletions(-) diff --git a/docs/rules/require-description-complete-sentence.md b/docs/rules/require-description-complete-sentence.md index 8a9df6aad..611b33dda 100644 --- a/docs/rules/require-description-complete-sentence.md +++ b/docs/rules/require-description-complete-sentence.md @@ -1,584 +1,820 @@ - - -# require-description + + +# require-description-complete-sentence + +* [Fixer](#user-content-require-description-complete-sentence-fixer) +* [Options](#user-content-require-description-complete-sentence-options) + * [`tags`](#user-content-require-description-complete-sentence-options-tags) + * [`abbreviations`](#user-content-require-description-complete-sentence-options-abbreviations) + * [`newlineBeforeCapsAssumesBadSentenceEnd`](#user-content-require-description-complete-sentence-options-newlinebeforecapsassumesbadsentenceend) +* [Context and settings](#user-content-require-description-complete-sentence-context-and-settings) +* [Failing examples](#user-content-require-description-complete-sentence-failing-examples) +* [Passing examples](#user-content-require-description-complete-sentence-passing-examples) + + +Requires that block description, explicit `@description`, and +`@param`/`@returns` tag descriptions are written in complete sentences, i.e., + +* Description must start with an uppercase alphabetical character. +* Paragraphs must start with an uppercase alphabetical character. +* Sentences must end with a period, question mark, exclamation mark, or triple backticks. +* Every line in a paragraph (except the first) which starts with an uppercase + character must be preceded by a line ending with a period. +* A colon or semi-colon followed by two line breaks is still part of the + containing paragraph (unlike normal dual line breaks). +* Text within inline tags `{...}` or within triple backticks are not checked for sentence divisions. +* Periods after items within the `abbreviations` option array are not treated + as sentence endings. + + + +## Fixer + +If sentences do not end with terminal punctuation, a period will be added. + +If sentences do not start with an uppercase character, the initial +letter will be capitalized. + + + +## Options + + + +### tags -* [Options](#user-content-require-description-options) -* [Context and settings](#user-content-require-description-context-and-settings) -* [Failing examples](#user-content-require-description-failing-examples) -* [Passing examples](#user-content-require-description-passing-examples) +If you want additional tags to be checked for their descriptions, you may +add them within this option. +```js +{ + 'jsdoc/require-description-complete-sentence': ['error', { + tags: ['see', 'copyright'] + }] +} +``` -Requires that all functions have a description. +The tags `@param`/`@arg`/`@argument` and `@property`/`@prop` will be properly +parsed to ensure that the checked "description" text includes only the text +after the name. -* All functions must have an implicit description (e.g., text above tags) or - have the option `descriptionStyle` set to `tag` (requiring `@description` - (or `@desc` if that is set as your preferred tag name)). -* Every jsdoc block description (or `@description` tag if `descriptionStyle` - is `"tag"`) must have a non-empty description that explains the purpose of - the method. +All other tags will treat the text following the tag name, a space, and +an optional curly-bracketed type expression (and another space) as part of +its "description" (e.g., for `@returns {someType} some description`, the +description is `some description` while for `@some-tag xyz`, the description +is `xyz`). - - -## Options + + +### abbreviations -An options object may have any of the following properties: - -- `contexts` - Set to an array of strings representing the AST context - where you wish the rule to be applied (e.g., `ClassDeclaration` for ES6 - classes). Overrides the default contexts (see below). Set to `"any"` if - you want the rule to apply to any jsdoc block throughout your files. -- `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the - document block avoids the need for a `@description`. Defaults to an - array with `inheritdoc`. If you set this array, it will overwrite the - default, so be sure to add back `inheritdoc` if you wish its presence - to cause exemption of the rule. -- `descriptionStyle` - Whether to accept implicit descriptions (`"body"`) or - `@description` tags (`"tag"`) as satisfying the rule. Set to `"any"` to - accept either style. Defaults to `"body"`. -- `checkConstructors` - A value indicating whether `constructor`s should be - checked. Defaults to `true`. -- `checkGetters` - A value indicating whether getters should be checked. - Defaults to `true`. -- `checkSetters` - A value indicating whether setters should be checked. - Defaults to `true`. - - - +You can provide an `abbreviations` options array to avoid such strings of text +being treated as sentence endings when followed by dots. The `.` is not +necessary at the end of the array items. + + + +### newlineBeforeCapsAssumesBadSentenceEnd + +When `false` (the new default), we will not assume capital letters after +newlines are an incorrect way to end the sentence (they may be proper +nouns, for example). + + + ## Context and settings -| | | -| -------- | ---------------------- | -| Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | -| Tags | `description` or jsdoc block | -| Aliases | `desc` | -| Recommended | false | -| Options | `contexts`, `exemptedBy`, `descriptionStyle`, `checkConstructors`, `checkGetters`, `checkSetters` | -| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | - - - +||| +|---|---| +|Context|everywhere| +|Tags|doc block, `param`, `returns`, `description`, `property`, `summary`, `file`, `classdesc`, `todo`, `deprecated`, `throws`, 'yields' and others added by `tags`| +|Aliases|`arg`, `argument`, `return`, `desc`, `prop`, `fileoverview`, `overview`, `exception`, `yield`| +|Recommended|false| +|Options|`tags`, `abbreviations`, `newlineBeforeCapsAssumesBadSentenceEnd`| + + + ## Failing examples The following patterns are considered problems: ````js /** - * + * foo. */ function quux () { } -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. +// Message: Sentences should start with an uppercase character. /** - * + * foo? */ function quux () { } -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"any"}] -// Message: Missing JSDoc block description or @description declaration. +// Message: Sentences should start with an uppercase character. /** - * + * @description foo. */ function quux () { } -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"body"}] -// Message: Missing JSDoc block description. +// Message: Sentences should start with an uppercase character. /** - * @desc Not a blank description + * Foo) */ function quux () { } -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"body"}] -// Message: Remove the @desc tag to leave a plain block description or add additional description text above the @desc line. +// Message: Sentences must end with a period. /** - * @description Not a blank description + * `foo` is a variable */ function quux () { } -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"body"}] -// Message: Remove the @description tag to leave a plain block description or add additional description text above the @description line. +// Message: Sentences must end with a period. /** + * Foo. * + * foo. */ -class quux { +function quux () { } -// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. +// Message: Sentences should start with an uppercase character. /** - * + * тест. + */ +function quux () { + +} +// Message: Sentences should start with an uppercase character. + +/** + * Foo */ -class quux { +function quux () { } -// Settings: {"jsdoc":{"contexts":["ClassDeclaration"]}} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. +// Message: Sentences must end with a period. /** + * Foo * + * @param x */ -// "jsdoc/require-description": ["error"|"warn", {"contexts":["any"],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. +function quux () { + +} +// Message: Sentences must end with a period. /** + * Foo + * Bar. + */ +function quux () { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"newlineBeforeCapsAssumesBadSentenceEnd":true}] +// Message: A line of text is started with an uppercase character, but the preceding line does not end the sentence. + +/** + * Foo. * + * @param foo foo. */ -class quux { +function quux (foo) { } -// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. +// Message: Sentences should start with an uppercase character. /** + * Foo. * + * @param foo bar */ -class quux { +function quux (foo) { } -// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. +// Message: Sentences should start with an uppercase character. /** - * @description + * {@see Foo.bar} buz */ -function quux () { +function quux (foo) { } -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description description. +// Message: Sentences should start with an uppercase character. /** + * Foo. * + * @returns {number} foo */ -interface quux { +function quux (foo) { } -// "jsdoc/require-description": ["error"|"warn", {"contexts":["TSInterfaceDeclaration"],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. +// Message: Sentences should start with an uppercase character. /** + * Foo. * + * @returns foo. */ -var quux = class { +function quux (foo) { -}; -// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassExpression"],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. +} +// Message: Sentences should start with an uppercase character. + +/** + * lorem ipsum dolor sit amet, consectetur adipiscing elit. pellentesque elit diam, + * iaculis eu dignissim sed, ultrices sed nisi. nulla at ligula auctor, consectetur neque sed, + * tincidunt nibh. vivamus sit amet vulputate ligula. vivamus interdum elementum nisl, + * vitae rutrum tortor semper ut. morbi porta ante vitae dictum fermentum. + * proin ut nulla at quam convallis gravida in id elit. sed dolor mauris, blandit quis ante at, + * consequat auctor magna. duis pharetra purus in porttitor mollis. + */ +function longDescription (foo) { + +} +// Message: Sentences should start with an uppercase character. /** + * @arg {number} foo - Foo + */ +function quux (foo) { + +} +// Message: Sentences must end with a period. + +/** + * @argument {number} foo - Foo + */ +function quux (foo) { + +} +// Message: Sentences must end with a period. + +/** + * @return {number} foo + */ +function quux (foo) { + +} +// Message: Sentences should start with an uppercase character. + +/** + * Returns bar. * + * @return {number} bar */ -var quux = { +function quux (foo) { + +} +// Message: Sentences should start with an uppercase character. -}; -// "jsdoc/require-description": ["error"|"warn", {"contexts":["ObjectExpression"],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. +/** + * @throws {object} Hello World + * hello world +*/ +// Message: Sentences must end with a period. /** - * @someDesc + * @summary Foo */ function quux () { } -// Settings: {"jsdoc":{"tagNamePreference":{"description":{"message":"Please avoid `{{tagName}}`; use `{{replacement}}` instead","replacement":"someDesc"}}}} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] -// Message: Missing JSDoc @someDesc description. +// Message: Sentences must end with a period. /** - * @description + * @throws {SomeType} Foo */ function quux () { } -// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] -// Message: Unexpected tag `@description` +// Message: Sentences must end with a period. /** - * @description + * @see Foo */ function quux () { +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"tags":["see"]}] +// Message: Sentences must end with a period. + +/** + * @param foo Foo bar + */ +function quux (foo) { + } // Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"any"}] -// Message: Missing JSDoc block description or @description declaration. +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"tags":["param"]}] +// Message: Sentences must end with a period. /** - * + * Sorry, but this isn't a complete sentence, Mr. */ function quux () { -} -// "jsdoc/require-description": ["error"|"warn", {"exemptedBy":["notPresent"]}] -// Message: Missing JSDoc block description. -class TestClass { - /** - * - */ - constructor() { } } -// Message: Missing JSDoc block description. +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] +// Message: Sentences must end with a period. -class TestClass { - /** - * - */ - constructor() { } -} -// "jsdoc/require-description": ["error"|"warn", {"checkConstructors":true}] -// Message: Missing JSDoc block description. +/** + * Sorry, but this isn't a complete sentence Mr. + */ +function quux () { -class TestClass { - /** - * - */ - get Test() { } } -// Message: Missing JSDoc block description. +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr."]}] +// Message: Sentences must end with a period. -class TestClass { - /** - * - */ - get Test() { } -} -// "jsdoc/require-description": ["error"|"warn", {"checkGetters":true}] -// Message: Missing JSDoc block description. +/** + * Sorry, but this isn't a complete sentence Mr. + */ +function quux () { -class TestClass { - /** - * - */ - set Test(value) { } } -// Message: Missing JSDoc block description. +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] +// Message: Sentences must end with a period. + +/** + * Sorry, but this isn't a complete sentence Mr. and Mrs. + */ +function quux () { -class TestClass { - /** - * - */ - set Test(value) { } } -// "jsdoc/require-description": ["error"|"warn", {"checkSetters":true}] -// Message: Missing JSDoc block description. +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr","Mrs"]}] +// Message: Sentences must end with a period. /** - * + * This is a complete sentence. But this isn't, Mr. */ -class Foo { - /** - * - */ - constructor() {} +function quux () { - /** - * - */ - bar() {} } -// "jsdoc/require-description": ["error"|"warn", {"checkConstructors":false,"contexts":["MethodDefinition"]}] -// Message: Missing JSDoc block description. +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] +// Message: Sentences must end with a period. /** - * @implements {Bar} + * This is a complete Mr. sentence. But this isn't, Mr. */ -class quux { +function quux () { } -// Settings: {"jsdoc":{"implementsReplacesDocs":false}} -// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"Bar\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] +// Message: Sentences must end with a period. /** - * Has some - * description already. - * @implements {Bar} + * This is a complete Mr. sentence. */ -class quux { +function quux () { } -// Settings: {"jsdoc":{"implementsReplacesDocs":false}} -// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"Bar\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. +// Message: Sentences should start with an uppercase character. /** - * @implements {Bar - * | Foo} + * This is fun, i.e. enjoyable, but not superlatively so, e.g. not + * super, wonderful, etc.. */ -class quux { +function quux () { } -// Settings: {"jsdoc":{"implementsReplacesDocs":false}} -// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. +// Message: Sentences should start with an uppercase character. /** - * @implements {Bar} + * Do not have dynamic content; e.g. homepage. Here a simple unique id + * suffices. */ -class quux { + function quux () { + + } +// Message: Sentences should start with an uppercase character. +/** + * Implements support for the + * Swahili voice synthesizer. + */ +function speak() { } -// Settings: {"jsdoc":{"implementsReplacesDocs":false}} -// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[tag=\"implements\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"newlineBeforeCapsAssumesBadSentenceEnd":true}] +// Message: A line of text is started with an uppercase character, but the preceding line does not end the sentence. /** - * @implements {Bar} + * Foo. + * + * @template TempA, TempB foo. */ -class quux { +function quux (foo) { } -// Settings: {"jsdoc":{"implementsReplacesDocs":false}} -// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[tag=\"implements\"])","context":"any"}],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"tags":["template"]}] +// Message: Sentences should start with an uppercase character. + +/** + * Just a component. + * @param {Object} props Свойства. + * @return {ReactElement}. + */ +function quux () {} +// Message: Sentences must be more than punctuation. ```` - - + + ## Passing examples The following patterns are not considered problems: ````js /** - * + * @param foo - Foo. */ +function quux () { + +} /** - * @description - * // arbitrary description content + * Foo. */ function quux () { } -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] /** - * @description - * quux(); // does something useful + * Foo. + * Bar. */ function quux () { } -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] /** - * @description Valid usage - * quux(); // does something useful + * Foo. * - * @description Invalid usage - * quux('random unwanted arg'); // results in an error + * Bar. */ function quux () { } -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] /** - * + * Тест. */ -class quux { +function quux () { } -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] /** - * + * Foo + * bar. */ function quux () { } -// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"]}] /** - * @type {MyCallback} + * @returns Foo bar. */ function quux () { } -// "jsdoc/require-description": ["error"|"warn", {"exemptedBy":["type"]}] /** + * Foo {@see Math.sin}. + */ +function quux () { + +} + +/** + * Foo {@see Math.sin} bar. + */ +function quux () { + +} + +/** + * Foo? * + * Bar! + * + * Baz: + * 1. Foo. + * 2. Bar. + */ +function quux () { + +} + +/** + * Hello: + * World. */ -interface quux { +function quux () { } -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] -interface quux { - /** - * If the thing should be checked. - */ - checked?: boolean +/** + * Hello: world. + */ +function quux () { + } -// "jsdoc/require-description": ["error"|"warn", {"contexts":["TSPropertySignature"]}] /** * */ -var quux = class { +function quux () { + +} + +/** + * @description Foo. + */ +function quux () { -}; -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] +} /** + * `foo` is a variable. + */ +function quux () { + +} + +/** + * Foo. * + * `foo`. + */ +function quux () { + +} + +/** + * @param foo - `bar`. */ -var quux = { +function quux () { -}; -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] +} /** - * Has an implicit description + * @returns {number} `foo`. */ function quux () { } -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"body"}] /** - * Has an implicit description + * Foo + * `bar`. */ function quux () { } /** - * Has an implicit description + * @example Foo */ function quux () { } -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"any"}] /** - * @description Has an explicit description + * @see Foo */ function quux () { } -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"any"}] /** + * Foo. * + * @param foo Foo. */ -function quux () { +function quux (foo) { + +} + +/** + * Foo. + * + * @param foo Foo. + */ +function quux (foo) { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"tags":["param"]}] + +/** + * @param foo Foo bar. + */ +function quux (foo) { } // Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"tags":["param"]}] + +/** + * + */ +function quux (foo) { -class TestClass { - /** - * Test. - */ - constructor() { } } +// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} + +/** +* We stop loading Items when we have loaded: +* +* 1) The main Item; +* 2) All its variants. +*/ + +/** + * This method is working on 2 steps. + * + * | Step | Comment | + * |------|-------------| + * | 1 | do it | + * | 2 | do it again | + */ + +/** + * This is something that + * I want to test. + */ +function quux () { -class TestClass { - /** - * - */ - constructor() { } } -// "jsdoc/require-description": ["error"|"warn", {"checkConstructors":false}] -class TestClass { - /** - * Test. - */ - get Test() { } +/** + * When making HTTP requests, the + * URL is super important. + */ +function quux () { + } -class TestClass { - /** - * - */ - get Test() { } +/** + * Sorry, but this isn't a complete sentence, Mr. + */ +function quux () { + } -// "jsdoc/require-description": ["error"|"warn", {"checkGetters":false}] -class TestClass { - /** - * Test. - */ - set Test(value) { } +/** + * Sorry, but this isn't a complete sentence Mr.. + */ +function quux () { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr."]}] + +/** + * Sorry, but this isn't a complete sentence Mr. + */ +function quux () { + } -class TestClass { - /** - * - */ - set Test(value) { } +/** + * Sorry, but this isn't a complete sentence Mr. and Mrs.. + */ +function quux () { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr","Mrs"]}] + +/** + * This is a complete sentence aMr. + */ +function quux () { + +} +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] + +/** + * This is a complete sentence. But this isn't, Mr. + */ +function quux () { + +} + +/** + * This is a complete Mr. Sentence. But this isn't, Mr. + */ +function quux () { + } -// "jsdoc/require-description": ["error"|"warn", {"checkSetters":false}] /** - * Multi - * line + * This is a complete Mr. sentence. */ function quux () { } +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] -/** Single line */ +/** + * This is fun, i.e. enjoyable, but not superlatively so, e.g. not + * super, wonderful, etc.. + */ function quux () { } +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["etc","e.g.","i.e."]}] + -/** @description something */ +** +* Do not have dynamic content; e.g. homepage. Here a simple unique id +* suffices. +*/ function quux () { } -// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] +// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["etc","e.g.","i.e."]}] /** - * @implements {Bar} + * Implements support for the + * Swahili voice synthesizer. */ -class quux { +function speak() { +} +/** + * @param foo + * + * @returns {void} + */ +export default (foo) => { + foo() } -// Settings: {"jsdoc":{"implementsReplacesDocs":false}} -// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=/\\s{4}/]:has(JsdocTag[rawType=\"class\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] + +/** @file To learn more, + * see: https://github.com/d3/d3-ease. */ + +/** To learn more, + * see: https://github.com/d3/d3-ease. */ /** - * Has some - * description already. + * This is a complete sentence... */ -class quux { +function quux () { } -// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"{Bar}\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] /** - * Has some - * description already. + * He wanted a few items: a jacket and shirt... */ -class quux { +function quux () { } -// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"{Bar}\"])","context":"any"}],"descriptionStyle":"tag"}] /** - * Has some - * description already. + * The code in question was... + * ``` + * alert('hello'); + * ``` */ -// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"{Bar}\"])","context":"any"}],"descriptionStyle":"tag"}] +function quux () { + +} + +/** + * @param {number|string|Date|Object|OverType|WhateverElse} multiType - + * Nice long explanation... + */ +function test (multiType) { +} + +/** + * Any kind of fowl (e.g., a duck). + */ +function quux () {} + +/** + * The code in question was... + * ``` + * do something + * + * interesting + * ``` + */ +function quux () { + +} ```` diff --git a/docs/rules/require-description.md b/docs/rules/require-description.md index 611b33dda..8a9df6aad 100644 --- a/docs/rules/require-description.md +++ b/docs/rules/require-description.md @@ -1,820 +1,584 @@ - - -# require-description-complete-sentence - -* [Fixer](#user-content-require-description-complete-sentence-fixer) -* [Options](#user-content-require-description-complete-sentence-options) - * [`tags`](#user-content-require-description-complete-sentence-options-tags) - * [`abbreviations`](#user-content-require-description-complete-sentence-options-abbreviations) - * [`newlineBeforeCapsAssumesBadSentenceEnd`](#user-content-require-description-complete-sentence-options-newlinebeforecapsassumesbadsentenceend) -* [Context and settings](#user-content-require-description-complete-sentence-context-and-settings) -* [Failing examples](#user-content-require-description-complete-sentence-failing-examples) -* [Passing examples](#user-content-require-description-complete-sentence-passing-examples) - - -Requires that block description, explicit `@description`, and -`@param`/`@returns` tag descriptions are written in complete sentences, i.e., - -* Description must start with an uppercase alphabetical character. -* Paragraphs must start with an uppercase alphabetical character. -* Sentences must end with a period, question mark, exclamation mark, or triple backticks. -* Every line in a paragraph (except the first) which starts with an uppercase - character must be preceded by a line ending with a period. -* A colon or semi-colon followed by two line breaks is still part of the - containing paragraph (unlike normal dual line breaks). -* Text within inline tags `{...}` or within triple backticks are not checked for sentence divisions. -* Periods after items within the `abbreviations` option array are not treated - as sentence endings. - - - -## Fixer - -If sentences do not end with terminal punctuation, a period will be added. - -If sentences do not start with an uppercase character, the initial -letter will be capitalized. - - - -## Options - - - -### tags - -If you want additional tags to be checked for their descriptions, you may -add them within this option. - -```js -{ - 'jsdoc/require-description-complete-sentence': ['error', { - tags: ['see', 'copyright'] - }] -} -``` - -The tags `@param`/`@arg`/`@argument` and `@property`/`@prop` will be properly -parsed to ensure that the checked "description" text includes only the text -after the name. + + +# require-description -All other tags will treat the text following the tag name, a space, and -an optional curly-bracketed type expression (and another space) as part of -its "description" (e.g., for `@returns {someType} some description`, the -description is `some description` while for `@some-tag xyz`, the description -is `xyz`). +* [Options](#user-content-require-description-options) +* [Context and settings](#user-content-require-description-context-and-settings) +* [Failing examples](#user-content-require-description-failing-examples) +* [Passing examples](#user-content-require-description-passing-examples) - - -### abbreviations -You can provide an `abbreviations` options array to avoid such strings of text -being treated as sentence endings when followed by dots. The `.` is not -necessary at the end of the array items. +Requires that all functions have a description. - - -### newlineBeforeCapsAssumesBadSentenceEnd +* All functions must have an implicit description (e.g., text above tags) or + have the option `descriptionStyle` set to `tag` (requiring `@description` + (or `@desc` if that is set as your preferred tag name)). +* Every jsdoc block description (or `@description` tag if `descriptionStyle` + is `"tag"`) must have a non-empty description that explains the purpose of + the method. -When `false` (the new default), we will not assume capital letters after -newlines are an incorrect way to end the sentence (they may be proper -nouns, for example). + + +## Options - - +An options object may have any of the following properties: + +- `contexts` - Set to an array of strings representing the AST context + where you wish the rule to be applied (e.g., `ClassDeclaration` for ES6 + classes). Overrides the default contexts (see below). Set to `"any"` if + you want the rule to apply to any jsdoc block throughout your files. +- `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the + document block avoids the need for a `@description`. Defaults to an + array with `inheritdoc`. If you set this array, it will overwrite the + default, so be sure to add back `inheritdoc` if you wish its presence + to cause exemption of the rule. +- `descriptionStyle` - Whether to accept implicit descriptions (`"body"`) or + `@description` tags (`"tag"`) as satisfying the rule. Set to `"any"` to + accept either style. Defaults to `"body"`. +- `checkConstructors` - A value indicating whether `constructor`s should be + checked. Defaults to `true`. +- `checkGetters` - A value indicating whether getters should be checked. + Defaults to `true`. +- `checkSetters` - A value indicating whether setters should be checked. + Defaults to `true`. + + + ## Context and settings -||| -|---|---| -|Context|everywhere| -|Tags|doc block, `param`, `returns`, `description`, `property`, `summary`, `file`, `classdesc`, `todo`, `deprecated`, `throws`, 'yields' and others added by `tags`| -|Aliases|`arg`, `argument`, `return`, `desc`, `prop`, `fileoverview`, `overview`, `exception`, `yield`| -|Recommended|false| -|Options|`tags`, `abbreviations`, `newlineBeforeCapsAssumesBadSentenceEnd`| - - - +| | | +| -------- | ---------------------- | +| Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | +| Tags | `description` or jsdoc block | +| Aliases | `desc` | +| Recommended | false | +| Options | `contexts`, `exemptedBy`, `descriptionStyle`, `checkConstructors`, `checkGetters`, `checkSetters` | +| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | + + + ## Failing examples The following patterns are considered problems: ````js /** - * foo. - */ -function quux () { - -} -// Message: Sentences should start with an uppercase character. - -/** - * foo? - */ -function quux () { - -} -// Message: Sentences should start with an uppercase character. - -/** - * @description foo. - */ -function quux () { - -} -// Message: Sentences should start with an uppercase character. - -/** - * Foo) + * */ function quux () { } -// Message: Sentences must end with a period. +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. /** - * `foo` is a variable + * */ function quux () { } -// Message: Sentences must end with a period. +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"any"}] +// Message: Missing JSDoc block description or @description declaration. /** - * Foo. * - * foo. */ function quux () { } -// Message: Sentences should start with an uppercase character. +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"body"}] +// Message: Missing JSDoc block description. /** - * тест. + * @desc Not a blank description */ function quux () { } -// Message: Sentences should start with an uppercase character. +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"body"}] +// Message: Remove the @desc tag to leave a plain block description or add additional description text above the @desc line. /** - * Foo + * @description Not a blank description */ function quux () { } -// Message: Sentences must end with a period. +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"body"}] +// Message: Remove the @description tag to leave a plain block description or add additional description text above the @description line. /** - * Foo * - * @param x */ -function quux () { +class quux { } -// Message: Sentences must end with a period. +// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. /** - * Foo - * Bar. - */ -function quux () { - -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"newlineBeforeCapsAssumesBadSentenceEnd":true}] -// Message: A line of text is started with an uppercase character, but the preceding line does not end the sentence. - -/** - * Foo. * - * @param foo foo. */ -function quux (foo) { +class quux { } -// Message: Sentences should start with an uppercase character. +// Settings: {"jsdoc":{"contexts":["ClassDeclaration"]}} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. /** - * Foo. * - * @param foo bar */ -function quux (foo) { - -} -// Message: Sentences should start with an uppercase character. +// "jsdoc/require-description": ["error"|"warn", {"contexts":["any"],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. /** - * {@see Foo.bar} buz - */ -function quux (foo) { - -} -// Message: Sentences should start with an uppercase character. - -/** - * Foo. * - * @returns {number} foo */ -function quux (foo) { +class quux { } -// Message: Sentences should start with an uppercase character. +// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. /** - * Foo. * - * @returns foo. */ -function quux (foo) { +class quux { } -// Message: Sentences should start with an uppercase character. +// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. /** - * lorem ipsum dolor sit amet, consectetur adipiscing elit. pellentesque elit diam, - * iaculis eu dignissim sed, ultrices sed nisi. nulla at ligula auctor, consectetur neque sed, - * tincidunt nibh. vivamus sit amet vulputate ligula. vivamus interdum elementum nisl, - * vitae rutrum tortor semper ut. morbi porta ante vitae dictum fermentum. - * proin ut nulla at quam convallis gravida in id elit. sed dolor mauris, blandit quis ante at, - * consequat auctor magna. duis pharetra purus in porttitor mollis. + * @description */ -function longDescription (foo) { - -} -// Message: Sentences should start with an uppercase character. - -/** - * @arg {number} foo - Foo - */ -function quux (foo) { +function quux () { } -// Message: Sentences must end with a period. +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description description. /** - * @argument {number} foo - Foo + * */ -function quux (foo) { +interface quux { } -// Message: Sentences must end with a period. +// "jsdoc/require-description": ["error"|"warn", {"contexts":["TSInterfaceDeclaration"],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. /** - * @return {number} foo + * */ -function quux (foo) { +var quux = class { -} -// Message: Sentences should start with an uppercase character. +}; +// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassExpression"],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. /** - * Returns bar. * - * @return {number} bar */ -function quux (foo) { - -} -// Message: Sentences should start with an uppercase character. +var quux = { -/** - * @throws {object} Hello World - * hello world -*/ -// Message: Sentences must end with a period. +}; +// "jsdoc/require-description": ["error"|"warn", {"contexts":["ObjectExpression"],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. /** - * @summary Foo + * @someDesc */ function quux () { } -// Message: Sentences must end with a period. +// Settings: {"jsdoc":{"tagNamePreference":{"description":{"message":"Please avoid `{{tagName}}`; use `{{replacement}}` instead","replacement":"someDesc"}}}} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] +// Message: Missing JSDoc @someDesc description. /** - * @throws {SomeType} Foo + * @description */ function quux () { } -// Message: Sentences must end with a period. +// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] +// Message: Unexpected tag `@description` /** - * @see Foo + * @description */ function quux () { -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"tags":["see"]}] -// Message: Sentences must end with a period. - -/** - * @param foo Foo bar - */ -function quux (foo) { - } // Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"tags":["param"]}] -// Message: Sentences must end with a period. +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"any"}] +// Message: Missing JSDoc block description or @description declaration. /** - * Sorry, but this isn't a complete sentence, Mr. + * */ function quux () { - } -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] -// Message: Sentences must end with a period. +// "jsdoc/require-description": ["error"|"warn", {"exemptedBy":["notPresent"]}] +// Message: Missing JSDoc block description. -/** - * Sorry, but this isn't a complete sentence Mr. - */ -function quux () { +class TestClass { + /** + * + */ + constructor() { } +} +// Message: Missing JSDoc block description. +class TestClass { + /** + * + */ + constructor() { } } -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr."]}] -// Message: Sentences must end with a period. +// "jsdoc/require-description": ["error"|"warn", {"checkConstructors":true}] +// Message: Missing JSDoc block description. -/** - * Sorry, but this isn't a complete sentence Mr. - */ -function quux () { +class TestClass { + /** + * + */ + get Test() { } +} +// Message: Missing JSDoc block description. +class TestClass { + /** + * + */ + get Test() { } } -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] -// Message: Sentences must end with a period. +// "jsdoc/require-description": ["error"|"warn", {"checkGetters":true}] +// Message: Missing JSDoc block description. -/** - * Sorry, but this isn't a complete sentence Mr. and Mrs. - */ -function quux () { +class TestClass { + /** + * + */ + set Test(value) { } +} +// Message: Missing JSDoc block description. +class TestClass { + /** + * + */ + set Test(value) { } } -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr","Mrs"]}] -// Message: Sentences must end with a period. +// "jsdoc/require-description": ["error"|"warn", {"checkSetters":true}] +// Message: Missing JSDoc block description. /** - * This is a complete sentence. But this isn't, Mr. + * */ -function quux () { +class Foo { + /** + * + */ + constructor() {} + /** + * + */ + bar() {} } -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] -// Message: Sentences must end with a period. +// "jsdoc/require-description": ["error"|"warn", {"checkConstructors":false,"contexts":["MethodDefinition"]}] +// Message: Missing JSDoc block description. /** - * This is a complete Mr. sentence. But this isn't, Mr. + * @implements {Bar} */ -function quux () { +class quux { } -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] -// Message: Sentences must end with a period. +// Settings: {"jsdoc":{"implementsReplacesDocs":false}} +// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"Bar\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. /** - * This is a complete Mr. sentence. + * Has some + * description already. + * @implements {Bar} */ -function quux () { +class quux { } -// Message: Sentences should start with an uppercase character. +// Settings: {"jsdoc":{"implementsReplacesDocs":false}} +// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"Bar\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. /** - * This is fun, i.e. enjoyable, but not superlatively so, e.g. not - * super, wonderful, etc.. + * @implements {Bar + * | Foo} */ -function quux () { +class quux { } -// Message: Sentences should start with an uppercase character. +// Settings: {"jsdoc":{"implementsReplacesDocs":false}} +// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. /** - * Do not have dynamic content; e.g. homepage. Here a simple unique id - * suffices. + * @implements {Bar} */ - function quux () { - - } -// Message: Sentences should start with an uppercase character. +class quux { -/** - * Implements support for the - * Swahili voice synthesizer. - */ -function speak() { } -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"newlineBeforeCapsAssumesBadSentenceEnd":true}] -// Message: A line of text is started with an uppercase character, but the preceding line does not end the sentence. +// Settings: {"jsdoc":{"implementsReplacesDocs":false}} +// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[tag=\"implements\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. /** - * Foo. - * - * @template TempA, TempB foo. + * @implements {Bar} */ -function quux (foo) { +class quux { } -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"tags":["template"]}] -// Message: Sentences should start with an uppercase character. - -/** - * Just a component. - * @param {Object} props Свойства. - * @return {ReactElement}. - */ -function quux () {} -// Message: Sentences must be more than punctuation. +// Settings: {"jsdoc":{"implementsReplacesDocs":false}} +// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[tag=\"implements\"])","context":"any"}],"descriptionStyle":"tag"}] +// Message: Missing JSDoc @description declaration. ```` - - + + ## Passing examples The following patterns are not considered problems: ````js /** - * @param foo - Foo. - */ -function quux () { - -} - -/** - * Foo. - */ -function quux () { - -} - -/** - * Foo. - * Bar. - */ -function quux () { - -} - -/** - * Foo. * - * Bar. - */ -function quux () { - -} - -/** - * Тест. */ -function quux () { - -} - -/** - * Foo - * bar. - */ -function quux () { - -} /** - * @returns Foo bar. + * @description + * // arbitrary description content */ function quux () { } +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] /** - * Foo {@see Math.sin}. + * @description + * quux(); // does something useful */ function quux () { } +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] /** - * Foo {@see Math.sin} bar. + * @description Valid usage + * quux(); // does something useful + * + * @description Invalid usage + * quux('random unwanted arg'); // results in an error */ function quux () { } +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] /** - * Foo? - * - * Bar! * - * Baz: - * 1. Foo. - * 2. Bar. */ -function quux () { +class quux { } +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] /** - * Hello: - * World. + * */ function quux () { } +// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"]}] /** - * Hello: world. + * @type {MyCallback} */ function quux () { } +// "jsdoc/require-description": ["error"|"warn", {"exemptedBy":["type"]}] /** * */ -function quux () { +interface quux { } +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] -/** - * @description Foo. - */ -function quux () { - -} - -/** - * `foo` is a variable. - */ -function quux () { - +interface quux { + /** + * If the thing should be checked. + */ + checked?: boolean } +// "jsdoc/require-description": ["error"|"warn", {"contexts":["TSPropertySignature"]}] /** - * Foo. * - * `foo`. */ -function quux () { +var quux = class { -} +}; +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] /** - * @param foo - `bar`. + * */ -function quux () { +var quux = { -} +}; +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] /** - * @returns {number} `foo`. + * Has an implicit description */ function quux () { } +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"body"}] /** - * Foo - * `bar`. + * Has an implicit description */ function quux () { } /** - * @example Foo + * Has an implicit description */ function quux () { } +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"any"}] /** - * @see Foo + * @description Has an explicit description */ function quux () { } +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"any"}] /** - * Foo. * - * @param foo Foo. - */ -function quux (foo) { - -} - -/** - * Foo. - * - * @param foo Foo. - */ -function quux (foo) { - -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"tags":["param"]}] - -/** - * @param foo Foo bar. - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"tags":["param"]}] - -/** - * - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} - -/** -* We stop loading Items when we have loaded: -* -* 1) The main Item; -* 2) All its variants. -*/ - -/** - * This method is working on 2 steps. - * - * | Step | Comment | - * |------|-------------| - * | 1 | do it | - * | 2 | do it again | - */ - -/** - * This is something that - * I want to test. */ function quux () { } +// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}} -/** - * When making HTTP requests, the - * URL is super important. - */ -function quux () { - -} - -/** - * Sorry, but this isn't a complete sentence, Mr. - */ -function quux () { - +class TestClass { + /** + * Test. + */ + constructor() { } } -/** - * Sorry, but this isn't a complete sentence Mr.. - */ -function quux () { - +class TestClass { + /** + * + */ + constructor() { } } -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr."]}] - -/** - * Sorry, but this isn't a complete sentence Mr. - */ -function quux () { +// "jsdoc/require-description": ["error"|"warn", {"checkConstructors":false}] +class TestClass { + /** + * Test. + */ + get Test() { } } -/** - * Sorry, but this isn't a complete sentence Mr. and Mrs.. - */ -function quux () { - -} -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr","Mrs"]}] - -/** - * This is a complete sentence aMr. - */ -function quux () { - +class TestClass { + /** + * + */ + get Test() { } } -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] - -/** - * This is a complete sentence. But this isn't, Mr. - */ -function quux () { +// "jsdoc/require-description": ["error"|"warn", {"checkGetters":false}] +class TestClass { + /** + * Test. + */ + set Test(value) { } } -/** - * This is a complete Mr. Sentence. But this isn't, Mr. - */ -function quux () { - +class TestClass { + /** + * + */ + set Test(value) { } } +// "jsdoc/require-description": ["error"|"warn", {"checkSetters":false}] /** - * This is a complete Mr. sentence. + * Multi + * line */ function quux () { } -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["Mr"]}] -/** - * This is fun, i.e. enjoyable, but not superlatively so, e.g. not - * super, wonderful, etc.. - */ +/** Single line */ function quux () { } -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["etc","e.g.","i.e."]}] - -** -* Do not have dynamic content; e.g. homepage. Here a simple unique id -* suffices. -*/ +/** @description something */ function quux () { } -// "jsdoc/require-description-complete-sentence": ["error"|"warn", {"abbreviations":["etc","e.g.","i.e."]}] +// "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}] /** - * Implements support for the - * Swahili voice synthesizer. + * @implements {Bar} */ -function speak() { -} +class quux { -/** - * @param foo - * - * @returns {void} - */ -export default (foo) => { - foo() } - -/** @file To learn more, - * see: https://github.com/d3/d3-ease. */ - -/** To learn more, - * see: https://github.com/d3/d3-ease. */ +// Settings: {"jsdoc":{"implementsReplacesDocs":false}} +// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=/\\s{4}/]:has(JsdocTag[rawType=\"class\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] /** - * This is a complete sentence... + * Has some + * description already. */ -function quux () { +class quux { } +// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"{Bar}\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}] /** - * He wanted a few items: a jacket and shirt... + * Has some + * description already. */ -function quux () { +class quux { } +// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"{Bar}\"])","context":"any"}],"descriptionStyle":"tag"}] /** - * The code in question was... - * ``` - * alert('hello'); - * ``` + * Has some + * description already. */ -function quux () { - -} - -/** - * @param {number|string|Date|Object|OverType|WhateverElse} multiType - - * Nice long explanation... - */ -function test (multiType) { -} - -/** - * Any kind of fowl (e.g., a duck). - */ -function quux () {} - -/** - * The code in question was... - * ``` - * do something - * - * interesting - * ``` - */ -function quux () { - -} +// "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"{Bar}\"])","context":"any"}],"descriptionStyle":"tag"}] ```` diff --git a/docs/rules/require-param-description.md b/docs/rules/require-param-description.md index 962bf605a..337b71bd3 100644 --- a/docs/rules/require-param-description.md +++ b/docs/rules/require-param-description.md @@ -1,1816 +1,238 @@ - - -# require-param + + +# require-param-description -* [Fixer](#user-content-require-param-fixer) - * [Destructured object and array naming](#user-content-require-param-fixer-destructured-object-and-array-naming) - * [Missing root fixing](#user-content-require-param-fixer-missing-root-fixing) - * [Rest Element (`RestElement`) insertions](#user-content-require-param-fixer-rest-element-restelement-insertions) - * [Object Rest Property insertions](#user-content-require-param-fixer-object-rest-property-insertions) -* [Options](#user-content-require-param-options) - * [`enableFixer`](#user-content-require-param-options-enablefixer) - * [`enableRootFixer`](#user-content-require-param-options-enablerootfixer) - * [`enableRestElementFixer`](#user-content-require-param-options-enablerestelementfixer) - * [`checkRestProperty`](#user-content-require-param-options-checkrestproperty) - * [`autoIncrementBase`](#user-content-require-param-options-autoincrementbase) - * [`unnamedRootBase`](#user-content-require-param-options-unnamedrootbase) - * [`exemptedBy`](#user-content-require-param-options-exemptedby) - * [`checkTypesPattern`](#user-content-require-param-options-checktypespattern) - * [`contexts`](#user-content-require-param-options-contexts) - * [`checkConstructors`](#user-content-require-param-options-checkconstructors) - * [`checkGetters`](#user-content-require-param-options-checkgetters) - * [`checkSetters`](#user-content-require-param-options-checksetters) - * [`checkDestructured`](#user-content-require-param-options-checkdestructured) - * [`checkDestructuredRoots`](#user-content-require-param-options-checkdestructuredroots) - * [`useDefaultObjectProperties`](#user-content-require-param-options-usedefaultobjectproperties) -* [Context and settings](#user-content-require-param-context-and-settings) -* [Failing examples](#user-content-require-param-failing-examples) -* [Passing examples](#user-content-require-param-passing-examples) +* [Options](#user-content-require-param-description-options) + * [`setDefaultDestructuredRootDescription`](#user-content-require-param-description-options-setdefaultdestructuredrootdescription) + * [`defaultDestructuredRootDescription`](#user-content-require-param-description-options-defaultdestructuredrootdescription) + * [`contexts`](#user-content-require-param-description-options-contexts) +* [Context and settings](#user-content-require-param-description-context-and-settings) +* [Failing examples](#user-content-require-param-description-failing-examples) +* [Passing examples](#user-content-require-param-description-passing-examples) -Requires that all function parameters are documented. +Requires that each `@param` tag has a `description` value. - - -## Fixer +Will exempt destructured roots and their children if +`settings.exemptDestructuredRootsFromChecks` is set to `true` (e.g., +`@param {object} props` will be exempted from requiring a description given +`function someFunc ({child1, child2})`). -Adds `@param ` for each tag present in the function signature but -missing in the jsdoc. Can be disabled by setting the `enableFixer` -option to `false`. - - - -### Destructured object and array naming - -When the fixer is applied to destructured objects, only the input name is -used. - -So for: - -```js -/** - * @param cfg - */ -function quux ({foo: bar, baz: bax = 5}) { -} -``` - -...the fixed jsdoc will be: - -```js -/** -* @param cfg -* @param cfg.foo -* @param cfg.baz -*/ -``` - -This is because the input to the function is the relevant item for -understanding the function's input, not how the variable is renamed -for internal use (the signature itself documents that). - -For destructured arrays, the input name is merely the array index. - -So for: - -```js -/** - * @param cfg - */ -function quux ([foo, bar]) { -} -``` - -..the fixed jsdoc will be: - -```js -/** -* @param cfg -* @param cfg."0" -* @param cfg."1" -*/ -``` - - - -### Missing root fixing - -Note that unless `enableRootFixer` (or `enableFixer`) is set to `false`, -missing roots will be added and auto-incremented. The default behavior -is for "root" to be auto-inserted for missing roots, followed by a -0-based auto-incrementing number. - -So for: - -```js -function quux ({foo}, {bar}, {baz}) { -} -``` - -...the default jsdoc that would be added if the fixer is enabled would be: - -```js -/** -* @param root0 -* @param root0.foo -* @param root1 -* @param root1.bar -* @param root2 -* @param root2.baz -*/ -``` - -The name of "root" can be configured with `unnamedRootBase` (which also allows -cycling through a list of multiple root names before there is need for any -numeric component). - -And one can have the count begin at another number (e.g., `1`) by changing -`autoIncrementBase` from the default of `0`. - - - -### Rest Element (RestElement) insertions - -The fixer will automatically report/insert -[jsdoc repeatable parameters](https://jsdoc.app/tags-param.html#multiple-types-and-repeatable-parameters) -if missing. - -```js -/** - * @param {GenericArray} cfg - * @param {number} cfg."0" - */ -function baar ([a, ...extra]) { - // -} -``` - -..becomes: - -```js -/** - * @param {GenericArray} cfg - * @param {number} cfg."0" - * @param {...any} cfg."1" - */ -function baar ([a, ...extra]) { - // -} -``` - -Note that the type `any` is included since we don't know of any specific -type to use. - -To disable such rest element insertions, set `enableRestElementFixer` to -`false`. - -Note too that the following will be reported even though there is an item -corresponding to `extra`: - -```js -/** - * @param {GenericArray} cfg - * @param {number} cfg."0" - * @param {any} cfg."1" - */ -function baar ([a, ...extra]) { - // -} -``` - -...because it does not use the `...` syntax in the type. - - - -### Object Rest Property insertions - -If the `checkRestProperty` option is set to `true` (`false` by default), -missing rest properties will be reported with documentation auto-inserted: - -```js -/** - * @param cfg - * @param cfg.num - */ -function quux ({num, ...extra}) { -} -``` - -...becomes: - -```js -/** - * @param cfg - * @param cfg.num - * @param cfg.extra - */ -function quux ({num, ...extra}) { -} -``` - -You may wish to manually note in your jsdoc for `extra` that this is a -rest property, however, as jsdoc -[does not appear](https://github.com/jsdoc/jsdoc/issues/1773) -to currently support syntax or output to distinguish rest properties from -other properties, so in looking at the docs alone without looking at the -function signature, it may appear that there is an actual property named -`extra`. - - - + + ## Options -An options object accepts the following optional properties: - - - -### enableFixer - -Whether to enable the fixer. Defaults to `true`. + + +### setDefaultDestructuredRootDescription - - -### enableRootFixer +Whether to set a default destructured root description. For example, you may +wish to avoid manually having to set the description for a `@param` +corresponding to a destructured root object as it should always be the same +type of object. Uses `defaultDestructuredRootDescription` for the description +string. Defaults to `false`. -Whether to enable the auto-adding of incrementing roots (see the "Fixer" -section). Defaults to `true`. Has no effect if `enableFixer` is set to -`false`. + + +### defaultDestructuredRootDescription - - -### enableRestElementFixer +The description string to set by default for destructured roots. Defaults to +"The root object". -Whether to enable the rest element fixer (see -"Rest Element (`RestElement`) insertions"). Defaults to `true`. - - - -### checkRestProperty - -If set to `true`, will report (and add fixer insertions) for missing rest -properties. Defaults to `false`. - -If set to `true`, note that you can still document the subproperties of the -rest property using other jsdoc features, e.g., `@typedef`: - -```js -/** - * @typedef ExtraOptions - * @property innerProp1 - * @property innerProp2 - */ - -/** - * @param cfg - * @param cfg.num - * @param {ExtraOptions} extra - */ -function quux ({num, ...extra}) { -} -``` - -Setting this option to `false` (the default) may be useful in cases where -you already have separate `@param` definitions for each of the properties -within the rest property. - -For example, with the option disabled, this will not give an error despite -`extra` not having any definition: - -```js -/** - * @param cfg - * @param cfg.num - */ -function quux ({num, ...extra}) { -} -``` - -Nor will this: - -```js -/** - * @param cfg - * @param cfg.num - * @param cfg.innerProp1 - * @param cfg.innerProp2 - */ -function quux ({num, ...extra}) { -} -``` - - - -### autoIncrementBase - -Numeric to indicate the number at which to begin auto-incrementing roots. -Defaults to `0`. - - - -### unnamedRootBase - -An array of root names to use in the fixer when roots are missing. Defaults -to `['root']`. Note that only when all items in the array besides the last -are exhausted will auto-incrementing occur. So, with -`unnamedRootBase: ['arg', 'config']`, the following: - -```js -function quux ({foo}, [bar], {baz}) { -} -``` - -...will get the following jsdoc block added: - -```js -/** -* @param arg -* @param arg.foo -* @param config0 -* @param config0."0" (`bar`) -* @param config1 -* @param config1.baz -*/ -``` - - - -### exemptedBy - -Array of tags (e.g., `['type']`) whose presence on the document block -avoids the need for a `@param`. Defaults to an array with -`inheritdoc`. If you set this array, it will overwrite the default, -so be sure to add back `inheritdoc` if you wish its presence to cause -exemption of the rule. - - - -### checkTypesPattern - -When one specifies a type, unless it is of a generic type, like `object` -or `array`, it may be considered unnecessary to have that object's -destructured components required, especially where generated docs will -link back to the specified type. For example: - -```js -/** - * @param {SVGRect} bbox - a SVGRect - */ -export const bboxToObj = function ({x, y, width, height}) { - return {x, y, width, height}; -}; -``` - -By default `checkTypesPattern` is set to -`/^(?:[oO]bject|[aA]rray|PlainObject|Generic(?:Object|Array))$/u`, -meaning that destructuring will be required only if the type of the `@param` -(the text between curly brackets) is a match for "Object" or "Array" (with or -without initial caps), "PlainObject", or "GenericObject", "GenericArray" (or -if no type is present). So in the above example, the lack of a match will -mean that no complaint will be given about the undocumented destructured -parameters. - -Note that the `/` delimiters are optional, but necessary to add flags. - -Defaults to using (only) the `u` flag, so to add your own flags, encapsulate -your expression as a string, but like a literal, e.g., `/^object$/ui`. - -You could set this regular expression to a more expansive list, or you -could restrict it such that even types matching those strings would not -need destructuring. - - - + + ### contexts Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. -Overrides the default contexts (see below). May be useful for adding such as -`TSMethodSignature` in TypeScript or restricting the contexts -which are checked. +Overrides the default contexts (see below). Set to `"any"` if you want +the rule to apply to any jsdoc block throughout your files (as is necessary +for finding function blocks not attached to a function declaration or +expression, i.e., `@callback` or `@function` (or its aliases `@func` or +`@method`) (including those associated with an `@interface`). See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. - - -### checkConstructors - -A value indicating whether `constructor`s should be checked. Defaults to -`true`. - - - -### checkGetters - -A value indicating whether getters should be checked. Defaults to `false`. - - - -### checkSetters - -A value indicating whether setters should be checked. Defaults to `false`. - - - -### checkDestructured - -Whether to require destructured properties. Defaults to `true`. - - - -### checkDestructuredRoots - -Whether to check the existence of a corresponding `@param` for root objects -of destructured properties (e.g., that for `function ({a, b}) {}`, that there -is something like `@param myRootObj` defined that can correspond to -the `{a, b}` object parameter). - -If `checkDestructuredRoots` is `false`, `checkDestructured` will also be -implied to be `false` (i.e., the inside of the roots will not be checked -either, e.g., it will also not complain if `a` or `b` do not have their own -documentation). Defaults to `true`. - - - -### useDefaultObjectProperties - -Set to `true` if you wish to expect documentation of properties on objects -supplied as default values. Defaults to `false`. - - - + + ## Context and settings -| | | -| -------- | ----------------------------------------------------------------------------- | -| Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | -| Tags | `param` | -| Aliases | `arg`, `argument` | -|Recommended | true| -| Options | `autoIncrementBase`, `checkDestructured`, `checkDestructuredRoots`, `contexts`, `enableFixer`, `enableRootFixer`, `enableRestElementFixer`, `checkRestProperty`, `exemptedBy`, `checkConstructors`, `checkGetters`, `checkSetters`, `checkTypesPattern`, `unnamedRootBase`, `useDefaultObjectProperties`| -| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`| - - - +||| +|---|---| +|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| +|Tags|`param`| +|Aliases|`arg`, `argument`| +|Recommended|true| +|Options|`setDefaultDestructuredRootDescription`, `defaultDestructuredRootDescription`, `contexts`| +|Settings|`exemptDestructuredRootsFromChecks`| + + + ## Failing examples The following patterns are considered problems: ````js /** - * + * @param foo */ function quux (foo) { } -// Message: Missing JSDoc @param "foo" declaration. +// Message: Missing JSDoc @param "foo" description. /** - * + * @param foo */ function quux (foo) { } -// "jsdoc/require-param": ["error"|"warn", {"contexts":["FunctionDeclaration"]}] -// Message: Missing JSDoc @param "foo" declaration. - -/** - * - */ -function quux ({foo}) { - -} -// Message: Missing JSDoc @param "root0" declaration. +// "jsdoc/require-param-description": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @param "foo" description. /** + * @function * @param foo */ -function quux (foo, bar, {baz}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"checkDestructured":false}] -// Message: Missing JSDoc @param "bar" declaration. +// "jsdoc/require-param-description": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @param "foo" description. /** + * @callback * @param foo */ -function quux (foo, bar, {baz}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"checkDestructuredRoots":false}] -// Message: Missing JSDoc @param "bar" declaration. - -/** - * - */ -function quux ({foo}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"enableFixer":false}] -// Message: Missing JSDoc @param "root0" declaration. - -/** - * - */ -function quux ({foo: bar = 5} = {}) { - -} -// Message: Missing JSDoc @param "root0" declaration. - -/** - * @param - */ -function quux ({foo}) { - -} -// Message: Missing JSDoc @param "root0" declaration. - -/** - * @param - */ -function quux ({foo}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"autoIncrementBase":1}] -// Message: Missing JSDoc @param "root1" declaration. - -/** - * @param options - */ -function quux ({foo}) { - -} -// Message: Missing JSDoc @param "options.foo" declaration. - -/** - * @param - */ -function quux ({ foo, bar: { baz }}) { - -} -// Message: Missing JSDoc @param "root0" declaration. - -/** - * - */ -function quux ({foo}, {bar}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"unnamedRootBase":["arg"]}] -// Message: Missing JSDoc @param "arg0" declaration. - -/** - * - */ -function quux ({foo}, {bar}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"unnamedRootBase":["arg","config"]}] -// Message: Missing JSDoc @param "arg" declaration. - -/** - * - */ -function quux ({foo}, {bar}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"enableRootFixer":false,"unnamedRootBase":["arg","config"]}] -// Message: Missing JSDoc @param "arg" declaration. +// "jsdoc/require-param-description": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @param "foo" description. /** - * + * @arg foo */ -function quux (foo, bar) { +function quux (foo) { } -// Message: Missing JSDoc @param "foo" declaration. +// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} +// Message: Missing JSDoc @arg "foo" description. /** * @param foo */ -function quux (foo, bar) { - -} -// Message: Missing JSDoc @param "bar" declaration. - -/** - * @param bar - */ -function quux (foo, bar, baz) { +function quux (foo) { } -// Message: Missing JSDoc @param "foo" declaration. +// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}} +// Message: Unexpected tag `@param` /** * @param foo - * @param bar */ -function quux (foo, bar, baz) { +function quux (foo) { } -// Message: Missing JSDoc @param "baz" declaration. +// "jsdoc/require-param-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag:not([name=props]))","context":"FunctionDeclaration"}]}] +// Message: Missing JSDoc @param "foo" description. /** - * @param baz + * @param {number} foo Foo description + * @param {object} root + * @param {boolean} baz Baz description */ -function quux (foo, bar, baz) { +function quux (foo, {bar}, baz) { } -// Message: Missing JSDoc @param "foo" declaration. +// "jsdoc/require-param-description": ["error"|"warn", {"setDefaultDestructuredRootDescription":true}] +// Message: Missing root description for @param. /** - * @param + * @param {number} foo Foo description + * @param {object} root + * @param {boolean} baz Baz description */ -function quux (foo) { +function quux (foo, {bar}, baz) { } -// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} -// Message: Missing JSDoc @arg "foo" declaration. +// "jsdoc/require-param-description": ["error"|"warn", {"defaultDestructuredRootDescription":"Root description","setDefaultDestructuredRootDescription":true}] +// Message: Missing root description for @param. /** - * @param foo + * @param {number} foo Foo description + * @param {object} root + * @param {boolean} baz Baz description */ -function quux (foo, bar) { +function quux (foo, {bar}, baz) { } -// Message: Missing JSDoc @param "bar" declaration. +// "jsdoc/require-param-description": ["error"|"warn", {"setDefaultDestructuredRootDescription":false}] +// Message: Missing JSDoc @param "root" description. +```` -/** - * @override - */ -function quux (foo) { -} -// Settings: {"jsdoc":{"overrideReplacesDocs":false}} -// Message: Missing JSDoc @param "foo" declaration. -/** - * @ignore - */ -function quux (foo) { + + +## Passing examples -} -// Settings: {"jsdoc":{"ignoreReplacesDocs":false}} -// Message: Missing JSDoc @param "foo" declaration. +The following patterns are not considered problems: +````js /** - * @implements + * */ function quux (foo) { } -// Settings: {"jsdoc":{"implementsReplacesDocs":false}} -// Message: Missing JSDoc @param "foo" declaration. /** - * @augments + * @param foo Foo. */ function quux (foo) { } -// Message: Missing JSDoc @param "foo" declaration. /** - * @extends + * @param foo Foo. */ function quux (foo) { } -// Message: Missing JSDoc @param "foo" declaration. - -/** - * @override - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"overrideReplacesDocs":false}} -// Message: Missing JSDoc @param "foo" declaration. - -/** - * @ignore - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"ignoreReplacesDocs":false}} -// Message: Missing JSDoc @param "foo" declaration. - -/** - * @implements - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"implementsReplacesDocs":false}} -// Message: Missing JSDoc @param "foo" declaration. - -/** - * @augments - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Message: Missing JSDoc @param "foo" declaration. +// "jsdoc/require-param-description": ["error"|"warn", {"contexts":["any"]}] /** - * @extends + * @function + * @param foo */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Message: Missing JSDoc @param "foo" declaration. - -export class SomeClass { - /** - * @param property - */ - constructor(private property: string, private foo: number) {} -} -// Message: Missing JSDoc @param "foo" declaration. /** - * @param + * @callback + * @param foo */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}} -// Message: Unexpected tag `@param` /** - * + * @param props */ -function quux ({bar, baz}, foo) { -} -// Message: Missing JSDoc @param "root0" declaration. +function quux (props) { -/** - * - */ -function quux (foo, {bar, baz}) { } -// Message: Missing JSDoc @param "foo" declaration. +// "jsdoc/require-param-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag:not([name=props]))","context":"FunctionDeclaration"}]}] /** - * + * @param {number} foo Foo description + * @param {object} root + * @param {boolean} baz Baz description */ -function quux ([bar, baz], foo) { -} -// Message: Missing JSDoc @param "root0" declaration. +function quux (foo, {bar}, baz) { -/** - * - */ -function quux (foo) { } -// "jsdoc/require-param": ["error"|"warn", {"exemptedBy":["notPresent"]}] -// Message: Missing JSDoc @param "foo" declaration. +// Settings: {"jsdoc":{"exemptDestructuredRootsFromChecks":true}} /** - * @inheritdoc + * @param {number} foo Foo description + * @param {object} root + * @param {object} root.bar */ -function quux (foo) { +function quux (foo, {bar: {baz}}) { } -// "jsdoc/require-param": ["error"|"warn", {"exemptedBy":[]}] -// Message: Missing JSDoc @param "foo" declaration. - -/** - * @inheritdoc - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"mode":"closure"}} -// Message: Missing JSDoc @param "foo" declaration. - -/** - * Assign the project to a list of employees. - * @param {object[]} employees - The employees who are responsible for the project. - * @param {string} employees[].name - The name of an employee. - * @param {string} employees[].department - The employee's department. - */ -function assign (employees, name) { - -}; -// Message: Missing JSDoc @param "name" declaration. - -interface ITest { -/** - * Test description. - */ -TestMethod(id: number): void; -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSMethodSignature"]}] -// Message: Missing JSDoc @param "id" declaration. - -/** - * A test class. - */ -abstract class TestClass -{ -/** - * A test method. - */ -abstract TestFunction(id); -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSEmptyBodyFunctionExpression"]}] -// Message: Missing JSDoc @param "id" declaration. - -/** - * A test class. - */ -declare class TestClass -{ -/** - * - */ -TestMethod(id); -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSEmptyBodyFunctionExpression"]}] -// Message: Missing JSDoc @param "id" declaration. - -/** - * A test function. - */ -declare let TestFunction: (id) => void; -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] -// Message: Missing JSDoc @param "id" declaration. - -/** - * A test function. - */ -let TestFunction: (id) => void; -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] -// Message: Missing JSDoc @param "id" declaration. - -/** - * A test function. - */ -function test( - processor: (id: number) => string -) { - return processor(10); -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] -// Message: Missing JSDoc @param "id" declaration. - -/** - * A test function. - */ -let test = (processor: (id: number) => string) => -{ - return processor(10); -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] -// Message: Missing JSDoc @param "id" declaration. - -class TestClass { - /** - * A class property. - */ - public Test: (id: number) => string; -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] -// Message: Missing JSDoc @param "id" declaration. - -class TestClass { - /** - * A class method. - */ - public TestMethod(): (id: number) => string - { - } -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] -// Message: Missing JSDoc @param "id" declaration. - -interface TestInterface { -/** - * An interface property. - */ -public Test: (id: number) => string; -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] -// Message: Missing JSDoc @param "id" declaration. - -interface TestInterface { - /** - * An interface method. - */ - public TestMethod(): (id: number) => string; -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] -// Message: Missing JSDoc @param "id" declaration. - -/** - * A function with return type - */ -function test(): (id: number) => string; -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] -// Message: Missing JSDoc @param "id" declaration. - -/** - * A function with return type - */ -let test = (): (id: number) => string => -{ - return (id) => `${id}`; -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] -// Message: Missing JSDoc @param "id" declaration. - -/** - * @param baz - * @param options - */ -function quux (baz, {foo: bar}) { - -} -// Message: Missing JSDoc @param "options.foo" declaration. - -class Client { - /** - * Set collection data. - * @param {Object} data The collection data object. - * @param {number} data.last_modified - * @param {Object} options The options object. - * @param {Object} [options.headers] The headers object option. - * @param {Number} [options.retry=0] Number of retries to make - * when faced with transient errors. - * @param {Boolean} [options.safe] The safe option. - * @param {Boolean} [options.patch] The patch option. - * @param {Number} [options.last_modified] The last_modified option. - * @return {Promise} - */ - async setData( - data: { last_modified?: number }, - options: { - headers?: Record; - safe?: boolean; - retry?: number; - patch?: boolean; - last_modified?: number; - permissions?: []; - } = {} - ) {} -} -// Message: Missing JSDoc @param "options.permissions" declaration. - -/** - * - */ -function quux (foo) { - -} -// "jsdoc/require-param": ["error"|"warn", {"enableFixer":false}] -// Message: Missing JSDoc @param "foo" declaration. - -class Client { - /** - * Set collection data. - * @return {Promise} - */ - async setData( - data: { last_modified?: number } - ) {} -} -// Message: Missing JSDoc @param "data" declaration. - -/** - * @param cfg - * @param cfg.num - */ -function quux ({num, ...extra}) { -} -// "jsdoc/require-param": ["error"|"warn", {"checkRestProperty":true}] -// Message: Missing JSDoc @param "cfg.extra" declaration. - -/** - * @param cfg - * @param cfg.opts - * @param cfg.opts.num - */ -function quux ({opts: {num, ...extra}}) { -} -// "jsdoc/require-param": ["error"|"warn", {"checkRestProperty":true}] -// Message: Missing JSDoc @param "cfg.opts.extra" declaration. - -/** - * @param {GenericArray} cfg - * @param {number} cfg."0" - */ -function baar ([a, ...extra]) { - // -} -// Message: Missing JSDoc @param "cfg."1"" declaration. - -/** - * @param a - */ -function baar (a, ...extra) { - // -} -// Message: Missing JSDoc @param "extra" declaration. - -/** - * Converts an SVGRect into an object. - * @param {SVGRect} bbox - a SVGRect - */ -const bboxToObj = function ({x, y, width, height}) { - return {x, y, width, height}; -}; -// "jsdoc/require-param": ["error"|"warn", {"checkTypesPattern":"SVGRect"}] -// Message: Missing JSDoc @param "bbox.x" declaration. - -/** - * Converts an SVGRect into an object. - * @param {object} bbox - a SVGRect - */ -const bboxToObj = function ({x, y, width, height}) { - return {x, y, width, height}; -}; -// Message: Missing JSDoc @param "bbox.x" declaration. - -module.exports = class GraphQL { - /** - * @param fetchOptions - * @param cacheKey - */ - fetch = ({ url, ...options }, cacheKey) => { - } -}; -// "jsdoc/require-param": ["error"|"warn", {"checkRestProperty":true}] -// Message: Missing JSDoc @param "fetchOptions.url" declaration. - -(function() { - /** - * A function. - */ - function f(param) { - return !param; - } -})(); -// Message: Missing JSDoc @param "param" declaration. - -/** - * Description. - * @param {Object} options - * @param {Object} options.foo - */ -function quux ({ foo: { bar } }) {} -// Message: Missing JSDoc @param "options.foo.bar" declaration. - -/** - * Description. - * @param {FooBar} options - * @param {FooBar} options.foo - */ -function quux ({ foo: { bar } }) {} -// "jsdoc/require-param": ["error"|"warn", {"checkTypesPattern":"FooBar"}] -// Message: Missing JSDoc @param "options.foo.bar" declaration. - -/** - * Description. - * @param {Object} options - * @param {FooBar} foo - */ -function quux ({ foo: { bar } }) {} -// Message: Missing JSDoc @param "options.foo" declaration. - -/** - * Description. - * @param {Object} options - * @param options.foo - */ -function quux ({ foo: { bar } }) {} -// Message: Missing JSDoc @param "options.foo.bar" declaration. - -/** - * Description. - * @param {object} options Options. - * @param {object} options.foo A description. - * @param {object} options.foo.bar - */ -function foo({ foo: { bar: { baz } }}) {} -// Message: Missing JSDoc @param "options.foo.bar.baz" declaration. - -/** -* Returns a number. -* @param {Object} props Props. -* @param {Object} props.prop Prop. -* @return {number} A number. -*/ -export function testFn1 ({ prop = { a: 1, b: 2 } }) { -} -// "jsdoc/require-param": ["error"|"warn", {"useDefaultObjectProperties":true}] -// Message: Missing JSDoc @param "props.prop.a" declaration. - -/** Foo. */ -function foo(a, b, c) {} -// Message: Missing JSDoc @param "a" declaration. - -/** - * @param foo Some number. - * @param bar Some number. - */ -export function myPublicFunction(foo: number, bar: number, baz: number) {} -// "jsdoc/require-param": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[tag=\"param\"])","context":"FunctionDeclaration"}]}] -// Message: Missing JSDoc @param "baz" declaration. -```` - - - - - -## Passing examples - -The following patterns are not considered problems: - -````js -/** - * @param foo - */ -function quux (foo) { - -} - -/** - * @param root0 - * @param root0.foo - */ -function quux ({foo}) { - -} - -/** - * @param root0 - * @param root0.foo - * @param root1 - * @param root1.bar - */ -function quux ({foo}, {bar}) { - -} - -/** - * @param arg0 - * @param arg0.foo - * @param arg1 - * @param arg1.bar - */ -function quux ({foo}, {bar}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"unnamedRootBase":["arg"]}] - -/** - * @param arg - * @param arg.foo - * @param config0 - * @param config0.bar - * @param config1 - * @param config1.baz - */ -function quux ({foo}, {bar}, {baz}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"unnamedRootBase":["arg","config"]}] - -/** - * @inheritdoc - */ -function quux (foo) { - -} - -/** - * @inheritDoc - */ -function quux (foo) { - -} - -/** - * @arg foo - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} - -/** - * @override - * @param foo - */ -function quux (foo) { - -} - -/** - * @override - */ -function quux (foo) { - -} - -/** - * @override - */ -class A { - /** - * - */ - quux (foo) { - - } -} - -/** - * @override - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"overrideReplacesDocs":true}} - -/** - * @ignore - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"ignoreReplacesDocs":true}} - -/** - * @implements - */ -class A { - /** - * - */ - quux (foo) { - - } -} - -/** - * @implements - */ -function quux (foo) { - -} - -/** - * @implements - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"implementsReplacesDocs":true}} - -/** - * @implements - * @param foo - */ -function quux (foo) { - -} - -/** - * @augments - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} - -/** - * @augments - * @param foo - */ -function quux (foo) { - -} - -/** - * @extends - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} - -/** - * @extends - * @param foo - */ -function quux (foo) { - -} - -/** - * @augments - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} - -/** - * @extends - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} - -/** - * @override - */ -class A { - /** - * @param foo - */ - quux (foo) { - - } -} - -/** - * @override - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"overrideReplacesDocs":true}} - -/** - * @ignore - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"ignoreReplacesDocs":true}} - -/** - * @implements - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"implementsReplacesDocs":true}} - -/** - * @implements - */ -class A { - /** - * @param foo - */ - quux (foo) { - - } -} - -/** - * @augments - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} - -/** - * @augments - */ -class A { - /** - * @param foo - */ - quux (foo) { - - } -} - -/** - * @extends - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} - -/** - * @extends - */ -class A { - /** - * @param foo - */ - quux (foo) { - - } -} - -/** - * @augments - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} - -/** - * @extends - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} - -/** - * @internal - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"ignoreInternal":true}} - -/** - * @private - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"ignorePrivate":true}} - -/** - * @access private - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"ignorePrivate":true}} - -// issue 182: optional chaining -/** @const {boolean} test */ -const test = something?.find(_ => _) - -/** @type {RequestHandler} */ -function foo(req, res, next) {} - -/** - * @type {MyCallback} - */ -function quux () { - -} -// "jsdoc/require-param": ["error"|"warn", {"exemptedBy":["type"]}] - -/** - * @override - */ -var A = class { - /** - * - */ - quux (foo) { - - } -} - -export class SomeClass { - /** - * @param property - */ - constructor(private property: string) {} -} - -/** - * Assign the project to an employee. - * - * @param {object} employee - The employee who is responsible for the project. - * @param {string} employee.name - The name of the employee. - * @param {string} employee.department - The employee's department. - */ -function assign({name, department}) { - // ... -} - -export abstract class StephanPlugin { - - /** - * Called right after Stephan loads the plugin file. - * - * @example - *```typescript - * type Options = { - * verbose?: boolean; - * token?: string; - * } - * ``` - * - * Note that your Options type should only have optional properties... - * - * @param args Arguments compiled and provided by StephanClient. - * @param args.options The options as provided by the user, or an empty object if not provided. - * @param args.client The options as provided by the user, or an empty object if not provided. - * @param defaultOptions The default options as provided by the plugin, or an empty object. - */ - public constructor({options, client}: { - options: O; - client: unknown; - }, defaultOptions: D) { - - } -} - -/** - * - */ -function quux (foo) { - -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["ArrowFunctionExpression"]}] - -/** -* A function with return type -* -* @param id -*/ -let test = (): (id: number) => string => -{ - return (id) => `${id}`; -} -// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] - -/** @abstract */ -class base { -/** @param {boolean} arg0 */ -constructor(arg0) {} -} - -class foo extends base { -/** @inheritDoc */ -constructor(arg0) { -super(arg0); -this.arg0 = arg0; -} -} -// Settings: {"jsdoc":{"mode":"closure"}} - - export abstract class StephanPlugin { - - /** - * Called right after Stephan loads the plugin file. - * - * @example - *```typescript - * type Options = { - * verbose?: boolean; - * token?: string; - * } - * ``` - * - * Note that your Options type should only have optional properties... - * - * @param args Arguments compiled and provided by StephanClient. - * @param args.options The options as provided by the user, or an empty object if not provided. - * @param args.client The options as provided by the user, or an empty object if not provided. - * @param args.client.name The name of the client. - * @param defaultOptions The default options as provided by the plugin, or an empty object. - */ - public constructor({ options, client: { name } }: { - options: O; - client: { name: string }; - }, defaultOptions: D) { - - } -} - -/** -* @param {string} cb -*/ -function createGetter (cb) { - return function (...args) { - cb(); - }; -} - -/** - * @param cfg - * @param cfg.num - */ -function quux ({num, ...extra}) { -} - -/** - * @param {GenericArray} cfg - * @param {number} cfg."0" - */ -function baar ([a, ...extra]) { - // -} -// "jsdoc/require-param": ["error"|"warn", {"enableRestElementFixer":false}] - -/** - * @param a - */ -function baar (a, ...extra) { - // -} -// "jsdoc/require-param": ["error"|"warn", {"enableRestElementFixer":false}] - -/** -* Converts an SVGRect into an object. -* @param {SVGRect} bbox - a SVGRect -*/ -const bboxToObj = function ({x, y, width, height}) { - return {x, y, width, height}; -}; - -/** -* Converts an SVGRect into an object. -* @param {object} bbox - a SVGRect -*/ -const bboxToObj = function ({x, y, width, height}) { - return {x, y, width, height}; -}; -// "jsdoc/require-param": ["error"|"warn", {"checkTypesPattern":"SVGRect"}] - -class CSS { - /** - * Set one or more CSS properties for the set of matched elements. - * - * @param {Object} propertyObject - An object of property-value pairs to set. - */ - setCssObject(propertyObject: {[key: string]: string | number}): void { - } -} - -/** - * @param foo - * @param bar - * @param cfg - */ -function quux (foo, bar, {baz}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"checkDestructured":false}] - -/** - * @param foo - * @param bar - */ -function quux (foo, bar, {baz}) { - -} -// "jsdoc/require-param": ["error"|"warn", {"checkDestructuredRoots":false}] - -/** - * @param root - * @param root.foo - */ -function quux ({"foo": bar}) { - -} - -/** - * @param root - * @param root."foo" - */ -function quux ({foo: bar}) { - -} - -/** - * Description. - * @param {string} b Description `/**`. - */ -module.exports = function a(b) { - console.info(b); -}; - -/** - * Description. - * @param {Object} options Options. - * @param {FooBar} options.foo foo description. - */ -function quux ({ foo: { bar } }) {} - -/** - * Description. - * @param {FooBar} options - * @param {Object} options.foo - */ -function quux ({ foo: { bar } }) {} -// "jsdoc/require-param": ["error"|"warn", {"checkTypesPattern":"FooBar"}] - -/** - * @param obj - * @param obj.data - * @param obj.data."0" - * @param obj.data."1" - * @param obj.data."2" - * @param obj.defaulting - * @param obj.defaulting."0" - * @param obj.defaulting."1" - */ -function Item({ - data: [foo, bar, ...baz], - defaulting: [quux, xyz] = [] -}) { -} - -/** -* Returns a number. -* @param {Object} props Props. -* @param {Object} props.prop Prop. -* @return {number} A number. -*/ -export function testFn1 ({ prop = { a: 1, b: 2 } }) { -} -// "jsdoc/require-param": ["error"|"warn", {"useDefaultObjectProperties":false}] - -/** - * @param this The this object - * @param bar number to return - * @returns number returned back to caller - */ -function foo(this: T, bar: number): number { - console.log(this.name); - return bar; -} - -/** - * @param bar number to return - * @returns number returned back to caller - */ -function foo(this: T, bar: number): number { - console.log(this.name); - return bar; -} +// Settings: {"jsdoc":{"exemptDestructuredRootsFromChecks":true}} ```` diff --git a/docs/rules/require-param-name.md b/docs/rules/require-param-name.md index 337b71bd3..86878b91d 100644 --- a/docs/rules/require-param-name.md +++ b/docs/rules/require-param-name.md @@ -1,46 +1,26 @@ - - -# require-param-description + + +# require-param-name -* [Options](#user-content-require-param-description-options) - * [`setDefaultDestructuredRootDescription`](#user-content-require-param-description-options-setdefaultdestructuredrootdescription) - * [`defaultDestructuredRootDescription`](#user-content-require-param-description-options-defaultdestructuredrootdescription) - * [`contexts`](#user-content-require-param-description-options-contexts) -* [Context and settings](#user-content-require-param-description-context-and-settings) -* [Failing examples](#user-content-require-param-description-failing-examples) -* [Passing examples](#user-content-require-param-description-passing-examples) +* [Options](#user-content-require-param-name-options) + * [`contexts`](#user-content-require-param-name-options-contexts) +* [Context and settings](#user-content-require-param-name-context-and-settings) +* [Failing examples](#user-content-require-param-name-failing-examples) +* [Passing examples](#user-content-require-param-name-passing-examples) -Requires that each `@param` tag has a `description` value. +Requires that all `@param` tags have names. -Will exempt destructured roots and their children if -`settings.exemptDestructuredRootsFromChecks` is set to `true` (e.g., -`@param {object} props` will be exempted from requiring a description given -`function someFunc ({child1, child2})`). +> The `@param` tag requires you to specify the name of the parameter you are documenting. You can also include the parameter's type, enclosed in curly brackets, and a description of the parameter. +> +> [JSDoc](https://jsdoc.app/tags-param.html#overview) - - + + ## Options - - -### setDefaultDestructuredRootDescription - -Whether to set a default destructured root description. For example, you may -wish to avoid manually having to set the description for a `@param` -corresponding to a destructured root object as it should always be the same -type of object. Uses `defaultDestructuredRootDescription` for the description -string. Defaults to `false`. - - - -### defaultDestructuredRootDescription - -The description string to set by default for destructured roots. Defaults to -"The root object". - - - + + ### contexts Set this to an array of strings representing the AST context (or an object with @@ -54,8 +34,8 @@ expression, i.e., `@callback` or `@function` (or its aliases `@func` or See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. - - + + ## Context and settings ||| @@ -64,55 +44,53 @@ section of our README for more on the expected format. |Tags|`param`| |Aliases|`arg`, `argument`| |Recommended|true| -|Options|`setDefaultDestructuredRootDescription`, `defaultDestructuredRootDescription`, `contexts`| -|Settings|`exemptDestructuredRootsFromChecks`| +|Options|`contexts`| - - + + ## Failing examples The following patterns are considered problems: ````js /** - * @param foo + * @param */ function quux (foo) { } -// Message: Missing JSDoc @param "foo" description. +// Message: There must be an identifier after @param type. /** - * @param foo + * @param {string} */ function quux (foo) { } -// "jsdoc/require-param-description": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @param "foo" description. +// Message: There must be an identifier after @param tag. /** - * @function - * @param foo + * @param {string} */ -// "jsdoc/require-param-description": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @param "foo" description. +function quux (foo) { + +} +// "jsdoc/require-param-name": ["error"|"warn", {"contexts":["any"]}] +// Message: There must be an identifier after @param tag. /** - * @callback - * @param foo + * @function + * @param {string} */ -// "jsdoc/require-param-description": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @param "foo" description. +// "jsdoc/require-param-name": ["error"|"warn", {"contexts":["any"]}] +// Message: There must be an identifier after @param tag. /** - * @arg foo + * @callback + * @param {string} */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} -// Message: Missing JSDoc @arg "foo" description. +// "jsdoc/require-param-name": ["error"|"warn", {"contexts":["any"]}] +// Message: There must be an identifier after @param tag. /** * @param foo @@ -122,117 +100,64 @@ function quux (foo) { } // Settings: {"jsdoc":{"tagNamePreference":{"param":false}}} // Message: Unexpected tag `@param` - -/** - * @param foo - */ -function quux (foo) { - -} -// "jsdoc/require-param-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag:not([name=props]))","context":"FunctionDeclaration"}]}] -// Message: Missing JSDoc @param "foo" description. - -/** - * @param {number} foo Foo description - * @param {object} root - * @param {boolean} baz Baz description - */ -function quux (foo, {bar}, baz) { - -} -// "jsdoc/require-param-description": ["error"|"warn", {"setDefaultDestructuredRootDescription":true}] -// Message: Missing root description for @param. - -/** - * @param {number} foo Foo description - * @param {object} root - * @param {boolean} baz Baz description - */ -function quux (foo, {bar}, baz) { - -} -// "jsdoc/require-param-description": ["error"|"warn", {"defaultDestructuredRootDescription":"Root description","setDefaultDestructuredRootDescription":true}] -// Message: Missing root description for @param. - -/** - * @param {number} foo Foo description - * @param {object} root - * @param {boolean} baz Baz description - */ -function quux (foo, {bar}, baz) { - -} -// "jsdoc/require-param-description": ["error"|"warn", {"setDefaultDestructuredRootDescription":false}] -// Message: Missing JSDoc @param "root" description. ```` - - + + ## Passing examples The following patterns are not considered problems: ````js /** - * + * @param foo */ function quux (foo) { } /** - * @param foo Foo. + * @param foo */ function quux (foo) { } +// "jsdoc/require-param-name": ["error"|"warn", {"contexts":["any"]}] /** - * @param foo Foo. + * @param {string} foo */ function quux (foo) { } -// "jsdoc/require-param-description": ["error"|"warn", {"contexts":["any"]}] /** * @function - * @param foo + * @param */ /** * @callback - * @param foo + * @param */ /** - * @param props + * @param {Function} [processor=data => data] A function to run */ -function quux (props) { - +function processData(processor) { + return processor(data) } -// "jsdoc/require-param-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag:not([name=props]))","context":"FunctionDeclaration"}]}] - -/** - * @param {number} foo Foo description - * @param {object} root - * @param {boolean} baz Baz description - */ -function quux (foo, {bar}, baz) { - -} -// Settings: {"jsdoc":{"exemptDestructuredRootsFromChecks":true}} - -/** - * @param {number} foo Foo description - * @param {object} root - * @param {object} root.bar - */ -function quux (foo, {bar: {baz}}) { +/** Example with multi-line param type. +* +* @param {function( +* number +* )} cb Callback. +*/ +function example(cb) { + cb(42); } -// Settings: {"jsdoc":{"exemptDestructuredRootsFromChecks":true}} ```` diff --git a/docs/rules/require-param-type.md b/docs/rules/require-param-type.md index 86878b91d..f2ccd2310 100644 --- a/docs/rules/require-param-type.md +++ b/docs/rules/require-param-type.md @@ -1,26 +1,45 @@ - - -# require-param-name + + +# require-param-type -* [Options](#user-content-require-param-name-options) - * [`contexts`](#user-content-require-param-name-options-contexts) -* [Context and settings](#user-content-require-param-name-context-and-settings) -* [Failing examples](#user-content-require-param-name-failing-examples) -* [Passing examples](#user-content-require-param-name-passing-examples) +* [Options](#user-content-require-param-type-options) + * [`setDefaultDestructuredRootType`](#user-content-require-param-type-options-setdefaultdestructuredroottype) + * [`defaultDestructuredRootType`](#user-content-require-param-type-options-defaultdestructuredroottype) + * [`contexts`](#user-content-require-param-type-options-contexts) +* [Context and settings](#user-content-require-param-type-context-and-settings) +* [Failing examples](#user-content-require-param-type-failing-examples) +* [Passing examples](#user-content-require-param-type-passing-examples) -Requires that all `@param` tags have names. +Requires that each `@param` tag has a `type` value (within curly brackets). -> The `@param` tag requires you to specify the name of the parameter you are documenting. You can also include the parameter's type, enclosed in curly brackets, and a description of the parameter. -> -> [JSDoc](https://jsdoc.app/tags-param.html#overview) +Will exempt destructured roots and their children if +`settings.exemptDestructuredRootsFromChecks` is set to `true` (e.g., +`@param props` will be exempted from requiring a type given +`function someFunc ({child1, child2})`). - - + + ## Options - - + + +### setDefaultDestructuredRootType + +Whether to set a default destructured root type. For example, you may wish +to avoid manually having to set the type for a `@param` +corresponding to a destructured root object as it is always going to be an +object. Uses `defaultDestructuredRootType` for the type string. Defaults to +`false`. + + + +### defaultDestructuredRootType + +The type string to set by default for destructured roots. Defaults to "object". + + + ### contexts Set this to an array of strings representing the AST context (or an object with @@ -34,8 +53,8 @@ expression, i.e., `@callback` or `@function` (or its aliases `@func` or See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. - - + + ## Context and settings ||| @@ -44,53 +63,62 @@ section of our README for more on the expected format. |Tags|`param`| |Aliases|`arg`, `argument`| |Recommended|true| -|Options|`contexts`| +|Options|`setDefaultDestructuredRootType`, `defaultDestructuredRootType`, `contexts`| +|Settings|`exemptDestructuredRootsFromChecks`| - - + + ## Failing examples The following patterns are considered problems: ````js /** - * @param + * @param foo */ function quux (foo) { } -// Message: There must be an identifier after @param type. +// Message: Missing JSDoc @param "foo" type. /** - * @param {string} + * @param {a xxx */ -function quux (foo) { - +function quux () { } -// Message: There must be an identifier after @param tag. +// Message: Missing JSDoc @param "" type. /** - * @param {string} + * @param foo */ function quux (foo) { } -// "jsdoc/require-param-name": ["error"|"warn", {"contexts":["any"]}] -// Message: There must be an identifier after @param tag. +// "jsdoc/require-param-type": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @param "foo" type. /** * @function - * @param {string} + * @param foo */ -// "jsdoc/require-param-name": ["error"|"warn", {"contexts":["any"]}] -// Message: There must be an identifier after @param tag. +// "jsdoc/require-param-type": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @param "foo" type. /** * @callback - * @param {string} + * @param foo */ -// "jsdoc/require-param-name": ["error"|"warn", {"contexts":["any"]}] -// Message: There must be an identifier after @param tag. +// "jsdoc/require-param-type": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @param "foo" type. + +/** + * @arg foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} +// Message: Missing JSDoc @arg "foo" type. /** * @param foo @@ -100,64 +128,100 @@ function quux (foo) { } // Settings: {"jsdoc":{"tagNamePreference":{"param":false}}} // Message: Unexpected tag `@param` + +/** + * @param {number} foo + * @param root + * @param {boolean} baz + */ +function quux (foo, {bar}, baz) { + +} +// "jsdoc/require-param-type": ["error"|"warn", {"setDefaultDestructuredRootType":true}] +// Message: Missing root type for @param. + +/** + * @param {number} foo + * @param root + * @param {boolean} baz + */ +function quux (foo, {bar}, baz) { + +} +// "jsdoc/require-param-type": ["error"|"warn", {"defaultDestructuredRootType":"Object","setDefaultDestructuredRootType":true}] +// Message: Missing root type for @param. + +/** + * @param {number} foo + * @param root + * @param {boolean} baz + */ +function quux (foo, {bar}, baz) { + +} +// "jsdoc/require-param-type": ["error"|"warn", {"setDefaultDestructuredRootType":false}] +// Message: Missing JSDoc @param "root" type. ```` - - + + ## Passing examples The following patterns are not considered problems: ````js /** - * @param foo + * */ function quux (foo) { } /** - * @param foo + * @param {number} foo */ function quux (foo) { } -// "jsdoc/require-param-name": ["error"|"warn", {"contexts":["any"]}] /** - * @param {string} foo + * @param {number} foo */ function quux (foo) { } +// "jsdoc/require-param-type": ["error"|"warn", {"contexts":["any"]}] /** * @function - * @param + * @param foo */ /** * @callback - * @param + * @param foo */ /** - * @param {Function} [processor=data => data] A function to run + * @param {number} foo + * @param root + * @param {boolean} baz */ -function processData(processor) { - return processor(data) +function quux (foo, {bar}, baz) { + } +// Settings: {"jsdoc":{"exemptDestructuredRootsFromChecks":true}} + +/** + * @param {number} foo + * @param root + * @param root.bar + */ +function quux (foo, {bar: {baz}}) { -/** Example with multi-line param type. -* -* @param {function( -* number -* )} cb Callback. -*/ -function example(cb) { - cb(42); } +// Settings: {"jsdoc":{"exemptDestructuredRootsFromChecks":true}} ```` diff --git a/docs/rules/require-param.md b/docs/rules/require-param.md index f2ccd2310..962bf605a 100644 --- a/docs/rules/require-param.md +++ b/docs/rules/require-param.md @@ -1,227 +1,1816 @@ - - -# require-param-type + + +# require-param -* [Options](#user-content-require-param-type-options) - * [`setDefaultDestructuredRootType`](#user-content-require-param-type-options-setdefaultdestructuredroottype) - * [`defaultDestructuredRootType`](#user-content-require-param-type-options-defaultdestructuredroottype) - * [`contexts`](#user-content-require-param-type-options-contexts) -* [Context and settings](#user-content-require-param-type-context-and-settings) -* [Failing examples](#user-content-require-param-type-failing-examples) -* [Passing examples](#user-content-require-param-type-passing-examples) +* [Fixer](#user-content-require-param-fixer) + * [Destructured object and array naming](#user-content-require-param-fixer-destructured-object-and-array-naming) + * [Missing root fixing](#user-content-require-param-fixer-missing-root-fixing) + * [Rest Element (`RestElement`) insertions](#user-content-require-param-fixer-rest-element-restelement-insertions) + * [Object Rest Property insertions](#user-content-require-param-fixer-object-rest-property-insertions) +* [Options](#user-content-require-param-options) + * [`enableFixer`](#user-content-require-param-options-enablefixer) + * [`enableRootFixer`](#user-content-require-param-options-enablerootfixer) + * [`enableRestElementFixer`](#user-content-require-param-options-enablerestelementfixer) + * [`checkRestProperty`](#user-content-require-param-options-checkrestproperty) + * [`autoIncrementBase`](#user-content-require-param-options-autoincrementbase) + * [`unnamedRootBase`](#user-content-require-param-options-unnamedrootbase) + * [`exemptedBy`](#user-content-require-param-options-exemptedby) + * [`checkTypesPattern`](#user-content-require-param-options-checktypespattern) + * [`contexts`](#user-content-require-param-options-contexts) + * [`checkConstructors`](#user-content-require-param-options-checkconstructors) + * [`checkGetters`](#user-content-require-param-options-checkgetters) + * [`checkSetters`](#user-content-require-param-options-checksetters) + * [`checkDestructured`](#user-content-require-param-options-checkdestructured) + * [`checkDestructuredRoots`](#user-content-require-param-options-checkdestructuredroots) + * [`useDefaultObjectProperties`](#user-content-require-param-options-usedefaultobjectproperties) +* [Context and settings](#user-content-require-param-context-and-settings) +* [Failing examples](#user-content-require-param-failing-examples) +* [Passing examples](#user-content-require-param-passing-examples) -Requires that each `@param` tag has a `type` value (within curly brackets). +Requires that all function parameters are documented. -Will exempt destructured roots and their children if -`settings.exemptDestructuredRootsFromChecks` is set to `true` (e.g., -`@param props` will be exempted from requiring a type given -`function someFunc ({child1, child2})`). + + +## Fixer - - +Adds `@param ` for each tag present in the function signature but +missing in the jsdoc. Can be disabled by setting the `enableFixer` +option to `false`. + + + +### Destructured object and array naming + +When the fixer is applied to destructured objects, only the input name is +used. + +So for: + +```js +/** + * @param cfg + */ +function quux ({foo: bar, baz: bax = 5}) { +} +``` + +...the fixed jsdoc will be: + +```js +/** +* @param cfg +* @param cfg.foo +* @param cfg.baz +*/ +``` + +This is because the input to the function is the relevant item for +understanding the function's input, not how the variable is renamed +for internal use (the signature itself documents that). + +For destructured arrays, the input name is merely the array index. + +So for: + +```js +/** + * @param cfg + */ +function quux ([foo, bar]) { +} +``` + +..the fixed jsdoc will be: + +```js +/** +* @param cfg +* @param cfg."0" +* @param cfg."1" +*/ +``` + + + +### Missing root fixing + +Note that unless `enableRootFixer` (or `enableFixer`) is set to `false`, +missing roots will be added and auto-incremented. The default behavior +is for "root" to be auto-inserted for missing roots, followed by a +0-based auto-incrementing number. + +So for: + +```js +function quux ({foo}, {bar}, {baz}) { +} +``` + +...the default jsdoc that would be added if the fixer is enabled would be: + +```js +/** +* @param root0 +* @param root0.foo +* @param root1 +* @param root1.bar +* @param root2 +* @param root2.baz +*/ +``` + +The name of "root" can be configured with `unnamedRootBase` (which also allows +cycling through a list of multiple root names before there is need for any +numeric component). + +And one can have the count begin at another number (e.g., `1`) by changing +`autoIncrementBase` from the default of `0`. + + + +### Rest Element (RestElement) insertions + +The fixer will automatically report/insert +[jsdoc repeatable parameters](https://jsdoc.app/tags-param.html#multiple-types-and-repeatable-parameters) +if missing. + +```js +/** + * @param {GenericArray} cfg + * @param {number} cfg."0" + */ +function baar ([a, ...extra]) { + // +} +``` + +..becomes: + +```js +/** + * @param {GenericArray} cfg + * @param {number} cfg."0" + * @param {...any} cfg."1" + */ +function baar ([a, ...extra]) { + // +} +``` + +Note that the type `any` is included since we don't know of any specific +type to use. + +To disable such rest element insertions, set `enableRestElementFixer` to +`false`. + +Note too that the following will be reported even though there is an item +corresponding to `extra`: + +```js +/** + * @param {GenericArray} cfg + * @param {number} cfg."0" + * @param {any} cfg."1" + */ +function baar ([a, ...extra]) { + // +} +``` + +...because it does not use the `...` syntax in the type. + + + +### Object Rest Property insertions + +If the `checkRestProperty` option is set to `true` (`false` by default), +missing rest properties will be reported with documentation auto-inserted: + +```js +/** + * @param cfg + * @param cfg.num + */ +function quux ({num, ...extra}) { +} +``` + +...becomes: + +```js +/** + * @param cfg + * @param cfg.num + * @param cfg.extra + */ +function quux ({num, ...extra}) { +} +``` + +You may wish to manually note in your jsdoc for `extra` that this is a +rest property, however, as jsdoc +[does not appear](https://github.com/jsdoc/jsdoc/issues/1773) +to currently support syntax or output to distinguish rest properties from +other properties, so in looking at the docs alone without looking at the +function signature, it may appear that there is an actual property named +`extra`. + + + ## Options - - -### setDefaultDestructuredRootType +An options object accepts the following optional properties: + + + +### enableFixer -Whether to set a default destructured root type. For example, you may wish -to avoid manually having to set the type for a `@param` -corresponding to a destructured root object as it is always going to be an -object. Uses `defaultDestructuredRootType` for the type string. Defaults to +Whether to enable the fixer. Defaults to `true`. + + + +### enableRootFixer + +Whether to enable the auto-adding of incrementing roots (see the "Fixer" +section). Defaults to `true`. Has no effect if `enableFixer` is set to `false`. - - -### defaultDestructuredRootType + + +### enableRestElementFixer + +Whether to enable the rest element fixer (see +"Rest Element (`RestElement`) insertions"). Defaults to `true`. + + + +### checkRestProperty + +If set to `true`, will report (and add fixer insertions) for missing rest +properties. Defaults to `false`. + +If set to `true`, note that you can still document the subproperties of the +rest property using other jsdoc features, e.g., `@typedef`: + +```js +/** + * @typedef ExtraOptions + * @property innerProp1 + * @property innerProp2 + */ + +/** + * @param cfg + * @param cfg.num + * @param {ExtraOptions} extra + */ +function quux ({num, ...extra}) { +} +``` + +Setting this option to `false` (the default) may be useful in cases where +you already have separate `@param` definitions for each of the properties +within the rest property. + +For example, with the option disabled, this will not give an error despite +`extra` not having any definition: + +```js +/** + * @param cfg + * @param cfg.num + */ +function quux ({num, ...extra}) { +} +``` + +Nor will this: + +```js +/** + * @param cfg + * @param cfg.num + * @param cfg.innerProp1 + * @param cfg.innerProp2 + */ +function quux ({num, ...extra}) { +} +``` + + + +### autoIncrementBase + +Numeric to indicate the number at which to begin auto-incrementing roots. +Defaults to `0`. + + + +### unnamedRootBase + +An array of root names to use in the fixer when roots are missing. Defaults +to `['root']`. Note that only when all items in the array besides the last +are exhausted will auto-incrementing occur. So, with +`unnamedRootBase: ['arg', 'config']`, the following: + +```js +function quux ({foo}, [bar], {baz}) { +} +``` + +...will get the following jsdoc block added: + +```js +/** +* @param arg +* @param arg.foo +* @param config0 +* @param config0."0" (`bar`) +* @param config1 +* @param config1.baz +*/ +``` + + + +### exemptedBy + +Array of tags (e.g., `['type']`) whose presence on the document block +avoids the need for a `@param`. Defaults to an array with +`inheritdoc`. If you set this array, it will overwrite the default, +so be sure to add back `inheritdoc` if you wish its presence to cause +exemption of the rule. + + + +### checkTypesPattern + +When one specifies a type, unless it is of a generic type, like `object` +or `array`, it may be considered unnecessary to have that object's +destructured components required, especially where generated docs will +link back to the specified type. For example: + +```js +/** + * @param {SVGRect} bbox - a SVGRect + */ +export const bboxToObj = function ({x, y, width, height}) { + return {x, y, width, height}; +}; +``` -The type string to set by default for destructured roots. Defaults to "object". +By default `checkTypesPattern` is set to +`/^(?:[oO]bject|[aA]rray|PlainObject|Generic(?:Object|Array))$/u`, +meaning that destructuring will be required only if the type of the `@param` +(the text between curly brackets) is a match for "Object" or "Array" (with or +without initial caps), "PlainObject", or "GenericObject", "GenericArray" (or +if no type is present). So in the above example, the lack of a match will +mean that no complaint will be given about the undocumented destructured +parameters. - - +Note that the `/` delimiters are optional, but necessary to add flags. + +Defaults to using (only) the `u` flag, so to add your own flags, encapsulate +your expression as a string, but like a literal, e.g., `/^object$/ui`. + +You could set this regular expression to a more expansive list, or you +could restrict it such that even types matching those strings would not +need destructuring. + + + ### contexts Set this to an array of strings representing the AST context (or an object with `context` and `comment` properties) where you wish the rule to be applied. -Overrides the default contexts (see below). Set to `"any"` if you want -the rule to apply to any jsdoc block throughout your files (as is necessary -for finding function blocks not attached to a function declaration or -expression, i.e., `@callback` or `@function` (or its aliases `@func` or -`@method`) (including those associated with an `@interface`). +Overrides the default contexts (see below). May be useful for adding such as +`TSMethodSignature` in TypeScript or restricting the contexts +which are checked. See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. - - + + +### checkConstructors + +A value indicating whether `constructor`s should be checked. Defaults to +`true`. + + + +### checkGetters + +A value indicating whether getters should be checked. Defaults to `false`. + + + +### checkSetters + +A value indicating whether setters should be checked. Defaults to `false`. + + + +### checkDestructured + +Whether to require destructured properties. Defaults to `true`. + + + +### checkDestructuredRoots + +Whether to check the existence of a corresponding `@param` for root objects +of destructured properties (e.g., that for `function ({a, b}) {}`, that there +is something like `@param myRootObj` defined that can correspond to +the `{a, b}` object parameter). + +If `checkDestructuredRoots` is `false`, `checkDestructured` will also be +implied to be `false` (i.e., the inside of the roots will not be checked +either, e.g., it will also not complain if `a` or `b` do not have their own +documentation). Defaults to `true`. + + + +### useDefaultObjectProperties + +Set to `true` if you wish to expect documentation of properties on objects +supplied as default values. Defaults to `false`. + + + ## Context and settings -||| -|---|---| -|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| -|Tags|`param`| -|Aliases|`arg`, `argument`| -|Recommended|true| -|Options|`setDefaultDestructuredRootType`, `defaultDestructuredRootType`, `contexts`| -|Settings|`exemptDestructuredRootsFromChecks`| - - - +| | | +| -------- | ----------------------------------------------------------------------------- | +| Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | +| Tags | `param` | +| Aliases | `arg`, `argument` | +|Recommended | true| +| Options | `autoIncrementBase`, `checkDestructured`, `checkDestructuredRoots`, `contexts`, `enableFixer`, `enableRootFixer`, `enableRestElementFixer`, `checkRestProperty`, `exemptedBy`, `checkConstructors`, `checkGetters`, `checkSetters`, `checkTypesPattern`, `unnamedRootBase`, `useDefaultObjectProperties`| +| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`| + + + ## Failing examples The following patterns are considered problems: ````js /** - * @param foo + * */ function quux (foo) { } -// Message: Missing JSDoc @param "foo" type. +// Message: Missing JSDoc @param "foo" declaration. /** - * @param {a xxx + * */ -function quux () { +function quux (foo) { + +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["FunctionDeclaration"]}] +// Message: Missing JSDoc @param "foo" declaration. + +/** + * + */ +function quux ({foo}) { + } -// Message: Missing JSDoc @param "" type. +// Message: Missing JSDoc @param "root0" declaration. /** * @param foo */ -function quux (foo) { +function quux (foo, bar, {baz}) { } -// "jsdoc/require-param-type": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @param "foo" type. +// "jsdoc/require-param": ["error"|"warn", {"checkDestructured":false}] +// Message: Missing JSDoc @param "bar" declaration. /** - * @function * @param foo */ -// "jsdoc/require-param-type": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @param "foo" type. +function quux (foo, bar, {baz}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"checkDestructuredRoots":false}] +// Message: Missing JSDoc @param "bar" declaration. + +/** + * + */ +function quux ({foo}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"enableFixer":false}] +// Message: Missing JSDoc @param "root0" declaration. + +/** + * + */ +function quux ({foo: bar = 5} = {}) { + +} +// Message: Missing JSDoc @param "root0" declaration. + +/** + * @param + */ +function quux ({foo}) { + +} +// Message: Missing JSDoc @param "root0" declaration. + +/** + * @param + */ +function quux ({foo}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"autoIncrementBase":1}] +// Message: Missing JSDoc @param "root1" declaration. + +/** + * @param options + */ +function quux ({foo}) { + +} +// Message: Missing JSDoc @param "options.foo" declaration. + +/** + * @param + */ +function quux ({ foo, bar: { baz }}) { + +} +// Message: Missing JSDoc @param "root0" declaration. + +/** + * + */ +function quux ({foo}, {bar}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"unnamedRootBase":["arg"]}] +// Message: Missing JSDoc @param "arg0" declaration. + +/** + * + */ +function quux ({foo}, {bar}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"unnamedRootBase":["arg","config"]}] +// Message: Missing JSDoc @param "arg" declaration. + +/** + * + */ +function quux ({foo}, {bar}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"enableRootFixer":false,"unnamedRootBase":["arg","config"]}] +// Message: Missing JSDoc @param "arg" declaration. + +/** + * + */ +function quux (foo, bar) { + +} +// Message: Missing JSDoc @param "foo" declaration. /** - * @callback * @param foo */ -// "jsdoc/require-param-type": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @param "foo" type. +function quux (foo, bar) { + +} +// Message: Missing JSDoc @param "bar" declaration. /** - * @arg foo + * @param bar */ -function quux (foo) { +function quux (foo, bar, baz) { } -// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} -// Message: Missing JSDoc @arg "foo" type. +// Message: Missing JSDoc @param "foo" declaration. /** * @param foo + * @param bar */ -function quux (foo) { +function quux (foo, bar, baz) { } -// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}} -// Message: Unexpected tag `@param` +// Message: Missing JSDoc @param "baz" declaration. /** - * @param {number} foo - * @param root - * @param {boolean} baz + * @param baz */ -function quux (foo, {bar}, baz) { +function quux (foo, bar, baz) { } -// "jsdoc/require-param-type": ["error"|"warn", {"setDefaultDestructuredRootType":true}] -// Message: Missing root type for @param. +// Message: Missing JSDoc @param "foo" declaration. /** - * @param {number} foo - * @param root - * @param {boolean} baz + * @param */ -function quux (foo, {bar}, baz) { +function quux (foo) { } -// "jsdoc/require-param-type": ["error"|"warn", {"defaultDestructuredRootType":"Object","setDefaultDestructuredRootType":true}] -// Message: Missing root type for @param. +// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} +// Message: Missing JSDoc @arg "foo" declaration. /** - * @param {number} foo - * @param root - * @param {boolean} baz + * @param foo */ -function quux (foo, {bar}, baz) { +function quux (foo, bar) { } -// "jsdoc/require-param-type": ["error"|"warn", {"setDefaultDestructuredRootType":false}] -// Message: Missing JSDoc @param "root" type. -```` +// Message: Missing JSDoc @param "bar" declaration. +/** + * @override + */ +function quux (foo) { +} +// Settings: {"jsdoc":{"overrideReplacesDocs":false}} +// Message: Missing JSDoc @param "foo" declaration. - - -## Passing examples +/** + * @ignore + */ +function quux (foo) { -The following patterns are not considered problems: +} +// Settings: {"jsdoc":{"ignoreReplacesDocs":false}} +// Message: Missing JSDoc @param "foo" declaration. -````js /** - * + * @implements */ function quux (foo) { } +// Settings: {"jsdoc":{"implementsReplacesDocs":false}} +// Message: Missing JSDoc @param "foo" declaration. /** - * @param {number} foo + * @augments */ function quux (foo) { } +// Message: Missing JSDoc @param "foo" declaration. /** - * @param {number} foo + * @extends */ function quux (foo) { } -// "jsdoc/require-param-type": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @param "foo" declaration. /** - * @function - * @param foo + * @override */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Settings: {"jsdoc":{"overrideReplacesDocs":false}} +// Message: Missing JSDoc @param "foo" declaration. /** - * @callback - * @param foo + * @ignore + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Settings: {"jsdoc":{"ignoreReplacesDocs":false}} +// Message: Missing JSDoc @param "foo" declaration. + +/** + * @implements */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Settings: {"jsdoc":{"implementsReplacesDocs":false}} +// Message: Missing JSDoc @param "foo" declaration. /** - * @param {number} foo - * @param root - * @param {boolean} baz + * @augments */ -function quux (foo, {bar}, baz) { +class A { + /** + * + */ + quux (foo) { + } } -// Settings: {"jsdoc":{"exemptDestructuredRootsFromChecks":true}} +// Message: Missing JSDoc @param "foo" declaration. /** - * @param {number} foo - * @param root - * @param root.bar + * @extends + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Message: Missing JSDoc @param "foo" declaration. + +export class SomeClass { + /** + * @param property + */ + constructor(private property: string, private foo: number) {} +} +// Message: Missing JSDoc @param "foo" declaration. + +/** + * @param + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}} +// Message: Unexpected tag `@param` + +/** + * */ -function quux (foo, {bar: {baz}}) { +function quux ({bar, baz}, foo) { +} +// Message: Missing JSDoc @param "root0" declaration. + +/** + * + */ +function quux (foo, {bar, baz}) { +} +// Message: Missing JSDoc @param "foo" declaration. +/** + * + */ +function quux ([bar, baz], foo) { +} +// Message: Missing JSDoc @param "root0" declaration. + +/** + * + */ +function quux (foo) { +} +// "jsdoc/require-param": ["error"|"warn", {"exemptedBy":["notPresent"]}] +// Message: Missing JSDoc @param "foo" declaration. + +/** + * @inheritdoc + */ +function quux (foo) { + +} +// "jsdoc/require-param": ["error"|"warn", {"exemptedBy":[]}] +// Message: Missing JSDoc @param "foo" declaration. + +/** + * @inheritdoc + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"mode":"closure"}} +// Message: Missing JSDoc @param "foo" declaration. + +/** + * Assign the project to a list of employees. + * @param {object[]} employees - The employees who are responsible for the project. + * @param {string} employees[].name - The name of an employee. + * @param {string} employees[].department - The employee's department. + */ +function assign (employees, name) { + +}; +// Message: Missing JSDoc @param "name" declaration. + +interface ITest { +/** + * Test description. + */ +TestMethod(id: number): void; +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSMethodSignature"]}] +// Message: Missing JSDoc @param "id" declaration. + +/** + * A test class. + */ +abstract class TestClass +{ +/** + * A test method. + */ +abstract TestFunction(id); +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSEmptyBodyFunctionExpression"]}] +// Message: Missing JSDoc @param "id" declaration. + +/** + * A test class. + */ +declare class TestClass +{ +/** + * + */ +TestMethod(id); +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSEmptyBodyFunctionExpression"]}] +// Message: Missing JSDoc @param "id" declaration. + +/** + * A test function. + */ +declare let TestFunction: (id) => void; +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] +// Message: Missing JSDoc @param "id" declaration. + +/** + * A test function. + */ +let TestFunction: (id) => void; +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] +// Message: Missing JSDoc @param "id" declaration. + +/** + * A test function. + */ +function test( + processor: (id: number) => string +) { + return processor(10); +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] +// Message: Missing JSDoc @param "id" declaration. + +/** + * A test function. + */ +let test = (processor: (id: number) => string) => +{ + return processor(10); +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] +// Message: Missing JSDoc @param "id" declaration. + +class TestClass { + /** + * A class property. + */ + public Test: (id: number) => string; +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] +// Message: Missing JSDoc @param "id" declaration. + +class TestClass { + /** + * A class method. + */ + public TestMethod(): (id: number) => string + { + } +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] +// Message: Missing JSDoc @param "id" declaration. + +interface TestInterface { +/** + * An interface property. + */ +public Test: (id: number) => string; +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] +// Message: Missing JSDoc @param "id" declaration. + +interface TestInterface { + /** + * An interface method. + */ + public TestMethod(): (id: number) => string; +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] +// Message: Missing JSDoc @param "id" declaration. + +/** + * A function with return type + */ +function test(): (id: number) => string; +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] +// Message: Missing JSDoc @param "id" declaration. + +/** + * A function with return type + */ +let test = (): (id: number) => string => +{ + return (id) => `${id}`; +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] +// Message: Missing JSDoc @param "id" declaration. + +/** + * @param baz + * @param options + */ +function quux (baz, {foo: bar}) { + +} +// Message: Missing JSDoc @param "options.foo" declaration. + +class Client { + /** + * Set collection data. + * @param {Object} data The collection data object. + * @param {number} data.last_modified + * @param {Object} options The options object. + * @param {Object} [options.headers] The headers object option. + * @param {Number} [options.retry=0] Number of retries to make + * when faced with transient errors. + * @param {Boolean} [options.safe] The safe option. + * @param {Boolean} [options.patch] The patch option. + * @param {Number} [options.last_modified] The last_modified option. + * @return {Promise} + */ + async setData( + data: { last_modified?: number }, + options: { + headers?: Record; + safe?: boolean; + retry?: number; + patch?: boolean; + last_modified?: number; + permissions?: []; + } = {} + ) {} +} +// Message: Missing JSDoc @param "options.permissions" declaration. + +/** + * + */ +function quux (foo) { + +} +// "jsdoc/require-param": ["error"|"warn", {"enableFixer":false}] +// Message: Missing JSDoc @param "foo" declaration. + +class Client { + /** + * Set collection data. + * @return {Promise} + */ + async setData( + data: { last_modified?: number } + ) {} +} +// Message: Missing JSDoc @param "data" declaration. + +/** + * @param cfg + * @param cfg.num + */ +function quux ({num, ...extra}) { +} +// "jsdoc/require-param": ["error"|"warn", {"checkRestProperty":true}] +// Message: Missing JSDoc @param "cfg.extra" declaration. + +/** + * @param cfg + * @param cfg.opts + * @param cfg.opts.num + */ +function quux ({opts: {num, ...extra}}) { +} +// "jsdoc/require-param": ["error"|"warn", {"checkRestProperty":true}] +// Message: Missing JSDoc @param "cfg.opts.extra" declaration. + +/** + * @param {GenericArray} cfg + * @param {number} cfg."0" + */ +function baar ([a, ...extra]) { + // +} +// Message: Missing JSDoc @param "cfg."1"" declaration. + +/** + * @param a + */ +function baar (a, ...extra) { + // +} +// Message: Missing JSDoc @param "extra" declaration. + +/** + * Converts an SVGRect into an object. + * @param {SVGRect} bbox - a SVGRect + */ +const bboxToObj = function ({x, y, width, height}) { + return {x, y, width, height}; +}; +// "jsdoc/require-param": ["error"|"warn", {"checkTypesPattern":"SVGRect"}] +// Message: Missing JSDoc @param "bbox.x" declaration. + +/** + * Converts an SVGRect into an object. + * @param {object} bbox - a SVGRect + */ +const bboxToObj = function ({x, y, width, height}) { + return {x, y, width, height}; +}; +// Message: Missing JSDoc @param "bbox.x" declaration. + +module.exports = class GraphQL { + /** + * @param fetchOptions + * @param cacheKey + */ + fetch = ({ url, ...options }, cacheKey) => { + } +}; +// "jsdoc/require-param": ["error"|"warn", {"checkRestProperty":true}] +// Message: Missing JSDoc @param "fetchOptions.url" declaration. + +(function() { + /** + * A function. + */ + function f(param) { + return !param; + } +})(); +// Message: Missing JSDoc @param "param" declaration. + +/** + * Description. + * @param {Object} options + * @param {Object} options.foo + */ +function quux ({ foo: { bar } }) {} +// Message: Missing JSDoc @param "options.foo.bar" declaration. + +/** + * Description. + * @param {FooBar} options + * @param {FooBar} options.foo + */ +function quux ({ foo: { bar } }) {} +// "jsdoc/require-param": ["error"|"warn", {"checkTypesPattern":"FooBar"}] +// Message: Missing JSDoc @param "options.foo.bar" declaration. + +/** + * Description. + * @param {Object} options + * @param {FooBar} foo + */ +function quux ({ foo: { bar } }) {} +// Message: Missing JSDoc @param "options.foo" declaration. + +/** + * Description. + * @param {Object} options + * @param options.foo + */ +function quux ({ foo: { bar } }) {} +// Message: Missing JSDoc @param "options.foo.bar" declaration. + +/** + * Description. + * @param {object} options Options. + * @param {object} options.foo A description. + * @param {object} options.foo.bar + */ +function foo({ foo: { bar: { baz } }}) {} +// Message: Missing JSDoc @param "options.foo.bar.baz" declaration. + +/** +* Returns a number. +* @param {Object} props Props. +* @param {Object} props.prop Prop. +* @return {number} A number. +*/ +export function testFn1 ({ prop = { a: 1, b: 2 } }) { +} +// "jsdoc/require-param": ["error"|"warn", {"useDefaultObjectProperties":true}] +// Message: Missing JSDoc @param "props.prop.a" declaration. + +/** Foo. */ +function foo(a, b, c) {} +// Message: Missing JSDoc @param "a" declaration. + +/** + * @param foo Some number. + * @param bar Some number. + */ +export function myPublicFunction(foo: number, bar: number, baz: number) {} +// "jsdoc/require-param": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[tag=\"param\"])","context":"FunctionDeclaration"}]}] +// Message: Missing JSDoc @param "baz" declaration. +```` + + + + + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @param foo + */ +function quux (foo) { + +} + +/** + * @param root0 + * @param root0.foo + */ +function quux ({foo}) { + +} + +/** + * @param root0 + * @param root0.foo + * @param root1 + * @param root1.bar + */ +function quux ({foo}, {bar}) { + +} + +/** + * @param arg0 + * @param arg0.foo + * @param arg1 + * @param arg1.bar + */ +function quux ({foo}, {bar}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"unnamedRootBase":["arg"]}] + +/** + * @param arg + * @param arg.foo + * @param config0 + * @param config0.bar + * @param config1 + * @param config1.baz + */ +function quux ({foo}, {bar}, {baz}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"unnamedRootBase":["arg","config"]}] + +/** + * @inheritdoc + */ +function quux (foo) { + +} + +/** + * @inheritDoc + */ +function quux (foo) { + +} + +/** + * @arg foo + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} + +/** + * @override + * @param foo + */ +function quux (foo) { + +} + +/** + * @override + */ +function quux (foo) { + +} + +/** + * @override + */ +class A { + /** + * + */ + quux (foo) { + + } +} + +/** + * @override + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"overrideReplacesDocs":true}} + +/** + * @ignore + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"ignoreReplacesDocs":true}} + +/** + * @implements + */ +class A { + /** + * + */ + quux (foo) { + + } +} + +/** + * @implements + */ +function quux (foo) { + +} + +/** + * @implements + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"implementsReplacesDocs":true}} + +/** + * @implements + * @param foo + */ +function quux (foo) { + +} + +/** + * @augments + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} + +/** + * @augments + * @param foo + */ +function quux (foo) { + +} + +/** + * @extends + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} + +/** + * @extends + * @param foo + */ +function quux (foo) { + +} + +/** + * @augments + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} + +/** + * @extends + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} + +/** + * @override + */ +class A { + /** + * @param foo + */ + quux (foo) { + + } +} + +/** + * @override + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Settings: {"jsdoc":{"overrideReplacesDocs":true}} + +/** + * @ignore + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Settings: {"jsdoc":{"ignoreReplacesDocs":true}} + +/** + * @implements + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Settings: {"jsdoc":{"implementsReplacesDocs":true}} + +/** + * @implements + */ +class A { + /** + * @param foo + */ + quux (foo) { + + } +} + +/** + * @augments + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} + +/** + * @augments + */ +class A { + /** + * @param foo + */ + quux (foo) { + + } +} + +/** + * @extends + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} + +/** + * @extends + */ +class A { + /** + * @param foo + */ + quux (foo) { + + } +} + +/** + * @augments + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} + +/** + * @extends + */ +class A { + /** + * + */ + quux (foo) { + + } +} +// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} + +/** + * @internal + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"ignoreInternal":true}} + +/** + * @private + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"ignorePrivate":true}} + +/** + * @access private + */ +function quux (foo) { + +} +// Settings: {"jsdoc":{"ignorePrivate":true}} + +// issue 182: optional chaining +/** @const {boolean} test */ +const test = something?.find(_ => _) + +/** @type {RequestHandler} */ +function foo(req, res, next) {} + +/** + * @type {MyCallback} + */ +function quux () { + +} +// "jsdoc/require-param": ["error"|"warn", {"exemptedBy":["type"]}] + +/** + * @override + */ +var A = class { + /** + * + */ + quux (foo) { + + } +} + +export class SomeClass { + /** + * @param property + */ + constructor(private property: string) {} +} + +/** + * Assign the project to an employee. + * + * @param {object} employee - The employee who is responsible for the project. + * @param {string} employee.name - The name of the employee. + * @param {string} employee.department - The employee's department. + */ +function assign({name, department}) { + // ... +} + +export abstract class StephanPlugin { + + /** + * Called right after Stephan loads the plugin file. + * + * @example + *```typescript + * type Options = { + * verbose?: boolean; + * token?: string; + * } + * ``` + * + * Note that your Options type should only have optional properties... + * + * @param args Arguments compiled and provided by StephanClient. + * @param args.options The options as provided by the user, or an empty object if not provided. + * @param args.client The options as provided by the user, or an empty object if not provided. + * @param defaultOptions The default options as provided by the plugin, or an empty object. + */ + public constructor({options, client}: { + options: O; + client: unknown; + }, defaultOptions: D) { + + } +} + +/** + * + */ +function quux (foo) { + +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["ArrowFunctionExpression"]}] + +/** +* A function with return type +* +* @param id +*/ +let test = (): (id: number) => string => +{ + return (id) => `${id}`; +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] + +/** @abstract */ +class base { +/** @param {boolean} arg0 */ +constructor(arg0) {} +} + +class foo extends base { +/** @inheritDoc */ +constructor(arg0) { +super(arg0); +this.arg0 = arg0; +} +} +// Settings: {"jsdoc":{"mode":"closure"}} + + export abstract class StephanPlugin { + + /** + * Called right after Stephan loads the plugin file. + * + * @example + *```typescript + * type Options = { + * verbose?: boolean; + * token?: string; + * } + * ``` + * + * Note that your Options type should only have optional properties... + * + * @param args Arguments compiled and provided by StephanClient. + * @param args.options The options as provided by the user, or an empty object if not provided. + * @param args.client The options as provided by the user, or an empty object if not provided. + * @param args.client.name The name of the client. + * @param defaultOptions The default options as provided by the plugin, or an empty object. + */ + public constructor({ options, client: { name } }: { + options: O; + client: { name: string }; + }, defaultOptions: D) { + + } +} + +/** +* @param {string} cb +*/ +function createGetter (cb) { + return function (...args) { + cb(); + }; +} + +/** + * @param cfg + * @param cfg.num + */ +function quux ({num, ...extra}) { +} + +/** + * @param {GenericArray} cfg + * @param {number} cfg."0" + */ +function baar ([a, ...extra]) { + // +} +// "jsdoc/require-param": ["error"|"warn", {"enableRestElementFixer":false}] + +/** + * @param a + */ +function baar (a, ...extra) { + // +} +// "jsdoc/require-param": ["error"|"warn", {"enableRestElementFixer":false}] + +/** +* Converts an SVGRect into an object. +* @param {SVGRect} bbox - a SVGRect +*/ +const bboxToObj = function ({x, y, width, height}) { + return {x, y, width, height}; +}; + +/** +* Converts an SVGRect into an object. +* @param {object} bbox - a SVGRect +*/ +const bboxToObj = function ({x, y, width, height}) { + return {x, y, width, height}; +}; +// "jsdoc/require-param": ["error"|"warn", {"checkTypesPattern":"SVGRect"}] + +class CSS { + /** + * Set one or more CSS properties for the set of matched elements. + * + * @param {Object} propertyObject - An object of property-value pairs to set. + */ + setCssObject(propertyObject: {[key: string]: string | number}): void { + } +} + +/** + * @param foo + * @param bar + * @param cfg + */ +function quux (foo, bar, {baz}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"checkDestructured":false}] + +/** + * @param foo + * @param bar + */ +function quux (foo, bar, {baz}) { + +} +// "jsdoc/require-param": ["error"|"warn", {"checkDestructuredRoots":false}] + +/** + * @param root + * @param root.foo + */ +function quux ({"foo": bar}) { + +} + +/** + * @param root + * @param root."foo" + */ +function quux ({foo: bar}) { + +} + +/** + * Description. + * @param {string} b Description `/**`. + */ +module.exports = function a(b) { + console.info(b); +}; + +/** + * Description. + * @param {Object} options Options. + * @param {FooBar} options.foo foo description. + */ +function quux ({ foo: { bar } }) {} + +/** + * Description. + * @param {FooBar} options + * @param {Object} options.foo + */ +function quux ({ foo: { bar } }) {} +// "jsdoc/require-param": ["error"|"warn", {"checkTypesPattern":"FooBar"}] + +/** + * @param obj + * @param obj.data + * @param obj.data."0" + * @param obj.data."1" + * @param obj.data."2" + * @param obj.defaulting + * @param obj.defaulting."0" + * @param obj.defaulting."1" + */ +function Item({ + data: [foo, bar, ...baz], + defaulting: [quux, xyz] = [] +}) { +} + +/** +* Returns a number. +* @param {Object} props Props. +* @param {Object} props.prop Prop. +* @return {number} A number. +*/ +export function testFn1 ({ prop = { a: 1, b: 2 } }) { +} +// "jsdoc/require-param": ["error"|"warn", {"useDefaultObjectProperties":false}] + +/** + * @param this The this object + * @param bar number to return + * @returns number returned back to caller + */ +function foo(this: T, bar: number): number { + console.log(this.name); + return bar; +} + +/** + * @param bar number to return + * @returns number returned back to caller + */ +function foo(this: T, bar: number): number { + console.log(this.name); + return bar; } -// Settings: {"jsdoc":{"exemptDestructuredRootsFromChecks":true}} ```` diff --git a/docs/rules/require-property-description.md b/docs/rules/require-property-description.md index 225d553f2..b47a66101 100644 --- a/docs/rules/require-property-description.md +++ b/docs/rules/require-property-description.md @@ -1,128 +1,88 @@ - - -# require-property + + +# require-property-description -* [Fixer](#user-content-require-property-fixer) -* [Context and settings](#user-content-require-property-context-and-settings) -* [Failing examples](#user-content-require-property-failing-examples) -* [Passing examples](#user-content-require-property-passing-examples) +* [Context and settings](#user-content-require-property-description-context-and-settings) +* [Failing examples](#user-content-require-property-description-failing-examples) +* [Passing examples](#user-content-require-property-description-passing-examples) -Requires that all `@typedef` and `@namespace` tags have `@property` -tags when their type is a plain `object`, `Object`, or `PlainObject`. +Requires that each `@property` tag has a `description` value. -Note that any other type, including a subtype of object such as -`object`, will not be reported. - - - -## Fixer - -The fixer for `require-property` will add an empty `@property`. - - - + + ## Context and settings ||| |---|---| -|Context|Everywhere| -|Tags|`typedef`, `namespace`| +|Context|everywhere| +|Tags|`property`| +|Aliases|`prop`| |Recommended|true| - - + + ## Failing examples The following patterns are considered problems: ````js /** - * @typedef {object} SomeTypedef + * @typedef {SomeType} SomeTypedef + * @property foo */ -// Message: Missing JSDoc @property. - -class Test { - /** - * @typedef {object} SomeTypedef - */ - quux () {} -} -// Message: Missing JSDoc @property. +// Message: Missing JSDoc @property "foo" description. /** - * @typedef {PlainObject} SomeTypedef + * @typedef {SomeType} SomeTypedef + * @prop foo */ // Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}} -// Message: Missing JSDoc @prop. +// Message: Missing JSDoc @prop "foo" description. /** - * @namespace {Object} SomeName + * @typedef {SomeType} SomeTypedef + * @property foo */ -// Message: Missing JSDoc @property. +// Settings: {"jsdoc":{"tagNamePreference":{"property":false}}} +// Message: Unexpected tag `@property` ```` - - + + ## Passing examples The following patterns are not considered problems: ````js /** - * - */ - -/** - * @property - */ - -/** - * @typedef {Object} SomeTypedef - * @property {SomeType} propName Prop description + * @typedef {SomeType} SomeTypedef */ /** - * @typedef {object} SomeTypedef - * @prop {SomeType} propName Prop description + * @typedef {SomeType} SomeTypedef + * @property foo Foo. */ -// Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}} /** - * @typedef {object} SomeTypedef - * @property - * // arbitrary property content + * @namespace {SomeType} SomeName + * @property foo Foo. */ /** - * @typedef {object} SomeTypedef + * @class + * @property foo Foo. */ /** - * @typedef {string} SomeTypedef - */ - -/** - * @namespace {object} SomeName - * @property {SomeType} propName Prop description - */ - -/** - * @namespace {object} SomeName - * @property - * // arbitrary property content - */ - -/** - * @typedef {object} SomeTypedef - * @property someProp - * @property anotherProp This with a description - * @property {anotherType} yetAnotherProp This with a type and desc. + * Typedef with multi-line property type. + * + * @typedef {object} MyType + * @property {function( + * number + * )} numberEater Method which takes a number. */ -function quux () { - -} ```` diff --git a/docs/rules/require-property-name.md b/docs/rules/require-property-name.md index b47a66101..d38230db1 100644 --- a/docs/rules/require-property-name.md +++ b/docs/rules/require-property-name.md @@ -1,16 +1,16 @@ - - -# require-property-description + + +# require-property-name -* [Context and settings](#user-content-require-property-description-context-and-settings) -* [Failing examples](#user-content-require-property-description-failing-examples) -* [Passing examples](#user-content-require-property-description-passing-examples) +* [Context and settings](#user-content-require-property-name-context-and-settings) +* [Failing examples](#user-content-require-property-name-failing-examples) +* [Passing examples](#user-content-require-property-name-passing-examples) -Requires that each `@property` tag has a `description` value. +Requires that all `@property` tags have names. - - + + ## Context and settings ||| @@ -20,8 +20,8 @@ Requires that each `@property` tag has a `description` value. |Aliases|`prop`| |Recommended|true| - - + + ## Failing examples The following patterns are considered problems: @@ -29,16 +29,15 @@ The following patterns are considered problems: ````js /** * @typedef {SomeType} SomeTypedef - * @property foo + * @property */ -// Message: Missing JSDoc @property "foo" description. +// Message: There must be an identifier after @property type. /** * @typedef {SomeType} SomeTypedef - * @prop foo + * @property {string} */ -// Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}} -// Message: Missing JSDoc @prop "foo" description. +// Message: There must be an identifier after @property tag. /** * @typedef {SomeType} SomeTypedef @@ -50,8 +49,8 @@ The following patterns are considered problems: - - + + ## Passing examples The following patterns are not considered problems: @@ -59,30 +58,22 @@ The following patterns are not considered problems: ````js /** * @typedef {SomeType} SomeTypedef + * @property foo */ /** * @typedef {SomeType} SomeTypedef - * @property foo Foo. + * @property {string} foo */ /** * @namespace {SomeType} SomeName - * @property foo Foo. + * @property {string} foo */ /** * @class - * @property foo Foo. - */ - -/** - * Typedef with multi-line property type. - * - * @typedef {object} MyType - * @property {function( - * number - * )} numberEater Method which takes a number. + * @property {string} foo */ ```` diff --git a/docs/rules/require-property-type.md b/docs/rules/require-property-type.md index d38230db1..0206adcf9 100644 --- a/docs/rules/require-property-type.md +++ b/docs/rules/require-property-type.md @@ -1,16 +1,16 @@ - - -# require-property-name + + +# require-property-type -* [Context and settings](#user-content-require-property-name-context-and-settings) -* [Failing examples](#user-content-require-property-name-failing-examples) -* [Passing examples](#user-content-require-property-name-passing-examples) +* [Context and settings](#user-content-require-property-type-context-and-settings) +* [Failing examples](#user-content-require-property-type-failing-examples) +* [Passing examples](#user-content-require-property-type-passing-examples) -Requires that all `@property` tags have names. +Requires that each `@property` tag has a type value (within curly brackets). - - + + ## Context and settings ||| @@ -20,8 +20,8 @@ Requires that all `@property` tags have names. |Aliases|`prop`| |Recommended|true| - - + + ## Failing examples The following patterns are considered problems: @@ -29,15 +29,16 @@ The following patterns are considered problems: ````js /** * @typedef {SomeType} SomeTypedef - * @property + * @property foo */ -// Message: There must be an identifier after @property type. +// Message: Missing JSDoc @property "foo" type. /** * @typedef {SomeType} SomeTypedef - * @property {string} + * @prop foo */ -// Message: There must be an identifier after @property tag. +// Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}} +// Message: Missing JSDoc @prop "foo" type. /** * @typedef {SomeType} SomeTypedef @@ -49,8 +50,8 @@ The following patterns are considered problems: - - + + ## Passing examples The following patterns are not considered problems: @@ -58,22 +59,21 @@ The following patterns are not considered problems: ````js /** * @typedef {SomeType} SomeTypedef - * @property foo */ /** * @typedef {SomeType} SomeTypedef - * @property {string} foo + * @property {number} foo */ /** * @namespace {SomeType} SomeName - * @property {string} foo + * @property {number} foo */ /** * @class - * @property {string} foo + * @property {number} foo */ ```` diff --git a/docs/rules/require-property.md b/docs/rules/require-property.md index 0206adcf9..225d553f2 100644 --- a/docs/rules/require-property.md +++ b/docs/rules/require-property.md @@ -1,79 +1,128 @@ - - -# require-property-type + + +# require-property -* [Context and settings](#user-content-require-property-type-context-and-settings) -* [Failing examples](#user-content-require-property-type-failing-examples) -* [Passing examples](#user-content-require-property-type-passing-examples) +* [Fixer](#user-content-require-property-fixer) +* [Context and settings](#user-content-require-property-context-and-settings) +* [Failing examples](#user-content-require-property-failing-examples) +* [Passing examples](#user-content-require-property-passing-examples) -Requires that each `@property` tag has a type value (within curly brackets). +Requires that all `@typedef` and `@namespace` tags have `@property` +tags when their type is a plain `object`, `Object`, or `PlainObject`. - - +Note that any other type, including a subtype of object such as +`object`, will not be reported. + + + +## Fixer + +The fixer for `require-property` will add an empty `@property`. + + + ## Context and settings ||| |---|---| -|Context|everywhere| -|Tags|`property`| -|Aliases|`prop`| +|Context|Everywhere| +|Tags|`typedef`, `namespace`| |Recommended|true| - - + + ## Failing examples The following patterns are considered problems: ````js /** - * @typedef {SomeType} SomeTypedef - * @property foo + * @typedef {object} SomeTypedef */ -// Message: Missing JSDoc @property "foo" type. +// Message: Missing JSDoc @property. + +class Test { + /** + * @typedef {object} SomeTypedef + */ + quux () {} +} +// Message: Missing JSDoc @property. /** - * @typedef {SomeType} SomeTypedef - * @prop foo + * @typedef {PlainObject} SomeTypedef */ // Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}} -// Message: Missing JSDoc @prop "foo" type. +// Message: Missing JSDoc @prop. /** - * @typedef {SomeType} SomeTypedef - * @property foo + * @namespace {Object} SomeName */ -// Settings: {"jsdoc":{"tagNamePreference":{"property":false}}} -// Message: Unexpected tag `@property` +// Message: Missing JSDoc @property. ```` - - + + ## Passing examples The following patterns are not considered problems: ````js /** - * @typedef {SomeType} SomeTypedef + * + */ + +/** + * @property + */ + +/** + * @typedef {Object} SomeTypedef + * @property {SomeType} propName Prop description + */ + +/** + * @typedef {object} SomeTypedef + * @prop {SomeType} propName Prop description + */ +// Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}} + +/** + * @typedef {object} SomeTypedef + * @property + * // arbitrary property content + */ + +/** + * @typedef {object} SomeTypedef + */ + +/** + * @typedef {string} SomeTypedef */ /** - * @typedef {SomeType} SomeTypedef - * @property {number} foo + * @namespace {object} SomeName + * @property {SomeType} propName Prop description */ /** - * @namespace {SomeType} SomeName - * @property {number} foo + * @namespace {object} SomeName + * @property + * // arbitrary property content */ /** - * @class - * @property {number} foo + * @typedef {object} SomeTypedef + * @property someProp + * @property anotherProp This with a description + * @property {anotherType} yetAnotherProp This with a type and desc. */ +function quux () { + +} ```` diff --git a/docs/rules/require-returns-check.md b/docs/rules/require-returns-check.md index 9f5a68ac3..0e72282f4 100644 --- a/docs/rules/require-returns-check.md +++ b/docs/rules/require-returns-check.md @@ -1,213 +1,121 @@ - - -# require-returns + + +# require-returns-check -* [Options](#user-content-require-returns-options) -* [Context and settings](#user-content-require-returns-context-and-settings) -* [Failing examples](#user-content-require-returns-failing-examples) -* [Passing examples](#user-content-require-returns-passing-examples) +* [Options](#user-content-require-returns-check-options) +* [Context and settings](#user-content-require-returns-check-context-and-settings) +* [Failing examples](#user-content-require-returns-check-failing-examples) +* [Passing examples](#user-content-require-returns-check-passing-examples) -Requires that return statements are documented. +Requires a return statement (or non-`undefined` Promise resolve value) +be present in a +function body if a `@returns` tag (without a `void` or `undefined` type) +is specified in the function's JSDoc comment block. + +Will also report `@returns {void}` and `@returns {undefined}` if `exemptAsync` +is set to `false` and a non-`undefined` value is returned or a resolved value +is found. Also reports if `@returns {never}` is discovered with a return value. Will also report if multiple `@returns` tags are present. - - + + ## Options -- `checkConstructors` - A value indicating whether `constructor`s should - be checked for `@returns` tags. Defaults to `false`. -- `checkGetters` - Boolean to determine whether getter methods should - be checked for `@returns` tags. Defaults to `true`. -- `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the - document block avoids the need for a `@returns`. Defaults to an array - with `inheritdoc`. If you set this array, it will overwrite the default, - so be sure to add back `inheritdoc` if you wish its presence to cause - exemption of the rule. -- `forceRequireReturn` - Set to `true` to always insist on - `@returns` documentation regardless of implicit or explicit `return`'s - in the function. May be desired to flag that a project is aware of an - `undefined`/`void` return. Defaults to `false`. -- `forceReturnsWithAsync` - By default `async` functions that do not explicitly - return a value pass this rule as an `async` function will always return a - `Promise`, even if the `Promise` resolves to void. You can force all - `async` functions (including ones with an explicit `Promise` but no - detected non-`undefined` `resolve` value) to require `@return` - documentation by setting `forceReturnsWithAsync` to `true` on the options - object. This may be useful for flagging that there has been consideration - of return type. Defaults to `false`. -- `contexts` - Set this to an array of strings representing the AST context - (or an object with `context` and `comment` properties) where you wish - the rule to be applied. - Overrides the default contexts (see below). Set to `"any"` if you want - the rule to apply to any jsdoc block throughout your files (as is necessary - for finding function blocks not attached to a function declaration or - expression, i.e., `@callback` or `@function` (or its aliases `@func` or - `@method`) (including those associated with an `@interface`). This - rule will only apply on non-default contexts when there is such a tag - present and the `forceRequireReturn` option is set or if the - `forceReturnsWithAsync` option is set with a present `@async` tag - (since we are not checking against the actual `return` values in these - cases). - - - +- `exemptGenerators`- Because a generator might be labeled as having a + `IterableIterator` `@returns` value (along with an iterator type + corresponding to the type of any `yield` statements), projects might wish to + leverage `@returns` in generators even without a` return` statement. This + option is therefore `true` by default in `typescript` mode (in "jsdoc" mode, + one might be more likely to take advantage of `@yields`). Set it to `false` + if you wish for a missing `return` to be flagged regardless. +- `exemptAsync` - By default, functions which return a `Promise` that are not + detected as resolving with a non-`undefined` value and `async` functions + (even ones that do not explicitly return a value, as these are returning a + `Promise` implicitly) will be exempted from reporting by this rule. + If you wish to insist that only `Promise`'s which resolve to + non-`undefined` values or `async` functions with explicit `return`'s will + be exempted from reporting (i.e., that `async` functions can be reported + if they lack an explicit (non-`undefined`) `return` when a `@returns` is + present), you can set `exemptAsync` to `false` on the options object. +- `reportMissingReturnForUndefinedTypes` - If `true` and no return or + resolve value is found, this setting will even insist that reporting occur + with `void` or `undefined` (including as an indicated `Promise` type). + Unlike `require-returns`, with this option in the rule, one can + *discourage* the labeling of `undefined` types. Defaults to `false`. + + + ## Context and settings -| | | -| -------- | ------- | -| Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | -| Tags | `returns` | -| Aliases | `return` | +||| +|---|---| +|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| +|Tags|`returns`| +|Aliases|`return`| +|Options|`exemptAsync`, `reportMissingReturnForUndefinedTypes`| |Recommended|true| -| Options | `checkConstructors`, `checkGetters`, `contexts`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync` | -| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | - - + + ## Failing examples The following patterns are considered problems: ````js /** - * + * @returns */ function quux (foo) { - return foo; } -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -const foo = () => ({ - bar: 'baz' -}) -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -const foo = bar=>({ bar }) -// Message: Missing JSDoc @returns declaration. +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * - */ -const foo = bar => bar.baz() -// Message: Missing JSDoc @returns declaration. - -/** - * + * @return */ function quux (foo) { - return foo; } // Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}} -// Message: Missing JSDoc @return declaration. - -/** - * - */ -async function quux() { -} -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. +// Message: JSDoc @return declaration present but return expression not available in function. /** - * - */ -const quux = async function () {} -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * + * @returns */ -const quux = async () => {} -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. +const quux = () => {} +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * - */ -async function quux () {} -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * + * @returns {undefined} Foo. + * @returns {String} Foo. */ function quux () { -} -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. -/** - * - */ -function quux () { + return foo; } -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * @function - */ -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * @callback - */ -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. +// Message: Found more than one @returns declaration. const language = { /** * @param {string} name + * @returns {string} */ get name() { - return this._name; + this._name = name; } } -// Message: Missing JSDoc @returns declaration. - -/** - * - */ -async function quux () { -} -// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * @function - * @async - */ -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceReturnsWithAsync":true}] -// Message: Missing JSDoc @returns declaration. +// Message: JSDoc @returns declaration present but return expression not available in function. -/** - * @callback - * @async - */ -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceReturnsWithAsync":true}] -// Message: Missing JSDoc @returns declaration. - -/** - * @returns {undefined} - * @returns {void} - */ -function quux (foo) { - - return foo; +class Foo { + /** + * @returns {string} + */ + bar () { + } } -// Message: Found more than one @returns declaration. +// Message: JSDoc @returns declaration present but return expression not available in function. /** * @returns @@ -219,946 +127,927 @@ function quux () { // Message: Unexpected tag `@returns` /** - * @param foo + * @returns {string} */ -function quux (foo) { - return 'bar'; +function f () { + function g() { + return 'foo' + } + + () => { + return 5 + } } -// "jsdoc/require-returns": ["error"|"warn", {"exemptedBy":["notPresent"]}] -// Message: Missing JSDoc @returns declaration. +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * @param {array} a + * @returns {Promise} */ -async function foo(a) { - return; -} -// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] -// Message: Missing JSDoc @returns declaration. +async function quux() {} +// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * @param {array} a + * @returns {IterableIterator} */ -async function foo(a) { - return Promise.all(a); -} -// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] -// Message: Missing JSDoc @returns declaration. - -class foo { - /** gets bar */ - get bar() { - return 0; - } -} -// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":true}] -// Message: Missing JSDoc @returns declaration. - -class TestClass { - /** - * - */ - constructor() { - return new Map(); - } -} -// "jsdoc/require-returns": ["error"|"warn", {"checkConstructors":true}] -// Message: Missing JSDoc @returns declaration. - -class TestClass { - /** - * - */ - get Test() { - return 0; - } -} -// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":true}] -// Message: Missing JSDoc @returns declaration. - -class quux { - /** - * - */ - quux () { - } -} -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. +function * quux() {} +// Settings: {"jsdoc":{"mode":"jsdoc"}} +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * + * @returns {IterableIterator} */ -function quux (foo) { +function * quux() {} +// Settings: {"jsdoc":{"mode":"typescript"}} +// "jsdoc/require-returns-check": ["error"|"warn", {"exemptGenerators":false}] +// Message: JSDoc @returns declaration present but return expression not available in function. - return new Promise(function (resolve, reject) { - resolve(foo); - }); +/** + * @returns {Promise} + */ +function quux() { + return new Promise((resolve, reject) => {}) } -// Message: Missing JSDoc @returns declaration. +// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * + * @returns {Promise} */ -function quux (foo) { - - return new Promise(function (resolve, reject) { +function quux() { + return new Promise((resolve, reject) => { setTimeout(() => { - resolve(true); + resolve(); }); - }); + }) } -// Message: Missing JSDoc @returns declaration. +// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * + * Description. + * @returns {string} */ -function quux (foo) { - - return new Promise(function (resolve, reject) { - foo(resolve); - }); +async function foo() { + return new Promise(resolve => resolve()); } -// Message: Missing JSDoc @returns declaration. +// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * + * Description. + * @returns {void} */ -function quux () { - return new Promise((resolve, reject) => { - while(true) { - resolve(true); - } - }); +async function foo() { + return new Promise(resolve => resolve()); } -// Message: Missing JSDoc @returns declaration. +// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false,"reportMissingReturnForUndefinedTypes":true}] +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * + * @returns { void } Foo. */ -function quux () { - return new Promise((resolve, reject) => { - do { - resolve(true); - } - while(true) - }); -} -// Message: Missing JSDoc @returns declaration. +function quux () {} +// "jsdoc/require-returns-check": ["error"|"warn", {"reportMissingReturnForUndefinedTypes":true}] +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * + * @returns {never} Foo. */ function quux () { - return new Promise((resolve, reject) => { - if (true) { - resolve(true); - } - return; - }); + return undefined; } -// Message: Missing JSDoc @returns declaration. +// Message: JSDoc @returns declaration set with "never" but return expression is present in function. /** - * + * @returns {never} */ -function quux () { - return new Promise((resolve, reject) => { - if (true) { - resolve(true); - } - }); +function quux (foo) { + return foo; } -// Message: Missing JSDoc @returns declaration. +// Message: JSDoc @returns declaration set with "never" but return expression is present in function. /** + * Reads a test fixture. + * + * @param path The path to resolve relative to the fixture base. It will be normalized for the + * operating system. * + * @returns The file contents as buffer. */ -function quux () { - var a = {}; - return new Promise((resolve, reject) => { - with (a) { - resolve(true); - } - }); -} -// Message: Missing JSDoc @returns declaration. +export function readFixture(path: string): void; +// Message: JSDoc @returns declaration present but return expression not available in function. /** + * Reads a test fixture. + * + * @param path The path to resolve relative to the fixture base. It will be normalized for the + * operating system. * + * @returns The file contents as buffer. */ -function quux () { - var a = {}; - return new Promise((resolve, reject) => { - try { - resolve(true); - } catch (err) {} - }); -} -// Message: Missing JSDoc @returns declaration. +export function readFixture(path: string); +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * + * @returns {SomeType} */ -function quux () { - var a = {}; - return new Promise((resolve, reject) => { - try { - } catch (err) { - resolve(true); - } - }); -} -// Message: Missing JSDoc @returns declaration. +function quux (path) { + if (true) { + return; + } + return 15; +}; +// Message: JSDoc @returns declaration present but return expression not available in function. /** + * Reads a test fixture. * + * @param path The path to resolve relative to the fixture base. It will be normalized for the + * operating system. + * + * @returns The file contents as buffer. */ -function quux () { - var a = {}; - return new Promise((resolve, reject) => { - try { - } catch (err) { - } finally { - resolve(true); - } - }); -} -// Message: Missing JSDoc @returns declaration. +export function readFixture(path: string): void { + return; +}; +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * + * @returns {true} */ function quux () { - var a = {}; - return new Promise((resolve, reject) => { - switch (a) { - case 'abc': - resolve(true); - } - }); + if (true) { + return true; + } } -// Message: Missing JSDoc @returns declaration. +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * + * @returns {true} */ function quux () { - return new Promise((resolve, reject) => { - if (true) { - resolve(); - } else { - resolve(true); - } - }); + if (true) { + } else { + return; + } } -// Message: Missing JSDoc @returns declaration. +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * + * @returns {true} */ -function quux () { - return new Promise((resolve, reject) => { - for (let i = 0; i < 5 ; i++) { - resolve(true); - } - }); +function quux (someVar) { + switch (someVar) { + case 1: + return true; + case 2: + return; + } } -// Message: Missing JSDoc @returns declaration. +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * + * @returns {boolean} */ -function quux () { - return new Promise((resolve, reject) => { - for (const i of obj) { - resolve(true); - } - }); -} -// Message: Missing JSDoc @returns declaration. +const quux = (someVar) => { + if (someVar) { + return true; + } +}; +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * + * @returns {true} */ function quux () { - return new Promise((resolve, reject) => { - for (const i in obj) { - resolve(true); - } - }); + try { + return true; + } catch (error) { + } } -// Message: Missing JSDoc @returns declaration. +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * + * @returns {true} */ function quux () { - return new Promise((resolve, reject) => { - if (true) { - return; - } else { - resolve(true); - } - }); + try { + return true; + } catch (error) { + return true; + } finally { + return; + } } -// Message: Missing JSDoc @returns declaration. +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * + * @returns {true} */ function quux () { - return new Promise((resolve, reject) => { - function a () { - resolve(true); - } - a(); - }); + if (true) { + throw new Error('abc'); + } + + throw new Error('def'); } -// Message: Missing JSDoc @returns declaration. +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * + * @returns {SomeType} Baz. */ -function quux () { - return new Promise(); -} -// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] -// Message: Missing JSDoc @returns declaration. +function foo() { + switch (true) { + default: + switch (false) { + default: return; + } + return "baz"; + } +}; +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * + * @returns {SomeType} Baz. */ -async function quux () { - return new Promise(); -} -// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] -// Message: Missing JSDoc @returns declaration. +function foo() { + switch (true) { + default: + switch (false) { + default: return; + } + return "baz"; + } +}; +// Message: JSDoc @returns declaration present but return expression not available in function. /** - * + * @returns {number} */ -async function quux () { - return new Promise((resolve, reject) => {}); -} -// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] -// Message: Missing JSDoc @returns declaration. - -export class A { - /** - * Description. - */ - public f(): string { - return ""; +function foo() { + let n = 1; + while (n > 0.5) { + n = Math.random(); + if (n < 0.2) { + return n; + } } } +// Message: JSDoc @returns declaration present but return expression not available in function. +```` -export interface B { - /** - * Description. - */ - f(): string; - /** - * Description. - */ - g: () => string; - /** - * Description. - */ - h(): void; + + +## Passing examples - /** - * Description. - */ - i: () => void; -} +The following patterns are not considered problems: +````js /** - * Description. + * @returns Foo. */ -export function f(): string { - return ""; +function quux () { + + return foo; } -// "jsdoc/require-returns": ["error"|"warn", {"contexts":[":not(BlockStatement) > FunctionDeclaration","MethodDefinition","TSMethodSignature","TSPropertySignature > TSTypeAnnotation > TSFunctionType"]}] -// Message: Missing JSDoc @returns declaration. /** - * @param ms time in millis + * @returns {string} Foo. */ -export const sleep = (ms: number) => - new Promise((res) => setTimeout(res, ms)); -// Message: Missing JSDoc @returns declaration. +function quux () { + + return foo; +} /** - * @param ms time in millis + * @returns {string} Foo. */ -export const sleep = (ms: number) => { - return new Promise((res) => setTimeout(res, ms)); -}; -// Message: Missing JSDoc @returns declaration. +function quux () { + + return foo; +} /** - * Reads a test fixture. + * */ -export function readFixture(path: string): Promise; -// Message: Missing JSDoc @returns declaration. +function quux () { +} /** - * Reads a test fixture. + * @returns {SomeType} Foo. */ -export function readFixture(path: string): void; -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. +const quux = () => foo; /** - * Reads a test fixture. + * @returns {undefined} Foo. */ -export function readFixture(path: string); -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] -// Message: Missing JSDoc @returns declaration. +function quux () {} /** - * @param {array} a + * @returns { void } Foo. */ -async function foo(a) { - return Promise.all(a); -} -// Message: Missing JSDoc @returns declaration. +function quux () {} /** - * Description. + * @returns {Promise} */ -export default async function demo() { - return true; -} -// Message: Missing JSDoc @returns declaration. -```` +async function quux() {} - - - - -## Passing examples - -The following patterns are not considered problems: - -````js /** - * @returns Foo. + * @returns {Promise} */ -function quux () { - - return foo; -} +const quux = async function () {} /** - * @returns Foo. + * @returns {Promise} */ -function quux () { - - return foo; -} -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"]}] +const quux = async () => {} /** - * + * @returns Foo. + * @abstract */ function quux () { + throw new Error('must be implemented by subclass!'); } /** - * + * @returns Foo. + * @virtual */ -function quux (bar) { - bar.filter(baz => { - return baz.corge(); - }) +function quux () { + throw new Error('must be implemented by subclass!'); } /** - * @returns Array + * @returns Foo. + * @constructor */ -function quux (bar) { - return bar.filter(baz => { - return baz.corge(); - }) +function quux () { } /** - * @returns Array - */ -const quux = (bar) => bar.filter(({ corge }) => corge()) - -/** - * @inheritdoc + * @interface */ -function quux (foo) { +class Foo { + /** + * @returns {string} + */ + bar () { + } } /** - * @override + * @record */ -function quux (foo) { +class Foo { + /** + * @returns {string} + */ + bar () { + } } +// Settings: {"jsdoc":{"mode":"closure"}} /** - * @constructor + * @returns {undefined} Foo. */ -function quux (foo) { - return true; +function quux () { } /** - * @implements + * @returns {void} Foo. */ -function quux (foo) { - return true; +function quux () { } /** - * @override + * @returns {void} Foo. */ -function quux (foo) { - - return foo; +function quux () { + return undefined; } /** - * @class + * @returns {never} Foo. */ -function quux (foo) { - return true; +function quux () { } /** - * @constructor + * @returns {void} Foo. */ -function quux (foo) { - +function quux () { + return; } /** - * @returns {object} + * */ function quux () { - - return {a: foo}; + return undefined; } /** - * @returns {object} + * */ -const quux = () => ({a: foo}); +function quux () { + return; +} /** - * @returns {object} + * @returns {true} */ -const quux = () => { - return {a: foo} -}; +function quux () { + try { + return true; + } catch (err) { + } + return true; +} /** - * @returns {void} + * @returns {true} */ function quux () { + try { + } finally { + return true; + } + return true; } /** - * @returns {void} + * @returns {true} */ -const quux = () => { - +function quux () { + try { + return true; + } catch (err) { + } + return true; } /** - * @returns {undefined} + * @returns {true} */ function quux () { + try { + something(); + } catch (err) { + return true; + } + return true; } /** - * @returns {undefined} + * @returns {true} */ -const quux = () => { - +function quux () { + switch (true) { + case 'abc': + return true; + } + return true; } /** - * + * @returns {true} */ function quux () { + switch (true) { + case 'abc': + return true; + } + return true; } /** - * + * @returns {true} */ -const quux = () => { - +function quux () { + for (const i of abc) { + return true; + } + return true; } -class Foo { - /** - * - */ - constructor () { +/** + * @returns {true} + */ +function quux () { + for (const a in b) { + return true; } } -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] -const language = { - /** - * @param {string} name - */ - set name(name) { - this._name = name; +/** + * @returns {true} + */ +function quux () { + for (const a of b) { + return true; } } /** - * @returns {void} + * @returns {true} */ function quux () { + loop: for (const a of b) { + return true; + } } -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] /** - * @returns {void} + * @returns {true} */ function quux () { - return undefined; + for (let i=0; i} */ -async function quux () { +async function quux() { + return 5; } -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] /** - * @returns {Promise} + * @returns {Promise} */ -async function quux () { +async function quux() { + return 5; } -// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] +// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] /** - * + * @returns {Promise} */ -async function quux () {} +function quux() { + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve(true); + }); + }) +} +// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] /** - * + * Description. + * @returns {void} */ -const quux = async function () {} +async function foo() { + return new Promise(resolve => resolve()); +} +// "jsdoc/require-returns-check": ["error"|"warn", {"reportMissingReturnForUndefinedTypes":true}] /** - * + * @returns { void } Foo. */ -const quux = async () => {} - -/** foo class */ -class foo { - /** foo constructor */ - constructor () { - // => - this.bar = true; - } +function quux () { + return undefined; } - -export default foo; +// "jsdoc/require-returns-check": ["error"|"warn", {"reportMissingReturnForUndefinedTypes":true}] /** - * + * @returns { string } Foo. */ function quux () { + return 'abc'; } -// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] +// "jsdoc/require-returns-check": ["error"|"warn", {"reportMissingReturnForUndefinedTypes":true}] /** - * @type {MyCallback} + * @returns {IterableIterator} */ -function quux () { +function * quux() {} +// Settings: {"jsdoc":{"mode":"typescript"}} -} -// "jsdoc/require-returns": ["error"|"warn", {"exemptedBy":["type"]}] +/** + * @returns {IterableIterator} + */ +function * quux() {} +// Settings: {"jsdoc":{"mode":"jsdoc"}} +// "jsdoc/require-returns-check": ["error"|"warn", {"exemptGenerators":true}] /** - * @param {array} a + * @param {unknown} val + * @returns { asserts val is number } */ -async function foo(a) { - return; +function assertNumber(val) { + assert(typeof val === 'number'); } /** + * Reads a test fixture. + * + * @param path The path to resolve relative to the fixture base. It will be normalized for the + * operating system. * + * @returns The file contents as buffer. */ -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"]}] +export function readFixture(path: string): Promise; /** - * @async + * Reads a test fixture. + * + * @param path The path to resolve relative to the fixture base. It will be normalized for the + * operating system. + * + * @returns {SomeType} The file contents as buffer. */ -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"]}] +export function readFixture(path: string): Promise; /** - * @function + * Reads a test fixture. + * + * @param path The path to resolve relative to the fixture base. It will be normalized for the + * operating system. + * + * @returns The file contents as buffer. */ -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] +export function readFixture(path: string): Promise { + return new Promise(() => {}); +} /** - * @callback + * Reads a test fixture. + * + * @param path The path to resolve relative to the fixture base. It will be normalized for the + * operating system. + * + * @returns {void} The file contents as buffer. */ -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] +export function readFixture(path: string); /** - * @function - * @async + * @returns {SomeType} */ -// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] +function quux (path) { + if (true) { + return 5; + } + return 15; +}; /** - * @callback - * @async + * @returns {SomeType} Foo. */ -// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] +const quux = () => new Promise((resolve) => { + resolve(3); +}); /** - * @function + * @returns {SomeType} Foo. */ -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceReturnsWithAsync":true}] +const quux = function () { + return new Promise((resolve) => { + resolve(3); + }); +}; /** - * @callback + * @returns {true} */ -// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceReturnsWithAsync":true}] - -class foo { - get bar() { - return 0; - } -} -// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":false}] - -class foo { - /** @returns zero */ - get bar() { - return 0; - } -} -// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":true}] - -class foo { - /** @returns zero */ - get bar() { - return 0; - } -} -// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":false}] - -class TestClass { - /** - * - */ - constructor() { } -} - -class TestClass { - /** - * @returns A map. - */ - constructor() { - return new Map(); - } -} - -class TestClass { - /** - * - */ - constructor() { } -} -// "jsdoc/require-returns": ["error"|"warn", {"checkConstructors":false}] - -class TestClass { - /** - * - */ - get Test() { } -} - -class TestClass { - /** - * @returns A number. - */ - get Test() { - return 0; +function quux () { + if (true) { + return true; } -} -class TestClass { - /** - * - */ - get Test() { - return 0; - } + throw new Error('Fail'); } -// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":false}] /** - * + * @returns Baz. */ -function quux (foo) { - - return new Promise(function (resolve, reject) { - resolve(); - }); -} +function foo() { + switch (true) { + default: + switch (false) { + default: break; + } + return "baz"; + } +}; /** + * Return a V1 style query identifier. * - */ -function quux (foo) { - - return new Promise(function (resolve, reject) { - setTimeout(() => { - resolve(); - }); - }); + * @param {string} id - The query identifier. + * @returns {string} V1 style query identifier. + */ +function v1QueryId(id) { + switch (id) { + case 'addq': + case 'aliq': + case 'locq': + return id.substring(3); + case 'lost': + return id.substring(4); + default: + return id; + } } /** + * Parses the required header fields for the given SIP message. * + * @param {string} logPrefix - The log prefix. + * @param {string} sipMessage - The SIP message. + * @param {string[]} headers - The header fields to be parsed. + * @returns {object} Object with parsed header fields. */ -function quux (foo) { - - return new Promise(function (resolve, reject) { - foo(); - }); +function parseSipHeaders(logPrefix, sipMessage, headers) { + try { + return esappSip.parseHeaders(sipMessage, headers); + } catch (err) { + logger.error(logPrefix, 'Failed to parse'); + return {}; + } } /** - * + * @returns {true} */ -function quux (foo) { - - return new Promise(function (resolve, reject) { - abc((resolve) => { - resolve(true); - }); - }); +function quux () { + try { + } catch (error) { + } finally { + return true; + } } -/** +/** Returns true. * + * @returns {boolean} true */ -function quux (foo) { - - return new Promise(function (resolve, reject) { - abc(function (resolve) { - resolve(true); - }); - }); +function getTrue() { + try { + return true; + } finally { + console.log('returning...'); + } } /** - * + * Maybe return a boolean. + * @returns {boolean|void} true, or undefined. */ -function quux () { - return new Promise((resolve, reject) => { - if (true) { - resolve(); - } - }); - return; +function maybeTrue() { + if (Math.random() > 0.5) { + return true; + } } /** - * + * @param {AST} astNode + * @returns {AST} */ -function quux () { - return new Promise(); -} +const getTSFunctionComment = function (astNode) { + switch (greatGrandparent.type) { + case 'VariableDeclarator': + if (greatGreatGrandparent.type === 'VariableDeclaration') { + return greatGreatGrandparent; + } + + default: + return astNode; + } +}; + +const f = + /** + * Description. + * + * @returns Result. + */ + () => { + return function () {}; + }; /** * Description. + * + * @returns Result. */ -async function foo() { - return new Promise(resolve => resolve()); +export function f(): string { + return ""; + + interface I {} } /** - * @param ms time in millis + * @param {boolean} bar A fun variable. + * @returns {*} Anything at all! */ -export const sleep = (ms: number) => - new Promise((res) => setTimeout(res, ms)); +function foo( bar ) { + if ( bar ) { + return functionWithUnknownReturnType(); + } +} /** - * @param ms time in millis + * @returns Baz. */ -export const sleep = (ms: number) => { - return new Promise((res) => setTimeout(res, ms)); +function foo() { + switch (true) { + default: + switch (false) { + default: return; + } + return "baz"; + } }; /** - * Reads a test fixture. - * - * @returns The file contents as buffer. - */ -export function readFixture(path: string): Promise; - -/** - * Reads a test fixture. - * - * @returns {void}. + * @returns Baz. */ -export function readFixture(path: string): void; +function foo() { + switch (true) { + default: + switch (false) { + default: return; + } + return "baz"; + } +}; /** - * Reads a test fixture. + * @returns */ -export function readFixture(path: string): void; +const quux = (someVar) => { + if (someVar) { + return true; + } +}; /** - * Reads a test fixture. + * @returns {number} */ -export function readFixture(path: string); +function foo() { + while (true) { + const n = Math.random(); + if (n < 0.5) { + return n; + } + } +} ```` diff --git a/docs/rules/require-returns-description.md b/docs/rules/require-returns-description.md index 0e72282f4..97628b2c5 100644 --- a/docs/rules/require-returns-description.md +++ b/docs/rules/require-returns-description.md @@ -1,64 +1,51 @@ - - -# require-returns-check + + +# require-returns-description -* [Options](#user-content-require-returns-check-options) -* [Context and settings](#user-content-require-returns-check-context-and-settings) -* [Failing examples](#user-content-require-returns-check-failing-examples) -* [Passing examples](#user-content-require-returns-check-passing-examples) +* [Options](#user-content-require-returns-description-options) + * [`contexts`](#user-content-require-returns-description-options-contexts) +* [Context and settings](#user-content-require-returns-description-context-and-settings) +* [Failing examples](#user-content-require-returns-description-failing-examples) +* [Passing examples](#user-content-require-returns-description-passing-examples) -Requires a return statement (or non-`undefined` Promise resolve value) -be present in a -function body if a `@returns` tag (without a `void` or `undefined` type) -is specified in the function's JSDoc comment block. +Requires that the `@returns` tag has a `description` value. The error +will not be reported if the return value is `void` or `undefined` +or if it is `Promise` or `Promise`. -Will also report `@returns {void}` and `@returns {undefined}` if `exemptAsync` -is set to `false` and a non-`undefined` value is returned or a resolved value -is found. Also reports if `@returns {never}` is discovered with a return value. + + +## Options -Will also report if multiple `@returns` tags are present. + + +### contexts - - -## Options +Set this to an array of strings representing the AST context (or an object with +`context` and `comment` properties) where you wish the rule to be applied. +Overrides the default contexts (see below). Set to `"any"` if you want +the rule to apply to any jsdoc block throughout your files (as is necessary +for finding function blocks not attached to a function declaration or +expression, i.e., `@callback` or `@function` (or its aliases `@func` or +`@method`) (including those associated with an `@interface`). -- `exemptGenerators`- Because a generator might be labeled as having a - `IterableIterator` `@returns` value (along with an iterator type - corresponding to the type of any `yield` statements), projects might wish to - leverage `@returns` in generators even without a` return` statement. This - option is therefore `true` by default in `typescript` mode (in "jsdoc" mode, - one might be more likely to take advantage of `@yields`). Set it to `false` - if you wish for a missing `return` to be flagged regardless. -- `exemptAsync` - By default, functions which return a `Promise` that are not - detected as resolving with a non-`undefined` value and `async` functions - (even ones that do not explicitly return a value, as these are returning a - `Promise` implicitly) will be exempted from reporting by this rule. - If you wish to insist that only `Promise`'s which resolve to - non-`undefined` values or `async` functions with explicit `return`'s will - be exempted from reporting (i.e., that `async` functions can be reported - if they lack an explicit (non-`undefined`) `return` when a `@returns` is - present), you can set `exemptAsync` to `false` on the options object. -- `reportMissingReturnForUndefinedTypes` - If `true` and no return or - resolve value is found, this setting will even insist that reporting occur - with `void` or `undefined` (including as an indicated `Promise` type). - Unlike `require-returns`, with this option in the rule, one can - *discourage* the labeling of `undefined` types. Defaults to `false`. +See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) +section of our README for more on the expected format. - - + + ## Context and settings ||| |---|---| -|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| +|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| |Tags|`returns`| |Aliases|`return`| -|Options|`exemptAsync`, `reportMissingReturnForUndefinedTypes`| |Recommended|true| +|Options|`contexts`| - - + + ## Failing examples The following patterns are considered problems: @@ -70,984 +57,125 @@ The following patterns are considered problems: function quux (foo) { } -// Message: JSDoc @returns declaration present but return expression not available in function. +// Message: Missing JSDoc @returns description. /** - * @return + * @returns {string} */ function quux (foo) { } -// Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}} -// Message: JSDoc @return declaration present but return expression not available in function. - -/** - * @returns - */ -const quux = () => {} -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {undefined} Foo. - * @returns {String} Foo. - */ -function quux () { - - return foo; -} -// Message: Found more than one @returns declaration. - -const language = { - /** - * @param {string} name - * @returns {string} - */ - get name() { - this._name = name; - } -} -// Message: JSDoc @returns declaration present but return expression not available in function. - -class Foo { - /** - * @returns {string} - */ - bar () { - } -} -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns - */ -function quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"returns":false}}} -// Message: Unexpected tag `@returns` +// Message: Missing JSDoc @returns description. /** * @returns {string} */ -function f () { - function g() { - return 'foo' - } - - () => { - return 5 - } -} -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {Promise} - */ -async function quux() {} -// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {IterableIterator} - */ -function * quux() {} -// Settings: {"jsdoc":{"mode":"jsdoc"}} -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {IterableIterator} - */ -function * quux() {} -// Settings: {"jsdoc":{"mode":"typescript"}} -// "jsdoc/require-returns-check": ["error"|"warn", {"exemptGenerators":false}] -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {Promise} - */ -function quux() { - return new Promise((resolve, reject) => {}) -} -// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] -// Message: JSDoc @returns declaration present but return expression not available in function. +function quux (foo) { -/** - * @returns {Promise} - */ -function quux() { - return new Promise((resolve, reject) => { - setTimeout(() => { - resolve(); - }); - }) } -// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] -// Message: JSDoc @returns declaration present but return expression not available in function. +// "jsdoc/require-returns-description": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @returns description. /** - * Description. + * @function * @returns {string} */ -async function foo() { - return new Promise(resolve => resolve()); -} -// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] -// Message: JSDoc @returns declaration present but return expression not available in function. +// "jsdoc/require-returns-description": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @returns description. /** - * Description. - * @returns {void} - */ -async function foo() { - return new Promise(resolve => resolve()); -} -// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false,"reportMissingReturnForUndefinedTypes":true}] -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns { void } Foo. - */ -function quux () {} -// "jsdoc/require-returns-check": ["error"|"warn", {"reportMissingReturnForUndefinedTypes":true}] -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {never} Foo. + * @callback + * @returns {string} */ -function quux () { - return undefined; -} -// Message: JSDoc @returns declaration set with "never" but return expression is present in function. +// "jsdoc/require-returns-description": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @returns description. /** - * @returns {never} + * @return */ function quux (foo) { - return foo; -} -// Message: JSDoc @returns declaration set with "never" but return expression is present in function. - -/** - * Reads a test fixture. - * - * @param path The path to resolve relative to the fixture base. It will be normalized for the - * operating system. - * - * @returns The file contents as buffer. - */ -export function readFixture(path: string): void; -// Message: JSDoc @returns declaration present but return expression not available in function. -/** - * Reads a test fixture. - * - * @param path The path to resolve relative to the fixture base. It will be normalized for the - * operating system. - * - * @returns The file contents as buffer. - */ -export function readFixture(path: string); -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {SomeType} - */ -function quux (path) { - if (true) { - return; - } - return 15; -}; -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * Reads a test fixture. - * - * @param path The path to resolve relative to the fixture base. It will be normalized for the - * operating system. - * - * @returns The file contents as buffer. - */ -export function readFixture(path: string): void { - return; -}; -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {true} - */ -function quux () { - if (true) { - return true; - } -} -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {true} - */ -function quux () { - if (true) { - } else { - return; - } -} -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {true} - */ -function quux (someVar) { - switch (someVar) { - case 1: - return true; - case 2: - return; - } } -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {boolean} - */ -const quux = (someVar) => { - if (someVar) { - return true; - } -}; -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {true} - */ -function quux () { - try { - return true; - } catch (error) { - } -} -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {true} - */ -function quux () { - try { - return true; - } catch (error) { - return true; - } finally { - return; - } -} -// Message: JSDoc @returns declaration present but return expression not available in function. +// Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}} +// Message: Missing JSDoc @return description. /** - * @returns {true} + * @returns */ function quux () { - if (true) { - throw new Error('abc'); - } - throw new Error('def'); } -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {SomeType} Baz. - */ -function foo() { - switch (true) { - default: - switch (false) { - default: return; - } - return "baz"; - } -}; -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {SomeType} Baz. - */ -function foo() { - switch (true) { - default: - switch (false) { - default: return; - } - return "baz"; - } -}; -// Message: JSDoc @returns declaration present but return expression not available in function. - -/** - * @returns {number} - */ -function foo() { - let n = 1; - while (n > 0.5) { - n = Math.random(); - if (n < 0.2) { - return n; - } - } -} -// Message: JSDoc @returns declaration present but return expression not available in function. +// Settings: {"jsdoc":{"tagNamePreference":{"returns":false}}} +// Message: Unexpected tag `@returns` ```` - - + + ## Passing examples The following patterns are not considered problems: ````js -/** - * @returns Foo. - */ -function quux () { - - return foo; -} - -/** - * @returns {string} Foo. - */ -function quux () { - - return foo; -} - -/** - * @returns {string} Foo. - */ -function quux () { - - return foo; -} - /** * */ function quux () { -} - -/** - * @returns {SomeType} Foo. - */ -const quux = () => foo; - -/** - * @returns {undefined} Foo. - */ -function quux () {} -/** - * @returns { void } Foo. - */ -function quux () {} - -/** - * @returns {Promise} - */ -async function quux() {} - -/** - * @returns {Promise} - */ -const quux = async function () {} - -/** - * @returns {Promise} - */ -const quux = async () => {} - -/** - * @returns Foo. - * @abstract - */ -function quux () { - throw new Error('must be implemented by subclass!'); -} - -/** - * @returns Foo. - * @virtual - */ -function quux () { - throw new Error('must be implemented by subclass!'); } /** * @returns Foo. - * @constructor */ function quux () { -} - -/** - * @interface - */ -class Foo { - /** - * @returns {string} - */ - bar () { - } -} - -/** - * @record - */ -class Foo { - /** - * @returns {string} - */ - bar () { - } -} -// Settings: {"jsdoc":{"mode":"closure"}} - -/** - * @returns {undefined} Foo. - */ -function quux () { -} - -/** - * @returns {void} Foo. - */ -function quux () { -} -/** - * @returns {void} Foo. - */ -function quux () { - return undefined; } /** - * @returns {never} Foo. - */ -function quux () { -} - -/** - * @returns {void} Foo. - */ -function quux () { - return; -} - -/** - * - */ -function quux () { - return undefined; -} - -/** - * - */ -function quux () { - return; -} - -/** - * @returns {true} - */ -function quux () { - try { - return true; - } catch (err) { - } - return true; -} - -/** - * @returns {true} - */ -function quux () { - try { - } finally { - return true; - } - return true; -} - -/** - * @returns {true} - */ -function quux () { - try { - return true; - } catch (err) { - } - return true; -} - -/** - * @returns {true} - */ -function quux () { - try { - something(); - } catch (err) { - return true; - } - return true; -} - -/** - * @returns {true} - */ -function quux () { - switch (true) { - case 'abc': - return true; - } - return true; -} - -/** - * @returns {true} - */ -function quux () { - switch (true) { - case 'abc': - return true; - } - return true; -} - -/** - * @returns {true} - */ -function quux () { - for (const i of abc) { - return true; - } - return true; -} - -/** - * @returns {true} - */ -function quux () { - for (const a in b) { - return true; - } -} - -/** - * @returns {true} - */ -function quux () { - for (const a of b) { - return true; - } -} - -/** - * @returns {true} - */ -function quux () { - loop: for (const a of b) { - return true; - } -} - -/** - * @returns {true} - */ -function quux () { - for (let i=0; i} - */ -async function quux() { - return 5; -} - -/** - * @returns {Promise} - */ -async function quux() { - return 5; -} -// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] -/** - * @returns {Promise} - */ -function quux() { - return new Promise((resolve, reject) => { - setTimeout(() => { - resolve(true); - }); - }) } -// "jsdoc/require-returns-check": ["error"|"warn", {"exemptAsync":false}] /** - * Description. * @returns {void} */ -async function foo() { - return new Promise(resolve => resolve()); -} -// "jsdoc/require-returns-check": ["error"|"warn", {"reportMissingReturnForUndefinedTypes":true}] - -/** - * @returns { void } Foo. - */ function quux () { - return undefined; -} -// "jsdoc/require-returns-check": ["error"|"warn", {"reportMissingReturnForUndefinedTypes":true}] -/** - * @returns { string } Foo. - */ -function quux () { - return 'abc'; } -// "jsdoc/require-returns-check": ["error"|"warn", {"reportMissingReturnForUndefinedTypes":true}] /** - * @returns {IterableIterator} - */ -function * quux() {} -// Settings: {"jsdoc":{"mode":"typescript"}} - -/** - * @returns {IterableIterator} - */ -function * quux() {} -// Settings: {"jsdoc":{"mode":"jsdoc"}} -// "jsdoc/require-returns-check": ["error"|"warn", {"exemptGenerators":true}] - -/** - * @param {unknown} val - * @returns { asserts val is number } - */ -function assertNumber(val) { - assert(typeof val === 'number'); -} - -/** - * Reads a test fixture. - * - * @param path The path to resolve relative to the fixture base. It will be normalized for the - * operating system. - * - * @returns The file contents as buffer. - */ -export function readFixture(path: string): Promise; - -/** - * Reads a test fixture. - * - * @param path The path to resolve relative to the fixture base. It will be normalized for the - * operating system. - * - * @returns {SomeType} The file contents as buffer. - */ -export function readFixture(path: string): Promise; - -/** - * Reads a test fixture. - * - * @param path The path to resolve relative to the fixture base. It will be normalized for the - * operating system. - * - * @returns The file contents as buffer. - */ -export function readFixture(path: string): Promise { - return new Promise(() => {}); -} - -/** - * Reads a test fixture. - * - * @param path The path to resolve relative to the fixture base. It will be normalized for the - * operating system. - * - * @returns {void} The file contents as buffer. - */ -export function readFixture(path: string); - -/** - * @returns {SomeType} - */ -function quux (path) { - if (true) { - return 5; - } - return 15; -}; - -/** - * @returns {SomeType} Foo. - */ -const quux = () => new Promise((resolve) => { - resolve(3); -}); - -/** - * @returns {SomeType} Foo. - */ -const quux = function () { - return new Promise((resolve) => { - resolve(3); - }); -}; - -/** - * @returns {true} + * @returns {Promise} */ function quux () { - if (true) { - return true; - } - - throw new Error('Fail'); -} - -/** - * @returns Baz. - */ -function foo() { - switch (true) { - default: - switch (false) { - default: break; - } - return "baz"; - } -}; - -/** - * Return a V1 style query identifier. - * - * @param {string} id - The query identifier. - * @returns {string} V1 style query identifier. - */ -function v1QueryId(id) { - switch (id) { - case 'addq': - case 'aliq': - case 'locq': - return id.substring(3); - case 'lost': - return id.substring(4); - default: - return id; - } -} -/** - * Parses the required header fields for the given SIP message. - * - * @param {string} logPrefix - The log prefix. - * @param {string} sipMessage - The SIP message. - * @param {string[]} headers - The header fields to be parsed. - * @returns {object} Object with parsed header fields. - */ -function parseSipHeaders(logPrefix, sipMessage, headers) { - try { - return esappSip.parseHeaders(sipMessage, headers); - } catch (err) { - logger.error(logPrefix, 'Failed to parse'); - return {}; - } } /** - * @returns {true} + * @returns {Promise} */ function quux () { - try { - } catch (error) { - } finally { - return true; - } -} - -/** Returns true. - * - * @returns {boolean} true - */ -function getTrue() { - try { - return true; - } finally { - console.log('returning...'); - } -} - -/** - * Maybe return a boolean. - * @returns {boolean|void} true, or undefined. - */ -function maybeTrue() { - if (Math.random() > 0.5) { - return true; - } -} - -/** - * @param {AST} astNode - * @returns {AST} - */ -const getTSFunctionComment = function (astNode) { - switch (greatGrandparent.type) { - case 'VariableDeclarator': - if (greatGreatGrandparent.type === 'VariableDeclaration') { - return greatGreatGrandparent; - } - - default: - return astNode; - } -}; - -const f = - /** - * Description. - * - * @returns Result. - */ - () => { - return function () {}; - }; - -/** - * Description. - * - * @returns Result. - */ -export function f(): string { - return ""; - interface I {} } /** - * @param {boolean} bar A fun variable. - * @returns {*} Anything at all! - */ -function foo( bar ) { - if ( bar ) { - return functionWithUnknownReturnType(); - } -} - -/** - * @returns Baz. - */ -function foo() { - switch (true) { - default: - switch (false) { - default: return; - } - return "baz"; - } -}; - -/** - * @returns Baz. - */ -function foo() { - switch (true) { - default: - switch (false) { - default: return; - } - return "baz"; - } -}; - -/** + * @function * @returns */ -const quux = (someVar) => { - if (someVar) { - return true; - } -}; /** - * @returns {number} + * @callback + * @returns */ -function foo() { - while (true) { - const n = Math.random(); - if (n < 0.5) { - return n; - } - } -} ```` diff --git a/docs/rules/require-returns-type.md b/docs/rules/require-returns-type.md index 97628b2c5..66077f8f7 100644 --- a/docs/rules/require-returns-type.md +++ b/docs/rules/require-returns-type.md @@ -1,24 +1,22 @@ - - -# require-returns-description + + +# require-returns-type -* [Options](#user-content-require-returns-description-options) - * [`contexts`](#user-content-require-returns-description-options-contexts) -* [Context and settings](#user-content-require-returns-description-context-and-settings) -* [Failing examples](#user-content-require-returns-description-failing-examples) -* [Passing examples](#user-content-require-returns-description-passing-examples) +* [Options](#user-content-require-returns-type-options) + * [`contexts`](#user-content-require-returns-type-options-contexts) +* [Context and settings](#user-content-require-returns-type-context-and-settings) +* [Failing examples](#user-content-require-returns-type-failing-examples) +* [Passing examples](#user-content-require-returns-type-passing-examples) -Requires that the `@returns` tag has a `description` value. The error -will not be reported if the return value is `void` or `undefined` -or if it is `Promise` or `Promise`. +Requires that `@returns` tag has a `type` value (in curly brackets). - - + + ## Options - - + + ### contexts Set this to an array of strings representing the AST context (or an object with @@ -32,8 +30,8 @@ expression, i.e., `@callback` or `@function` (or its aliases `@func` or See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) section of our README for more on the expected format. - - + + ## Context and settings ||| @@ -44,8 +42,8 @@ section of our README for more on the expected format. |Recommended|true| |Options|`contexts`| - - + + ## Failing examples The following patterns are considered problems: @@ -54,50 +52,50 @@ The following patterns are considered problems: /** * @returns */ -function quux (foo) { +function quux () { } -// Message: Missing JSDoc @returns description. +// Message: Missing JSDoc @returns type. /** - * @returns {string} + * @returns Foo. */ -function quux (foo) { +function quux () { } -// Message: Missing JSDoc @returns description. +// Message: Missing JSDoc @returns type. /** - * @returns {string} + * @returns Foo. */ -function quux (foo) { +function quux () { } -// "jsdoc/require-returns-description": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @returns description. +// "jsdoc/require-returns-type": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @returns type. /** * @function - * @returns {string} + * @returns Foo. */ -// "jsdoc/require-returns-description": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @returns description. +// "jsdoc/require-returns-type": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @returns type. /** * @callback - * @returns {string} + * @returns Foo. */ -// "jsdoc/require-returns-description": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @returns description. +// "jsdoc/require-returns-type": ["error"|"warn", {"contexts":["any"]}] +// Message: Missing JSDoc @returns type. /** - * @return + * @return Foo. */ -function quux (foo) { +function quux () { } // Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}} -// Message: Missing JSDoc @return description. +// Message: Missing JSDoc @return type. /** * @returns @@ -111,71 +109,36 @@ function quux () { - - + + ## Passing examples The following patterns are not considered problems: ````js /** - * - */ -function quux () { - -} - -/** - * @returns Foo. - */ -function quux () { - -} - -/** - * @returns Foo. - */ -function quux () { - -} -// "jsdoc/require-returns-description": ["error"|"warn", {"contexts":["any"]}] - -/** - * @returns {undefined} - */ -function quux () { - -} - -/** - * @returns {void} + * @returns {number} */ function quux () { } /** - * @returns {Promise} - */ -function quux () { - -} - -/** - * @returns {Promise} + * @returns {number} */ function quux () { } +// "jsdoc/require-returns-type": ["error"|"warn", {"contexts":["any"]}] /** * @function - * @returns + * @returns Foo. */ /** * @callback - * @returns + * @returns Foo. */ ```` diff --git a/docs/rules/require-returns.md b/docs/rules/require-returns.md index 66077f8f7..9f5a68ac3 100644 --- a/docs/rules/require-returns.md +++ b/docs/rules/require-returns.md @@ -1,101 +1,213 @@ - - -# require-returns-type + + +# require-returns -* [Options](#user-content-require-returns-type-options) - * [`contexts`](#user-content-require-returns-type-options-contexts) -* [Context and settings](#user-content-require-returns-type-context-and-settings) -* [Failing examples](#user-content-require-returns-type-failing-examples) -* [Passing examples](#user-content-require-returns-type-passing-examples) +* [Options](#user-content-require-returns-options) +* [Context and settings](#user-content-require-returns-context-and-settings) +* [Failing examples](#user-content-require-returns-failing-examples) +* [Passing examples](#user-content-require-returns-passing-examples) -Requires that `@returns` tag has a `type` value (in curly brackets). +Requires that return statements are documented. - - -## Options - - - -### contexts +Will also report if multiple `@returns` tags are present. -Set this to an array of strings representing the AST context (or an object with -`context` and `comment` properties) where you wish the rule to be applied. -Overrides the default contexts (see below). Set to `"any"` if you want -the rule to apply to any jsdoc block throughout your files (as is necessary -for finding function blocks not attached to a function declaration or -expression, i.e., `@callback` or `@function` (or its aliases `@func` or -`@method`) (including those associated with an `@interface`). + + +## Options -See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors) -section of our README for more on the expected format. +- `checkConstructors` - A value indicating whether `constructor`s should + be checked for `@returns` tags. Defaults to `false`. +- `checkGetters` - Boolean to determine whether getter methods should + be checked for `@returns` tags. Defaults to `true`. +- `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the + document block avoids the need for a `@returns`. Defaults to an array + with `inheritdoc`. If you set this array, it will overwrite the default, + so be sure to add back `inheritdoc` if you wish its presence to cause + exemption of the rule. +- `forceRequireReturn` - Set to `true` to always insist on + `@returns` documentation regardless of implicit or explicit `return`'s + in the function. May be desired to flag that a project is aware of an + `undefined`/`void` return. Defaults to `false`. +- `forceReturnsWithAsync` - By default `async` functions that do not explicitly + return a value pass this rule as an `async` function will always return a + `Promise`, even if the `Promise` resolves to void. You can force all + `async` functions (including ones with an explicit `Promise` but no + detected non-`undefined` `resolve` value) to require `@return` + documentation by setting `forceReturnsWithAsync` to `true` on the options + object. This may be useful for flagging that there has been consideration + of return type. Defaults to `false`. +- `contexts` - Set this to an array of strings representing the AST context + (or an object with `context` and `comment` properties) where you wish + the rule to be applied. + Overrides the default contexts (see below). Set to `"any"` if you want + the rule to apply to any jsdoc block throughout your files (as is necessary + for finding function blocks not attached to a function declaration or + expression, i.e., `@callback` or `@function` (or its aliases `@func` or + `@method`) (including those associated with an `@interface`). This + rule will only apply on non-default contexts when there is such a tag + present and the `forceRequireReturn` option is set or if the + `forceReturnsWithAsync` option is set with a present `@async` tag + (since we are not checking against the actual `return` values in these + cases). - - + + ## Context and settings -||| -|---|---| -|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| -|Tags|`returns`| -|Aliases|`return`| +| | | +| -------- | ------- | +| Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | +| Tags | `returns` | +| Aliases | `return` | |Recommended|true| -|Options|`contexts`| +| Options | `checkConstructors`, `checkGetters`, `contexts`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync` | +| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | - - + + ## Failing examples The following patterns are considered problems: ````js /** - * @returns + * */ -function quux () { +function quux (foo) { + return foo; } -// Message: Missing JSDoc @returns type. +// Message: Missing JSDoc @returns declaration. /** - * @returns Foo. + * */ -function quux () { +const foo = () => ({ + bar: 'baz' +}) +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +const foo = bar=>({ bar }) +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +const foo = bar => bar.baz() +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux (foo) { + return foo; } -// Message: Missing JSDoc @returns type. +// Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}} +// Message: Missing JSDoc @return declaration. /** - * @returns Foo. + * + */ +async function quux() { +} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +const quux = async function () {} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +const quux = async () => {} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +async function quux () {} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * */ function quux () { +} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. +/** + * + */ +function quux () { } -// "jsdoc/require-returns-type": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @returns type. +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. /** * @function - * @returns Foo. */ -// "jsdoc/require-returns-type": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @returns type. +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. /** * @callback - * @returns Foo. */ -// "jsdoc/require-returns-type": ["error"|"warn", {"contexts":["any"]}] -// Message: Missing JSDoc @returns type. +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. + +const language = { + /** + * @param {string} name + */ + get name() { + return this._name; + } +} +// Message: Missing JSDoc @returns declaration. /** - * @return Foo. + * */ -function quux () { +async function quux () { +} +// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * @function + * @async + */ +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceReturnsWithAsync":true}] +// Message: Missing JSDoc @returns declaration. +/** + * @callback + * @async + */ +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceReturnsWithAsync":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * @returns {undefined} + * @returns {void} + */ +function quux (foo) { + + return foo; } -// Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}} -// Message: Missing JSDoc @return type. +// Message: Found more than one @returns declaration. /** * @returns @@ -105,40 +217,948 @@ function quux () { } // Settings: {"jsdoc":{"tagNamePreference":{"returns":false}}} // Message: Unexpected tag `@returns` + +/** + * @param foo + */ +function quux (foo) { + return 'bar'; +} +// "jsdoc/require-returns": ["error"|"warn", {"exemptedBy":["notPresent"]}] +// Message: Missing JSDoc @returns declaration. + +/** + * @param {array} a + */ +async function foo(a) { + return; +} +// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * @param {array} a + */ +async function foo(a) { + return Promise.all(a); +} +// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] +// Message: Missing JSDoc @returns declaration. + +class foo { + /** gets bar */ + get bar() { + return 0; + } +} +// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":true}] +// Message: Missing JSDoc @returns declaration. + +class TestClass { + /** + * + */ + constructor() { + return new Map(); + } +} +// "jsdoc/require-returns": ["error"|"warn", {"checkConstructors":true}] +// Message: Missing JSDoc @returns declaration. + +class TestClass { + /** + * + */ + get Test() { + return 0; + } +} +// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":true}] +// Message: Missing JSDoc @returns declaration. + +class quux { + /** + * + */ + quux () { + } +} +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux (foo) { + + return new Promise(function (resolve, reject) { + resolve(foo); + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux (foo) { + + return new Promise(function (resolve, reject) { + setTimeout(() => { + resolve(true); + }); + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux (foo) { + + return new Promise(function (resolve, reject) { + foo(resolve); + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + while(true) { + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + do { + resolve(true); + } + while(true) + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + if (true) { + resolve(true); + } + return; + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + if (true) { + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + var a = {}; + return new Promise((resolve, reject) => { + with (a) { + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + var a = {}; + return new Promise((resolve, reject) => { + try { + resolve(true); + } catch (err) {} + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + var a = {}; + return new Promise((resolve, reject) => { + try { + } catch (err) { + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + var a = {}; + return new Promise((resolve, reject) => { + try { + } catch (err) { + } finally { + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + var a = {}; + return new Promise((resolve, reject) => { + switch (a) { + case 'abc': + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + if (true) { + resolve(); + } else { + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + for (let i = 0; i < 5 ; i++) { + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + for (const i of obj) { + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + for (const i in obj) { + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + if (true) { + return; + } else { + resolve(true); + } + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + function a () { + resolve(true); + } + a(); + }); +} +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () { + return new Promise(); +} +// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +async function quux () { + return new Promise(); +} +// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +async function quux () { + return new Promise((resolve, reject) => {}); +} +// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] +// Message: Missing JSDoc @returns declaration. + +export class A { + /** + * Description. + */ + public f(): string { + return ""; + } +} + +export interface B { + /** + * Description. + */ + f(): string; + + /** + * Description. + */ + g: () => string; + + /** + * Description. + */ + h(): void; + + /** + * Description. + */ + i: () => void; +} + +/** + * Description. + */ +export function f(): string { + return ""; +} +// "jsdoc/require-returns": ["error"|"warn", {"contexts":[":not(BlockStatement) > FunctionDeclaration","MethodDefinition","TSMethodSignature","TSPropertySignature > TSTypeAnnotation > TSFunctionType"]}] +// Message: Missing JSDoc @returns declaration. + +/** + * @param ms time in millis + */ +export const sleep = (ms: number) => + new Promise((res) => setTimeout(res, ms)); +// Message: Missing JSDoc @returns declaration. + +/** + * @param ms time in millis + */ +export const sleep = (ms: number) => { + return new Promise((res) => setTimeout(res, ms)); +}; +// Message: Missing JSDoc @returns declaration. + +/** + * Reads a test fixture. + */ +export function readFixture(path: string): Promise; +// Message: Missing JSDoc @returns declaration. + +/** + * Reads a test fixture. + */ +export function readFixture(path: string): void; +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * Reads a test fixture. + */ +export function readFixture(path: string); +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * @param {array} a + */ +async function foo(a) { + return Promise.all(a); +} +// Message: Missing JSDoc @returns declaration. + +/** + * Description. + */ +export default async function demo() { + return true; +} +// Message: Missing JSDoc @returns declaration. ```` - - + + ## Passing examples The following patterns are not considered problems: ````js /** - * @returns {number} + * @returns Foo. + */ +function quux () { + + return foo; +} + +/** + * @returns Foo. + */ +function quux () { + + return foo; +} +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"]}] + +/** + * + */ +function quux () { +} + +/** + * + */ +function quux (bar) { + bar.filter(baz => { + return baz.corge(); + }) +} + +/** + * @returns Array + */ +function quux (bar) { + return bar.filter(baz => { + return baz.corge(); + }) +} + +/** + * @returns Array + */ +const quux = (bar) => bar.filter(({ corge }) => corge()) + +/** + * @inheritdoc + */ +function quux (foo) { +} + +/** + * @override + */ +function quux (foo) { +} + +/** + * @constructor + */ +function quux (foo) { + return true; +} + +/** + * @implements + */ +function quux (foo) { + return true; +} + +/** + * @override + */ +function quux (foo) { + + return foo; +} + +/** + * @class + */ +function quux (foo) { + return true; +} + +/** + * @constructor + */ +function quux (foo) { + +} + +/** + * @returns {object} + */ +function quux () { + + return {a: foo}; +} + +/** + * @returns {object} + */ +const quux = () => ({a: foo}); + +/** + * @returns {object} + */ +const quux = () => { + return {a: foo} +}; + +/** + * @returns {void} + */ +function quux () { +} + +/** + * @returns {void} + */ +const quux = () => { + +} + +/** + * @returns {undefined} + */ +function quux () { +} + +/** + * @returns {undefined} + */ +const quux = () => { + +} + +/** + * + */ +function quux () { +} + +/** + * + */ +const quux = () => { + +} + +class Foo { + /** + * + */ + constructor () { + } +} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] + +const language = { + /** + * @param {string} name + */ + set name(name) { + this._name = name; + } +} + +/** + * @returns {void} */ function quux () { +} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] +/** + * @returns {void} + */ +function quux () { + return undefined; } /** - * @returns {number} + * @returns {void} */ function quux () { + return undefined; +} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] +/** + * @returns {void} + */ +function quux () { + return; } -// "jsdoc/require-returns-type": ["error"|"warn", {"contexts":["any"]}] + +/** + * @returns {void} + */ +function quux () { +} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] + +/** + * @returns {void} + */ +function quux () { + return; +} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] + +/** @type {RequestHandler} */ +function quux (req, res , next) { + return; +} + +/** + * @returns {Promise} + */ +async function quux () { +} +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] + +/** + * @returns {Promise} + */ +async function quux () { +} +// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] + +/** + * + */ +async function quux () {} + +/** + * + */ +const quux = async function () {} + +/** + * + */ +const quux = async () => {} + +/** foo class */ +class foo { + /** foo constructor */ + constructor () { + // => + this.bar = true; + } +} + +export default foo; + +/** + * + */ +function quux () { +} +// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] + +/** + * @type {MyCallback} + */ +function quux () { + +} +// "jsdoc/require-returns": ["error"|"warn", {"exemptedBy":["type"]}] + +/** + * @param {array} a + */ +async function foo(a) { + return; +} + +/** + * + */ +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"]}] + +/** + * @async + */ +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"]}] /** * @function - * @returns Foo. */ +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] /** * @callback - * @returns Foo. */ +// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] + +/** + * @function + * @async + */ +// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] + +/** + * @callback + * @async + */ +// "jsdoc/require-returns": ["error"|"warn", {"forceReturnsWithAsync":true}] + +/** + * @function + */ +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceReturnsWithAsync":true}] + +/** + * @callback + */ +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceReturnsWithAsync":true}] + +class foo { + get bar() { + return 0; + } +} +// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":false}] + +class foo { + /** @returns zero */ + get bar() { + return 0; + } +} +// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":true}] + +class foo { + /** @returns zero */ + get bar() { + return 0; + } +} +// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":false}] + +class TestClass { + /** + * + */ + constructor() { } +} + +class TestClass { + /** + * @returns A map. + */ + constructor() { + return new Map(); + } +} + +class TestClass { + /** + * + */ + constructor() { } +} +// "jsdoc/require-returns": ["error"|"warn", {"checkConstructors":false}] + +class TestClass { + /** + * + */ + get Test() { } +} + +class TestClass { + /** + * @returns A number. + */ + get Test() { + return 0; + } +} + +class TestClass { + /** + * + */ + get Test() { + return 0; + } +} +// "jsdoc/require-returns": ["error"|"warn", {"checkGetters":false}] + +/** + * + */ +function quux (foo) { + + return new Promise(function (resolve, reject) { + resolve(); + }); +} + +/** + * + */ +function quux (foo) { + + return new Promise(function (resolve, reject) { + setTimeout(() => { + resolve(); + }); + }); +} + +/** + * + */ +function quux (foo) { + + return new Promise(function (resolve, reject) { + foo(); + }); +} + +/** + * + */ +function quux (foo) { + + return new Promise(function (resolve, reject) { + abc((resolve) => { + resolve(true); + }); + }); +} + +/** + * + */ +function quux (foo) { + + return new Promise(function (resolve, reject) { + abc(function (resolve) { + resolve(true); + }); + }); +} + +/** + * + */ +function quux () { + return new Promise((resolve, reject) => { + if (true) { + resolve(); + } + }); + return; +} + +/** + * + */ +function quux () { + return new Promise(); +} + +/** + * Description. + */ +async function foo() { + return new Promise(resolve => resolve()); +} + +/** + * @param ms time in millis + */ +export const sleep = (ms: number) => + new Promise((res) => setTimeout(res, ms)); + +/** + * @param ms time in millis + */ +export const sleep = (ms: number) => { + return new Promise((res) => setTimeout(res, ms)); +}; + +/** + * Reads a test fixture. + * + * @returns The file contents as buffer. + */ +export function readFixture(path: string): Promise; + +/** + * Reads a test fixture. + * + * @returns {void}. + */ +export function readFixture(path: string): void; + +/** + * Reads a test fixture. + */ +export function readFixture(path: string): void; + +/** + * Reads a test fixture. + */ +export function readFixture(path: string); ```` diff --git a/docs/rules/require-yields-check.md b/docs/rules/require-yields-check.md index f0c984a4d..2c4f342b3 100644 --- a/docs/rules/require-yields-check.md +++ b/docs/rules/require-yields-check.md @@ -1,326 +1,362 @@ - - -# require-yields + + +# require-yields-check -* [Options](#user-content-require-yields-options) -* [Context and settings](#user-content-require-yields-context-and-settings) -* [Failing examples](#user-content-require-yields-failing-examples) -* [Passing examples](#user-content-require-yields-passing-examples) +* [Options](#user-content-require-yields-check-options) +* [Context and settings](#user-content-require-yields-check-context-and-settings) +* [Failing examples](#user-content-require-yields-check-failing-examples) +* [Passing examples](#user-content-require-yields-check-passing-examples) -Requires that yields are documented. +Ensures that if a `@yields` is present that a `yield` (or `yield` with a +value) is present in the function body (or that if a `@next` is present that +there is a `yield` with a return value present). -Will also report if multiple `@yields` tags are present. +Please also note that JavaScript does allow generators not to have `yield` +(e.g., with just a return or even no explicit return), but if you want to +enforce that all generators (except wholly empty ones) have a `yield` in the +function body, you can use the ESLint +[`require-yield`](https://eslint.org/docs/rules/require-yield) rule. In +conjunction with this, you can also use the `checkGeneratorsOnly` option +as an optimization so that this rule won't need to do its own checking within +function bodies. -See the `next`, `forceRequireNext`, and `nextWithGeneratorTag` options for an -option to expect a non-standard `@next` tag. +Will also report if multiple `@yields` tags are present. - - + + ## Options -- `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the - document block avoids the need for a `@yields`. Defaults to an array - with `inheritdoc`. If you set this array, it will overwrite the default, - so be sure to add back `inheritdoc` if you wish its presence to cause - exemption of the rule. -- `forceRequireYields` - Set to `true` to always insist on - `@yields` documentation for generators even if there are only - expressionless `yield` statements in the function. May be desired to flag - that a project is aware of an `undefined`/`void` yield. Defaults to - `false`. -- `contexts` - Set this to an array of strings representing the AST context - (or an object with `context` and `comment` properties) where you wish - the rule to be applied. - Overrides the default contexts (see below). Set to `"any"` if you want - the rule to apply to any jsdoc block throughout your files (as is necessary - for finding function blocks not attached to a function declaration or - expression, i.e., `@callback` or `@function` (or its aliases `@func` or - `@method`) (including those associated with an `@interface`). This - rule will only apply on non-default contexts when there is such a tag - present and the `forceRequireYields` option is set or if the - `withGeneratorTag` option is set with a present `@generator` tag - (since we are not checking against the actual `yield` values in these - cases). -- `withGeneratorTag` - If a `@generator` tag is present on a block, require - `@yields`/`@yield`. Defaults to `true`. See `contexts` to `any` if you want - to catch `@generator` with `@callback` or such not attached to a function. -- `next` - If `true`, this option will insist that any use of a `yield` return - value (e.g., `const rv = yield;` or `const rv = yield value;`) has a - (non-standard) `@next` tag (in addition to any `@yields` tag) so as to be - able to document the type expected to be supplied into the iterator - (the `Generator` iterator that is returned by the call to the generator - function) to the iterator (e.g., `it.next(value)`). The tag will not be - expected if the generator function body merely has plain `yield;` or - `yield value;` statements without returning the values. Defaults to - `false`. -- `forceRequireNext` - Set to `true` to always insist on - `@next` documentation even if there are no `yield` statements in the - function or none return values. May be desired to flag that a project is - aware of the expected yield return being `undefined`. Defaults to `false`. -- `nextWithGeneratorTag` - If a `@generator` tag is present on a block, require - (non-standard ) `@next` (see `next` option). This will require using `void` - or `undefined` in cases where generators do not use the `next()`-supplied - incoming `yield`-returned value. Defaults to `false`. See `contexts` to - `any` if you want to catch `@generator` with `@callback` or such not - attached to a function. - - - +- `checkGeneratorsOnly` - Avoids checking the function body and merely insists + that all generators have `@yields`. This can be an optimization with the + ESLint `require-yield` rule, as that rule already ensures a `yield` is + present in generators, albeit assuming the generator is not empty). + Defaults to `false`. +- `next` - If `true`, this option will insist that any use of a (non-standard) + `@next` tag (in addition to any `@yields` tag) will be matched by a `yield` + which uses a return value in the body of the generator (e.g., + `const rv = yield;` or `const rv = yield value;`). This (non-standard) + tag is intended to be used to indicate a type and/or description of + the value expected to be supplied by the user when supplied to the iterator + by its `next` method, as with `it.next(value)` (with the iterator being + the `Generator` iterator that is returned by the call to the generator + function). This option will report an error if the generator function body + merely has plain `yield;` or `yield value;` statements without returning + the values. Defaults to `false`. + + + ## Context and settings ||| |---|---| -|Context|Generator functions (`FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled)| +|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| |Tags|`yields`| |Aliases|`yield`| |Recommended|true| -| Options | `contexts`, `exemptedBy`, `withGeneratorTag`, `nextWithGeneratorTag`, `forceRequireYields`, `next` | -| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | +|Options|`checkGeneratorsOnly`| - - + + ## Failing examples The following patterns are considered problems: ````js /** - * + * @yields */ function * quux (foo) { - yield foo; } -// Message: Missing JSDoc @yields declaration. +// Message: JSDoc @yields declaration present but yield expression not available in function. /** * @yields */ -function * quux (foo) { +function quux (foo) { - const retVal = yield foo; } -// "jsdoc/require-yields": ["error"|"warn", {"next":true}] -// Message: Missing JSDoc @next declaration. +// "jsdoc/require-yields-check": ["error"|"warn", {"checkGeneratorsOnly":true}] +// Message: JSDoc @yields declaration present but yield expression not available in function. /** - * @yields + * @next */ -function * quux (foo) { +function quux (foo) { - const retVal = yield; } -// "jsdoc/require-yields": ["error"|"warn", {"next":true}] -// Message: Missing JSDoc @next declaration. +// "jsdoc/require-yields-check": ["error"|"warn", {"checkGeneratorsOnly":true,"next":true}] +// Message: JSDoc @next declaration present but yield expression with return value not available in function. /** - * @yields {void} + * @next {SomeType} */ -function * quux () { +function * quux (foo) { + } -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireNext":true}] -// Message: Missing JSDoc @next declaration. +// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] +// Message: JSDoc @next declaration present but yield expression with return value not available in function. /** - * @yields {void} + * @next {SomeType} */ -function * quux () { +function * quux (foo) { yield; } -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireNext":true}] -// Message: Missing JSDoc @next declaration. +// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] +// Message: JSDoc @next declaration present but yield expression with return value not available in function. /** - * + * @next {SomeType} */ function * quux (foo) { - - const a = yield foo; + yield 5; } -// Message: Missing JSDoc @yields declaration. +// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] +// Message: JSDoc @next declaration present but yield expression with return value not available in function. /** - * + * @yield */ function * quux (foo) { - yield foo; + } // Settings: {"jsdoc":{"tagNamePreference":{"yields":"yield"}}} -// Message: Missing JSDoc @yield declaration. +// Message: JSDoc @yield declaration present but yield expression not available in function. /** - * @yields + * @yield-returns {Something} */ function * quux (foo) { - const val = yield foo; + yield; } // Settings: {"jsdoc":{"tagNamePreference":{"next":"yield-returns"}}} -// "jsdoc/require-yields": ["error"|"warn", {"next":true}] -// Message: Missing JSDoc @yield-returns declaration. +// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] +// Message: JSDoc @yield-returns declaration present but yield expression with return value not available in function. + +/** + * @yields {undefined} Foo. + * @yields {String} Foo. + */ +function * quux () { + + yield foo; +} +// Message: Found more than one @yields declaration. + +class Foo { + /** + * @yields {string} + */ + * bar () { + } +} +// Message: JSDoc @yields declaration present but yield expression not available in function. /** * @yields + */ +function * quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"yields":false}}} +// Message: Unexpected tag `@yields` + +/** * @next */ function * quux () { - const ret = yield 5; + } // Settings: {"jsdoc":{"tagNamePreference":{"next":false}}} -// "jsdoc/require-yields": ["error"|"warn", {"next":true}] +// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] // Message: Unexpected tag `@next` /** - * + * @yields {string} */ -function * quux() { - yield 5; +function * f () { + function * g() { + yield 'foo' + } } -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] -// Message: Missing JSDoc @yields declaration. +// Message: JSDoc @yields declaration present but yield expression not available in function. /** - * + * @yields {Promise} */ -function * quux() { - yield; +async function * quux() {} +// Message: JSDoc @yields declaration present but yield expression not available in function. + +/** + * @yields {Promise} + */ +const quux = async function * () {} +// Message: JSDoc @yields declaration present but yield expression not available in function. + +/** + * @yields {never} Foo. + */ +function * quux () { + yield 5; } -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] -// Message: Missing JSDoc @yields declaration. +// Message: JSDoc @yields declaration set with "never" but yield expression is present in function. /** - * + * @next {never} */ -const quux = async function * () { - yield; +function * quux (foo) { + const a = yield; } -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] -// Message: Missing JSDoc @yields declaration. +// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] +// Message: JSDoc @next declaration set with "never" but yield expression with return value is present in function. +```` + + + + +## Passing examples + +The following patterns are not considered problems: + +````js /** - * + * @yields Foo. */ -async function * quux () { - yield; +function * quux () { + + yield foo; } -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] -// Message: Missing JSDoc @yields declaration. /** - * + * @yields {string} Foo. */ function * quux () { - yield; + + yield foo; } -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"forceRequireYields":true}] -// Message: Missing JSDoc @yields declaration. /** - * @function - * @generator + * @yields {string} Foo. */ -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"forceRequireYields":true}] -// Message: Missing JSDoc @yields declaration. +function * quux () { + + yield foo; +} /** - * @callback - * @generator + * */ -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"forceRequireYields":true}] -// Message: Missing JSDoc @yields declaration. +function * quux () { +} /** - * @yields {undefined} - * @yields {void} + * @yields {undefined} Foo. */ -function * quux (foo) { +function * quux () {} - return foo; -} -// Message: Found more than one @yields declaration. +/** + * @yields { void } Foo. + */ +function quux () {} /** - * @yields + * @yields Foo. + * @abstract */ function * quux () { - + throw new Error('must be implemented by subclass!'); } -// Settings: {"jsdoc":{"tagNamePreference":{"yields":false}}} -// Message: Unexpected tag `@yields` /** - * @param foo + * @yields Foo. + * @virtual */ -function * quux (foo) { - yield 'bar'; +function * quux () { + throw new Error('must be implemented by subclass!'); } -// "jsdoc/require-yields": ["error"|"warn", {"exemptedBy":["notPresent"]}] -// Message: Missing JSDoc @yields declaration. /** - * @param {array} a + * @yields Foo. + * @constructor */ -async function * foo(a) { - return; +function * quux () { } -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] -// Message: Missing JSDoc @yields declaration. /** - * @param {array} a + * @interface */ -async function * foo(a) { - yield Promise.all(a); +class Foo { + /** + * @yields {string} + */ + * bar () { + } } -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] -// Message: Missing JSDoc @yields declaration. -class quux { +/** + * @record + */ +class Foo { /** - * + * @yields {string} */ - * quux () { - yield; + * bar () { } } -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"forceRequireYields":true}] -// Message: Missing JSDoc @yields declaration. +// Settings: {"jsdoc":{"mode":"closure"}} /** - * @param {array} a + * @yields {undefined} Foo. */ -async function * foo(a) { - yield Promise.all(a); +function * quux () { } -// Message: Missing JSDoc @yields declaration. /** - * @generator + * @yields {void} Foo. */ -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"withGeneratorTag":true}] -// Message: Missing JSDoc @yields declaration. +function * quux () { +} /** - * @generator - * @yields + * @yields {never} Foo. + */ +function * quux () { +} + +/** + * @yields {void} Foo. */ -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"nextWithGeneratorTag":true}] -// Message: Missing JSDoc @next declaration. +function * quux () { + yield undefined; +} + +/** + * @yields {void} Foo. + */ +function * quux () { + yield; +} /** * */ function * quux () { - if (true) { - yield; - } - yield true; + yield undefined; } -// Message: Missing JSDoc @yields declaration. /** * */ +function * quux () { + yield; +} + +/** + * @yields {true} + */ function * quux () { try { yield true; @@ -328,10 +364,9 @@ function * quux () { } yield; } -// Message: Missing JSDoc @yields declaration. /** - * + * @yields {true} */ function * quux () { try { @@ -340,10 +375,9 @@ function * quux () { } yield; } -// Message: Missing JSDoc @yields declaration. /** - * + * @yields {true} */ function * quux () { try { @@ -352,10 +386,9 @@ function * quux () { } yield true; } -// Message: Missing JSDoc @yields declaration. /** - * + * @yields {true} */ function * quux () { try { @@ -365,10 +398,9 @@ function * quux () { } yield; } -// Message: Missing JSDoc @yields declaration. /** - * + * @yields {true} */ function * quux () { switch (true) { @@ -377,10 +409,9 @@ function * quux () { } yield; } -// Message: Missing JSDoc @yields declaration. /** - * + * @yields {true} */ function * quux () { switch (true) { @@ -389,10 +420,9 @@ function * quux () { } yield true; } -// Message: Missing JSDoc @yields declaration. /** - * + * @yields {true} */ function * quux () { for (const i of abc) { @@ -400,40 +430,36 @@ function * quux () { } yield; } -// Message: Missing JSDoc @yields declaration. /** - * + * @yields {true} */ function * quux () { for (const a in b) { yield true; } } -// Message: Missing JSDoc @yields declaration. /** - * + * @yields {true} */ function * quux () { for (let i=0; i - -## Passing examples - -The following patterns are not considered problems: - -````js -/** - * @yields Foo. - */ -function * quux () { - - yield foo; -} - -/** - * @yields Foo. - */ -function * quux () { - - yield foo; -} -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"]}] - -/** - * - */ -function * quux () { -} - -/** - * - */ -function * quux () { - yield; -} /** - * - */ -function quux (bar) { - bar.doSomething(function * (baz) { - yield baz.corge(); - }) -} - -/** - * @yields {Array} - */ -function * quux (bar) { - yield bar.doSomething(function * (baz) { - yield baz.corge(); - }) -} - -/** - * @inheritdoc - */ -function * quux (foo) { -} - -/** - * @override - */ -function * quux (foo) { -} - -/** - * @constructor - */ -function * quux (foo) { -} - -/** - * @implements - */ -function * quux (foo) { - yield; -} - -/** - * @override - */ -function * quux (foo) { - - yield foo; -} - -/** - * @class - */ -function * quux (foo) { - yield foo; -} - -/** - * @constructor - */ -function * quux (foo) { -} - -/** - * @yields {object} - */ -function * quux () { - - yield {a: foo}; -} - -/** - * @yields {void} - */ -function * quux () { -} - -/** - * @yields {undefined} - */ -function * quux () { -} - -/** - * - */ -function * quux () { -} - -/** - * @yields {void} - */ -function quux () { -} -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] - -/** - * @yields {void} * @next {void} */ -function * quux () { -} -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireNext":true}] - -/** - * @yields {void} - */ -function * quux () { - yield undefined; -} - -/** - * @yields {void} - */ -function * quux () { - yield undefined; -} -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] - -/** - * @yields {void} - */ -function * quux () { - yield; -} - -/** - * @yields {void} - */ -function * quux () { -} -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] - -/** - * @yields {void} - */ -function * quux () { - yield; -} -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] - -/** @type {SpecialIterator} */ -function * quux () { - yield 5; -} - -/** - * @yields {Something} - */ -async function * quux () { -} -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] - -/** - * - */ -async function * quux () {} - -/** - * - */ -const quux = async function * () {} - -/** - * @type {MyCallback} - */ -function * quux () { - yield; -} -// "jsdoc/require-yields": ["error"|"warn", {"exemptedBy":["type"]}] - -/** - * @param {array} a - */ -async function * foo (a) { - yield; -} - -/** - * - */ -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"]}] - -/** - * @function - */ -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"]}] - -/** - * @function - */ -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] - -/** - * @callback - */ -// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] - -/** - * @generator - */ -// "jsdoc/require-yields": ["error"|"warn", {"withGeneratorTag":true}] - -/** - * @generator - */ -// "jsdoc/require-yields": ["error"|"warn", {"nextWithGeneratorTag":true}] - -/** - * @generator - * @yields - */ -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"withGeneratorTag":true}] - -/** - * @generator - * @yields - * @next - */ -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"nextWithGeneratorTag":true}] - -/** - * @generator - */ -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"withGeneratorTag":false}] - -/** - * @generator - * @yields - */ -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"nextWithGeneratorTag":false}] - -/** - * @yields - */ function * quux (foo) { - const a = yield foo; } +// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] /** - * @yields - * @next + * @next {SomeType} */ function * quux (foo) { - let a = yield; + const a = yield; } -// "jsdoc/require-yields": ["error"|"warn", {"next":true}] +// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] /** - * @yields - * @next + * @next {SomeType} */ function * quux (foo) { - const a = yield foo; -} -// "jsdoc/require-yields": ["error"|"warn", {"next":true}] - -/** - * - */ -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"nextWithGeneratorTag":true}] - -/** - * - */ -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"next":true}] - -/** - * - */ -function quux () {} -// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"next":true}] - -/** - * @yields {void} - */ -function * quux () { - yield; + const a = yield 5; } -// "jsdoc/require-yields": ["error"|"warn", {"next":true}] +// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] /** - * + * @next {never} */ function * quux (foo) { - const a = function * bar () { - yield foo; - } + } +// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] ```` diff --git a/docs/rules/require-yields.md b/docs/rules/require-yields.md index 2c4f342b3..f0c984a4d 100644 --- a/docs/rules/require-yields.md +++ b/docs/rules/require-yields.md @@ -1,361 +1,325 @@ - - -# require-yields-check + + +# require-yields -* [Options](#user-content-require-yields-check-options) -* [Context and settings](#user-content-require-yields-check-context-and-settings) -* [Failing examples](#user-content-require-yields-check-failing-examples) -* [Passing examples](#user-content-require-yields-check-passing-examples) +* [Options](#user-content-require-yields-options) +* [Context and settings](#user-content-require-yields-context-and-settings) +* [Failing examples](#user-content-require-yields-failing-examples) +* [Passing examples](#user-content-require-yields-passing-examples) -Ensures that if a `@yields` is present that a `yield` (or `yield` with a -value) is present in the function body (or that if a `@next` is present that -there is a `yield` with a return value present). - -Please also note that JavaScript does allow generators not to have `yield` -(e.g., with just a return or even no explicit return), but if you want to -enforce that all generators (except wholly empty ones) have a `yield` in the -function body, you can use the ESLint -[`require-yield`](https://eslint.org/docs/rules/require-yield) rule. In -conjunction with this, you can also use the `checkGeneratorsOnly` option -as an optimization so that this rule won't need to do its own checking within -function bodies. +Requires that yields are documented. Will also report if multiple `@yields` tags are present. - - +See the `next`, `forceRequireNext`, and `nextWithGeneratorTag` options for an +option to expect a non-standard `@next` tag. + + + ## Options -- `checkGeneratorsOnly` - Avoids checking the function body and merely insists - that all generators have `@yields`. This can be an optimization with the - ESLint `require-yield` rule, as that rule already ensures a `yield` is - present in generators, albeit assuming the generator is not empty). - Defaults to `false`. -- `next` - If `true`, this option will insist that any use of a (non-standard) - `@next` tag (in addition to any `@yields` tag) will be matched by a `yield` - which uses a return value in the body of the generator (e.g., - `const rv = yield;` or `const rv = yield value;`). This (non-standard) - tag is intended to be used to indicate a type and/or description of - the value expected to be supplied by the user when supplied to the iterator - by its `next` method, as with `it.next(value)` (with the iterator being - the `Generator` iterator that is returned by the call to the generator - function). This option will report an error if the generator function body - merely has plain `yield;` or `yield value;` statements without returning - the values. Defaults to `false`. - - - +- `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the + document block avoids the need for a `@yields`. Defaults to an array + with `inheritdoc`. If you set this array, it will overwrite the default, + so be sure to add back `inheritdoc` if you wish its presence to cause + exemption of the rule. +- `forceRequireYields` - Set to `true` to always insist on + `@yields` documentation for generators even if there are only + expressionless `yield` statements in the function. May be desired to flag + that a project is aware of an `undefined`/`void` yield. Defaults to + `false`. +- `contexts` - Set this to an array of strings representing the AST context + (or an object with `context` and `comment` properties) where you wish + the rule to be applied. + Overrides the default contexts (see below). Set to `"any"` if you want + the rule to apply to any jsdoc block throughout your files (as is necessary + for finding function blocks not attached to a function declaration or + expression, i.e., `@callback` or `@function` (or its aliases `@func` or + `@method`) (including those associated with an `@interface`). This + rule will only apply on non-default contexts when there is such a tag + present and the `forceRequireYields` option is set or if the + `withGeneratorTag` option is set with a present `@generator` tag + (since we are not checking against the actual `yield` values in these + cases). +- `withGeneratorTag` - If a `@generator` tag is present on a block, require + `@yields`/`@yield`. Defaults to `true`. See `contexts` to `any` if you want + to catch `@generator` with `@callback` or such not attached to a function. +- `next` - If `true`, this option will insist that any use of a `yield` return + value (e.g., `const rv = yield;` or `const rv = yield value;`) has a + (non-standard) `@next` tag (in addition to any `@yields` tag) so as to be + able to document the type expected to be supplied into the iterator + (the `Generator` iterator that is returned by the call to the generator + function) to the iterator (e.g., `it.next(value)`). The tag will not be + expected if the generator function body merely has plain `yield;` or + `yield value;` statements without returning the values. Defaults to + `false`. +- `forceRequireNext` - Set to `true` to always insist on + `@next` documentation even if there are no `yield` statements in the + function or none return values. May be desired to flag that a project is + aware of the expected yield return being `undefined`. Defaults to `false`. +- `nextWithGeneratorTag` - If a `@generator` tag is present on a block, require + (non-standard ) `@next` (see `next` option). This will require using `void` + or `undefined` in cases where generators do not use the `next()`-supplied + incoming `yield`-returned value. Defaults to `false`. See `contexts` to + `any` if you want to catch `@generator` with `@callback` or such not + attached to a function. + + + ## Context and settings ||| |---|---| -|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| +|Context|Generator functions (`FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled)| |Tags|`yields`| |Aliases|`yield`| |Recommended|true| -|Options|`checkGeneratorsOnly`| +| Options | `contexts`, `exemptedBy`, `withGeneratorTag`, `nextWithGeneratorTag`, `forceRequireYields`, `next` | +| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | - - + + ## Failing examples The following patterns are considered problems: ````js /** - * @yields + * */ function * quux (foo) { + yield foo; } -// Message: JSDoc @yields declaration present but yield expression not available in function. +// Message: Missing JSDoc @yields declaration. /** * @yields */ -function quux (foo) { +function * quux (foo) { + const retVal = yield foo; } -// "jsdoc/require-yields-check": ["error"|"warn", {"checkGeneratorsOnly":true}] -// Message: JSDoc @yields declaration present but yield expression not available in function. +// "jsdoc/require-yields": ["error"|"warn", {"next":true}] +// Message: Missing JSDoc @next declaration. /** - * @next + * @yields */ -function quux (foo) { +function * quux (foo) { + const retVal = yield; } -// "jsdoc/require-yields-check": ["error"|"warn", {"checkGeneratorsOnly":true,"next":true}] -// Message: JSDoc @next declaration present but yield expression with return value not available in function. +// "jsdoc/require-yields": ["error"|"warn", {"next":true}] +// Message: Missing JSDoc @next declaration. /** - * @next {SomeType} + * @yields {void} */ -function * quux (foo) { - +function * quux () { } -// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] -// Message: JSDoc @next declaration present but yield expression with return value not available in function. +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireNext":true}] +// Message: Missing JSDoc @next declaration. /** - * @next {SomeType} + * @yields {void} */ -function * quux (foo) { +function * quux () { yield; } -// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] -// Message: JSDoc @next declaration present but yield expression with return value not available in function. +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireNext":true}] +// Message: Missing JSDoc @next declaration. /** - * @next {SomeType} + * */ function * quux (foo) { - yield 5; + + const a = yield foo; } -// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] -// Message: JSDoc @next declaration present but yield expression with return value not available in function. +// Message: Missing JSDoc @yields declaration. /** - * @yield + * */ function * quux (foo) { - + yield foo; } // Settings: {"jsdoc":{"tagNamePreference":{"yields":"yield"}}} -// Message: JSDoc @yield declaration present but yield expression not available in function. +// Message: Missing JSDoc @yield declaration. /** - * @yield-returns {Something} + * @yields */ function * quux (foo) { - yield; + const val = yield foo; } // Settings: {"jsdoc":{"tagNamePreference":{"next":"yield-returns"}}} -// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] -// Message: JSDoc @yield-returns declaration present but yield expression with return value not available in function. - -/** - * @yields {undefined} Foo. - * @yields {String} Foo. - */ -function * quux () { - - yield foo; -} -// Message: Found more than one @yields declaration. - -class Foo { - /** - * @yields {string} - */ - * bar () { - } -} -// Message: JSDoc @yields declaration present but yield expression not available in function. +// "jsdoc/require-yields": ["error"|"warn", {"next":true}] +// Message: Missing JSDoc @yield-returns declaration. /** * @yields - */ -function * quux () { - -} -// Settings: {"jsdoc":{"tagNamePreference":{"yields":false}}} -// Message: Unexpected tag `@yields` - -/** * @next */ function * quux () { - + const ret = yield 5; } // Settings: {"jsdoc":{"tagNamePreference":{"next":false}}} -// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] +// "jsdoc/require-yields": ["error"|"warn", {"next":true}] // Message: Unexpected tag `@next` /** - * @yields {string} - */ -function * f () { - function * g() { - yield 'foo' - } -} -// Message: JSDoc @yields declaration present but yield expression not available in function. - -/** - * @yields {Promise} - */ -async function * quux() {} -// Message: JSDoc @yields declaration present but yield expression not available in function. - -/** - * @yields {Promise} - */ -const quux = async function * () {} -// Message: JSDoc @yields declaration present but yield expression not available in function. - -/** - * @yields {never} Foo. + * */ -function * quux () { +function * quux() { yield 5; } -// Message: JSDoc @yields declaration set with "never" but yield expression is present in function. +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] +// Message: Missing JSDoc @yields declaration. /** - * @next {never} - */ -function * quux (foo) { - const a = yield; -} -// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] -// Message: JSDoc @next declaration set with "never" but yield expression with return value is present in function. -```` - - - - - -## Passing examples - -The following patterns are not considered problems: - -````js -/** - * @yields Foo. + * */ -function * quux () { - - yield foo; +function * quux() { + yield; } +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] +// Message: Missing JSDoc @yields declaration. /** - * @yields {string} Foo. + * */ -function * quux () { - - yield foo; +const quux = async function * () { + yield; } +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] +// Message: Missing JSDoc @yields declaration. /** - * @yields {string} Foo. + * */ -function * quux () { - - yield foo; +async function * quux () { + yield; } +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] +// Message: Missing JSDoc @yields declaration. /** * */ function * quux () { + yield; } +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"forceRequireYields":true}] +// Message: Missing JSDoc @yields declaration. /** - * @yields {undefined} Foo. + * @function + * @generator */ -function * quux () {} +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"forceRequireYields":true}] +// Message: Missing JSDoc @yields declaration. /** - * @yields { void } Foo. + * @callback + * @generator */ -function quux () {} +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"forceRequireYields":true}] +// Message: Missing JSDoc @yields declaration. /** - * @yields Foo. - * @abstract + * @yields {undefined} + * @yields {void} */ -function * quux () { - throw new Error('must be implemented by subclass!'); -} +function * quux (foo) { -/** - * @yields Foo. - * @virtual - */ -function * quux () { - throw new Error('must be implemented by subclass!'); + return foo; } +// Message: Found more than one @yields declaration. /** - * @yields Foo. - * @constructor + * @yields */ function * quux () { -} -/** - * @interface - */ -class Foo { - /** - * @yields {string} - */ - * bar () { - } } +// Settings: {"jsdoc":{"tagNamePreference":{"yields":false}}} +// Message: Unexpected tag `@yields` /** - * @record + * @param foo */ -class Foo { - /** - * @yields {string} - */ - * bar () { - } +function * quux (foo) { + yield 'bar'; } -// Settings: {"jsdoc":{"mode":"closure"}} +// "jsdoc/require-yields": ["error"|"warn", {"exemptedBy":["notPresent"]}] +// Message: Missing JSDoc @yields declaration. /** - * @yields {undefined} Foo. + * @param {array} a */ -function * quux () { +async function * foo(a) { + return; } +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] +// Message: Missing JSDoc @yields declaration. /** - * @yields {void} Foo. + * @param {array} a */ -function * quux () { +async function * foo(a) { + yield Promise.all(a); } +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] +// Message: Missing JSDoc @yields declaration. -/** - * @yields {never} Foo. - */ -function * quux () { +class quux { + /** + * + */ + * quux () { + yield; + } } +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"forceRequireYields":true}] +// Message: Missing JSDoc @yields declaration. /** - * @yields {void} Foo. + * @param {array} a */ -function * quux () { - yield undefined; +async function * foo(a) { + yield Promise.all(a); } +// Message: Missing JSDoc @yields declaration. /** - * @yields {void} Foo. + * @generator */ -function * quux () { - yield; -} +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"withGeneratorTag":true}] +// Message: Missing JSDoc @yields declaration. /** - * + * @generator + * @yields */ -function * quux () { - yield undefined; -} +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"nextWithGeneratorTag":true}] +// Message: Missing JSDoc @next declaration. /** * */ function * quux () { - yield; + if (true) { + yield; + } + yield true; } +// Message: Missing JSDoc @yields declaration. /** - * @yields {true} + * */ function * quux () { try { @@ -364,9 +328,10 @@ function * quux () { } yield; } +// Message: Missing JSDoc @yields declaration. /** - * @yields {true} + * */ function * quux () { try { @@ -375,9 +340,10 @@ function * quux () { } yield; } +// Message: Missing JSDoc @yields declaration. /** - * @yields {true} + * */ function * quux () { try { @@ -386,9 +352,10 @@ function * quux () { } yield true; } +// Message: Missing JSDoc @yields declaration. /** - * @yields {true} + * */ function * quux () { try { @@ -398,9 +365,10 @@ function * quux () { } yield; } +// Message: Missing JSDoc @yields declaration. /** - * @yields {true} + * */ function * quux () { switch (true) { @@ -409,9 +377,10 @@ function * quux () { } yield; } +// Message: Missing JSDoc @yields declaration. /** - * @yields {true} + * */ function * quux () { switch (true) { @@ -420,9 +389,10 @@ function * quux () { } yield true; } +// Message: Missing JSDoc @yields declaration. /** - * @yields {true} + * */ function * quux () { for (const i of abc) { @@ -430,36 +400,40 @@ function * quux () { } yield; } +// Message: Missing JSDoc @yields declaration. /** - * @yields {true} + * */ function * quux () { for (const a in b) { yield true; } } +// Message: Missing JSDoc @yields declaration. /** - * @yields {true} + * */ function * quux () { for (let i=0; i + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @yields Foo. + */ +function * quux () { + + yield foo; +} /** - * @next {void} + * @yields Foo. + */ +function * quux () { + + yield foo; +} +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"]}] + +/** + * + */ +function * quux () { +} + +/** + * + */ +function * quux () { + yield; +} + +/** + * + */ +function quux (bar) { + bar.doSomething(function * (baz) { + yield baz.corge(); + }) +} + +/** + * @yields {Array} + */ +function * quux (bar) { + yield bar.doSomething(function * (baz) { + yield baz.corge(); + }) +} + +/** + * @inheritdoc */ function * quux (foo) { +} + +/** + * @override + */ +function * quux (foo) { +} + +/** + * @constructor + */ +function * quux (foo) { +} + +/** + * @implements + */ +function * quux (foo) { + yield; +} + +/** + * @override + */ +function * quux (foo) { + + yield foo; +} + +/** + * @class + */ +function * quux (foo) { + yield foo; +} + +/** + * @constructor + */ +function * quux (foo) { +} + +/** + * @yields {object} + */ +function * quux () { + + yield {a: foo}; +} + +/** + * @yields {void} + */ +function * quux () { +} + +/** + * @yields {undefined} + */ +function * quux () { +} + +/** + * + */ +function * quux () { +} + +/** + * @yields {void} + */ +function quux () { +} +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] + +/** + * @yields {void} + * @next {void} + */ +function * quux () { +} +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireNext":true}] + +/** + * @yields {void} + */ +function * quux () { + yield undefined; +} + +/** + * @yields {void} + */ +function * quux () { + yield undefined; +} +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] + +/** + * @yields {void} + */ +function * quux () { + yield; +} + +/** + * @yields {void} + */ +function * quux () { +} +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] + +/** + * @yields {void} + */ +function * quux () { + yield; +} +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] +/** @type {SpecialIterator} */ +function * quux () { + yield 5; } -// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] /** - * @next {SomeType} + * @yields {Something} + */ +async function * quux () { +} +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] + +/** + * + */ +async function * quux () {} + +/** + * + */ +const quux = async function * () {} + +/** + * @type {MyCallback} + */ +function * quux () { + yield; +} +// "jsdoc/require-yields": ["error"|"warn", {"exemptedBy":["type"]}] + +/** + * @param {array} a + */ +async function * foo (a) { + yield; +} + +/** + * + */ +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"]}] + +/** + * @function + */ +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"]}] + +/** + * @function + */ +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] + +/** + * @callback + */ +// "jsdoc/require-yields": ["error"|"warn", {"forceRequireYields":true}] + +/** + * @generator + */ +// "jsdoc/require-yields": ["error"|"warn", {"withGeneratorTag":true}] + +/** + * @generator + */ +// "jsdoc/require-yields": ["error"|"warn", {"nextWithGeneratorTag":true}] + +/** + * @generator + * @yields + */ +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"withGeneratorTag":true}] + +/** + * @generator + * @yields + * @next + */ +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"nextWithGeneratorTag":true}] + +/** + * @generator + */ +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"withGeneratorTag":false}] + +/** + * @generator + * @yields + */ +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"nextWithGeneratorTag":false}] + +/** + * @yields */ function * quux (foo) { - const a = yield; + + const a = yield foo; } -// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] /** - * @next {SomeType} + * @yields + * @next */ function * quux (foo) { - const a = yield 5; + let a = yield; } -// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] +// "jsdoc/require-yields": ["error"|"warn", {"next":true}] /** - * @next {never} + * @yields + * @next */ function * quux (foo) { + const a = yield foo; +} +// "jsdoc/require-yields": ["error"|"warn", {"next":true}] +/** + * + */ +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"nextWithGeneratorTag":true}] + +/** + * + */ +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"next":true}] + +/** + * + */ +function quux () {} +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["any"],"next":true}] + +/** + * @yields {void} + */ +function * quux () { + yield; +} +// "jsdoc/require-yields": ["error"|"warn", {"next":true}] + +/** + * + */ +function * quux (foo) { + const a = function * bar () { + yield foo; + } } -// "jsdoc/require-yields-check": ["error"|"warn", {"next":true}] ```` diff --git a/src/bin/generateDocs.js b/src/bin/generateDocs.js index a815ffd4f..603d00420 100644 --- a/src/bin/generateDocs.js +++ b/src/bin/generateDocs.js @@ -210,6 +210,10 @@ const getDocPaths = () => { if (stat.isDirectory()) { return fs.readdirSync(innerBasePath).map((innerDocFile) => { return path.join(writeInnerBasePath, innerDocFile); + }).sort((a, b) => { + const newA = a.replace(/\.md/u, ''); + const newB = b.replace(/\.md/u, ''); + return newA < newB ? -1 : (newB > newA ? 1 : 0); }); } From b9372c6c92a89322f8d6ece01245cde4c85f2ff3 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 14 May 2023 05:47:59 -0700 Subject: [PATCH 085/273] refactor: ts work --- .README/settings.md | 2 +- docs/rules/check-tag-names.md | 9 + docs/settings.md | 2 +- package.json | 2 +- pnpm-lock.yaml | 342 ++++++++++++------------- src/alignTransform.js | 57 +++-- src/exportParser.js | 126 ++++++++- src/iterateJsdoc.js | 339 +++++++++++++++++------- src/jsdocUtils.js | 142 ++++++---- src/rules/checkExamples.js | 5 +- src/rules/checkPropertyNames.js | 4 +- src/rules/checkTagNames.js | 4 +- src/rules/checkTypes.js | 153 +++++++---- src/rules/informativeDocs.js | 53 +++- src/rules/matchName.js | 4 +- src/rules/multilineBlocks.js | 14 +- src/rules/noBadBlocks.js | 8 +- src/rules/noMissingSyntax.js | 18 +- src/rules/noRestrictedSyntax.js | 31 ++- src/rules/noUndefinedTypes.js | 8 +- src/rules/requireDescription.js | 6 +- src/rules/requireFileOverview.js | 6 +- src/rules/requireJsdoc.js | 80 ++++-- src/rules/requireParam.js | 48 +++- src/rules/requireProperty.js | 4 +- src/rules/requireReturns.js | 4 +- src/rules/requireReturnsCheck.js | 7 +- src/rules/requireThrows.js | 4 +- src/rules/requireYields.js | 4 +- src/rules/requireYieldsCheck.js | 4 +- src/utils/hasReturnValue.js | 105 +++++--- test/rules/assertions/checkTagNames.js | 25 ++ test/rules/index.js | 2 + 33 files changed, 1115 insertions(+), 507 deletions(-) diff --git a/.README/settings.md b/.README/settings.md index 4e7e9c892..724fc1468 100644 --- a/.README/settings.md +++ b/.README/settings.md @@ -320,7 +320,7 @@ values are objects with the following optional properties: is required (not just that if present, it is a valid type). You might use this with `@throws` or `@typedef` which might otherwise normally have their types optional. See the type groups 3-5 above. - - `"typeOrName"` - Must have either type (e.g., `@throws {aType}`) or + - `"typeOrNameRequired"` - Must have either type (e.g., `@throws {aType}`) or name (`@throws Some text`); does not require that both exist but disallows just an empty tag. diff --git a/docs/rules/check-tag-names.md b/docs/rules/check-tag-names.md index b6c7282d9..a38e25a26 100644 --- a/docs/rules/check-tag-names.md +++ b/docs/rules/check-tag-names.md @@ -764,6 +764,15 @@ function Test() { */ // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] // Message: '@typedef' is redundant when using a type system. + +/** + * @todo + */ +function quux () { + +} +// Settings: {"jsdoc":{"tagNamePreference":{"todo":{"message":"Please don't use todo"}}}} +// Message: Please don't use todo ```` diff --git a/docs/settings.md b/docs/settings.md index d87bae090..47f0f7476 100644 --- a/docs/settings.md +++ b/docs/settings.md @@ -347,7 +347,7 @@ values are objects with the following optional properties: is required (not just that if present, it is a valid type). You might use this with `@throws` or `@typedef` which might otherwise normally have their types optional. See the type groups 3-5 above. - - `"typeOrName"` - Must have either type (e.g., `@throws {aType}`) or + - `"typeOrNameRequired"` - Must have either type (e.g., `@throws {aType}`) or name (`@throws Some text`); does not require that both exist but disallows just an empty tag. diff --git a/package.json b/package.json index 3b27f4c7a..1b31c3140 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "@types/estree": "^1.0.1", "@types/lodash.defaultsdeep": "^4.6.7", "@types/mocha": "^10.0.1", - "@types/node": "^20.1.3", + "@types/node": "^20.1.4", "@types/semver": "^7.5.0", "@types/spdx-expression-parse": "^3.0.2", "@typescript-eslint/parser": "^5.59.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f9ba68227..dc8f6f160 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -65,7 +65,7 @@ devDependencies: version: 8.0.7(semantic-release@21.0.2) '@semantic-release/npm': specifier: ^10.0.3 - version: 10.0.3(semantic-release@21.0.2) + version: 10.0.3(semantic-release@21.0.2)(typescript@5.0.4) '@types/chai': specifier: ^4.3.5 version: 4.3.5 @@ -88,8 +88,8 @@ devDependencies: specifier: ^10.0.1 version: 10.0.1 '@types/node': - specifier: ^20.1.3 - version: 20.1.3 + specifier: ^20.1.4 + version: 20.1.4 '@types/semver': specifier: ^7.5.0 version: 7.5.0 @@ -122,7 +122,7 @@ devDependencies: version: 8.39.0 eslint-config-canonical: specifier: ~33.0.1 - version: 33.0.1(@babel/core@7.21.8)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.1.3)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4) + version: 33.0.1(@babel/core@7.21.8)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.1.4)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4) gitdown: specifier: ^3.1.5 version: 3.1.5 @@ -155,7 +155,7 @@ devDependencies: version: 5.0.0 semantic-release: specifier: ^21.0.2 - version: 21.0.2 + version: 21.0.2(typescript@5.0.4) typescript: specifier: ^5.0.4 version: 5.0.4 @@ -174,7 +174,7 @@ packages: resolution: {integrity: sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==} engines: {node: '>=14'} dependencies: - node-fetch: 2.6.9 + node-fetch: 2.6.11 transitivePeerDependencies: - encoding dev: true @@ -515,7 +515,7 @@ packages: '@babel/core': 7.21.8 '@babel/register': 7.21.0(@babel/core@7.21.8) commander: 4.1.1 - core-js: 3.30.1 + core-js: 3.30.2 node-environment-flags: 1.0.6 regenerator-runtime: 0.13.11 v8flags: 3.2.0 @@ -1370,7 +1370,7 @@ packages: babel-plugin-polyfill-corejs2: 0.3.3(@babel/core@7.21.8) babel-plugin-polyfill-corejs3: 0.6.0(@babel/core@7.21.8) babel-plugin-polyfill-regenerator: 0.4.1(@babel/core@7.21.8) - core-js-compat: 3.30.1 + core-js-compat: 3.30.2 semver: 6.3.0 transitivePeerDependencies: - supports-color @@ -1540,7 +1540,7 @@ packages: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true - /@graphql-eslint/eslint-plugin@3.18.0(@babel/core@7.21.8)(@types/node@20.1.3)(graphql@16.6.0): + /@graphql-eslint/eslint-plugin@3.18.0(@babel/core@7.21.8)(@types/node@20.1.4)(graphql@16.6.0): resolution: {integrity: sha512-riEEfRycc0+pWxcEWqHi8woRxzg1xZqAfh9DRACJUR7bTN8dmc1N04i7+pvW4sevClUFYC2wuL1Vtr+DwzXLUg==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -1553,7 +1553,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.2.12 graphql: 16.6.0 - graphql-config: 4.5.0(@types/node@20.1.3)(graphql@16.6.0) + graphql-config: 4.5.0(@types/node@20.1.4)(graphql@16.6.0) graphql-depth-limit: 1.1.0(graphql@16.6.0) lodash.lowercase: 4.3.0 tslib: 2.5.0 @@ -1628,8 +1628,8 @@ packages: - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.9(@types/node@20.1.3)(graphql@16.6.0): - resolution: {integrity: sha512-tNzMt5qc1ptlHKfpSv9wVBVKCZ7gks6Yb/JcYJluxZIT4qRV+TtOFjpptfBU63usgrGVOVcGjzWc/mt7KhmmpQ==} + /@graphql-tools/executor-http@0.1.10(@types/node@20.1.4)(graphql@16.6.0): + resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: @@ -1639,7 +1639,7 @@ packages: dset: 3.1.2 extract-files: 11.0.0 graphql: 16.6.0 - meros: 1.2.1(@types/node@20.1.3) + meros: 1.2.1(@types/node@20.1.4) tslib: 2.5.0 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -1740,8 +1740,8 @@ packages: tslib: 2.5.0 dev: true - /@graphql-tools/merge@8.4.1(graphql@16.6.0): - resolution: {integrity: sha512-hssnPpZ818mxgl5+GfyOOSnnflAxiaTn1A1AojZcIbh4J52sS1Q0gSuBR5VrnUDjuxiqoCotpXdAQl+K+U6KLQ==} + /@graphql-tools/merge@8.4.2(graphql@16.6.0): + resolution: {integrity: sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: @@ -1755,14 +1755,14 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/merge': 8.4.1(graphql@16.6.0) + '@graphql-tools/merge': 8.4.2(graphql@16.6.0) '@graphql-tools/utils': 9.2.1(graphql@16.6.0) graphql: 16.6.0 tslib: 2.5.0 value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.1.3)(graphql@16.6.0): + /@graphql-tools/url-loader@7.17.18(@types/node@20.1.4)(graphql@16.6.0): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1770,7 +1770,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 9.0.35(graphql@16.6.0) '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.6.0) - '@graphql-tools/executor-http': 0.1.9(@types/node@20.1.3)(graphql@16.6.0) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.1.4)(graphql@16.6.0) '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.6.0) '@graphql-tools/utils': 9.2.1(graphql@16.6.0) '@graphql-tools/wrap': 9.4.2(graphql@16.6.0) @@ -1974,7 +1974,7 @@ packages: resolution: {integrity: sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==} engines: {node: '>= 14'} dependencies: - '@octokit/types': 9.2.0 + '@octokit/types': 9.2.2 dev: true /@octokit/core@4.2.0: @@ -1985,7 +1985,7 @@ packages: '@octokit/graphql': 5.0.5 '@octokit/request': 6.2.3 '@octokit/request-error': 3.0.3 - '@octokit/types': 9.2.0 + '@octokit/types': 9.2.2 before-after-hook: 2.2.3 universal-user-agent: 6.0.0 transitivePeerDependencies: @@ -1996,7 +1996,7 @@ packages: resolution: {integrity: sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==} engines: {node: '>= 14'} dependencies: - '@octokit/types': 9.2.0 + '@octokit/types': 9.2.2 is-plain-object: 5.0.0 universal-user-agent: 6.0.0 dev: true @@ -2006,24 +2006,24 @@ packages: engines: {node: '>= 14'} dependencies: '@octokit/request': 6.2.3 - '@octokit/types': 9.2.0 + '@octokit/types': 9.2.2 universal-user-agent: 6.0.0 transitivePeerDependencies: - encoding dev: true - /@octokit/openapi-types@17.1.0: - resolution: {integrity: sha512-rnI26BAITDZTo5vqFOmA7oX4xRd18rO+gcK4MiTpJmsRMxAw0JmevNjPsjpry1bb9SVNo56P/0kbiyXXa4QluA==} + /@octokit/openapi-types@17.1.2: + resolution: {integrity: sha512-OaS7Ol4Y+U50PbejfzQflGWRMxO04nYWO5ZBv6JerqMKE2WS/tI9VoVDDPXHBlRMGG2fOdKwtVGlFfc7AVIstw==} dev: true - /@octokit/plugin-paginate-rest@6.0.0(@octokit/core@4.2.0): - resolution: {integrity: sha512-Sq5VU1PfT6/JyuXPyt04KZNVsFOSBaYOAq2QRZUwzVlI10KFvcbUo8lR258AAQL1Et60b0WuVik+zOWKLuDZxw==} + /@octokit/plugin-paginate-rest@6.1.0(@octokit/core@4.2.0): + resolution: {integrity: sha512-5T4iXjJdYCVA1rdWS1C+uZV9AvtZY9QgTG74kFiSFVj94dZXowyi/YK8f4SGjZaL69jZthGlBaDKRdCMCF9log==} engines: {node: '>= 14'} peerDependencies: '@octokit/core': '>=4' dependencies: '@octokit/core': 4.2.0 - '@octokit/types': 9.2.0 + '@octokit/types': 9.2.2 dev: true /@octokit/plugin-request-log@1.0.4(@octokit/core@4.2.0): @@ -2034,14 +2034,14 @@ packages: '@octokit/core': 4.2.0 dev: true - /@octokit/plugin-rest-endpoint-methods@7.0.1(@octokit/core@4.2.0): - resolution: {integrity: sha512-pnCaLwZBudK5xCdrR823xHGNgqOzRnJ/mpC/76YPpNP7DybdsJtP7mdOwh+wYZxK5jqeQuhu59ogMI4NRlBUvA==} + /@octokit/plugin-rest-endpoint-methods@7.1.0(@octokit/core@4.2.0): + resolution: {integrity: sha512-SWwz/hc47GaKJR6BlJI4WIVRodbAFRvrR0QRPSoPMs7krb7anYPML3psg+ThEz/kcwOdSNh/oA8qThi/Wvs4Fw==} engines: {node: '>= 14'} peerDependencies: '@octokit/core': '>=3' dependencies: '@octokit/core': 4.2.0 - '@octokit/types': 9.2.0 + '@octokit/types': 9.2.2 deprecation: 2.3.1 dev: true @@ -2049,7 +2049,7 @@ packages: resolution: {integrity: sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==} engines: {node: '>= 14'} dependencies: - '@octokit/types': 9.2.0 + '@octokit/types': 9.2.2 deprecation: 2.3.1 once: 1.4.0 dev: true @@ -2060,30 +2060,30 @@ packages: dependencies: '@octokit/endpoint': 7.0.5 '@octokit/request-error': 3.0.3 - '@octokit/types': 9.2.0 + '@octokit/types': 9.2.2 is-plain-object: 5.0.0 - node-fetch: 2.6.9 + node-fetch: 2.6.11 universal-user-agent: 6.0.0 transitivePeerDependencies: - encoding dev: true - /@octokit/rest@19.0.7: - resolution: {integrity: sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA==} + /@octokit/rest@19.0.8: + resolution: {integrity: sha512-/PKrzqn+zDzXKwBMwLI2IKrvk8yv8cedJOdcmxrjR3gmu6UIzURhP5oQj+4qkn7+uQi1gg7QqV4SqlaQ1HYW1Q==} engines: {node: '>= 14'} dependencies: '@octokit/core': 4.2.0 - '@octokit/plugin-paginate-rest': 6.0.0(@octokit/core@4.2.0) + '@octokit/plugin-paginate-rest': 6.1.0(@octokit/core@4.2.0) '@octokit/plugin-request-log': 1.0.4(@octokit/core@4.2.0) - '@octokit/plugin-rest-endpoint-methods': 7.0.1(@octokit/core@4.2.0) + '@octokit/plugin-rest-endpoint-methods': 7.1.0(@octokit/core@4.2.0) transitivePeerDependencies: - encoding dev: true - /@octokit/types@9.2.0: - resolution: {integrity: sha512-xySzJG4noWrIBFyMu4lg4tu9vAgNg9S0aoLRONhAEz6ueyi1evBzb40HitIosaYS4XOexphG305IVcLrIX/30g==} + /@octokit/types@9.2.2: + resolution: {integrity: sha512-9BjDxjgQIvCjNWZsbqyH5QC2Yni16oaE6xL+8SUBMzcYPF4TGQBXGA97Cl3KceK9mwiNMb1mOYCz6FbCCLEL+g==} dependencies: - '@octokit/openapi-types': 17.1.0 + '@octokit/openapi-types': 17.1.2 dev: true /@peculiar/asn1-schema@2.3.6: @@ -2161,7 +2161,7 @@ packages: import-from: 4.0.0 lodash: 4.17.21 micromatch: 4.0.5 - semantic-release: 21.0.2 + semantic-release: 21.0.2(typescript@5.0.4) transitivePeerDependencies: - supports-color dev: true @@ -2177,7 +2177,7 @@ packages: peerDependencies: semantic-release: '>=18.0.0-beta.1' dependencies: - '@octokit/rest': 19.0.7 + '@octokit/rest': 19.0.8 '@semantic-release/error': 3.0.0 aggregate-error: 3.1.0 bottleneck: 2.19.5 @@ -2192,14 +2192,14 @@ packages: mime: 3.0.0 p-filter: 2.1.0 p-retry: 4.6.2 - semantic-release: 21.0.2 + semantic-release: 21.0.2(typescript@5.0.4) url-join: 4.0.1 transitivePeerDependencies: - encoding - supports-color dev: true - /@semantic-release/npm@10.0.3(semantic-release@21.0.2): + /@semantic-release/npm@10.0.3(semantic-release@21.0.2)(typescript@5.0.4): resolution: {integrity: sha512-Chbv3kX4o+y+r1X6hsqBVB8NFbSVfiNlYOqMG6o9Wc8r5Y4cjxfbaMCuJ++XAtw3YXYX/NVD05cPzBi4Orjusg==} engines: {node: '>=18'} peerDependencies: @@ -2214,11 +2214,13 @@ packages: normalize-url: 8.0.0 npm: 9.6.6 rc: 1.2.8 - read-pkg: 8.0.0 + read-pkg: 8.0.0(typescript@5.0.4) registry-auth-token: 5.0.2 - semantic-release: 21.0.2 + semantic-release: 21.0.2(typescript@5.0.4) semver: 7.5.1 tempy: 3.0.0 + transitivePeerDependencies: + - typescript dev: true /@semantic-release/release-notes-generator@11.0.1(semantic-release@21.0.2): @@ -2237,7 +2239,7 @@ packages: into-stream: 7.0.0 lodash-es: 4.17.21 read-pkg-up: 9.1.0 - semantic-release: 21.0.2 + semantic-release: 21.0.2(typescript@5.0.4) transitivePeerDependencies: - supports-color dev: true @@ -2304,8 +2306,8 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node@20.1.3: - resolution: {integrity: sha512-NP2yfZpgmf2eDRPmgGq+fjGjSwFgYbihA8/gK+ey23qT9RkxsgNTZvGOEpXgzIGqesTYkElELLgtKoMQTys5vA==} + /@types/node@20.1.4: + resolution: {integrity: sha512-At4pvmIOki8yuwLtd7BNHl3CiWNbtclUbNtScGx4OHfBd4/oWoJC8KRCIxXwkdndzhxOsPXihrsOoydxBjlE9Q==} dev: true /@types/normalize-package-data@2.4.1: @@ -2327,11 +2329,11 @@ packages: /@types/ws@8.5.4: resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: - '@types/node': 20.1.3 + '@types/node': 20.1.4 dev: true - /@typescript-eslint/eslint-plugin@5.59.2(@typescript-eslint/parser@5.59.5)(eslint@8.39.0)(typescript@5.0.4): - resolution: {integrity: sha512-yVrXupeHjRxLDcPKL10sGQ/QlVrA8J5IYOEWVqk0lJaSZP7X5DfnP7Ns3cc74/blmbipQ1htFNVGsHX6wsYm0A==} + /@typescript-eslint/eslint-plugin@5.59.5(@typescript-eslint/parser@5.59.5)(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-feA9xbVRWJZor+AnLNAr7A8JRWeZqHUf4T9tlP+TN04b05pFVhO5eN7/O93Y/1OUlLMHKbnJisgDURs/qvtqdg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -2343,9 +2345,9 @@ packages: dependencies: '@eslint-community/regexpp': 4.5.1 '@typescript-eslint/parser': 5.59.5(eslint@8.39.0)(typescript@5.0.4) - '@typescript-eslint/scope-manager': 5.59.2 - '@typescript-eslint/type-utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) - '@typescript-eslint/utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/scope-manager': 5.59.5 + '@typescript-eslint/type-utils': 5.59.5(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.5(eslint@8.39.0)(typescript@5.0.4) debug: 4.3.4(supports-color@8.1.1) eslint: 8.39.0 grapheme-splitter: 1.0.4 @@ -2358,13 +2360,13 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils@5.59.2(eslint@8.39.0)(typescript@5.0.4): - resolution: {integrity: sha512-JLw2UImsjHDuVukpA8Nt+UK7JKE/LQAeV3tU5f7wJo2/NNYVwcakzkWjoYzu/2qzWY/Z9c7zojngNDfecNt92g==} + /@typescript-eslint/experimental-utils@5.59.5(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-ArcSSBifznsKNA/p4h2w3Olt/T8AZf3bNglxD8OnuTsSDJbRpjPPmI8qpr6ijyvk1J/T3GMJHwRIluS/Kuz9kA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.5(eslint@8.39.0)(typescript@5.0.4) eslint: 8.39.0 transitivePeerDependencies: - supports-color @@ -2391,14 +2393,6 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@5.59.2: - resolution: {integrity: sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.59.2 - '@typescript-eslint/visitor-keys': 5.59.2 - dev: true - /@typescript-eslint/scope-manager@5.59.5: resolution: {integrity: sha512-jVecWwnkX6ZgutF+DovbBJirZcAxgxC0EOHYt/niMROf8p4PwxxG32Qdhj/iIQQIuOflLjNkxoXyArkcIP7C3A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2407,8 +2401,8 @@ packages: '@typescript-eslint/visitor-keys': 5.59.5 dev: true - /@typescript-eslint/type-utils@5.59.2(eslint@8.39.0)(typescript@5.0.4): - resolution: {integrity: sha512-b1LS2phBOsEy/T381bxkkywfQXkV1dWda/z0PhnIy3bC5+rQWQDS7fk9CSpcXBccPY27Z6vBEuaPBCKCgYezyQ==} + /@typescript-eslint/type-utils@5.59.5(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-4eyhS7oGym67/pSxA2mmNq7X164oqDYNnZCUayBwJZIRVvKpBCMBzFnFxjeoDeShjtO6RQBHBuwybuX3POnDqg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -2417,8 +2411,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.0.4) - '@typescript-eslint/utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 5.59.5(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.5(eslint@8.39.0)(typescript@5.0.4) debug: 4.3.4(supports-color@8.1.1) eslint: 8.39.0 tsutils: 3.21.0(typescript@5.0.4) @@ -2427,37 +2421,11 @@ packages: - supports-color dev: true - /@typescript-eslint/types@5.59.2: - resolution: {integrity: sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - /@typescript-eslint/types@5.59.5: resolution: {integrity: sha512-xkfRPHbqSH4Ggx4eHRIO/eGL8XL4Ysb4woL8c87YuAo8Md7AUjyWKa9YMwTL519SyDPrfEgKdewjkxNCVeJW7w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree@5.59.2(typescript@5.0.4): - resolution: {integrity: sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.59.2 - '@typescript-eslint/visitor-keys': 5.59.2 - debug: 4.3.4(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.5.1 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/typescript-estree@5.59.5(typescript@5.0.4): resolution: {integrity: sha512-+XXdLN2CZLZcD/mO7mQtJMvCkzRfmODbeSKuMY/yXbGkzvA9rJyDY5qDYNoiz2kP/dmyAxXquL2BvLQLJFPQIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2479,8 +2447,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.59.2(eslint@8.39.0)(typescript@5.0.4): - resolution: {integrity: sha512-kSuF6/77TZzyGPhGO4uVp+f0SBoYxCDf+lW3GKhtKru/L8k/Hd7NFQxyWUeY7Z/KGB2C6Fe3yf2vVi4V9TsCSQ==} + /@typescript-eslint/utils@5.59.5(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-sCEHOiw+RbyTii9c3/qN74hYDPNORb8yWCoPLmB7BIflhplJ65u2PBpdRla12e3SSTJ2erRkPjz7ngLHhUegxA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -2488,9 +2456,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) '@types/json-schema': 7.0.11 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 5.59.2 - '@typescript-eslint/types': 5.59.2 - '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.0.4) + '@typescript-eslint/scope-manager': 5.59.5 + '@typescript-eslint/types': 5.59.5 + '@typescript-eslint/typescript-estree': 5.59.5(typescript@5.0.4) eslint: 8.39.0 eslint-scope: 5.1.1 semver: 7.5.1 @@ -2499,14 +2467,6 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@5.59.2: - resolution: {integrity: sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.59.2 - eslint-visitor-keys: 3.4.1 - dev: true - /@typescript-eslint/visitor-keys@5.59.5: resolution: {integrity: sha512-qL+Oz+dbeBRTeyJTIy0eniD3uvqU7x+y1QceBismZ41hd4aBSRh8UAw4pZP0+XzLuPZmx4raNMq/I+59W2lXKA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2634,11 +2594,13 @@ packages: type-fest: 0.21.3 dev: true - /ansi-escapes@5.0.0: - resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} - engines: {node: '>=12'} + /ansi-escapes@6.2.0(typescript@5.0.4): + resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} + engines: {node: '>=14.16'} dependencies: - type-fest: 1.4.0 + type-fest: 3.10.0(typescript@5.0.4) + transitivePeerDependencies: + - typescript dev: true /ansi-regex@5.0.1: @@ -2763,7 +2725,7 @@ packages: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.21.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 is-string: 1.0.7 dev: true @@ -2815,7 +2777,7 @@ packages: define-properties: 1.2.0 es-abstract: 1.21.2 es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 dev: true /arrify@1.0.1: @@ -2932,7 +2894,7 @@ packages: dependencies: '@babel/core': 7.21.8 '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.21.8) - core-js-compat: 3.30.1 + core-js-compat: 3.30.2 transitivePeerDependencies: - supports-color dev: true @@ -3044,8 +3006,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001482 - electron-to-chromium: 1.4.382 + caniuse-lite: 1.0.30001487 + electron-to-chromium: 1.4.394 node-releases: 2.0.10 update-browserslist-db: 1.0.11(browserslist@4.21.5) dev: true @@ -3121,7 +3083,7 @@ packages: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.1 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 dev: true /caller-callsite@2.0.0: @@ -3167,8 +3129,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001482: - resolution: {integrity: sha512-F1ZInsg53cegyjroxLNW9DmrEQ1SuGRTO1QlpA0o2/6OpQ0gFeDRoq1yFmnr8Sakn9qwwt9DmbxHB6w167OSuQ==} + /caniuse-lite@1.0.30001487: + resolution: {integrity: sha512-83564Z3yWGqXsh2vaH/mhXfEM0wX+NlBCm1jYHOb97TrTWJEmPTccZgeLTPBUUb0PNVo+oomb7wkimZBIERClA==} dev: true /cardinal@2.1.1: @@ -3501,14 +3463,14 @@ packages: engines: {node: '>=0.10.0'} dev: true - /core-js-compat@3.30.1: - resolution: {integrity: sha512-d690npR7MC6P0gq4npTl5n2VQeNAmUrJ90n+MHiKS7W2+xno4o3F5GDEuylSdi6EJ3VssibSGXOa1r3YXD3Mhw==} + /core-js-compat@3.30.2: + resolution: {integrity: sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==} dependencies: browserslist: 4.21.5 dev: true - /core-js@3.30.1: - resolution: {integrity: sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==} + /core-js@3.30.2: + resolution: {integrity: sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg==} requiresBuild: true dev: true @@ -3705,7 +3667,7 @@ packages: array-buffer-byte-length: 1.0.0 call-bind: 1.0.2 es-get-iterator: 1.1.3 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 is-arguments: 1.1.1 is-array-buffer: 3.0.2 is-date-object: 1.0.5 @@ -3869,8 +3831,8 @@ packages: safer-buffer: 2.1.2 dev: true - /electron-to-chromium@1.4.382: - resolution: {integrity: sha512-czMavlW52VIPgutbVL9JnZIZuFijzsG1ww/1z2Otu1r1q+9Qe2bTsH3My3sZarlvwyqHM6+mnZfEnt2Vr4dsIg==} + /electron-to-chromium@1.4.394: + resolution: {integrity: sha512-0IbC2cfr8w5LxTz+nmn2cJTGafsK9iauV2r5A5scfzyovqLrxuLoxOHE5OBobP3oVIggJT+0JfKnw9sm87c8Hw==} dev: true /emoji-regex@8.0.0: @@ -3948,7 +3910,7 @@ packages: es-set-tostringtag: 2.0.1 es-to-primitive: 1.2.1 function.prototype.name: 1.1.5 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 get-symbol-description: 1.0.0 globalthis: 1.0.3 gopd: 1.0.1 @@ -3986,7 +3948,7 @@ packages: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 has-symbols: 1.0.3 is-arguments: 1.1.1 is-map: 2.0.2 @@ -4000,7 +3962,7 @@ packages: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 has: 1.0.3 has-tostringtag: 1.0.0 dev: true @@ -4064,7 +4026,7 @@ packages: lodash.zip: 4.2.0 dev: true - /eslint-config-canonical@33.0.1(@babel/core@7.21.8)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.1.3)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4): + /eslint-config-canonical@33.0.1(@babel/core@7.21.8)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.1.4)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4): resolution: {integrity: sha512-g5hyJr5s4WnyAp5FdfMyItz72hOgXAB/4tsFMBP944bcei2QJyMvwslpKdiQL299HSJBpJ9xbNBhx7oeFI7zIQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -4072,10 +4034,10 @@ packages: dependencies: '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.39.0) '@babel/eslint-plugin': 7.19.1(@babel/eslint-parser@7.21.8)(eslint@8.39.0) - '@graphql-eslint/eslint-plugin': 3.18.0(@babel/core@7.21.8)(@types/node@20.1.3)(graphql@16.6.0) + '@graphql-eslint/eslint-plugin': 3.18.0(@babel/core@7.21.8)(@types/node@20.1.4)(graphql@16.6.0) '@next/eslint-plugin-next': 12.3.4 '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.5)(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/eslint-plugin': 5.59.5(@typescript-eslint/parser@5.59.5)(eslint@8.39.0)(typescript@5.0.4) '@typescript-eslint/parser': 5.59.5(eslint@8.39.0)(typescript@5.0.4) eslint: 8.39.0 eslint-plugin-ava: 13.2.0(eslint@8.39.0) @@ -4085,9 +4047,9 @@ packages: eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.39.0) eslint-plugin-fp: 2.3.0(eslint@8.39.0) eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.5)(eslint@8.39.0) - eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.59.2)(eslint@8.39.0)(typescript@5.0.4) + eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.59.5)(eslint@8.39.0)(typescript@5.0.4) eslint-plugin-jsdoc: 37.9.7(eslint@8.39.0) - eslint-plugin-jsonc: 2.7.0(eslint@8.39.0) + eslint-plugin-jsonc: 2.8.0(eslint@8.39.0) eslint-plugin-jsx-a11y: 6.7.1(eslint@8.39.0) eslint-plugin-lodash: 7.4.0(eslint@8.39.0) eslint-plugin-mocha: 10.1.0(eslint@8.39.0) @@ -4279,7 +4241,7 @@ packages: - supports-color dev: true - /eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.59.2)(eslint@8.39.0)(typescript@5.0.4): + /eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.59.5)(eslint@8.39.0)(typescript@5.0.4): resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} peerDependencies: @@ -4292,8 +4254,8 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.5)(eslint@8.39.0)(typescript@5.0.4) - '@typescript-eslint/experimental-utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/eslint-plugin': 5.59.5(@typescript-eslint/parser@5.59.5)(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/experimental-utils': 5.59.5(eslint@8.39.0)(typescript@5.0.4) eslint: 8.39.0 transitivePeerDependencies: - supports-color @@ -4319,15 +4281,15 @@ packages: - supports-color dev: true - /eslint-plugin-jsonc@2.7.0(eslint@8.39.0): - resolution: {integrity: sha512-DZgC71h/hZ9t5k/OGAKOMdJCleg2neZLL7No+YYi2ZMroCN4X5huZdrLf1USbrc6UTHwYujd1EDwXHg1qJ6CYw==} + /eslint-plugin-jsonc@2.8.0(eslint@8.39.0): + resolution: {integrity: sha512-K4VsnztnNwpm+V49CcCu5laq8VjclJpuhfI9LFkOrOyK+BKdQHMzkWo43B4X4rYaVrChm4U9kw/tTU5RHh5Wtg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) eslint: 8.39.0 - jsonc-eslint-parser: 2.2.0 + jsonc-eslint-parser: 2.3.0 natural-compare: 1.4.0 dev: true @@ -4440,7 +4402,7 @@ packages: eslint: ^5 || ^6 || ^7 || ^8 typescript: ^3 || ^4 || ^5 dependencies: - '@typescript-eslint/experimental-utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/experimental-utils': 5.59.5(eslint@8.39.0)(typescript@5.0.4) '@typescript-eslint/parser': 5.59.5(eslint@8.39.0)(typescript@5.0.4) eslint: 8.39.0 json-schema: 0.4.0 @@ -4950,7 +4912,7 @@ packages: engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 - signal-exit: 4.0.1 + signal-exit: 4.0.2 dev: true /forever-agent@0.6.1: @@ -5062,11 +5024,12 @@ packages: resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} dev: true - /get-intrinsic@1.2.0: - resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} dependencies: function-bind: 1.1.1 has: 1.0.3 + has-proto: 1.0.1 has-symbols: 1.0.3 dev: true @@ -5097,7 +5060,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 dev: true /get-urls@10.0.1(bluebird@3.7.2): @@ -5185,7 +5148,7 @@ packages: jackspeak: 2.2.0 minimatch: 9.0.0 minipass: 5.0.0 - path-scurry: 1.7.0 + path-scurry: 1.9.0 dev: true /glob@7.1.7: @@ -5266,7 +5229,7 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 dev: true /graceful-fs@4.2.10: @@ -5281,7 +5244,7 @@ packages: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: true - /graphql-config@4.5.0(@types/node@20.1.3)(graphql@16.6.0): + /graphql-config@4.5.0(@types/node@20.1.4)(graphql@16.6.0): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -5294,8 +5257,8 @@ packages: '@graphql-tools/graphql-file-loader': 7.5.17(graphql@16.6.0) '@graphql-tools/json-file-loader': 7.4.18(graphql@16.6.0) '@graphql-tools/load': 7.8.14(graphql@16.6.0) - '@graphql-tools/merge': 8.4.1(graphql@16.6.0) - '@graphql-tools/url-loader': 7.17.18(@types/node@20.1.3)(graphql@16.6.0) + '@graphql-tools/merge': 8.4.2(graphql@16.6.0) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.1.4)(graphql@16.6.0) '@graphql-tools/utils': 9.2.1(graphql@16.6.0) cosmiconfig: 8.0.0 graphql: 16.6.0 @@ -5382,7 +5345,7 @@ packages: /has-property-descriptors@1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 dev: true /has-proto@1.0.1: @@ -5640,7 +5603,7 @@ packages: resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 has: 1.0.3 side-channel: 1.0.4 dev: true @@ -5688,7 +5651,7 @@ packages: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 is-typed-array: 1.1.10 dev: true @@ -6007,7 +5970,7 @@ packages: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 dev: true /is-windows@1.0.2: @@ -6280,8 +6243,8 @@ packages: hasBin: true dev: true - /jsonc-eslint-parser@2.2.0: - resolution: {integrity: sha512-x5QjzBOORd+T2EjErIxJnkOEbLVEdD1ILEeBbIJt8Eq/zUn7P7M8qdnWiNVBK5f8oxnJpc6SBHOeeIEl/swPjg==} + /jsonc-eslint-parser@2.3.0: + resolution: {integrity: sha512-9xZPKVYp9DxnM3sd1yAsh/d59iIaswDkai8oTxbursfKYbg/ibjX0IzFt35+VZ8iEW453TVTXztnRvYUQlAfUQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.8.2 @@ -6668,19 +6631,21 @@ packages: lodash: 4.17.21 dev: true - /marked-terminal@5.1.1(marked@4.3.0): - resolution: {integrity: sha512-+cKTOx9P4l7HwINYhzbrBSyzgxO2HaHKGZGuB1orZsMIgXYaJyfidT81VXRdpelW/PcHEWxywscePVgI/oUF6g==} + /marked-terminal@5.2.0(marked@4.3.0)(typescript@5.0.4): + resolution: {integrity: sha512-Piv6yNwAQXGFjZSaiNljyNFw7jKDdGrw70FSbtxEyldLsyeuV5ZHm/1wW++kWbrOF1VPnUgYOhB2oLL0ZpnekA==} engines: {node: '>=14.13.1 || >=16.0.0'} peerDependencies: - marked: ^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 + marked: ^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 dependencies: - ansi-escapes: 5.0.0 + ansi-escapes: 6.2.0(typescript@5.0.4) cardinal: 2.1.1 chalk: 5.2.0 cli-table3: 0.6.3 marked: 4.3.0 node-emoji: 1.11.0 supports-hyperlinks: 2.3.0 + transitivePeerDependencies: + - typescript dev: true /marked@2.1.3: @@ -6721,7 +6686,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.2.1(@types/node@20.1.3): + /meros@1.2.1(@types/node@20.1.4): resolution: {integrity: sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g==} engines: {node: '>=13'} peerDependencies: @@ -6730,7 +6695,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.1.3 + '@types/node': 20.1.4 dev: true /micro-spelling-correcter@1.1.1: @@ -7038,8 +7003,8 @@ packages: semver: 5.7.1 dev: true - /node-fetch@2.6.9: - resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} + /node-fetch@2.6.11: + resolution: {integrity: sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==} engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 @@ -7635,7 +7600,7 @@ packages: lines-and-columns: 1.2.4 dev: true - /parse-json@7.0.0: + /parse-json@7.0.0(typescript@5.0.4): resolution: {integrity: sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==} engines: {node: '>=16'} dependencies: @@ -7643,7 +7608,9 @@ packages: error-ex: 1.3.2 json-parse-even-better-errors: 3.0.0 lines-and-columns: 2.0.3 - type-fest: 3.9.0 + type-fest: 3.10.0(typescript@5.0.4) + transitivePeerDependencies: + - typescript dev: true /parse-passwd@1.0.0: @@ -7699,8 +7666,8 @@ packages: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true - /path-scurry@1.7.0: - resolution: {integrity: sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==} + /path-scurry@1.9.0: + resolution: {integrity: sha512-KLejx+14koDZLnb3JNDZbjcmHC/IO2Imd3rNoyt5mynieVd+MT4b1aaGaXAHw06H3P+aZ3Q+56VKJ6BCHMO3WA==} engines: {node: '>=16 || 14 >=14.17'} dependencies: lru-cache: 9.1.1 @@ -7974,14 +7941,16 @@ packages: type-fest: 2.19.0 dev: true - /read-pkg@8.0.0: + /read-pkg@8.0.0(typescript@5.0.4): resolution: {integrity: sha512-Ajb9oSjxXBw0YyOiwtQ2dKbAA/vMnUPnY63XcCk+mXo0BwIdQEMgZLZiMWGttQHcUhUgbK0mH85ethMPKXxziw==} engines: {node: '>=16'} dependencies: '@types/normalize-package-data': 2.4.1 normalize-package-data: 5.0.0 - parse-json: 7.0.0 - type-fest: 3.9.0 + parse-json: 7.0.0(typescript@5.0.4) + type-fest: 3.10.0(typescript@5.0.4) + transitivePeerDependencies: + - typescript dev: true /readable-stream@2.3.8: @@ -8274,7 +8243,7 @@ packages: engines: {node: '>=0.4'} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 has-symbols: 1.0.3 isarray: 2.0.5 dev: true @@ -8291,7 +8260,7 @@ packages: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 is-regex: 1.1.4 dev: true @@ -8311,7 +8280,7 @@ packages: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true - /semantic-release@21.0.2: + /semantic-release@21.0.2(typescript@5.0.4): resolution: {integrity: sha512-Hl6lyJdZ0pAYD07Z1FIUmg06UzSC3fEjHS7U31YppNQ8jOwjjt7pVzW9OfpoO0vbmqD3Tc+b/iZh5fqvKt01OA==} engines: {node: '>=18'} hasBin: true @@ -8319,7 +8288,7 @@ packages: '@semantic-release/commit-analyzer': 9.0.2(semantic-release@21.0.2) '@semantic-release/error': 3.0.0 '@semantic-release/github': 8.0.7(semantic-release@21.0.2) - '@semantic-release/npm': 10.0.3(semantic-release@21.0.2) + '@semantic-release/npm': 10.0.3(semantic-release@21.0.2)(typescript@5.0.4) '@semantic-release/release-notes-generator': 11.0.1(semantic-release@21.0.2) aggregate-error: 4.0.1 cosmiconfig: 8.1.3 @@ -8334,7 +8303,7 @@ packages: hosted-git-info: 6.1.1 lodash-es: 4.17.21 marked: 4.3.0 - marked-terminal: 5.1.1(marked@4.3.0) + marked-terminal: 5.2.0(marked@4.3.0)(typescript@5.0.4) micromatch: 4.0.5 p-each-series: 3.0.0 p-reduce: 3.0.0 @@ -8347,6 +8316,7 @@ packages: transitivePeerDependencies: - encoding - supports-color + - typescript dev: true /semver-diff@4.0.0: @@ -8433,7 +8403,7 @@ packages: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 object-inspect: 1.12.3 dev: true @@ -8441,8 +8411,8 @@ packages: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - /signal-exit@4.0.1: - resolution: {integrity: sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==} + /signal-exit@4.0.2: + resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} engines: {node: '>=14'} dev: true @@ -8744,7 +8714,7 @@ packages: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.21.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 has-symbols: 1.0.3 internal-slot: 1.0.5 regexp.prototype.flags: 1.5.0 @@ -9102,9 +9072,13 @@ packages: engines: {node: '>=12.20'} dev: true - /type-fest@3.9.0: - resolution: {integrity: sha512-hR8JP2e8UiH7SME5JZjsobBlEiatFoxpzCP+R3ZeCo7kAaG1jXQE5X/buLzogM6GJu8le9Y4OcfNuIQX0rZskA==} + /type-fest@3.10.0(typescript@5.0.4): + resolution: {integrity: sha512-hmAPf1datm+gt3c2mvu0sJyhFy6lTkIGf0GzyaZWxRLnabQfPUqg6tF95RPg6sLxKI7nFLGdFxBcf2/7+GXI+A==} engines: {node: '>=14.16'} + peerDependencies: + typescript: '>=4.7.0' + dependencies: + typescript: 5.0.4 dev: true /typed-array-length@1.0.4: diff --git a/src/alignTransform.js b/src/alignTransform.js index 20cbb94c8..a53b41c4b 100644 --- a/src/alignTransform.js +++ b/src/alignTransform.js @@ -7,10 +7,17 @@ import { // `comment-parser/primitives` export - Markers, util, } from 'comment-parser'; +/** + * @typedef {{ + * hasNoTypes: boolean, + * maxNamedTagLength: import('./iterateJsdoc.js').Integer, + * maxUnnamedTagLength: import('./iterateJsdoc.js').Integer + * }} TypelessInfo + */ + const { rewireSource, } = util; @@ -34,7 +41,7 @@ const zeroWidth = { /** * @param {string[]} tags - * @param {} index + * @param {import('./iterateJsdoc').Integer} index * @param {import('comment-parser').Line[]} source * @returns {boolean} */ @@ -74,12 +81,7 @@ const shouldAlign = (tags, index, source) => { * }, * index: import('./iterateJsdoc.js').Integer, * source: import('comment-parser').Line[] - * ) => { - * name: import('./iterateJsdoc.js').Integer, - * start: import('./iterateJsdoc.js').Integer, - * tag: import('./iterateJsdoc.js').Integer, - * type: import('./iterateJsdoc.js').Integer - * }} + * ) => Width} */ const getWidth = (tags) => { return (width, { @@ -91,7 +93,7 @@ const getWidth = (tags) => { return { name: Math.max(width.name, tokens.name.length), - start: tokens.delimiter === Markers.start ? tokens.start.length : width.start, + start: tokens.delimiter === '/**' ? tokens.start.length : width.start, tag: Math.max(width.tag, tokens.tag.length), type: Math.max(width.type, tokens.type.length), }; @@ -99,8 +101,12 @@ const getWidth = (tags) => { }; /** - * @param {} fields - * @returns {} + * @param {{ + * description: string; + * tags: import('comment-parser').Spec[]; + * problems: import('comment-parser').Problem[]; + * }} fields + * @returns {TypelessInfo} */ const getTypelessInfo = (fields) => { const hasNoTypes = fields.tags.every(({ @@ -147,6 +153,9 @@ const space = (len) => { * preserveMainDescriptionPostDelimiter: boolean, * wrapIndent: string, * }} cfg + * @returns {( + * block: import('comment-parser').Block + * ) => import('comment-parser').Block} */ const alignTransform = ({ customSpacings, @@ -156,12 +165,13 @@ const alignTransform = ({ wrapIndent, }) => { let intoTags = false; + /** @type {Width} */ let width; /** - * @param {} tokens - * @param {} typelessInfo - * @returns {} + * @param {import('comment-parser').Tokens} tokens + * @param {TypelessInfo} typelessInfo + * @returns {import('comment-parser').Tokens} */ const alignTokens = (tokens, typelessInfo) => { const nothingAfter = { @@ -236,14 +246,15 @@ const alignTransform = ({ }; /** - * @param {} line - * @param {} index - * @param {} source - * @param {} typelessInfo - * @param {} indentTag - * @returns {} + * @param {import('comment-parser').Line} line + * @param {import('./iterateJsdoc.js').Integer} index + * @param {import('comment-parser').Line[]} source + * @param {TypelessInfo} typelessInfo + * @param {string|false} indentTag + * @returns {import('comment-parser').Line} */ const update = (line, index, source, typelessInfo, indentTag) => { + /** @type {import('comment-parser').Tokens} */ const tokens = { ...line.tokens, }; @@ -259,7 +270,7 @@ const alignTransform = ({ tokens.description === ''; // dangling '*/' - if (tokens.end === Markers.end && isEmpty) { + if (tokens.end === '*/' && isEmpty) { tokens.start = indent + ' '; return { @@ -269,10 +280,10 @@ const alignTransform = ({ } switch (tokens.delimiter) { - case Markers.start: + case '/**': tokens.start = indent; break; - case Markers.delim: + case '*': tokens.start = indent + ' '; break; default: diff --git a/src/exportParser.js b/src/exportParser.js index eb258fc05..ca452158c 100644 --- a/src/exportParser.js +++ b/src/exportParser.js @@ -5,12 +5,21 @@ import debugModule from 'debug'; const debug = debugModule('requireExportJsdoc'); +/** + * @returns {{ + * props: object + * }} + */ const createNode = function () { return { props: {}, }; }; +/** + * @param {} symbol + * @returns {null} + */ const getSymbolValue = function (symbol) { /* istanbul ignore next */ if (!symbol) { @@ -27,6 +36,14 @@ const getSymbolValue = function (symbol) { return null; }; +/** + * + * @param {} node + * @param {} globals + * @param {} scope + * @param {} opts + * @returns {} + */ const getIdentifier = function (node, globals, scope, opts) { if (opts.simpleIdentifier) { // Type is Identier for noncomputed properties @@ -58,8 +75,18 @@ const getIdentifier = function (node, globals, scope, opts) { let createSymbol = null; -// eslint-disable-next-line complexity +/* eslint-disable complexity -- Temporary */ + +/** + * + * @param {} node + * @param {} globals + * @param {} scope + * @param {} opt + * @returns {} + */ const getSymbol = function (node, globals, scope, opt) { + /* eslint-enable complexity -- Temporary */ const opts = opt || {}; /* istanbul ignore next */ // eslint-disable-next-line default-case @@ -169,6 +196,15 @@ const getSymbol = function (node, globals, scope, opt) { return null; }; +/** + * + * @param {} block + * @param {} name + * @param {} value + * @param {} globals + * @param {} isGlobal + * @returns {void} + */ const createBlockSymbol = function (block, name, value, globals, isGlobal) { block.props[name] = value; if (isGlobal && globals.props.window && globals.props.window.special) { @@ -176,6 +212,15 @@ const createBlockSymbol = function (block, name, value, globals, isGlobal) { } }; +/** + * + * @param {} node + * @param {} globals + * @param {} value + * @param {} scope + * @param {} isGlobal + * @returns {null} + */ createSymbol = function (node, globals, value, scope, isGlobal) { const block = scope || globals; let symbol; @@ -241,7 +286,14 @@ createSymbol = function (node, globals, value, scope, isGlobal) { return null; }; -// Creates variables from variable definitions +/** + * Creates variables from variable definitions + * + * @param {} node + * @param {} globals + * @param {} opts + * @returns {} + */ const initVariables = function (node, globals, opts) { // eslint-disable-next-line default-case switch (node.type) { @@ -281,9 +333,19 @@ const initVariables = function (node, globals, opts) { } }; -// Populates variable maps using AST -// eslint-disable-next-line complexity +/* eslint-disable complexity -- Temporary */ + +/** + * Populates variable maps using AST + * + * @param {} node + * @param {} globals + * @param {} opt + * @param {} isExport + * @returns {boolean} + */ const mapVariables = function (node, globals, opt, isExport) { + /* eslint-enable complexity -- Temporary */ /* istanbul ignore next */ const opts = opt || {}; /* istanbul ignore next */ @@ -386,6 +448,13 @@ const mapVariables = function (node, globals, opt, isExport) { return true; }; +/** + * + * @param {} node + * @param {} block + * @param {} cache + * @returns {boolean} + */ const findNode = function (node, block, cache) { let blockCache = cache || []; /* istanbul ignore next */ @@ -428,6 +497,11 @@ const exportTypes = new Set([ const ignorableNestedTypes = new Set([ 'FunctionDeclaration', 'ArrowFunctionExpression', 'FunctionExpression', ]); + +/** + * @param {} nde + * @returns {} + */ const getExportAncestor = function (nde) { let node = nde; let idx = 0; @@ -469,6 +543,10 @@ const canExportChildrenType = new Set([ 'Program', ]); +/** + * @param {} nde + * @returns {} + */ const isExportByAncestor = function (nde) { if (!canBeExportedByAncestorType.has(nde.type)) { return false; @@ -490,6 +568,13 @@ const isExportByAncestor = function (nde) { return false; }; +/** + * + * @param {} block + * @param {} node + * @param {} cache + * @returns {boolean} + */ const findExportedNode = function (block, node, cache) { /* istanbul ignore next */ if (block === null) { @@ -513,6 +598,13 @@ const findExportedNode = function (block, node, cache) { return false; }; +/** + * + * @param {} node + * @param {} globals + * @param {} opt + * @returns {boolean} + */ const isNodeExported = function (node, globals, opt) { const moduleExports = globals.props.module?.props?.exports; if ( @@ -532,6 +624,13 @@ const isNodeExported = function (node, globals, opt) { return false; }; +/** + * + * @param {} node + * @param {} globalVars + * @param {} opts + * @returns {boolean} + */ const parseRecursive = function (node, globalVars, opts) { // Iterate from top using recursion - stop at first processed node from top if (node.parent && parseRecursive(node.parent, globalVars, opts)) { @@ -541,6 +640,17 @@ const parseRecursive = function (node, globalVars, opts) { return mapVariables(node, globalVars, opts); }; +/** + * + * @param {} ast + * @param {} node + * @param {} opt + * @returns {{ + * globalVars: { + * props: {}; + * }; + * }} + */ const parse = function (ast, node, opt) { /* istanbul ignore next */ const opts = opt || { @@ -574,6 +684,14 @@ const parse = function (ast, node, opt) { }; }; +/** + * + * @param {} node + * @param {} sourceCode + * @param {} opt + * @param {} settings + * @returns {boolean} + */ const isUncommentedExport = function (node, sourceCode, opt, settings) { // console.log({node}); // Optimize with ancestor check for esm diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index 02e5beee0..e8b4d9d52 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -13,6 +13,22 @@ import jsdocUtils from './jsdocUtils'; * @typedef {number} Integer */ +/** + * @typedef {{ + * disallowName?: string, + * allowName?: string, + * context?: string, + * comment?: string, + * tags?: string[], + * replacement?: string, + * minimum?: Integer, + * message?: string + * }} ContextObject + */ +/** + * @typedef {string|ContextObject} Context + */ + /** * @callback CheckJsdoc * @param {{ @@ -55,7 +71,7 @@ import jsdocUtils from './jsdocUtils'; * @param {{ * tagName: string * }} cfg - * @returns {string|boolean|{ + * @returns {string|false|{ * message: string; * replacement?: string|undefined * }|{ @@ -95,8 +111,8 @@ import jsdocUtils from './jsdocUtils'; /** * @callback ReportJSDoc * @param {string} msg - * @param {null|import('comment-parser').Spec|{line: Integer, column?: Integer}} tag - * @param {(() => void)|null} handler + * @param {null|import('comment-parser').Spec|{line: Integer, column?: Integer}} [tag] + * @param {(() => void)|null} [handler] * @param {boolean} [specRewire] * @param {undefined|{ * [key: string]: string @@ -280,6 +296,13 @@ import jsdocUtils from './jsdocUtils'; * allowObjectReturn?: boolean, * defaultMessage?: string * }} cfg + * @returns {string|undefined|false|{ + * message: string; + * replacement?: string|undefined; + * }|{ + * blocked: true, + * tagName: string + * }} */ /** @@ -440,8 +463,8 @@ import jsdocUtils from './jsdocUtils'; /** * @callback GetClassJsdoc * @returns {null|import('comment-parser').Block & { - * inlineTags: import('@es-joy/jsdoccomment').InlineTag[]} - * } + * inlineTags: import('@es-joy/jsdoccomment').InlineTag[] + * }} */ /** @@ -646,15 +669,15 @@ const getBasicUtils = (context, { /* eslint-enable jsdoc/valid-types -- Old version of pratt */ /** - * @param {Node} node + * @param {Node|null} node * @param {import('comment-parser').Block & { - * inlineTags: import('@es-joy/jsdoccomment').JsdocInlineTagNoType[] + * inlineTags: import('@es-joy/jsdoccomment').InlineTag[] * }} jsdoc * @param {import('eslint').AST.Token} jsdocNode * @param {Settings} settings * @param {Report} report * @param {import('eslint').Rule.RuleContext} context - * @param {boolean} iteratingAll + * @param {boolean|undefined} iteratingAll * @param {RuleConfig} ruleConfig * @param {string} indent * @returns {Utils} @@ -693,12 +716,12 @@ const getUtils = ( 'ArrowFunctionExpression', 'FunctionDeclaration', 'FunctionExpression', - ].includes(node && node.type); + ].includes(String(node && node.type)); }; /** @type {IsVirtualFunction} */ utils.isVirtualFunction = () => { - return iteratingAll && utils.hasATag([ + return Boolean(iteratingAll) && utils.hasATag([ 'callback', 'function', 'func', 'method', ]); }; @@ -1306,12 +1329,12 @@ const getUtils = ( /** @type {HasParams} */ utils.hasParams = () => { - return jsdocUtils.hasParams(node); + return jsdocUtils.hasParams(/** @type {Node} */ (node)); }; /** @type {IsGenerator} */ utils.isGenerator = () => { - return node && Boolean( + return node !== null && Boolean( /** * @type {import('estree').FunctionDeclaration| * import('estree').FunctionExpression} @@ -1332,14 +1355,14 @@ const getUtils = ( /** @type {IsConstructor} */ utils.isConstructor = () => { - return jsdocUtils.isConstructor(node); + return jsdocUtils.isConstructor(/** @type {Node} */ (node)); }; /** @type {GetJsdocTagsDeep} */ utils.getJsdocTagsDeep = (tagName) => { - const name = utils.getPreferredTagName({ + const name = /** @type {string|false} */ (utils.getPreferredTagName({ tagName, - }); + })); if (!name) { return false; } @@ -1554,14 +1577,16 @@ const getUtils = ( /** @type {HasValueOrExecutorHasNonEmptyResolveValue} */ utils.hasValueOrExecutorHasNonEmptyResolveValue = (anyPromiseAsReturn, allBranches) => { - return jsdocUtils.hasValueOrExecutorHasNonEmptyResolveValue(node, anyPromiseAsReturn, allBranches); + return jsdocUtils.hasValueOrExecutorHasNonEmptyResolveValue( + /** @type {Node} */ (node), anyPromiseAsReturn, allBranches, + ); }; /** @type {HasYieldValue} */ utils.hasYieldValue = () => { if ([ 'ExportNamedDeclaration', 'ExportDefaultDeclaration', - ].includes(node.type)) { + ].includes(/** @type {Node} */ (node).type)) { return jsdocUtils.hasYieldValue( /** @type {import('estree').Declaration|import('estree').Expression} */ ( /** @type {import('estree').ExportNamedDeclaration|import('estree').ExportDefaultDeclaration} */ @@ -1570,12 +1595,12 @@ const getUtils = ( ); } - return jsdocUtils.hasYieldValue(node); + return jsdocUtils.hasYieldValue(/** @type {Node} */ (node)); }; /** @type {HasYieldReturnValue} */ utils.hasYieldReturnValue = () => { - return jsdocUtils.hasYieldValue(node, true); + return jsdocUtils.hasYieldValue(/** @type {Node} */ (node), true); }; /** @type {HasThrowValue} */ @@ -1585,7 +1610,7 @@ const getUtils = ( /** @type {IsAsync} */ utils.isAsync = () => { - return 'async' in node && node.async; + return 'async' in /** @type {Node} */ (node) && node.async; }; /** @type {GetTags} */ @@ -1666,15 +1691,17 @@ const getUtils = ( utils.classHasTag = (tagName) => { const classJsdoc = utils.getClassJsdoc(); - return Boolean(classJsdoc) && jsdocUtils.hasTag(classJsdoc, tagName); + return classJsdoc !== null && jsdocUtils.hasTag(classJsdoc, tagName); }; /** @type {ForEachPreferredTag} */ utils.forEachPreferredTag = (tagName, arrayHandler, skipReportingBlockedTag = false) => { - const targetTagName = utils.getPreferredTagName({ - skipReportingBlockedTag, - tagName, - }); + const targetTagName = /** @type {string|false} */ ( + utils.getPreferredTagName({ + skipReportingBlockedTag, + tagName, + }) + ); if (!targetTagName || skipReportingBlockedTag && targetTagName && typeof targetTagName === 'object' ) { @@ -1688,7 +1715,15 @@ const getUtils = ( }); for (const matchingJsdocTag of matchingJsdocTags) { - arrayHandler(matchingJsdocTag, targetTagName); + arrayHandler( + /** + * @type {import('comment-parser').Spec & { + * line: Integer + * }} + */ ( + matchingJsdocTag + ), targetTagName, + ); } }; @@ -1696,6 +1731,24 @@ const getUtils = ( }; /* eslint-disable jsdoc/valid-types -- Old version */ +/** + * @typedef {{ + * [key: string]: false|string|{ + * message: string, + * replacement?: false|string + * skipRootChecking?: boolean + * } + * }} PreferredTypes + */ +/** + * @typedef {{ + * [key: string]: { + * name?: "text"|"namepath-defining"|"namepath-referencing"|false, + * type?: boolean|string[], + * required?: ("name"|"type"|"typeOrNameRequired")[] + * } + * }} StructuredTags + */ /** * Settings from ESLint types. * @@ -1704,7 +1757,10 @@ const getUtils = ( * minLines: Integer, * tagNamePreference: import('./jsdocUtils.js').TagNamePreference, * mode: import('./jsdocUtils.js').ParserMode, - * [name: string]: any + * preferredTypes: PreferredTypes, + * structuredTags: StructuredTags, + * [name: string]: any, + * contexts?: Context[] * }} Settings */ /* eslint-enable jsdoc/valid-types -- Old version */ @@ -1755,6 +1811,10 @@ const getSettings = (context) => { } catch (error) { context.report({ loc: { + end: { + column: 1, + line: 1, + }, start: { column: 1, line: 1, @@ -1774,7 +1834,7 @@ const getSettings = (context) => { * * @callback MakeReport * @param {import('eslint').Rule.RuleContext} context - * @param {import('@es-joy/jsdoccomment').Token} commentNode + * @param {import('estree').Node} commentNode * @returns {Report} */ @@ -1792,7 +1852,10 @@ const makeReport = (context, commentNode) => { ).source[0].number; } - const lineNumber = commentNode.loc.start.line + jsdocLoc.line; + const lineNumber = /** @type {import('eslint').AST.SourceLocation} */ ( + commentNode.loc + ).start.line + + /** @type {Integer} */ (jsdocLoc.line); loc = { end: { @@ -1807,8 +1870,10 @@ const makeReport = (context, commentNode) => { // Todo: Remove ignore once `check-examples` can be restored for ESLint 8+ // istanbul ignore if - if ('column' in jsdocLoc) { - const colNumber = commentNode.loc.start.column + jsdocLoc.column; + if ('column' in jsdocLoc && typeof jsdocLoc.column === 'number') { + const colNumber = /** @type {import('eslint').AST.SourceLocation} */ ( + commentNode.loc + ).start.column + jsdocLoc.column; loc.end.column = colNumber; loc.start.column = colNumber; @@ -1828,6 +1893,31 @@ const makeReport = (context, commentNode) => { }; /* eslint-disable jsdoc/valid-types -- Old version */ +/** + * @typedef {( + * arg: { + * context: import('eslint').Rule.RuleContext, + * sourceCode: import('eslint').SourceCode, + * indent?: string, + * info?: { + * comment?: string|undefined, + * lastIndex?: Integer|undefined + * }, + * state?: StateObject, + * globalState?: Map>, + * jsdoc?: import('comment-parser').Block, + * jsdocNode?: import('eslint').Rule.Node & { + * range: [number, number] + * }, + * node?: Node, + * allComments?: import('estree').Node[] + * report?: Report, + * makeReport?: MakeReport, + * settings: Settings, + * utils: BasicUtils, + * } + * ) => any } JsdocVisitorBasic + */ /** * @typedef {( * arg: { @@ -1835,8 +1925,8 @@ const makeReport = (context, commentNode) => { * sourceCode: import('eslint').SourceCode, * indent: string, * info: { - * comment: string|undefined, - * lastIndex: Integer + * comment?: string|undefined, + * lastIndex?: Integer|undefined * }, * state: StateObject, * globalState: Map>, @@ -1844,10 +1934,10 @@ const makeReport = (context, commentNode) => { * jsdocNode: import('eslint').Rule.Node & { * range: [number, number] * }, - * node: Node | null, - * allComments: import('estree').Node[] + * node: Node|null, + * allComments?: import('estree').Node[] * report: Report, - * makeReport: MakeReport, + * makeReport?: MakeReport, * settings: Settings, * utils: Utils, * } @@ -1857,19 +1947,27 @@ const makeReport = (context, commentNode) => { /* eslint-enable jsdoc/no-undefined-types -- canonical still using an older version where not defined */ /** - * @param {} info - * @param {} indent - * @param {import('comment-parser').Block} jsdoc + * @param {{ + * comment?: string, + * lastIndex?: Integer, + * selector?: string, + * isFunctionContext?: boolean, + * }} info + * @param {string} indent + * @param {import('comment-parser').Block & { + * inlineTags: import('@es-joy/jsdoccomment').InlineTag[] + * }} jsdoc * @param {RuleConfig} ruleConfig * @param {import('eslint').Rule.RuleContext} context - * @param {} lines + * @param {string[]} lines * @param {import('@es-joy/jsdoccomment').Token} jsdocNode - * @param {Node} node + * @param {Node|null} node * @param {Settings} settings * @param {import('eslint').SourceCode} sourceCode - * @param {} iterator + * @param {JsdocVisitor} iterator * @param {StateObject} state * @param {boolean} [iteratingAll] + * @returns {void} */ const iterate = ( info, @@ -1877,12 +1975,18 @@ const iterate = ( ruleConfig, context, lines, jsdocNode, node, settings, sourceCode, iterator, state, iteratingAll, ) => { - const report = makeReport(context, jsdocNode); + const jsdocNde = /** @type {unknown} */ (jsdocNode); + const report = makeReport( + context, + /** @type {import('estree').Node} */ + (jsdocNde), + ); const utils = getUtils( node, jsdoc, - jsdocNode, + /** @type {import('eslint').AST.Token} */ + (jsdocNode), settings, report, context, @@ -1923,9 +2027,11 @@ const iterate = ( globalState, indent, info, - iteratingAll, jsdoc, - jsdocNode, + jsdocNode: /** + * @type {import('eslint').Rule.Node & { + * range: [number, number];}} + */ (jsdocNde), node, report, settings, @@ -1936,15 +2042,22 @@ const iterate = ( }; /** - * @param {} lines - * @param {import('@es-joy/jsdoccomment').Token} jsdocNode + * @param {string[]} lines + * @param {import('estree').Comment} jsdocNode * @returns {[indent: string, jsdoc: import('comment-parser').Block & { - * inlineTags: import('@es-joy/jsdoccomment').JsdocInlineTagNoType[] + * inlineTags: import('@es-joy/jsdoccomment').InlineTag[] * }]} */ const getIndentAndJSDoc = function (lines, jsdocNode) { - const sourceLine = lines[jsdocNode.loc.start.line - 1]; - const indnt = sourceLine.charAt(0).repeat(jsdocNode.loc.start.column); + const sourceLine = lines[ + /** @type {import('estree').SourceLocation} */ + (jsdocNode.loc).start.line - 1 + ]; + const indnt = sourceLine.charAt(0).repeat( + /** @type {import('estree').SourceLocation} */ + (jsdocNode.loc).start.column, + ); + const jsdc = parseComment(jsdocNode, ''); return [ @@ -1970,12 +2083,14 @@ const getIndentAndJSDoc = function (lines, jsdocNode) { * @property {true} [checkInternal] Whether to check `@internal` blocks (normally exempted) * @property {true} [checkFile] Whether to iterates over all JSDoc blocks regardless of attachment * @property {true} [nonGlobalSettings] Whether to avoid relying on settings for global contexts + * @property {true} [noTracking] Whether to disable the tracking of visited comment nodes (as + * non-tracked may conduct further actions) * @property {true} [matchContext] Whether the rule expects contexts to be based on a match option * @property {(args: { * context: import('eslint').Rule.RuleContext, * state: StateObject, * settings: Settings, - * utils: Utils + * utils: BasicUtils * }) => void} [exit] Handler to be executed upon exiting iteration of program AST * @property {(nca: NonCommentArgs) => void} [nonComment] Handler to be executed if rule wishes * to be supplied nodes without comments @@ -1987,7 +2102,7 @@ const getIndentAndJSDoc = function (lines, jsdocNode) { * * @param {JsdocVisitor} iterator * @param {RuleConfig} ruleConfig The rule's configuration - * @param {} [contexts] The `contexts` containing relevant `comment` info. + * @param {ContextObject[]|null} [contexts] The `contexts` containing relevant `comment` info. * @param {boolean} [additiveCommentContexts] If true, will have a separate * iteration for each matching comment context. Otherwise, will iterate * once if there is a single matching comment context. @@ -1996,16 +2111,16 @@ const getIndentAndJSDoc = function (lines, jsdocNode) { const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContexts) => { const trackedJsdocs = new Set(); - /** @type {import('@es-joy/jsdoccomment')} */ + /** @type {import('@es-joy/jsdoccomment').CommentHandler} */ let handler; - /** @type {Settings} */ + /** @type {Settings|false} */ let settings; /** * @param {import('eslint').Rule.RuleContext} context - * @param {Node} node - * @param {import('eslint').Rule.Node[]} jsdocNodes + * @param {Node|null} node + * @param {import('estree').Comment[]} jsdocNodes * @param {StateObject} state * @param {boolean} [lastCall] * @returns {void} @@ -2016,9 +2131,13 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext lines, } = sourceCode; - const utils = getBasicUtils(context, settings); + const utils = getBasicUtils(context, /** @type {Settings} */ (settings)); for (const jsdocNode of jsdocNodes) { - if (!(/^\/\*\*\s/u).test(sourceCode.getText(jsdocNode))) { + const jsdocNde = /** @type {unknown} */ (jsdocNode); + if (!(/^\/\*\*\s/u).test(sourceCode.getText( + /** @type {import('estree').Node} */ + (jsdocNde), + ))) { continue; } @@ -2035,7 +2154,7 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext { comment, }, - ] of contexts.entries()) { + ] of /** @type {ContextObject[]} */ (contexts).entries()) { if (comment && handler(comment, jsdoc) === false) { continue; } @@ -2052,8 +2171,10 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext context, lines, jsdocNode, - node, - settings, + /** @type {Node} */ + (node), + /** @type {Settings} */ + (settings), sourceCode, iterator, state, @@ -2094,7 +2215,8 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext lines, jsdocNode, node, - settings, + /** @type {Settings} */ + (settings), sourceCode, iterator, state, @@ -2102,10 +2224,12 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext ); } + const settngs = /** @type {Settings} */ (settings); + if (lastCall && ruleConfig.exit) { ruleConfig.exit({ context, - settings, + settings: settngs, state, utils, }); @@ -2113,6 +2237,7 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext }; return { + // @ts-expect-error ESLint accepts create (context) { const sourceCode = context.getSourceCode(); settings = getSettings(context); @@ -2127,17 +2252,26 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext const state = {}; return { + /** + * @param {import('eslint').Rule.Node & { + * range: [Integer, Integer]; + * }} node + * @returns {void} + */ '*:not(Program)' (node) { - const commentNode = getJSDocComment(sourceCode, node, settings); + const commentNode = getJSDocComment( + sourceCode, node, /** @type {Settings} */ (settings), + ); if (!ruleConfig.noTracking && trackedJsdocs.has(commentNode)) { return; } if (!commentNode) { if (ruleConfig.nonComment) { + const ste = /** @type {StateObject} */ (state); ruleConfig.nonComment({ node, - state, + state: ste, }); } @@ -2146,8 +2280,9 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext trackedJsdocs.add(commentNode); callIterator(context, node, [ - commentNode, - ], state); + /** @type {import('estree').Comment} */ + (commentNode), + ], /** @type {StateObject} */ (state)); }, 'Program:exit' () { const allComments = sourceCode.getAllComments(); @@ -2155,7 +2290,14 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext return !trackedJsdocs.has(node); }); - callIterator(context, null, untrackedJSdoc, state, true); + callIterator( + context, + null, + untrackedJSdoc, + /** @type {StateObject} */ + (state), + true, + ); }, }; }, @@ -2167,7 +2309,7 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext * Create an eslint rule that iterates over all JSDocs, regardless of whether * they are attached to a function-like node. * - * @param {JsdocVisitor} iterator + * @param {JsdocVisitorBasic} iterator * @param {RuleConfig} ruleConfig * @returns {import('eslint').Rule.RuleModule} */ @@ -2182,16 +2324,12 @@ const checkFile = (iterator, ruleConfig) => { return { 'Program:exit' () { - const allComments = sourceCode.getAllComments(); - const { - lines, - } = sourceCode; + const allComms = /** @type {unknown} */ (sourceCode.getAllComments()); const utils = getBasicUtils(context, settings); iterator({ - allComments, + allComments: /** @type {import('estree').Node[]} */ (allComms), context, - lines, makeReport, settings, sourceCode, @@ -2228,7 +2366,10 @@ export default function iterateJsdoc (iterator, ruleConfig) { } if (ruleConfig.checkFile) { - return checkFile(iterator, ruleConfig); + return checkFile( + /** @type {JsdocVisitorBasic} */ (iterator), + ruleConfig, + ); } if (ruleConfig.iterateAllJsdocs) { @@ -2244,7 +2385,7 @@ export default function iterateJsdoc (iterator, ruleConfig) { * a reference to the context which hold all important information * like settings and the sourcecode to check. * @returns {import('eslint').Rule.RuleListener} - * a list with parser callback function. + * a listener with parser callback function. */ create (context) { const settings = getSettings(context); @@ -2252,11 +2393,8 @@ export default function iterateJsdoc (iterator, ruleConfig) { return {}; } - /* eslint-disable jsdoc/valid-types -- Old version */ /** - * @type {(string|{ - * [key: string]: string - * })[]} + * @type {Context[]|undefined} */ let contexts; /* eslint-enable jsdoc/valid-types -- Old version */ @@ -2288,7 +2426,10 @@ export default function iterateJsdoc (iterator, ruleConfig) { }); if (hasPlainAny || hasObjectAny) { return iterateAllJsdocs( - iterator, ruleConfig, hasObjectAny ? contexts : null, ruleConfig.matchContext, + iterator, + ruleConfig, + hasObjectAny ? /** @type {ContextObject[]} */ (contexts) : null, + ruleConfig.matchContext, ).create(context); } } @@ -2298,7 +2439,10 @@ export default function iterateJsdoc (iterator, ruleConfig) { lines, } = sourceCode; + /* eslint-disable jsdoc/no-undefined-types -- TS */ + /** @type {Partial} */ const state = {}; + /* eslint-enable jsdoc/no-undefined-types -- TS */ /** @type {CheckJsdoc} */ const checkJsdoc = (info, handler, node) => { @@ -2311,7 +2455,9 @@ export default function iterateJsdoc (iterator, ruleConfig) { indent, jsdoc, ] = getIndentAndJSDoc( - lines, jsdocNode, + lines, + /** @type {import('estree').Comment} */ + (jsdocNode), ); if ( @@ -2324,10 +2470,23 @@ export default function iterateJsdoc (iterator, ruleConfig) { } iterate( - info, indent, jsdoc, ruleConfig, context, lines, jsdocNode, node, settings, sourceCode, iterator, state, + info, + indent, + jsdoc, + ruleConfig, + context, + lines, + jsdocNode, + node, + settings, + sourceCode, + iterator, + /** @type {StateObject} */ + (state), ); }; + /** @type {import('eslint').Rule.RuleListener} */ let contextObject = {}; if (contexts && ( @@ -2351,13 +2510,17 @@ export default function iterateJsdoc (iterator, ruleConfig) { } } - if (ruleConfig.exit) { + if (typeof ruleConfig.exit === 'function') { contextObject['Program:exit'] = () => { - ruleConfig.exit({ + const ste = /** @type {StateObject} */ (state); + /* eslint-disable jsdoc/no-undefined-types -- Bug */ + // @ts-expect-error `utils` not needed at this point + /** @type {Required} */ (ruleConfig).exit({ context, settings, - state, + state: ste, }); + /* eslint-enable jsdoc/no-undefined-types -- Bug */ }; } diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index f84af0164..d4445483c 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -202,7 +202,7 @@ const getPropertiesFromPropertySignature = (propSignature) => { }; /** - * @param {ESTreeOrTypeScriptNode} functionNode + * @param {ESTreeOrTypeScriptNode|null} functionNode * @param {boolean} [checkDefaultObjects] * @throws {Error} * @returns {ParamNameInfo[]} @@ -511,7 +511,7 @@ const getTagNamesForMode = (mode, context) => { * @param {ParserMode|undefined} mode * @param {string} name * @param {TagNamePreference} tagPreference - * @returns {string|boolean|{ + * @returns {string|false|{ * message: string; * replacement?: string|undefined; * }} @@ -588,7 +588,9 @@ const isValidTag = ( }; /** - * @param {import('comment-parser').Block} jsdoc + * @param {import('comment-parser').Block & { + * inlineTags: import('@es-joy/jsdoccomment').InlineTag[] + * }} jsdoc * @param {string} targetTagName * @returns {boolean} */ @@ -740,7 +742,7 @@ const mayBeUndefinedTypeTag = (tag, mode) => { /** * @param {import('./getDefaultTagStructureForMode.js').TagStructure} map * @param {string} tag - * @returns {Map} + * @returns {Map} */ const ensureMap = (map, tag) => { if (!map.has(tag)) { @@ -750,20 +752,8 @@ const ensureMap = (map, tag) => { return /** @type {Map} */ (map.get(tag)); }; -/* eslint-disable jsdoc/valid-types -- Older non-TS version */ -/** - * @typedef {{ - * [tag: string]: { - * name: string|boolean, - * type: string[]|boolean, - * required: string[] - * } - * }} StructuredTags - */ -/* eslint-enable jsdoc/valid-types -- Older non-TS version */ - /** - * @param {StructuredTags} structuredTags + * @param {import('./iterateJsdoc.js').StructuredTags} structuredTags * @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap * @returns {void} */ @@ -810,7 +800,7 @@ const overrideTagStructure = (structuredTags, tagMap = tagStructure) => { /** * @param {ParserMode} mode - * @param {StructuredTags} structuredTags + * @param {import('./iterateJsdoc.js').StructuredTags} structuredTags * @returns {import('./getDefaultTagStructureForMode.js').TagStructure} */ const getTagStructureForMode = (mode, structuredTags) => { @@ -859,12 +849,12 @@ const isNamepathOrUrlReferencingTag = (tag, tagMap = tagStructure) => { /** * @param {string} tag * @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap - * @returns {boolean} + * @returns {boolean|undefined} */ const tagMustHaveTypePosition = (tag, tagMap = tagStructure) => { const tagStruct = ensureMap(tagMap, tag); - return tagStruct.get('typeRequired'); + return /** @type {boolean|undefined} */ (tagStruct.get('typeRequired')); }; /** @@ -915,21 +905,21 @@ const tagMightHaveNamepath = (tag, tagMap = tagStructure) => { /** * @param {string} tag * @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap - * @returns {boolean} + * @returns {boolean|undefined} */ const tagMustHaveNamePosition = (tag, tagMap = tagStructure) => { const tagStruct = ensureMap(tagMap, tag); - return tagStruct.get('nameRequired'); + return /** @type {boolean|undefined} */ (tagStruct.get('nameRequired')); }; /** - * @param tag + * @param {string} tag * @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap * @returns {boolean} */ const tagMightHaveEitherTypeOrNamePosition = (tag, tagMap) => { - return tagMightHaveTypePosition(tag, tagMap) || tagMightHaveNamepath(tag, tagMap); + return Boolean(tagMightHaveTypePosition(tag, tagMap)) || tagMightHaveNamepath(tag, tagMap); }; /** @@ -988,6 +978,7 @@ const hasNonFunctionYield = (node, checkYieldReturnValue) => { }); } + // @ts-expect-error In Babel? // istanbul ignore next -- In Babel? case 'OptionalCallExpression': case 'CallExpression': @@ -1074,14 +1065,17 @@ const hasNonFunctionYield = (node, checkYieldReturnValue) => { // istanbul ignore next -- In Babel? case 'PropertyDefinition': /* eslint-disable no-fallthrough */ + // @ts-expect-error In Babel? // istanbul ignore next -- In Babel? case 'ObjectProperty': + // @ts-expect-error In Babel? // istanbul ignore next -- In Babel? case 'ClassProperty': case 'Property': /* eslint-enable no-fallthrough */ return node.computed && hasNonFunctionYield(node.key, checkYieldReturnValue) || hasNonFunctionYield(node.value, checkYieldReturnValue); + // @ts-expect-error In Babel? // istanbul ignore next -- In Babel? case 'ObjectMethod': // istanbul ignore next -- In Babel? @@ -1097,6 +1091,7 @@ const hasNonFunctionYield = (node, checkYieldReturnValue) => { case 'TaggedTemplateExpression': return hasNonFunctionYield(node.quasi, checkYieldReturnValue); + // @ts-expect-error In Babel? // ?. // istanbul ignore next -- In Babel? case 'OptionalMemberExpression': @@ -1104,6 +1099,7 @@ const hasNonFunctionYield = (node, checkYieldReturnValue) => { return hasNonFunctionYield(node.object, checkYieldReturnValue) || hasNonFunctionYield(node.property, checkYieldReturnValue); + // @ts-expect-error In Babel? // istanbul ignore next -- In Babel? case 'Import': case 'ImportExpression': @@ -1156,7 +1152,7 @@ const hasYieldValue = (node, checkYieldReturnValue) => { /** * Checks if a node has a throws statement. * - * @param {ESTreeOrTypeScriptNode} node + * @param {ESTreeOrTypeScriptNode|null|undefined} node * @param {boolean} [innerFunction] * @returns {boolean} */ @@ -1257,8 +1253,10 @@ const parseClosureTemplateTag = (tag) => { * ESTree AST types, indicating allowable contexts. * * @param {import('eslint').Rule.RuleContext} context - * @param {DefaultContexts} defaultContexts - * @param {import('./iterateJsdoc.js').Settings} settings + * @param {DefaultContexts|undefined} defaultContexts + * @param {{ + * contexts?: import('./iterateJsdoc.js').Context[] + * }} settings * @returns {string[]} */ const enforcedContexts = (context, defaultContexts, settings) => { @@ -1273,11 +1271,13 @@ const enforcedContexts = (context, defaultContexts, settings) => { }; /** - * @param {string[]} contexts + * @param {import('./iterateJsdoc.js').Context[]} contexts * @param {import('./iterateJsdoc.js').CheckJsdoc} checkJsdoc * @param {Function} [handler] + * @returns {import('eslint').Rule.RuleListener} */ const getContextObject = (contexts, checkJsdoc, handler) => { + /** @type {import('eslint').Rule.RuleListener} */ const properties = {}; for (const [ @@ -1375,7 +1375,9 @@ const getTagsByType = (context, mode, tags, tagPreference) => { }; /** - * @param {import('eslint').SourceCode} sourceCode + * @param {import('eslint').SourceCode|{ + * text: string + * }} sourceCode * @returns {string} */ const getIndent = (sourceCode) => { @@ -1383,28 +1385,42 @@ const getIndent = (sourceCode) => { }; /** - * @param {ESTreeOrTypeScriptNode} node + * @param {import('eslint').Rule.Node|null} node * @returns {boolean} */ const isConstructor = (node) => { return node?.type === 'MethodDefinition' && node.kind === 'constructor' || - node?.parent?.kind === 'constructor'; + /** @type {import('@typescript-eslint/types').TSESTree.MethodDefinition} */ ( + node?.parent + )?.kind === 'constructor'; }; /** - * @param {ESTreeOrTypeScriptNode} node + * @param {import('eslint').Rule.Node|null} node * @returns {boolean} */ const isGetter = (node) => { - return node && node.parent?.kind === 'get'; + return node !== null && + /** + * @type {import('@typescript-eslint/types').TSESTree.MethodDefinition| + * import('@typescript-eslint/types').TSESTree.Property} + */ ( + node.parent + )?.kind === 'get'; }; /** - * @param {ESTreeOrTypeScriptNode} node + * @param {import('eslint').Rule.Node|null} node * @returns {boolean} */ const isSetter = (node) => { - return node && node.parent?.kind === 'set'; + return node !== null && + /** + * @type {import('@typescript-eslint/types').TSESTree.MethodDefinition| + * import('@typescript-eslint/types').TSESTree.Property} + */( + node.parent + )?.kind === 'set'; }; /** @@ -1415,27 +1431,51 @@ const hasAccessorPair = (node) => { const { type, kind: sourceKind, - key: { - name: sourceName, - }, - } = node; + key, + } = + /** + * @type {import('@typescript-eslint/types').TSESTree.MethodDefinition| + * import('@typescript-eslint/types').TSESTree.Property} + */ (node); + + const sourceName = + /** @type {import('@typescript-eslint/types').TSESTree.Identifier} */ ( + key + ).name; + const oppositeKind = sourceKind === 'get' ? 'set' : 'get'; - const children = type === 'MethodDefinition' ? 'body' : 'properties'; + const sibling = type === 'MethodDefinition' ? + /** @type {import('@typescript-eslint/types').TSESTree.ClassBody} */ ( + node.parent + ).body : + /** @type {import('@typescript-eslint/types').TSESTree.ObjectExpression} */ ( + node.parent + ).properties; + + return ( + sibling.some((child) => { + const { + kind, + key: ky, + } = /** + * @type {import('@typescript-eslint/types').TSESTree.MethodDefinition| + * import('@typescript-eslint/types').TSESTree.Property} + */ (child); + + const name = + /** @type {import('@typescript-eslint/types').TSESTree.Identifier} */ ( + ky + ).name; - return node.parent[children].some(({ - kind, - key: { - name, - }, - }) => { - return kind === oppositeKind && name === sourceName; - }); + return kind === oppositeKind && name === sourceName; + }) + ); }; /** * @param {import('comment-parser').Block} jsdoc - * @param {import('eslint').Rule.Node} node + * @param {import('eslint').Rule.Node|null} node * @param {import('eslint').Rule.RuleContext} context * @param {import('json-schema').JSONSchema4} schema * @returns {boolean} @@ -1464,11 +1504,11 @@ const exemptSpeciaMethods = (jsdoc, node, context, schema) => { ])) || isGetter(node) && ( !checkGetters || - checkGetters === 'no-setter' && hasAccessorPair(node.parent) + checkGetters === 'no-setter' && hasAccessorPair(/** @type {import('./iterateJsdoc.js').Node} */ (node).parent) ) || isSetter(node) && ( !checkSetters || - checkSetters === 'no-getter' && hasAccessorPair(node.parent) + checkSetters === 'no-getter' && hasAccessorPair(/** @type {import('./iterateJsdoc.js').Node} */ (node).parent) ); }; diff --git a/src/rules/checkExamples.js b/src/rules/checkExamples.js index 0b90dcb64..2dac7e57d 100644 --- a/src/rules/checkExamples.js +++ b/src/rules/checkExamples.js @@ -1,6 +1,7 @@ // Todo: When replace `CLIEngine` with `ESLint` when feature set complete per https://github.com/eslint/eslint/issues/14745 // https://github.com/eslint/eslint/blob/master/docs/user-guide/migrating-to-7.0.0.md#-the-cliengine-class-has-been-deprecated import { + // @ts-expect-error - For older ESLint CLIEngine, ESLint, } from 'eslint'; @@ -403,9 +404,9 @@ export default iterateJsdoc(({ }); } - const tagName = utils.getPreferredTagName({ + const tagName = /** @type {string} */ (utils.getPreferredTagName({ tagName: 'example', - }); + })); if (!utils.hasTag(tagName)) { return; } diff --git a/src/rules/checkPropertyNames.js b/src/rules/checkPropertyNames.js index 2e2cc4995..8802f8176 100644 --- a/src/rules/checkPropertyNames.js +++ b/src/rules/checkPropertyNames.js @@ -111,9 +111,9 @@ export default iterateJsdoc(({ return; } - const targetTagName = utils.getPreferredTagName({ + const targetTagName = /** @type {string} */ (utils.getPreferredTagName({ tagName: 'property', - }); + })); const isError = validatePropertyNames( targetTagName, enableFixer, diff --git a/src/rules/checkTagNames.js b/src/rules/checkTagNames.js index 9c3915aa1..8aa07bc20 100644 --- a/src/rules/checkTagNames.js +++ b/src/rules/checkTagNames.js @@ -255,7 +255,9 @@ export default iterateJsdoc(({ ({ message, replacement: preferredTagName, - } = preferredTagName); + } = /** @type {{message: string; replacement?: string | undefined;}} */ ( + preferredTagName + )); } if (!message) { diff --git a/src/rules/checkTypes.js b/src/rules/checkTypes.js index 714bd3abe..96877e02f 100644 --- a/src/rules/checkTypes.js +++ b/src/rules/checkTypes.js @@ -30,34 +30,37 @@ const strictNativeTypes = [ * @param {boolean} isGenericMatch * @param {string} typeNodeName * @param {import('jsdoc-type-pratt-parser').NonRootResult} node - * @param {import('jsdoc-type-pratt-parser').NonRootResult} parentNode + * @param {import('jsdoc-type-pratt-parser').NonRootResult|undefined} parentNode * @returns {void} */ const adjustNames = (type, preferred, isGenericMatch, typeNodeName, node, parentNode) => { let ret = preferred; if (isGenericMatch) { + const parentMeta = /** @type {import('jsdoc-type-pratt-parser').GenericResult} */ ( + parentNode + ).meta; if (preferred === '[]') { - parentNode.meta.brackets = 'square'; - parentNode.meta.dot = false; + parentMeta.brackets = 'square'; + parentMeta.dot = false; ret = 'Array'; } else { const dotBracketEnd = preferred.match(/\.(?:<>)?$/u); if (dotBracketEnd) { - parentNode.meta.brackets = 'angle'; - parentNode.meta.dot = true; + parentMeta.brackets = 'angle'; + parentMeta.dot = true; ret = preferred.slice(0, -dotBracketEnd[0].length); } else { const bracketEnd = preferred.endsWith('<>'); if (bracketEnd) { - parentNode.meta.brackets = 'angle'; - parentNode.meta.dot = false; + parentMeta.brackets = 'angle'; + parentMeta.dot = false; ret = preferred.slice(0, -2); } else if ( - parentNode.meta?.brackets === 'square' && + parentMeta?.brackets === 'square' && (typeNodeName === '[]' || typeNodeName === 'Array') ) { - parentNode.meta.brackets = 'angle'; - parentNode.meta.dot = false; + parentMeta.brackets = 'angle'; + parentMeta.dot = false; } } } @@ -65,16 +68,20 @@ const adjustNames = (type, preferred, isGenericMatch, typeNodeName, node, parent node.type = 'JsdocTypeName'; } - node.value = ret.replace(/(?:\.|<>|\.<>|\[\])$/u, ''); + /** @type {import('jsdoc-type-pratt-parser').NameResult} */ ( + node + ).value = ret.replace(/(?:\.|<>|\.<>|\[\])$/u, ''); // For bare pseudo-types like `<>` if (!ret) { - node.value = typeNodeName; + /** @type {import('jsdoc-type-pratt-parser').NameResult} */ ( + node + ).value = typeNodeName; } }; /** - * @param {boolean} upperCase + * @param {boolean} [upperCase] * @returns {string} */ const getMessage = (upperCase) => { @@ -91,14 +98,23 @@ export default iterateJsdoc(({ context, }) => { const jsdocTagsWithPossibleType = utils.filterTags((tag) => { - return utils.tagMightHaveTypePosition(tag.tag); + return Boolean(utils.tagMightHaveTypePosition(tag.tag)); }); - const { - preferredTypes: preferredTypesOriginal, - structuredTags, - mode, - } = settings; + const + /** + * @type {{ + * preferredTypes: import('../iterateJsdoc.js').PreferredTypes, + * structuredTags: import('../iterateJsdoc.js').StructuredTags, + * mode: import('../jsdocUtils.js').ParserMode + * }} + */ + { + preferredTypes: preferredTypesOriginal, + structuredTags, + mode, + } = settings; + /* eslint-enable jsdoc/valid-types -- Old version */ const injectObjectPreferredTypes = !('Object' in preferredTypesOriginal || 'object' in preferredTypesOriginal || @@ -106,16 +122,29 @@ export default iterateJsdoc(({ 'Object.<>' in preferredTypesOriginal || 'object<>' in preferredTypesOriginal); + /** + * @type {{ + * message: string, + * replacement: false + * }} + */ const info = { message: getMessage(), replacement: false, }; + /** + * @type {{ + * message: string, + * replacement: false + * }} + */ const infoUC = { message: getMessage(true), replacement: false, }; + /** @type {import('../iterateJsdoc.js').PreferredTypes} */ const typeToInject = mode === 'typescript' ? { Object: 'object', @@ -131,6 +160,7 @@ export default iterateJsdoc(({ 'object<>': 'Object<>', }; + /** @type {import('../iterateJsdoc.js').PreferredTypes} */ const preferredTypes = { ...injectObjectPreferredTypes ? typeToInject : @@ -138,11 +168,21 @@ export default iterateJsdoc(({ ...preferredTypesOriginal, }; - const { - noDefaults, - unifyParentAndChildTypeChecks, - exemptTagContexts = [], - } = context.options[0] || {}; + const + /** + * @type {{ + * noDefaults: boolean, + * unifyParentAndChildTypeChecks: boolean, + * exemptTagContexts: ({ + * tag: string, + * types: true|string[] + * })[] + * }} + */ { + noDefaults, + unifyParentAndChildTypeChecks, + exemptTagContexts = [], + } = context.options[0] || {}; /** * Gets information about the preferred type: whether there is a matching @@ -150,8 +190,8 @@ export default iterateJsdoc(({ * * @param {string} _type Not currently in use * @param {string} typeNodeName - * @param {import('jsdoc-type-pratt-parser/dist/src/index.d.ts').NonTerminalResult} parentNode - * @param {string} property + * @param {import('jsdoc-type-pratt-parser').NonRootResult|undefined} parentNode + * @param {string|undefined} property * @returns {[hasMatchingPreferredType: boolean, typeName: string, isGenericMatch: boolean]} */ const getPreferredTypeInfo = (_type, typeNodeName, parentNode, property) => { @@ -161,8 +201,12 @@ export default iterateJsdoc(({ const isNameOfGeneric = parentNode !== undefined && parentNode.type === 'JsdocTypeGeneric' && property === 'left'; if (unifyParentAndChildTypeChecks || isNameOfGeneric) { - const brackets = parentNode?.meta?.brackets; - const dot = parentNode?.meta?.dot; + const brackets = /** @type {import('jsdoc-type-pratt-parser').GenericResult} */ ( + parentNode + )?.meta?.brackets; + const dot = /** @type {import('jsdoc-type-pratt-parser').GenericResult} */ ( + parentNode + )?.meta?.dot; if (brackets === 'angle') { const checkPostFixes = dot ? [ @@ -181,7 +225,12 @@ export default iterateJsdoc(({ }); } - if (!isGenericMatch && property && parentNode.type === 'JsdocTypeGeneric') { + if ( + !isGenericMatch && property && + /** @type {import('jsdoc-type-pratt-parser').NonRootResult} */ ( + parentNode + ).type === 'JsdocTypeGeneric' + ) { const checkPostFixes = dot ? [ '.', '.<>', ] : [ @@ -203,7 +252,7 @@ export default iterateJsdoc(({ const directNameMatch = preferredTypes?.[typeNodeName] !== undefined && !Object.values(preferredTypes).includes(typeNodeName); const unifiedSyntaxParentMatch = property && directNameMatch && unifyParentAndChildTypeChecks; - isGenericMatch = isGenericMatch || unifiedSyntaxParentMatch; + isGenericMatch = isGenericMatch || Boolean(unifiedSyntaxParentMatch); hasMatchingPreferredType = isGenericMatch || directNameMatch && !property; @@ -218,10 +267,10 @@ export default iterateJsdoc(({ * the the relevant strict type returned as the new preferred type). * * @param {string} typeNodeName - * @param {string} preferred - * @param {import('jsdoc-type-pratt-parser/dist/src/index.d.ts').NonTerminalResult} parentNode - * @param {string[]} invalidTypes - * @returns {string} The `preferred` type string, optionally changed + * @param {string|undefined} preferred + * @param {import('jsdoc-type-pratt-parser').NonRootResult|undefined} parentNode + * @param {(string|false|undefined)[][]} invalidTypes + * @returns {string|undefined} The `preferred` type string, optionally changed */ const checkNativeTypes = (typeNodeName, preferred, parentNode, invalidTypes) => { let changedPreferred = preferred; @@ -236,9 +285,22 @@ export default iterateJsdoc(({ // parent object without a parent match (and not // `unifyParentAndChildTypeChecks`) and we don't want // `object<>` given TypeScript issue https://github.com/microsoft/TypeScript/issues/20555 - parentNode?.elements?.length && ( - parentNode?.left?.type === 'JsdocTypeName' && - parentNode?.left?.value === 'Object' + /** + * @type {import('jsdoc-type-pratt-parser').GenericResult} + */ + ( + parentNode + )?.elements?.length && ( + /** + * @type {import('jsdoc-type-pratt-parser').GenericResult} + */ + ( + parentNode + )?.left?.type === 'JsdocTypeName' && + /** + * @type {import('jsdoc-type-pratt-parser').GenericResult} + */ + (parentNode)?.left?.value === 'Object' ) ) ) { @@ -270,10 +332,10 @@ export default iterateJsdoc(({ * @param {string} tagName * @param {string} nameInTag * @param {number} idx - * @param {string} property + * @param {string|undefined} property * @param {import('jsdoc-type-pratt-parser').NonRootResult} node - * @param {import('jsdoc-type-pratt-parser').NonRootResult} parentNode - * @param {string[]} invalidTypes + * @param {import('jsdoc-type-pratt-parser').NonRootResult|undefined} parentNode + * @param {(string|false|undefined)[][]} invalidTypes * @returns {void} */ const getInvalidTypes = (type, value, tagName, nameInTag, idx, property, node, parentNode, invalidTypes) => { @@ -347,6 +409,7 @@ export default iterateJsdoc(({ idx, jsdocTag, ] of jsdocTagsWithPossibleType.entries()) { + /** @type {(string|false|undefined)[][]} */ const invalidTypes = []; let typeAst; @@ -365,7 +428,10 @@ export default iterateJsdoc(({ const { type, value, - } = node; + } = + /** + * @type {import('jsdoc-type-pratt-parser').NameResult} + */ (node); if (![ 'JsdocTypeName', 'JsdocTypeAny', ].includes(type)) { @@ -379,8 +445,7 @@ export default iterateJsdoc(({ const fixedType = stringify(typeAst); /** - * @param {import('eslint').Rule.ReportFixer} fixer The ESLint fixer - * @returns {string} + * @type {import('eslint').Rule.ReportFixer} */ const fix = (fixer) => { return fixer.replaceText( @@ -418,7 +483,7 @@ export default iterateJsdoc(({ msg ? { tagName, tagValue, - } : null, + } : undefined, ); } } diff --git a/src/rules/informativeDocs.js b/src/rules/informativeDocs.js index 01e1f499e..e8d9a33a0 100644 --- a/src/rules/informativeDocs.js +++ b/src/rules/informativeDocs.js @@ -13,7 +13,12 @@ const defaultUselessWords = [ 'a', 'an', 'i', 'in', 'of', 's', 'the', ]; -// eslint-disable-next-line complexity +/* eslint-disable complexity -- Temporary */ + +/** + * @param {import('eslint').Rule.Node|import('@typescript-eslint/types').TSESTree.Node|null|undefined} node + * @returns {string[]} + */ const getNamesFromNode = (node) => { switch (node?.type) { case 'AccessorProperty': @@ -23,8 +28,15 @@ const getNamesFromNode = (node) => { case 'TSAbstractMethodDefinition': case 'TSAbstractPropertyDefinition': return [ - ...getNamesFromNode(node.parent.parent), - ...getNamesFromNode(node.key), + ...getNamesFromNode( + /** @type {import('@typescript-eslint/types').TSESTree.Node} */ ( + node.parent + ).parent, + ), + ...getNamesFromNode( + /** @type {import('@typescript-eslint/types').TSESTree.Node} */ + (node.key), + ), ]; case 'ClassDeclaration': case 'ClassExpression': @@ -37,24 +49,40 @@ const getNamesFromNode = (node) => { case 'TSEnumMember': case 'TSInterfaceDeclaration': case 'TSTypeAliasDeclaration': - return getNamesFromNode(node.id); + return getNamesFromNode( + /** @type {import('@typescript-eslint/types').TSESTree.ClassDeclaration} */ + (node).id, + ); case 'Identifier': return [ node.name, ]; case 'Property': - return getNamesFromNode(node.key); + return getNamesFromNode( + /** @type {import('@typescript-eslint/types').TSESTree.Node} */ + (node.key), + ); case 'VariableDeclaration': - return getNamesFromNode(node.declarations[0]); + return getNamesFromNode( + /** @type {import('@typescript-eslint/types').TSESTree.Node} */ + (node.declarations[0]), + ); case 'VariableDeclarator': return [ - ...getNamesFromNode(node.id), - ...getNamesFromNode(node.init), + ...getNamesFromNode( + /** @type {import('@typescript-eslint/types').TSESTree.Node} */ + (node.id), + ), + ...getNamesFromNode( + /** @type {import('@typescript-eslint/types').TSESTree.Node} */ + (node.init), + ), ].filter(Boolean); default: return []; } }; +/* eslint-enable complexity -- Temporary */ export default iterateJsdoc(({ context, @@ -69,6 +97,11 @@ export default iterateJsdoc(({ } = context.options[0] || {}; const nodeNames = getNamesFromNode(node); + /** + * @param {string} text + * @param {string} extraName + * @returns {boolean} + */ const descriptionIsRedundant = (text, extraName = '') => { const textTrimmed = text.trim(); return Boolean(textTrimmed) && !areDocsInformative(textTrimmed, [ @@ -93,7 +126,9 @@ export default iterateJsdoc(({ ); } - descriptionReported ||= tag.description === description && tag.line === lastDescriptionLine; + descriptionReported ||= tag.description === description && + /** @type {import('comment-parser').Spec & {line: import('../iterateJsdoc.js').Integer}} */ + (tag).line === lastDescriptionLine; } if (!descriptionReported && descriptionIsRedundant(description)) { diff --git a/src/rules/matchName.js b/src/rules/matchName.js index 203298747..7788f85f1 100644 --- a/src/rules/matchName.js +++ b/src/rules/matchName.js @@ -26,7 +26,7 @@ export default iterateJsdoc(({ tags = [ '*', ], - } = match[lastIndex]; + } = match[/** @type {import('../iterateJsdoc.js').Integer} */ (lastIndex)]; const allowNameRegex = allowName && utils.getRegexFromString(allowName); const disallowNameRegex = disallowName && utils.getRegexFromString(disallowName); @@ -62,7 +62,7 @@ export default iterateJsdoc(({ let { message, - } = match[lastIndex]; + } = match[/** @type {import('../iterateJsdoc.js').Integer} */ (lastIndex)]; if (!message) { if (hasRegex) { message = disallowed ? diff --git a/src/rules/multilineBlocks.js b/src/rules/multilineBlocks.js index f94ac433e..9c19691b9 100644 --- a/src/rules/multilineBlocks.js +++ b/src/rules/multilineBlocks.js @@ -33,6 +33,10 @@ export default iterateJsdoc(({ } = tokens; const sourceLength = jsdoc.source.length; + /** + * @param {string} tagName + * @returns {boolean} + */ const isInvalidSingleLine = (tagName) => { return noSingleLineBlocks && (!tagName || @@ -118,7 +122,15 @@ export default iterateJsdoc(({ 'postName', 'description', ]) { - finalLineTokens[prop] = ''; + finalLineTokens[ + /** + * @type {"delimiter"|"postDelimiter"|"tag"|"type"| + * "lineEnd"|"postType"|"postTag"|"name"| + * "postName"|"description"} + */ ( + prop + ) + ] = ''; } utils.addLine(jsdoc.source.length - 1, { diff --git a/src/rules/noBadBlocks.js b/src/rules/noBadBlocks.js index 10f0a01d9..8107cd8b0 100644 --- a/src/rules/noBadBlocks.js +++ b/src/rules/noBadBlocks.js @@ -27,7 +27,9 @@ export default iterateJsdoc(({ ] = context.options; let extraAsterisks = false; - const nonJsdocNodes = allComments.filter((comment) => { + const nonJsdocNodes = /** @type {import('estree').Node[]} */ ( + allComments + ).filter((comment) => { const commentText = sourceCode.getText(comment); let sliceIndex = 2; if (!commentRegexp.test(commentText)) { @@ -59,7 +61,9 @@ export default iterateJsdoc(({ } for (const node of nonJsdocNodes) { - const report = makeReport(context, node); + const report = /** @type {import('../iterateJsdoc.js').MakeReport} */ ( + makeReport + )(context, node); // eslint-disable-next-line no-loop-func const fix = /** @type {import('eslint').Rule.ReportFixer} */ (fixer) => { diff --git a/src/rules/noMissingSyntax.js b/src/rules/noMissingSyntax.js index bbb809108..47b92a66a 100644 --- a/src/rules/noMissingSyntax.js +++ b/src/rules/noMissingSyntax.js @@ -63,10 +63,20 @@ export default iterateJsdoc(({ const foundContext = contexts.find((cntxt) => { return typeof cntxt === 'string' ? - esquery.matches(node, esquery.parse(cntxt), null, { - visitorKeys: sourceCode.visitorKeys, - }) : - (!cntxt.context || cntxt.context === 'any' || esquery.matches(node, esquery.parse(cntxt.context), null, { + esquery.matches( + node, + esquery.parse(cntxt), + null, + // https://github.com/DefinitelyTyped/DefinitelyTyped/pull/65460 + // @ts-expect-error + { + visitorKeys: sourceCode.visitorKeys, + }, + ) : + (!cntxt.context || cntxt.context === 'any' || + // https://github.com/DefinitelyTyped/DefinitelyTyped/pull/65460 + // @ts-expect-error + esquery.matches(node, esquery.parse(cntxt.context), null, { visitorKeys: sourceCode.visitorKeys, })) && comment === cntxt.comment; diff --git a/src/rules/noRestrictedSyntax.js b/src/rules/noRestrictedSyntax.js index bd58d80ba..62479224c 100644 --- a/src/rules/noRestrictedSyntax.js +++ b/src/rules/noRestrictedSyntax.js @@ -27,12 +27,27 @@ export default iterateJsdoc(({ */ (cntxt) => { return typeof cntxt === 'string' ? - esquery.matches(node, esquery.parse(cntxt), null, { - visitorKeys: sourceCode.visitorKeys, - }) : - (!cntxt.context || cntxt.context === 'any' || esquery.matches(node, esquery.parse(cntxt.context), null, { - visitorKeys: sourceCode.visitorKeys, - })) && + esquery.matches( + node, + esquery.parse(cntxt), + null, + // https://github.com/DefinitelyTyped/DefinitelyTyped/pull/65460 + // @ts-expect-error + { + visitorKeys: sourceCode.visitorKeys, + }, + ) : + (!cntxt.context || cntxt.context === 'any' || + esquery.matches( + node, + esquery.parse(cntxt.context), + null, + // https://github.com/DefinitelyTyped/DefinitelyTyped/pull/65460 + // @ts-expect-error + { + visitorKeys: sourceCode.visitorKeys, + }, + )) && comment === cntxt.comment; }, ); @@ -50,9 +65,11 @@ export default iterateJsdoc(({ 'Syntax is restricted: {{context}}' + (comment ? ' with {{comment}}' : ''); - report(message, null, null, { + report(message, null, null, comment ? { comment, context: contextStr, + } : { + context: contextStr, }); }, { contextSelected: true, diff --git a/src/rules/noUndefinedTypes.js b/src/rules/noUndefinedTypes.js index 604bc11e8..bd72e0c32 100644 --- a/src/rules/noUndefinedTypes.js +++ b/src/rules/noUndefinedTypes.js @@ -43,8 +43,8 @@ const typescriptGlobals = [ ]; /** - * @param {string} str - * @returns {undefined|string} + * @param {string|false|undefined} [str] + * @returns {undefined|string|false} */ const stripPseudoTypes = (str) => { return str && str.replace(/(?:\.|<>|\.<>|\[\])$/u, ''); @@ -88,7 +88,7 @@ export default iterateJsdoc(({ mode, } = settings; if (Object.keys(preferredTypes).length) { - definedPreferredTypes = Object.values(preferredTypes).map((preferredType) => { + definedPreferredTypes = /** @type {string[]} */ (Object.values(preferredTypes).map((preferredType) => { if (typeof preferredType === 'string') { // May become an empty string but will be filtered out below return stripPseudoTypes(preferredType); @@ -108,7 +108,7 @@ export default iterateJsdoc(({ }) .filter((preferredType) => { return preferredType; - }); + })); } const typedefDeclarations = sourceCode.getAllComments() diff --git a/src/rules/requireDescription.js b/src/rules/requireDescription.js index ae36e8382..6c2d804a9 100644 --- a/src/rules/requireDescription.js +++ b/src/rules/requireDescription.js @@ -38,9 +38,11 @@ export default iterateJsdoc(({ return; } - const isBlocked = typeof targetTagName === 'object' && targetTagName.blocked; + const isBlocked = typeof targetTagName === 'object' && 'blocked' in targetTagName && targetTagName.blocked; if (isBlocked) { - targetTagName = targetTagName.tagName; + targetTagName = /** @type {{blocked: true; tagName: string;}} */ ( + targetTagName + ).tagName; } if (descriptionStyle !== 'tag') { diff --git a/src/rules/requireFileOverview.js b/src/rules/requireFileOverview.js index 126350d5d..33ce15002 100644 --- a/src/rules/requireFileOverview.js +++ b/src/rules/requireFileOverview.js @@ -35,11 +35,11 @@ export default iterateJsdoc(({ setDefaults(state); for (const tagName of Object.keys(tags)) { - const targetTagName = utils.getPreferredTagName({ + const targetTagName = /** @type {string} */ (utils.getPreferredTagName({ tagName, - }); + })); - const hasTag = targetTagName && utils.hasTag(targetTagName); + const hasTag = Boolean(targetTagName && utils.hasTag(targetTagName)); state.hasTag[tagName] = hasTag || state.hasTag[tagName]; diff --git a/src/rules/requireJsdoc.js b/src/rules/requireJsdoc.js index 371197705..222afd8ea 100644 --- a/src/rules/requireJsdoc.js +++ b/src/rules/requireJsdoc.js @@ -160,7 +160,8 @@ const OPTIONS_SCHEMA = { */ const getOption = (context, baseObject, option, key) => { if (context.options[0] && option in context.options[0] && - // Todo: boolean shouldn't be returning property, but tests currently require + // Todo: boolean shouldn't be returning property, but + // tests currently require (typeof context.options[0][option] === 'boolean' || key in context.options[0][option]) ) { @@ -288,16 +289,28 @@ export default { return {}; } + const opts = getOptions(context, settings); + const { require: requireOption, contexts, - publicOnly, exemptEmptyFunctions, exemptEmptyConstructors, enableFixer, fixerMessage, minLineCount, - } = getOptions(context, settings); + } = opts; + + const publicOnly = + /* eslint-disable jsdoc/valid-types -- Old version */ + /** + * @type {{ + * [key: string]: boolean | undefined; + * }} + */ ( + opts.publicOnly + ); + /* eslint-enable jsdoc/valid-types -- Old version */ /** * @type {import('../iterateJsdoc.js').CheckJsdoc} @@ -394,6 +407,7 @@ 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} */ let baseNode = getReducedASTNode(node, sourceCode); const decorator = getDecorator(baseNode); @@ -403,36 +417,55 @@ export default { const indent = jsdocUtils.getIndent({ text: sourceCode.getText( - baseNode, - baseNode.loc.start.column, + /** @type {import('eslint').Rule.Node} */ (baseNode), + /** @type {import('eslint').AST.SourceLocation} */ + ( + /** @type {import('eslint').Rule.Node} */ (baseNode).loc + ).start.column, ), }); const { inlineCommentBlock, - } = contexts.find(({ - context: ctxt, - }) => { - return ctxt === node.type; - }) || {}; + } = + /** + * @type {{ + * context: string, + * inlineCommentBlock: boolean, + * minLineCount: import('../iterateJsdoc.js').Integer + * }} + */ (contexts.find((contxt) => { + if (typeof contxt === 'string') { + return false; + } + + const { + context: ctxt, + } = contxt; + return ctxt === node.type; + })) || {}; const insertion = (inlineCommentBlock ? `/** ${fixerMessage}` : `/**\n${indent}*${fixerMessage}\n${indent}`) + `*/${'\n'.repeat(lines)}${indent.slice(0, -1)}`; - return fixer.insertTextBefore(baseNode, insertion); + return fixer.insertTextBefore( + /** @type {import('eslint').Rule.Node} */ + (baseNode), + insertion, + ); }; const report = () => { const { start, - } = node.loc; + } = /** @type {import('eslint').AST.SourceLocation} */ (node.loc); const loc = { end: { column: 0, line: start.line + 1, }, - start: node.loc.start, + start, }; context.report({ fix: enableFixer ? fix : null, @@ -458,6 +491,7 @@ export default { report(); } }; + /* eslint-enable complexity -- Temporary */ /** * @param {string} prop @@ -485,7 +519,14 @@ export default { ].includes(node.parent.type) || [ 'Property', 'ObjectProperty', 'ClassProperty', 'PropertyDefinition', - ].includes(node.parent.type) && node === node.parent.value + ].includes(node.parent.type) && + node === + /** + * @type {import('@typescript-eslint/types').TSESTree.Property| + * import('@typescript-eslint/types').TSESTree.PropertyDefinition + * } + */ + (node.parent).value ) { checkJsDoc({ isFunctionContext: true, @@ -534,7 +575,14 @@ export default { ].includes(node.parent.type) || [ 'Property', 'ObjectProperty', 'ClassProperty', 'PropertyDefinition', - ].includes(node.parent.type) && node === node.parent.value + ].includes(node.parent.type) && + node === + /** + * @type {import('@typescript-eslint/types').TSESTree.Property| + * import('@typescript-eslint/types').TSESTree.PropertyDefinition + * } + */ + (node.parent).value ) { checkJsDoc({ isFunctionContext: true, @@ -550,7 +598,7 @@ export default { checkJsDoc({ isFunctionContext: true, selector: 'MethodDefinition', - }, null, node.value); + }, null, /** @type {import('eslint').Rule.Node} */ (node.value)); }, }; }, diff --git a/src/rules/requireParam.js b/src/rules/requireParam.js index 7ad1930e1..033464cfa 100644 --- a/src/rules/requireParam.js +++ b/src/rules/requireParam.js @@ -19,18 +19,21 @@ const rootNamer = (desiredRoots, currentIndex) => { } return [ - name, incremented, () => { + name, + incremented, + () => { return rootNamer(desiredRoots, idx); }, ]; }; -// eslint-disable-next-line complexity +/* eslint-disable complexity -- Temporary */ export default iterateJsdoc(({ jsdoc, utils, context, }) => { + /* eslint-enable complexity -- Temporary */ if (utils.avoidDocs()) { return; } @@ -55,9 +58,9 @@ export default iterateJsdoc(({ useDefaultObjectProperties = false, } = context.options[0] || {}; - const preferredTagName = utils.getPreferredTagName({ + const preferredTagName = /** @type {string} */ (utils.getPreferredTagName({ tagName: 'param', - }); + })); if (!preferredTagName) { return; } @@ -88,10 +91,21 @@ export default iterateJsdoc(({ return utils.dropPathSegmentQuotes(String(cur)) in paramIndex; }; + /** + * + * @param {} cur + * @returns {} + */ const getParamIndex = (cur) => { return paramIndex[utils.dropPathSegmentQuotes(String(cur))]; }; + /** + * + * @param {} cur + * @param {} idx + * @returns {void} + */ const setParamIndex = (cur, idx) => { paramIndex[utils.dropPathSegmentQuotes(String(cur))] = idx; }; @@ -103,6 +117,12 @@ export default iterateJsdoc(({ setParamIndex(cur, idx); } + /** + * + * @param {} jsdocTags + * @param {} indexAtFunctionParams + * @returns {import('../iterateJsdoc.js').Integer} + */ const findExpectedIndex = (jsdocTags, indexAtFunctionParams) => { const remainingRoots = functionParameterNames.slice(indexAtFunctionParams || 0); const foundIndex = jsdocTags.findIndex(({ @@ -310,6 +330,16 @@ export default iterateJsdoc(({ } } + /** + * + * @param {{ + * functionParameterIdx: import('../iterateJsdoc.js').Integer, + * functionParameterName: string, + * remove: true, + * inc: boolean, + * type: string + * }} cfg + */ const fix = ({ functionParameterIdx, functionParameterName, @@ -321,6 +351,13 @@ export default iterateJsdoc(({ return; } + /** + * + * @param {} tagIndex + * @param {} sourceIndex + * @param {} spliceCount + * @returns {} + */ const createTokens = (tagIndex, sourceIndex, spliceCount) => { // console.log(sourceIndex, tagIndex, jsdoc.tags, jsdoc.source); const tokens = { @@ -376,6 +413,9 @@ export default iterateJsdoc(({ } }; + /** + * @returns {void} + */ const fixer = () => { for (const missingTag of missingTags) { fix(missingTag); diff --git a/src/rules/requireProperty.js b/src/rules/requireProperty.js index 886d45708..9d29ebf40 100644 --- a/src/rules/requireProperty.js +++ b/src/rules/requireProperty.js @@ -14,9 +14,9 @@ export default iterateJsdoc(({ return; } - const targetTagName = utils.getPreferredTagName({ + const targetTagName = /** @type {string} */ (utils.getPreferredTagName({ tagName: 'property', - }); + })); if (utils.hasATag([ targetTagName, diff --git a/src/rules/requireReturns.js b/src/rules/requireReturns.js index ac32d9b24..ddcb01d33 100644 --- a/src/rules/requireReturns.js +++ b/src/rules/requireReturns.js @@ -51,9 +51,9 @@ export default iterateJsdoc(({ return; } - const tagName = utils.getPreferredTagName({ + const tagName = /** @type {string} */ (utils.getPreferredTagName({ tagName: 'returns', - }); + })); if (!tagName) { return; } diff --git a/src/rules/requireReturnsCheck.js b/src/rules/requireReturnsCheck.js index d5dae8bda..4b2c29b44 100755 --- a/src/rules/requireReturnsCheck.js +++ b/src/rules/requireReturnsCheck.js @@ -33,6 +33,7 @@ const canSkip = (utils, settings) => { settings.mode === 'closure' && utils.classHasTag('record'); }; +// eslint-disable-next-line complexity -- Temporary export default iterateJsdoc(({ context, node, @@ -54,9 +55,9 @@ export default iterateJsdoc(({ return; } - const tagName = utils.getPreferredTagName({ + const tagName = /** @type {string} */ (utils.getPreferredTagName({ tagName: 'returns', - }); + })); if (!tagName) { return; } @@ -106,7 +107,7 @@ export default iterateJsdoc(({ exemptAsync, true, )) && - (!exemptGenerators || !node.generator) + (!exemptGenerators || !('generator' in /** @type {import('../iterateJsdoc.js').Node} */ (node)) || !node.generator) ) { report(`JSDoc @${tagName} declaration present but return expression not available in function.`); } diff --git a/src/rules/requireThrows.js b/src/rules/requireThrows.js index cae68a271..b2247f442 100644 --- a/src/rules/requireThrows.js +++ b/src/rules/requireThrows.js @@ -33,9 +33,9 @@ export default iterateJsdoc(({ return; } - const tagName = utils.getPreferredTagName({ + const tagName = /** @type {string} */ (utils.getPreferredTagName({ tagName: 'throws', - }); + })); if (!tagName) { return; } diff --git a/src/rules/requireYields.js b/src/rules/requireYields.js index c18b65472..98d7cd122 100644 --- a/src/rules/requireYields.js +++ b/src/rules/requireYields.js @@ -41,9 +41,9 @@ const canSkip = (utils) => { * @returns {[preferredTagName?: string, missingTag?: boolean]} */ const checkTagName = (utils, report, tagName) => { - const preferredTagName = utils.getPreferredTagName({ + const preferredTagName = /** @type {string} */ (utils.getPreferredTagName({ tagName, - }); + })); if (!preferredTagName) { return []; } diff --git a/src/rules/requireYieldsCheck.js b/src/rules/requireYieldsCheck.js index fcc8a2a5c..5b8cdc352 100644 --- a/src/rules/requireYieldsCheck.js +++ b/src/rules/requireYieldsCheck.js @@ -42,9 +42,9 @@ const canSkip = (utils, settings) => { * @returns {[]|[preferredTagName: string, tag: import('comment-parser').Spec]} */ const checkTagName = (utils, report, tagName) => { - const preferredTagName = utils.getPreferredTagName({ + const preferredTagName = /** @type {string} */ (utils.getPreferredTagName({ tagName, - }); + })); if (!preferredTagName) { return []; } diff --git a/src/utils/hasReturnValue.js b/src/utils/hasReturnValue.js index 768652777..92d5e55b4 100644 --- a/src/utils/hasReturnValue.js +++ b/src/utils/hasReturnValue.js @@ -1,16 +1,14 @@ -/* eslint-disable jsdoc/no-undefined-types */ - /** * @typedef {import('estree').Node| - * import('@typescript-eslint/types').TSESTree.TSTypeReference} ESTreeOrTypeScriptNode + * import('@typescript-eslint/types').TSESTree.Node} ESTreeOrTypeScriptNode */ /** * Checks if a node is a promise but has no resolve value or an empty value. * An `undefined` resolve does not count. * - * @param {ESTreeOrTypeScriptNode} node - * @returns {boolean} + * @param {ESTreeOrTypeScriptNode|undefined|null} node + * @returns {boolean|undefined|null} */ const isNewPromiseExpression = (node) => { return node && node.type === 'NewExpression' && node.callee.type === 'Identifier' && @@ -18,11 +16,13 @@ const isNewPromiseExpression = (node) => { }; /** - * @param {import('@typescript-eslint/types').TSESTree.TSTypeReference} node + * @param {ESTreeOrTypeScriptNode|null|undefined} node * @returns {boolean} */ const isVoidPromise = (node) => { - return node?.typeParameters?.params?.[0]?.type === 'TSVoidKeyword'; + return /** @type {import('@typescript-eslint/types').TSESTree.TSTypeReference} */ ( + node + )?.typeParameters?.params?.[0]?.type === 'TSVoidKeyword'; }; const undefinedKeywords = new Set([ @@ -32,7 +32,7 @@ const undefinedKeywords = new Set([ /** * Checks if a node has a return statement. Void return does not count. * - * @param {import('estree').Node|import('@typescript-eslint/types').TSESTree.Node} node + * @param {ESTreeOrTypeScriptNode|undefined|null} node * @param {boolean} [throwOnNullReturn] * @param {PromiseFilter} [promFilter] * @returns {boolean|undefined} @@ -56,7 +56,9 @@ const hasReturnValue = (node, throwOnNullReturn, promFilter) => { case 'FunctionExpression': case 'FunctionDeclaration': case 'ArrowFunctionExpression': { - return 'expression' in node && node.expression && (!isNewPromiseExpression(node.body) || !isVoidPromise(node.body)) || + return 'expression' in node && node.expression && (!isNewPromiseExpression( + node.body, + ) || !isVoidPromise(node.body)) || hasReturnValue(node.body, throwOnNullReturn, promFilter); } @@ -125,9 +127,9 @@ const hasReturnValue = (node, throwOnNullReturn, promFilter) => { /** * Checks if a node has a return statement. Void return does not count. * - * @param {import('@typescript-eslint/types').TSESTree.Node} node + * @param {ESTreeOrTypeScriptNode|null|undefined} node * @param {PromiseFilter} promFilter - * @returns {undefined|boolean|import('@typescript-eslint/types').TSESTree.Node} + * @returns {undefined|boolean|ESTreeOrTypeScriptNode} */ // eslint-disable-next-line complexity const allBrancheshaveReturnValues = (node, promFilter) => { @@ -148,10 +150,12 @@ const allBrancheshaveReturnValues = (node, promFilter) => { case 'FunctionExpression': case 'FunctionDeclaration': case 'ArrowFunctionExpression': { - return node.expression && (!isNewPromiseExpression(node.body) || !isVoidPromise(node.body)) || - allBrancheshaveReturnValues(node.body, promFilter) || node.body.body.some((nde) => { - return nde.type === 'ReturnStatement'; - }); + return 'expression' in node && node.expression && (!isNewPromiseExpression(node.body) || !isVoidPromise(node.body)) || + allBrancheshaveReturnValues(node.body, promFilter) || + /** @type {import('@typescript-eslint/types').TSESTree.BlockStatement} */ + (node.body).body.some((nde) => { + return nde.type === 'ReturnStatement'; + }); } case 'BlockStatement': { @@ -161,7 +165,12 @@ const allBrancheshaveReturnValues = (node, promFilter) => { case 'WhileStatement': case 'DoWhileStatement': - if (node.test.value === true) { + if ( + /** + * @type {import('@typescript-eslint/types').TSESTree.Literal} + */ + (node.test).value === true + ) { // If this is an infinite loop, we assume only one branch // is needed to provide a return return hasReturnValue(node.body, false, promFilter); @@ -177,7 +186,8 @@ const allBrancheshaveReturnValues = (node, promFilter) => { } case 'IfStatement': { - return allBrancheshaveReturnValues(node.consequent, promFilter) && allBrancheshaveReturnValues(node.alternate, promFilter); + return allBrancheshaveReturnValues(node.consequent, promFilter) && + allBrancheshaveReturnValues(node.alternate, promFilter); } case 'TryStatement': { @@ -192,7 +202,7 @@ const allBrancheshaveReturnValues = (node, promFilter) => { hasReturnValue(node.finalizer, true, promFilter); } catch (error) { // istanbul ignore else - if (error.message === 'Null return') { + if (/** @type {Error} */ (error).message === 'Null return') { return false; } @@ -206,7 +216,7 @@ const allBrancheshaveReturnValues = (node, promFilter) => { } case 'SwitchStatement': { - return node.cases.every( + return /** @type {import('@typescript-eslint/types').TSESTree.SwitchStatement} */ (node).cases.every( (someCase) => { return !someCase.consequent.some((consNode) => { return consNode.type === 'BreakStatement' || @@ -243,7 +253,7 @@ const allBrancheshaveReturnValues = (node, promFilter) => { /** * @callback PromiseFilter - * @param {import('@typescript-eslint/types').TSESTree.Node} node + * @param {ESTreeOrTypeScriptNode|undefined} node * @returns {boolean} */ @@ -256,7 +266,7 @@ const allBrancheshaveReturnValues = (node, promFilter) => { * unlikely, we avoid the performance cost of checking everywhere for * (re)declarations or assignments. * - * @param {AST} node + * @param {import('@typescript-eslint/types').TSESTree.Node|null|undefined} node * @param {string} resolverName * @returns {boolean} */ @@ -268,10 +278,13 @@ const hasNonEmptyResolverCall = (node, resolverName) => { // Arrow function without block switch (node.type) { + // @ts-expect-error Babel? // istanbul ignore next -- In Babel? case 'OptionalCallExpression': case 'CallExpression': - return node.callee.name === resolverName && ( + return /** @type {import('@typescript-eslint/types').TSESTree.Identifier} */ ( + node.callee + ).name === resolverName && ( // Implicit or explicit undefined node.arguments.length > 1 || node.arguments[0] !== undefined @@ -296,7 +309,9 @@ const hasNonEmptyResolverCall = (node, resolverName) => { case 'FunctionDeclaration': case 'ArrowFunctionExpression': { // Shadowing - if (node.params[0]?.name === resolverName) { + if (/** @type {import('@typescript-eslint/types').TSESTree.Identifier} */ ( + node.params[0] + )?.name === resolverName) { return false; } @@ -364,6 +379,7 @@ const hasNonEmptyResolverCall = (node, resolverName) => { return node.properties.some((property) => { return hasNonEmptyResolverCall(property, resolverName); }); + // @ts-expect-error Babel? // istanbul ignore next -- In Babel? case 'ClassMethod': case 'MethodDefinition': @@ -373,21 +389,26 @@ const hasNonEmptyResolverCall = (node, resolverName) => { node.computed && hasNonEmptyResolverCall(node.key, resolverName) || hasNonEmptyResolverCall(node.value, resolverName); + // @ts-expect-error Babel? // istanbul ignore next -- In Babel? case 'ObjectProperty': /* eslint-disable no-fallthrough */ // istanbul ignore next -- In Babel? case 'PropertyDefinition': + // @ts-expect-error Babel? // istanbul ignore next -- In Babel? case 'ClassProperty': case 'Property': /* eslint-enable no-fallthrough */ return node.computed && hasNonEmptyResolverCall(node.key, resolverName) || hasNonEmptyResolverCall(node.value, resolverName); + // @ts-expect-error Babel? // istanbul ignore next -- In Babel? case 'ObjectMethod': + // @ts-expect-error // istanbul ignore next -- In Babel? return node.computed && hasNonEmptyResolverCall(node.key, resolverName) || + // @ts-expect-error node.arguments.some((nde) => { return hasNonEmptyResolverCall(nde, resolverName); }); @@ -416,6 +437,7 @@ const hasNonEmptyResolverCall = (node, resolverName) => { case 'TaggedTemplateExpression': return hasNonEmptyResolverCall(node.quasi, resolverName); + // @ts-expect-error Babel? // ?. // istanbul ignore next -- In Babel? case 'OptionalMemberExpression': @@ -423,6 +445,7 @@ const hasNonEmptyResolverCall = (node, resolverName) => { return hasNonEmptyResolverCall(node.object, resolverName) || hasNonEmptyResolverCall(node.property, resolverName); + // @ts-expect-error Babel? // istanbul ignore next -- In Babel? case 'Import': case 'ImportExpression': @@ -453,7 +476,7 @@ const hasNonEmptyResolverCall = (node, resolverName) => { * Checks if a Promise executor has no resolve value or an empty value. * An `undefined` resolve does not count. * - * @param {import('@typescript-eslint/types').TSESTree.Node} node + * @param {ESTreeOrTypeScriptNode} node * @param {boolean} anyPromiseAsReturn * @param {boolean} [allBranches] * @returns {boolean} @@ -461,7 +484,7 @@ const hasNonEmptyResolverCall = (node, resolverName) => { const hasValueOrExecutorHasNonEmptyResolveValue = (node, anyPromiseAsReturn, allBranches) => { const hasReturnMethod = allBranches ? /** - * @param {import('@typescript-eslint/types').TSESTree.Node} nde + * @param {ESTreeOrTypeScriptNode} nde * @param {PromiseFilter} promiseFilter * @returns {boolean} */ @@ -471,7 +494,7 @@ const hasValueOrExecutorHasNonEmptyResolveValue = (node, anyPromiseAsReturn, all hasReturn = hasReturnValue(nde, true, promiseFilter); } catch (error) { // istanbul ignore else - if (error.message === 'Null return') { + if (/** @type {Error} */ (error).message === 'Null return') { return false; } @@ -484,7 +507,7 @@ const hasValueOrExecutorHasNonEmptyResolveValue = (node, anyPromiseAsReturn, all return Boolean(hasReturn && allBrancheshaveReturnValues(nde, promiseFilter)); } : /** - * @param {import('@typescript-eslint/types').TSESTree.Node} nde + * @param {ESTreeOrTypeScriptNode} nde * @param {PromiseFilter} promiseFilter * @returns {boolean} */ @@ -501,22 +524,28 @@ const hasValueOrExecutorHasNonEmptyResolveValue = (node, anyPromiseAsReturn, all return false; } - const [ - { - params, - body, - } = {}, - ] = prom.arguments; + const { + params, + body, + } = + /** + * @type {import('@typescript-eslint/types').TSESTree.FunctionExpression| + * import('@typescript-eslint/types').TSESTree.ArrowFunctionExpression} + */ ( + /** @type {import('@typescript-eslint/types').TSESTree.NewExpression} */ ( + prom + ).arguments[0] + ) || {}; if (!params?.length) { return false; } - const [ - { - name: resolverName, - }, - ] = params; + const { + name: resolverName, + } = /** @type {import('@typescript-eslint/types').TSESTree.Identifier} */ ( + params[0] + ); return hasNonEmptyResolverCall(body, resolverName); }); diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index 32595d43b..955f21cf7 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -1031,6 +1031,31 @@ export default { output: ` `, }, + { + code: ` + /** + * @todo + */ + function quux () { + + } + `, + errors: [ + { + line: 3, + message: 'Please don\'t use todo', + }, + ], + settings: { + jsdoc: { + tagNamePreference: { + todo: { + message: 'Please don\'t use todo', + }, + }, + }, + }, + }, ], valid: [ { diff --git a/test/rules/index.js b/test/rules/index.js index f398b91ea..f035c6c49 100644 --- a/test/rules/index.js +++ b/test/rules/index.js @@ -20,6 +20,8 @@ import config from '../../src/index.js'; const ruleTester = new RuleTester(); const { + // Todo: Could submit this to @types/eslint + // @ts-expect-error FlatRuleTester, } = pkg; From 89b81ce6a21b88e66cb686a2aa40f2a86834029d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kr=C3=A6n=20Hansen?= Date: Mon, 15 May 2023 16:02:34 +0200 Subject: [PATCH 086/273] fix: check-tag-names crash on module comment --- docs/rules/check-tag-names.md | 6 ++++++ src/rules/checkTagNames.js | 4 ++++ test/rules/assertions/checkTagNames.js | 13 +++++++++++++ 3 files changed, 23 insertions(+) diff --git a/docs/rules/check-tag-names.md b/docs/rules/check-tag-names.md index a38e25a26..d37eb6ba0 100644 --- a/docs/rules/check-tag-names.md +++ b/docs/rules/check-tag-names.md @@ -1122,5 +1122,11 @@ interface WebTwain { * @satisfies */ // Settings: {"jsdoc":{"mode":"typescript"}} + +/** + * @module + * A comment related to the module + */ +// "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] ```` diff --git a/src/rules/checkTagNames.js b/src/rules/checkTagNames.js index 8aa07bc20..d7adc39a0 100644 --- a/src/rules/checkTagNames.js +++ b/src/rules/checkTagNames.js @@ -143,6 +143,10 @@ export default iterateJsdoc(({ return false; } + if (node === null) { + return false; + } + if (context.getFilename().endsWith('.d.ts') && [ 'Program', null, undefined, ].includes(node?.parent?.type)) { diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index 955f21cf7..b7d42dbf7 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -1455,5 +1455,18 @@ export default { }, }, }, + { + code: ` + /** + * @module + * A comment related to the module + */ + `, + options: [ + { + typed: true, + }, + ], + }, ], }; From cc67c172fa5848e7af538d51172205e3d7667638 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 14 May 2023 21:54:50 -0700 Subject: [PATCH 087/273] refactor: TS work --- src/exportParser.js | 492 +++++++++++++++++++++++++++----------- src/iterateJsdoc.js | 3 +- src/jsdocUtils.js | 100 ++++++-- src/rules/requireJsdoc.js | 10 + 4 files changed, 448 insertions(+), 157 deletions(-) diff --git a/src/exportParser.js b/src/exportParser.js index ca452158c..521321059 100644 --- a/src/exportParser.js +++ b/src/exportParser.js @@ -6,9 +6,29 @@ import debugModule from 'debug'; const debug = debugModule('requireExportJsdoc'); /** - * @returns {{ - * props: object - * }} + * @typedef {{ + * value: string + * }} ValueObject + */ + +/* eslint-disable jsdoc/valid-types -- Old version */ +/** + * @typedef {{ + * type?: string, + * value?: ValueObject|import('eslint').Rule.Node, + * props: { + * [key: string]: CreatedNode|null, + * }, + * special?: true, + * globalVars?: CreatedNode, + * exported?: boolean, + * ANONYMOUS_DEFAULT?: import('eslint').Rule.Node + * }} CreatedNode + */ +/* eslint-enable jsdoc/valid-types -- Old version */ + +/** + * @returns {CreatedNode} */ const createNode = function () { return { @@ -17,19 +37,18 @@ const createNode = function () { }; /** - * @param {} symbol - * @returns {null} + * @param {CreatedNode|null} symbol + * @returns {string|null} */ const getSymbolValue = function (symbol) { - /* istanbul ignore next */ + /* istanbul ignore if */ if (!symbol) { - /* istanbul ignore next */ return null; } - /* istanbul ignore next */ + /* istanbul ignore else */ if (symbol.type === 'literal') { - return symbol.value.value; + return /** @type {ValueObject} */ (symbol.value).value; } /* istanbul ignore next */ @@ -38,11 +57,11 @@ const getSymbolValue = function (symbol) { /** * - * @param {} node - * @param {} globals - * @param {} scope - * @param {} opts - * @returns {} + * @param {import('estree').Identifier} node + * @param {CreatedNode} globals + * @param {CreatedNode} scope + * @param {SymbolOptions} opts + * @returns {CreatedNode|null} */ const getIdentifier = function (node, globals, scope, opts) { if (opts.simpleIdentifier) { @@ -73,17 +92,34 @@ const getIdentifier = function (node, globals, scope, opts) { return null; }; -let createSymbol = null; +/** + * @callback CreateSymbol + * @param {import('eslint').Rule.Node|null} node + * @param {CreatedNode} globals + * @param {import('eslint').Rule.Node|null} value + * @param {CreatedNode} [scope] + * @param {boolean|SymbolOptions} [isGlobal] + * @returns {CreatedNode|null} + */ + +/** @type {CreateSymbol} */ +let createSymbol; // eslint-disable-line prefer-const /* eslint-disable complexity -- Temporary */ +/** + * @typedef {{ + * simpleIdentifier?: boolean + * }} SymbolOptions + */ + /** * - * @param {} node - * @param {} globals - * @param {} scope - * @param {} opt - * @returns {} + * @param {import('eslint').Rule.Node} node + * @param {CreatedNode} globals + * @param {CreatedNode} scope + * @param {SymbolOptions} [opt] + * @returns {CreatedNode|null} */ const getSymbol = function (node, globals, scope, opt) { /* eslint-enable complexity -- Temporary */ @@ -96,13 +132,25 @@ const getSymbol = function (node, globals, scope, opt) { } case 'MemberExpression': { - const obj = getSymbol(node.object, globals, scope, opts); - const propertySymbol = getSymbol(node.property, globals, scope, { - simpleIdentifier: !node.computed, - }); + const obj = getSymbol( + /** @type {import('eslint').Rule.Node} */ + (node.object), + globals, + scope, + opts, + ); + const propertySymbol = getSymbol( + /** @type {import('eslint').Rule.Node} */ + (node.property), + globals, + scope, + { + simpleIdentifier: !node.computed, + }, + ); const propertyValue = getSymbolValue(propertySymbol); - /* istanbul ignore next */ + /* istanbul ignore else */ if (obj && propertyValue && obj.props[propertyValue]) { const block = obj.props[propertyValue]; @@ -117,17 +165,28 @@ const getSymbol = function (node, globals, scope, opt) { } */ /* istanbul ignore next */ - debug(`MemberExpression: Missing property ${node.property.name}`); + debug(`MemberExpression: Missing property ${ + /** @type {import('estree').PrivateIdentifier} */ (node.property).name + }`); /* istanbul ignore next */ return null; } case 'ClassExpression': { - return getSymbol(node.body, globals, scope, opts); + return getSymbol( + /** @type {import('eslint').Rule.Node} */ + (node.body), + globals, + scope, + opts, + ); } + // @ts-expect-error TS OK case 'TSTypeAliasDeclaration': + // @ts-expect-error TS OK + // Fallthrough case 'TSEnumDeclaration': case 'TSInterfaceDeclaration': case 'ClassDeclaration': case 'FunctionExpression': case 'FunctionDeclaration': @@ -142,15 +201,45 @@ const getSymbol = function (node, globals, scope, opt) { } case 'AssignmentExpression': { - return createSymbol(node.left, globals, node.right, scope, opts); + return createSymbol( + /** @type {import('eslint').Rule.Node} */ + (node.left), + globals, + /** @type {import('eslint').Rule.Node} */ + (node.right), + scope, + opts, + ); } case 'ClassBody': { const val = createNode(); for (const method of node.body) { - val.props[method.key.name] = createNode(); - val.props[method.key.name].type = 'object'; - val.props[method.key.name].value = method.value; + val.props[ + /** @type {import('estree').Identifier} */ ( + /** @type {import('estree').MethodDefinition} */ ( + method + ).key + ).name + ] = createNode(); + /* eslint-disable jsdoc/valid-types -- Old version */ + /** @type {{[key: string]: CreatedNode}} */ (val.props)[ + /** @type {import('estree').Identifier} */ ( + /** @type {import('estree').MethodDefinition} */ ( + method + ).key + ).name + ].type = 'object'; + /** @type {{[key: string]: CreatedNode}} */ (val.props)[ + /** @type {import('estree').Identifier} */ ( + /** @type {import('estree').MethodDefinition} */ ( + method + ).key + ).name + ].value = /** @type {import('eslint').Rule.Node} */ ( + /** @type {import('estree').MethodDefinition} */ (method).value + ); + /* eslint-enable jsdoc/valid-types -- Old version */ } val.type = 'object'; @@ -173,10 +262,23 @@ const getSymbol = function (node, globals, scope, opt) { continue; } - const propVal = getSymbol(prop.value, globals, scope, opts); - /* istanbul ignore next */ + const propVal = getSymbol( + /** @type {import('eslint').Rule.Node} */ ( + /** @type {import('estree').Property} */ + (prop).value + ), + globals, + scope, + opts, + ); + /* istanbul ignore if */ if (propVal) { - val.props[prop.key.name] = propVal; + val.props[ + /** @type {import('estree').PrivateIdentifier} */ + ( + /** @type {import('estree').Property} */ (prop).key + ).name + ] = propVal; } } @@ -198,11 +300,11 @@ const getSymbol = function (node, globals, scope, opt) { /** * - * @param {} block - * @param {} name - * @param {} value - * @param {} globals - * @param {} isGlobal + * @param {CreatedNode} block + * @param {string} name + * @param {CreatedNode|null} value + * @param {CreatedNode} globals + * @param {boolean|SymbolOptions|undefined} isGlobal * @returns {void} */ const createBlockSymbol = function (block, name, value, globals, isGlobal) { @@ -212,30 +314,34 @@ const createBlockSymbol = function (block, name, value, globals, isGlobal) { } }; -/** - * - * @param {} node - * @param {} globals - * @param {} value - * @param {} scope - * @param {} isGlobal - * @returns {null} - */ createSymbol = function (node, globals, value, scope, isGlobal) { const block = scope || globals; + /* istanbul ignore if */ + if (!node) { + return null; + } + let symbol; // eslint-disable-next-line default-case switch (node.type) { case 'FunctionDeclaration': /* istanbul ignore next */ + // @ts-expect-error TS OK // Fall through case 'TSEnumDeclaration': case 'TSInterfaceDeclaration': /* istanbul ignore next */ + // @ts-expect-error TS OK // Fall through case 'TSTypeAliasDeclaration': case 'ClassDeclaration': { - /* istanbul ignore next */ - if (node.id && node.id.type === 'Identifier') { - return createSymbol(node.id, globals, node, globals); + const nde = /** @type {import('estree').ClassDeclaration} */ (node); + /* istanbul ignore else */ + if (nde.id && nde.id.type === 'Identifier') { + return createSymbol( + /** @type {import('eslint').Rule.Node} */ (nde.id), + globals, + node, + globals, + ); } /* istanbul ignore next */ @@ -243,21 +349,22 @@ createSymbol = function (node, globals, value, scope, isGlobal) { } case 'Identifier': { + const nde = /** @type {import('estree').Identifier} */ (node); if (value) { const valueSymbol = getSymbol(value, globals, block); - /* istanbul ignore next */ + /* istanbul ignore else */ if (valueSymbol) { - createBlockSymbol(block, node.name, valueSymbol, globals, isGlobal); + createBlockSymbol(block, nde.name, valueSymbol, globals, isGlobal); - return block.props[node.name]; + return block.props[nde.name]; } /* istanbul ignore next */ - debug('Identifier: Missing value symbol for %s', node.name); + debug('Identifier: Missing value symbol for %s', nde.name); } else { - createBlockSymbol(block, node.name, createNode(), globals, isGlobal); + createBlockSymbol(block, nde.name, createNode(), globals, isGlobal); - return block.props[node.name]; + return block.props[nde.name]; } /* istanbul ignore next */ @@ -265,20 +372,34 @@ createSymbol = function (node, globals, value, scope, isGlobal) { } case 'MemberExpression': { - symbol = getSymbol(node.object, globals, block); - - const propertySymbol = getSymbol(node.property, globals, block, { - simpleIdentifier: !node.computed, - }); + const nde = /** @type {import('estree').MemberExpression} */ (node); + symbol = getSymbol( + /** @type {import('eslint').Rule.Node} */ (nde.object), globals, block, + ); + + const propertySymbol = getSymbol( + /** @type {import('eslint').Rule.Node} */ (nde.property), + globals, + block, + { + simpleIdentifier: !nde.computed, + }, + ); const propertyValue = getSymbolValue(propertySymbol); if (symbol && propertyValue) { - createBlockSymbol(symbol, propertyValue, getSymbol(value, globals, block), globals, isGlobal); - + createBlockSymbol(symbol, propertyValue, getSymbol( + /** @type {import('eslint').Rule.Node} */ + (value), globals, block, + ), globals, isGlobal); return symbol.props[propertyValue]; } - /* istanbul ignore next */ - debug('MemberExpression: Missing symbol: %s', node.property.name); + debug( + 'MemberExpression: Missing symbol: %s', + /** @type {import('estree').Identifier} */ ( + nde.property + ).name, + ); break; } } @@ -289,34 +410,53 @@ createSymbol = function (node, globals, value, scope, isGlobal) { /** * Creates variables from variable definitions * - * @param {} node - * @param {} globals - * @param {} opts - * @returns {} + * @param {import('eslint').Rule.Node} node + * @param {CreatedNode} globals + * @param {import('./rules/requireJsdoc.js').RequireJsdocOpts} opts + * @returns {void} */ const initVariables = function (node, globals, opts) { // eslint-disable-next-line default-case switch (node.type) { case 'Program': { for (const childNode of node.body) { - initVariables(childNode, globals, opts); + initVariables( + /** @type {import('eslint').Rule.Node} */ + (childNode), + globals, + opts, + ); } break; } case 'ExpressionStatement': { - initVariables(node.expression, globals, opts); + initVariables( + /** @type {import('eslint').Rule.Node} */ + (node.expression), + globals, + opts, + ); break; } case 'VariableDeclaration': { for (const declaration of node.declarations) { // let and const - const symbol = createSymbol(declaration.id, globals, null, globals); + const symbol = createSymbol( + /** @type {import('eslint').Rule.Node} */ + (declaration.id), + globals, + null, + globals, + ); if (opts.initWindow && node.kind === 'var' && globals.props.window) { // If var, also add to window - globals.props.window.props[declaration.id.name] = symbol; + globals.props.window.props[ + /** @type {import('estree').Identifier} */ + (declaration.id).name + ] = symbol; } } @@ -325,7 +465,12 @@ const initVariables = function (node, globals, opts) { case 'ExportNamedDeclaration': { if (node.declaration) { - initVariables(node.declaration, globals, opts); + initVariables( + /** @type {import('eslint').Rule.Node} */ + (node.declaration), + globals, + opts, + ); } break; @@ -338,10 +483,10 @@ const initVariables = function (node, globals, opts) { /** * Populates variable maps using AST * - * @param {} node - * @param {} globals - * @param {} opt - * @param {} isExport + * @param {import('eslint').Rule.Node} node + * @param {CreatedNode} globals + * @param {import('./rules/requireJsdoc.js').RequireJsdocOpts} opt + * @param {true} [isExport] * @returns {boolean} */ const mapVariables = function (node, globals, opt, isExport) { @@ -356,26 +501,50 @@ const mapVariables = function (node, globals, opt, isExport) { } for (const childNode of node.body) { - mapVariables(childNode, globals, opts); + mapVariables( + /** @type {import('eslint').Rule.Node} */ + (childNode), + globals, + opts, + ); } break; } case 'ExpressionStatement': { - mapVariables(node.expression, globals, opts); + mapVariables( + /** @type {import('eslint').Rule.Node} */ + (node.expression), + globals, + opts, + ); break; } case 'AssignmentExpression': { - createSymbol(node.left, globals, node.right); + createSymbol( + /** @type {import('eslint').Rule.Node} */ + (node.left), + globals, + /** @type {import('eslint').Rule.Node} */ + (node.right), + ); break; } case 'VariableDeclaration': { for (const declaration of node.declarations) { - const isGlobal = opts.initWindow && node.kind === 'var' && globals.props.window; - const symbol = createSymbol(declaration.id, globals, declaration.init, globals, isGlobal); + const isGlobal = Boolean(opts.initWindow && node.kind === 'var' && globals.props.window); + const symbol = createSymbol( + /** @type {import('eslint').Rule.Node} */ + (declaration.id), + globals, + /** @type {import('eslint').Rule.Node} */ + (declaration.init), + globals, + isGlobal, + ); if (symbol && isExport) { symbol.exported = true; } @@ -385,20 +554,36 @@ const mapVariables = function (node, globals, opt, isExport) { } case 'FunctionDeclaration': { - /* istanbul ignore next */ - if (node.id.type === 'Identifier') { - createSymbol(node.id, globals, node, globals, true); + /* istanbul ignore if */ + if (/** @type {import('estree').Identifier} */ (node.id).type === 'Identifier') { + createSymbol( + /** @type {import('eslint').Rule.Node} */ + (node.id), + globals, + node, + globals, + true, + ); } break; } case 'ExportDefaultDeclaration': { - const symbol = createSymbol(node.declaration, globals, node.declaration); + const symbol = createSymbol( + /** @type {import('eslint').Rule.Node} */ + (node.declaration), + globals, + /** @type {import('eslint').Rule.Node} */ + (node.declaration), + ); if (symbol) { symbol.exported = true; - } else if (!node.id) { - globals.ANONYMOUS_DEFAULT = node.declaration; + } else { + // if (!node.id) { + globals.ANONYMOUS_DEFAULT = /** @type {import('eslint').Rule.Node} */ ( + node.declaration + ); } break; @@ -407,10 +592,22 @@ const mapVariables = function (node, globals, opt, isExport) { case 'ExportNamedDeclaration': { if (node.declaration) { if (node.declaration.type === 'VariableDeclaration') { - mapVariables(node.declaration, globals, opts, true); + mapVariables( + /** @type {import('eslint').Rule.Node} */ + (node.declaration), + globals, + opts, + true, + ); } else { - const symbol = createSymbol(node.declaration, globals, node.declaration); - /* istanbul ignore next */ + const symbol = createSymbol( + /** @type {import('eslint').Rule.Node} */ + (node.declaration), + globals, + /** @type {import('eslint').Rule.Node} */ + (node.declaration), + ); + /* istanbul ignore if */ if (symbol) { symbol.exported = true; } @@ -418,15 +615,25 @@ const mapVariables = function (node, globals, opt, isExport) { } for (const specifier of node.specifiers) { - mapVariables(specifier, globals, opts); + mapVariables( + /** @type {import('eslint').Rule.Node} */ + (specifier), + globals, + opts, + ); } break; } case 'ExportSpecifier': { - const symbol = getSymbol(node.local, globals, globals); - /* istanbul ignore next */ + const symbol = getSymbol( + /** @type {import('eslint').Rule.Node} */ + (node.local), + globals, + globals, + ); + /* istanbul ignore if */ if (symbol) { symbol.exported = true; } @@ -435,7 +642,12 @@ const mapVariables = function (node, globals, opt, isExport) { } case 'ClassDeclaration': { - createSymbol(node.id, globals, node.body, globals); + createSymbol( + /** @type {import('eslint').Rule.Node|null} */ (node.id), + globals, + /** @type {import('eslint').Rule.Node} */ (node.body), + globals, + ); break; } @@ -450,14 +662,15 @@ const mapVariables = function (node, globals, opt, isExport) { /** * - * @param {} node - * @param {} block - * @param {} cache + * @param {import('eslint').Rule.Node} node + * @param {CreatedNode|ValueObject|string|undefined| + * import('eslint').Rule.Node} block + * @param {(CreatedNode|ValueObject|string| + * import('eslint').Rule.Node)[]} [cache] * @returns {boolean} */ const findNode = function (node, block, cache) { let blockCache = cache || []; - /* istanbul ignore next */ if (!block || blockCache.includes(block)) { return false; } @@ -466,15 +679,19 @@ const findNode = function (node, block, cache) { blockCache.push(block); if ( + typeof block === 'object' && + 'type' in block && (block.type === 'object' || block.type === 'MethodDefinition') && block.value === node ) { return true; } - const { - props = block.body, - } = block; + if (typeof block !== 'object') { + return false; + } + + const props = ('props' in block && block.props) || ('body' in block && block.body); for (const propval of Object.values(props || {})) { if (Array.isArray(propval)) { /* istanbul ignore if */ @@ -499,8 +716,8 @@ const ignorableNestedTypes = new Set([ ]); /** - * @param {} nde - * @returns {} + * @param {import('eslint').Rule.Node} nde + * @returns {import('eslint').Rule.Node|false} */ const getExportAncestor = function (nde) { let node = nde; @@ -544,8 +761,8 @@ const canExportChildrenType = new Set([ ]); /** - * @param {} nde - * @returns {} + * @param {import('eslint').Rule.Node} nde + * @returns {false|import('eslint').Rule.Node} */ const isExportByAncestor = function (nde) { if (!canBeExportedByAncestorType.has(nde.type)) { @@ -570,13 +787,13 @@ const isExportByAncestor = function (nde) { /** * - * @param {} block - * @param {} node - * @param {} cache + * @param {CreatedNode} block + * @param {import('eslint').Rule.Node} node + * @param {CreatedNode[]} [cache] Currently unused * @returns {boolean} */ const findExportedNode = function (block, node, cache) { - /* istanbul ignore next */ + /* istanbul ignore if */ if (block === null) { return false; } @@ -586,8 +803,9 @@ const findExportedNode = function (block, node, cache) { props, } = block; for (const propval of Object.values(props)) { - blockCache.push(propval); - if (propval.exported && (node === propval.value || findNode(node, propval.value))) { + const pval = /** @type {CreatedNode} */ (propval); + blockCache.push(pval); + if (pval.exported && (node === pval.value || findNode(node, pval.value))) { return true; } @@ -600,9 +818,9 @@ const findExportedNode = function (block, node, cache) { /** * - * @param {} node - * @param {} globals - * @param {} opt + * @param {import('eslint').Rule.Node} node + * @param {CreatedNode} globals + * @param {import('./rules/requireJsdoc.js').RequireJsdocOpts} opt * @returns {boolean} */ const isNodeExported = function (node, globals, opt) { @@ -626,9 +844,9 @@ const isNodeExported = function (node, globals, opt) { /** * - * @param {} node - * @param {} globalVars - * @param {} opts + * @param {import('eslint').Rule.Node} node + * @param {CreatedNode} globalVars + * @param {import('./rules/requireJsdoc.js').RequireJsdocOpts} opts * @returns {boolean} */ const parseRecursive = function (node, globalVars, opts) { @@ -642,14 +860,10 @@ const parseRecursive = function (node, globalVars, opts) { /** * - * @param {} ast - * @param {} node - * @param {} opt - * @returns {{ - * globalVars: { - * props: {}; - * }; - * }} + * @param {import('eslint').Rule.Node} ast + * @param {import('eslint').Rule.Node} node + * @param {import('./rules/requireJsdoc.js').RequireJsdocOpts} opt + * @returns {CreatedNode} */ const parse = function (ast, node, opt) { /* istanbul ignore next */ @@ -681,15 +895,16 @@ const parse = function (ast, node, opt) { return { globalVars, + props: {}, }; }; /** * - * @param {} node - * @param {} sourceCode - * @param {} opt - * @param {} settings + * @param {import('eslint').Rule.Node} node + * @param {import('eslint').SourceCode} sourceCode + * @param {import('./rules/requireJsdoc.js').RequireJsdocOpts} opt + * @param {import('./iterateJsdoc.js').Settings} settings * @returns {boolean} */ const isUncommentedExport = function (node, sourceCode, opt, settings) { @@ -714,9 +929,18 @@ const isUncommentedExport = function (node, sourceCode, opt, settings) { } } - const parseResult = parse(sourceCode.ast, node, opt); + const ast = /** @type {unknown} */ (sourceCode.ast); + + const parseResult = parse( + /** @type {import('eslint').Rule.Node} */ + (ast), + node, + opt, + ); - return isNodeExported(node, parseResult.globalVars, opt); + return isNodeExported( + node, /** @type {CreatedNode} */ (parseResult.globalVars), opt, + ); }; export default { diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index e8b4d9d52..b8426b429 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -34,7 +34,8 @@ import jsdocUtils from './jsdocUtils'; * @param {{ * lastIndex?: Integer, * isFunctionContext?: boolean, - * selector?: string + * selector?: string, + * comment?: string * }} info * @param {null|((jsdoc: import('comment-parser').Block) => boolean|undefined)} handler * @param {import('eslint').Rule.Node} node diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index d4445483c..b002c0e2c 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -217,7 +217,10 @@ const getFunctionParameterNames = ( * import('estree').RestElement|import('estree').ArrayPattern| * import('@typescript-eslint/types').TSESTree.TSParameterProperty| * import('@typescript-eslint/types').TSESTree.Property| - * import('@typescript-eslint/types').TSESTree.RestElement + * import('@typescript-eslint/types').TSESTree.RestElement| + * import('@typescript-eslint/types').TSESTree.Identifier| + * import('@typescript-eslint/types').TSESTree.ObjectPattern| + * import('@typescript-eslint/types').TSESTree.BindingName * } param * @param {boolean} [isProperty] * @returns {ParamNameInfo} @@ -412,7 +415,14 @@ const getFunctionParameterNames = ( } if (param.type === 'TSParameterProperty') { - return getParamName(param.parameter, true); + return getParamName( + /** @type {import('@typescript-eslint/types').TSESTree.Identifier} */ ( + /** @type {import('@typescript-eslint/types').TSESTree.TSParameterProperty} */ ( + param + ).parameter + ), + true, + ); } throw new Error(`Unsupported function signature format: \`${param.type}\`.`); @@ -676,7 +686,9 @@ const getAllTags = (jsdoc) => { }; /** - * @param {import('comment-parser').Block} jsdoc + * @param {import('comment-parser').Block & { + * inlineTags: import('@es-joy/jsdoccomment').InlineTag[] + * }} jsdoc * @param {string[]} targetTagNames * @returns {boolean} */ @@ -869,7 +881,7 @@ const tagMightHaveTypePosition = (tag, tagMap = tagStructure) => { const tagStruct = ensureMap(tagMap, tag); - const ret = tagStruct.get('typeAllowed'); + const ret = /** @type {boolean|undefined} */ (tagStruct.get('typeAllowed')); return ret === undefined ? true : ret; }; @@ -899,7 +911,10 @@ const tagMightHaveNamePosition = (tag, tagMap = tagStructure) => { const tagMightHaveNamepath = (tag, tagMap = tagStructure) => { const tagStruct = ensureMap(tagMap, tag); - return namepathTypes.has(tagStruct.get('namepathRole')); + const nampathRole = tagStruct.get('namepathRole'); + + return nampathRole !== false && + namepathTypes.has(/** @type {string} */ (nampathRole)); }; /** @@ -955,7 +970,7 @@ const tagMissingRequiredTypeOrNamepath = (tag, tagMap = tagStructure) => { /* eslint-disable complexity -- Temporary */ /** - * @param {ESTreeOrTypeScriptNode} node + * @param {ESTreeOrTypeScriptNode|null|undefined} node * @param {boolean} [checkYieldReturnValue] * @returns {boolean} */ @@ -1009,8 +1024,14 @@ const hasNonFunctionYield = (node, checkYieldReturnValue) => { case 'TryStatement': { return hasNonFunctionYield(node.block, checkYieldReturnValue) || - hasNonFunctionYield(node.handler && node.handler.body, checkYieldReturnValue) || - hasNonFunctionYield(node.finalizer, checkYieldReturnValue); + hasNonFunctionYield( + node.handler && node.handler.body, checkYieldReturnValue, + ) || + hasNonFunctionYield( + /** @type {import('@typescript-eslint/types').TSESTree.BlockStatement} */ + (node.finalizer), + checkYieldReturnValue, + ); } case 'SwitchStatement': { @@ -1078,8 +1099,10 @@ const hasNonFunctionYield = (node, checkYieldReturnValue) => { // @ts-expect-error In Babel? // istanbul ignore next -- In Babel? case 'ObjectMethod': + // @ts-expect-error In Babel? // istanbul ignore next -- In Babel? return node.computed && hasNonFunctionYield(node.key, checkYieldReturnValue) || + // @ts-expect-error In Babel? node.arguments.some((nde) => { return hasNonFunctionYield(nde, checkYieldReturnValue); }); @@ -1115,7 +1138,11 @@ const hasNonFunctionYield = (node, checkYieldReturnValue) => { case 'YieldExpression': { if (checkYieldReturnValue) { - if (node.parent.type === 'VariableDeclarator') { + if ( + /** @type {import('eslint').Rule.Node} */ ( + node + ).parent.type === 'VariableDeclarator' + ) { return true; } @@ -1144,8 +1171,16 @@ const hasNonFunctionYield = (node, checkYieldReturnValue) => { * @returns {boolean} */ const hasYieldValue = (node, checkYieldReturnValue) => { - return node.generator && ( - node.expression || hasNonFunctionYield(node.body, checkYieldReturnValue) + return /** @type {import('@typescript-eslint/types').TSESTree.FunctionDeclaration} */ ( + node + ).generator && ( + /** @type {import('@typescript-eslint/types').TSESTree.FunctionDeclaration} */ ( + node + ).expression || hasNonFunctionYield( + /** @type {import('@typescript-eslint/types').TSESTree.FunctionDeclaration} */ + (node).body, + checkYieldReturnValue, + ) ); }; @@ -1273,7 +1308,7 @@ const enforcedContexts = (context, defaultContexts, settings) => { /** * @param {import('./iterateJsdoc.js').Context[]} contexts * @param {import('./iterateJsdoc.js').CheckJsdoc} checkJsdoc - * @param {Function} [handler] + * @param {import('@es-joy/jsdoccomment').CommentHandler} [handler] * @returns {import('eslint').Rule.RuleListener} */ const getContextObject = (contexts, checkJsdoc, handler) => { @@ -1284,7 +1319,10 @@ const getContextObject = (contexts, checkJsdoc, handler) => { idx, prop, ] of contexts.entries()) { + /** @type {string} */ let property; + + /** @type {(node: import('eslint').Rule.Node) => void} */ let value; if (typeof prop === 'object') { @@ -1293,15 +1331,24 @@ const getContextObject = (contexts, checkJsdoc, handler) => { selector: prop.context, }; if (prop.comment) { - property = prop.context; + property = /** @type {string} */ (prop.context); value = checkJsdoc.bind( - null, { + null, + { ...selInfo, comment: prop.comment, - }, handler.bind(null, prop.comment), + }, + /** + * @type {(jsdoc: import('comment-parser').Block & { + * inlineTags?: import('@es-joy/jsdoccomment').InlineTag[] + * }) => boolean} + */ + (/** @type {import('@es-joy/jsdoccomment').CommentHandler} */ ( + handler + ).bind(null, prop.comment)), ); } else { - property = prop.context; + property = /** @type {string} */ (prop.context); value = checkJsdoc.bind(null, selInfo, null); } } else { @@ -1313,11 +1360,18 @@ const getContextObject = (contexts, checkJsdoc, handler) => { value = checkJsdoc.bind(null, selInfo, null); } - const old = properties[property]; - properties[property] = old ? function (...args) { - old(...args); - value(...args); - } : value; + const old = /** + * @type {((node: import('eslint').Rule.Node) => void)} + */ (properties[property]); + properties[property] = old ? + /** + * @type {((node: import('eslint').Rule.Node) => void)} + */ + function (node) { + old(node); + value(node); + } : + value; } return properties; @@ -1474,7 +1528,9 @@ const hasAccessorPair = (node) => { }; /** - * @param {import('comment-parser').Block} jsdoc + * @param {import('comment-parser').Block & { + * inlineTags: import('@es-joy/jsdoccomment').InlineTag[] + * }} jsdoc * @param {import('eslint').Rule.Node|null} node * @param {import('eslint').Rule.RuleContext} context * @param {import('json-schema').JSONSchema4} schema diff --git a/src/rules/requireJsdoc.js b/src/rules/requireJsdoc.js index 222afd8ea..629640f60 100644 --- a/src/rules/requireJsdoc.js +++ b/src/rules/requireJsdoc.js @@ -9,6 +9,15 @@ import { } from '../iterateJsdoc'; import jsdocUtils from '../jsdocUtils'; +/** + * @typedef {{ + * ancestorsOnly: boolean, + * esm: boolean, + * initModuleExports: boolean, + * initWindow: boolean + * }} RequireJsdocOpts + */ + /** @type {import('json-schema').JSONSchema4} */ const OPTIONS_SCHEMA = { additionalProperties: false, @@ -476,6 +485,7 @@ export default { }; if (publicOnly) { + /** @type {RequireJsdocOpts} */ const opt = { ancestorsOnly: Boolean(publicOnly?.ancestorsOnly ?? false), esm: Boolean(publicOnly?.esm ?? true), From ab01baa1f888a65481d7bcddd2b4fd132a1cf97a Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 15 May 2023 11:14:19 -0700 Subject: [PATCH 088/273] docs: reference `namepath-or-url-referencing` Also: - test: add case for `namepath-or-url-referencing` --- .README/settings.md | 2 ++ docs/rules/no-undefined-types.md | 6 ++++++ docs/settings.md | 2 ++ test/rules/assertions/noUndefinedTypes.js | 22 ++++++++++++++++++++++ 4 files changed, 32 insertions(+) diff --git a/.README/settings.md b/.README/settings.md index 724fc1468..73dacdd76 100644 --- a/.README/settings.md +++ b/.README/settings.md @@ -300,6 +300,8 @@ values are objects with the following optional properties: checked to ensure it is a valid namepath. You might use this to ensure that tags which normally allow free text, e.g., `@see` will instead require a namepath. + - `"namepath-or-url-referencing"` - For inline tags which may point to + a namepath or URL. - `false` - This will disallow any text in the name position. - `type`: - `true` - Allows valid types within brackets. This is the default. diff --git a/docs/rules/no-undefined-types.md b/docs/rules/no-undefined-types.md index a668d6195..0c4b3ac39 100644 --- a/docs/rules/no-undefined-types.md +++ b/docs/rules/no-undefined-types.md @@ -301,6 +301,12 @@ const a = new Todo(); * a link that is {@link NotKnown} */ // Message: The type 'NotKnown' is undefined. + +/** + * This is a {@namepathOrURLReferencer SomeType}. + */ +// Settings: {"jsdoc":{"structuredTags":{"namepathOrURLReferencer":{"name":"namepath-or-url-referencing"}}}} +// Message: The type 'SomeType' is undefined. ```` diff --git a/docs/settings.md b/docs/settings.md index 47f0f7476..ab436ae8a 100644 --- a/docs/settings.md +++ b/docs/settings.md @@ -327,6 +327,8 @@ values are objects with the following optional properties: checked to ensure it is a valid namepath. You might use this to ensure that tags which normally allow free text, e.g., `@see` will instead require a namepath. + - `"namepath-or-url-referencing"` - For inline tags which may point to + a namepath or URL. - `false` - This will disallow any text in the name position. - `type`: - `true` - Allows valid types within brackets. This is the default. diff --git a/test/rules/assertions/noUndefinedTypes.js b/test/rules/assertions/noUndefinedTypes.js index 3bb00cf0e..80f82b1f3 100644 --- a/test/rules/assertions/noUndefinedTypes.js +++ b/test/rules/assertions/noUndefinedTypes.js @@ -532,6 +532,28 @@ export default { }, ], }, + { + code: ` + /** + * This is a {@namepathOrURLReferencer SomeType}. + */ + `, + errors: [ + { + line: 3, + message: 'The type \'SomeType\' is undefined.', + }, + ], + settings: { + jsdoc: { + structuredTags: { + namepathOrURLReferencer: { + name: 'namepath-or-url-referencing', + }, + }, + }, + }, + }, ], valid: [ { From 79f71fc8fa95b828c1288dbf934e5a212a45da8d Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 15 May 2023 11:15:50 -0700 Subject: [PATCH 089/273] refactor: a single TS-inspired fix --- src/rules/requireJsdoc.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/rules/requireJsdoc.js b/src/rules/requireJsdoc.js index 629640f60..bb9364c98 100644 --- a/src/rules/requireJsdoc.js +++ b/src/rules/requireJsdoc.js @@ -385,6 +385,7 @@ export default { if (jsdocUtils.exemptSpeciaMethods( { description: '', + inlineTags: [], problems: [], source: [], tags: [], From 1350ed60c30a8756f421d7426ff8de8f1dbad870 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 15 May 2023 14:25:18 -0700 Subject: [PATCH 090/273] chore: updates jsdoccomment, devDeps. Also: - refactor: TS --- .eslintrc.json | 2 +- .ncurc.js | 6 - package.json | 10 +- pnpm-lock.yaml | 830 +++++++++++++----- src/WarnSettings.js | 1 - src/alignTransform.js | 1 - src/bin/generateDocs.js | 12 +- src/bin/generateRule.js | 7 +- src/exportParser.js | 6 - src/iterateJsdoc.js | 66 +- src/jsdocUtils.js | 65 +- src/rules/checkExamples.js | 6 +- src/rules/checkIndentation.js | 2 +- src/rules/checkLineAlignment.js | 4 +- src/rules/checkTagNames.js | 8 +- src/rules/checkTypes.js | 6 +- src/rules/checkValues.js | 2 +- src/rules/informativeDocs.js | 2 +- src/rules/noBadBlocks.js | 2 +- src/rules/noMissingSyntax.js | 2 +- src/rules/noRestrictedSyntax.js | 2 +- src/rules/noUndefinedTypes.js | 17 +- .../requireDescriptionCompleteSentence.js | 6 +- .../requireHyphenBeforeParamDescription.js | 9 +- src/rules/requireJsdoc.js | 16 +- src/rules/requireReturns.js | 1 - src/rules/requireThrows.js | 1 - src/rules/requireYields.js | 1 - src/rules/sortTags.js | 2 +- src/rules/textEscaping.js | 4 +- src/rules/validTypes.js | 4 +- src/tagNames.js | 4 +- src/utils/hasReturnValue.js | 5 - test/iterateJsdoc.js | 8 +- test/jsdocUtils.js | 2 +- test/rules/assertions/checkTagNames.js | 2 +- test/rules/index.js | 16 +- 37 files changed, 725 insertions(+), 415 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index bdf5c130e..03365fd19 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -3,7 +3,7 @@ "node": true, "browser": false }, - "extends": "canonical", + "extends": ["canonical", "canonical/jsdoc"], "overrides": [ { "files": ".ncurc.js", diff --git a/.ncurc.js b/.ncurc.js index 9aa73b7be..1dcb0edb0 100644 --- a/.ncurc.js +++ b/.ncurc.js @@ -7,11 +7,5 @@ module.exports = { 'decamelize', 'escape-string-regexp', 'open-editor', - - // Todo: When canonical includes latest Unicorn - 'eslint', - - // Todo: Waiting on merge https://github.com/gajus/eslint-plugin-canonical/pull/22 - 'eslint-config-canonical', ], }; diff --git a/package.json b/package.json index 1b31c3140..cea6729a8 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "url": "http://gajus.com" }, "dependencies": { - "@es-joy/jsdoccomment": "~0.39.3", + "@es-joy/jsdoccomment": "~0.39.4", "are-docs-informative": "^0.0.2", "comment-parser": "1.3.1", "debug": "^4.3.4", @@ -39,17 +39,17 @@ "@types/node": "^20.1.4", "@types/semver": "^7.5.0", "@types/spdx-expression-parse": "^3.0.2", - "@typescript-eslint/parser": "^5.59.5", + "@typescript-eslint/parser": "^5.59.6", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", "chai": "^4.3.7", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "8.39.0", - "eslint-config-canonical": "~33.0.1", + "eslint": "8.40.0", + "eslint-config-canonical": "~41.0.4", "gitdown": "^3.1.5", - "glob": "^10.2.3", + "glob": "^10.2.4", "husky": "^8.0.3", "jsdoc-type-pratt-parser": "^4.0.0", "lint-staged": "^13.2.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dc8f6f160..9bd73c95b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,8 +2,8 @@ lockfileVersion: '6.0' dependencies: '@es-joy/jsdoccomment': - specifier: ~0.39.3 - version: 0.39.3 + specifier: ~0.39.4 + version: 0.39.4 are-docs-informative: specifier: ^0.0.2 version: 0.0.2 @@ -35,7 +35,7 @@ devDependencies: version: 7.21.8 '@babel/eslint-parser': specifier: ^7.21.8 - version: 7.21.8(@babel/core@7.21.8)(eslint@8.39.0) + version: 7.21.8(@babel/core@7.21.8)(eslint@8.40.0) '@babel/node': specifier: ^7.20.7 version: 7.20.7(@babel/core@7.21.8) @@ -97,8 +97,8 @@ devDependencies: specifier: ^3.0.2 version: 3.0.2 '@typescript-eslint/parser': - specifier: ^5.59.5 - version: 5.59.5(eslint@8.39.0)(typescript@5.0.4) + specifier: ^5.59.6 + version: 5.59.6(eslint@8.40.0)(typescript@5.0.4) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -118,17 +118,17 @@ devDependencies: specifier: ^5.0.1 version: 5.0.1 eslint: - specifier: 8.39.0 - version: 8.39.0 + specifier: 8.40.0 + version: 8.40.0 eslint-config-canonical: - specifier: ~33.0.1 - version: 33.0.1(@babel/core@7.21.8)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.1.4)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4) + specifier: ~41.0.4 + version: 41.0.4(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.1.4)(eslint@8.40.0)(graphql@16.6.0)(typescript@5.0.4) gitdown: specifier: ^3.1.5 version: 3.1.5 glob: - specifier: ^10.2.3 - version: 10.2.3 + specifier: ^10.2.4 + version: 10.2.4 husky: specifier: ^8.0.3 version: 8.0.3 @@ -234,7 +234,7 @@ packages: - supports-color dev: true - /@babel/eslint-parser@7.21.8(@babel/core@7.21.8)(eslint@8.39.0): + /@babel/eslint-parser@7.21.8(@babel/core@7.21.8)(eslint@8.40.0): resolution: {integrity: sha512-HLhI+2q+BP3sf78mFUZNCGc10KEmoUqtUT1OCdMZsN+qr4qFeLUod62/zAnF3jNQstwyasDkZnVXwfK2Bml7MQ==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: @@ -243,20 +243,20 @@ packages: dependencies: '@babel/core': 7.21.8 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.39.0 + eslint: 8.40.0 eslint-visitor-keys: 2.1.0 semver: 6.3.0 dev: true - /@babel/eslint-plugin@7.19.1(@babel/eslint-parser@7.21.8)(eslint@8.39.0): + /@babel/eslint-plugin@7.19.1(@babel/eslint-parser@7.21.8)(eslint@8.40.0): resolution: {integrity: sha512-ElGPkQPapKMa3zVqXHkZYzuL7I5LbRw9UWBUArgWsdWDDb9XcACqOpBib5tRPA9XvbVZYrFUkoQPbiJ4BFvu4w==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': '>=7.11.0' eslint: '>=7.5.0' dependencies: - '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.39.0) - eslint: 8.39.0 + '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.40.0) + eslint: 8.40.0 eslint-rule-composer: 0.3.0 dev: true @@ -1407,6 +1407,14 @@ packages: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} dev: true + /@babel/runtime-corejs3@7.21.5: + resolution: {integrity: sha512-FRqFlFKNazWYykft5zvzuEl1YyTDGsIRrjV9rvxvYkUC7W/ueBng1X68Xd6uRMzAaJ0xMKn08/wem5YS1lpX8w==} + engines: {node: '>=6.9.0'} + dependencies: + core-js-pure: 3.30.2 + regenerator-runtime: 0.13.11 + dev: true + /@babel/runtime@7.21.5: resolution: {integrity: sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==} engines: {node: '>=6.9.0'} @@ -1462,25 +1470,16 @@ packages: engines: {node: '>=12.0.0'} dependencies: '@babel/core': 7.21.8 - '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.39.0) + '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.40.0) '@es-joy/jsdoccomment': 0.38.0 - '@typescript-eslint/parser': 5.59.5(eslint@8.39.0)(typescript@5.0.4) - eslint: 8.39.0 + '@typescript-eslint/parser': 5.59.6(eslint@8.40.0)(typescript@5.0.4) + eslint: 8.40.0 esquery: 1.5.0 typescript: 5.0.4 transitivePeerDependencies: - supports-color dev: true - /@es-joy/jsdoccomment@0.20.1: - resolution: {integrity: sha512-oeJK41dcdqkvdZy/HctKklJNkt/jh+av3PZARrZEl+fs/8HaHeeYoAvEwOV0u5I6bArTF17JEsTZMY359e/nfQ==} - engines: {node: ^12 || ^14 || ^16 || ^17} - dependencies: - comment-parser: 1.3.0 - esquery: 1.5.0 - jsdoc-type-pratt-parser: 2.2.5 - dev: true - /@es-joy/jsdoccomment@0.38.0: resolution: {integrity: sha512-TFac4Bnv0ZYNkEeDnOWHQhaS1elWlvOCQxH06iHeu5iffs+hCaLVIZJwF+FqksQi68R4i66Pu+4DfFGvble+Uw==} engines: {node: '>=16'} @@ -1490,8 +1489,8 @@ packages: jsdoc-type-pratt-parser: 4.0.0 dev: true - /@es-joy/jsdoccomment@0.39.3: - resolution: {integrity: sha512-q6pObzaS+aTA96kl4DF91QILNpSiDE8S89cQdJnhIc7hWzwIHPnfBnsiBVa0Z/R9pLHdZTnXEMnggGMmCq7HmA==} + /@es-joy/jsdoccomment@0.39.4: + resolution: {integrity: sha512-Jvw915fjqQct445+yron7Dufix9A+m9j1fCJYlCo1FWlRvTxa3pjJelxdSTdaLWcTwRU6vbL+NYjO4YuNIS5Qg==} engines: {node: '>=16'} dependencies: comment-parser: 1.3.1 @@ -1499,13 +1498,13 @@ packages: jsdoc-type-pratt-parser: 4.0.0 dev: false - /@eslint-community/eslint-utils@4.4.0(eslint@8.39.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.40.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.39.0 + eslint: 8.40.0 eslint-visitor-keys: 3.4.1 dev: true @@ -1531,8 +1530,8 @@ packages: - supports-color dev: true - /@eslint/js@8.39.0: - resolution: {integrity: sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==} + /@eslint/js@8.40.0: + resolution: {integrity: sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -1914,8 +1913,8 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@next/eslint-plugin-next@12.3.4: - resolution: {integrity: sha512-BFwj8ykJY+zc1/jWANsDprDIu2MgwPOIKxNVnrKvPs+f5TPegrVnem8uScND+1veT4B7F6VeqgaNLFW1Hzl9Og==} + /@next/eslint-plugin-next@13.4.2: + resolution: {integrity: sha512-ZeFWgrxwckxTpYM+ANeUL9E7LOGPbZKmI94LJIjbDU69iEIgqd4WD0l2pVbOJMr/+vgoZmJ9Dx1m0WJ7WScXHA==} dependencies: glob: 7.1.7 dev: true @@ -2119,6 +2118,18 @@ packages: dev: true optional: true + /@pkgr/utils@2.4.0: + resolution: {integrity: sha512-2OCURAmRtdlL8iUDTypMrrxfwe8frXTeXaxGsVOaYtc/wrUyk8Z/0OBetM7cdlsy7ZFWlMX72VogKeh+A4Xcjw==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + fast-glob: 3.2.12 + is-glob: 4.0.3 + open: 9.1.0 + picocolors: 1.0.0 + tslib: 2.5.0 + dev: true + /@pnpm/config.env-replace@1.1.0: resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} engines: {node: '>=12.22.0'} @@ -2332,7 +2343,7 @@ packages: '@types/node': 20.1.4 dev: true - /@typescript-eslint/eslint-plugin@5.59.5(@typescript-eslint/parser@5.59.5)(eslint@8.39.0)(typescript@5.0.4): + /@typescript-eslint/eslint-plugin@5.59.5(@typescript-eslint/parser@5.59.6)(eslint@8.40.0)(typescript@5.0.4): resolution: {integrity: sha512-feA9xbVRWJZor+AnLNAr7A8JRWeZqHUf4T9tlP+TN04b05pFVhO5eN7/O93Y/1OUlLMHKbnJisgDURs/qvtqdg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2344,12 +2355,12 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 5.59.5(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.6(eslint@8.40.0)(typescript@5.0.4) '@typescript-eslint/scope-manager': 5.59.5 - '@typescript-eslint/type-utils': 5.59.5(eslint@8.39.0)(typescript@5.0.4) - '@typescript-eslint/utils': 5.59.5(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/type-utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.39.0 + eslint: 8.40.0 grapheme-splitter: 1.0.4 ignore: 5.2.4 natural-compare-lite: 1.4.0 @@ -2360,21 +2371,21 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils@5.59.5(eslint@8.39.0)(typescript@5.0.4): + /@typescript-eslint/experimental-utils@5.59.5(eslint@8.40.0)(typescript@5.0.4): resolution: {integrity: sha512-ArcSSBifznsKNA/p4h2w3Olt/T8AZf3bNglxD8OnuTsSDJbRpjPPmI8qpr6ijyvk1J/T3GMJHwRIluS/Kuz9kA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.59.5(eslint@8.39.0)(typescript@5.0.4) - eslint: 8.39.0 + '@typescript-eslint/utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4) + eslint: 8.40.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/parser@5.59.5(eslint@8.39.0)(typescript@5.0.4): - resolution: {integrity: sha512-NJXQC4MRnF9N9yWqQE2/KLRSOLvrrlZb48NGVfBa+RuPMN6B7ZcK5jZOvhuygv4D64fRKnZI4L4p8+M+rfeQuw==} + /@typescript-eslint/parser@5.59.6(eslint@8.40.0)(typescript@5.0.4): + resolution: {integrity: sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -2383,11 +2394,11 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.59.5 - '@typescript-eslint/types': 5.59.5 - '@typescript-eslint/typescript-estree': 5.59.5(typescript@5.0.4) + '@typescript-eslint/scope-manager': 5.59.6 + '@typescript-eslint/types': 5.59.6 + '@typescript-eslint/typescript-estree': 5.59.6(typescript@5.0.4) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.39.0 + eslint: 8.40.0 typescript: 5.0.4 transitivePeerDependencies: - supports-color @@ -2401,7 +2412,15 @@ packages: '@typescript-eslint/visitor-keys': 5.59.5 dev: true - /@typescript-eslint/type-utils@5.59.5(eslint@8.39.0)(typescript@5.0.4): + /@typescript-eslint/scope-manager@5.59.6: + resolution: {integrity: sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.59.6 + '@typescript-eslint/visitor-keys': 5.59.6 + dev: true + + /@typescript-eslint/type-utils@5.59.5(eslint@8.40.0)(typescript@5.0.4): resolution: {integrity: sha512-4eyhS7oGym67/pSxA2mmNq7X164oqDYNnZCUayBwJZIRVvKpBCMBzFnFxjeoDeShjtO6RQBHBuwybuX3POnDqg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2412,9 +2431,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.59.5(typescript@5.0.4) - '@typescript-eslint/utils': 5.59.5(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.39.0 + eslint: 8.40.0 tsutils: 3.21.0(typescript@5.0.4) typescript: 5.0.4 transitivePeerDependencies: @@ -2426,6 +2445,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@typescript-eslint/types@5.59.6: + resolution: {integrity: sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + /@typescript-eslint/typescript-estree@5.59.5(typescript@5.0.4): resolution: {integrity: sha512-+XXdLN2CZLZcD/mO7mQtJMvCkzRfmODbeSKuMY/yXbGkzvA9rJyDY5qDYNoiz2kP/dmyAxXquL2BvLQLJFPQIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2447,19 +2471,40 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.59.5(eslint@8.39.0)(typescript@5.0.4): + /@typescript-eslint/typescript-estree@5.59.6(typescript@5.0.4): + resolution: {integrity: sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.59.6 + '@typescript-eslint/visitor-keys': 5.59.6 + debug: 4.3.4(supports-color@8.1.1) + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.1 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@5.59.5(eslint@8.40.0)(typescript@5.0.4): resolution: {integrity: sha512-sCEHOiw+RbyTii9c3/qN74hYDPNORb8yWCoPLmB7BIflhplJ65u2PBpdRla12e3SSTJ2erRkPjz7ngLHhUegxA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.40.0) '@types/json-schema': 7.0.11 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.59.5 '@typescript-eslint/types': 5.59.5 '@typescript-eslint/typescript-estree': 5.59.5(typescript@5.0.4) - eslint: 8.39.0 + eslint: 8.40.0 eslint-scope: 5.1.1 semver: 7.5.1 transitivePeerDependencies: @@ -2475,6 +2520,14 @@ packages: eslint-visitor-keys: 3.4.1 dev: true + /@typescript-eslint/visitor-keys@5.59.6: + resolution: {integrity: sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.59.6 + eslint-visitor-keys: 3.4.1 + dev: true + /@whatwg-node/events@0.0.3: resolution: {integrity: sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA==} dev: true @@ -2662,7 +2715,6 @@ packages: /are-docs-informative@0.0.2: resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} engines: {node: '>=14'} - dev: false /are-we-there-yet@3.0.1: resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} @@ -2937,6 +2989,11 @@ packages: resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} dev: true + /big-integer@1.6.51: + resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} + engines: {node: '>=0.6'} + dev: true + /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} @@ -2950,10 +3007,21 @@ packages: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} dev: true + /boolean@3.2.0: + resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + dev: true + /bottleneck@2.19.5: resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} dev: true + /bplist-parser@0.2.0: + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} + engines: {node: '>= 5.10.0'} + dependencies: + big-integer: 1.6.51 + dev: true + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -3021,6 +3089,13 @@ packages: engines: {node: '>=6'} dev: true + /bundle-name@3.0.0: + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} + engines: {node: '>=12'} + dependencies: + run-applescript: 5.0.0 + dev: true + /busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -3363,11 +3438,6 @@ packages: engines: {node: '>= 6'} dev: true - /comment-parser@1.3.0: - resolution: {integrity: sha512-hRpmWIKgzd81vn0ydoWoyPoALEOnF4wt8yKD35Ib1D6XC2siLiYaiqfGkYrunuKdsXGwpBpHU3+9r+RVw2NZfA==} - engines: {node: '>= 12.0.0'} - dev: true - /comment-parser@1.3.1: resolution: {integrity: sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==} engines: {node: '>= 12.0.0'} @@ -3469,6 +3539,11 @@ packages: browserslist: 4.21.5 dev: true + /core-js-pure@3.30.2: + resolution: {integrity: sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg==} + requiresBuild: true + dev: true + /core-js@3.30.2: resolution: {integrity: sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg==} requiresBuild: true @@ -3693,6 +3768,29 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: true + + /default-browser-id@3.0.0: + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} + engines: {node: '>=12'} + dependencies: + bplist-parser: 0.2.0 + untildify: 4.0.0 + dev: true + + /default-browser@4.0.0: + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} + engines: {node: '>=14.16'} + dependencies: + bundle-name: 3.0.0 + default-browser-id: 3.0.0 + execa: 7.1.1 + titleize: 3.0.0 + dev: true + /default-require-extensions@3.0.1: resolution: {integrity: sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==} engines: {node: '>=8'} @@ -3700,6 +3798,11 @@ packages: strip-bom: 4.0.0 dev: true + /define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + dev: true + /define-properties@1.2.0: resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} engines: {node: '>= 0.4'} @@ -3864,6 +3967,14 @@ packages: lodash: 4.17.21 dev: true + /enhanced-resolve@5.14.0: + resolution: {integrity: sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: true + /entities@1.1.2: resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} dev: true @@ -4026,50 +4137,61 @@ packages: lodash.zip: 4.2.0 dev: true - /eslint-config-canonical@33.0.1(@babel/core@7.21.8)(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.1.4)(eslint@8.39.0)(graphql@16.6.0)(typescript@5.0.4): - resolution: {integrity: sha512-g5hyJr5s4WnyAp5FdfMyItz72hOgXAB/4tsFMBP944bcei2QJyMvwslpKdiQL299HSJBpJ9xbNBhx7oeFI7zIQ==} - engines: {node: '>=12.0.0'} + /eslint-config-canonical@41.0.4(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.1.4)(eslint@8.40.0)(graphql@16.6.0)(typescript@5.0.4): + resolution: {integrity: sha512-2wRKw0VsBzP+GyWMMy0cuNkEs3NI5mWNk83rHAXZtkBA72AUanQw+ufoGhN0Uso4OiH0tb+Mj0kQkPDnr0DTbg==} + engines: {node: '>=16.0.0'} peerDependencies: - eslint: ^8.4.1 + eslint: ^8.30.0 dependencies: - '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.39.0) - '@babel/eslint-plugin': 7.19.1(@babel/eslint-parser@7.21.8)(eslint@8.39.0) + '@babel/core': 7.21.8 + '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.40.0) + '@babel/eslint-plugin': 7.19.1(@babel/eslint-parser@7.21.8)(eslint@8.40.0) + '@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.21.8) '@graphql-eslint/eslint-plugin': 3.18.0(@babel/core@7.21.8)(@types/node@20.1.4)(graphql@16.6.0) - '@next/eslint-plugin-next': 12.3.4 + '@next/eslint-plugin-next': 13.4.2 '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/eslint-plugin': 5.59.5(@typescript-eslint/parser@5.59.5)(eslint@8.39.0)(typescript@5.0.4) - '@typescript-eslint/parser': 5.59.5(eslint@8.39.0)(typescript@5.0.4) - eslint: 8.39.0 - eslint-plugin-ava: 13.2.0(eslint@8.39.0) - eslint-plugin-canonical: 2.6.0(eslint@8.39.0) - eslint-plugin-cypress: 2.13.3(eslint@8.39.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.39.0) - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.39.0) - eslint-plugin-fp: 2.3.0(eslint@8.39.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.5)(eslint@8.39.0) - eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.59.5)(eslint@8.39.0)(typescript@5.0.4) - eslint-plugin-jsdoc: 37.9.7(eslint@8.39.0) - eslint-plugin-jsonc: 2.8.0(eslint@8.39.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@8.39.0) - eslint-plugin-lodash: 7.4.0(eslint@8.39.0) - eslint-plugin-mocha: 10.1.0(eslint@8.39.0) + '@typescript-eslint/eslint-plugin': 5.59.5(@typescript-eslint/parser@5.59.6)(eslint@8.40.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.6(eslint@8.40.0)(typescript@5.0.4) + eslint: 8.40.0 + eslint-config-prettier: 8.8.0(eslint@8.40.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.40.0) + eslint-plugin-ava: 14.0.0(eslint@8.40.0) + eslint-plugin-canonical: 4.2.2(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.40.0)(typescript@5.0.4) + eslint-plugin-cypress: 2.13.3(eslint@8.40.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.40.0) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.40.0) + eslint-plugin-fp: 2.3.0(eslint@8.40.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) + eslint-plugin-jest: 27.2.1(@typescript-eslint/eslint-plugin@5.59.5)(eslint@8.40.0)(typescript@5.0.4) + eslint-plugin-jsdoc: 43.2.0(eslint@8.40.0) + eslint-plugin-jsonc: 2.8.0(eslint@8.40.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.40.0) + eslint-plugin-lodash: 7.4.0(eslint@8.40.0) + eslint-plugin-mocha: 10.1.0(eslint@8.40.0) eslint-plugin-modules-newline: 0.0.6 - eslint-plugin-node: 11.1.0(eslint@8.39.0) - eslint-plugin-react: 7.32.2(eslint@8.39.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.39.0) - eslint-plugin-typescript-sort-keys: 2.3.0(@typescript-eslint/parser@5.59.5)(eslint@8.39.0)(typescript@5.0.4) - eslint-plugin-unicorn: 39.0.0(eslint@8.39.0) - eslint-plugin-yml: 0.12.0(eslint@8.39.0) - yaml-eslint-parser: 0.5.0 + eslint-plugin-node: 11.1.0(eslint@8.40.0) + eslint-plugin-prettier: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.40.0)(prettier@2.8.8) + eslint-plugin-promise: 6.1.1(eslint@8.40.0) + eslint-plugin-react: 7.32.2(eslint@8.40.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.40.0) + eslint-plugin-regexp: 1.15.0(eslint@8.40.0) + eslint-plugin-simple-import-sort: 10.0.0(eslint@8.40.0) + eslint-plugin-typescript-sort-keys: 2.3.0(@typescript-eslint/parser@5.59.6)(eslint@8.40.0)(typescript@5.0.4) + eslint-plugin-unicorn: 46.0.1(eslint@8.40.0) + eslint-plugin-vitest: 0.1.5(eslint@8.40.0)(typescript@5.0.4) + eslint-plugin-yml: 1.7.0(eslint@8.40.0) + eslint-plugin-zod: 1.4.0(eslint@8.40.0) + prettier: 2.8.8 + ramda: 0.29.0 + yaml-eslint-parser: 1.2.2 transitivePeerDependencies: - - '@babel/core' - '@babel/plugin-syntax-flow' - '@babel/plugin-transform-react-jsx' - '@types/node' - bufferutil - cosmiconfig-toml-loader - encoding - - eslint-import-resolver-typescript + - eslint-import-resolver-node - eslint-import-resolver-webpack - graphql - jest @@ -4078,6 +4200,15 @@ packages: - utf-8-validate dev: true + /eslint-config-prettier@8.8.0(eslint@8.40.0): + resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.40.0 + dev: true + /eslint-import-resolver-node@0.3.7: resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} dependencies: @@ -4088,7 +4219,31 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.5)(eslint-import-resolver-node@0.3.7)(eslint@8.39.0): + /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.40.0): + resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4(supports-color@8.1.1) + enhanced-resolve: 5.14.0 + eslint: 8.40.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) + get-tsconfig: 4.5.0 + globby: 13.1.4 + is-core-module: 2.12.0 + is-glob: 4.0.3 + synckit: 0.8.5 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4109,23 +4264,24 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.59.5(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.6(eslint@8.40.0)(typescript@5.0.4) debug: 3.2.7 - eslint: 8.39.0 + eslint: 8.40.0 eslint-import-resolver-node: 0.3.7 + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.40.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-ava@13.2.0(eslint@8.39.0): - resolution: {integrity: sha512-i5B5izsEdERKQLruk1nIWzTTE7C26/ju8qQf7JeyRv32XT2lRMW0zMFZNhIrEf5/5VvpSz2rqrV7UcjClGbKsw==} - engines: {node: '>=12.22 <13 || >=14.17 <15 || >=16.4'} + /eslint-plugin-ava@14.0.0(eslint@8.40.0): + resolution: {integrity: sha512-XmKT6hppaipwwnLVwwvQliSU6AF1QMHiNoLD5JQfzhUhf0jY7CO0O624fQrE+Y/fTb9vbW8r77nKf7M/oHulxw==} + engines: {node: '>=14.17 <15 || >=16.4'} peerDependencies: - eslint: '>=7.22.0' + eslint: '>=8.26.0' dependencies: enhance-visitors: 1.0.0 - eslint: 8.39.0 - eslint-utils: 3.0.0(eslint@8.39.0) + eslint: 8.40.0 + eslint-utils: 3.0.0(eslint@8.40.0) espree: 9.5.2 espurify: 2.1.1 import-modules: 2.1.0 @@ -4134,53 +4290,63 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-canonical@2.6.0(eslint@8.39.0): - resolution: {integrity: sha512-KMcx/bX9j97nllRjluykArtoT34CHXJAQOfBBk3uc1oAZgMOyAlU3yJw5Os6yeL6gBBjd+CIf74f7zUlNF3wwg==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: ^8.5.0 + /eslint-plugin-canonical@4.2.2(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.40.0)(typescript@5.0.4): + resolution: {integrity: sha512-yuGC3erbZ7+ncNn9oyfZQxNdepijMKhsq2DrSEj4jsgc4UMSQWlWDlt8lI767Lg8VfGCTG6Cgj2jJZFYjkFmDQ==} + engines: {node: '>=16.0.0'} dependencies: - eslint: 8.39.0 + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.40.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 is-proto-prop: 2.0.0 lodash: 4.17.21 natural-compare: 1.4.0 + roarr: 7.15.0 + ts-unused-exports: 9.0.4(typescript@5.0.4) + xregexp: 5.1.1 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - eslint-plugin-import + - supports-color + - typescript dev: true - /eslint-plugin-cypress@2.13.3(eslint@8.39.0): + /eslint-plugin-cypress@2.13.3(eslint@8.40.0): resolution: {integrity: sha512-nAPjZE5WopCsgJwl3vHm5iafpV+ZRO76Z9hMyRygWhmg5ODXDPd+9MaPl7kdJ2azj+sO87H3P1PRnggIrz848g==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 8.39.0 + eslint: 8.40.0 globals: 11.12.0 dev: true - /eslint-plugin-es@3.0.1(eslint@8.39.0): + /eslint-plugin-es@3.0.1(eslint@8.40.0): resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.39.0 + eslint: 8.40.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-eslint-comments@3.2.0(eslint@8.39.0): + /eslint-plugin-eslint-comments@3.2.0(eslint@8.40.0): resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' dependencies: escape-string-regexp: 1.0.5 - eslint: 8.39.0 + eslint: 8.40.0 ignore: 5.2.4 dev: true - /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.39.0): + /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.40.0): resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -4190,25 +4356,25 @@ packages: dependencies: '@babel/plugin-syntax-flow': 7.21.4(@babel/core@7.21.8) '@babel/plugin-transform-react-jsx': 7.21.5(@babel/core@7.21.8) - eslint: 8.39.0 + eslint: 8.40.0 lodash: 4.17.21 string-natural-compare: 3.0.1 dev: true - /eslint-plugin-fp@2.3.0(eslint@8.39.0): + /eslint-plugin-fp@2.3.0(eslint@8.40.0): resolution: {integrity: sha512-3n2oHibwoIxAht9/+ZaTldhI6brXORgl8oNXqZd+d9xuAQt2SBJ2/aml0oQRMWvXrgsz2WG6wfC++NjzSG3prA==} engines: {node: '>=4.0.0'} peerDependencies: eslint: '>=3' dependencies: create-eslint-index: 1.0.0 - eslint: 8.39.0 + eslint: 8.40.0 eslint-ast-utils: 1.1.0 lodash: 4.17.21 req-all: 0.1.0 dev: true - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.5)(eslint@8.39.0): + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0): resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -4218,15 +4384,15 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.59.5(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.6(eslint@8.40.0)(typescript@5.0.4) array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.39.0 + eslint: 8.40.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.5)(eslint-import-resolver-node@0.3.7)(eslint@8.39.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) has: 1.0.3 is-core-module: 2.12.0 is-glob: 4.0.3 @@ -4241,12 +4407,12 @@ packages: - supports-color dev: true - /eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.59.5)(eslint@8.39.0)(typescript@5.0.4): - resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /eslint-plugin-jest@27.2.1(@typescript-eslint/eslint-plugin@5.59.5)(eslint@8.40.0)(typescript@5.0.4): + resolution: {integrity: sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: - '@typescript-eslint/eslint-plugin': ^4.0.0 || ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/eslint-plugin': ^5.0.0 + eslint: ^7.0.0 || ^8.0.0 jest: '*' peerDependenciesMeta: '@typescript-eslint/eslint-plugin': @@ -4254,46 +4420,46 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.59.5(@typescript-eslint/parser@5.59.5)(eslint@8.39.0)(typescript@5.0.4) - '@typescript-eslint/experimental-utils': 5.59.5(eslint@8.39.0)(typescript@5.0.4) - eslint: 8.39.0 + '@typescript-eslint/eslint-plugin': 5.59.5(@typescript-eslint/parser@5.59.6)(eslint@8.40.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4) + eslint: 8.40.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsdoc@37.9.7(eslint@8.39.0): - resolution: {integrity: sha512-8alON8yYcStY94o0HycU2zkLKQdcS+qhhOUNQpfONHHwvI99afbmfpYuPqf6PbLz5pLZldG3Te5I0RbAiTN42g==} - engines: {node: ^12 || ^14 || ^16 || ^17} + /eslint-plugin-jsdoc@43.2.0(eslint@8.40.0): + resolution: {integrity: sha512-Hst7XUfqh28UmPD52oTXmjaRN3d0KrmOZdgtp4h9/VHUJD3Evoo82ZGXi1TtRDWgWhvqDIRI63O49H0eH7NrZQ==} + engines: {node: '>=16'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@es-joy/jsdoccomment': 0.20.1 - comment-parser: 1.3.0 + '@es-joy/jsdoccomment': 0.38.0 + are-docs-informative: 0.0.2 + comment-parser: 1.3.1 debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 8.39.0 + eslint: 8.40.0 esquery: 1.5.0 - regextras: 0.8.0 semver: 7.5.1 spdx-expression-parse: 3.0.1 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-jsonc@2.8.0(eslint@8.39.0): + /eslint-plugin-jsonc@2.8.0(eslint@8.40.0): resolution: {integrity: sha512-K4VsnztnNwpm+V49CcCu5laq8VjclJpuhfI9LFkOrOyK+BKdQHMzkWo43B4X4rYaVrChm4U9kw/tTU5RHh5Wtg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) - eslint: 8.39.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.40.0) + eslint: 8.40.0 jsonc-eslint-parser: 2.3.0 natural-compare: 1.4.0 dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.39.0): + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.40.0): resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} peerDependencies: @@ -4308,7 +4474,7 @@ packages: axobject-query: 3.1.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.39.0 + eslint: 8.40.0 has: 1.0.3 jsx-ast-utils: 3.3.3 language-tags: 1.0.5 @@ -4318,24 +4484,24 @@ packages: semver: 6.3.0 dev: true - /eslint-plugin-lodash@7.4.0(eslint@8.39.0): + /eslint-plugin-lodash@7.4.0(eslint@8.40.0): resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} engines: {node: '>=10'} peerDependencies: eslint: '>=2' dependencies: - eslint: 8.39.0 + eslint: 8.40.0 lodash: 4.17.21 dev: true - /eslint-plugin-mocha@10.1.0(eslint@8.39.0): + /eslint-plugin-mocha@10.1.0(eslint@8.40.0): resolution: {integrity: sha512-xLqqWUF17llsogVOC+8C6/jvQ+4IoOREbN7ZCHuOHuD6cT5cDD4h7f2LgsZuzMAiwswWE21tO7ExaknHVDrSkw==} engines: {node: '>=14.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.39.0 - eslint-utils: 3.0.0(eslint@8.39.0) + eslint: 8.40.0 + eslint-utils: 3.0.0(eslint@8.40.0) rambda: 7.5.0 dev: true @@ -4346,14 +4512,14 @@ packages: requireindex: 1.1.0 dev: true - /eslint-plugin-node@11.1.0(eslint@8.39.0): + /eslint-plugin-node@11.1.0(eslint@8.40.0): resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.39.0 - eslint-plugin-es: 3.0.1(eslint@8.39.0) + eslint: 8.40.0 + eslint-plugin-es: 3.0.1(eslint@8.40.0) eslint-utils: 2.1.0 ignore: 5.2.4 minimatch: 3.1.2 @@ -4361,16 +4527,42 @@ packages: semver: 6.3.0 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.39.0): + /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.40.0)(prettier@2.8.8): + resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: '>=7.28.0' + eslint-config-prettier: '*' + prettier: '>=2.0.0' + peerDependenciesMeta: + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.40.0 + eslint-config-prettier: 8.8.0(eslint@8.40.0) + prettier: 2.8.8 + prettier-linter-helpers: 1.0.0 + dev: true + + /eslint-plugin-promise@6.1.1(eslint@8.40.0): + resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + eslint: 8.40.0 + dev: true + + /eslint-plugin-react-hooks@4.6.0(eslint@8.40.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.39.0 + eslint: 8.40.0 dev: true - /eslint-plugin-react@7.32.2(eslint@8.39.0): + /eslint-plugin-react@7.32.2(eslint@8.40.0): resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} engines: {node: '>=4'} peerDependencies: @@ -4380,7 +4572,7 @@ packages: array.prototype.flatmap: 1.3.1 array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 - eslint: 8.39.0 + eslint: 8.40.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.3 minimatch: 3.1.2 @@ -4394,7 +4586,32 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-typescript-sort-keys@2.3.0(@typescript-eslint/parser@5.59.5)(eslint@8.39.0)(typescript@5.0.4): + /eslint-plugin-regexp@1.15.0(eslint@8.40.0): + resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} + engines: {node: ^12 || >=14} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.40.0) + '@eslint-community/regexpp': 4.5.1 + comment-parser: 1.3.1 + eslint: 8.40.0 + grapheme-splitter: 1.0.4 + jsdoctypeparser: 9.0.0 + refa: 0.11.0 + regexp-ast-analysis: 0.6.0 + scslre: 0.2.0 + dev: true + + /eslint-plugin-simple-import-sort@10.0.0(eslint@8.40.0): + resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} + peerDependencies: + eslint: '>=5.0.0' + dependencies: + eslint: 8.40.0 + dev: true + + /eslint-plugin-typescript-sort-keys@2.3.0(@typescript-eslint/parser@5.59.6)(eslint@8.40.0)(typescript@5.0.4): resolution: {integrity: sha512-3LAcYulo5gNYiPWee+TksITfvWeBuBjGgcSLTacPESFVKEoy8laOQuZvJlSCwTBHT2SCGIxr3bJ56zuux+3MCQ==} engines: {node: 12 || >= 13.9} peerDependencies: @@ -4402,9 +4619,9 @@ packages: eslint: ^5 || ^6 || ^7 || ^8 typescript: ^3 || ^4 || ^5 dependencies: - '@typescript-eslint/experimental-utils': 5.59.5(eslint@8.39.0)(typescript@5.0.4) - '@typescript-eslint/parser': 5.59.5(eslint@8.39.0)(typescript@5.0.4) - eslint: 8.39.0 + '@typescript-eslint/experimental-utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.6(eslint@8.40.0)(typescript@5.0.4) + eslint: 8.40.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 typescript: 5.0.4 @@ -4412,47 +4629,68 @@ packages: - supports-color dev: true - /eslint-plugin-unicorn@39.0.0(eslint@8.39.0): - resolution: {integrity: sha512-fd5RK2FtYjGcIx3wra7csIE/wkkmBo22T1gZtRTsLr1Mb+KsFKJ+JOdSqhHXQUrI/JTs/Mon64cEYzTgSCbltw==} - engines: {node: '>=12'} + /eslint-plugin-unicorn@46.0.1(eslint@8.40.0): + resolution: {integrity: sha512-setGhMTiLAddg1asdwjZ3hekIN5zLznNa5zll7pBPwFOka6greCKDQydfqy4fqyUhndi74wpDzClSQMEcmOaew==} + engines: {node: '>=14.18'} peerDependencies: - eslint: '>=7.32.0' + eslint: '>=8.28.0' dependencies: '@babel/helper-validator-identifier': 7.19.1 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.40.0) ci-info: 3.8.0 clean-regexp: 1.0.0 - eslint: 8.39.0 - eslint-template-visitor: 2.3.2(eslint@8.39.0) - eslint-utils: 3.0.0(eslint@8.39.0) + eslint: 8.40.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 + jsesc: 3.0.2 lodash: 4.17.21 pluralize: 8.0.0 read-pkg-up: 7.0.1 regexp-tree: 0.1.27 + regjsparser: 0.9.1 safe-regex: 2.1.1 semver: 7.5.1 strip-indent: 3.0.0 + dev: true + + /eslint-plugin-vitest@0.1.5(eslint@8.40.0)(typescript@5.0.4): + resolution: {integrity: sha512-SxbGjyC6peUaCt/P+YrHxdfVzJkLC1RCotaCMZ6vuvkRGOx3SE1jcZb7vTlU6s9PoF0DYlkWuBAAYZi1IAwg2A==} + engines: {node: 14.x || >= 16} + peerDependencies: + eslint: '>=8.0.0' + dependencies: + '@typescript-eslint/utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4) + eslint: 8.40.0 transitivePeerDependencies: - supports-color + - typescript dev: true - /eslint-plugin-yml@0.12.0(eslint@8.39.0): - resolution: {integrity: sha512-aS82M+diohZTusadiByzh/bKDrfi+Y6VBQkD3ym/7JH+KF9WUB9qKCizLfTaCACwtRrHpqaLz3G8GKmslshyiw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /eslint-plugin-yml@1.7.0(eslint@8.40.0): + resolution: {integrity: sha512-qq61FQJk+qIgWl0R06bec7UQQEIBrUH22jS+MroTbFUKu+3/iVlGRpZd8mjpOAm/+H/WEDFwy4x/+kKgVGbsWw==} + engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4(supports-color@8.1.1) - eslint: 8.39.0 + eslint: 8.40.0 lodash: 4.17.21 natural-compare: 1.4.0 - yaml-eslint-parser: 0.5.0 + yaml-eslint-parser: 1.2.2 transitivePeerDependencies: - supports-color dev: true + /eslint-plugin-zod@1.4.0(eslint@8.40.0): + resolution: {integrity: sha512-i9WzQGw2X5fQcuQh33mA8DQjZJM/yuyZvs1Fc5EyTidX7Ed/g832+1FEQ4u5gtXy+jZ+DVsB5+oMHj4tIOfeZg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=8.1.0' + dependencies: + eslint: 8.40.0 + dev: true + /eslint-rule-composer@0.3.0: resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} engines: {node: '>=4.0.0'} @@ -4474,21 +4712,6 @@ packages: estraverse: 5.3.0 dev: true - /eslint-template-visitor@2.3.2(eslint@8.39.0): - resolution: {integrity: sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA==} - peerDependencies: - eslint: '>=7.0.0' - dependencies: - '@babel/core': 7.21.8 - '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.39.0) - eslint: 8.39.0 - eslint-visitor-keys: 2.1.0 - esquery: 1.5.0 - multimap: 1.1.0 - transitivePeerDependencies: - - supports-color - dev: true - /eslint-utils@2.1.0: resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} engines: {node: '>=6'} @@ -4496,13 +4719,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils@3.0.0(eslint@8.39.0): + /eslint-utils@3.0.0(eslint@8.40.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.39.0 + eslint: 8.40.0 eslint-visitor-keys: 2.1.0 dev: true @@ -4521,15 +4744,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.39.0: - resolution: {integrity: sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==} + /eslint@8.40.0: + resolution: {integrity: sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.40.0) '@eslint-community/regexpp': 4.5.1 '@eslint/eslintrc': 2.0.3 - '@eslint/js': 8.39.0 + '@eslint/js': 8.40.0 '@humanwhocodes/config-array': 0.11.8 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -4727,6 +4950,10 @@ packages: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true + /fast-diff@1.2.0: + resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} + dev: true + /fast-glob@3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} engines: {node: '>=8.6.0'} @@ -4742,10 +4969,27 @@ packages: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true + /fast-json-stringify@2.7.13: + resolution: {integrity: sha512-ar+hQ4+OIurUGjSJD1anvYSDcUflywhKjfxnsW4TBTD7+u0tJufv6DKRWoQk3vI6YBOWMoz0TQtfbe7dxbQmvA==} + engines: {node: '>= 10.0.0'} + dependencies: + ajv: 6.12.6 + deepmerge: 4.3.1 + rfdc: 1.3.0 + string-similarity: 4.0.4 + dev: true + /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true + /fast-printf@1.6.9: + resolution: {integrity: sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==} + engines: {node: '>=10.0'} + dependencies: + boolean: 3.2.0 + dev: true + /fast-querystring@1.1.1: resolution: {integrity: sha512-qR2r+e3HvhEFmpdHMv//U8FnFlnYjaC6QKDuaXALDkw2kvHO8WDjxH+f/rHGR4Me4pnk8p9JAkRNTjYHAKRn2Q==} dependencies: @@ -5063,6 +5307,10 @@ packages: get-intrinsic: 1.2.1 dev: true + /get-tsconfig@4.5.0: + resolution: {integrity: sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==} + dev: true + /get-urls@10.0.1(bluebird@3.7.2): resolution: {integrity: sha512-5usUMF4FE0cTS7yUuRvBsB4tSs5u8KFn7v01+IDGL/18tuoADu5ehthqw+y2EHnJsWhsp1443K5P+C/XWZQ04g==} engines: {node: '>=10.12.0'} @@ -5139,8 +5387,8 @@ packages: is-glob: 4.0.3 dev: true - /glob@10.2.3: - resolution: {integrity: sha512-Kb4rfmBVE3eQTAimgmeqc2LwSnN0wIOkkUL6HmxEFxNJ4fHghYHVbFba/HcGcRjE6s9KoMNK3rSOwkL4PioZjg==} + /glob@10.2.4: + resolution: {integrity: sha512-fDboBse/sl1oXSLhIp0FcCJgzW9KmhC/q8ULTKC82zc+DL3TL7FNb8qlt5qqXN53MsKEUSIcb+7DLmEygOE5Yw==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: @@ -5226,6 +5474,17 @@ packages: slash: 3.0.0 dev: true + /globby@13.1.4: + resolution: {integrity: sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 4.0.0 + dev: true + /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: @@ -5752,6 +6011,12 @@ packages: hasBin: true dev: true + /is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dev: true + /is-extendable@0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} @@ -5793,6 +6058,14 @@ packages: is-extglob: 2.1.1 dev: true + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + dependencies: + is-docker: 3.0.0 + dev: true + /is-js-type@2.0.0: resolution: {integrity: sha512-Aj13l47+uyTjlQNHtXBV8Cji3jb037vxwMWCgopRR8h6xocgBGW3qG8qGlIOEmbXQtkKShKuBM9e8AA1OeQ+xw==} dependencies: @@ -6160,15 +6433,16 @@ packages: resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} dev: true - /jsdoc-type-pratt-parser@2.2.5: - resolution: {integrity: sha512-2a6eRxSxp1BW040hFvaJxhsCMI9lT8QB8t14t+NY5tC5rckIR0U9cr2tjOeaFirmEOy6MHvmJnY7zTBHq431Lw==} - engines: {node: '>=12.0.0'} - dev: true - /jsdoc-type-pratt-parser@4.0.0: resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} engines: {node: '>=12.0.0'} + /jsdoctypeparser@9.0.0: + resolution: {integrity: sha512-jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==} + engines: {node: '>=10'} + hasBin: true + dev: true + /jsdom@6.5.1: resolution: {integrity: sha512-KeCN3yqR+MmjAZDnVZgIaL2tP9BxSFlsYZw9Z+zy64+jJzHc1m8ruccb83Qe8AG0xKUjpo2kxEGFCMtiF4MmAg==} dependencies: @@ -6201,6 +6475,12 @@ packages: hasBin: true dev: true + /jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + dev: true + /json-parse-better-errors@1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} dev: true @@ -6932,10 +7212,6 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /multimap@1.1.0: - resolution: {integrity: sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==} - dev: true - /nan@2.17.0: resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==} dev: true @@ -7414,6 +7690,16 @@ packages: is-wsl: 2.2.0 dev: true + /open@9.1.0: + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} + engines: {node: '>=14.16'} + dependencies: + default-browser: 4.0.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 2.2.0 + dev: true + /optionator@0.8.3: resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} engines: {node: '>= 0.8.0'} @@ -7766,6 +8052,19 @@ packages: engines: {node: '>= 0.8.0'} dev: true + /prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: 1.2.0 + dev: true + + /prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: true + /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true @@ -7871,6 +8170,10 @@ packages: resolution: {integrity: sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==} dev: true + /ramda@0.29.0: + resolution: {integrity: sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==} + dev: true + /randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: @@ -7995,6 +8298,13 @@ packages: esprima: 4.0.1 dev: true + /refa@0.11.0: + resolution: {integrity: sha512-486O8/pQXwj9jV0mVvUnTsxq0uknpBnNJ0eCUhkZqJRQ8KutrT1PhzmumdCeM1hSBF2eMlFPmwECRER4IbKXlQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dependencies: + '@eslint-community/regexpp': 4.5.1 + dev: true + /regenerate-unicode-properties@10.1.0: resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} engines: {node: '>=4'} @@ -8024,6 +8334,14 @@ packages: safe-regex: 1.1.0 dev: true + /regexp-ast-analysis@0.6.0: + resolution: {integrity: sha512-OLxjyjPkVH+rQlBLb1I/P/VTmamSjGkvN5PTV5BXP432k3uVz727J7H29GA5IFiY0m7e1xBN7049Wn59FY3DEQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dependencies: + '@eslint-community/regexpp': 4.5.1 + refa: 0.11.0 + dev: true + /regexp-tree@0.1.27: resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} hasBin: true @@ -8055,11 +8373,6 @@ packages: unicode-match-property-value-ecmascript: 2.1.0 dev: true - /regextras@0.8.0: - resolution: {integrity: sha512-k519uI04Z3SaY0fLX843MRXnDeG2+vHOFsyhiPZvNLe7r8rD2YNRjq4BQLZZ0oAr2NrtvZlICsXysGNFPGa3CQ==} - engines: {node: '>=0.1.14'} - dev: true - /registry-auth-token@5.0.2: resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} engines: {node: '>=14'} @@ -8223,7 +8536,26 @@ packages: engines: {node: '>=14'} hasBin: true dependencies: - glob: 10.2.3 + glob: 10.2.4 + dev: true + + /roarr@7.15.0: + resolution: {integrity: sha512-CV9WefQfUXTX6wr8CrEMhfNef3sjIt9wNhE/5PNu4tNWsaoDNDXqq+OGn/RW9A1UPb0qc7FQlswXRaJJJsqn8A==} + engines: {node: '>=12.0'} + dependencies: + boolean: 3.2.0 + fast-json-stringify: 2.7.13 + fast-printf: 1.6.9 + globalthis: 1.0.3 + safe-stable-stringify: 2.4.3 + semver-compare: 1.0.0 + dev: true + + /run-applescript@5.0.0: + resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} + engines: {node: '>=12'} + dependencies: + execa: 5.1.1 dev: true /run-parallel@1.2.0: @@ -8276,10 +8608,23 @@ packages: regexp-tree: 0.1.27 dev: true + /safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} + dev: true + /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true + /scslre@0.2.0: + resolution: {integrity: sha512-4hc49fUMmX3jM0XdFUAPBrs1xwEcdHa0KyjEsjFs+Zfc66mpFpq5YmRgDtl+Ffo6AtJIilfei+yKw8fUn3N88w==} + dependencies: + '@eslint-community/regexpp': 4.5.1 + refa: 0.11.0 + regexp-ast-analysis: 0.6.0 + dev: true + /semantic-release@21.0.2(typescript@5.0.4): resolution: {integrity: sha512-Hl6lyJdZ0pAYD07Z1FIUmg06UzSC3fEjHS7U31YppNQ8jOwjjt7pVzW9OfpoO0vbmqD3Tc+b/iZh5fqvKt01OA==} engines: {node: '>=18'} @@ -8319,6 +8664,10 @@ packages: - typescript dev: true + /semver-compare@1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + dev: true + /semver-diff@4.0.0: resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} engines: {node: '>=12'} @@ -8439,6 +8788,11 @@ packages: engines: {node: '>=8'} dev: true + /slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: true + /slice-ansi@3.0.0: resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} engines: {node: '>=8'} @@ -8690,6 +9044,11 @@ packages: resolution: {integrity: sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==} dev: true + /string-similarity@4.0.4: + resolution: {integrity: sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + dev: true + /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -8851,6 +9210,19 @@ packages: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true + /synckit@0.8.5: + resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/utils': 2.4.0 + tslib: 2.5.0 + dev: true + + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: true + /tar@6.1.14: resolution: {integrity: sha512-piERznXu0U7/pW7cdSn7hjqySIVTYT6F76icmFk7ptU7dDYlXTm5r9A6K04R2vU3olYgoKeo1Cg3eeu5nhftAw==} engines: {node: '>=10'} @@ -8913,6 +9285,11 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true + /titleize@3.0.0: + resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} + engines: {node: '>=12'} + dev: true + /tlds@1.238.0: resolution: {integrity: sha512-lFPF9pZFhLrPodaJ0wt9QIN0l8jOxqmUezGZnm7BfkDSVd9q667oVIJukLVzhF+4oW7uDlrLlfJrL5yu9RWwew==} hasBin: true @@ -8976,6 +9353,17 @@ packages: engines: {node: '>=8'} dev: true + /ts-unused-exports@9.0.4(typescript@5.0.4): + resolution: {integrity: sha512-/PPy0B1zhOJkDTUd1XVyaCqE/yA3IL2FrQ8W5/6cQ2g0kKC/06q8LEoPeXI6ELfI6Bivmv3MMvsUup5u3WH+BQ==} + hasBin: true + peerDependencies: + typescript: '>=3.8.3' + dependencies: + chalk: 4.1.2 + tsconfig-paths: 3.14.2 + typescript: 5.0.4 + dev: true + /tsconfig-paths@3.14.2: resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} dependencies: @@ -9196,6 +9584,11 @@ packages: isobject: 3.0.1 dev: true + /untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + dev: true + /update-browserslist-db@1.0.11(browserslist@4.21.5): resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true @@ -9454,6 +9847,12 @@ packages: engines: {node: '>=0.4.0'} dev: true + /xregexp@5.1.1: + resolution: {integrity: sha512-fKXeVorD+CzWvFs7VBuKTYIW63YD1e1osxwQ8caZ6o1jg6pDAbABDG54LCIq0j5cy7PjRvGIq6sef9DYPXpncg==} + dependencies: + '@babel/runtime-corejs3': 7.21.5 + dev: true + /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} @@ -9475,18 +9874,13 @@ packages: /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - /yaml-eslint-parser@0.5.0: - resolution: {integrity: sha512-nJeyLA3YHAzhBTZbRAbu3W6xrSCucyxExmA+ZDtEdUFpGllxAZpto2Zxo2IG0r0eiuEiBM4e+wiAdxTziTq94g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /yaml-eslint-parser@1.2.2: + resolution: {integrity: sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==} + engines: {node: ^14.17.0 || >=16.0.0} dependencies: eslint-visitor-keys: 3.4.1 lodash: 4.17.21 - yaml: 1.10.2 - dev: true - - /yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} + yaml: 2.2.2 dev: true /yaml@2.2.2: diff --git a/src/WarnSettings.js b/src/WarnSettings.js index cce7481ee..9d69fc210 100644 --- a/src/WarnSettings.js +++ b/src/WarnSettings.js @@ -5,7 +5,6 @@ const WarnSettings = function () { return { /** * Warn only once for each context and setting - * * @param {import('eslint').Rule.RuleContext} context * @param {string} setting * @returns {boolean} diff --git a/src/alignTransform.js b/src/alignTransform.js index a53b41c4b..21968a774 100644 --- a/src/alignTransform.js +++ b/src/alignTransform.js @@ -5,7 +5,6 @@ */ import { - // `comment-parser/primitives` export util, } from 'comment-parser'; diff --git a/src/bin/generateDocs.js b/src/bin/generateDocs.js index 603d00420..2774cb4f5 100644 --- a/src/bin/generateDocs.js +++ b/src/bin/generateDocs.js @@ -1,13 +1,13 @@ /** * This script is used to inline assertions into the README.md documents. */ -import fs from 'fs'; -import path from 'path'; import decamelize from 'decamelize'; +import fs from 'fs'; import Gitdown from 'gitdown'; import { glob, } from 'glob'; +import path from 'path'; /** * @param {string} code @@ -160,7 +160,7 @@ const generateDocs = async () => { })); return docContents.map((docContent) => { - return docContent.replace( + return docContent.replaceAll( //gui, /** * @param {string} _assertionsBlock @@ -183,7 +183,7 @@ const generateDocs = async () => { }, // Allow relative paths in source for #902 but generate compiled file in // manner compatible with GitHub and npmjs.com - ).replace(/\(\.\.\/#/gu, '(#user-content-eslint-plugin-jsdoc-'); + ).replaceAll('(../#', '(#user-content-eslint-plugin-jsdoc-'); }); }; @@ -218,9 +218,7 @@ const getDocPaths = () => { } return null; - }).filter((file) => { - return file; - })); + }).filter(Boolean)); return [ ...docPaths, diff --git a/src/bin/generateRule.js b/src/bin/generateRule.js index a88e69cf6..ea28f797a 100644 --- a/src/bin/generateRule.js +++ b/src/bin/generateRule.js @@ -8,15 +8,15 @@ * ``` */ +import camelCase from 'camelcase'; import { existsSync, } from 'fs'; import fs from 'fs/promises'; +import open from 'open-editor'; import { resolve, } from 'path'; -import camelCase from 'camelcase'; -import open from 'open-editor'; // Todo: Would ideally have prompts, e.g., to ask for whether // type was problem/layout, etc. @@ -42,8 +42,9 @@ const recommended = options.includes('--recommended'); } const ruleNamesPath = './test/rules/ruleNames.json'; + // @ts-expect-error Older types? const ruleNames = JSON.parse(await fs.readFile( - ruleNamesPath, 'utf8', + ruleNamesPath, )); if (!ruleNames.includes(ruleName)) { ruleNames.push(ruleName); diff --git a/src/exportParser.js b/src/exportParser.js index 521321059..45f81d3ee 100644 --- a/src/exportParser.js +++ b/src/exportParser.js @@ -11,7 +11,6 @@ const debug = debugModule('requireExportJsdoc'); * }} ValueObject */ -/* eslint-disable jsdoc/valid-types -- Old version */ /** * @typedef {{ * type?: string, @@ -25,7 +24,6 @@ const debug = debugModule('requireExportJsdoc'); * ANONYMOUS_DEFAULT?: import('eslint').Rule.Node * }} CreatedNode */ -/* eslint-enable jsdoc/valid-types -- Old version */ /** * @returns {CreatedNode} @@ -222,7 +220,6 @@ const getSymbol = function (node, globals, scope, opt) { ).key ).name ] = createNode(); - /* eslint-disable jsdoc/valid-types -- Old version */ /** @type {{[key: string]: CreatedNode}} */ (val.props)[ /** @type {import('estree').Identifier} */ ( /** @type {import('estree').MethodDefinition} */ ( @@ -239,7 +236,6 @@ const getSymbol = function (node, globals, scope, opt) { ].value = /** @type {import('eslint').Rule.Node} */ ( /** @type {import('estree').MethodDefinition} */ (method).value ); - /* eslint-enable jsdoc/valid-types -- Old version */ } val.type = 'object'; @@ -409,7 +405,6 @@ createSymbol = function (node, globals, value, scope, isGlobal) { /** * Creates variables from variable definitions - * * @param {import('eslint').Rule.Node} node * @param {CreatedNode} globals * @param {import('./rules/requireJsdoc.js').RequireJsdocOpts} opts @@ -482,7 +477,6 @@ const initVariables = function (node, globals, opts) { /** * Populates variable maps using AST - * * @param {import('eslint').Rule.Node} node * @param {CreatedNode} globals * @param {import('./rules/requireJsdoc.js').RequireJsdocOpts} opt diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index b8426b429..55342e854 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -1,18 +1,22 @@ +import jsdocUtils from './jsdocUtils'; import { - getJSDocComment, commentHandler, + getJSDocComment, parseComment, } from '@es-joy/jsdoccomment'; import { stringify as commentStringify, util, } from 'comment-parser'; -import jsdocUtils from './jsdocUtils'; /** * @typedef {number} Integer */ +/** + * @typedef {import('@es-joy/jsdoccomment').JsdocBlockWithInline} JsdocBlockWithInline + */ + /** * @typedef {{ * disallowName?: string, @@ -37,7 +41,7 @@ import jsdocUtils from './jsdocUtils'; * selector?: string, * comment?: string * }} info - * @param {null|((jsdoc: import('comment-parser').Block) => boolean|undefined)} handler + * @param {null|((jsdoc: import('@es-joy/jsdoccomment').JsdocBlockWithInline) => boolean|undefined)} handler * @param {import('eslint').Rule.Node} node * @returns {void} */ @@ -46,9 +50,7 @@ import jsdocUtils from './jsdocUtils'; * @callback ForEachPreferredTag * @param {string} tagName * @param {( - * matchingJsdocTag: import('comment-parser').Spec & { - * line: Integer - * }, + * matchingJsdocTag: import('@es-joy/jsdoccomment').JsdocTagWithInline, * targetTagName: string * ) => void} arrayHandler * @param {boolean} [skipReportingBlockedTag] @@ -108,7 +110,6 @@ import jsdocUtils from './jsdocUtils'; * @returns {string} */ -/* eslint-disable jsdoc/valid-types -- Old version */ /** * @callback ReportJSDoc * @param {string} msg @@ -152,7 +153,6 @@ import jsdocUtils from './jsdocUtils'; * }} */ -/* eslint-disable jsdoc/no-undefined-types -- Bug */ /** * @callback SetBlockDescription * @param {( @@ -177,7 +177,6 @@ import jsdocUtils from './jsdocUtils'; * @returns {Integer} */ -/* eslint-disable jsdoc/no-undefined-types -- TS */ /** * @callback ChangeTag * @param {import('comment-parser').Spec} tag @@ -186,7 +185,6 @@ import jsdocUtils from './jsdocUtils'; */ /* eslint-enable jsdoc/no-undefined-types -- TS */ -/* eslint-disable jsdoc/no-undefined-types -- TS */ /** * @callback SetTag * @param {import('comment-parser').Spec & { @@ -220,7 +218,6 @@ import jsdocUtils from './jsdocUtils'; * @returns {Integer|undefined} */ -/* eslint-disable jsdoc/no-undefined-types -- TS */ /** * @typedef {( * tokens?: Partial | undefined @@ -230,13 +227,11 @@ import jsdocUtils from './jsdocUtils'; /** * Sets tokens to empty string. - * * @callback EmptyTokens * @param {import('comment-parser').Tokens} tokens * @returns {void} */ -/* eslint-disable jsdoc/no-undefined-types -- TS */ /** * @callback AddLine * @param {Integer} sourceIndex @@ -424,13 +419,13 @@ import jsdocUtils from './jsdocUtils'; /** * @callback GetPresentTags * @param {string[]} tagList - * @returns {import('comment-parser').Spec[]} + * @returns {import('@es-joy/jsdoccomment').JsdocTagWithInline[]} */ /** * @callback FilterTags - * @param {(tag: import('comment-parser').Spec) => boolean} filter - * @returns {import('comment-parser').Spec[]} + * @param {(tag: import('@es-joy/jsdoccomment').JsdocTagWithInline) => boolean} filter + * @returns {import('@es-joy/jsdoccomment').JsdocTagWithInline[]} */ /** @@ -463,9 +458,7 @@ import jsdocUtils from './jsdocUtils'; /** * @callback GetClassJsdoc - * @returns {null|import('comment-parser').Block & { - * inlineTags: import('@es-joy/jsdoccomment').InlineTag[] - * }} + * @returns {null|JsdocBlockWithInline} */ /** @@ -546,14 +539,11 @@ const { /** * Should use ESLint rule's typing. - * * @typedef {import('eslint').Rule.RuleMetaData} EslintRuleMeta */ -/* eslint-disable jsdoc/valid-types -- Old version */ /** * A plain object for tracking state as needed by rules across iterations. - * * @typedef {{ * globalTags: {}, * hasDuplicates: { @@ -577,7 +567,6 @@ const { /** * The Node AST as supplied by the parser. - * * @typedef {import('eslint').Rule.Node} Node */ @@ -653,7 +642,6 @@ const getBasicUtils = (context, { return utils; }; -/* eslint-disable jsdoc/valid-types -- Old version of pratt */ /** * @callback Report * @param {string} message @@ -671,9 +659,7 @@ const getBasicUtils = (context, { /** * @param {Node|null} node - * @param {import('comment-parser').Block & { - * inlineTags: import('@es-joy/jsdoccomment').InlineTag[] - * }} jsdoc + * @param {JsdocBlockWithInline} jsdoc * @param {import('eslint').AST.Token} jsdocNode * @param {Settings} settings * @param {Report} report @@ -1718,9 +1704,7 @@ const getUtils = ( for (const matchingJsdocTag of matchingJsdocTags) { arrayHandler( /** - * @type {import('comment-parser').Spec & { - * line: Integer - * }} + * @type {import('@es-joy/jsdoccomment').JsdocTagWithInline} */ ( matchingJsdocTag ), targetTagName, @@ -1731,7 +1715,6 @@ const getUtils = ( return utils; }; -/* eslint-disable jsdoc/valid-types -- Old version */ /** * @typedef {{ * [key: string]: false|string|{ @@ -1752,7 +1735,6 @@ const getUtils = ( */ /** * Settings from ESLint types. - * * @typedef {{ * maxLines: Integer, * minLines: Integer, @@ -1832,7 +1814,6 @@ const getSettings = (context) => { /** * Create the report function - * * @callback MakeReport * @param {import('eslint').Rule.RuleContext} context * @param {import('estree').Node} commentNode @@ -1893,7 +1874,6 @@ const makeReport = (context, commentNode) => { return report; }; -/* eslint-disable jsdoc/valid-types -- Old version */ /** * @typedef {( * arg: { @@ -1906,7 +1886,7 @@ const makeReport = (context, commentNode) => { * }, * state?: StateObject, * globalState?: Map>, - * jsdoc?: import('comment-parser').Block, + * jsdoc?: JsdocBlockWithInline, * jsdocNode?: import('eslint').Rule.Node & { * range: [number, number] * }, @@ -1931,7 +1911,7 @@ const makeReport = (context, commentNode) => { * }, * state: StateObject, * globalState: Map>, - * jsdoc: import('comment-parser').Block, + * jsdoc: JsdocBlockWithInline, * jsdocNode: import('eslint').Rule.Node & { * range: [number, number] * }, @@ -1955,9 +1935,7 @@ const makeReport = (context, commentNode) => { * isFunctionContext?: boolean, * }} info * @param {string} indent - * @param {import('comment-parser').Block & { - * inlineTags: import('@es-joy/jsdoccomment').InlineTag[] - * }} jsdoc + * @param {JsdocBlockWithInline} jsdoc * @param {RuleConfig} ruleConfig * @param {import('eslint').Rule.RuleContext} context * @param {string[]} lines @@ -2045,9 +2023,7 @@ const iterate = ( /** * @param {string[]} lines * @param {import('estree').Comment} jsdocNode - * @returns {[indent: string, jsdoc: import('comment-parser').Block & { - * inlineTags: import('@es-joy/jsdoccomment').InlineTag[] - * }]} + * @returns {[indent: string, jsdoc: JsdocBlockWithInline]} */ const getIndentAndJSDoc = function (lines, jsdocNode) { const sourceLine = lines[ @@ -2100,7 +2076,6 @@ const getIndentAndJSDoc = function (lines, jsdocNode) { /** * Create an eslint rule that iterates over all JSDocs, regardless of whether * they are attached to a function-like node. - * * @param {JsdocVisitor} iterator * @param {RuleConfig} ruleConfig The rule's configuration * @param {ContextObject[]|null} [contexts] The `contexts` containing relevant `comment` info. @@ -2309,7 +2284,6 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext /** * Create an eslint rule that iterates over all JSDocs, regardless of whether * they are attached to a function-like node. - * * @param {JsdocVisitorBasic} iterator * @param {RuleConfig} ruleConfig * @returns {import('eslint').Rule.RuleModule} @@ -2381,7 +2355,6 @@ export default function iterateJsdoc (iterator, ruleConfig) { return { /** * The entrypoint for the JSDoc rule. - * * @param {import('eslint').Rule.RuleContext} context * a reference to the context which hold all important information * like settings and the sourcecode to check. @@ -2440,7 +2413,6 @@ export default function iterateJsdoc (iterator, ruleConfig) { lines, } = sourceCode; - /* eslint-disable jsdoc/no-undefined-types -- TS */ /** @type {Partial} */ const state = {}; /* eslint-enable jsdoc/no-undefined-types -- TS */ @@ -2514,7 +2486,7 @@ export default function iterateJsdoc (iterator, ruleConfig) { if (typeof ruleConfig.exit === 'function') { contextObject['Program:exit'] = () => { const ste = /** @type {StateObject} */ (state); - /* eslint-disable jsdoc/no-undefined-types -- Bug */ + // @ts-expect-error `utils` not needed at this point /** @type {Required} */ (ruleConfig).exit({ context, diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index b002c0e2c..ad05cb8c5 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -1,17 +1,17 @@ -import { - tryParse, -} from '@es-joy/jsdoccomment'; -import WarnSettings from './WarnSettings'; import getDefaultTagStructureForMode from './getDefaultTagStructureForMode'; import { - jsdocTags, closureTags, + jsdocTags, typeScriptTags, } from './tagNames'; import { hasReturnValue, hasValueOrExecutorHasNonEmptyResolveValue, } from './utils/hasReturnValue'; +import WarnSettings from './WarnSettings'; +import { + tryParse, +} from '@es-joy/jsdoccomment'; /** * @typedef {number} Integer @@ -74,8 +74,7 @@ const setTagStructure = (mode) => { /** * Given a nested array of property names, reduce them to a single array, - * appending the name of the root element along the way if present. - * + * appending the name of the root element along the way if present. * @callback FlattenRoots * @param {ParamInfo[]} params * @param {string} [root] @@ -443,13 +442,14 @@ const getFunctionParameterNames = ( */ const hasParams = (functionNode) => { // Should also check `functionNode.value.params` if supporting `MethodDefinition` - return functionNode.params.length; + return /** @type {import('@typescript-eslint/types').TSESTree.FunctionDeclaration} */ ( + functionNode + ).params.length; }; /** * Gets all names of the target type, including those that refer to a path, e.g. * "@param foo; @param foo.bar". - * * @param {import('comment-parser').Block} jsdoc * @param {string} targetTagName * @returns {{ @@ -501,6 +501,10 @@ const getTagNamesForMode = (mode, context) => { if (!modeWarnSettings.hasBeenWarned(context, 'mode')) { context.report({ loc: { + end: { + column: 1, + line: 1, + }, start: { column: 1, line: 1, @@ -598,9 +602,7 @@ const isValidTag = ( }; /** - * @param {import('comment-parser').Block & { - * inlineTags: import('@es-joy/jsdoccomment').InlineTag[] - * }} jsdoc + * @param {import('./iterateJsdoc.js').JsdocBlockWithInline} jsdoc * @param {string} targetTagName * @returns {boolean} */ @@ -614,10 +616,7 @@ const hasTag = (jsdoc, targetTagName) => { /** * Get all tags, inline tags and inline tags in tags - * - * @param {import('comment-parser').Block & { - * inlineTags: import('@es-joy/jsdoccomment').JsdocInlineTagNoType[] - * }} jsdoc + * @param {import('./iterateJsdoc.js').JsdocBlockWithInline} jsdoc * @returns {(import('comment-parser').Spec| * import('@es-joy/jsdoccomment').JsdocInlineTagNoType)[]} */ @@ -656,7 +655,8 @@ const getAllTags = (jsdoc) => { } for (const inlineTag of tag.inlineTags) { - let line; + /** @type {import('./iterateJsdoc.js').Integer} */ + let line = 0; for (const { number, tokens: { @@ -686,9 +686,7 @@ const getAllTags = (jsdoc) => { }; /** - * @param {import('comment-parser').Block & { - * inlineTags: import('@es-joy/jsdoccomment').InlineTag[] - * }} jsdoc + * @param {import('./iterateJsdoc.js').JsdocBlockWithInline} jsdoc * @param {string[]} targetTagNames * @returns {boolean} */ @@ -700,7 +698,6 @@ const hasATag = (jsdoc, targetTagNames) => { /** * Checks if the JSDoc comment has an undefined type. - * * @param {import('comment-parser').Spec|null|undefined} tag * the tag which should be checked. * @param {ParserMode} mode @@ -1165,7 +1162,6 @@ const hasNonFunctionYield = (node, checkYieldReturnValue) => { /** * Checks if a node has a return statement. Void return does not count. - * * @param {ESTreeOrTypeScriptNode} node * @param {boolean} [checkYieldReturnValue] * @returns {boolean} @@ -1186,7 +1182,6 @@ const hasYieldValue = (node, checkYieldReturnValue) => { /** * Checks if a node has a throws statement. - * * @param {ESTreeOrTypeScriptNode|null|undefined} node * @param {boolean} [innerFunction] * @returns {boolean} @@ -1264,9 +1259,8 @@ const isInlineTag = (tag) => { /** * Parses GCC Generic/Template types - * - * @see {https://github.com/google/closure-compiler/wiki/Generic-Types} - * @see {https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html#template} + * @see {@link https://github.com/google/closure-compiler/wiki/Generic-Types} + * @see {@link https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html#template} * @param {import('comment-parser').Spec} tag * @returns {string[]} */ @@ -1284,9 +1278,8 @@ const parseClosureTemplateTag = (tag) => { /** * Checks user option for `contexts` array, defaulting to - * contexts designated by the rule. Returns an array of - * ESTree AST types, indicating allowable contexts. - * + * contexts designated by the rule. Returns an array of + * ESTree AST types, indicating allowable contexts. * @param {import('eslint').Rule.RuleContext} context * @param {DefaultContexts|undefined} defaultContexts * @param {{ @@ -1339,9 +1332,7 @@ const getContextObject = (contexts, checkJsdoc, handler) => { comment: prop.comment, }, /** - * @type {(jsdoc: import('comment-parser').Block & { - * inlineTags?: import('@es-joy/jsdoccomment').InlineTag[] - * }) => boolean} + * @type {(jsdoc: import('@es-joy/jsdoccomment').JsdocBlockWithInline) => boolean} */ (/** @type {import('@es-joy/jsdoccomment').CommentHandler} */ ( handler @@ -1385,10 +1376,9 @@ const tagsWithNamesAndDescriptions = new Set([ 'returns', 'return', ]); -/* eslint-disable jsdoc/valid-types -- Old version */ /** * @typedef {{ - * [key: string]: false| + * [key: string]: false|string| * {message: string, replacement?: string} * }} TagNamePreference */ @@ -1528,9 +1518,7 @@ const hasAccessorPair = (node) => { }; /** - * @param {import('comment-parser').Block & { - * inlineTags: import('@es-joy/jsdoccomment').InlineTag[] - * }} jsdoc + * @param {import('./iterateJsdoc.js').JsdocBlockWithInline} jsdoc * @param {import('eslint').Rule.Node|null} node * @param {import('eslint').Rule.RuleContext} context * @param {import('json-schema').JSONSchema4} schema @@ -1573,12 +1561,11 @@ const exemptSpeciaMethods = (jsdoc, node, context, schema) => { * identifier or numeric literal) or single or double quoted, in either * the `@param` or in source, we need to strip the quotes to give a fair * comparison. - * * @param {string} str * @returns {string} */ const dropPathSegmentQuotes = (str) => { - return str.replace(/\.(['"])(.*)\1/gu, '.$2'); + return str.replaceAll(/\.(['"])(.*)\1/gu, '.$2'); }; /** diff --git a/src/rules/checkExamples.js b/src/rules/checkExamples.js index 2dac7e57d..69ef3376f 100644 --- a/src/rules/checkExamples.js +++ b/src/rules/checkExamples.js @@ -1,12 +1,12 @@ // Todo: When replace `CLIEngine` with `ESLint` when feature set complete per https://github.com/eslint/eslint/issues/14745 // https://github.com/eslint/eslint/blob/master/docs/user-guide/migrating-to-7.0.0.md#-the-cliengine-class-has-been-deprecated +import iterateJsdoc from '../iterateJsdoc'; import { // @ts-expect-error - For older ESLint CLIEngine, ESLint, } from 'eslint'; import semver from 'semver'; -import iterateJsdoc from '../iterateJsdoc'; const zeroBasedLineIndexAdjust = -1; const likelyNestedJSDocIndentSpace = 1; @@ -22,7 +22,7 @@ const hasCaptionRegex = /^\s*([\s\S]*?)<\/caption>/u; * @returns {string} */ const escapeStringRegexp = (str) => { - return str.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&'); + return str.replaceAll(/[.*+?^${}()|[\]\\]/gu, '\\$&'); }; /** @@ -246,7 +246,7 @@ export default iterateJsdoc(({ const cliConfigStr = JSON.stringify(cliConfig); const src = paddedIndent ? - string.replace(new RegExp(`(^|\n) {${paddedIndent}}(?!$)`, 'gu'), '\n') : + string.replaceAll(new RegExp(`(^|\n) {${paddedIndent}}(?!$)`, 'gu'), '\n') : string; // Programmatic ESLint API: https://eslint.org/docs/developer-guide/nodejs-api diff --git a/src/rules/checkIndentation.js b/src/rules/checkIndentation.js index f54738618..694973ae1 100644 --- a/src/rules/checkIndentation.js +++ b/src/rules/checkIndentation.js @@ -20,7 +20,7 @@ const maskExcludedContent = (str, excludeTags) => { const maskCodeBlocks = (str) => { const regContent = /([ \t]+\*)[ \t]```[^\n]*?([\w|\W]*?\n)(?=[ \t]*\*(?:[ \t]*(?:```|@\w+\s)|\/))/gu; - return str.replace(regContent, (_match, margin, code) => { + return str.replaceAll(regContent, (_match, margin, code) => { return (margin + '\n').repeat(code.match(/\n/gu).length); }); }; diff --git a/src/rules/checkLineAlignment.js b/src/rules/checkLineAlignment.js index 8427e70aa..441f85176 100644 --- a/src/rules/checkLineAlignment.js +++ b/src/rules/checkLineAlignment.js @@ -1,8 +1,8 @@ +import alignTransform from '../alignTransform'; +import iterateJsdoc from '../iterateJsdoc'; import { transforms, } from 'comment-parser'; -import alignTransform from '../alignTransform'; -import iterateJsdoc from '../iterateJsdoc'; const { flow: commentFlow, diff --git a/src/rules/checkTagNames.js b/src/rules/checkTagNames.js index d7adc39a0..42bac87f6 100644 --- a/src/rules/checkTagNames.js +++ b/src/rules/checkTagNames.js @@ -1,5 +1,5 @@ -import escapeStringRegexp from 'escape-string-regexp'; import iterateJsdoc from '../iterateJsdoc'; +import escapeStringRegexp from 'escape-string-regexp'; // https://babeljs.io/docs/en/babel-plugin-transform-react-jsx/ const jsxTagNames = new Set([ @@ -111,9 +111,7 @@ export default iterateJsdoc(({ return preferredTag.replacement; }) - .filter((preferredType) => { - return preferredType; - }); + .filter(Boolean); } /** @@ -160,7 +158,6 @@ export default iterateJsdoc(({ return true; }; - /* eslint-disable jsdoc/no-undefined-types -- TS */ /** * @param {string} message * @param {import('comment-parser').Spec} jsdocTag @@ -169,7 +166,6 @@ export default iterateJsdoc(({ * @returns {void} */ const reportWithTagRemovalFixer = (message, jsdocTag, tagIndex, additionalTagChanges) => { - /* eslint-enable jsdoc/no-undefined-types -- TS */ utils.reportJSDoc(message, jsdocTag, enableFixer ? () => { if (jsdocTag.description.trim()) { utils.changeTag(jsdocTag, { diff --git a/src/rules/checkTypes.js b/src/rules/checkTypes.js index 96877e02f..35e4235c0 100644 --- a/src/rules/checkTypes.js +++ b/src/rules/checkTypes.js @@ -1,10 +1,10 @@ +import iterateJsdoc from '../iterateJsdoc'; import { parse, stringify, traverse, tryParse, } from '@es-joy/jsdoccomment'; -import iterateJsdoc from '../iterateJsdoc'; const strictNativeTypes = [ 'undefined', @@ -24,7 +24,6 @@ const strictNativeTypes = [ /** * Adjusts the parent type node `meta` for generic matches (or type node * `type` for `JsdocTypeAny`) and sets the type node `value`. - * * @param {string} type The actual type * @param {string} preferred The preferred type * @param {boolean} isGenericMatch @@ -187,7 +186,6 @@ export default iterateJsdoc(({ /** * Gets information about the preferred type: whether there is a matching * preferred type, what the type is, and whether it is a match to a generic. - * * @param {string} _type Not currently in use * @param {string} typeNodeName * @param {import('jsdoc-type-pratt-parser').NonRootResult|undefined} parentNode @@ -265,7 +263,6 @@ export default iterateJsdoc(({ /** * Iterates strict types to see if any should be added to `invalidTypes` (and * the the relevant strict type returned as the new preferred type). - * * @param {string} typeNodeName * @param {string|undefined} preferred * @param {import('jsdoc-type-pratt-parser').NonRootResult|undefined} parentNode @@ -326,7 +323,6 @@ export default iterateJsdoc(({ /** * Collect invalid type info. - * * @param {string} type * @param {string} value * @param {string} tagName diff --git a/src/rules/checkValues.js b/src/rules/checkValues.js index fbd023bf8..7ee4ed199 100644 --- a/src/rules/checkValues.js +++ b/src/rules/checkValues.js @@ -1,6 +1,6 @@ +import iterateJsdoc from '../iterateJsdoc'; import semver from 'semver'; import spdxExpressionParse from 'spdx-expression-parse'; -import iterateJsdoc from '../iterateJsdoc'; const allowedKinds = new Set([ 'class', diff --git a/src/rules/informativeDocs.js b/src/rules/informativeDocs.js index e8d9a33a0..2a5ac0d20 100644 --- a/src/rules/informativeDocs.js +++ b/src/rules/informativeDocs.js @@ -1,7 +1,7 @@ +import iterateJsdoc from '../iterateJsdoc'; import { areDocsInformative, } from 'are-docs-informative'; -import iterateJsdoc from '../iterateJsdoc'; const defaultAliases = { a: [ diff --git a/src/rules/noBadBlocks.js b/src/rules/noBadBlocks.js index 8107cd8b0..3f6482d2f 100644 --- a/src/rules/noBadBlocks.js +++ b/src/rules/noBadBlocks.js @@ -1,7 +1,7 @@ +import iterateJsdoc from '../iterateJsdoc'; import { parse as commentParser, } from 'comment-parser'; -import iterateJsdoc from '../iterateJsdoc'; // Neither a single nor 3+ asterisks are valid jsdoc per // https://jsdoc.app/about-getting-started.html#adding-documentation-comments-to-your-code diff --git a/src/rules/noMissingSyntax.js b/src/rules/noMissingSyntax.js index 47b92a66a..6fcfd90b5 100644 --- a/src/rules/noMissingSyntax.js +++ b/src/rules/noMissingSyntax.js @@ -1,5 +1,5 @@ -import esquery from 'esquery'; import iterateJsdoc from '../iterateJsdoc'; +import esquery from 'esquery'; /** * @typedef {{ diff --git a/src/rules/noRestrictedSyntax.js b/src/rules/noRestrictedSyntax.js index 62479224c..722cab132 100644 --- a/src/rules/noRestrictedSyntax.js +++ b/src/rules/noRestrictedSyntax.js @@ -1,5 +1,5 @@ -import esquery from 'esquery'; import iterateJsdoc from '../iterateJsdoc'; +import esquery from 'esquery'; export default iterateJsdoc(({ node, diff --git a/src/rules/noUndefinedTypes.js b/src/rules/noUndefinedTypes.js index bd72e0c32..8b59298b0 100644 --- a/src/rules/noUndefinedTypes.js +++ b/src/rules/noUndefinedTypes.js @@ -1,13 +1,12 @@ +import iterateJsdoc, { + parseComment, +} from '../iterateJsdoc'; import { getJSDocComment, - - traverse, parse as parseType, + traverse, tryParse as tryParseType, } from '@es-joy/jsdoccomment'; -import iterateJsdoc, { - parseComment, -} from '../iterateJsdoc'; const extraTypes = [ 'null', 'undefined', 'void', 'string', 'boolean', 'object', @@ -106,9 +105,7 @@ export default iterateJsdoc(({ return stripPseudoTypes(preferredType.replacement); }) - .filter((preferredType) => { - return preferredType; - })); + .filter(Boolean)); } const typedefDeclarations = sourceCode.getAllComments() @@ -265,10 +262,8 @@ export default iterateJsdoc(({ ...typeTags, ...namepathReferencingTags, ...namepathOrUrlReferencingTags, - ].filter((result) => { // Remove types which failed to parse - return result; - })); + ].filter(Boolean)); for (const { tag, diff --git a/src/rules/requireDescriptionCompleteSentence.js b/src/rules/requireDescriptionCompleteSentence.js index f46816056..c66f16a94 100644 --- a/src/rules/requireDescriptionCompleteSentence.js +++ b/src/rules/requireDescriptionCompleteSentence.js @@ -1,5 +1,5 @@ -import escapeStringRegexp from 'escape-string-regexp'; import iterateJsdoc from '../iterateJsdoc'; +import escapeStringRegexp from 'escape-string-regexp'; const otherDescriptiveTags = new Set([ // 'copyright' and 'see' might be good addition, but as the former may be @@ -25,7 +25,7 @@ const extractParagraphs = (text) => { const extractSentences = (text, abbreviationsRegex) => { const txt = text // Remove all {} tags. - .replace(/\{[\s\S]*?\}\s*/gu, '') + .replaceAll(/\{[\s\S]*?\}\s*/gu, '') // Remove custom abbreviations .replace(abbreviationsRegex, ''); @@ -222,7 +222,7 @@ export default iterateJsdoc(({ const abbreviationsRegex = abbreviations.length ? new RegExp('\\b' + abbreviations.map((abbreviation) => { - return escapeStringRegexp(abbreviation.replace(/\.$/ug, '') + '.'); + return escapeStringRegexp(abbreviation.replaceAll(/\.$/ug, '') + '.'); }).join('|') + '(?:$|\\s)', 'gu') : ''; diff --git a/src/rules/requireHyphenBeforeParamDescription.js b/src/rules/requireHyphenBeforeParamDescription.js index 8a0e82409..941f8f720 100644 --- a/src/rules/requireHyphenBeforeParamDescription.js +++ b/src/rules/requireHyphenBeforeParamDescription.js @@ -15,16 +15,13 @@ export default iterateJsdoc(({ } = {}, ] = context.options; - /* eslint-disable jsdoc/valid-types -- Old version */ const tgs = /** * @type {null|"any"|{[key: string]: "always"|"never"}} */ (tags); /* eslint-enable jsdoc/valid-types -- Old version */ /** - * @param {import('comment-parser').Spec & { - * line: import('../iterateJsdoc.js').Integer - * }} jsdocTag + * @param {import('@es-joy/jsdoccomment').JsdocTagWithInline} jsdocTag * @param {string} targetTagName * @param {"always"|"never"} [circumstance] * @returns {void} @@ -40,7 +37,9 @@ export default iterateJsdoc(({ if (always) { if (!startsWithHyphen) { report(`There must be a hyphen before @${targetTagName} description.`, (fixer) => { - const lineIndex = jsdocTag.line; + const lineIndex = /** @type {import('../iterateJsdoc.js').Integer} */ ( + jsdocTag.line + ); const sourceLines = sourceCode.getText(jsdocNode).split('\n'); // Get start index of description, accounting for multi-line descriptions diff --git a/src/rules/requireJsdoc.js b/src/rules/requireJsdoc.js index bb9364c98..9a8536512 100644 --- a/src/rules/requireJsdoc.js +++ b/src/rules/requireJsdoc.js @@ -1,13 +1,13 @@ -import { - getJSDocComment, - getReducedASTNode, - getDecorator, -} from '@es-joy/jsdoccomment'; import exportParser from '../exportParser'; import { getSettings, } from '../iterateJsdoc'; import jsdocUtils from '../jsdocUtils'; +import { + getDecorator, + getJSDocComment, + getReducedASTNode, +} from '@es-joy/jsdoccomment'; /** * @typedef {{ @@ -177,14 +177,12 @@ const getOption = (context, baseObject, option, key) => { return context.options[0][option][key]; } - /* eslint-disable jsdoc/valid-types -- Old version */ return /** @type {{[key: string]: {default?: boolean|undefined}}} */ ( baseObject.properties )[key].default; /* eslint-enable jsdoc/valid-types -- Old version */ }; -/* eslint-disable jsdoc/valid-types -- Old version */ /** * @param {import('eslint').Rule.RuleContext} context * @param {import('../iterateJsdoc.js').Settings} settings @@ -227,7 +225,6 @@ const getOptions = (context, settings) => { return false; } - /* eslint-disable jsdoc/valid-types -- Old version */ /** @type {{[key: string]: boolean|undefined}} */ const properties = {}; /* eslint-enable jsdoc/valid-types -- Old version */ @@ -261,7 +258,6 @@ const getOptions = (context, settings) => { )[1], ), require: ((baseObj) => { - /* eslint-disable jsdoc/valid-types -- Old version */ /** @type {{[key: string]: boolean|undefined}} */ const properties = {}; /* eslint-enable jsdoc/valid-types -- Old version */ @@ -311,7 +307,7 @@ export default { } = opts; const publicOnly = - /* eslint-disable jsdoc/valid-types -- Old version */ + /** * @type {{ * [key: string]: boolean | undefined; diff --git a/src/rules/requireReturns.js b/src/rules/requireReturns.js index ddcb01d33..73474ea5f 100644 --- a/src/rules/requireReturns.js +++ b/src/rules/requireReturns.js @@ -5,7 +5,6 @@ import iterateJsdoc from '../iterateJsdoc'; * or the method is either a constructor or an abstract method. * * In either of these cases the return value is optional or not defined. - * * @param {import('../iterateJsdoc.js').Utils} utils * a reference to the utils which are used to probe if a tag is present or not. * @returns {boolean} diff --git a/src/rules/requireThrows.js b/src/rules/requireThrows.js index b2247f442..09885146d 100644 --- a/src/rules/requireThrows.js +++ b/src/rules/requireThrows.js @@ -3,7 +3,6 @@ import iterateJsdoc from '../iterateJsdoc'; /** * We can skip checking for a throws value, in case the documentation is inherited * or the method is either a constructor or an abstract method. - * * @param {import('../iterateJsdoc.js').Utils} utils a reference to the utils which are used to probe if a tag is present or not. * @returns {boolean} true in case deep checking can be skipped; otherwise false. */ diff --git a/src/rules/requireYields.js b/src/rules/requireYields.js index 98d7cd122..c524512a2 100644 --- a/src/rules/requireYields.js +++ b/src/rules/requireYields.js @@ -5,7 +5,6 @@ import iterateJsdoc from '../iterateJsdoc'; * or the method has a constructor or abstract tag. * * In either of these cases the yield value is optional or not defined. - * * @param {import('../iterateJsdoc.js').Utils} utils a reference to the utils which are used to probe if a tag is present or not. * @returns {boolean} true in case deep checking can be skipped; otherwise false. */ diff --git a/src/rules/sortTags.js b/src/rules/sortTags.js index df9149b59..976e28cca 100644 --- a/src/rules/sortTags.js +++ b/src/rules/sortTags.js @@ -41,7 +41,7 @@ export default iterateJsdoc(({ ] of /** * @type {( - * import('comment-parser').Spec & { + * import('@es-joy/jsdoccomment').JsdocTagWithInline & { * originalIndex: import('../iterateJsdoc.js').Integer, * originalLine: import('../iterateJsdoc.js').Integer, * } diff --git a/src/rules/textEscaping.js b/src/rules/textEscaping.js index d494a45e7..cebb2d44b 100644 --- a/src/rules/textEscaping.js +++ b/src/rules/textEscaping.js @@ -10,7 +10,7 @@ const markdownRegex = /(? { - return desc.replace(new RegExp(htmlRegex, 'gu'), (_) => { + return desc.replaceAll(new RegExp(htmlRegex, 'gu'), (_) => { if (_ === '<') { return '<'; } @@ -24,7 +24,7 @@ const htmlReplacer = (desc) => { * @returns {string} */ const markdownReplacer = (desc) => { - return desc.replace(new RegExp(markdownRegex, 'gu'), (_, backticks, encapsed) => { + return desc.replaceAll(new RegExp(markdownRegex, 'gu'), (_, backticks, encapsed) => { const bookend = '`'.repeat(backticks.length); return `\\${bookend}${encapsed}${bookend}`; }); diff --git a/src/rules/validTypes.js b/src/rules/validTypes.js index d38a6b4b5..5d37bee6c 100644 --- a/src/rules/validTypes.js +++ b/src/rules/validTypes.js @@ -1,9 +1,9 @@ +import iterateJsdoc from '../iterateJsdoc'; import { - tryParse, parse, traverse, + tryParse, } from '@es-joy/jsdoccomment'; -import iterateJsdoc from '../iterateJsdoc'; const asExpression = /as\s+/u; diff --git a/src/tagNames.js b/src/tagNames.js index d321c3669..b1ba3d25e 100644 --- a/src/tagNames.js +++ b/src/tagNames.js @@ -1,10 +1,8 @@ -/* eslint-disable jsdoc/valid-types -- Old version */ /** * @typedef {{ * [key: string]: string[] * }} AliasedTags */ -/* eslint-enable jsdoc/valid-types -- Old version */ /** * @type {AliasedTags} @@ -230,7 +228,7 @@ const closureTags = { }; export { - jsdocTags, closureTags, + jsdocTags, typeScriptTags, }; diff --git a/src/utils/hasReturnValue.js b/src/utils/hasReturnValue.js index 92d5e55b4..c5f9abd73 100644 --- a/src/utils/hasReturnValue.js +++ b/src/utils/hasReturnValue.js @@ -6,7 +6,6 @@ /** * Checks if a node is a promise but has no resolve value or an empty value. * An `undefined` resolve does not count. - * * @param {ESTreeOrTypeScriptNode|undefined|null} node * @returns {boolean|undefined|null} */ @@ -31,7 +30,6 @@ const undefinedKeywords = new Set([ /** * Checks if a node has a return statement. Void return does not count. - * * @param {ESTreeOrTypeScriptNode|undefined|null} node * @param {boolean} [throwOnNullReturn] * @param {PromiseFilter} [promFilter] @@ -126,7 +124,6 @@ const hasReturnValue = (node, throwOnNullReturn, promFilter) => { /** * Checks if a node has a return statement. Void return does not count. - * * @param {ESTreeOrTypeScriptNode|null|undefined} node * @param {PromiseFilter} promFilter * @returns {undefined|boolean|ESTreeOrTypeScriptNode} @@ -265,7 +262,6 @@ const allBrancheshaveReturnValues = (node, promFilter) => { * This could check for redeclaration of the resolver, but as such is * unlikely, we avoid the performance cost of checking everywhere for * (re)declarations or assignments. - * * @param {import('@typescript-eslint/types').TSESTree.Node|null|undefined} node * @param {string} resolverName * @returns {boolean} @@ -475,7 +471,6 @@ const hasNonEmptyResolverCall = (node, resolverName) => { /** * Checks if a Promise executor has no resolve value or an empty value. * An `undefined` resolve does not count. - * * @param {ESTreeOrTypeScriptNode} node * @param {boolean} anyPromiseAsReturn * @param {boolean} [allBranches] diff --git a/test/iterateJsdoc.js b/test/iterateJsdoc.js index a6c851c32..d5350c854 100644 --- a/test/iterateJsdoc.js +++ b/test/iterateJsdoc.js @@ -1,11 +1,11 @@ import { - expect, -} from 'chai'; -import { - parseComment, // eslint-disable-next-line import/no-named-default default as iterateJsdoc, + parseComment, } from '../src/iterateJsdoc'; +import { + expect, +} from 'chai'; /** * @typedef {any} BadArgument diff --git a/test/jsdocUtils.js b/test/jsdocUtils.js index 34376a72a..fd305f264 100644 --- a/test/jsdocUtils.js +++ b/test/jsdocUtils.js @@ -1,7 +1,7 @@ +import jsdocUtils from '../src/jsdocUtils'; import { expect, } from 'chai'; -import jsdocUtils from '../src/jsdocUtils'; /** * @typedef {any} BadArgument diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index b7d42dbf7..0ab13c5df 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -1,7 +1,7 @@ import { + closureTags, jsdocTags, typeScriptTags, - closureTags, } from '../../../src/tagNames.js'; /** diff --git a/test/rules/index.js b/test/rules/index.js index f035c6c49..b181d7dc5 100644 --- a/test/rules/index.js +++ b/test/rules/index.js @@ -1,10 +1,4 @@ -import { - readFileSync, -} from 'fs'; -import { - // dirname, - join, -} from 'path'; +import config from '../../src'; // import {fileURLToPath} from 'url'; import camelCase from 'camelcase'; import { @@ -12,9 +6,15 @@ import { RuleTester, } from 'eslint'; import pkg from 'eslint/use-at-your-own-risk'; +import { + readFileSync, +} from 'fs'; import defaultsDeep from 'lodash.defaultsdeep'; +import { + // dirname, + join, +} from 'path'; import semver from 'semver'; -import config from '../../src/index.js'; // const __dirname = dirname(fileURLToPath(import.meta.url)); From 36c91663ed5f4fd51f8cfd2533794a02b8641955 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 15 May 2023 15:16:33 -0700 Subject: [PATCH 091/273] refactor: TS --- src/iterateJsdoc.js | 2 +- src/jsdocUtils.js | 120 ++++++++++++++++++++++------------- src/rules/checkParamNames.js | 20 ++++-- src/rules/requireParam.js | 98 +++++++++++++++++++++------- 4 files changed, 169 insertions(+), 71 deletions(-) diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index 55342e854..337fb0e64 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -323,7 +323,7 @@ import { /** * @callback ComparePaths * @param {string} name - * @returns {(otherPathName: string) => void} + * @returns {(otherPathName: string) => boolean} */ /** diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index ad05cb8c5..49fbcd7c7 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -37,39 +37,42 @@ const setTagStructure = (mode) => { tagStructure = getDefaultTagStructureForMode(mode); }; -/** - * @typedef {{ - * hasPropertyRest: boolean, - * hasRestElement: boolean, - * names: string[], - * rests: boolean[], - * }} FlattendRootInfo - */ - /** * @typedef {undefined|string|{ + * name: Integer, + * restElement: boolean + * }|{ * isRestProperty: boolean|undefined, * name: string, - * restElement: true - * }|[undefined|string, FlattendRootInfo & { - * annotationParamName?: string + * restElement: boolean * }|{ - * name: Integer, + * name: string, * restElement: boolean - * }[]]} ParamNameInfo + * }} ParamCommon + */ +/** + * @typedef {ParamCommon|[string|undefined, (FlattendRootInfo & { + * annotationParamName?: string, + * })]|NestedParamInfo} ParamNameInfo */ /** - * @typedef {undefined|string|{ - * isRestProperty: boolean, - * restElement: boolean, - * name: string - * }|[string, { + * @typedef {{ * hasPropertyRest: boolean, * hasRestElement: boolean, * names: string[], * rests: boolean[], - * }]|[string, string[]]} ParamInfo + * }} FlattendRootInfo + */ +/** + * @typedef {[string, (string[]|ParamInfo[])]} NestedParamInfo + */ +/** + * @typedef {ParamCommon| + * [string|undefined, (FlattendRootInfo & { + * annotationParamName?: string + * })]| + * NestedParamInfo} ParamInfo */ /** @@ -123,28 +126,28 @@ const flattenRoots = (params, root = '') => { hasPropertyRest = true; } - const inner = [ + const inner = /** @type {string[]} */ ([ root ? `${root}.${cur[0]}` : cur[0], ...flattened.names, - ].filter(Boolean); + ].filter(Boolean)); rests.push(false, ...flattened.rests); return acc.concat(inner); } if (typeof cur === 'object') { - if (cur.isRestProperty) { + if ('isRestProperty' in cur && cur.isRestProperty) { hasPropertyRest = true; rests.push(true); } else { rests.push(false); } - if (cur.restElement) { + if ('restElement' in cur && cur.restElement) { hasRestElement = true; } - acc.push(root ? `${root}.${cur.name}` : cur.name); + acc.push(root ? `${root}.${String(cur.name)}` : String(cur.name)); } else if (typeof cur !== 'undefined') { rests.push(false); acc.push(root ? `${root}.${cur}` : cur); @@ -219,10 +222,11 @@ const getFunctionParameterNames = ( * import('@typescript-eslint/types').TSESTree.RestElement| * import('@typescript-eslint/types').TSESTree.Identifier| * import('@typescript-eslint/types').TSESTree.ObjectPattern| - * import('@typescript-eslint/types').TSESTree.BindingName + * import('@typescript-eslint/types').TSESTree.BindingName| + * import('@typescript-eslint/types').TSESTree.Parameter * } param * @param {boolean} [isProperty] - * @returns {ParamNameInfo} + * @returns {ParamNameInfo|[string, ParamNameInfo[]]} */ const getParamName = (param, isProperty) => { /* eslint-enable complexity -- Temporary */ @@ -305,9 +309,10 @@ const getFunctionParameterNames = ( if (param.type === 'Property') { // eslint-disable-next-line default-case switch (param.value.type) { - case 'ArrayPattern': + case 'ArrayPattern': { return [ - param.key.name, + /** @type {import('estree').Identifier} */ + (param.key).name, /** @type {import('estree').ArrayPattern} */ ( param.value ).elements.map((prop, idx) => { @@ -317,15 +322,19 @@ const getFunctionParameterNames = ( }; }), ]; - case 'ObjectPattern': + } + + case 'ObjectPattern': { return [ - param.key.name, + /** @type {import('estree').Identifier} */ (param.key).name, /** @type {import('estree').ObjectPattern} */ ( param.value ).properties.map((prop) => { - return getParamName(prop, isProperty); + return /** @type {string|[string, string[]]} */ (getParamName(prop, isProperty)); }), ]; + } + case 'AssignmentPattern': { // eslint-disable-next-line default-case switch (param.value.left.type) { @@ -333,10 +342,17 @@ const getFunctionParameterNames = ( // Default parameter if (checkDefaultObjects && param.value.right.type === 'ObjectExpression') { return [ - param.key.name, /** @type {import('estree').AssignmentPattern} */ ( + /** @type {import('estree').Identifier} */ ( + param.key + ).name, + /** @type {import('estree').AssignmentPattern} */ ( param.value ).right.properties.map((prop) => { - return getParamName(prop, isProperty); + return /** @type {string} */ (getParamName( + /** @type {import('estree').Property} */ + (prop), + isProperty, + )); }), ]; } @@ -344,7 +360,9 @@ const getFunctionParameterNames = ( break; case 'ObjectPattern': return [ - param.key.name, /** @type {import('estree').ObjectPattern} */ ( + /** @type {import('estree').Identifier} */ + (param.key).name, + /** @type {import('estree').ObjectPattern} */ ( param.value.left ).properties.map((prop) => { return getParamName(prop, isProperty); @@ -352,7 +370,9 @@ const getFunctionParameterNames = ( ]; case 'ArrayPattern': return [ - param.key.name, /** @type {import('estree').ArrayPattern} */ ( + /** @type {import('estree').Identifier} */ + (param.key).name, + /** @type {import('estree').ArrayPattern} */ ( param.value.left ).elements.map((prop, idx) => { return { @@ -371,9 +391,9 @@ const getFunctionParameterNames = ( // The key of an object could also be a string or number case 'Literal': - return param.key.raw || + return /** @type {string} */ (param.key.raw || // istanbul ignore next -- `raw` may not be present in all parsers - param.key.value; + param.key.value); // case 'MemberExpression': default: @@ -385,11 +405,18 @@ const getFunctionParameterNames = ( } } - if (param.type === 'ArrayPattern' || param.left?.type === 'ArrayPattern') { + if ( + param.type === 'ArrayPattern' || + /** @type {import('estree').AssignmentPattern} */ ( + param + ).left?.type === 'ArrayPattern' + ) { const elements = /** @type {import('estree').ArrayPattern} */ ( param ).elements || /** @type {import('estree').ArrayPattern} */ ( - param.left + /** @type {import('estree').AssignmentPattern} */ ( + param + ).left )?.elements; const roots = elements.map((prop, idx) => { return { @@ -408,7 +435,10 @@ const getFunctionParameterNames = ( ].includes(param.type)) { return { isRestProperty: isProperty, - name: param.argument.name, + name: /** @type {import('@typescript-eslint/types').TSESTree.Identifier} */ ( + /** @type {import('@typescript-eslint/types').TSESTree.RestElement} */ ( + param + ).argument).name, restElement: true, }; } @@ -431,7 +461,11 @@ const getFunctionParameterNames = ( return []; } - return (functionNode.params || functionNode.value?.params || []).map((param) => { + return (/** @type {import('@typescript-eslint/types').TSESTree.FunctionDeclaration} */ ( + functionNode + ).params || /** @type {import('@typescript-eslint/types').TSESTree.MethodDefinition} */ ( + functionNode + ).value?.params || []).map((param) => { return getParamName(param); }); }; @@ -1570,7 +1604,7 @@ const dropPathSegmentQuotes = (str) => { /** * @param {string} name - * @returns {(otherPathName: string) => void} + * @returns {(otherPathName: string) => boolean} */ const comparePaths = (name) => { return (otherPathName) => { diff --git a/src/rules/checkParamNames.js b/src/rules/checkParamNames.js index 2a871490f..37c075114 100644 --- a/src/rules/checkParamNames.js +++ b/src/rules/checkParamNames.js @@ -103,7 +103,11 @@ const validateParameterNames = ( rests, annotationParamName, }, - ] = functionParameterName; + ] = + /** + * @type {[string | undefined, import('../jsdocUtils.js').FlattendRootInfo & { + * annotationParamName?: string | undefined; + }]} */ (functionParameterName); if (annotationParamName !== undefined) { const name = tag.name.trim(); if (name !== annotationParamName) { @@ -127,6 +131,8 @@ const validateParameterNames = ( }); const missingProperties = []; + + /** @type {string[]} */ const notCheckingNames = []; for (const [ @@ -173,6 +179,7 @@ const validateParameterNames = ( } if (!hasPropertyRest || checkRestProperty) { + /** @type {[string, import('comment-parser').Spec][]} */ const extraProperties = []; for (const [ idx, @@ -228,7 +235,10 @@ const validateParameterNames = ( return name.trim(); }); const expectedNames = functionParameterNames.map((item, idx) => { - if (item?.[1]?.names) { + if (/** + * @type {[string|undefined, (import('../jsdocUtils.js').FlattendRootInfo & { + * annotationParamName?: string, + })]} */ (item)?.[1]?.names) { return actualNames[idx]; } @@ -324,14 +334,14 @@ export default iterateJsdoc(({ const checkTypesRegex = utils.getRegexFromString(checkTypesPattern); const jsdocParameterNamesDeep = utils.getJsdocTagsDeep('param'); - if (!jsdocParameterNamesDeep.length) { + if (!jsdocParameterNamesDeep || !jsdocParameterNamesDeep.length) { return; } const functionParameterNames = utils.getFunctionParameterNames(useDefaultObjectProperties); - const targetTagName = utils.getPreferredTagName({ + const targetTagName = /** @type {string} */ (utils.getPreferredTagName({ tagName: 'param', - }); + })); const isError = validateParameterNames( targetTagName, allowExtraTrailingParamDocs, diff --git a/src/rules/requireParam.js b/src/rules/requireParam.js index 033464cfa..e16fdae8d 100644 --- a/src/rules/requireParam.js +++ b/src/rules/requireParam.js @@ -1,12 +1,16 @@ import iterateJsdoc from '../iterateJsdoc'; /** - * @template T + * @typedef {[string, boolean, () => RootNamerReturn]} RootNamerReturn + */ + +/** * @param {string[]} desiredRoots * @param {number} currentIndex - * @returns {[string, boolean, () => T]} + * @returns {RootNamerReturn} */ const rootNamer = (desiredRoots, currentIndex) => { + /** @type {string} */ let name; let idx = currentIndex; const incremented = desiredRoots.length <= 1; @@ -15,7 +19,7 @@ const rootNamer = (desiredRoots, currentIndex) => { const suffix = idx++; name = `${base}${suffix}`; } else { - name = desiredRoots.shift(); + name = /** @type {string} */ (desiredRoots.shift()); } return [ @@ -70,7 +74,14 @@ export default iterateJsdoc(({ return; } - const jsdocParameterNames = utils.getJsdocTagsDeep(preferredTagName); + const jsdocParameterNames = + /** + * @type {{ + * idx: import('../iterateJsdoc.js').Integer; + * name: string; + * type: string; + * }[]} + */ (utils.getJsdocTagsDeep(preferredTagName)); const shallowJsdocParameterNames = jsdocParameterNames.filter((tag) => { return !tag.name.includes('.'); @@ -83,18 +94,37 @@ export default iterateJsdoc(({ const checkTypesRegex = utils.getRegexFromString(checkTypesPattern); + /** + * @type {{ + * functionParameterIdx: import('../iterateJsdoc.js').Integer, + * functionParameterName: string, + * inc: boolean|undefined, + * remove?: true, + * type?: string|undefined + * }[]} + */ const missingTags = []; const flattenedRoots = utils.flattenRoots(functionParameterNames).names; + /** + * @type {{ + * [key: string]: import('../iterateJsdoc.js').Integer + * }} + */ const paramIndex = {}; + + /** + * @param {string} cur + * @returns {boolean} + */ const hasParamIndex = (cur) => { return utils.dropPathSegmentQuotes(String(cur)) in paramIndex; }; /** * - * @param {} cur - * @returns {} + * @param {string|number|undefined} cur + * @returns {import('../iterateJsdoc.js').Integer} */ const getParamIndex = (cur) => { return paramIndex[utils.dropPathSegmentQuotes(String(cur))]; @@ -102,8 +132,8 @@ export default iterateJsdoc(({ /** * - * @param {} cur - * @param {} idx + * @param {string} cur + * @param {import('../iterateJsdoc.js').Integer} idx * @returns {void} */ const setParamIndex = (cur, idx) => { @@ -119,8 +149,10 @@ export default iterateJsdoc(({ /** * - * @param {} jsdocTags - * @param {} indexAtFunctionParams + * @param {(import('@es-joy/jsdoccomment').JsdocTagWithInline & { + * newAdd?: boolean + * })[]} jsdocTags + * @param {import('../iterateJsdoc.js').Integer} indexAtFunctionParams * @returns {import('../iterateJsdoc.js').Integer} */ const findExpectedIndex = (jsdocTags, indexAtFunctionParams) => { @@ -131,7 +163,13 @@ export default iterateJsdoc(({ }) => { return !newAdd && remainingRoots.some((remainingRoot) => { if (Array.isArray(remainingRoot)) { - return remainingRoot[1].names.includes(name); + return ( + /** + * @type {import('../jsdocUtils.js').FlattendRootInfo & { + * annotationParamName?: string|undefined; + * }} + */ (remainingRoot[1]).names.includes(name) + ); } if (typeof remainingRoot === 'object') { @@ -185,6 +223,7 @@ export default iterateJsdoc(({ const matchedJsdoc = shallowJsdocParameterNames[functionParameterIdx] || jsdocParameterNames[functionParameterIdx]; + /** @type {string} */ let rootName; if (functionParameterName[0]) { rootName = functionParameterName[0]; @@ -208,7 +247,11 @@ export default iterateJsdoc(({ hasPropertyRest, rests, names, - } = functionParameterName[1]; + } = /** + * @type {import('../jsdocUtils.js').FlattendRootInfo & { + * annotationParamName?: string | undefined; + * }} + */ (functionParameterName[1]); const notCheckingNames = []; if (!enableRestElementFixer && hasRestElement) { continue; @@ -303,6 +346,7 @@ export default iterateJsdoc(({ continue; } + /** @type {string} */ let funcParamName; let type; if (typeof functionParameterName === 'object') { @@ -310,10 +354,10 @@ export default iterateJsdoc(({ continue; } - funcParamName = functionParameterName.name; + funcParamName = /** @type {string} */ (functionParameterName.name); type = '{...any}'; } else { - funcParamName = functionParameterName; + funcParamName = /** @type {string} */ (functionParameterName); } if (jsdocParameterNames && !jsdocParameterNames.find(({ @@ -335,9 +379,9 @@ export default iterateJsdoc(({ * @param {{ * functionParameterIdx: import('../iterateJsdoc.js').Integer, * functionParameterName: string, - * remove: true, - * inc: boolean, - * type: string + * remove?: true, + * inc?: boolean, + * type?: string * }} cfg */ const fix = ({ @@ -353,15 +397,16 @@ export default iterateJsdoc(({ /** * - * @param {} tagIndex - * @param {} sourceIndex - * @param {} spliceCount - * @returns {} + * @param {import('../iterateJsdoc.js').Integer} tagIndex + * @param {import('../iterateJsdoc.js').Integer} sourceIndex + * @param {import('../iterateJsdoc.js').Integer} spliceCount + * @returns {void} */ const createTokens = (tagIndex, sourceIndex, spliceCount) => { // console.log(sourceIndex, tagIndex, jsdoc.tags, jsdoc.source); const tokens = { number: sourceIndex + 1, + source: '', tokens: { delimiter: '*', description: '', @@ -378,9 +423,18 @@ export default iterateJsdoc(({ type: type ?? '', }, }; - jsdoc.tags.splice(tagIndex, spliceCount, { + + /** + * @type {(import('@es-joy/jsdoccomment').JsdocTagWithInline & { + * newAdd?: true + * })[]} + */ (jsdoc.tags).splice(tagIndex, spliceCount, { + description: '', + inlineTags: [], name: functionParameterName, newAdd: true, + optional: false, + problems: [], source: [ tokens, ], From 30f62edfcac11d25e9709ba66545bdada6c6e8fb Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 22 May 2023 06:14:23 -0700 Subject: [PATCH 092/273] refactor: for TS `checkJs` --- package.json | 10 +- pnpm-lock.yaml | 373 ++++++++++++++++---------------- src/rules/noMissingSyntax.js | 20 +- src/rules/noRestrictedSyntax.js | 12 +- 4 files changed, 205 insertions(+), 210 deletions(-) diff --git a/package.json b/package.json index cea6729a8..dba63a054 100644 --- a/package.json +++ b/package.json @@ -32,11 +32,11 @@ "@types/chai": "^4.3.5", "@types/debug": "^4.1.7", "@types/eslint": "^8.37.0", - "@types/esquery": "^1.0.2", + "@types/esquery": "^1.5.0", "@types/estree": "^1.0.1", "@types/lodash.defaultsdeep": "^4.6.7", "@types/mocha": "^10.0.1", - "@types/node": "^20.1.4", + "@types/node": "^20.2.3", "@types/semver": "^7.5.0", "@types/spdx-expression-parse": "^3.0.2", "@typescript-eslint/parser": "^5.59.6", @@ -46,10 +46,10 @@ "chai": "^4.3.7", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "8.40.0", + "eslint": "8.41.0", "eslint-config-canonical": "~41.0.4", "gitdown": "^3.1.5", - "glob": "^10.2.4", + "glob": "^10.2.6", "husky": "^8.0.3", "jsdoc-type-pratt-parser": "^4.0.0", "lint-staged": "^13.2.2", @@ -57,7 +57,7 @@ "mocha": "^10.2.0", "nyc": "^15.1.0", "open-editor": "^3.0.0", - "rimraf": "^5.0.0", + "rimraf": "^5.0.1", "semantic-release": "^21.0.2", "typescript": "^5.0.4" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9bd73c95b..9c4313239 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,7 +35,7 @@ devDependencies: version: 7.21.8 '@babel/eslint-parser': specifier: ^7.21.8 - version: 7.21.8(@babel/core@7.21.8)(eslint@8.40.0) + version: 7.21.8(@babel/core@7.21.8)(eslint@8.41.0) '@babel/node': specifier: ^7.20.7 version: 7.20.7(@babel/core@7.21.8) @@ -76,8 +76,8 @@ devDependencies: specifier: ^8.37.0 version: 8.37.0 '@types/esquery': - specifier: ^1.0.2 - version: 1.0.2 + specifier: ^1.5.0 + version: 1.5.0 '@types/estree': specifier: ^1.0.1 version: 1.0.1 @@ -88,8 +88,8 @@ devDependencies: specifier: ^10.0.1 version: 10.0.1 '@types/node': - specifier: ^20.1.4 - version: 20.1.4 + specifier: ^20.2.3 + version: 20.2.3 '@types/semver': specifier: ^7.5.0 version: 7.5.0 @@ -98,7 +98,7 @@ devDependencies: version: 3.0.2 '@typescript-eslint/parser': specifier: ^5.59.6 - version: 5.59.6(eslint@8.40.0)(typescript@5.0.4) + version: 5.59.6(eslint@8.41.0)(typescript@5.0.4) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -118,17 +118,17 @@ devDependencies: specifier: ^5.0.1 version: 5.0.1 eslint: - specifier: 8.40.0 - version: 8.40.0 + specifier: 8.41.0 + version: 8.41.0 eslint-config-canonical: specifier: ~41.0.4 - version: 41.0.4(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.1.4)(eslint@8.40.0)(graphql@16.6.0)(typescript@5.0.4) + version: 41.0.4(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.2.3)(eslint@8.41.0)(graphql@16.6.0)(typescript@5.0.4) gitdown: specifier: ^3.1.5 version: 3.1.5 glob: - specifier: ^10.2.4 - version: 10.2.4 + specifier: ^10.2.6 + version: 10.2.6 husky: specifier: ^8.0.3 version: 8.0.3 @@ -151,8 +151,8 @@ devDependencies: specifier: ^3.0.0 version: 3.0.0 rimraf: - specifier: ^5.0.0 - version: 5.0.0 + specifier: ^5.0.1 + version: 5.0.1 semantic-release: specifier: ^21.0.2 version: 21.0.2(typescript@5.0.4) @@ -234,7 +234,7 @@ packages: - supports-color dev: true - /@babel/eslint-parser@7.21.8(@babel/core@7.21.8)(eslint@8.40.0): + /@babel/eslint-parser@7.21.8(@babel/core@7.21.8)(eslint@8.41.0): resolution: {integrity: sha512-HLhI+2q+BP3sf78mFUZNCGc10KEmoUqtUT1OCdMZsN+qr4qFeLUod62/zAnF3jNQstwyasDkZnVXwfK2Bml7MQ==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: @@ -243,20 +243,20 @@ packages: dependencies: '@babel/core': 7.21.8 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.40.0 + eslint: 8.41.0 eslint-visitor-keys: 2.1.0 semver: 6.3.0 dev: true - /@babel/eslint-plugin@7.19.1(@babel/eslint-parser@7.21.8)(eslint@8.40.0): + /@babel/eslint-plugin@7.19.1(@babel/eslint-parser@7.21.8)(eslint@8.41.0): resolution: {integrity: sha512-ElGPkQPapKMa3zVqXHkZYzuL7I5LbRw9UWBUArgWsdWDDb9XcACqOpBib5tRPA9XvbVZYrFUkoQPbiJ4BFvu4w==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': '>=7.11.0' eslint: '>=7.5.0' dependencies: - '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.40.0) - eslint: 8.40.0 + '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.41.0) + eslint: 8.41.0 eslint-rule-composer: 0.3.0 dev: true @@ -1470,10 +1470,10 @@ packages: engines: {node: '>=12.0.0'} dependencies: '@babel/core': 7.21.8 - '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.40.0) + '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.41.0) '@es-joy/jsdoccomment': 0.38.0 - '@typescript-eslint/parser': 5.59.6(eslint@8.40.0)(typescript@5.0.4) - eslint: 8.40.0 + '@typescript-eslint/parser': 5.59.6(eslint@8.41.0)(typescript@5.0.4) + eslint: 8.41.0 esquery: 1.5.0 typescript: 5.0.4 transitivePeerDependencies: @@ -1498,13 +1498,13 @@ packages: jsdoc-type-pratt-parser: 4.0.0 dev: false - /@eslint-community/eslint-utils@4.4.0(eslint@8.40.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.41.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.40.0 + eslint: 8.41.0 eslint-visitor-keys: 3.4.1 dev: true @@ -1530,8 +1530,8 @@ packages: - supports-color dev: true - /@eslint/js@8.40.0: - resolution: {integrity: sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==} + /@eslint/js@8.41.0: + resolution: {integrity: sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -1539,7 +1539,7 @@ packages: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true - /@graphql-eslint/eslint-plugin@3.18.0(@babel/core@7.21.8)(@types/node@20.1.4)(graphql@16.6.0): + /@graphql-eslint/eslint-plugin@3.18.0(@babel/core@7.21.8)(@types/node@20.2.3)(graphql@16.6.0): resolution: {integrity: sha512-riEEfRycc0+pWxcEWqHi8woRxzg1xZqAfh9DRACJUR7bTN8dmc1N04i7+pvW4sevClUFYC2wuL1Vtr+DwzXLUg==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -1552,7 +1552,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.2.12 graphql: 16.6.0 - graphql-config: 4.5.0(@types/node@20.1.4)(graphql@16.6.0) + graphql-config: 4.5.0(@types/node@20.2.3)(graphql@16.6.0) graphql-depth-limit: 1.1.0(graphql@16.6.0) lodash.lowercase: 4.3.0 tslib: 2.5.0 @@ -1627,7 +1627,7 @@ packages: - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.10(@types/node@20.1.4)(graphql@16.6.0): + /@graphql-tools/executor-http@0.1.10(@types/node@20.2.3)(graphql@16.6.0): resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1638,7 +1638,7 @@ packages: dset: 3.1.2 extract-files: 11.0.0 graphql: 16.6.0 - meros: 1.2.1(@types/node@20.1.4) + meros: 1.2.1(@types/node@20.2.3) tslib: 2.5.0 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -1761,7 +1761,7 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.1.4)(graphql@16.6.0): + /@graphql-tools/url-loader@7.17.18(@types/node@20.2.3)(graphql@16.6.0): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1769,7 +1769,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 9.0.35(graphql@16.6.0) '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.6.0) - '@graphql-tools/executor-http': 0.1.10(@types/node@20.1.4)(graphql@16.6.0) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.2.3)(graphql@16.6.0) '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.6.0) '@graphql-tools/utils': 9.2.1(graphql@16.6.0) '@graphql-tools/wrap': 9.4.2(graphql@16.6.0) @@ -2277,8 +2277,8 @@ packages: '@types/json-schema': 7.0.11 dev: true - /@types/esquery@1.0.2: - resolution: {integrity: sha512-qeAoHiWfqF4ST6An3DM2r1743bWL7B5hW4oNR9tWkdOjFUR1aK2j0jnYvW6h30VGDeXQ+1bWOYTej4JVo/5+PA==} + /@types/esquery@1.5.0: + resolution: {integrity: sha512-MNQ5gCt3j1idWHlj/dEF+WPS1kl6Woe0Agzwy96JvrwDQdDadqeIBhY7mUca51CCUzxf7BsnXzcyKi6ENpEtmQ==} dependencies: '@types/estree': 1.0.1 dev: true @@ -2317,8 +2317,8 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node@20.1.4: - resolution: {integrity: sha512-At4pvmIOki8yuwLtd7BNHl3CiWNbtclUbNtScGx4OHfBd4/oWoJC8KRCIxXwkdndzhxOsPXihrsOoydxBjlE9Q==} + /@types/node@20.2.3: + resolution: {integrity: sha512-pg9d0yC4rVNWQzX8U7xb4olIOFuuVL9za3bzMT2pu2SU0SNEi66i2qrvhE2qt0HvkhuCaWJu7pLNOt/Pj8BIrw==} dev: true /@types/normalize-package-data@2.4.1: @@ -2340,10 +2340,10 @@ packages: /@types/ws@8.5.4: resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: - '@types/node': 20.1.4 + '@types/node': 20.2.3 dev: true - /@typescript-eslint/eslint-plugin@5.59.5(@typescript-eslint/parser@5.59.6)(eslint@8.40.0)(typescript@5.0.4): + /@typescript-eslint/eslint-plugin@5.59.5(@typescript-eslint/parser@5.59.6)(eslint@8.41.0)(typescript@5.0.4): resolution: {integrity: sha512-feA9xbVRWJZor+AnLNAr7A8JRWeZqHUf4T9tlP+TN04b05pFVhO5eN7/O93Y/1OUlLMHKbnJisgDURs/qvtqdg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2355,12 +2355,12 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 5.59.6(eslint@8.40.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.6(eslint@8.41.0)(typescript@5.0.4) '@typescript-eslint/scope-manager': 5.59.5 - '@typescript-eslint/type-utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4) - '@typescript-eslint/utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4) + '@typescript-eslint/type-utils': 5.59.5(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.5(eslint@8.41.0)(typescript@5.0.4) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.40.0 + eslint: 8.41.0 grapheme-splitter: 1.0.4 ignore: 5.2.4 natural-compare-lite: 1.4.0 @@ -2371,20 +2371,20 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils@5.59.5(eslint@8.40.0)(typescript@5.0.4): + /@typescript-eslint/experimental-utils@5.59.5(eslint@8.41.0)(typescript@5.0.4): resolution: {integrity: sha512-ArcSSBifznsKNA/p4h2w3Olt/T8AZf3bNglxD8OnuTsSDJbRpjPPmI8qpr6ijyvk1J/T3GMJHwRIluS/Kuz9kA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4) - eslint: 8.40.0 + '@typescript-eslint/utils': 5.59.5(eslint@8.41.0)(typescript@5.0.4) + eslint: 8.41.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/parser@5.59.6(eslint@8.40.0)(typescript@5.0.4): + /@typescript-eslint/parser@5.59.6(eslint@8.41.0)(typescript@5.0.4): resolution: {integrity: sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2398,7 +2398,7 @@ packages: '@typescript-eslint/types': 5.59.6 '@typescript-eslint/typescript-estree': 5.59.6(typescript@5.0.4) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.40.0 + eslint: 8.41.0 typescript: 5.0.4 transitivePeerDependencies: - supports-color @@ -2420,7 +2420,7 @@ packages: '@typescript-eslint/visitor-keys': 5.59.6 dev: true - /@typescript-eslint/type-utils@5.59.5(eslint@8.40.0)(typescript@5.0.4): + /@typescript-eslint/type-utils@5.59.5(eslint@8.41.0)(typescript@5.0.4): resolution: {integrity: sha512-4eyhS7oGym67/pSxA2mmNq7X164oqDYNnZCUayBwJZIRVvKpBCMBzFnFxjeoDeShjtO6RQBHBuwybuX3POnDqg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2431,9 +2431,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.59.5(typescript@5.0.4) - '@typescript-eslint/utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.5(eslint@8.41.0)(typescript@5.0.4) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.40.0 + eslint: 8.41.0 tsutils: 3.21.0(typescript@5.0.4) typescript: 5.0.4 transitivePeerDependencies: @@ -2492,19 +2492,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.59.5(eslint@8.40.0)(typescript@5.0.4): + /@typescript-eslint/utils@5.59.5(eslint@8.41.0)(typescript@5.0.4): resolution: {integrity: sha512-sCEHOiw+RbyTii9c3/qN74hYDPNORb8yWCoPLmB7BIflhplJ65u2PBpdRla12e3SSTJ2erRkPjz7ngLHhUegxA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.40.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0) '@types/json-schema': 7.0.11 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.59.5 '@typescript-eslint/types': 5.59.5 '@typescript-eslint/typescript-estree': 5.59.5(typescript@5.0.4) - eslint: 8.40.0 + eslint: 8.41.0 eslint-scope: 5.1.1 semver: 7.5.1 transitivePeerDependencies: @@ -4137,50 +4137,50 @@ packages: lodash.zip: 4.2.0 dev: true - /eslint-config-canonical@41.0.4(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.1.4)(eslint@8.40.0)(graphql@16.6.0)(typescript@5.0.4): + /eslint-config-canonical@41.0.4(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.2.3)(eslint@8.41.0)(graphql@16.6.0)(typescript@5.0.4): resolution: {integrity: sha512-2wRKw0VsBzP+GyWMMy0cuNkEs3NI5mWNk83rHAXZtkBA72AUanQw+ufoGhN0Uso4OiH0tb+Mj0kQkPDnr0DTbg==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 dependencies: '@babel/core': 7.21.8 - '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.40.0) - '@babel/eslint-plugin': 7.19.1(@babel/eslint-parser@7.21.8)(eslint@8.40.0) + '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.41.0) + '@babel/eslint-plugin': 7.19.1(@babel/eslint-parser@7.21.8)(eslint@8.41.0) '@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.21.8) - '@graphql-eslint/eslint-plugin': 3.18.0(@babel/core@7.21.8)(@types/node@20.1.4)(graphql@16.6.0) + '@graphql-eslint/eslint-plugin': 3.18.0(@babel/core@7.21.8)(@types/node@20.2.3)(graphql@16.6.0) '@next/eslint-plugin-next': 13.4.2 '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/eslint-plugin': 5.59.5(@typescript-eslint/parser@5.59.6)(eslint@8.40.0)(typescript@5.0.4) - '@typescript-eslint/parser': 5.59.6(eslint@8.40.0)(typescript@5.0.4) - eslint: 8.40.0 - eslint-config-prettier: 8.8.0(eslint@8.40.0) - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.40.0) - eslint-plugin-ava: 14.0.0(eslint@8.40.0) - eslint-plugin-canonical: 4.2.2(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.40.0)(typescript@5.0.4) - eslint-plugin-cypress: 2.13.3(eslint@8.40.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.40.0) - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.40.0) - eslint-plugin-fp: 2.3.0(eslint@8.40.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) - eslint-plugin-jest: 27.2.1(@typescript-eslint/eslint-plugin@5.59.5)(eslint@8.40.0)(typescript@5.0.4) - eslint-plugin-jsdoc: 43.2.0(eslint@8.40.0) - eslint-plugin-jsonc: 2.8.0(eslint@8.40.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@8.40.0) - eslint-plugin-lodash: 7.4.0(eslint@8.40.0) - eslint-plugin-mocha: 10.1.0(eslint@8.40.0) + '@typescript-eslint/eslint-plugin': 5.59.5(@typescript-eslint/parser@5.59.6)(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.6(eslint@8.41.0)(typescript@5.0.4) + eslint: 8.41.0 + eslint-config-prettier: 8.8.0(eslint@8.41.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.41.0) + eslint-plugin-ava: 14.0.0(eslint@8.41.0) + eslint-plugin-canonical: 4.2.2(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.41.0)(typescript@5.0.4) + eslint-plugin-cypress: 2.13.3(eslint@8.41.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.41.0) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.41.0) + eslint-plugin-fp: 2.3.0(eslint@8.41.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.41.0) + eslint-plugin-jest: 27.2.1(@typescript-eslint/eslint-plugin@5.59.5)(eslint@8.41.0)(typescript@5.0.4) + eslint-plugin-jsdoc: 43.2.0(eslint@8.41.0) + eslint-plugin-jsonc: 2.8.0(eslint@8.41.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.41.0) + eslint-plugin-lodash: 7.4.0(eslint@8.41.0) + eslint-plugin-mocha: 10.1.0(eslint@8.41.0) eslint-plugin-modules-newline: 0.0.6 - eslint-plugin-node: 11.1.0(eslint@8.40.0) - eslint-plugin-prettier: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.40.0)(prettier@2.8.8) - eslint-plugin-promise: 6.1.1(eslint@8.40.0) - eslint-plugin-react: 7.32.2(eslint@8.40.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.40.0) - eslint-plugin-regexp: 1.15.0(eslint@8.40.0) - eslint-plugin-simple-import-sort: 10.0.0(eslint@8.40.0) - eslint-plugin-typescript-sort-keys: 2.3.0(@typescript-eslint/parser@5.59.6)(eslint@8.40.0)(typescript@5.0.4) - eslint-plugin-unicorn: 46.0.1(eslint@8.40.0) - eslint-plugin-vitest: 0.1.5(eslint@8.40.0)(typescript@5.0.4) - eslint-plugin-yml: 1.7.0(eslint@8.40.0) - eslint-plugin-zod: 1.4.0(eslint@8.40.0) + eslint-plugin-node: 11.1.0(eslint@8.41.0) + eslint-plugin-prettier: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.41.0)(prettier@2.8.8) + eslint-plugin-promise: 6.1.1(eslint@8.41.0) + eslint-plugin-react: 7.32.2(eslint@8.41.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.41.0) + eslint-plugin-regexp: 1.15.0(eslint@8.41.0) + eslint-plugin-simple-import-sort: 10.0.0(eslint@8.41.0) + eslint-plugin-typescript-sort-keys: 2.3.0(@typescript-eslint/parser@5.59.6)(eslint@8.41.0)(typescript@5.0.4) + eslint-plugin-unicorn: 46.0.1(eslint@8.41.0) + eslint-plugin-vitest: 0.1.5(eslint@8.41.0)(typescript@5.0.4) + eslint-plugin-yml: 1.7.0(eslint@8.41.0) + eslint-plugin-zod: 1.4.0(eslint@8.41.0) prettier: 2.8.8 ramda: 0.29.0 yaml-eslint-parser: 1.2.2 @@ -4200,13 +4200,13 @@ packages: - utf-8-validate dev: true - /eslint-config-prettier@8.8.0(eslint@8.40.0): + /eslint-config-prettier@8.8.0(eslint@8.41.0): resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.40.0 + eslint: 8.41.0 dev: true /eslint-import-resolver-node@0.3.7: @@ -4219,7 +4219,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.40.0): + /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.41.0): resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4228,9 +4228,9 @@ packages: dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.14.0 - eslint: 8.40.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) + eslint: 8.41.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.41.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.41.0) get-tsconfig: 4.5.0 globby: 13.1.4 is-core-module: 2.12.0 @@ -4243,7 +4243,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.41.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4264,24 +4264,24 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.59.6(eslint@8.40.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.6(eslint@8.41.0)(typescript@5.0.4) debug: 3.2.7 - eslint: 8.40.0 + eslint: 8.41.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.40.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.41.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-ava@14.0.0(eslint@8.40.0): + /eslint-plugin-ava@14.0.0(eslint@8.41.0): resolution: {integrity: sha512-XmKT6hppaipwwnLVwwvQliSU6AF1QMHiNoLD5JQfzhUhf0jY7CO0O624fQrE+Y/fTb9vbW8r77nKf7M/oHulxw==} engines: {node: '>=14.17 <15 || >=16.4'} peerDependencies: eslint: '>=8.26.0' dependencies: enhance-visitors: 1.0.0 - eslint: 8.40.0 - eslint-utils: 3.0.0(eslint@8.40.0) + eslint: 8.41.0 + eslint-utils: 3.0.0(eslint@8.41.0) espree: 9.5.2 espurify: 2.1.1 import-modules: 2.1.0 @@ -4290,12 +4290,12 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-canonical@4.2.2(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.40.0)(typescript@5.0.4): + /eslint-plugin-canonical@4.2.2(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.41.0)(typescript@5.0.4): resolution: {integrity: sha512-yuGC3erbZ7+ncNn9oyfZQxNdepijMKhsq2DrSEj4jsgc4UMSQWlWDlt8lI767Lg8VfGCTG6Cgj2jJZFYjkFmDQ==} engines: {node: '>=16.0.0'} dependencies: - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.40.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.41.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.41.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -4315,38 +4315,38 @@ packages: - typescript dev: true - /eslint-plugin-cypress@2.13.3(eslint@8.40.0): + /eslint-plugin-cypress@2.13.3(eslint@8.41.0): resolution: {integrity: sha512-nAPjZE5WopCsgJwl3vHm5iafpV+ZRO76Z9hMyRygWhmg5ODXDPd+9MaPl7kdJ2azj+sO87H3P1PRnggIrz848g==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 8.40.0 + eslint: 8.41.0 globals: 11.12.0 dev: true - /eslint-plugin-es@3.0.1(eslint@8.40.0): + /eslint-plugin-es@3.0.1(eslint@8.41.0): resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.40.0 + eslint: 8.41.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-eslint-comments@3.2.0(eslint@8.40.0): + /eslint-plugin-eslint-comments@3.2.0(eslint@8.41.0): resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' dependencies: escape-string-regexp: 1.0.5 - eslint: 8.40.0 + eslint: 8.41.0 ignore: 5.2.4 dev: true - /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.40.0): + /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.41.0): resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -4356,25 +4356,25 @@ packages: dependencies: '@babel/plugin-syntax-flow': 7.21.4(@babel/core@7.21.8) '@babel/plugin-transform-react-jsx': 7.21.5(@babel/core@7.21.8) - eslint: 8.40.0 + eslint: 8.41.0 lodash: 4.17.21 string-natural-compare: 3.0.1 dev: true - /eslint-plugin-fp@2.3.0(eslint@8.40.0): + /eslint-plugin-fp@2.3.0(eslint@8.41.0): resolution: {integrity: sha512-3n2oHibwoIxAht9/+ZaTldhI6brXORgl8oNXqZd+d9xuAQt2SBJ2/aml0oQRMWvXrgsz2WG6wfC++NjzSG3prA==} engines: {node: '>=4.0.0'} peerDependencies: eslint: '>=3' dependencies: create-eslint-index: 1.0.0 - eslint: 8.40.0 + eslint: 8.41.0 eslint-ast-utils: 1.1.0 lodash: 4.17.21 req-all: 0.1.0 dev: true - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0): + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.41.0): resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -4384,15 +4384,15 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.59.6(eslint@8.40.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.6(eslint@8.41.0)(typescript@5.0.4) array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.40.0 + eslint: 8.41.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.41.0) has: 1.0.3 is-core-module: 2.12.0 is-glob: 4.0.3 @@ -4407,7 +4407,7 @@ packages: - supports-color dev: true - /eslint-plugin-jest@27.2.1(@typescript-eslint/eslint-plugin@5.59.5)(eslint@8.40.0)(typescript@5.0.4): + /eslint-plugin-jest@27.2.1(@typescript-eslint/eslint-plugin@5.59.5)(eslint@8.41.0)(typescript@5.0.4): resolution: {integrity: sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -4420,15 +4420,15 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.59.5(@typescript-eslint/parser@5.59.6)(eslint@8.40.0)(typescript@5.0.4) - '@typescript-eslint/utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4) - eslint: 8.40.0 + '@typescript-eslint/eslint-plugin': 5.59.5(@typescript-eslint/parser@5.59.6)(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.5(eslint@8.41.0)(typescript@5.0.4) + eslint: 8.41.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsdoc@43.2.0(eslint@8.40.0): + /eslint-plugin-jsdoc@43.2.0(eslint@8.41.0): resolution: {integrity: sha512-Hst7XUfqh28UmPD52oTXmjaRN3d0KrmOZdgtp4h9/VHUJD3Evoo82ZGXi1TtRDWgWhvqDIRI63O49H0eH7NrZQ==} engines: {node: '>=16'} peerDependencies: @@ -4439,7 +4439,7 @@ packages: comment-parser: 1.3.1 debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 8.40.0 + eslint: 8.41.0 esquery: 1.5.0 semver: 7.5.1 spdx-expression-parse: 3.0.1 @@ -4447,19 +4447,19 @@ packages: - supports-color dev: true - /eslint-plugin-jsonc@2.8.0(eslint@8.40.0): + /eslint-plugin-jsonc@2.8.0(eslint@8.41.0): resolution: {integrity: sha512-K4VsnztnNwpm+V49CcCu5laq8VjclJpuhfI9LFkOrOyK+BKdQHMzkWo43B4X4rYaVrChm4U9kw/tTU5RHh5Wtg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.40.0) - eslint: 8.40.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0) + eslint: 8.41.0 jsonc-eslint-parser: 2.3.0 natural-compare: 1.4.0 dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.40.0): + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.41.0): resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} peerDependencies: @@ -4474,7 +4474,7 @@ packages: axobject-query: 3.1.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.40.0 + eslint: 8.41.0 has: 1.0.3 jsx-ast-utils: 3.3.3 language-tags: 1.0.5 @@ -4484,24 +4484,24 @@ packages: semver: 6.3.0 dev: true - /eslint-plugin-lodash@7.4.0(eslint@8.40.0): + /eslint-plugin-lodash@7.4.0(eslint@8.41.0): resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} engines: {node: '>=10'} peerDependencies: eslint: '>=2' dependencies: - eslint: 8.40.0 + eslint: 8.41.0 lodash: 4.17.21 dev: true - /eslint-plugin-mocha@10.1.0(eslint@8.40.0): + /eslint-plugin-mocha@10.1.0(eslint@8.41.0): resolution: {integrity: sha512-xLqqWUF17llsogVOC+8C6/jvQ+4IoOREbN7ZCHuOHuD6cT5cDD4h7f2LgsZuzMAiwswWE21tO7ExaknHVDrSkw==} engines: {node: '>=14.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.40.0 - eslint-utils: 3.0.0(eslint@8.40.0) + eslint: 8.41.0 + eslint-utils: 3.0.0(eslint@8.41.0) rambda: 7.5.0 dev: true @@ -4512,14 +4512,14 @@ packages: requireindex: 1.1.0 dev: true - /eslint-plugin-node@11.1.0(eslint@8.40.0): + /eslint-plugin-node@11.1.0(eslint@8.41.0): resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.40.0 - eslint-plugin-es: 3.0.1(eslint@8.40.0) + eslint: 8.41.0 + eslint-plugin-es: 3.0.1(eslint@8.41.0) eslint-utils: 2.1.0 ignore: 5.2.4 minimatch: 3.1.2 @@ -4527,7 +4527,7 @@ packages: semver: 6.3.0 dev: true - /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.40.0)(prettier@2.8.8): + /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.41.0)(prettier@2.8.8): resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -4538,31 +4538,31 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.40.0 - eslint-config-prettier: 8.8.0(eslint@8.40.0) + eslint: 8.41.0 + eslint-config-prettier: 8.8.0(eslint@8.41.0) prettier: 2.8.8 prettier-linter-helpers: 1.0.0 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.40.0): + /eslint-plugin-promise@6.1.1(eslint@8.41.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.40.0 + eslint: 8.41.0 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.40.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.41.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.40.0 + eslint: 8.41.0 dev: true - /eslint-plugin-react@7.32.2(eslint@8.40.0): + /eslint-plugin-react@7.32.2(eslint@8.41.0): resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} engines: {node: '>=4'} peerDependencies: @@ -4572,7 +4572,7 @@ packages: array.prototype.flatmap: 1.3.1 array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 - eslint: 8.40.0 + eslint: 8.41.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.3 minimatch: 3.1.2 @@ -4586,16 +4586,16 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-regexp@1.15.0(eslint@8.40.0): + /eslint-plugin-regexp@1.15.0(eslint@8.41.0): resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} engines: {node: ^12 || >=14} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.40.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0) '@eslint-community/regexpp': 4.5.1 comment-parser: 1.3.1 - eslint: 8.40.0 + eslint: 8.41.0 grapheme-splitter: 1.0.4 jsdoctypeparser: 9.0.0 refa: 0.11.0 @@ -4603,15 +4603,15 @@ packages: scslre: 0.2.0 dev: true - /eslint-plugin-simple-import-sort@10.0.0(eslint@8.40.0): + /eslint-plugin-simple-import-sort@10.0.0(eslint@8.41.0): resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 8.40.0 + eslint: 8.41.0 dev: true - /eslint-plugin-typescript-sort-keys@2.3.0(@typescript-eslint/parser@5.59.6)(eslint@8.40.0)(typescript@5.0.4): + /eslint-plugin-typescript-sort-keys@2.3.0(@typescript-eslint/parser@5.59.6)(eslint@8.41.0)(typescript@5.0.4): resolution: {integrity: sha512-3LAcYulo5gNYiPWee+TksITfvWeBuBjGgcSLTacPESFVKEoy8laOQuZvJlSCwTBHT2SCGIxr3bJ56zuux+3MCQ==} engines: {node: 12 || >= 13.9} peerDependencies: @@ -4619,9 +4619,9 @@ packages: eslint: ^5 || ^6 || ^7 || ^8 typescript: ^3 || ^4 || ^5 dependencies: - '@typescript-eslint/experimental-utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4) - '@typescript-eslint/parser': 5.59.6(eslint@8.40.0)(typescript@5.0.4) - eslint: 8.40.0 + '@typescript-eslint/experimental-utils': 5.59.5(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.6(eslint@8.41.0)(typescript@5.0.4) + eslint: 8.41.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 typescript: 5.0.4 @@ -4629,17 +4629,17 @@ packages: - supports-color dev: true - /eslint-plugin-unicorn@46.0.1(eslint@8.40.0): + /eslint-plugin-unicorn@46.0.1(eslint@8.41.0): resolution: {integrity: sha512-setGhMTiLAddg1asdwjZ3hekIN5zLznNa5zll7pBPwFOka6greCKDQydfqy4fqyUhndi74wpDzClSQMEcmOaew==} engines: {node: '>=14.18'} peerDependencies: eslint: '>=8.28.0' dependencies: '@babel/helper-validator-identifier': 7.19.1 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.40.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0) ci-info: 3.8.0 clean-regexp: 1.0.0 - eslint: 8.40.0 + eslint: 8.41.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -4654,27 +4654,27 @@ packages: strip-indent: 3.0.0 dev: true - /eslint-plugin-vitest@0.1.5(eslint@8.40.0)(typescript@5.0.4): + /eslint-plugin-vitest@0.1.5(eslint@8.41.0)(typescript@5.0.4): resolution: {integrity: sha512-SxbGjyC6peUaCt/P+YrHxdfVzJkLC1RCotaCMZ6vuvkRGOx3SE1jcZb7vTlU6s9PoF0DYlkWuBAAYZi1IAwg2A==} engines: {node: 14.x || >= 16} peerDependencies: eslint: '>=8.0.0' dependencies: - '@typescript-eslint/utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4) - eslint: 8.40.0 + '@typescript-eslint/utils': 5.59.5(eslint@8.41.0)(typescript@5.0.4) + eslint: 8.41.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-yml@1.7.0(eslint@8.40.0): + /eslint-plugin-yml@1.7.0(eslint@8.41.0): resolution: {integrity: sha512-qq61FQJk+qIgWl0R06bec7UQQEIBrUH22jS+MroTbFUKu+3/iVlGRpZd8mjpOAm/+H/WEDFwy4x/+kKgVGbsWw==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4(supports-color@8.1.1) - eslint: 8.40.0 + eslint: 8.41.0 lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.2 @@ -4682,13 +4682,13 @@ packages: - supports-color dev: true - /eslint-plugin-zod@1.4.0(eslint@8.40.0): + /eslint-plugin-zod@1.4.0(eslint@8.41.0): resolution: {integrity: sha512-i9WzQGw2X5fQcuQh33mA8DQjZJM/yuyZvs1Fc5EyTidX7Ed/g832+1FEQ4u5gtXy+jZ+DVsB5+oMHj4tIOfeZg==} engines: {node: '>=12'} peerDependencies: eslint: '>=8.1.0' dependencies: - eslint: 8.40.0 + eslint: 8.41.0 dev: true /eslint-rule-composer@0.3.0: @@ -4719,13 +4719,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils@3.0.0(eslint@8.40.0): + /eslint-utils@3.0.0(eslint@8.41.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.40.0 + eslint: 8.41.0 eslint-visitor-keys: 2.1.0 dev: true @@ -4744,15 +4744,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.40.0: - resolution: {integrity: sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==} + /eslint@8.41.0: + resolution: {integrity: sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.40.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0) '@eslint-community/regexpp': 4.5.1 '@eslint/eslintrc': 2.0.3 - '@eslint/js': 8.40.0 + '@eslint/js': 8.41.0 '@humanwhocodes/config-array': 0.11.8 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -4772,13 +4772,12 @@ packages: find-up: 5.0.0 glob-parent: 6.0.2 globals: 13.20.0 - grapheme-splitter: 1.0.4 + graphemer: 1.4.0 ignore: 5.2.4 import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-sdsl: 4.4.0 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 @@ -5387,14 +5386,14 @@ packages: is-glob: 4.0.3 dev: true - /glob@10.2.4: - resolution: {integrity: sha512-fDboBse/sl1oXSLhIp0FcCJgzW9KmhC/q8ULTKC82zc+DL3TL7FNb8qlt5qqXN53MsKEUSIcb+7DLmEygOE5Yw==} + /glob@10.2.6: + resolution: {integrity: sha512-U/rnDpXJGF414QQQZv5uVsabTVxMSwzS5CH0p3DRCIV6ownl4f7PzGnkGmvlum2wB+9RlJWJZ6ACU1INnBqiPA==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: foreground-child: 3.1.1 jackspeak: 2.2.0 - minimatch: 9.0.0 + minimatch: 9.0.1 minipass: 5.0.0 path-scurry: 1.9.0 dev: true @@ -5503,7 +5502,11 @@ packages: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: true - /graphql-config@4.5.0(@types/node@20.1.4)(graphql@16.6.0): + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true + + /graphql-config@4.5.0(@types/node@20.2.3)(graphql@16.6.0): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -5517,7 +5520,7 @@ packages: '@graphql-tools/json-file-loader': 7.4.18(graphql@16.6.0) '@graphql-tools/load': 7.8.14(graphql@16.6.0) '@graphql-tools/merge': 8.4.2(graphql@16.6.0) - '@graphql-tools/url-loader': 7.17.18(@types/node@20.1.4)(graphql@16.6.0) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.2.3)(graphql@16.6.0) '@graphql-tools/utils': 9.2.1(graphql@16.6.0) cosmiconfig: 8.0.0 graphql: 16.6.0 @@ -6401,10 +6404,6 @@ packages: hasBin: true dev: true - /js-sdsl@4.4.0: - resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==} - dev: true - /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: true @@ -6966,7 +6965,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.2.1(@types/node@20.1.4): + /meros@1.2.1(@types/node@20.2.3): resolution: {integrity: sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g==} engines: {node: '>=13'} peerDependencies: @@ -6975,7 +6974,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.1.4 + '@types/node': 20.2.3 dev: true /micro-spelling-correcter@1.1.1: @@ -7071,8 +7070,8 @@ packages: brace-expansion: 2.0.1 dev: true - /minimatch@9.0.0: - resolution: {integrity: sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==} + /minimatch@9.0.1: + resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 @@ -8531,12 +8530,12 @@ packages: glob: 7.2.3 dev: true - /rimraf@5.0.0: - resolution: {integrity: sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==} + /rimraf@5.0.1: + resolution: {integrity: sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==} engines: {node: '>=14'} hasBin: true dependencies: - glob: 10.2.4 + glob: 10.2.6 dev: true /roarr@7.15.0: diff --git a/src/rules/noMissingSyntax.js b/src/rules/noMissingSyntax.js index 6fcfd90b5..f6191e0ad 100644 --- a/src/rules/noMissingSyntax.js +++ b/src/rules/noMissingSyntax.js @@ -64,22 +64,22 @@ export default iterateJsdoc(({ const foundContext = contexts.find((cntxt) => { return typeof cntxt === 'string' ? esquery.matches( - node, + /** @type {import('../iterateJsdoc.js').Node} */ (node), esquery.parse(cntxt), - null, - // https://github.com/DefinitelyTyped/DefinitelyTyped/pull/65460 - // @ts-expect-error + undefined, { visitorKeys: sourceCode.visitorKeys, }, ) : (!cntxt.context || cntxt.context === 'any' || - // https://github.com/DefinitelyTyped/DefinitelyTyped/pull/65460 - // @ts-expect-error - esquery.matches(node, esquery.parse(cntxt.context), null, { - visitorKeys: sourceCode.visitorKeys, - })) && - comment === cntxt.comment; + esquery.matches( + /** @type {import('../iterateJsdoc.js').Node} */ (node), + esquery.parse(cntxt.context), + undefined, + { + visitorKeys: sourceCode.visitorKeys, + }, + )) && comment === cntxt.comment; }); const contextStr = typeof foundContext === 'object' ? diff --git a/src/rules/noRestrictedSyntax.js b/src/rules/noRestrictedSyntax.js index 722cab132..d1f1f423f 100644 --- a/src/rules/noRestrictedSyntax.js +++ b/src/rules/noRestrictedSyntax.js @@ -28,22 +28,18 @@ export default iterateJsdoc(({ (cntxt) => { return typeof cntxt === 'string' ? esquery.matches( - node, + /** @type {import('../iterateJsdoc.js').Node} */ (node), esquery.parse(cntxt), - null, - // https://github.com/DefinitelyTyped/DefinitelyTyped/pull/65460 - // @ts-expect-error + undefined, { visitorKeys: sourceCode.visitorKeys, }, ) : (!cntxt.context || cntxt.context === 'any' || esquery.matches( - node, + /** @type {import('../iterateJsdoc.js').Node} */ (node), esquery.parse(cntxt.context), - null, - // https://github.com/DefinitelyTyped/DefinitelyTyped/pull/65460 - // @ts-expect-error + undefined, { visitorKeys: sourceCode.visitorKeys, }, From d730290cec239b09863ab5ee819c7a83d60230a4 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 23 May 2023 03:39:16 -0700 Subject: [PATCH 093/273] test: example for inline link targeting --- docs/rules/require-param.md | 4 ++++ test/rules/assertions/requireParam.js | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/docs/rules/require-param.md b/docs/rules/require-param.md index 962bf605a..1fe956e84 100644 --- a/docs/rules/require-param.md +++ b/docs/rules/require-param.md @@ -1812,5 +1812,9 @@ function foo(this: T, bar: number): number { console.log(this.name); return bar; } + +/** {@link someOtherval} */ +function a (b) {} +// "jsdoc/require-param": ["error"|"warn", {"contexts":[{"comment":"*:not(JsdocBlock:has(JsdocInlineTag[tag=link]))","context":"FunctionDeclaration"}]}] ```` diff --git a/test/rules/assertions/requireParam.js b/test/rules/assertions/requireParam.js index 40526bee8..423664658 100644 --- a/test/rules/assertions/requireParam.js +++ b/test/rules/assertions/requireParam.js @@ -3525,5 +3525,21 @@ export default { `, parser: require.resolve('@typescript-eslint/parser'), }, + { + code: ` + /** {@link someOtherval} */ + function a (b) {} + `, + options: [ + { + contexts: [ + { + comment: '*:not(JsdocBlock:has(JsdocInlineTag[tag=link]))', + context: 'FunctionDeclaration', + }, + ], + }, + ], + }, ], }; From 6824ab6cb3e81262798abd04bd147883554cd141 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 23 May 2023 03:41:31 -0700 Subject: [PATCH 094/273] fix(`check-line-alignment`): only treat hyphen as separator if followed by whitespace; fixes #1091 --- docs/rules/check-line-alignment.md | 7 +++++++ src/alignTransform.js | 2 +- src/rules/checkLineAlignment.js | 4 ++-- test/rules/assertions/checkLineAlignment.js | 12 ++++++++++++ 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/docs/rules/check-line-alignment.md b/docs/rules/check-line-alignment.md index 322a1f30b..65af867e2 100644 --- a/docs/rules/check-line-alignment.md +++ b/docs/rules/check-line-alignment.md @@ -991,5 +991,12 @@ function quux () { */ function quux () {} // "jsdoc/check-line-alignment": ["error"|"warn", "never",{"wrapIndent":" "}] + +/** + * Returns cached value of negative scale of the world transform. + * + * @returns {number} -1 if world transform has negative scale, 1 otherwise. + */ +// "jsdoc/check-line-alignment": ["error"|"warn", "never"] ```` diff --git a/src/alignTransform.js b/src/alignTransform.js index 21968a774..9f62260a4 100644 --- a/src/alignTransform.js +++ b/src/alignTransform.js @@ -306,7 +306,7 @@ const alignTransform = ({ } const postHyphenSpacing = customSpacings?.postHyphen ?? 1; - const hyphenSpacing = /^\s*-\s*/u; + const hyphenSpacing = /^\s*-\s+/u; tokens.description = tokens.description.replace( hyphenSpacing, '-' + ''.padStart(postHyphenSpacing, ' '), ); diff --git a/src/rules/checkLineAlignment.js b/src/rules/checkLineAlignment.js index 441f85176..e22f54c94 100644 --- a/src/rules/checkLineAlignment.js +++ b/src/rules/checkLineAlignment.js @@ -94,7 +94,7 @@ const checkNotAlignedPerTag = (utils, tag, customSpacings) => { const postHyphenSpacing = customSpacings?.postHyphen ?? 1; const exactHyphenSpacing = new RegExp(`^\\s*-\\s{${postHyphenSpacing},${postHyphenSpacing}}(?!\\s)`, 'u'); - const hasNoHyphen = !(/^\s*-(?!$)/u).test(tokens.description); + const hasNoHyphen = !(/^\s*-(?!$)(?=\s)/u).test(tokens.description); const hasExactHyphenSpacing = exactHyphenSpacing.test( tokens.description, ); @@ -144,7 +144,7 @@ const checkNotAlignedPerTag = (utils, tag, customSpacings) => { } if (!hasExactHyphenSpacing) { - const hyphenSpacing = /^\s*-\s*/u; + const hyphenSpacing = /^\s*-\s+/u; tokens.description = tokens.description.replace( hyphenSpacing, '-' + ''.padStart(postHyphenSpacing, ' '), ); diff --git a/test/rules/assertions/checkLineAlignment.js b/test/rules/assertions/checkLineAlignment.js index 91a140f71..40adbd9e7 100644 --- a/test/rules/assertions/checkLineAlignment.js +++ b/test/rules/assertions/checkLineAlignment.js @@ -2170,5 +2170,17 @@ export default { }, ], }, + { + code: ` + /** + * Returns cached value of negative scale of the world transform. + * + * @returns {number} -1 if world transform has negative scale, 1 otherwise. + */ + `, + options: [ + 'never', + ], + }, ], }; From f1183cc003cd5eca98326b631729dd5950c20775 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 26 May 2023 01:52:40 -0700 Subject: [PATCH 095/273] fix: point to multipage docs; fixes #1094 --- src/bin/generateRule.js | 2 +- src/rules/checkAccess.js | 2 +- src/rules/checkAlignment.js | 2 +- src/rules/checkExamples.js | 2 +- src/rules/checkIndentation.js | 2 +- src/rules/checkLineAlignment.js | 2 +- src/rules/checkParamNames.js | 2 +- src/rules/checkPropertyNames.js | 2 +- src/rules/checkSyntax.js | 2 +- src/rules/checkTagNames.js | 2 +- src/rules/checkTypes.js | 2 +- src/rules/checkValues.js | 2 +- src/rules/emptyTags.js | 2 +- src/rules/implementsOnClasses.js | 2 +- src/rules/matchDescription.js | 2 +- src/rules/matchName.js | 2 +- src/rules/multilineBlocks.js | 2 +- src/rules/noBadBlocks.js | 2 +- src/rules/noBlankBlockDescriptions.js | 2 +- src/rules/noBlankBlocks.js | 2 +- src/rules/noDefaults.js | 2 +- src/rules/noMissingSyntax.js | 2 +- src/rules/noMultiAsterisks.js | 2 +- src/rules/noRestrictedSyntax.js | 2 +- src/rules/noTypes.js | 2 +- src/rules/noUndefinedTypes.js | 2 +- src/rules/requireDescription.js | 2 +- src/rules/requireDescriptionCompleteSentence.js | 2 +- src/rules/requireExample.js | 2 +- src/rules/requireFileOverview.js | 2 +- src/rules/requireHyphenBeforeParamDescription.js | 2 +- src/rules/requireJsdoc.js | 2 +- src/rules/requireParam.js | 2 +- src/rules/requireParamDescription.js | 2 +- src/rules/requireParamName.js | 2 +- src/rules/requireParamType.js | 2 +- src/rules/requireProperty.js | 2 +- src/rules/requirePropertyDescription.js | 2 +- src/rules/requirePropertyName.js | 2 +- src/rules/requirePropertyType.js | 2 +- src/rules/requireReturns.js | 2 +- src/rules/requireReturnsCheck.js | 2 +- src/rules/requireReturnsDescription.js | 2 +- src/rules/requireReturnsType.js | 2 +- src/rules/requireThrows.js | 2 +- src/rules/requireYields.js | 2 +- src/rules/requireYieldsCheck.js | 2 +- src/rules/sortTags.js | 2 +- src/rules/tagLines.js | 2 +- src/rules/textEscaping.js | 2 +- src/rules/validTypes.js | 2 +- 51 files changed, 51 insertions(+), 51 deletions(-) diff --git a/src/bin/generateRule.js b/src/bin/generateRule.js index ea28f797a..a6b332e0c 100644 --- a/src/bin/generateRule.js +++ b/src/bin/generateRule.js @@ -66,7 +66,7 @@ export default iterateJsdoc(({ meta: { docs: { description: '', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-${ruleName}', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/${ruleName}.md#repos-sticky-header', }, schema: [ { diff --git a/src/rules/checkAccess.js b/src/rules/checkAccess.js index 93f422a11..5fc6ffc80 100644 --- a/src/rules/checkAccess.js +++ b/src/rules/checkAccess.js @@ -38,7 +38,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Checks that `@access` tags have a valid value.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-access', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-access.md#repos-sticky-header', }, type: 'suggestion', }, diff --git a/src/rules/checkAlignment.js b/src/rules/checkAlignment.js index b2e8aec6b..60ee841b3 100644 --- a/src/rules/checkAlignment.js +++ b/src/rules/checkAlignment.js @@ -55,7 +55,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Reports invalid alignment of JSDoc block asterisks.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-alignment', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-alignment.md#repos-sticky-header', }, fixable: 'code', type: 'layout', diff --git a/src/rules/checkExamples.js b/src/rules/checkExamples.js index 69ef3376f..5da101f75 100644 --- a/src/rules/checkExamples.js +++ b/src/rules/checkExamples.js @@ -516,7 +516,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Ensures that (JavaScript) examples within JSDoc adhere to ESLint rules.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-examples', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-examples.md#repos-sticky-header', }, schema: [ { diff --git a/src/rules/checkIndentation.js b/src/rules/checkIndentation.js index 694973ae1..383dd68ee 100644 --- a/src/rules/checkIndentation.js +++ b/src/rules/checkIndentation.js @@ -53,7 +53,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Reports invalid padding inside JSDoc blocks.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-indentation', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-indentation.md#repos-sticky-header', }, schema: [ { diff --git a/src/rules/checkLineAlignment.js b/src/rules/checkLineAlignment.js index e22f54c94..16fbcecb3 100644 --- a/src/rules/checkLineAlignment.js +++ b/src/rules/checkLineAlignment.js @@ -309,7 +309,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Reports invalid alignment of JSDoc block lines.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-line-alignment', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-line-alignment.md#repos-sticky-header', }, fixable: 'whitespace', schema: [ diff --git a/src/rules/checkParamNames.js b/src/rules/checkParamNames.js index 37c075114..61c308399 100644 --- a/src/rules/checkParamNames.js +++ b/src/rules/checkParamNames.js @@ -367,7 +367,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Ensures that parameter names in JSDoc match those in the function declaration.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-param-names', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-param-names.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/checkPropertyNames.js b/src/rules/checkPropertyNames.js index 8802f8176..d262f2b28 100644 --- a/src/rules/checkPropertyNames.js +++ b/src/rules/checkPropertyNames.js @@ -133,7 +133,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Ensures that property names in JSDoc are not duplicated on the same block and that nested properties have defined roots.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-property-names', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-property-names.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/checkSyntax.js b/src/rules/checkSyntax.js index c81ca0c2d..6ec851192 100644 --- a/src/rules/checkSyntax.js +++ b/src/rules/checkSyntax.js @@ -23,7 +23,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Reports against syntax not valid for the mode (e.g., Google Closure Compiler in non-Closure mode).', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-syntax', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-syntax.md#repos-sticky-header', }, type: 'suggestion', }, diff --git a/src/rules/checkTagNames.js b/src/rules/checkTagNames.js index 42bac87f6..b416c981c 100644 --- a/src/rules/checkTagNames.js +++ b/src/rules/checkTagNames.js @@ -283,7 +283,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Reports invalid block tag names.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-tag-names', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-tag-names.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/checkTypes.js b/src/rules/checkTypes.js index 35e4235c0..420440377 100644 --- a/src/rules/checkTypes.js +++ b/src/rules/checkTypes.js @@ -489,7 +489,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Reports invalid types.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-types', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-types.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/checkValues.js b/src/rules/checkValues.js index 7ee4ed199..073673367 100644 --- a/src/rules/checkValues.js +++ b/src/rules/checkValues.js @@ -180,7 +180,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'This rule checks the values for a handful of tags: `@version`, `@since`, `@license` and `@author`.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-values', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-values.md#repos-sticky-header', }, schema: [ { diff --git a/src/rules/emptyTags.js b/src/rules/emptyTags.js index e9c69d6e6..4c37c51d4 100644 --- a/src/rules/emptyTags.js +++ b/src/rules/emptyTags.js @@ -66,7 +66,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Expects specific tags to be empty of any content.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-empty-tags', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/empty-tags.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/implementsOnClasses.js b/src/rules/implementsOnClasses.js index 7a794aee0..94e42d144 100644 --- a/src/rules/implementsOnClasses.js +++ b/src/rules/implementsOnClasses.js @@ -27,7 +27,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Reports an issue with any non-constructor function using `@implements`.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-implements-on-classes', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/implements-on-classes.md#repos-sticky-header', }, schema: [ { diff --git a/src/rules/matchDescription.js b/src/rules/matchDescription.js index aa47d553d..0f1a181c0 100644 --- a/src/rules/matchDescription.js +++ b/src/rules/matchDescription.js @@ -129,7 +129,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Enforces a regular expression pattern on descriptions.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-match-description', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/match-description.md#repos-sticky-header', }, schema: [ { diff --git a/src/rules/matchName.js b/src/rules/matchName.js index 7788f85f1..671a010b0 100644 --- a/src/rules/matchName.js +++ b/src/rules/matchName.js @@ -98,7 +98,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Reports the name portion of a JSDoc tag if matching or not matching a given regular expression.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-match-name', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/match-name.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/multilineBlocks.js b/src/rules/multilineBlocks.js index 9c19691b9..d8d9b18c0 100644 --- a/src/rules/multilineBlocks.js +++ b/src/rules/multilineBlocks.js @@ -278,7 +278,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Controls how and whether jsdoc blocks can be expressed as single or multiple line blocks.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-multiline-blocks', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/multiline-blocks.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/noBadBlocks.js b/src/rules/noBadBlocks.js index 3f6482d2f..a798c0521 100644 --- a/src/rules/noBadBlocks.js +++ b/src/rules/noBadBlocks.js @@ -84,7 +84,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'This rule checks for multi-line-style comments which fail to meet the criteria of a jsdoc block.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-bad-blocks', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-bad-blocks.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/noBlankBlockDescriptions.js b/src/rules/noBlankBlockDescriptions.js index 5f5d0bfd6..01a3901a5 100644 --- a/src/rules/noBlankBlockDescriptions.js +++ b/src/rules/noBlankBlockDescriptions.js @@ -60,7 +60,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Detects and removes extra lines of a blank block description', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-blank-block-descriptions', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-blank-block-descriptions.md#repos-sticky-header', }, fixable: 'whitespace', schema: [], diff --git a/src/rules/noBlankBlocks.js b/src/rules/noBlankBlocks.js index 28f5e88cc..bf03c5e48 100644 --- a/src/rules/noBlankBlocks.js +++ b/src/rules/noBlankBlocks.js @@ -35,7 +35,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Removes empty blocks with nothing but possibly line breaks', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-blank-blocks', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-blank-blocks.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/noDefaults.js b/src/rules/noDefaults.js index d7bf57ff7..5304e1a7b 100644 --- a/src/rules/noDefaults.js +++ b/src/rules/noDefaults.js @@ -44,7 +44,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'This rule reports defaults being used on the relevant portion of `@param` or `@default`.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-defaults', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-defaults.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/noMissingSyntax.js b/src/rules/noMissingSyntax.js index f6191e0ad..19dce93bb 100644 --- a/src/rules/noMissingSyntax.js +++ b/src/rules/noMissingSyntax.js @@ -174,7 +174,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Reports when certain comment structures are always expected.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-missing-syntax', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-missing-syntax.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/noMultiAsterisks.js b/src/rules/noMultiAsterisks.js index f71258e9e..e8ef5120c 100644 --- a/src/rules/noMultiAsterisks.js +++ b/src/rules/noMultiAsterisks.js @@ -109,7 +109,7 @@ export default iterateJsdoc(({ meta: { docs: { description: '', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-multi-asterisks', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-multi-asterisks.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/noRestrictedSyntax.js b/src/rules/noRestrictedSyntax.js index d1f1f423f..02fa4e9c4 100644 --- a/src/rules/noRestrictedSyntax.js +++ b/src/rules/noRestrictedSyntax.js @@ -72,7 +72,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Reports when certain comment structures are present.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-restricted-syntax', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-restricted-syntax.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/noTypes.js b/src/rules/noTypes.js index 5c60313a9..b730a16ba 100644 --- a/src/rules/noTypes.js +++ b/src/rules/noTypes.js @@ -35,7 +35,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'This rule reports types being used on `@param` or `@returns`.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-types', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-types.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/noUndefinedTypes.js b/src/rules/noUndefinedTypes.js index 8b59298b0..3b613c771 100644 --- a/src/rules/noUndefinedTypes.js +++ b/src/rules/noUndefinedTypes.js @@ -294,7 +294,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Checks that types in jsdoc comments are defined.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-undefined-types', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-undefined-types.md#repos-sticky-header', }, schema: [ { diff --git a/src/rules/requireDescription.js b/src/rules/requireDescription.js index 6c2d804a9..fc80bcc2a 100644 --- a/src/rules/requireDescription.js +++ b/src/rules/requireDescription.js @@ -100,7 +100,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Requires that all functions have a description.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-description', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-description.md#repos-sticky-header', }, schema: [ { diff --git a/src/rules/requireDescriptionCompleteSentence.js b/src/rules/requireDescriptionCompleteSentence.js index c66f16a94..9fc370635 100644 --- a/src/rules/requireDescriptionCompleteSentence.js +++ b/src/rules/requireDescriptionCompleteSentence.js @@ -302,7 +302,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Requires that block description, explicit `@description`, and `@param`/`@returns` tag descriptions are written in complete sentences.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-description-complete-sentence', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-description-complete-sentence.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/requireExample.js b/src/rules/requireExample.js index 68cd3b5fc..83e04ebbc 100644 --- a/src/rules/requireExample.js +++ b/src/rules/requireExample.js @@ -54,7 +54,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Requires that all functions have examples.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-example', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-example.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/requireFileOverview.js b/src/rules/requireFileOverview.js index 33ce15002..2a15bc2bc 100644 --- a/src/rules/requireFileOverview.js +++ b/src/rules/requireFileOverview.js @@ -111,7 +111,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Checks that all files have one `@file`, `@fileoverview`, or `@overview` tag at the beginning of the file.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-file-overview', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-file-overview.md#repos-sticky-header', }, schema: [ { diff --git a/src/rules/requireHyphenBeforeParamDescription.js b/src/rules/requireHyphenBeforeParamDescription.js index 941f8f720..95d979805 100644 --- a/src/rules/requireHyphenBeforeParamDescription.js +++ b/src/rules/requireHyphenBeforeParamDescription.js @@ -136,7 +136,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Requires a hyphen before the `@param` description.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-hyphen-before-param-description', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-hyphen-before-param-description.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/requireJsdoc.js b/src/rules/requireJsdoc.js index 9a8536512..d9c1983d3 100644 --- a/src/rules/requireJsdoc.js +++ b/src/rules/requireJsdoc.js @@ -614,7 +614,7 @@ export default { category: 'Stylistic Issues', description: 'Require JSDoc comments', recommended: true, - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-jsdoc', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-jsdoc.md#repos-sticky-header', }, fixable: 'code', diff --git a/src/rules/requireParam.js b/src/rules/requireParam.js index e16fdae8d..193708d05 100644 --- a/src/rules/requireParam.js +++ b/src/rules/requireParam.js @@ -494,7 +494,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Requires that all function parameters are documented.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-param', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/requireParamDescription.js b/src/rules/requireParamDescription.js index 832014971..dfc5d1783 100644 --- a/src/rules/requireParamDescription.js +++ b/src/rules/requireParamDescription.js @@ -45,7 +45,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Requires that each `@param` tag has a `description` value.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-param-description', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-description.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/requireParamName.js b/src/rules/requireParamName.js index 1d1c32397..f90b34429 100644 --- a/src/rules/requireParamName.js +++ b/src/rules/requireParamName.js @@ -18,7 +18,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Requires that all function parameters have names.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-param-name', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-name.md#repos-sticky-header', }, schema: [ { diff --git a/src/rules/requireParamType.js b/src/rules/requireParamType.js index 6fa7ac70d..8cd2cb03d 100644 --- a/src/rules/requireParamType.js +++ b/src/rules/requireParamType.js @@ -45,7 +45,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Requires that each `@param` tag has a `type` value.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-param-type', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-type.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/requireProperty.js b/src/rules/requireProperty.js index 9d29ebf40..73ddc636a 100644 --- a/src/rules/requireProperty.js +++ b/src/rules/requireProperty.js @@ -40,7 +40,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Requires that all `@typedef` and `@namespace` tags have `@property` when their type is a plain `object`, `Object`, or `PlainObject`.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-property', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property.md#repos-sticky-header', }, fixable: 'code', type: 'suggestion', diff --git a/src/rules/requirePropertyDescription.js b/src/rules/requirePropertyDescription.js index 4935dd31d..5345be0eb 100644 --- a/src/rules/requirePropertyDescription.js +++ b/src/rules/requirePropertyDescription.js @@ -18,7 +18,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Requires that each `@property` tag has a `description` value.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-property-description', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-description.md#repos-sticky-header', }, type: 'suggestion', }, diff --git a/src/rules/requirePropertyName.js b/src/rules/requirePropertyName.js index e19059cf3..f3debfbf2 100644 --- a/src/rules/requirePropertyName.js +++ b/src/rules/requirePropertyName.js @@ -18,7 +18,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Requires that all function `@property` tags have names.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-property-name', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-name.md#repos-sticky-header', }, type: 'suggestion', }, diff --git a/src/rules/requirePropertyType.js b/src/rules/requirePropertyType.js index ef0384d7e..24c00b7dc 100644 --- a/src/rules/requirePropertyType.js +++ b/src/rules/requirePropertyType.js @@ -18,7 +18,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Requires that each `@property` tag has a `type` value.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-property-type', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-type.md#repos-sticky-header', }, type: 'suggestion', }, diff --git a/src/rules/requireReturns.js b/src/rules/requireReturns.js index 73474ea5f..02f10974d 100644 --- a/src/rules/requireReturns.js +++ b/src/rules/requireReturns.js @@ -102,7 +102,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Requires that returns are documented.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-returns', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns.md#repos-sticky-header', }, schema: [ { diff --git a/src/rules/requireReturnsCheck.js b/src/rules/requireReturnsCheck.js index 4b2c29b44..13b99cc40 100755 --- a/src/rules/requireReturnsCheck.js +++ b/src/rules/requireReturnsCheck.js @@ -115,7 +115,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Requires a return statement in function body if a `@returns` tag is specified in jsdoc comment.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-returns-check', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-check.md#repos-sticky-header', }, schema: [ { diff --git a/src/rules/requireReturnsDescription.js b/src/rules/requireReturnsDescription.js index d3de206dd..ccc5d5e93 100644 --- a/src/rules/requireReturnsDescription.js +++ b/src/rules/requireReturnsDescription.js @@ -22,7 +22,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Requires that the `@returns` tag has a `description` value.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-returns-description', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-description.md#repos-sticky-header', }, schema: [ { diff --git a/src/rules/requireReturnsType.js b/src/rules/requireReturnsType.js index ef443f968..0cf1c378b 100644 --- a/src/rules/requireReturnsType.js +++ b/src/rules/requireReturnsType.js @@ -14,7 +14,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Requires that `@returns` tag has `type` value.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-returns-type', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-type.md#repos-sticky-header', }, schema: [ { diff --git a/src/rules/requireThrows.js b/src/rules/requireThrows.js index 09885146d..827efd105 100644 --- a/src/rules/requireThrows.js +++ b/src/rules/requireThrows.js @@ -68,7 +68,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Requires that throw statements are documented.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-throws', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws.md#repos-sticky-header', }, schema: [ { diff --git a/src/rules/requireYields.js b/src/rules/requireYields.js index c524512a2..59a7db1b8 100644 --- a/src/rules/requireYields.js +++ b/src/rules/requireYields.js @@ -153,7 +153,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Requires yields are documented.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-yields', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields.md#repos-sticky-header', }, schema: [ { diff --git a/src/rules/requireYieldsCheck.js b/src/rules/requireYieldsCheck.js index 5b8cdc352..c10fea9c6 100644 --- a/src/rules/requireYieldsCheck.js +++ b/src/rules/requireYieldsCheck.js @@ -157,7 +157,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Requires a yield statement in function body if a `@yields` tag is specified in jsdoc comment.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-yields-check', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-check.md#repos-sticky-header', }, schema: [ { diff --git a/src/rules/sortTags.js b/src/rules/sortTags.js index 976e28cca..ef70d4143 100644 --- a/src/rules/sortTags.js +++ b/src/rules/sortTags.js @@ -515,7 +515,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Sorts tags by a specified sequence according to tag name.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-sort-tags', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/sort-tags.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/tagLines.js b/src/rules/tagLines.js index af4f7aee9..2df7fb3c4 100644 --- a/src/rules/tagLines.js +++ b/src/rules/tagLines.js @@ -292,7 +292,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Enforces lines (or no lines) between tags.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-tag-lines', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/tag-lines.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/textEscaping.js b/src/rules/textEscaping.js index cebb2d44b..791bcb0a8 100644 --- a/src/rules/textEscaping.js +++ b/src/rules/textEscaping.js @@ -123,7 +123,7 @@ export default iterateJsdoc(({ meta: { docs: { description: '', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-text-escaping', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/text-escaping.md#repos-sticky-header', }, fixable: 'code', schema: [ diff --git a/src/rules/validTypes.js b/src/rules/validTypes.js index 5d37bee6c..702ceccea 100644 --- a/src/rules/validTypes.js +++ b/src/rules/validTypes.js @@ -333,7 +333,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Requires all types to be valid JSDoc or Closure compiler types without syntax errors.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-valid-types', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/valid-types.md#repos-sticky-header', }, schema: [ { From 94cb599304682c901994bf4966453b79bb984613 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 26 May 2023 03:21:58 -0700 Subject: [PATCH 096/273] fix(`informative-docs`, `require-asterisk-prefix`): add missing and update out-of-date doc URL; fixes #1094 --- src/rules/informativeDocs.js | 2 +- src/rules/requireAsteriskPrefix.js | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/rules/informativeDocs.js b/src/rules/informativeDocs.js index 2a5ac0d20..ecdf44965 100644 --- a/src/rules/informativeDocs.js +++ b/src/rules/informativeDocs.js @@ -140,7 +140,7 @@ export default iterateJsdoc(({ docs: { description: 'This rule reports doc comments that only restate their attached name.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc#informative-docs', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/informative-docs.md#repos-sticky-header', }, schema: [ { diff --git a/src/rules/requireAsteriskPrefix.js b/src/rules/requireAsteriskPrefix.js index 872da1fe9..78af247c2 100644 --- a/src/rules/requireAsteriskPrefix.js +++ b/src/rules/requireAsteriskPrefix.js @@ -141,6 +141,11 @@ export default iterateJsdoc(({ }, { iterateAllJsdocs: true, meta: { + docs: { + description: + 'Requires that each JSDoc line starts with an `*`.', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-asterisk-prefix.md#repos-sticky-header', + }, fixable: 'code', schema: [ { From 866838b3de8bd2c79b66199d8bbe58cfb9b5c2b3 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 28 May 2023 07:43:18 -0700 Subject: [PATCH 097/273] chore: include release-notes-generator for Markdown in release notes; fixes #973 --- .releaserc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.releaserc b/.releaserc index c1435faa0..6c60064e3 100644 --- a/.releaserc +++ b/.releaserc @@ -4,7 +4,8 @@ ], "plugins": [ "@semantic-release/commit-analyzer", + "@semantic-release/release-notes-generator", "@semantic-release/github", "@semantic-release/npm" ] -} \ No newline at end of file +} From ec41b902581dcfd99fb45f958940f67096e14b23 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 26 May 2023 10:17:25 -0700 Subject: [PATCH 098/273] feat: for typescript configs, disable `no-undefined-types`; fixes #888 BREAKING CHANGE: This should only impact users of typescript configs. TS should itself handle checking for undefined types, so the (imperfect) rule has been disabled for such users. --- src/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/index.js b/src/index.js index aad4359e9..bbb22d616 100644 --- a/src/index.js +++ b/src/index.js @@ -196,6 +196,7 @@ const createRecommendedTypeScriptRuleset = (warnOrError) => { }, ], 'jsdoc/no-types': warnOrError, + 'jsdoc/no-undefined-types': 'off', 'jsdoc/require-param-type': 'off', 'jsdoc/require-property-type': 'off', 'jsdoc/require-returns-type': 'off', From 6042b7751ff7cc7915eec1473ee743042155d22a Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 26 May 2023 10:17:39 -0700 Subject: [PATCH 099/273] feat: add recommended-typescript-flavor configs --- .README/README.md | 30 ++++++++++++++++++------------ README.md | 30 ++++++++++++++++++------------ src/index.js | 20 ++++++++++++++++++++ 3 files changed, 56 insertions(+), 24 deletions(-) diff --git a/.README/README.md b/.README/README.md index 92c363e24..d92e9a146 100644 --- a/.README/README.md +++ b/.README/README.md @@ -118,25 +118,31 @@ as failing errors, you may use the "recommended-error" config: ``` If you plan to use TypeScript syntax (and not just "typescript" -`mode` to indicate the JSDoc flavor is TypeScript), you can configure -the following: +`mode` to indicate the JSDoc flavor is TypeScript), you can use: -```javascript +```json { - "rules": { - "jsdoc/no-types": 1, - "jsdoc/require-param-type": 0, - "jsdoc/require-property-type": 0, - "jsdoc/require-returns-type": 0, - } + "extends": ["plugin:jsdoc/recommended-typescript"] } ``` -...or just use: +...or to report with failing errors instead of mere warnings: ```json { - "extends": ["plugin:jsdoc/recommended-typescript"] + "extends": ["plugin:jsdoc/recommended-typescript-error"] +} +``` + +If you are not using TypeScript syntax (your source files are still `.js` files) +but you are using the TypeScript flavor within JSDoc (i.e., the default +"typescript" `mode` in `eslint-plugin-jsdoc`) and you are perhaps using +`allowJs` and `checkJs` options of TypeScript's `tsconfig.json`), you may +use: + +```json +{ + "extends": ["plugin:jsdoc/recommended-typescript-flavor"] } ``` @@ -144,7 +150,7 @@ the following: ```json { - "extends": ["plugin:jsdoc/recommended-typescript-error"] + "extends": ["plugin:jsdoc/recommended-typescript-flavor-error"] } ``` diff --git a/README.md b/README.md index e30e8a1b2..28d468515 100644 --- a/README.md +++ b/README.md @@ -131,25 +131,31 @@ as failing errors, you may use the "recommended-error" config: ``` If you plan to use TypeScript syntax (and not just "typescript" -`mode` to indicate the JSDoc flavor is TypeScript), you can configure -the following: +`mode` to indicate the JSDoc flavor is TypeScript), you can use: -```javascript +```json { - "rules": { - "jsdoc/no-types": 1, - "jsdoc/require-param-type": 0, - "jsdoc/require-property-type": 0, - "jsdoc/require-returns-type": 0, - } + "extends": ["plugin:jsdoc/recommended-typescript"] } ``` -...or just use: +...or to report with failing errors instead of mere warnings: ```json { - "extends": ["plugin:jsdoc/recommended-typescript"] + "extends": ["plugin:jsdoc/recommended-typescript-error"] +} +``` + +If you are not using TypeScript syntax (your source files are still `.js` files) +but you are using the TypeScript flavor within JSDoc (i.e., the default +"typescript" `mode` in `eslint-plugin-jsdoc`) and you are perhaps using +`allowJs` and `checkJs` options of TypeScript's `tsconfig.json`), you may +use: + +```json +{ + "extends": ["plugin:jsdoc/recommended-typescript-flavor"] } ``` @@ -157,7 +163,7 @@ the following: ```json { - "extends": ["plugin:jsdoc/recommended-typescript-error"] + "extends": ["plugin:jsdoc/recommended-typescript-flavor-error"] } ``` diff --git a/src/index.js b/src/index.js index bbb22d616..052833df6 100644 --- a/src/index.js +++ b/src/index.js @@ -205,6 +205,24 @@ const createRecommendedTypeScriptRuleset = (warnOrError) => { }; }; +/** + * @param {"warn"|"error"} warnOrError + * @returns {import('eslint').ESLint.ConfigData} + */ +const createRecommendedTypeScriptFlavorRuleset = (warnOrError) => { + const ruleset = createRecommendedRuleset(warnOrError); + + return { + ...ruleset, + rules: { + ...ruleset.rules, + /* eslint-disable indent -- Extra indent to avoid use by auto-rule-editing */ + 'jsdoc/no-undefined-types': 'off', + /* eslint-enable indent */ + }, + }; +}; + /* istanbul ignore if -- TS */ if (!index.configs) { throw new Error('TypeScript guard'); @@ -214,5 +232,7 @@ index.configs.recommended = createRecommendedRuleset('warn'); index.configs['recommended-error'] = createRecommendedRuleset('error'); index.configs['recommended-typescript'] = createRecommendedTypeScriptRuleset('warn'); index.configs['recommended-typescript-error'] = createRecommendedTypeScriptRuleset('error'); +index.configs['recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn'); +index.configs['recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error'); export default index; From 3d052ba3c12b569fafe9c3d20c790f318f1d16c9 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 27 May 2023 23:19:09 -0700 Subject: [PATCH 100/273] docs: generate options from schema; fixes #258 --- .README/rules/check-examples.md | 2 +- .README/rules/check-indentation.md | 2 +- .README/rules/check-line-alignment.md | 2 +- .README/rules/check-param-names.md | 2 +- .README/rules/check-types.md | 2 +- .README/rules/check-values.md | 2 +- .README/rules/match-description.md | 2 +- .README/rules/multiline-blocks.md | 2 +- .README/rules/no-multi-asterisks.md | 2 +- .README/rules/no-undefined-types.md | 2 +- .README/rules/require-asterisk-prefix.md | 2 +- .../require-description-complete-sentence.md | 2 +- .README/rules/require-description.md | 2 +- .README/rules/require-example.md | 2 +- ...require-hyphen-before-param-description.md | 2 +- .README/rules/require-param-description.md | 2 +- .README/rules/require-param-type.md | 2 +- .README/rules/require-param.md | 2 +- .README/rules/require-returns-check.md | 2 +- .README/rules/require-returns.md | 2 +- .README/rules/require-throws.md | 2 +- .README/rules/require-yields-check.md | 2 +- .README/rules/require-yields.md | 2 +- .README/rules/sort-tags.md | 2 +- .README/rules/tag-lines.md | 2 +- .README/rules/text-escaping.md | 2 +- .npmignore | 1 + docs/rules/check-examples.md | 2 +- docs/rules/check-indentation.md | 2 +- docs/rules/check-line-alignment.md | 2 +- docs/rules/check-param-names.md | 2 +- docs/rules/check-types.md | 2 +- docs/rules/check-values.md | 2 +- docs/rules/match-description.md | 2 +- docs/rules/multiline-blocks.md | 2 +- docs/rules/no-multi-asterisks.md | 2 +- docs/rules/no-undefined-types.md | 2 +- docs/rules/require-asterisk-prefix.md | 2 +- .../require-description-complete-sentence.md | 2 +- docs/rules/require-description.md | 2 +- docs/rules/require-example.md | 2 +- ...require-hyphen-before-param-description.md | 2 +- docs/rules/require-param-description.md | 2 +- docs/rules/require-param-type.md | 2 +- docs/rules/require-param.md | 2 +- docs/rules/require-returns-check.md | 2 +- docs/rules/require-returns.md | 2 +- docs/rules/require-throws.md | 2 +- docs/rules/require-yields-check.md | 2 +- docs/rules/require-yields.md | 2 +- docs/rules/sort-tags.md | 2 +- docs/rules/tag-lines.md | 2 +- docs/rules/text-escaping.md | 2 +- package.json | 5 +- pnpm-lock.yaml | 31 +++++++ src/bin/generateOptions.mjs | 85 +++++++++++++++++++ 56 files changed, 173 insertions(+), 53 deletions(-) create mode 100644 src/bin/generateOptions.mjs diff --git a/.README/rules/check-examples.md b/.README/rules/check-examples.md index 26d4632e9..f2883a060 100644 --- a/.README/rules/check-examples.md +++ b/.README/rules/check-examples.md @@ -181,7 +181,7 @@ expression-oriented rules will be used by default as well: |Context|everywhere| |Tags|`example`| |Recommended|false| -|Options| *See above* | +|Options|`allowInlineConfig`, `baseConfig`, `captionRequired`, `checkDefaults`, `checkEslintrc`, `checkParams`, `checkProperties`, `configFile`, `exampleCodeRegex`, `matchingFileName`, `matchingFileNameDefaults`, `matchingFileNameParams`, `matchingFileNameProperties`, `noDefaultExampleRules`, `paddedIndent`, `rejectExampleCodeRegex`, `reportUnusedDisableDirectives`| ## Failing examples diff --git a/.README/rules/check-indentation.md b/.README/rules/check-indentation.md index 03c6517cb..f860f40fb 100644 --- a/.README/rules/check-indentation.md +++ b/.README/rules/check-indentation.md @@ -51,7 +51,7 @@ report a padding issue: |Context|everywhere| |Tags|N/A| |Recommended|false| -|Options| `excludeTags` | +|Options|`excludeTags`| ## Failing examples diff --git a/.README/rules/check-line-alignment.md b/.README/rules/check-line-alignment.md index 742ce3d06..f5859d0d0 100644 --- a/.README/rules/check-line-alignment.md +++ b/.README/rules/check-line-alignment.md @@ -54,7 +54,7 @@ Default to the empty string (no indent). ||| |---|---| |Context|everywhere| -|Options|(a string matching `"always"`, `"never"`, or `"any"` and optional object with `tags`, `customSpacings`, `preserveMainDescriptionPostDelimiter`, and `wrapIndent`)| +|Options|string ("always", "never", "any") followed by object with `customSpacings`, `preserveMainDescriptionPostDelimiter`, `tags`, `wrapIndent`| |Tags|`param`, `property`, `returns` and others added by `tags`| |Aliases|`arg`, `argument`, `prop`, `return`| |Recommended|false| diff --git a/.README/rules/check-param-names.md b/.README/rules/check-param-names.md index ef296e501..dcea0efa0 100644 --- a/.README/rules/check-param-names.md +++ b/.README/rules/check-param-names.md @@ -86,7 +86,7 @@ that are available and actually used in the function. ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| -|Options|`allowExtraTrailingParamDocs`, `checkDestructured`, `checkRestProperty`, `checkTypesPattern`, `useDefaultObjectProperties`, `disableExtraPropertyReporting`| +|Options|`allowExtraTrailingParamDocs`, `checkDestructured`, `checkRestProperty`, `checkTypesPattern`, `disableExtraPropertyReporting`, `enableFixer`, `useDefaultObjectProperties`| |Tags|`param`| |Aliases|`arg`, `argument`| |Recommended|true| diff --git a/.README/rules/check-types.md b/.README/rules/check-types.md index e800ad06c..c980e6a9f 100644 --- a/.README/rules/check-types.md +++ b/.README/rules/check-types.md @@ -164,7 +164,7 @@ permitted. |Aliases|`constructor`, `const`, `extends`, `var`, `arg`, `argument`, `prop`, `return`, `exception`, `yield`| |Closure-only|`package`, `private`, `protected`, `public`, `static`| |Recommended|true| -|Options|`noDefaults`, `exemptTagContexts`, `unifyParentAndChildTypeChecks`| +|Options|`exemptTagContexts`, `noDefaults`, `unifyParentAndChildTypeChecks`| |Settings|`preferredTypes`, `mode`, `structuredTags`| ## Failing examples diff --git a/.README/rules/check-values.md b/.README/rules/check-values.md index 41f303c7d..8dd5fada0 100644 --- a/.README/rules/check-values.md +++ b/.README/rules/check-values.md @@ -56,7 +56,7 @@ Whether to enable validation that `@variation` must be a number. Defaults to |Context|everywhere| |Tags|`@version`, `@since`, `@kind`, `@license`, `@author`, `@variation`| |Recommended|true| -|Options|`allowedAuthors`, `allowedLicenses`, `licensePattern`| +|Options|`allowedAuthors`, `allowedLicenses`, `licensePattern`, `numericOnlyVariation`| |Settings|`tagNamePreference`| ## Failing examples diff --git a/.README/rules/match-description.md b/.README/rules/match-description.md index 0e01425b7..e829014ed 100644 --- a/.README/rules/match-description.md +++ b/.README/rules/match-description.md @@ -161,7 +161,7 @@ section of our README for more on the expected format. |Aliases|`@desc`| |Recommended|false| |Settings|| -|Options|`contexts`, `tags` (accepts tags with names and optional type such as 'param', 'arg', 'argument', 'property', and 'prop', and accepts arbitrary list of other tags with an optional type (but without names), e.g., 'returns', 'return'), `mainDescription`, `matchDescription`| +|Options|`contexts`, `mainDescription`, `matchDescription`, `message`, `tags`| ## Failing examples diff --git a/.README/rules/multiline-blocks.md b/.README/rules/multiline-blocks.md index e6173f6c1..6cbdb182a 100644 --- a/.README/rules/multiline-blocks.md +++ b/.README/rules/multiline-blocks.md @@ -96,7 +96,7 @@ cannot be reliably added after the tag either). |Tags|Any (though `singleLineTags` and `multilineTags` control the application)| |Recommended|true| |Settings|| -|Options|`noZeroLineText`, `noSingleLineBlocks`, `singleLineTags`, `noMultilineBlocks`, `minimumLengthForMultiline`, `multilineTags`, `allowMultipleTags`, `noFinalLineText`| +|Options|`allowMultipleTags`, `minimumLengthForMultiline`, `multilineTags`, `noFinalLineText`, `noMultilineBlocks`, `noSingleLineBlocks`, `noZeroLineText`, `singleLineTags`| ## Failing examples diff --git a/.README/rules/no-multi-asterisks.md b/.README/rules/no-multi-asterisks.md index 7556ad5e0..1ba882026 100644 --- a/.README/rules/no-multi-asterisks.md +++ b/.README/rules/no-multi-asterisks.md @@ -54,7 +54,7 @@ Prevent the likes of this: |Tags|(any)| |Recommended|true| |Settings|| -|Options|`preventAtEnd`, `preventAtMiddleLines`| +|Options|`allowWhitespace`, `preventAtEnd`, `preventAtMiddleLines`| ## Failing examples diff --git a/.README/rules/no-undefined-types.md b/.README/rules/no-undefined-types.md index 5f830ca8e..3d856f206 100644 --- a/.README/rules/no-undefined-types.md +++ b/.README/rules/no-undefined-types.md @@ -69,7 +69,7 @@ An option object may have the following keys: |Aliases|`constructor`, `const`, `extends`, `var`, `arg`, `argument`, `prop`, `return`, `exception`, `yield`| |Closure-only|`package`, `private`, `protected`, `public`, `static`| |Recommended|true| -|Options|`definedTypes`, `markVariablesAsUsed`, `disableReporting`| +|Options|`definedTypes`, `disableReporting`, `markVariablesAsUsed`| |Settings|`preferredTypes`, `mode`, `structuredTags`| diff --git a/.README/rules/require-asterisk-prefix.md b/.README/rules/require-asterisk-prefix.md index e6b162f01..b8d2e3223 100644 --- a/.README/rules/require-asterisk-prefix.md +++ b/.README/rules/require-asterisk-prefix.md @@ -43,7 +43,7 @@ which applies to the main jsdoc block description. |---|---| |Context|everywhere| |Tags|All or as limited by the `tags` option| -|Options|(a string matching `"always"|"never"` and optional object with `tags`)| +|Options|string ("always", "never", "any") followed by object with `tags`| ## Failing examples diff --git a/.README/rules/require-description-complete-sentence.md b/.README/rules/require-description-complete-sentence.md index 96bedc03c..32b2599d1 100644 --- a/.README/rules/require-description-complete-sentence.md +++ b/.README/rules/require-description-complete-sentence.md @@ -68,7 +68,7 @@ nouns, for example). |Tags|doc block, `param`, `returns`, `description`, `property`, `summary`, `file`, `classdesc`, `todo`, `deprecated`, `throws`, 'yields' and others added by `tags`| |Aliases|`arg`, `argument`, `return`, `desc`, `prop`, `fileoverview`, `overview`, `exception`, `yield`| |Recommended|false| -|Options|`tags`, `abbreviations`, `newlineBeforeCapsAssumesBadSentenceEnd`| +|Options|`abbreviations`, `newlineBeforeCapsAssumesBadSentenceEnd`, `tags`| ## Failing examples diff --git a/.README/rules/require-description.md b/.README/rules/require-description.md index 9bd3fbb64..0582936cd 100644 --- a/.README/rules/require-description.md +++ b/.README/rules/require-description.md @@ -42,7 +42,7 @@ An options object may have any of the following properties: | Tags | `description` or jsdoc block | | Aliases | `desc` | | Recommended | false | -| Options | `contexts`, `exemptedBy`, `descriptionStyle`, `checkConstructors`, `checkGetters`, `checkSetters` | +| Options |`checkConstructors`, `checkGetters`, `checkSetters`, `contexts`, `descriptionStyle`, `exemptedBy`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | ## Failing examples diff --git a/.README/rules/require-example.md b/.README/rules/require-example.md index 9e01bf89f..abf294f50 100644 --- a/.README/rules/require-example.md +++ b/.README/rules/require-example.md @@ -66,7 +66,7 @@ Defaults to `true`. |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| |Tags|`example`| |Recommended|false| -|Options|`exemptedBy`, `exemptNoArguments`, `contexts`, `checkConstructors`, `checkGetters`, `checkSetters`, `enableFixer`| +|Options|`checkConstructors`, `checkGetters`, `checkSetters`, `contexts`, `enableFixer`, `exemptedBy`, `exemptNoArguments`| |Settings|`ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`| # Failing examples diff --git a/.README/rules/require-hyphen-before-param-description.md b/.README/rules/require-hyphen-before-param-description.md index 56acdf55e..bb490f176 100644 --- a/.README/rules/require-hyphen-before-param-description.md +++ b/.README/rules/require-hyphen-before-param-description.md @@ -35,7 +35,7 @@ other tags besides the `@param` tag (or the `@arg` tag if so set): |Tags|`param` and optionally other tags within `tags`| |Aliases|`arg`, `argument`; potentially `prop` or other aliases| |Recommended|false| -|Options|a string matching `"always" or "never"` followed by an optional object with a `tags` property| +|Options|string ("always", "never") followed by object with `tags`| ## Failing examples diff --git a/.README/rules/require-param-description.md b/.README/rules/require-param-description.md index 04b46be58..3f73e2ae0 100644 --- a/.README/rules/require-param-description.md +++ b/.README/rules/require-param-description.md @@ -45,7 +45,7 @@ section of our README for more on the expected format. |Tags|`param`| |Aliases|`arg`, `argument`| |Recommended|true| -|Options|`setDefaultDestructuredRootDescription`, `defaultDestructuredRootDescription`, `contexts`| +|Options|`contexts`, `defaultDestructuredRootDescription`, `setDefaultDestructuredRootDescription`| |Settings|`exemptDestructuredRootsFromChecks`| ## Failing examples diff --git a/.README/rules/require-param-type.md b/.README/rules/require-param-type.md index d0d69068d..82772966b 100644 --- a/.README/rules/require-param-type.md +++ b/.README/rules/require-param-type.md @@ -44,7 +44,7 @@ section of our README for more on the expected format. |Tags|`param`| |Aliases|`arg`, `argument`| |Recommended|true| -|Options|`setDefaultDestructuredRootType`, `defaultDestructuredRootType`, `contexts`| +|Options|`contexts`, `defaultDestructuredRootType`, `setDefaultDestructuredRootType`| |Settings|`exemptDestructuredRootsFromChecks`| ## Failing examples diff --git a/.README/rules/require-param.md b/.README/rules/require-param.md index 797abbc46..6fc671384 100644 --- a/.README/rules/require-param.md +++ b/.README/rules/require-param.md @@ -377,7 +377,7 @@ supplied as default values. Defaults to `false`. | Tags | `param` | | Aliases | `arg`, `argument` | |Recommended | true| -| Options | `autoIncrementBase`, `checkDestructured`, `checkDestructuredRoots`, `contexts`, `enableFixer`, `enableRootFixer`, `enableRestElementFixer`, `checkRestProperty`, `exemptedBy`, `checkConstructors`, `checkGetters`, `checkSetters`, `checkTypesPattern`, `unnamedRootBase`, `useDefaultObjectProperties`| +| Options |`autoIncrementBase`, `checkConstructors`, `checkDestructured`, `checkDestructuredRoots`, `checkGetters`, `checkRestProperty`, `checkSetters`, `checkTypesPattern`, `contexts`, `enableFixer`, `enableRestElementFixer`, `enableRootFixer`, `exemptedBy`, `unnamedRootBase`, `useDefaultObjectProperties`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`| ## Failing examples diff --git a/.README/rules/require-returns-check.md b/.README/rules/require-returns-check.md index 7dede5c67..af1ab4f17 100644 --- a/.README/rules/require-returns-check.md +++ b/.README/rules/require-returns-check.md @@ -44,7 +44,7 @@ Will also report if multiple `@returns` tags are present. |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| |Tags|`returns`| |Aliases|`return`| -|Options|`exemptAsync`, `reportMissingReturnForUndefinedTypes`| +|Options|`exemptAsync`, `exemptGenerators`, `reportMissingReturnForUndefinedTypes`| |Recommended|true| ## Failing examples diff --git a/.README/rules/require-returns.md b/.README/rules/require-returns.md index 807ea4e59..240c7dd27 100644 --- a/.README/rules/require-returns.md +++ b/.README/rules/require-returns.md @@ -51,7 +51,7 @@ Will also report if multiple `@returns` tags are present. | Tags | `returns` | | Aliases | `return` | |Recommended|true| -| Options | `checkConstructors`, `checkGetters`, `contexts`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync` | +| Options |`checkConstructors`, `checkGetters`, `contexts`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | ## Failing examples diff --git a/.README/rules/require-throws.md b/.README/rules/require-throws.md index 0f6874353..01068c0e7 100644 --- a/.README/rules/require-throws.md +++ b/.README/rules/require-throws.md @@ -39,7 +39,7 @@ on why TypeScript doesn't offer such a feature. | Tags | `throws` | | Aliases | `exception` | |Recommended|true| -| Options | `contexts`, `exemptedBy` | +| Options |`contexts`, `exemptedBy`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | ## Failing examples diff --git a/.README/rules/require-yields-check.md b/.README/rules/require-yields-check.md index f391a4c99..af2bb4fdc 100644 --- a/.README/rules/require-yields-check.md +++ b/.README/rules/require-yields-check.md @@ -44,7 +44,7 @@ Will also report if multiple `@yields` tags are present. |Tags|`yields`| |Aliases|`yield`| |Recommended|true| -|Options|`checkGeneratorsOnly`| +|Options|`checkGeneratorsOnly`, `contexts`, `exemptedBy`, `next`| ## Failing examples diff --git a/.README/rules/require-yields.md b/.README/rules/require-yields.md index 7d8d8ad10..69fd6ca78 100644 --- a/.README/rules/require-yields.md +++ b/.README/rules/require-yields.md @@ -65,7 +65,7 @@ option to expect a non-standard `@next` tag. |Tags|`yields`| |Aliases|`yield`| |Recommended|true| -| Options | `contexts`, `exemptedBy`, `withGeneratorTag`, `nextWithGeneratorTag`, `forceRequireYields`, `next` | +| Options |`contexts`, `exemptedBy`, `forceRequireNext`, `forceRequireYields`, `next`, `nextWithGeneratorTag`, `withGeneratorTag`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | ## Failing examples diff --git a/.README/rules/sort-tags.md b/.README/rules/sort-tags.md index bce540370..14544a517 100644 --- a/.README/rules/sort-tags.md +++ b/.README/rules/sort-tags.md @@ -244,7 +244,7 @@ such tags. Do not use with `true` if you are using `tag-lines` and `always`. |Tags|any| |Recommended|false| |Settings|| -|Options|`tagSequence`, `alphabetizeExtras`, `linesBetween`, `reportTagGroupSpacing`, `reportIntraTagGroupSpacing`| +|Options|`alphabetizeExtras`, `linesBetween`, `reportIntraTagGroupSpacing`, `reportTagGroupSpacing`, `tagSequence`| ## Failing examples diff --git a/.README/rules/tag-lines.md b/.README/rules/tag-lines.md index 81b341ab3..f7d459b7e 100644 --- a/.README/rules/tag-lines.md +++ b/.README/rules/tag-lines.md @@ -66,7 +66,7 @@ following keys: |Tags|Any| |Recommended|true| |Settings|N/A| -|Options|(a string matching `"always"`, `"never"`, or `"any"` and optional object with `count`, `applyToEndTag`, `startLines`, `endLines`)| +|Options|string ("always", "any", "never") followed by object with `applyToEndTag`, `count`, `endLines`, `startLines`, `tags`| ## Failing examples diff --git a/.README/rules/text-escaping.md b/.README/rules/text-escaping.md index 520b4c40a..0416152eb 100644 --- a/.README/rules/text-escaping.md +++ b/.README/rules/text-escaping.md @@ -33,7 +33,7 @@ This option escapes the first backtick (`` ` ``) in a paired sequence. |Tags|``| |Recommended|false| |Settings|| -|Options|| +|Options|`escapeHTML`, `escapeMarkdown`| ## Failing examples diff --git a/.npmignore b/.npmignore index 4bf551011..1f22ff515 100755 --- a/.npmignore +++ b/.npmignore @@ -1,5 +1,6 @@ coverage src +bin test .* *.log diff --git a/docs/rules/check-examples.md b/docs/rules/check-examples.md index f4bd4d092..5f57ad60b 100644 --- a/docs/rules/check-examples.md +++ b/docs/rules/check-examples.md @@ -212,7 +212,7 @@ expression-oriented rules will be used by default as well: |Context|everywhere| |Tags|`example`| |Recommended|false| -|Options| *See above* | +|Options|`allowInlineConfig`, `baseConfig`, `captionRequired`, `checkDefaults`, `checkEslintrc`, `checkParams`, `checkProperties`, `configFile`, `exampleCodeRegex`, `matchingFileName`, `matchingFileNameDefaults`, `matchingFileNameParams`, `matchingFileNameProperties`, `noDefaultExampleRules`, `paddedIndent`, `rejectExampleCodeRegex`, `reportUnusedDisableDirectives`| diff --git a/docs/rules/check-indentation.md b/docs/rules/check-indentation.md index 8cc47f22f..2396a14d5 100644 --- a/docs/rules/check-indentation.md +++ b/docs/rules/check-indentation.md @@ -64,7 +64,7 @@ report a padding issue: |Context|everywhere| |Tags|N/A| |Recommended|false| -|Options| `excludeTags` | +|Options|`excludeTags`| diff --git a/docs/rules/check-line-alignment.md b/docs/rules/check-line-alignment.md index 65af867e2..0d55e9a0f 100644 --- a/docs/rules/check-line-alignment.md +++ b/docs/rules/check-line-alignment.md @@ -79,7 +79,7 @@ Default to the empty string (no indent). ||| |---|---| |Context|everywhere| -|Options|(a string matching `"always"`, `"never"`, or `"any"` and optional object with `tags`, `customSpacings`, `preserveMainDescriptionPostDelimiter`, and `wrapIndent`)| +|Options|string ("always", "never", "any") followed by object with `customSpacings`, `preserveMainDescriptionPostDelimiter`, `tags`, `wrapIndent`| |Tags|`param`, `property`, `returns` and others added by `tags`| |Aliases|`arg`, `argument`, `prop`, `return`| |Recommended|false| diff --git a/docs/rules/check-param-names.md b/docs/rules/check-param-names.md index 1462b782f..cca4fbd4b 100644 --- a/docs/rules/check-param-names.md +++ b/docs/rules/check-param-names.md @@ -123,7 +123,7 @@ that are available and actually used in the function. ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| -|Options|`allowExtraTrailingParamDocs`, `checkDestructured`, `checkRestProperty`, `checkTypesPattern`, `useDefaultObjectProperties`, `disableExtraPropertyReporting`| +|Options|`allowExtraTrailingParamDocs`, `checkDestructured`, `checkRestProperty`, `checkTypesPattern`, `disableExtraPropertyReporting`, `enableFixer`, `useDefaultObjectProperties`| |Tags|`param`| |Aliases|`arg`, `argument`| |Recommended|true| diff --git a/docs/rules/check-types.md b/docs/rules/check-types.md index ba4dbbe63..bc5fb4d8e 100644 --- a/docs/rules/check-types.md +++ b/docs/rules/check-types.md @@ -183,7 +183,7 @@ permitted. |Aliases|`constructor`, `const`, `extends`, `var`, `arg`, `argument`, `prop`, `return`, `exception`, `yield`| |Closure-only|`package`, `private`, `protected`, `public`, `static`| |Recommended|true| -|Options|`noDefaults`, `exemptTagContexts`, `unifyParentAndChildTypeChecks`| +|Options|`exemptTagContexts`, `noDefaults`, `unifyParentAndChildTypeChecks`| |Settings|`preferredTypes`, `mode`, `structuredTags`| diff --git a/docs/rules/check-values.md b/docs/rules/check-values.md index 8e0d2f9ff..17d3b4dca 100644 --- a/docs/rules/check-values.md +++ b/docs/rules/check-values.md @@ -78,7 +78,7 @@ Whether to enable validation that `@variation` must be a number. Defaults to |Context|everywhere| |Tags|`@version`, `@since`, `@kind`, `@license`, `@author`, `@variation`| |Recommended|true| -|Options|`allowedAuthors`, `allowedLicenses`, `licensePattern`| +|Options|`allowedAuthors`, `allowedLicenses`, `licensePattern`, `numericOnlyVariation`| |Settings|`tagNamePreference`| diff --git a/docs/rules/match-description.md b/docs/rules/match-description.md index c2bf7c574..1f198523d 100644 --- a/docs/rules/match-description.md +++ b/docs/rules/match-description.md @@ -186,7 +186,7 @@ section of our README for more on the expected format. |Aliases|`@desc`| |Recommended|false| |Settings|| -|Options|`contexts`, `tags` (accepts tags with names and optional type such as 'param', 'arg', 'argument', 'property', and 'prop', and accepts arbitrary list of other tags with an optional type (but without names), e.g., 'returns', 'return'), `mainDescription`, `matchDescription`| +|Options|`contexts`, `mainDescription`, `matchDescription`, `message`, `tags`| diff --git a/docs/rules/multiline-blocks.md b/docs/rules/multiline-blocks.md index 2f1a48e1e..9bfa0a4df 100644 --- a/docs/rules/multiline-blocks.md +++ b/docs/rules/multiline-blocks.md @@ -120,7 +120,7 @@ cannot be reliably added after the tag either). |Tags|Any (though `singleLineTags` and `multilineTags` control the application)| |Recommended|true| |Settings|| -|Options|`noZeroLineText`, `noSingleLineBlocks`, `singleLineTags`, `noMultilineBlocks`, `minimumLengthForMultiline`, `multilineTags`, `allowMultipleTags`, `noFinalLineText`| +|Options|`allowMultipleTags`, `minimumLengthForMultiline`, `multilineTags`, `noFinalLineText`, `noMultilineBlocks`, `noSingleLineBlocks`, `noZeroLineText`, `singleLineTags`| diff --git a/docs/rules/no-multi-asterisks.md b/docs/rules/no-multi-asterisks.md index 955418882..ac48654f4 100644 --- a/docs/rules/no-multi-asterisks.md +++ b/docs/rules/no-multi-asterisks.md @@ -68,7 +68,7 @@ Prevent the likes of this: |Tags|(any)| |Recommended|true| |Settings|| -|Options|`preventAtEnd`, `preventAtMiddleLines`| +|Options|`allowWhitespace`, `preventAtEnd`, `preventAtMiddleLines`| diff --git a/docs/rules/no-undefined-types.md b/docs/rules/no-undefined-types.md index 0c4b3ac39..70f3ca070 100644 --- a/docs/rules/no-undefined-types.md +++ b/docs/rules/no-undefined-types.md @@ -79,7 +79,7 @@ An option object may have the following keys: |Aliases|`constructor`, `const`, `extends`, `var`, `arg`, `argument`, `prop`, `return`, `exception`, `yield`| |Closure-only|`package`, `private`, `protected`, `public`, `static`| |Recommended|true| -|Options|`definedTypes`, `markVariablesAsUsed`, `disableReporting`| +|Options|`definedTypes`, `disableReporting`, `markVariablesAsUsed`| |Settings|`preferredTypes`, `mode`, `structuredTags`| diff --git a/docs/rules/require-asterisk-prefix.md b/docs/rules/require-asterisk-prefix.md index d3b383ded..597bde3af 100644 --- a/docs/rules/require-asterisk-prefix.md +++ b/docs/rules/require-asterisk-prefix.md @@ -53,7 +53,7 @@ which applies to the main jsdoc block description. |---|---| |Context|everywhere| |Tags|All or as limited by the `tags` option| -|Options|(a string matching `"always"|"never"` and optional object with `tags`)| +|Options|string ("always", "never", "any") followed by object with `tags`| diff --git a/docs/rules/require-description-complete-sentence.md b/docs/rules/require-description-complete-sentence.md index 611b33dda..37a6ae025 100644 --- a/docs/rules/require-description-complete-sentence.md +++ b/docs/rules/require-description-complete-sentence.md @@ -90,7 +90,7 @@ nouns, for example). |Tags|doc block, `param`, `returns`, `description`, `property`, `summary`, `file`, `classdesc`, `todo`, `deprecated`, `throws`, 'yields' and others added by `tags`| |Aliases|`arg`, `argument`, `return`, `desc`, `prop`, `fileoverview`, `overview`, `exception`, `yield`| |Recommended|false| -|Options|`tags`, `abbreviations`, `newlineBeforeCapsAssumesBadSentenceEnd`| +|Options|`abbreviations`, `newlineBeforeCapsAssumesBadSentenceEnd`, `tags`| diff --git a/docs/rules/require-description.md b/docs/rules/require-description.md index 8a9df6aad..7a344a453 100644 --- a/docs/rules/require-description.md +++ b/docs/rules/require-description.md @@ -52,7 +52,7 @@ An options object may have any of the following properties: | Tags | `description` or jsdoc block | | Aliases | `desc` | | Recommended | false | -| Options | `contexts`, `exemptedBy`, `descriptionStyle`, `checkConstructors`, `checkGetters`, `checkSetters` | +| Options |`checkConstructors`, `checkGetters`, `checkSetters`, `contexts`, `descriptionStyle`, `exemptedBy`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | diff --git a/docs/rules/require-example.md b/docs/rules/require-example.md index 5b3a76923..62c320286 100644 --- a/docs/rules/require-example.md +++ b/docs/rules/require-example.md @@ -98,7 +98,7 @@ Defaults to `true`. |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| |Tags|`example`| |Recommended|false| -|Options|`exemptedBy`, `exemptNoArguments`, `contexts`, `checkConstructors`, `checkGetters`, `checkSetters`, `enableFixer`| +|Options|`checkConstructors`, `checkGetters`, `checkSetters`, `contexts`, `enableFixer`, `exemptedBy`, `exemptNoArguments`| |Settings|`ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`| diff --git a/docs/rules/require-hyphen-before-param-description.md b/docs/rules/require-hyphen-before-param-description.md index 288eea5a3..033ab0617 100644 --- a/docs/rules/require-hyphen-before-param-description.md +++ b/docs/rules/require-hyphen-before-param-description.md @@ -48,7 +48,7 @@ other tags besides the `@param` tag (or the `@arg` tag if so set): |Tags|`param` and optionally other tags within `tags`| |Aliases|`arg`, `argument`; potentially `prop` or other aliases| |Recommended|false| -|Options|a string matching `"always" or "never"` followed by an optional object with a `tags` property| +|Options|string ("always", "never") followed by object with `tags`| diff --git a/docs/rules/require-param-description.md b/docs/rules/require-param-description.md index 337b71bd3..ec29ce3ea 100644 --- a/docs/rules/require-param-description.md +++ b/docs/rules/require-param-description.md @@ -64,7 +64,7 @@ section of our README for more on the expected format. |Tags|`param`| |Aliases|`arg`, `argument`| |Recommended|true| -|Options|`setDefaultDestructuredRootDescription`, `defaultDestructuredRootDescription`, `contexts`| +|Options|`contexts`, `defaultDestructuredRootDescription`, `setDefaultDestructuredRootDescription`| |Settings|`exemptDestructuredRootsFromChecks`| diff --git a/docs/rules/require-param-type.md b/docs/rules/require-param-type.md index f2ccd2310..2630efb57 100644 --- a/docs/rules/require-param-type.md +++ b/docs/rules/require-param-type.md @@ -63,7 +63,7 @@ section of our README for more on the expected format. |Tags|`param`| |Aliases|`arg`, `argument`| |Recommended|true| -|Options|`setDefaultDestructuredRootType`, `defaultDestructuredRootType`, `contexts`| +|Options|`contexts`, `defaultDestructuredRootType`, `setDefaultDestructuredRootType`| |Settings|`exemptDestructuredRootsFromChecks`| diff --git a/docs/rules/require-param.md b/docs/rules/require-param.md index 1fe956e84..0d7e820fc 100644 --- a/docs/rules/require-param.md +++ b/docs/rules/require-param.md @@ -447,7 +447,7 @@ supplied as default values. Defaults to `false`. | Tags | `param` | | Aliases | `arg`, `argument` | |Recommended | true| -| Options | `autoIncrementBase`, `checkDestructured`, `checkDestructuredRoots`, `contexts`, `enableFixer`, `enableRootFixer`, `enableRestElementFixer`, `checkRestProperty`, `exemptedBy`, `checkConstructors`, `checkGetters`, `checkSetters`, `checkTypesPattern`, `unnamedRootBase`, `useDefaultObjectProperties`| +| Options |`autoIncrementBase`, `checkConstructors`, `checkDestructured`, `checkDestructuredRoots`, `checkGetters`, `checkRestProperty`, `checkSetters`, `checkTypesPattern`, `contexts`, `enableFixer`, `enableRestElementFixer`, `enableRootFixer`, `exemptedBy`, `unnamedRootBase`, `useDefaultObjectProperties`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`| diff --git a/docs/rules/require-returns-check.md b/docs/rules/require-returns-check.md index 0e72282f4..c692ddfe5 100644 --- a/docs/rules/require-returns-check.md +++ b/docs/rules/require-returns-check.md @@ -54,7 +54,7 @@ Will also report if multiple `@returns` tags are present. |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| |Tags|`returns`| |Aliases|`return`| -|Options|`exemptAsync`, `reportMissingReturnForUndefinedTypes`| +|Options|`exemptAsync`, `exemptGenerators`, `reportMissingReturnForUndefinedTypes`| |Recommended|true| diff --git a/docs/rules/require-returns.md b/docs/rules/require-returns.md index 9f5a68ac3..34d67f841 100644 --- a/docs/rules/require-returns.md +++ b/docs/rules/require-returns.md @@ -61,7 +61,7 @@ Will also report if multiple `@returns` tags are present. | Tags | `returns` | | Aliases | `return` | |Recommended|true| -| Options | `checkConstructors`, `checkGetters`, `contexts`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync` | +| Options |`checkConstructors`, `checkGetters`, `contexts`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | diff --git a/docs/rules/require-throws.md b/docs/rules/require-throws.md index 9a79c4f91..20d3d9f92 100644 --- a/docs/rules/require-throws.md +++ b/docs/rules/require-throws.md @@ -49,7 +49,7 @@ on why TypeScript doesn't offer such a feature. | Tags | `throws` | | Aliases | `exception` | |Recommended|true| -| Options | `contexts`, `exemptedBy` | +| Options |`contexts`, `exemptedBy`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | diff --git a/docs/rules/require-yields-check.md b/docs/rules/require-yields-check.md index 2c4f342b3..39f909467 100644 --- a/docs/rules/require-yields-check.md +++ b/docs/rules/require-yields-check.md @@ -54,7 +54,7 @@ Will also report if multiple `@yields` tags are present. |Tags|`yields`| |Aliases|`yield`| |Recommended|true| -|Options|`checkGeneratorsOnly`| +|Options|`checkGeneratorsOnly`, `contexts`, `exemptedBy`, `next`| diff --git a/docs/rules/require-yields.md b/docs/rules/require-yields.md index f0c984a4d..dc0b0b7eb 100644 --- a/docs/rules/require-yields.md +++ b/docs/rules/require-yields.md @@ -75,7 +75,7 @@ option to expect a non-standard `@next` tag. |Tags|`yields`| |Aliases|`yield`| |Recommended|true| -| Options | `contexts`, `exemptedBy`, `withGeneratorTag`, `nextWithGeneratorTag`, `forceRequireYields`, `next` | +| Options |`contexts`, `exemptedBy`, `forceRequireNext`, `forceRequireYields`, `next`, `nextWithGeneratorTag`, `withGeneratorTag`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | diff --git a/docs/rules/sort-tags.md b/docs/rules/sort-tags.md index f879615ee..084c1191e 100644 --- a/docs/rules/sort-tags.md +++ b/docs/rules/sort-tags.md @@ -272,7 +272,7 @@ such tags. Do not use with `true` if you are using `tag-lines` and `always`. |Tags|any| |Recommended|false| |Settings|| -|Options|`tagSequence`, `alphabetizeExtras`, `linesBetween`, `reportTagGroupSpacing`, `reportIntraTagGroupSpacing`| +|Options|`alphabetizeExtras`, `linesBetween`, `reportIntraTagGroupSpacing`, `reportTagGroupSpacing`, `tagSequence`| diff --git a/docs/rules/tag-lines.md b/docs/rules/tag-lines.md index 45cc70b32..d1f270e0c 100644 --- a/docs/rules/tag-lines.md +++ b/docs/rules/tag-lines.md @@ -94,7 +94,7 @@ following keys: |Tags|Any| |Recommended|true| |Settings|N/A| -|Options|(a string matching `"always"`, `"never"`, or `"any"` and optional object with `count`, `applyToEndTag`, `startLines`, `endLines`)| +|Options|string ("always", "any", "never") followed by object with `applyToEndTag`, `count`, `endLines`, `startLines`, `tags`| diff --git a/docs/rules/text-escaping.md b/docs/rules/text-escaping.md index 8b22128ed..a879f6cec 100644 --- a/docs/rules/text-escaping.md +++ b/docs/rules/text-escaping.md @@ -52,7 +52,7 @@ This option escapes the first backtick (`` ` ``) in a paired sequence. |Tags|``| |Recommended|false| |Settings|| -|Options|| +|Options|`escapeHTML`, `escapeMarkdown`| diff --git a/package.json b/package.json index dba63a054..6705c300b 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "@babel/plugin-transform-flow-strip-types": "^7.21.0", "@babel/preset-env": "^7.21.5", "@babel/register": "^7.21.0", + "@es-joy/escodegen": "^3.5.1", "@es-joy/jsdoc-eslint-parser": "^0.19.0", "@hkdobrev/run-if-changed": "^0.3.1", "@semantic-release/commit-analyzer": "^9.0.2", @@ -48,6 +49,7 @@ "decamelize": "^5.0.1", "eslint": "8.41.0", "eslint-config-canonical": "~41.0.4", + "espree": "^9.5.2", "gitdown": "^3.1.5", "glob": "^10.2.6", "husky": "^8.0.3", @@ -120,8 +122,9 @@ "tsc": "tsc", "build": "rimraf ./dist && cross-env NODE_ENV=production babel ./src --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored", "check-docs": "babel-node ./src/bin/generateDocs.js --check", - "create-docs": "babel-node ./src/bin/generateDocs.js", + "create-docs": "npm run create-options && babel-node ./src/bin/generateDocs.js", "create-rule": "babel-node ./src/bin/generateRule.js", + "create-options": "node ./src/bin/generateOptions.mjs", "install-offline": "pnpm install --prefer-offline --no-audit", "lint": "npm run lint-arg -- .", "lint-arg": "eslint --report-unused-disable-directives", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9c4313239..ac905926a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,6 +51,9 @@ devDependencies: '@babel/register': specifier: ^7.21.0 version: 7.21.0(@babel/core@7.21.8) + '@es-joy/escodegen': + specifier: ^3.5.1 + version: 3.5.1 '@es-joy/jsdoc-eslint-parser': specifier: ^0.19.0 version: 0.19.0 @@ -123,6 +126,9 @@ devDependencies: eslint-config-canonical: specifier: ~41.0.4 version: 41.0.4(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.2.3)(eslint@8.41.0)(graphql@16.6.0)(typescript@5.0.4) + espree: + specifier: ^9.5.2 + version: 9.5.2 gitdown: specifier: ^3.1.5 version: 3.1.5 @@ -1465,6 +1471,24 @@ packages: dev: true optional: true + /@es-joy/escodegen@3.5.1: + resolution: {integrity: sha512-+ZFIB5hRBEwmbVc6LLb9zIgR5aNkluUHsqg2VfDLYf3aeDmF8uA7q614zKhwc7n0nh9Qh9XnYfzYgJNoyWSveg==} + engines: {node: '>=6.0'} + hasBin: true + dependencies: + '@es-joy/estraverse': 6.0.0 + esprima: 4.0.1 + esutils: 2.0.3 + optionator: 0.9.1 + optionalDependencies: + source-map: 0.7.4 + dev: true + + /@es-joy/estraverse@6.0.0: + resolution: {integrity: sha512-lk61BuRPDm3KCm2x8Y629+szoRuChn83kG8ll+CniQM07u5dRVzQRkBFnn/hCdL+Urdsj4/6qeOJWr+QRRkKgw==} + engines: {node: '>=4.0'} + dev: true + /@es-joy/jsdoc-eslint-parser@0.19.0: resolution: {integrity: sha512-PvggHK8390M0S/KyS2hUriNu83TLpOv2fjtuKdqE7+SeIKh7o6BgbCVjh0nxbMKVWToG2rGAaMGbOQIhxcq3ew==} engines: {node: '>=12.0.0'} @@ -8907,6 +8931,13 @@ packages: engines: {node: '>=0.10.0'} dev: true + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + requiresBuild: true + dev: true + optional: true + /spawn-error-forwarder@1.0.0: resolution: {integrity: sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==} dev: true diff --git a/src/bin/generateOptions.mjs b/src/bin/generateOptions.mjs new file mode 100644 index 000000000..b906b1068 --- /dev/null +++ b/src/bin/generateOptions.mjs @@ -0,0 +1,85 @@ +import { + generate, +} from '@es-joy/escodegen'; +import decamelize from 'decamelize'; +import { + parse, +} from 'espree'; +import esquery from 'esquery'; +import { + readdir, + readFile, + writeFile, +} from 'fs/promises'; +import { + join, +} from 'path'; + +const rulesDir = './src/rules'; + +const dirContents = await readdir(rulesDir); + +for (const file of dirContents) { + if (!file.endsWith('.js')) { + continue; + } + + const fileContents = await readFile(join(rulesDir, file), 'utf8'); + // console.log('file', file); + const ast = parse(fileContents, { + ecmaVersion: 2_022, + sourceType: 'module', + }); + const results = esquery.query( + ast, + 'ExportDefaultDeclaration[declaration.callee.name="iterateJsdoc"]' + + ' Property[key.name="meta"] Property[key.name="schema"]', + ); + if (results[0]?.value) { + const schema = generate(results[0]?.value); + + // eslint-disable-next-line no-eval -- Need some parser + const json = eval('JSON.stringify(' + schema + ', null, 2)'); + const parsed = JSON.parse(json); + + let initial = ''; + if (Array.isArray(parsed)) { + if (!parsed.length) { + // eslint-disable-next-line no-console -- CLI + console.log('skipping no options', file); + continue; + } + + if (parsed.length >= 2) { + if (parsed.length >= 3 || parsed[0].type !== 'string') { + // eslint-disable-next-line no-console -- CLI + console.log('unexpectedly large schema', file); + continue; + // throw new Error('Unexpected long schema array'); + } + + initial = `string (${parsed[0].enum.map((item) => { + return `"${item}"`; + }).join(', ')}) followed by object with `; + parsed.shift(); + } + } + + const obj = Array.isArray(parsed) ? parsed[0] : parsed; + + const hyphenatedRule = decamelize(file, { + separator: '-', + }).replace(/\.js$/u, '.md'); + const docPath = join('.README/rules', hyphenatedRule); + + const ruleDocs = (await readFile(docPath, 'utf8')) + .replace(/(\|\s*Options\s*\|)([^|]*)(\|)?/u, `$1${ + initial + + Object.keys(obj.properties).map((key) => { + return `\`${key}\``; + }).join(', ') + }$3`); + + await writeFile(docPath, ruleDocs); + } +} From 034ade155235715ee198875778a95196384b2b4f Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 28 May 2023 11:46:59 -0700 Subject: [PATCH 101/273] feat(`no-defaults`): make no-defaults on by default BREAKING CHANGE: Removes default values. Disable the rule if removal not desired. Also: - docs: adds info on TS recommended rules --- .README/README.md | 12 ++++++------ README.md | 12 ++++++------ src/index.js | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.README/README.md b/.README/README.md index d92e9a146..2487576c0 100644 --- a/.README/README.md +++ b/.README/README.md @@ -220,12 +220,12 @@ non-default-recommended fixer). ||:wrench:|[no-bad-blocks](./docs/rules/no-bad-blocks.md#readme)|This rule checks for multi-line-style comments which fail to meet the criteria of a jsdoc block| ||:wrench:|[no-blank-block-descriptions](./docs/rules/no-blank-block-descriptions.md#readme)|If tags are present, this rule will prevent empty lines in the block description. If no tags are present, this rule will prevent extra empty lines in the block description.| ||:wrench:|[no-blank-blocks](./docs/rules/no-blank-blocks.md#readme)|Reports and optionally removes blocks with whitespace only| -||:wrench:|[no-defaults](./docs/rules/no-defaults.md#readme)|This rule reports defaults being used on the relevant portion of `@param` or `@default`| +|:heavy_check_mark:|:wrench:|[no-defaults](./docs/rules/no-defaults.md#readme)|This rule reports defaults being used on the relevant portion of `@param` or `@default`| |||[no-missing-syntax](./docs/rules/no-missing-syntax.md#readme)|This rule lets you report if certain always expected comment structures are missing.| |:heavy_check_mark:|:wrench:|[no-multi-asterisks](./docs/rules/no-multi-asterisks.md#readme)|Prevents use of multiple asterisks at the beginning of lines| |||[no-restricted-syntax](./docs/rules/no-restricted-syntax.md#readme)|Reports when certain comment structures are present| -||:wrench:|[no-types](./docs/rules/no-types.md#readme)|Prohibits types on `@param` or `@returns` (redundant with TypeScript)| -|:heavy_check_mark:||[no-undefined-types](./docs/rules/no-undefined-types.md#readme)|Besides some expected built-in types, prohibits any types not specified as globals or within `@typedef` | +|On in TS|:wrench:|[no-types](./docs/rules/no-types.md#readme)|Prohibits types on `@param` or `@returns` (redundant with TypeScript)| +|:heavy_check_mark: (off in TS and TS flavor)||[no-undefined-types](./docs/rules/no-undefined-types.md#readme)|Besides some expected built-in types, prohibits any types not specified as globals or within `@typedef` | ||:wrench:|[require-asterisk-prefix](./docs/rules/require-asterisk-prefix.md#readme)|Requires that each JSDoc line starts with an `*`| |||[require-description](./docs/rules/require-description.md#readme)|Requires that all functions (and potentially other contexts) have a description.| ||:wrench:|[require-description-complete-sentence](./docs/rules/require-description-complete-sentence.md#readme)|Requires that block description, explicit `@description`, and `@param`/`@returns` tag descriptions are written in complete sentences| @@ -236,15 +236,15 @@ non-default-recommended fixer). |:heavy_check_mark:|:wrench:|[require-param](./docs/rules/require-param.md#readme)|Requires that all function parameters are documented with a `@param` tag.| |:heavy_check_mark:||[require-param-description](./docs/rules/require-param-description.md#readme)|Requires that each `@param` tag has a `description` value.| |:heavy_check_mark:||[require-param-name](./docs/rules/require-param-name.md#readme)|Requires that all `@param` tags have names.| -|:heavy_check_mark:||[require-param-type](./docs/rules/require-param-type.md#readme)|Requires that each `@param` tag has a type value (within curly brackets).| +|:heavy_check_mark: (off in TS)||[require-param-type](./docs/rules/require-param-type.md#readme)|Requires that each `@param` tag has a type value (within curly brackets).| |:heavy_check_mark:|:wrench:|[require-property](./docs/rules/require-property.md#readme)|Requires that all `@typedef` and `@namespace` tags have `@property` tags when their type is a plain `object`, `Object`, or `PlainObject`.| |:heavy_check_mark:||[require-property-description](./docs/rules/require-property-description.md#readme)|Requires that each `@property` tag has a `description` value.| |:heavy_check_mark:||[require-property-name](./docs/rules/require-property-name.md#readme)|Requires that all `@property` tags have names.| -|:heavy_check_mark:||[require-property-type](./docs/rules/require-property-type.md#readme)|Requires that each `@property` tag has a type value (within curly brackets).| +|:heavy_check_mark: (off in TS)||[require-property-type](./docs/rules/require-property-type.md#readme)|Requires that each `@property` tag has a type value (within curly brackets).| |:heavy_check_mark:||[require-returns](./docs/rules/require-returns.md#readme)|Requires that return statements are documented.| |:heavy_check_mark:||[require-returns-check](./docs/rules/require-returns-check.md#readme)|Requires a return statement be present in a function body if a `@returns` tag is specified in the jsdoc comment block (and reports if multiple `@returns` tags are present).| |:heavy_check_mark:||[require-returns-description](./docs/rules/require-returns-description.md#readme)|Requires that the `@returns` tag has a `description` value (not including `void`/`undefined` type returns).| -|:heavy_check_mark:||[require-returns-type](./docs/rules/require-returns-type.md#readme)|Requires that `@returns` tag has a type value (in curly brackets).| +|:heavy_check_mark: (off in TS)||[require-returns-type](./docs/rules/require-returns-type.md#readme)|Requires that `@returns` tag has a type value (in curly brackets).| |||[require-throws](./docs/rules/require-throws.md#readme)|Requires that throw statements are documented| |:heavy_check_mark:||[require-yields](./docs/rules/require-yields.md#readme)|Requires that yields are documented| |:heavy_check_mark:||[require-yields-check](./docs/rules/require-yields-check.md#readme)|Ensures that if a `@yields` is present that a `yield` (or `yield` with a value) is present in the function body (or that if a `@next` is present that there is a `yield` with a return value present)| diff --git a/README.md b/README.md index 28d468515..cb1108b32 100644 --- a/README.md +++ b/README.md @@ -241,12 +241,12 @@ non-default-recommended fixer). ||:wrench:|[no-bad-blocks](./docs/rules/no-bad-blocks.md#readme)|This rule checks for multi-line-style comments which fail to meet the criteria of a jsdoc block| ||:wrench:|[no-blank-block-descriptions](./docs/rules/no-blank-block-descriptions.md#readme)|If tags are present, this rule will prevent empty lines in the block description. If no tags are present, this rule will prevent extra empty lines in the block description.| ||:wrench:|[no-blank-blocks](./docs/rules/no-blank-blocks.md#readme)|Reports and optionally removes blocks with whitespace only| -||:wrench:|[no-defaults](./docs/rules/no-defaults.md#readme)|This rule reports defaults being used on the relevant portion of `@param` or `@default`| +|:heavy_check_mark:|:wrench:|[no-defaults](./docs/rules/no-defaults.md#readme)|This rule reports defaults being used on the relevant portion of `@param` or `@default`| |||[no-missing-syntax](./docs/rules/no-missing-syntax.md#readme)|This rule lets you report if certain always expected comment structures are missing.| |:heavy_check_mark:|:wrench:|[no-multi-asterisks](./docs/rules/no-multi-asterisks.md#readme)|Prevents use of multiple asterisks at the beginning of lines| |||[no-restricted-syntax](./docs/rules/no-restricted-syntax.md#readme)|Reports when certain comment structures are present| -||:wrench:|[no-types](./docs/rules/no-types.md#readme)|Prohibits types on `@param` or `@returns` (redundant with TypeScript)| -|:heavy_check_mark:||[no-undefined-types](./docs/rules/no-undefined-types.md#readme)|Besides some expected built-in types, prohibits any types not specified as globals or within `@typedef` | +|On in TS|:wrench:|[no-types](./docs/rules/no-types.md#readme)|Prohibits types on `@param` or `@returns` (redundant with TypeScript)| +|:heavy_check_mark: (off in TS and TS flavor)||[no-undefined-types](./docs/rules/no-undefined-types.md#readme)|Besides some expected built-in types, prohibits any types not specified as globals or within `@typedef` | ||:wrench:|[require-asterisk-prefix](./docs/rules/require-asterisk-prefix.md#readme)|Requires that each JSDoc line starts with an `*`| |||[require-description](./docs/rules/require-description.md#readme)|Requires that all functions (and potentially other contexts) have a description.| ||:wrench:|[require-description-complete-sentence](./docs/rules/require-description-complete-sentence.md#readme)|Requires that block description, explicit `@description`, and `@param`/`@returns` tag descriptions are written in complete sentences| @@ -257,15 +257,15 @@ non-default-recommended fixer). |:heavy_check_mark:|:wrench:|[require-param](./docs/rules/require-param.md#readme)|Requires that all function parameters are documented with a `@param` tag.| |:heavy_check_mark:||[require-param-description](./docs/rules/require-param-description.md#readme)|Requires that each `@param` tag has a `description` value.| |:heavy_check_mark:||[require-param-name](./docs/rules/require-param-name.md#readme)|Requires that all `@param` tags have names.| -|:heavy_check_mark:||[require-param-type](./docs/rules/require-param-type.md#readme)|Requires that each `@param` tag has a type value (within curly brackets).| +|:heavy_check_mark: (off in TS)||[require-param-type](./docs/rules/require-param-type.md#readme)|Requires that each `@param` tag has a type value (within curly brackets).| |:heavy_check_mark:|:wrench:|[require-property](./docs/rules/require-property.md#readme)|Requires that all `@typedef` and `@namespace` tags have `@property` tags when their type is a plain `object`, `Object`, or `PlainObject`.| |:heavy_check_mark:||[require-property-description](./docs/rules/require-property-description.md#readme)|Requires that each `@property` tag has a `description` value.| |:heavy_check_mark:||[require-property-name](./docs/rules/require-property-name.md#readme)|Requires that all `@property` tags have names.| -|:heavy_check_mark:||[require-property-type](./docs/rules/require-property-type.md#readme)|Requires that each `@property` tag has a type value (within curly brackets).| +|:heavy_check_mark: (off in TS)||[require-property-type](./docs/rules/require-property-type.md#readme)|Requires that each `@property` tag has a type value (within curly brackets).| |:heavy_check_mark:||[require-returns](./docs/rules/require-returns.md#readme)|Requires that return statements are documented.| |:heavy_check_mark:||[require-returns-check](./docs/rules/require-returns-check.md#readme)|Requires a return statement be present in a function body if a `@returns` tag is specified in the jsdoc comment block (and reports if multiple `@returns` tags are present).| |:heavy_check_mark:||[require-returns-description](./docs/rules/require-returns-description.md#readme)|Requires that the `@returns` tag has a `description` value (not including `void`/`undefined` type returns).| -|:heavy_check_mark:||[require-returns-type](./docs/rules/require-returns-type.md#readme)|Requires that `@returns` tag has a type value (in curly brackets).| +|:heavy_check_mark: (off in TS)||[require-returns-type](./docs/rules/require-returns-type.md#readme)|Requires that `@returns` tag has a type value (in curly brackets).| |||[require-throws](./docs/rules/require-throws.md#readme)|Requires that throw statements are documented| |:heavy_check_mark:||[require-yields](./docs/rules/require-yields.md#readme)|Requires that yields are documented| |:heavy_check_mark:||[require-yields-check](./docs/rules/require-yields-check.md#readme)|Ensures that if a `@yields` is present that a `yield` (or `yield` with a value) is present in the function body (or that if a `@next` is present that there is a `yield` with a return value present)| diff --git a/src/index.js b/src/index.js index 052833df6..83d420796 100644 --- a/src/index.js +++ b/src/index.js @@ -142,7 +142,7 @@ const createRecommendedRuleset = (warnOrError) => { 'jsdoc/no-bad-blocks': 'off', 'jsdoc/no-blank-block-descriptions': 'off', 'jsdoc/no-blank-blocks': 'off', - 'jsdoc/no-defaults': 'off', + 'jsdoc/no-defaults': warnOrError, 'jsdoc/no-missing-syntax': 'off', 'jsdoc/no-multi-asterisks': warnOrError, 'jsdoc/no-restricted-syntax': 'off', From 31b3a24b7e015cfe938204618e71fa85d921cc7f Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 29 May 2023 09:52:28 -0700 Subject: [PATCH 102/273] feat(`require-returns`): per-context `forceRequireReturn`; fixes #757 --- docs/rules/require-returns.md | 27 +++++++++++ src/iterateJsdoc.js | 56 ++++++++++++++++++++--- src/rules/noMissingSyntax.js | 31 ++----------- src/rules/noRestrictedSyntax.js | 42 ++++------------- src/rules/requireReturns.js | 20 ++++++++- test/rules/assertions/requireReturns.js | 60 +++++++++++++++++++++++++ 6 files changed, 167 insertions(+), 69 deletions(-) diff --git a/docs/rules/require-returns.md b/docs/rules/require-returns.md index 34d67f841..1f54d2073 100644 --- a/docs/rules/require-returns.md +++ b/docs/rules/require-returns.md @@ -634,6 +634,20 @@ export default async function demo() { return true; } // Message: Missing JSDoc @returns declaration. + +/** + * + */ +function quux () {} + +class Test { + /** + * + */ + abstract Test(): string; +} +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["FunctionDeclaration",{"context":"TSEmptyBodyFunctionExpression","forceRequireReturn":true}]}] +// Message: Missing JSDoc @returns declaration. ```` @@ -1160,5 +1174,18 @@ export function readFixture(path: string): void; * Reads a test fixture. */ export function readFixture(path: string); + +/** + * + */ +function quux () {} + +class Test { + /** + * @returns {string} The test value + */ + abstract Test(): string; +} +// "jsdoc/require-returns": ["error"|"warn", {"contexts":["FunctionDeclaration",{"context":"TSEmptyBodyFunctionExpression","forceRequireReturn":true}]}] ```` diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index 337fb0e64..f32690e3e 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -8,6 +8,7 @@ import { stringify as commentStringify, util, } from 'comment-parser'; +import esquery from 'esquery'; /** * @typedef {number} Integer @@ -26,7 +27,8 @@ import { * tags?: string[], * replacement?: string, * minimum?: Integer, - * message?: string + * message?: string, + * forceRequireReturn?: boolean * }} ContextObject */ /** @@ -467,6 +469,16 @@ import { * @returns {boolean} */ +/** + * @callback FindContext + * @param {Context[]} contexts + * @param {string|undefined} comment + * @returns {{ + * foundContext: Context|undefined, + * contextStr: string + * }} + */ + /** * @typedef {BasicUtils & { * isIteratingFunction: IsIteratingFunction, @@ -526,7 +538,8 @@ import { * hasOptionTag: HasOptionTag, * getClassNode: GetClassNode, * getClassJsdoc: GetClassJsdoc, - * classHasTag: ClassHasTag + * classHasTag: ClassHasTag, + * findContext: FindContext * }} Utils */ @@ -1712,6 +1725,39 @@ const getUtils = ( } }; + /** @type {FindContext} */ + utils.findContext = (contexts, comment) => { + const foundContext = contexts.find((cntxt) => { + return typeof cntxt === 'string' ? + esquery.matches( + /** @type {Node} */ (node), + esquery.parse(cntxt), + undefined, + { + visitorKeys: sourceCode.visitorKeys, + }, + ) : + (!cntxt.context || cntxt.context === 'any' || + esquery.matches( + /** @type {Node} */ (node), + esquery.parse(cntxt.context), + undefined, + { + visitorKeys: sourceCode.visitorKeys, + }, + )) && comment === cntxt.comment; + }); + + const contextStr = typeof foundContext === 'object' ? + foundContext.context ?? 'any' : + String(foundContext); + + return { + contextStr, + foundContext, + }; + }; + return utils; }; @@ -1938,7 +1984,6 @@ const makeReport = (context, commentNode) => { * @param {JsdocBlockWithInline} jsdoc * @param {RuleConfig} ruleConfig * @param {import('eslint').Rule.RuleContext} context - * @param {string[]} lines * @param {import('@es-joy/jsdoccomment').Token} jsdocNode * @param {Node|null} node * @param {Settings} settings @@ -1951,7 +1996,7 @@ const makeReport = (context, commentNode) => { const iterate = ( info, indent, jsdoc, - ruleConfig, context, lines, jsdocNode, node, settings, + ruleConfig, context, jsdocNode, node, settings, sourceCode, iterator, state, iteratingAll, ) => { const jsdocNde = /** @type {unknown} */ (jsdocNode); @@ -2145,7 +2190,6 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext jsdoc, ruleConfig, context, - lines, jsdocNode, /** @type {Node} */ (node), @@ -2188,7 +2232,6 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext jsdoc, ruleConfig, context, - lines, jsdocNode, node, /** @type {Settings} */ @@ -2448,7 +2491,6 @@ export default function iterateJsdoc (iterator, ruleConfig) { jsdoc, ruleConfig, context, - lines, jsdocNode, node, settings, diff --git a/src/rules/noMissingSyntax.js b/src/rules/noMissingSyntax.js index 19dce93bb..8c06a52d8 100644 --- a/src/rules/noMissingSyntax.js +++ b/src/rules/noMissingSyntax.js @@ -1,5 +1,4 @@ import iterateJsdoc from '../iterateJsdoc'; -import esquery from 'esquery'; /** * @typedef {{ @@ -44,12 +43,11 @@ const incrementSelector = (state, selector, comment) => { export default iterateJsdoc(({ context, - node, info: { comment, }, - sourceCode, state, + utils, }) => { if (!context.options[0]) { // Handle error later @@ -61,30 +59,9 @@ export default iterateJsdoc(({ */ const contexts = context.options[0].contexts; - const foundContext = contexts.find((cntxt) => { - return typeof cntxt === 'string' ? - esquery.matches( - /** @type {import('../iterateJsdoc.js').Node} */ (node), - esquery.parse(cntxt), - undefined, - { - visitorKeys: sourceCode.visitorKeys, - }, - ) : - (!cntxt.context || cntxt.context === 'any' || - esquery.matches( - /** @type {import('../iterateJsdoc.js').Node} */ (node), - esquery.parse(cntxt.context), - undefined, - { - visitorKeys: sourceCode.visitorKeys, - }, - )) && comment === cntxt.comment; - }); - - const contextStr = typeof foundContext === 'object' ? - foundContext.context ?? 'any' : - String(foundContext); + const { + contextStr, + } = utils.findContext(contexts, comment); setDefaults(state); diff --git a/src/rules/noRestrictedSyntax.js b/src/rules/noRestrictedSyntax.js index 02fa4e9c4..291e85248 100644 --- a/src/rules/noRestrictedSyntax.js +++ b/src/rules/noRestrictedSyntax.js @@ -1,14 +1,12 @@ import iterateJsdoc from '../iterateJsdoc'; -import esquery from 'esquery'; export default iterateJsdoc(({ - node, context, info: { comment, }, - sourceCode, report, + utils, }) => { if (!context.options.length) { report('Rule `no-restricted-syntax` is missing a `contexts` option.'); @@ -20,33 +18,10 @@ export default iterateJsdoc(({ contexts, } = context.options[0]; - const foundContext = contexts.find( - /** - * @param {string|{context: string, comment: string}} cntxt - * @returns {boolean} - */ - (cntxt) => { - return typeof cntxt === 'string' ? - esquery.matches( - /** @type {import('../iterateJsdoc.js').Node} */ (node), - esquery.parse(cntxt), - undefined, - { - visitorKeys: sourceCode.visitorKeys, - }, - ) : - (!cntxt.context || cntxt.context === 'any' || - esquery.matches( - /** @type {import('../iterateJsdoc.js').Node} */ (node), - esquery.parse(cntxt.context), - undefined, - { - visitorKeys: sourceCode.visitorKeys, - }, - )) && - comment === cntxt.comment; - }, - ); + const { + foundContext, + contextStr, + } = utils.findContext(contexts, comment); // We are not on the *particular* matching context/comment, so don't assume // we need reporting @@ -54,10 +29,9 @@ export default iterateJsdoc(({ return; } - const contextStr = typeof foundContext === 'object' ? - foundContext.context ?? 'any' : - foundContext; - const message = foundContext?.message ?? + const message = /** @type {import('../iterateJsdoc.js').ContextObject} */ ( + foundContext + )?.message ?? 'Syntax is restricted: {{context}}' + (comment ? ' with {{comment}}' : ''); diff --git a/src/rules/requireReturns.js b/src/rules/requireReturns.js index 02f10974d..3003d3357 100644 --- a/src/rules/requireReturns.js +++ b/src/rules/requireReturns.js @@ -35,11 +35,15 @@ const canSkip = (utils) => { }; export default iterateJsdoc(({ + info: { + comment, + }, report, utils, context, }) => { const { + contexts, forceRequireReturn = false, forceReturnsWithAsync = false, } = context.options[0] || {}; @@ -50,6 +54,17 @@ export default iterateJsdoc(({ return; } + /** @type {boolean|undefined} */ + let forceRequireReturnContext; + if (contexts) { + const { + foundContext, + } = utils.findContext(contexts, comment); + if (typeof foundContext === 'object') { + forceRequireReturnContext = foundContext.forceRequireReturn; + } + } + const tagName = /** @type {string} */ (utils.getPreferredTagName({ tagName: 'returns', })); @@ -76,7 +91,7 @@ export default iterateJsdoc(({ return false; } - if (forceRequireReturn && ( + if ((forceRequireReturn || forceRequireReturnContext) && ( iteratingFunction || utils.isVirtualFunction() )) { return true; @@ -131,6 +146,9 @@ export default iterateJsdoc(({ context: { type: 'string', }, + forceRequireReturn: { + type: 'boolean', + }, }, type: 'object', }, diff --git a/test/rules/assertions/requireReturns.js b/test/rules/assertions/requireReturns.js index 7c57f5e5c..81ba52db9 100644 --- a/test/rules/assertions/requireReturns.js +++ b/test/rules/assertions/requireReturns.js @@ -1765,6 +1765,39 @@ export default { sourceType: 'module', }, }, + { + code: ` + /** + * + */ + function quux () {} + + class Test { + /** + * + */ + abstract Test(): string; + } + `, + errors: [ + { + line: 8, + message: 'Missing JSDoc @returns declaration.', + }, + ], + options: [ + { + contexts: [ + 'FunctionDeclaration', + { + context: 'TSEmptyBodyFunctionExpression', + forceRequireReturn: true, + }, + ], + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + }, ], valid: [ { @@ -2662,5 +2695,32 @@ export default { `, parser: require.resolve('@typescript-eslint/parser'), }, + { + code: ` + /** + * + */ + function quux () {} + + class Test { + /** + * @returns {string} The test value + */ + abstract Test(): string; + } + `, + options: [ + { + contexts: [ + 'FunctionDeclaration', + { + context: 'TSEmptyBodyFunctionExpression', + forceRequireReturn: true, + }, + ], + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + }, ], }; From d7ec6e08ac5a4cf960f866120f0a8fa14df6f977 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 31 May 2023 08:52:32 -0700 Subject: [PATCH 103/273] feat(`imports-as-dependencies`): add new rule to detect missing dependencies for import statements; fixes #896 --- .README/rules/imports-as-dependencies.md | 14 +++ docs/rules/imports-as-dependencies.md | 16 ++++ src/index.js | 3 + src/rules/importsAsDependencies.js | 82 +++++++++++++++++ test/rules/assertions/checkExamples.js | 3 - .../rules/assertions/importsAsDependencies.js | 91 +++++++++++++++++++ test/rules/index.js | 11 +++ test/rules/ruleNames.json | 1 + tsconfig.json | 2 +- 9 files changed, 219 insertions(+), 4 deletions(-) create mode 100644 .README/rules/imports-as-dependencies.md create mode 100644 docs/rules/imports-as-dependencies.md create mode 100644 src/rules/importsAsDependencies.js create mode 100644 test/rules/assertions/importsAsDependencies.js diff --git a/.README/rules/imports-as-dependencies.md b/.README/rules/imports-as-dependencies.md new file mode 100644 index 000000000..96850fa24 --- /dev/null +++ b/.README/rules/imports-as-dependencies.md @@ -0,0 +1,14 @@ +### `imports-as-dependencies` + +This rule will report an issue if JSDoc `import()` statements point to a package +which is not listed in `dependencies` or `devDependencies`. + +||| +|---|---| +|Context|everywhere| +|Tags|``| +|Recommended|false| +|Settings|| +|Options|| + + diff --git a/docs/rules/imports-as-dependencies.md b/docs/rules/imports-as-dependencies.md new file mode 100644 index 000000000..d59f92286 --- /dev/null +++ b/docs/rules/imports-as-dependencies.md @@ -0,0 +1,16 @@ + + +### imports-as-dependencies + +This rule will report an issue if JSDoc `import()` statements point to a package +which is not listed in `dependencies` or `devDependencies`. + +||| +|---|---| +|Context|everywhere| +|Tags|``| +|Recommended|false| +|Settings|| +|Options|| + + diff --git a/src/index.js b/src/index.js index 83d420796..1895b03c5 100644 --- a/src/index.js +++ b/src/index.js @@ -11,6 +11,7 @@ import checkTypes from './rules/checkTypes'; import checkValues from './rules/checkValues'; import emptyTags from './rules/emptyTags'; import implementsOnClasses from './rules/implementsOnClasses'; +import importsAsDependencies from './rules/importsAsDependencies'; import informativeDocs from './rules/informativeDocs'; import matchDescription from './rules/matchDescription'; import matchName from './rules/matchName'; @@ -70,6 +71,7 @@ const index = { 'check-values': checkValues, 'empty-tags': emptyTags, 'implements-on-classes': implementsOnClasses, + 'imports-as-dependencies': importsAsDependencies, 'informative-docs': informativeDocs, 'match-description': matchDescription, 'match-name': matchName, @@ -135,6 +137,7 @@ const createRecommendedRuleset = (warnOrError) => { 'jsdoc/check-values': warnOrError, 'jsdoc/empty-tags': warnOrError, 'jsdoc/implements-on-classes': warnOrError, + 'jsdoc/imports-as-dependencies': 'off', 'jsdoc/informative-docs': 'off', 'jsdoc/match-description': 'off', 'jsdoc/match-name': 'off', diff --git a/src/rules/importsAsDependencies.js b/src/rules/importsAsDependencies.js new file mode 100644 index 000000000..975210830 --- /dev/null +++ b/src/rules/importsAsDependencies.js @@ -0,0 +1,82 @@ +import iterateJsdoc from '../iterateJsdoc'; +import { + parse, + traverse, + tryParse, +} from '@es-joy/jsdoccomment'; +import { + readFileSync, +} from 'fs'; +import { + join, +} from 'path'; + +/** + * @type {Set} + */ +let deps; +try { + const pkg = JSON.parse( + // @ts-expect-error It's ok + readFileSync(join(process.cwd(), './package.json')), + ); + deps = new Set([ + ...(pkg.dependencies ? + Object.keys(pkg.dependencies) : + // istanbul ignore next + []), + ...(pkg.devDependencies ? + Object.keys(pkg.devDependencies) : + // istanbul ignore next + []), + ]); +} catch (error) { + /* eslint-disable no-console -- Inform user */ + // istanbul ignore next + console.log(error); + /* eslint-enable no-console -- Inform user */ +} + +export default iterateJsdoc(({ + jsdoc, + settings, + utils, +}) => { + // istanbul ignore if + if (!deps) { + return; + } + + const { + mode, + } = settings; + + for (const tag of jsdoc.tags) { + let typeAst; + try { + typeAst = mode === 'permissive' ? tryParse(tag.type) : parse(tag.type, mode); + } catch { + continue; + } + + traverse(typeAst, (nde) => { + if (nde.type === 'JsdocTypeImport' && !deps.has(nde.element.value.replace( + /^(@[^/]+\/[^/]+|[^/]+).*$/u, '$1', + ))) { + utils.reportJSDoc( + 'import points to package which is not found in dependencies', + tag, + ); + } + }); + } +}, { + iterateAllJsdocs: true, + meta: { + docs: { + description: 'Reports if JSDoc `import()` statements point to a package which is not listed in `dependencies` or `devDependencies`', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/imports-as-dependencies.md#repos-sticky-header', + }, + type: 'suggestion', + }, +}); diff --git a/test/rules/assertions/checkExamples.js b/test/rules/assertions/checkExamples.js index 1c319a9a0..efc829d9c 100644 --- a/test/rules/assertions/checkExamples.js +++ b/test/rules/assertions/checkExamples.js @@ -1,6 +1,3 @@ -// Change `process.cwd()` when testing `checkEslintrc: true` -process.chdir('test/rules/data'); - export default { invalid: [ { diff --git a/test/rules/assertions/importsAsDependencies.js b/test/rules/assertions/importsAsDependencies.js new file mode 100644 index 000000000..321a6c96b --- /dev/null +++ b/test/rules/assertions/importsAsDependencies.js @@ -0,0 +1,91 @@ +export default { + invalid: [ + { + code: ` + /** + * @type {null|import('sth').SomeApi} + */ + `, + errors: [ + { + line: 3, + message: 'import points to package which is not found in dependencies', + }, + ], + }, + { + code: ` + /** + * @type {null|import('sth').SomeApi} + */ + `, + errors: [ + { + line: 3, + message: 'import points to package which is not found in dependencies', + }, + ], + settings: { + jsdoc: { + mode: 'permissive', + }, + }, + }, + { + code: ` + /** + * @type {null|import('missingpackage/subpackage').SomeApi} + */ + `, + errors: [ + { + line: 3, + message: 'import points to package which is not found in dependencies', + }, + ], + }, + { + code: ` + /** + * @type {null|import('@sth/pkg').SomeApi} + */ + `, + errors: [ + { + line: 3, + message: 'import points to package which is not found in dependencies', + }, + ], + }, + ], + valid: [ + { + code: ` + /** + * @type {null|import('eslint').ESLint} + */ + `, + }, + { + code: ` + /** + * @type {null|import('eslint/use-at-your-own-risk').ESLint} + */ + `, + }, + { + code: ` + /** + * @type {null|import('@es-joy/jsdoccomment').InlineTag} + */ + `, + }, + { + code: ` + /** + * @type {null|import(} + */ + `, + }, + ], +}; diff --git a/test/rules/index.js b/test/rules/index.js index b181d7dc5..07475543b 100644 --- a/test/rules/index.js +++ b/test/rules/index.js @@ -25,6 +25,7 @@ const { FlatRuleTester, } = pkg; +// eslint-disable-next-line complexity -- Temporary const main = async () => { const ruleNames = JSON.parse(readFileSync(join(__dirname, './ruleNames.json'), 'utf8')); @@ -148,7 +149,17 @@ const main = async () => { } } + const cwd = process.cwd(); + if (ruleName === 'check-examples') { + // Change `process.cwd()` when testing `checkEslintrc: true` + process.chdir('test/rules/data'); + } + ruleTester.run(ruleName, rule, assertions); + + if (ruleName === 'check-examples') { + process.chdir(cwd); + } } if (!process.env.npm_config_rule) { diff --git a/test/rules/ruleNames.json b/test/rules/ruleNames.json index 7cff81eab..24038af51 100644 --- a/test/rules/ruleNames.json +++ b/test/rules/ruleNames.json @@ -12,6 +12,7 @@ "check-values", "empty-tags", "implements-on-classes", + "imports-as-dependencies", "informative-docs", "match-description", "match-name", diff --git a/tsconfig.json b/tsconfig.json index 98579a525..49dffe62a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,7 +10,7 @@ "declarationMap": true, "allowSyntheticDefaultImports": true, "strict": true, - "target": "es6", + "target": "es2017", "outDir": "dist" }, "include": [ From 785fb2668ee8c98c6110584a8b9b9cbcc722ea01 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 3 Jun 2023 08:54:26 -0700 Subject: [PATCH 104/273] fix(`imports-as-dependencies`): check for `types` in `package.json` and if not present, check `@types`; fixes #1107 --- src/rules/importsAsDependencies.js | 35 +++++++++++++++---- .../rules/assertions/importsAsDependencies.js | 15 ++++++++ 2 files changed, 44 insertions(+), 6 deletions(-) diff --git a/src/rules/importsAsDependencies.js b/src/rules/importsAsDependencies.js index 975210830..368fa093c 100644 --- a/src/rules/importsAsDependencies.js +++ b/src/rules/importsAsDependencies.js @@ -37,6 +37,8 @@ try { /* eslint-enable no-console -- Inform user */ } +const moduleCheck = new Map(); + export default iterateJsdoc(({ jsdoc, settings, @@ -60,13 +62,34 @@ export default iterateJsdoc(({ } traverse(typeAst, (nde) => { - if (nde.type === 'JsdocTypeImport' && !deps.has(nde.element.value.replace( - /^(@[^/]+\/[^/]+|[^/]+).*$/u, '$1', - ))) { - utils.reportJSDoc( - 'import points to package which is not found in dependencies', - tag, + if (nde.type === 'JsdocTypeImport') { + let mod = nde.element.value.replace( + /^(@[^/]+\/[^/]+|[^/]+).*$/u, '$1', ); + if (!moduleCheck.has(mod)) { + let pkg; + try { + pkg = JSON.parse( + // @ts-expect-error It's ok + readFileSync(join(process.cwd(), 'node_modules', mod, './package.json')), + ); + } catch { + // Ignore + } + + if (!pkg || !pkg.types) { + mod = `@types/${mod}`; + } + + moduleCheck.set(mod, !deps.has(mod)); + } + + if (moduleCheck.get(mod)) { + utils.reportJSDoc( + 'import points to package which is not found in dependencies', + tag, + ); + } } }); } diff --git a/test/rules/assertions/importsAsDependencies.js b/test/rules/assertions/importsAsDependencies.js index 321a6c96b..4b22b3f0c 100644 --- a/test/rules/assertions/importsAsDependencies.js +++ b/test/rules/assertions/importsAsDependencies.js @@ -87,5 +87,20 @@ export default { */ `, }, + { + code: ` + /** + * @type {null|import('esquery').ESQueryOptions} + */ + `, + }, + { + code: ` + /** + * @type {null|import('@es-joy/jsdoccomment').InlineTag| + * import('@es-joy/jsdoccomment').JsdocBlock} + */ + `, + }, ], }; From 75b6b8cfe2919a79f7ca39a2070ef4eaf3230dab Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 3 Jun 2023 19:48:08 -0700 Subject: [PATCH 105/273] fix(`imports-as-dependencies`): don't report TypeScript proper --- src/rules/importsAsDependencies.js | 4 ++++ test/rules/assertions/importsAsDependencies.js | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/src/rules/importsAsDependencies.js b/src/rules/importsAsDependencies.js index 368fa093c..d2c6dae11 100644 --- a/src/rules/importsAsDependencies.js +++ b/src/rules/importsAsDependencies.js @@ -66,6 +66,10 @@ export default iterateJsdoc(({ let mod = nde.element.value.replace( /^(@[^/]+\/[^/]+|[^/]+).*$/u, '$1', ); + if (mod === 'typescript') { + return; + } + if (!moduleCheck.has(mod)) { let pkg; try { diff --git a/test/rules/assertions/importsAsDependencies.js b/test/rules/assertions/importsAsDependencies.js index 4b22b3f0c..1c3fbd8b7 100644 --- a/test/rules/assertions/importsAsDependencies.js +++ b/test/rules/assertions/importsAsDependencies.js @@ -102,5 +102,12 @@ export default { */ `, }, + { + code: ` + /** + * @type {null|import('typescript').Program} + */ + `, + }, ], }; From e3b0d0c6d40637a960cc071ad8a08518e30756c7 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 3 Jun 2023 19:48:08 -0700 Subject: [PATCH 106/273] fix(`imports-as-dependencies`): catch `typings` as possible publishing source --- src/rules/importsAsDependencies.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/rules/importsAsDependencies.js b/src/rules/importsAsDependencies.js index d2c6dae11..61bcad2d3 100644 --- a/src/rules/importsAsDependencies.js +++ b/src/rules/importsAsDependencies.js @@ -66,9 +66,6 @@ export default iterateJsdoc(({ let mod = nde.element.value.replace( /^(@[^/]+\/[^/]+|[^/]+).*$/u, '$1', ); - if (mod === 'typescript') { - return; - } if (!moduleCheck.has(mod)) { let pkg; @@ -81,7 +78,7 @@ export default iterateJsdoc(({ // Ignore } - if (!pkg || !pkg.types) { + if (!pkg || (!pkg.types && !pkg.typings)) { mod = `@types/${mod}`; } From 7469e59e2c02d31226df9b0afcb9fd154c50136e Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 4 Jun 2023 13:15:49 -0700 Subject: [PATCH 107/273] fix(`imports-as-dependencies`): allow relative paths Also: - fix: generation of failing/passing examples --- .README/rules/imports-as-dependencies.md | 8 +- docs/rules/imports-as-dependencies.md | 73 ++++++++++++++++++- src/bin/generateRule.js | 8 +- src/rules/importsAsDependencies.js | 4 + .../rules/assertions/importsAsDependencies.js | 7 ++ 5 files changed, 97 insertions(+), 3 deletions(-) diff --git a/.README/rules/imports-as-dependencies.md b/.README/rules/imports-as-dependencies.md index 96850fa24..59ce4bf6a 100644 --- a/.README/rules/imports-as-dependencies.md +++ b/.README/rules/imports-as-dependencies.md @@ -11,4 +11,10 @@ which is not listed in `dependencies` or `devDependencies`. |Settings|| |Options|| - +## Failing examples + + + +## Passing examples + + diff --git a/docs/rules/imports-as-dependencies.md b/docs/rules/imports-as-dependencies.md index d59f92286..6d2130c1c 100644 --- a/docs/rules/imports-as-dependencies.md +++ b/docs/rules/imports-as-dependencies.md @@ -13,4 +13,75 @@ which is not listed in `dependencies` or `devDependencies`. |Settings|| |Options|| - + + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @type {null|import('sth').SomeApi} + */ +// Message: import points to package which is not found in dependencies + +/** + * @type {null|import('sth').SomeApi} + */ +// Settings: {"jsdoc":{"mode":"permissive"}} +// Message: import points to package which is not found in dependencies + +/** + * @type {null|import('missingpackage/subpackage').SomeApi} + */ +// Message: import points to package which is not found in dependencies + +/** + * @type {null|import('@sth/pkg').SomeApi} + */ +// Message: import points to package which is not found in dependencies +```` + + + + + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @type {null|import('eslint').ESLint} + */ + +/** + * @type {null|import('eslint/use-at-your-own-risk').ESLint} + */ + +/** + * @type {null|import('@es-joy/jsdoccomment').InlineTag} + */ + +/** + * @type {null|import(} + */ + +/** + * @type {null|import('esquery').ESQueryOptions} + */ + +/** + * @type {null|import('@es-joy/jsdoccomment').InlineTag| + * import('@es-joy/jsdoccomment').JsdocBlock} + */ + +/** + * @type {null|import('typescript').Program} + */ + +/** + * @type {null|import('./relativePath.js').Program} + */ +```` + diff --git a/src/bin/generateRule.js b/src/bin/generateRule.js index a6b332e0c..9db948ec9 100644 --- a/src/bin/generateRule.js +++ b/src/bin/generateRule.js @@ -127,7 +127,13 @@ export default iterateJsdoc(({ |Settings|| |Options|| - +## Failing examples + + + +## Passing examples + + `; const ruleReadmePath = `./.README/rules/${ruleName}.md`; diff --git a/src/rules/importsAsDependencies.js b/src/rules/importsAsDependencies.js index 61bcad2d3..44630e954 100644 --- a/src/rules/importsAsDependencies.js +++ b/src/rules/importsAsDependencies.js @@ -67,6 +67,10 @@ export default iterateJsdoc(({ /^(@[^/]+\/[^/]+|[^/]+).*$/u, '$1', ); + if ((/^[./]/u).test(mod)) { + return; + } + if (!moduleCheck.has(mod)) { let pkg; try { diff --git a/test/rules/assertions/importsAsDependencies.js b/test/rules/assertions/importsAsDependencies.js index 1c3fbd8b7..86e3b8418 100644 --- a/test/rules/assertions/importsAsDependencies.js +++ b/test/rules/assertions/importsAsDependencies.js @@ -109,5 +109,12 @@ export default { */ `, }, + { + code: ` + /** + * @type {null|import('./relativePath.js').Program} + */ + `, + }, ], }; From ab005925a432dc3b3675c5c310efbcb530d5f7b5 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 6 Jun 2023 07:16:06 -0700 Subject: [PATCH 108/273] fix(`imports-as-dependencies`): support Node builtins; fixes #1112 --- docs/rules/imports-as-dependencies.md | 12 +++++ package.json | 3 +- pnpm-lock.yaml | 47 ++++++++++--------- src/rules/importsAsDependencies.js | 7 ++- .../rules/assertions/importsAsDependencies.js | 21 +++++++++ 5 files changed, 67 insertions(+), 23 deletions(-) diff --git a/docs/rules/imports-as-dependencies.md b/docs/rules/imports-as-dependencies.md index 6d2130c1c..072a39ce3 100644 --- a/docs/rules/imports-as-dependencies.md +++ b/docs/rules/imports-as-dependencies.md @@ -83,5 +83,17 @@ The following patterns are not considered problems: /** * @type {null|import('./relativePath.js').Program} */ + +/** + * @type {null|import('fs').PathLike} + */ + +/** + * @type {null|import('fs/promises').FileHandle} + */ + +/** + * @type {null|import('node:fs').PathLike} + */ ```` diff --git a/package.json b/package.json index 6705c300b..4e7f6c211 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", + "is-builtin-module": "^3.2.1", "semver": "^7.5.1", "spdx-expression-parse": "^3.0.1" }, @@ -37,7 +38,7 @@ "@types/estree": "^1.0.1", "@types/lodash.defaultsdeep": "^4.6.7", "@types/mocha": "^10.0.1", - "@types/node": "^20.2.3", + "@types/node": "^20.2.5", "@types/semver": "^7.5.0", "@types/spdx-expression-parse": "^3.0.2", "@typescript-eslint/parser": "^5.59.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ac905926a..4ab01cdaf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,8 @@ -lockfileVersion: '6.0' +lockfileVersion: '6.1' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false dependencies: '@es-joy/jsdoccomment': @@ -19,6 +23,9 @@ dependencies: esquery: specifier: ^1.5.0 version: 1.5.0 + is-builtin-module: + specifier: ^3.2.1 + version: 3.2.1 semver: specifier: ^7.5.1 version: 7.5.1 @@ -91,8 +98,8 @@ devDependencies: specifier: ^10.0.1 version: 10.0.1 '@types/node': - specifier: ^20.2.3 - version: 20.2.3 + specifier: ^20.2.5 + version: 20.2.5 '@types/semver': specifier: ^7.5.0 version: 7.5.0 @@ -125,7 +132,7 @@ devDependencies: version: 8.41.0 eslint-config-canonical: specifier: ~41.0.4 - version: 41.0.4(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.2.3)(eslint@8.41.0)(graphql@16.6.0)(typescript@5.0.4) + version: 41.0.4(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.2.5)(eslint@8.41.0)(graphql@16.6.0)(typescript@5.0.4) espree: specifier: ^9.5.2 version: 9.5.2 @@ -1563,7 +1570,7 @@ packages: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true - /@graphql-eslint/eslint-plugin@3.18.0(@babel/core@7.21.8)(@types/node@20.2.3)(graphql@16.6.0): + /@graphql-eslint/eslint-plugin@3.18.0(@babel/core@7.21.8)(@types/node@20.2.5)(graphql@16.6.0): resolution: {integrity: sha512-riEEfRycc0+pWxcEWqHi8woRxzg1xZqAfh9DRACJUR7bTN8dmc1N04i7+pvW4sevClUFYC2wuL1Vtr+DwzXLUg==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -1576,7 +1583,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.2.12 graphql: 16.6.0 - graphql-config: 4.5.0(@types/node@20.2.3)(graphql@16.6.0) + graphql-config: 4.5.0(@types/node@20.2.5)(graphql@16.6.0) graphql-depth-limit: 1.1.0(graphql@16.6.0) lodash.lowercase: 4.3.0 tslib: 2.5.0 @@ -1651,7 +1658,7 @@ packages: - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.10(@types/node@20.2.3)(graphql@16.6.0): + /@graphql-tools/executor-http@0.1.10(@types/node@20.2.5)(graphql@16.6.0): resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1662,7 +1669,7 @@ packages: dset: 3.1.2 extract-files: 11.0.0 graphql: 16.6.0 - meros: 1.2.1(@types/node@20.2.3) + meros: 1.2.1(@types/node@20.2.5) tslib: 2.5.0 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -1785,7 +1792,7 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.2.3)(graphql@16.6.0): + /@graphql-tools/url-loader@7.17.18(@types/node@20.2.5)(graphql@16.6.0): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1793,7 +1800,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 9.0.35(graphql@16.6.0) '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.6.0) - '@graphql-tools/executor-http': 0.1.10(@types/node@20.2.3)(graphql@16.6.0) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.2.5)(graphql@16.6.0) '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.6.0) '@graphql-tools/utils': 9.2.1(graphql@16.6.0) '@graphql-tools/wrap': 9.4.2(graphql@16.6.0) @@ -2341,8 +2348,8 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node@20.2.3: - resolution: {integrity: sha512-pg9d0yC4rVNWQzX8U7xb4olIOFuuVL9za3bzMT2pu2SU0SNEi66i2qrvhE2qt0HvkhuCaWJu7pLNOt/Pj8BIrw==} + /@types/node@20.2.5: + resolution: {integrity: sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==} dev: true /@types/normalize-package-data@2.4.1: @@ -2364,7 +2371,7 @@ packages: /@types/ws@8.5.4: resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: - '@types/node': 20.2.3 + '@types/node': 20.2.5 dev: true /@typescript-eslint/eslint-plugin@5.59.5(@typescript-eslint/parser@5.59.6)(eslint@8.41.0)(typescript@5.0.4): @@ -3111,7 +3118,6 @@ packages: /builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} - dev: true /bundle-name@3.0.0: resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} @@ -4161,7 +4167,7 @@ packages: lodash.zip: 4.2.0 dev: true - /eslint-config-canonical@41.0.4(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.2.3)(eslint@8.41.0)(graphql@16.6.0)(typescript@5.0.4): + /eslint-config-canonical@41.0.4(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.2.5)(eslint@8.41.0)(graphql@16.6.0)(typescript@5.0.4): resolution: {integrity: sha512-2wRKw0VsBzP+GyWMMy0cuNkEs3NI5mWNk83rHAXZtkBA72AUanQw+ufoGhN0Uso4OiH0tb+Mj0kQkPDnr0DTbg==} engines: {node: '>=16.0.0'} peerDependencies: @@ -4171,7 +4177,7 @@ packages: '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.41.0) '@babel/eslint-plugin': 7.19.1(@babel/eslint-parser@7.21.8)(eslint@8.41.0) '@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.21.8) - '@graphql-eslint/eslint-plugin': 3.18.0(@babel/core@7.21.8)(@types/node@20.2.3)(graphql@16.6.0) + '@graphql-eslint/eslint-plugin': 3.18.0(@babel/core@7.21.8)(@types/node@20.2.5)(graphql@16.6.0) '@next/eslint-plugin-next': 13.4.2 '@rushstack/eslint-patch': 1.2.0 '@typescript-eslint/eslint-plugin': 5.59.5(@typescript-eslint/parser@5.59.6)(eslint@8.41.0)(typescript@5.0.4) @@ -5530,7 +5536,7 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql-config@4.5.0(@types/node@20.2.3)(graphql@16.6.0): + /graphql-config@4.5.0(@types/node@20.2.5)(graphql@16.6.0): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -5544,7 +5550,7 @@ packages: '@graphql-tools/json-file-loader': 7.4.18(graphql@16.6.0) '@graphql-tools/load': 7.8.14(graphql@16.6.0) '@graphql-tools/merge': 8.4.2(graphql@16.6.0) - '@graphql-tools/url-loader': 7.17.18(@types/node@20.2.3)(graphql@16.6.0) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.2.5)(graphql@16.6.0) '@graphql-tools/utils': 9.2.1(graphql@16.6.0) cosmiconfig: 8.0.0 graphql: 16.6.0 @@ -5975,7 +5981,6 @@ packages: engines: {node: '>=6'} dependencies: builtin-modules: 3.3.0 - dev: true /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} @@ -6989,7 +6994,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.2.1(@types/node@20.2.3): + /meros@1.2.1(@types/node@20.2.5): resolution: {integrity: sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g==} engines: {node: '>=13'} peerDependencies: @@ -6998,7 +7003,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.2.3 + '@types/node': 20.2.5 dev: true /micro-spelling-correcter@1.1.1: diff --git a/src/rules/importsAsDependencies.js b/src/rules/importsAsDependencies.js index 44630e954..be843d087 100644 --- a/src/rules/importsAsDependencies.js +++ b/src/rules/importsAsDependencies.js @@ -7,6 +7,7 @@ import { import { readFileSync, } from 'fs'; +import isBuiltinModule from 'is-builtin-module'; import { join, } from 'path'; @@ -71,7 +72,11 @@ export default iterateJsdoc(({ return; } - if (!moduleCheck.has(mod)) { + if (isBuiltinModule(mod)) { + // mod = '@types/node'; + // moduleCheck.set(mod, !deps.has(mod)); + return; + } else if (!moduleCheck.has(mod)) { let pkg; try { pkg = JSON.parse( diff --git a/test/rules/assertions/importsAsDependencies.js b/test/rules/assertions/importsAsDependencies.js index 86e3b8418..6090b5d2d 100644 --- a/test/rules/assertions/importsAsDependencies.js +++ b/test/rules/assertions/importsAsDependencies.js @@ -116,5 +116,26 @@ export default { */ `, }, + { + code: ` + /** + * @type {null|import('fs').PathLike} + */ + `, + }, + { + code: ` + /** + * @type {null|import('fs/promises').FileHandle} + */ + `, + }, + { + code: ` + /** + * @type {null|import('node:fs').PathLike} + */ + `, + }, ], }; From 3a5dd7d9f67fc01ec848758443c04da29d45327b Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 7 Jun 2023 03:09:57 -0700 Subject: [PATCH 109/273] fix(`imports-as-dependencies`): do not log missing package.json when rule is not active; fixes #1117 --- src/rules/importsAsDependencies.js | 62 +++++++++++++++++++----------- 1 file changed, 39 insertions(+), 23 deletions(-) diff --git a/src/rules/importsAsDependencies.js b/src/rules/importsAsDependencies.js index be843d087..b5554e3e0 100644 --- a/src/rules/importsAsDependencies.js +++ b/src/rules/importsAsDependencies.js @@ -13,30 +13,35 @@ import { } from 'path'; /** - * @type {Set} + * @type {Set|null} */ let deps; -try { - const pkg = JSON.parse( - // @ts-expect-error It's ok - readFileSync(join(process.cwd(), './package.json')), - ); - deps = new Set([ - ...(pkg.dependencies ? - Object.keys(pkg.dependencies) : - // istanbul ignore next - []), - ...(pkg.devDependencies ? - Object.keys(pkg.devDependencies) : - // istanbul ignore next - []), - ]); -} catch (error) { - /* eslint-disable no-console -- Inform user */ - // istanbul ignore next - console.log(error); - /* eslint-enable no-console -- Inform user */ -} + +const setDeps = function () { + try { + const pkg = JSON.parse( + // @ts-expect-error It's ok + readFileSync(join(process.cwd(), './package.json')), + ); + deps = new Set([ + ...(pkg.dependencies ? + Object.keys(pkg.dependencies) : + // istanbul ignore next + []), + ...(pkg.devDependencies ? + Object.keys(pkg.devDependencies) : + // istanbul ignore next + []), + ]); + } catch (error) { + // istanbul ignore next -- our package.json exists + deps = null; + /* eslint-disable no-console -- Inform user */ + // istanbul ignore next -- our package.json exists + console.log(error); + /* eslint-enable no-console -- Inform user */ + } +}; const moduleCheck = new Map(); @@ -46,7 +51,12 @@ export default iterateJsdoc(({ utils, }) => { // istanbul ignore if - if (!deps) { + if (deps === undefined) { + setDeps(); + } + + // istanbul ignore if -- our package.json exists + if (deps === null) { return; } @@ -62,7 +72,13 @@ export default iterateJsdoc(({ continue; } + // eslint-disable-next-line no-loop-func -- Safe traverse(typeAst, (nde) => { + // istanbul ignore if -- TS guard + if (deps === null) { + return; + } + if (nde.type === 'JsdocTypeImport') { let mod = nde.element.value.replace( /^(@[^/]+\/[^/]+|[^/]+).*$/u, '$1', From 1b9d9e4c85c30112813d4d6cfe8b4c9825956c22 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 1 Jun 2023 06:45:02 -0700 Subject: [PATCH 110/273] feat(`match-description`): ensure `@desc` checked by default; check more desc-like tags by default; check non-empty tags; #233 --- .README/rules/match-description.md | 27 +++++++- docs/rules/match-description.md | 53 +++++++++++---- src/iterateJsdoc.js | 2 +- src/jsdocUtils.js | 6 +- src/rules/matchDescription.js | 60 ++++++++++++++--- test/rules/assertions/matchDescription.js | 80 +++++++++-------------- 6 files changed, 150 insertions(+), 78 deletions(-) diff --git a/.README/rules/match-description.md b/.README/rules/match-description.md index e829014ed..33108fc82 100644 --- a/.README/rules/match-description.md +++ b/.README/rules/match-description.md @@ -10,8 +10,14 @@ by our supported Node versions): ``^\n?([A-Z`\\d_][\\s\\S]*[.?!`]\\s*)?$`` -Applies to the jsdoc block description and `@description` (or `@desc`) -by default but the `tags` option (see below) may be used to match other tags. +Applies by default to the jsdoc block description and to the following tags: + +- `@description`/`@desc` +- `@summary` +- `@file`/`@fileoverview`/`@overview` +- `@classdesc` + +In addition, the `tags` option (see below) may be used to match other tags. The default (and all regex options) defaults to using (only) the `u` flag, so to add your own flags, encapsulate your expression as a string, but like a @@ -54,6 +60,21 @@ You may provide a custom default message by using the following format: This can be overridden per tag or for the main block description by setting `message` within `tags` or `mainDescription`, respectively. +### `nonemptyTags` + +If not set to `false`, will enforce that the following tags have at least +some content: + +- `@copyright` +- `@example` +- `@see` +- `@todo` +- `@throws`/`@exception` +- `@yields`/`@yield` + +If you supply your own tag description for any of the above tags in `tags`, +your description will take precedence. + ### `tags` If you want different regular expressions to apply to tags, you may use @@ -161,7 +182,7 @@ section of our README for more on the expected format. |Aliases|`@desc`| |Recommended|false| |Settings|| -|Options|`contexts`, `mainDescription`, `matchDescription`, `message`, `tags`| +|Options|`contexts`, `mainDescription`, `matchDescription`, `message`, `nonemptyTags`, `tags`| ## Failing examples diff --git a/docs/rules/match-description.md b/docs/rules/match-description.md index 1f198523d..a2f02187b 100644 --- a/docs/rules/match-description.md +++ b/docs/rules/match-description.md @@ -5,6 +5,7 @@ * [Options](#user-content-match-description-options) * [`matchDescription`](#user-content-match-description-options-matchdescription) * [`message`](#user-content-match-description-options-message) + * [`nonemptyTags`](#user-content-match-description-options-nonemptytags) * [`tags`](#user-content-match-description-options-tags) * [`mainDescription`](#user-content-match-description-options-maindescription) * [`contexts`](#user-content-match-description-options-contexts) @@ -21,8 +22,14 @@ by our supported Node versions): ``^\n?([A-Z`\\d_][\\s\\S]*[.?!`]\\s*)?$`` -Applies to the jsdoc block description and `@description` (or `@desc`) -by default but the `tags` option (see below) may be used to match other tags. +Applies by default to the jsdoc block description and to the following tags: + +- `@description`/`@desc` +- `@summary` +- `@file`/`@fileoverview`/`@overview` +- `@classdesc` + +In addition, the `tags` option (see below) may be used to match other tags. The default (and all regex options) defaults to using (only) the `u` flag, so to add your own flags, encapsulate your expression as a string, but like a @@ -71,6 +78,23 @@ You may provide a custom default message by using the following format: This can be overridden per tag or for the main block description by setting `message` within `tags` or `mainDescription`, respectively. + + +### nonemptyTags + +If not set to `false`, will enforce that the following tags have at least +some content: + +- `@copyright` +- `@example` +- `@see` +- `@todo` +- `@throws`/`@exception` +- `@yields`/`@yield` + +If you supply your own tag description for any of the above tags in `tags`, +your description will take precedence. + ### tags @@ -186,7 +210,7 @@ section of our README for more on the expected format. |Aliases|`@desc`| |Recommended|false| |Settings|| -|Options|`contexts`, `mainDescription`, `matchDescription`, `message`, `tags`| +|Options|`contexts`, `mainDescription`, `matchDescription`, `message`, `nonemptyTags`, `tags`| @@ -335,7 +359,6 @@ function quux (foo) { function quux () { } -// "jsdoc/match-description": ["error"|"warn", {"tags":{"summary":true}}] // Message: JSDoc description does not satisfy the regex pattern. /** @@ -368,7 +391,6 @@ function quux () { function quux (foo) { } -// "jsdoc/match-description": ["error"|"warn", {"tags":{"description":true}}] // Message: JSDoc description does not satisfy the regex pattern. /** @@ -602,6 +624,13 @@ function quux () { function foo(): string; // "jsdoc/match-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[endLine=0]"}],"matchDescription":"^\\S[\\s\\S]*\\S$"}] // Message: JSDoc description does not satisfy the regex pattern. + +/** + * @copyright + */ +function quux () { +} +// Message: JSDoc description must not be empty. ```` @@ -722,7 +751,6 @@ function quux () { function quux () { } -// "jsdoc/match-description": ["error"|"warn", {"tags":{"description":true}}] /** * @description Foo @@ -732,13 +760,11 @@ function quux () { function quux () { } -// "jsdoc/match-description": ["error"|"warn", {"tags":{"description":true}}] /** @description Foo bar. */ function quux () { } -// "jsdoc/match-description": ["error"|"warn", {"tags":{"description":true}}] /** * @description Foo @@ -747,7 +773,6 @@ function quux () { function quux () { } -// "jsdoc/match-description": ["error"|"warn", {"tags":{"description":true}}] /** * Foo. {@see Math.sin}. @@ -872,7 +897,7 @@ const q = { // "jsdoc/match-description": ["error"|"warn", {"contexts":[]}] /** - * @description foo. + * @deprecated foo. */ function quux () { @@ -887,7 +912,6 @@ function quux () { function quux () { } -// "jsdoc/match-description": ["error"|"warn", {"tags":{"summary":true}}] /** * Foo. @@ -975,5 +999,12 @@ function foo(): string; */ function foo(): void; // "jsdoc/match-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[endLine!=0]:not(:has(JsdocTag))"}],"matchDescription":"^\\S[\\s\\S]*\\S$"}] + +/** + * @copyright + */ +function quux () { +} +// "jsdoc/match-description": ["error"|"warn", {"nonemptyTags":false}] ```` diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index f32690e3e..e6a57ec44 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -1644,7 +1644,7 @@ const getUtils = ( /** @type {GetTagsByType} */ utils.getTagsByType = (tags) => { - return jsdocUtils.getTagsByType(context, mode, tags, tagNamePreference); + return jsdocUtils.getTagsByType(context, mode, tags); }; /** @type {HasOptionTag} */ diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index 49fbcd7c7..10a9f6a98 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -1422,14 +1422,12 @@ const tagsWithNamesAndDescriptions = new Set([ * @param {import('eslint').Rule.RuleContext} context * @param {ParserMode|undefined} mode * @param {import('comment-parser').Spec[]} tags - * @param {TagNamePreference} tagPreference * @returns {{ * tagsWithNames: import('comment-parser').Spec[], * tagsWithoutNames: import('comment-parser').Spec[] * }} */ -const getTagsByType = (context, mode, tags, tagPreference) => { - const descName = getPreferredTagName(context, mode, 'description', tagPreference); +const getTagsByType = (context, mode, tags) => { /** * @type {import('comment-parser').Spec[]} */ @@ -1439,7 +1437,7 @@ const getTagsByType = (context, mode, tags, tagPreference) => { tag: tagName, } = tag; const tagWithName = tagsWithNamesAndDescriptions.has(tagName); - if (!tagWithName && tagName !== descName) { + if (!tagWithName) { tagsWithoutNames.push(tag); } diff --git a/src/rules/matchDescription.js b/src/rules/matchDescription.js index 0f1a181c0..3205d7655 100644 --- a/src/rules/matchDescription.js +++ b/src/rules/matchDescription.js @@ -25,7 +25,8 @@ export default iterateJsdoc(({ mainDescription, matchDescription, message, - tags, + nonemptyTags = true, + tags = {}, } = context.options[0] || {}; /** @@ -81,7 +82,52 @@ export default iterateJsdoc(({ validateDescription(description); } - if (!tags || !Object.keys(tags).length) { + /** + * @param {string} tagName + * @returns {boolean} + */ + const hasNoTag = (tagName) => { + return !tags[tagName]; + }; + + for (const tag of [ + 'description', + 'summary', + 'file', + 'classdesc', + ]) { + utils.forEachPreferredTag(tag, (matchingJsdocTag, targetTagName) => { + const desc = (matchingJsdocTag.name + ' ' + utils.getTagDescription(matchingJsdocTag)).trim(); + if (hasNoTag(targetTagName)) { + validateDescription(desc, matchingJsdocTag); + } + }, true); + } + + if (nonemptyTags) { + for (const tag of [ + 'copyright', + 'example', + 'see', + 'throws', + 'todo', + 'yields', + ]) { + utils.forEachPreferredTag(tag, (matchingJsdocTag, targetTagName) => { + const desc = (matchingJsdocTag.name + ' ' + utils.getTagDescription(matchingJsdocTag)).trim(); + + if (hasNoTag(targetTagName) && !(/.+/u).test(desc)) { + report( + 'JSDoc description must not be empty.', + null, + matchingJsdocTag, + ); + } + }); + } + } + + if (!Object.keys(tags).length) { return; } @@ -93,13 +139,6 @@ export default iterateJsdoc(({ return Boolean(tags[tagName]); }; - utils.forEachPreferredTag('description', (matchingJsdocTag, targetTagName) => { - const desc = (matchingJsdocTag.name + ' ' + utils.getTagDescription(matchingJsdocTag)).trim(); - if (hasOptionTag(targetTagName)) { - validateDescription(desc, matchingJsdocTag); - } - }, true); - const whitelistedTags = utils.filterTags(({ tag: tagName, }) => { @@ -195,6 +234,9 @@ export default iterateJsdoc(({ message: { type: 'string', }, + nonemptyTags: { + type: 'boolean', + }, tags: { patternProperties: { '.*': { diff --git a/test/rules/assertions/matchDescription.js b/test/rules/assertions/matchDescription.js index d25817cc2..776dedb62 100644 --- a/test/rules/assertions/matchDescription.js +++ b/test/rules/assertions/matchDescription.js @@ -344,13 +344,6 @@ export default { message: 'JSDoc description does not satisfy the regex pattern.', }, ], - options: [ - { - tags: { - summary: true, - }, - }, - ], }, { code: ` @@ -419,13 +412,6 @@ export default { message: 'JSDoc description does not satisfy the regex pattern.', }, ], - options: [ - { - tags: { - description: true, - }, - }, - ], }, { code: ` @@ -1001,6 +987,21 @@ export default { ], parser: require.resolve('@typescript-eslint/parser'), }, + { + code: ` + /** + * @copyright + */ + function quux () { + } + `, + errors: [ + { + line: 3, + message: 'JSDoc description must not be empty.', + }, + ], + }, ], valid: [ { @@ -1192,13 +1193,6 @@ export default { } `, - options: [ - { - tags: { - description: true, - }, - }, - ], }, { code: ` @@ -1211,13 +1205,6 @@ export default { } `, - options: [ - { - tags: { - description: true, - }, - }, - ], }, { code: ` @@ -1226,13 +1213,6 @@ export default { } `, - options: [ - { - tags: { - description: true, - }, - }, - ], }, { code: ` @@ -1244,13 +1224,6 @@ export default { } `, - options: [ - { - tags: { - description: true, - }, - }, - ], }, { code: ` @@ -1456,7 +1429,7 @@ export default { { code: ` /** - * @description foo. + * @deprecated foo. */ function quux () { @@ -1481,13 +1454,6 @@ export default { } `, - options: [ - { - tags: { - summary: true, - }, - }, - ], }, { code: ` @@ -1697,5 +1663,19 @@ export default { ], parser: require.resolve('@typescript-eslint/parser'), }, + { + code: ` + /** + * @copyright + */ + function quux () { + } + `, + options: [ + { + nonemptyTags: false, + }, + ], + }, ], }; From 42a97c8012fb32bb1adcfa4440008791f0b774f4 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 2 Jun 2023 09:13:17 -0700 Subject: [PATCH 111/273] docs(`require-description`): clarify --- .README/rules/require-description.md | 3 ++- docs/rules/require-description.md | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.README/rules/require-description.md b/.README/rules/require-description.md index 0582936cd..af9337d4c 100644 --- a/.README/rules/require-description.md +++ b/.README/rules/require-description.md @@ -2,7 +2,8 @@ {"gitdown": "contents", "rootId": "require-description"} -Requires that all functions have a description. +Requires that all functions (or optionally other structures) with a JSDoc block +have a description. * All functions must have an implicit description (e.g., text above tags) or have the option `descriptionStyle` set to `tag` (requiring `@description` diff --git a/docs/rules/require-description.md b/docs/rules/require-description.md index 7a344a453..7d2143da1 100644 --- a/docs/rules/require-description.md +++ b/docs/rules/require-description.md @@ -8,7 +8,8 @@ * [Passing examples](#user-content-require-description-passing-examples) -Requires that all functions have a description. +Requires that all functions (or optionally other structures) with a JSDoc block +have a description. * All functions must have an implicit description (e.g., text above tags) or have the option `descriptionStyle` set to `tag` (requiring `@description` From 10080473bc6b861d900e1f88d035787c03b6c191 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 2 Jun 2023 09:13:41 -0700 Subject: [PATCH 112/273] docs(`no-restricted-syntax`): require access modifiers example --- docs/rules/no-restricted-syntax.md | 6 ++++++ test/rules/assertions/noRestrictedSyntax.js | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/docs/rules/no-restricted-syntax.md b/docs/rules/no-restricted-syntax.md index e4622248f..d8f7ec248 100644 --- a/docs/rules/no-restricted-syntax.md +++ b/docs/rules/no-restricted-syntax.md @@ -373,5 +373,11 @@ class Test { abstract Test(): void; } // "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(*:has(JsdocTag[tag=/returns/]))","context":"TSEmptyBodyFunctionExpression[returnType.typeAnnotation.type!=/TSVoidKeyword|TSUndefinedKeyword/]","message":"methods with non-void return types must have a @returns tag"}]}] + +/** + * @private + */ +function quux () {} +// "jsdoc/no-restricted-syntax": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:not(JsdocBlock:has(JsdocTag[tag=/private|protected|public/]))","context":"any","message":"Access modifier tags must be present"}]}] ```` diff --git a/test/rules/assertions/noRestrictedSyntax.js b/test/rules/assertions/noRestrictedSyntax.js index d49395e75..459d1905e 100644 --- a/test/rules/assertions/noRestrictedSyntax.js +++ b/test/rules/assertions/noRestrictedSyntax.js @@ -1042,5 +1042,24 @@ export default { ], parser: require.resolve('@typescript-eslint/parser'), }, + { + code: ` + /** + * @private + */ + function quux () {} + `, + options: [ + { + contexts: [ + { + comment: 'JsdocBlock:not(JsdocBlock:has(JsdocTag[tag=/private|protected|public/]))', + context: 'any', + message: 'Access modifier tags must be present', + }, + ], + }, + ], + }, ], }; From 467441b4d0593a8c43bd7527d528507cef057fa1 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 26 Jun 2023 07:17:23 +0800 Subject: [PATCH 113/273] fix: make name required on `@template` for non-JSDoc modes --- src/getDefaultTagStructureForMode.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/getDefaultTagStructureForMode.js b/src/getDefaultTagStructureForMode.js index 5f473b59b..44cd80ce9 100644 --- a/src/getDefaultTagStructureForMode.js +++ b/src/getDefaultTagStructureForMode.js @@ -838,6 +838,10 @@ const getDefaultTagStructureForMode = (mode) => { 'namepathRole', isJsdoc ? 'text' : 'namepath-referencing', ], + [ + 'nameRequired', !isJsdoc, + ], + // Though defines `namepathRole: 'namepath-defining'` in a sense, it is // not parseable in the same way for template (e.g., allowing commas), // so not adding From 4afc8e6fa84ae6f5850402237afd2ce25a2fb7cb Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 26 Jun 2023 07:18:24 +0800 Subject: [PATCH 114/273] test: demo checking for empty name --- docs/rules/match-name.md | 6 ++++++ test/rules/assertions/matchName.js | 25 +++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/docs/rules/match-name.md b/docs/rules/match-name.md index c5fe1abce..fd25834f5 100644 --- a/docs/rules/match-name.md +++ b/docs/rules/match-name.md @@ -178,6 +178,12 @@ function quux () {} */ // "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^opt_/i","replacement":""}]}] // Message: Only allowing names not matching `/^opt_/i` but found "opt_a". + +/** + * @template + */ +// "jsdoc/match-name": ["error"|"warn", {"match":[{"disallowName":"/^$/","tags":["template"]}]}] +// Message: Only allowing names not matching `/^$/u` but found "". ```` diff --git a/test/rules/assertions/matchName.js b/test/rules/assertions/matchName.js index 8c933da70..9cc7eec58 100644 --- a/test/rules/assertions/matchName.js +++ b/test/rules/assertions/matchName.js @@ -357,6 +357,31 @@ export default { */ `, }, + { + code: ` + /** + * @template + */ + `, + errors: [ + { + line: 3, + message: 'Only allowing names not matching `/^$/u` but found "".', + }, + ], + options: [ + { + match: [ + { + disallowName: '/^$/', + tags: [ + 'template', + ], + }, + ], + }, + ], + }, ], valid: [ { From 42c713ed3b097c1449dce67e718a1770660cd681 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 26 Jun 2023 08:04:33 +0800 Subject: [PATCH 115/273] feat(`valid-types`): check `link` and `tutorial` for content; #233 --- docs/rules/valid-types.md | 27 +++++++++++++ src/jsdocUtils.js | 2 +- src/rules/validTypes.js | 17 ++++++++ test/rules/assertions/validTypes.js | 60 +++++++++++++++++++++++++++++ 4 files changed, 105 insertions(+), 1 deletion(-) diff --git a/docs/rules/valid-types.md b/docs/rules/valid-types.md index 8c88d81d5..5b0f61cfa 100644 --- a/docs/rules/valid-types.md +++ b/docs/rules/valid-types.md @@ -487,6 +487,21 @@ function quux (items) { } // Settings: {"jsdoc":{"mode":"typescript"}} // Message: Syntax error in type: JsdocTypeNullable + +/** + * An inline {@link} tag without content. + */ +// Message: Inline tag "link" missing content + +/** + * An inline {@tutorial} tag without content. + */ +// Message: Inline tag "tutorial" missing content + +/** + * @param {SomeType} aName An inline {@link} tag without content. + */ +// Message: Inline tag "link" missing content ```` @@ -850,5 +865,17 @@ function quux() { /** * @returns {Promise<{publicKey, privateKey}>} - The public and private key */ + +/** + * Some other {@inline} tag. + */ + +/** + * @param {SomeType} aName An inline {@link text} tag with content. + */ + +/** + * An inline {@link text} tag with content. + */ ```` diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index 10a9f6a98..89d186ebb 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -483,7 +483,7 @@ const hasParams = (functionNode) => { /** * Gets all names of the target type, including those that refer to a path, e.g. - * "@param foo; @param foo.bar". + * `foo` or `foo.bar`. * @param {import('comment-parser').Block} jsdoc * @param {string} targetTagName * @returns {{ diff --git a/src/rules/validTypes.js b/src/rules/validTypes.js index 702ceccea..c3df2edcb 100644 --- a/src/rules/validTypes.js +++ b/src/rules/validTypes.js @@ -5,6 +5,11 @@ import { tryParse, } from '@es-joy/jsdoccomment'; +const inlineTags = new Set([ + 'link', 'linkcode', 'linkplain', + 'tutorial', +]); + const asExpression = /as\s+/u; const suppressTypes = new Set([ @@ -327,6 +332,18 @@ export default iterateJsdoc(({ validNamepathParsing(tag.name, tag.tag); } } + + for (const inlineTag of tag.inlineTags) { + if (inlineTags.has(inlineTag.tag) && !inlineTag.text && !inlineTag.namepathOrURL) { + report(`Inline tag "${inlineTag.tag}" missing content`, null, tag); + } + } + } + + for (const inlineTag of jsdoc.inlineTags) { + if (inlineTags.has(inlineTag.tag) && !inlineTag.text && !inlineTag.namepathOrURL) { + report(`Inline tag "${inlineTag.tag}" missing content`); + } } }, { iterateAllJsdocs: true, diff --git a/test/rules/assertions/validTypes.js b/test/rules/assertions/validTypes.js index d7b12db92..fe605976b 100644 --- a/test/rules/assertions/validTypes.js +++ b/test/rules/assertions/validTypes.js @@ -1102,6 +1102,45 @@ export default { }, }, }, + { + code: ` + /** + * An inline {@link} tag without content. + */ + `, + errors: [ + { + line: 2, + message: 'Inline tag "link" missing content', + }, + ], + }, + { + code: ` + /** + * An inline {@tutorial} tag without content. + */ + `, + errors: [ + { + line: 2, + message: 'Inline tag "tutorial" missing content', + }, + ], + }, + { + code: ` + /** + * @param {SomeType} aName An inline {@link} tag without content. + */ + `, + errors: [ + { + line: 3, + message: 'Inline tag "link" missing content', + }, + ], + }, ], valid: [ { @@ -1790,5 +1829,26 @@ export default { */ `, }, + { + code: ` + /** + * Some other {@inline} tag. + */ + `, + }, + { + code: ` + /** + * @param {SomeType} aName An inline {@link text} tag with content. + */ + `, + }, + { + code: ` + /** + * An inline {@link text} tag with content. + */ + `, + }, ], }; From 1886b362193f859f02684d74b75f99a3f53097a2 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 26 Jun 2023 08:11:22 +0800 Subject: [PATCH 116/273] refactor: use `NodeNext` --- tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tsconfig.json b/tsconfig.json index 49dffe62a..19913bf21 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "lib": ["es2022"], "moduleResolution": "node", - "module": "esnext", + "module": "NodeNext", "allowJs": true, "checkJs": true, "noEmit": true, From 1e45ae435d837607d54c01888e40e769164856a7 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 29 Jun 2023 06:31:56 +0800 Subject: [PATCH 117/273] fix(`require-jsdoc`): do not report `PropertyDefinition`'s with non-public `accessibility`; fixes #1122 --- docs/rules/require-jsdoc.md | 13 ++++++++ src/exportParser.js | 7 +++++ test/rules/assertions/requireJsdoc.js | 44 +++++++++++++++++++++++++++ 3 files changed, 64 insertions(+) diff --git a/docs/rules/require-jsdoc.md b/docs/rules/require-jsdoc.md index 22f8b480f..2bff0583e 100644 --- a/docs/rules/require-jsdoc.md +++ b/docs/rules/require-jsdoc.md @@ -990,6 +990,19 @@ class A { } // "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[{"context":"MethodDefinition","minLineCount":3}],"require":{"ClassDeclaration":false,"FunctionExpression":false,"MethodDefinition":false}}] // Message: Missing JSDoc comment. + +export class MyClass { + + public myPublicProperty: number = 1; + /* ^ Missing JSDoc comment. eslint(jsdoc/require-jsdoc) - expected ✅ */ + + private myPrivateProp: number = -1; + /* ^ Missing JSDoc comment. eslint(jsdoc/require-jsdoc) - unexpected ❌ */ + + // ... +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["PropertyDefinition"],"publicOnly":true}] +// Message: Missing JSDoc comment. ```` diff --git a/src/exportParser.js b/src/exportParser.js index 45f81d3ee..523cdaaab 100644 --- a/src/exportParser.js +++ b/src/exportParser.js @@ -905,6 +905,13 @@ const isUncommentedExport = function (node, sourceCode, opt, settings) { // console.log({node}); // Optimize with ancestor check for esm if (opt.esm) { + if ( + node.type === 'PropertyDefinition' && 'accessibility' in node && + node.accessibility !== 'public' + ) { + return false; + } + const exportNode = getExportAncestor(node); // Is export node comment diff --git a/test/rules/assertions/requireJsdoc.js b/test/rules/assertions/requireJsdoc.js index e4de29a6a..af6c75c59 100644 --- a/test/rules/assertions/requireJsdoc.js +++ b/test/rules/assertions/requireJsdoc.js @@ -4081,6 +4081,50 @@ function quux (foo) { `, parser: require.resolve('@typescript-eslint/parser'), }, + { + code: ` + export class MyClass { + + public myPublicProperty: number = 1; + /* ^ Missing JSDoc comment. eslint(jsdoc/require-jsdoc) - expected ✅ */ + + private myPrivateProp: number = -1; + /* ^ Missing JSDoc comment. eslint(jsdoc/require-jsdoc) - unexpected ❌ */ + + // ... + } + `, + errors: [ + { + line: 4, + message: 'Missing JSDoc comment.', + }, + ], + options: [ + { + contexts: [ + 'PropertyDefinition', + ], + publicOnly: true, + }, + ], + output: ` + export class MyClass { + + /** + * + */ + public myPublicProperty: number = 1; + /* ^ Missing JSDoc comment. eslint(jsdoc/require-jsdoc) - expected ✅ */ + + private myPrivateProp: number = -1; + /* ^ Missing JSDoc comment. eslint(jsdoc/require-jsdoc) - unexpected ❌ */ + + // ... + } + `, + parser: require.resolve('@typescript-eslint/parser'), + }, ], valid: [ { From 00922c3a7c98805ab499754c5d770380e6597aa1 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 29 Jun 2023 07:26:42 +0800 Subject: [PATCH 118/273] fix(`require-jsdoc`): do not report `MethodDefinition` with non-public `accessibility`; fixes #1124 --- docs/rules/require-jsdoc.md | 11 ++++++++-- src/exportParser.js | 21 +++++++++++++++---- test/rules/assertions/requireJsdoc.js | 30 +++++++++++++++++++++++++-- 3 files changed, 54 insertions(+), 8 deletions(-) diff --git a/docs/rules/require-jsdoc.md b/docs/rules/require-jsdoc.md index 2bff0583e..2c6868162 100644 --- a/docs/rules/require-jsdoc.md +++ b/docs/rules/require-jsdoc.md @@ -639,7 +639,7 @@ export default class Test { this.a = a; } } -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["MethodDefinition:not([accessibility=\"private\"]) > FunctionExpression"],"publicOnly":true,"require":{"ArrowFunctionExpression":false,"ClassDeclaration":false,"ClassExpression":false,"FunctionDeclaration":false,"FunctionExpression":false,"MethodDefinition":false}}] +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["MethodDefinition > FunctionExpression"],"publicOnly":true,"require":{"ArrowFunctionExpression":false,"ClassDeclaration":false,"ClassExpression":false,"FunctionDeclaration":false,"FunctionExpression":false,"MethodDefinition":false}}] // Message: Missing JSDoc comment. e = function () { @@ -1675,7 +1675,7 @@ export default class Test { this.a = a; } } -// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["MethodDefinition:not([accessibility=\"private\"]) > FunctionExpression"],"publicOnly":true,"require":{"ArrowFunctionExpression":false,"ClassDeclaration":false,"ClassExpression":false,"FunctionDeclaration":false,"FunctionExpression":false,"MethodDefinition":false}}] +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["MethodDefinition > FunctionExpression"],"publicOnly":true,"require":{"ArrowFunctionExpression":false,"ClassDeclaration":false,"ClassExpression":false,"FunctionDeclaration":false,"FunctionExpression":false,"MethodDefinition":false}}] /** * Basic application controller. @@ -1846,5 +1846,12 @@ class A { } } // "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[{"context":"MethodDefinition","minLineCount":4}],"require":{"ClassDeclaration":false,"FunctionExpression":false,"MethodDefinition":false}}] + +export default class Test { + private abc(a) { + this.a = a; + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ArrowFunctionExpression":false,"ClassDeclaration":false,"ClassExpression":false,"FunctionDeclaration":false,"FunctionExpression":false,"MethodDefinition":true}}] ```` diff --git a/src/exportParser.js b/src/exportParser.js index 523cdaaab..5bcef3764 100644 --- a/src/exportParser.js +++ b/src/exportParser.js @@ -893,6 +893,21 @@ const parse = function (ast, node, opt) { }; }; +const accessibilityNodes = new Set([ + 'PropertyDefinition', + 'MethodDefinition', +]); + +/** + * + * @param {import('eslint').Rule.Node} node + * @returns {boolean} + */ +const hasAccessibility = (node) => { + return accessibilityNodes.has(node.type) && 'accessibility' in node && + node.accessibility !== 'public'; +}; + /** * * @param {import('eslint').Rule.Node} node @@ -905,10 +920,8 @@ const isUncommentedExport = function (node, sourceCode, opt, settings) { // console.log({node}); // Optimize with ancestor check for esm if (opt.esm) { - if ( - node.type === 'PropertyDefinition' && 'accessibility' in node && - node.accessibility !== 'public' - ) { + if (hasAccessibility(node) || + node.parent && hasAccessibility(node.parent)) { return false; } diff --git a/test/rules/assertions/requireJsdoc.js b/test/rules/assertions/requireJsdoc.js index af6c75c59..442d36a0f 100644 --- a/test/rules/assertions/requireJsdoc.js +++ b/test/rules/assertions/requireJsdoc.js @@ -2323,7 +2323,7 @@ function quux (foo) { options: [ { contexts: [ - 'MethodDefinition:not([accessibility="private"]) > FunctionExpression', + 'MethodDefinition > FunctionExpression', ], publicOnly: true, require: { @@ -5629,7 +5629,7 @@ function quux (foo) { options: [ { contexts: [ - 'MethodDefinition:not([accessibility="private"]) > FunctionExpression', + 'MethodDefinition > FunctionExpression', ], publicOnly: true, require: { @@ -6142,5 +6142,31 @@ function quux (foo) { ], parser: require.resolve('@typescript-eslint/parser'), }, + { + code: ` + export default class Test { + private abc(a) { + this.a = a; + } + } + `, + options: [ + { + publicOnly: true, + require: { + ArrowFunctionExpression: false, + ClassDeclaration: false, + ClassExpression: false, + FunctionDeclaration: false, + FunctionExpression: false, + MethodDefinition: true, + }, + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + sourceType: 'module', + }, + }, ], }; From 03578ca582a9c983d610022547d4e581edf8da0f Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 1 Jul 2023 01:32:37 +0800 Subject: [PATCH 119/273] fix(`match-description`): drop `throws` and `yields` from being reported for non-empty descriptions by `nonemptyTags` default; #1126 --- .README/rules/match-description.md | 2 -- docs/rules/match-description.md | 2 -- src/rules/matchDescription.js | 2 -- 3 files changed, 6 deletions(-) diff --git a/.README/rules/match-description.md b/.README/rules/match-description.md index 33108fc82..69c71db9f 100644 --- a/.README/rules/match-description.md +++ b/.README/rules/match-description.md @@ -69,8 +69,6 @@ some content: - `@example` - `@see` - `@todo` -- `@throws`/`@exception` -- `@yields`/`@yield` If you supply your own tag description for any of the above tags in `tags`, your description will take precedence. diff --git a/docs/rules/match-description.md b/docs/rules/match-description.md index a2f02187b..ebbd9beaa 100644 --- a/docs/rules/match-description.md +++ b/docs/rules/match-description.md @@ -89,8 +89,6 @@ some content: - `@example` - `@see` - `@todo` -- `@throws`/`@exception` -- `@yields`/`@yield` If you supply your own tag description for any of the above tags in `tags`, your description will take precedence. diff --git a/src/rules/matchDescription.js b/src/rules/matchDescription.js index 3205d7655..2bb8180b0 100644 --- a/src/rules/matchDescription.js +++ b/src/rules/matchDescription.js @@ -109,9 +109,7 @@ export default iterateJsdoc(({ 'copyright', 'example', 'see', - 'throws', 'todo', - 'yields', ]) { utils.forEachPreferredTag(tag, (matchingJsdocTag, targetTagName) => { const desc = (matchingJsdocTag.name + ' ' + utils.getTagDescription(matchingJsdocTag)).trim(); From 44da8c7e4d87e13c47f649959745fa0ad5c272e4 Mon Sep 17 00:00:00 2001 From: Pete <106313556+peteduel@users.noreply.github.com> Date: Sat, 15 Jul 2023 14:12:08 +0100 Subject: [PATCH 120/273] fix(`no-undefined-types`): add `Awaited` TS utility global (#1132) --- src/rules/noUndefinedTypes.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/rules/noUndefinedTypes.js b/src/rules/noUndefinedTypes.js index 3b613c771..c0fd8125d 100644 --- a/src/rules/noUndefinedTypes.js +++ b/src/rules/noUndefinedTypes.js @@ -19,6 +19,7 @@ const extraTypes = [ const typescriptGlobals = [ // https://www.typescriptlang.org/docs/handbook/utility-types.html + 'Awaited', 'Partial', 'Required', 'Readonly', From 59c689999539a77f0a806dbddb15b3a86d3a4440 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 27 Jul 2023 15:41:47 +0800 Subject: [PATCH 121/273] refactor: use file extensions (as per ESM) (#1135) --- src/bin/generateRule.js | 6 +- src/index.js | 110 +++++++++--------- src/iterateJsdoc.js | 2 +- src/jsdocUtils.js | 8 +- src/rules/checkAccess.js | 2 +- src/rules/checkAlignment.js | 2 +- src/rules/checkExamples.js | 2 +- src/rules/checkIndentation.js | 2 +- src/rules/checkLineAlignment.js | 4 +- src/rules/checkParamNames.js | 2 +- src/rules/checkPropertyNames.js | 2 +- src/rules/checkSyntax.js | 2 +- src/rules/checkTagNames.js | 2 +- src/rules/checkTypes.js | 2 +- src/rules/checkValues.js | 2 +- src/rules/emptyTags.js | 2 +- src/rules/implementsOnClasses.js | 2 +- src/rules/importsAsDependencies.js | 2 +- src/rules/informativeDocs.js | 2 +- src/rules/matchDescription.js | 2 +- src/rules/matchName.js | 2 +- src/rules/multilineBlocks.js | 2 +- src/rules/noBadBlocks.js | 2 +- src/rules/noBlankBlockDescriptions.js | 2 +- src/rules/noBlankBlocks.js | 2 +- src/rules/noDefaults.js | 2 +- src/rules/noMissingSyntax.js | 2 +- src/rules/noMultiAsterisks.js | 2 +- src/rules/noRestrictedSyntax.js | 2 +- src/rules/noTypes.js | 2 +- src/rules/noUndefinedTypes.js | 2 +- src/rules/requireAsteriskPrefix.js | 2 +- src/rules/requireDescription.js | 2 +- .../requireDescriptionCompleteSentence.js | 2 +- src/rules/requireExample.js | 2 +- src/rules/requireFileOverview.js | 2 +- .../requireHyphenBeforeParamDescription.js | 2 +- src/rules/requireJsdoc.js | 6 +- src/rules/requireParam.js | 2 +- src/rules/requireParamDescription.js | 2 +- src/rules/requireParamName.js | 2 +- src/rules/requireParamType.js | 2 +- src/rules/requireProperty.js | 2 +- src/rules/requirePropertyDescription.js | 2 +- src/rules/requirePropertyName.js | 2 +- src/rules/requirePropertyType.js | 2 +- src/rules/requireReturns.js | 2 +- src/rules/requireReturnsCheck.js | 2 +- src/rules/requireReturnsDescription.js | 2 +- src/rules/requireReturnsType.js | 2 +- src/rules/requireThrows.js | 2 +- src/rules/requireYields.js | 2 +- src/rules/requireYieldsCheck.js | 2 +- src/rules/sortTags.js | 4 +- src/rules/tagLines.js | 2 +- src/rules/textEscaping.js | 2 +- src/rules/validTypes.js | 2 +- 57 files changed, 121 insertions(+), 119 deletions(-) diff --git a/src/bin/generateRule.js b/src/bin/generateRule.js index 9db948ec9..3da323523 100644 --- a/src/bin/generateRule.js +++ b/src/bin/generateRule.js @@ -54,7 +54,7 @@ const recommended = options.includes('--recommended'); await fs.writeFile(ruleNamesPath, JSON.stringify(ruleNames, null, 2) + '\n'); console.log('ruleNames', ruleNames); - const ruleTemplate = `import iterateJsdoc from '../iterateJsdoc'; + const ruleTemplate = `import iterateJsdoc from '../iterateJsdoc.js'; export default iterateJsdoc(({ context, @@ -249,9 +249,9 @@ export default iterateJsdoc(({ await replaceInOrder({ checkName: 'index import', - newLine: `import ${camelCasedRuleName} from './rules/${camelCasedRuleName}';`, + newLine: `import ${camelCasedRuleName} from './rules/${camelCasedRuleName}.js';`, oldIsCamel: true, - oldRegex: /\nimport (?[^ ]*) from '.\/rules\/\1';/gu, + oldRegex: /\nimport (?[^ ]*) from '.\/rules\/\1\.js';/gu, path: './src/index.js', }); diff --git a/src/index.js b/src/index.js index 1895b03c5..490fbb611 100644 --- a/src/index.js +++ b/src/index.js @@ -1,59 +1,61 @@ -import checkAccess from './rules/checkAccess'; -import checkAlignment from './rules/checkAlignment'; -import checkExamples from './rules/checkExamples'; -import checkIndentation from './rules/checkIndentation'; -import checkLineAlignment from './rules/checkLineAlignment'; -import checkParamNames from './rules/checkParamNames'; -import checkPropertyNames from './rules/checkPropertyNames'; -import checkSyntax from './rules/checkSyntax'; -import checkTagNames from './rules/checkTagNames'; -import checkTypes from './rules/checkTypes'; -import checkValues from './rules/checkValues'; -import emptyTags from './rules/emptyTags'; -import implementsOnClasses from './rules/implementsOnClasses'; -import importsAsDependencies from './rules/importsAsDependencies'; -import informativeDocs from './rules/informativeDocs'; -import matchDescription from './rules/matchDescription'; -import matchName from './rules/matchName'; -import multilineBlocks from './rules/multilineBlocks'; -import noBadBlocks from './rules/noBadBlocks'; -import noBlankBlockDescriptions from './rules/noBlankBlockDescriptions'; -import noBlankBlocks from './rules/noBlankBlocks'; -import noDefaults from './rules/noDefaults'; -import noMissingSyntax from './rules/noMissingSyntax'; -import noMultiAsterisks from './rules/noMultiAsterisks'; -import noRestrictedSyntax from './rules/noRestrictedSyntax'; -import noTypes from './rules/noTypes'; -import noUndefinedTypes from './rules/noUndefinedTypes'; -import requireAsteriskPrefix from './rules/requireAsteriskPrefix'; -import requireDescription from './rules/requireDescription'; -import requireDescriptionCompleteSentence from './rules/requireDescriptionCompleteSentence'; -import requireExample from './rules/requireExample'; -import requireFileOverview from './rules/requireFileOverview'; -import requireHyphenBeforeParamDescription from './rules/requireHyphenBeforeParamDescription'; -import requireJsdoc from './rules/requireJsdoc'; -import requireParam from './rules/requireParam'; -import requireParamDescription from './rules/requireParamDescription'; -import requireParamName from './rules/requireParamName'; -import requireParamType from './rules/requireParamType'; -import requireProperty from './rules/requireProperty'; -import requirePropertyDescription from './rules/requirePropertyDescription'; -import requirePropertyName from './rules/requirePropertyName'; -import requirePropertyType from './rules/requirePropertyType'; -import requireReturns from './rules/requireReturns'; -import requireReturnsCheck from './rules/requireReturnsCheck'; -import requireReturnsDescription from './rules/requireReturnsDescription'; -import requireReturnsType from './rules/requireReturnsType'; -import requireThrows from './rules/requireThrows'; -import requireYields from './rules/requireYields'; -import requireYieldsCheck from './rules/requireYieldsCheck'; -import sortTags from './rules/sortTags'; -import tagLines from './rules/tagLines'; -import textEscaping from './rules/textEscaping'; -import validTypes from './rules/validTypes'; +import checkAccess from './rules/checkAccess.js'; +import checkAlignment from './rules/checkAlignment.js'; +import checkExamples from './rules/checkExamples.js'; +import checkIndentation from './rules/checkIndentation.js'; +import checkLineAlignment from './rules/checkLineAlignment.js'; +import checkParamNames from './rules/checkParamNames.js'; +import checkPropertyNames from './rules/checkPropertyNames.js'; +import checkSyntax from './rules/checkSyntax.js'; +import checkTagNames from './rules/checkTagNames.js'; +import checkTypes from './rules/checkTypes.js'; +import checkValues from './rules/checkValues.js'; +import emptyTags from './rules/emptyTags.js'; +import implementsOnClasses from './rules/implementsOnClasses.js'; +import importsAsDependencies from './rules/importsAsDependencies.js'; +import informativeDocs from './rules/informativeDocs.js'; +import matchDescription from './rules/matchDescription.js'; +import matchName from './rules/matchName.js'; +import multilineBlocks from './rules/multilineBlocks.js'; +import noBadBlocks from './rules/noBadBlocks.js'; +import noBlankBlockDescriptions from './rules/noBlankBlockDescriptions.js'; +import noBlankBlocks from './rules/noBlankBlocks.js'; +import noDefaults from './rules/noDefaults.js'; +import noMissingSyntax from './rules/noMissingSyntax.js'; +import noMultiAsterisks from './rules/noMultiAsterisks.js'; +import noRestrictedSyntax from './rules/noRestrictedSyntax.js'; +import noTypes from './rules/noTypes.js'; +import noUndefinedTypes from './rules/noUndefinedTypes.js'; +import requireAsteriskPrefix from './rules/requireAsteriskPrefix.js'; +import requireDescription from './rules/requireDescription.js'; +import requireDescriptionCompleteSentence from './rules/requireDescriptionCompleteSentence.js'; +import requireExample from './rules/requireExample.js'; +import requireFileOverview from './rules/requireFileOverview.js'; +import requireHyphenBeforeParamDescription from './rules/requireHyphenBeforeParamDescription.js'; +import requireJsdoc from './rules/requireJsdoc.js'; +import requireParam from './rules/requireParam.js'; +import requireParamDescription from './rules/requireParamDescription.js'; +import requireParamName from './rules/requireParamName.js'; +import requireParamType from './rules/requireParamType.js'; +import requireProperty from './rules/requireProperty.js'; +import requirePropertyDescription from './rules/requirePropertyDescription.js'; +import requirePropertyName from './rules/requirePropertyName.js'; +import requirePropertyType from './rules/requirePropertyType.js'; +import requireReturns from './rules/requireReturns.js'; +import requireReturnsCheck from './rules/requireReturnsCheck.js'; +import requireReturnsDescription from './rules/requireReturnsDescription.js'; +import requireReturnsType from './rules/requireReturnsType.js'; +import requireThrows from './rules/requireThrows.js'; +import requireYields from './rules/requireYields.js'; +import requireYieldsCheck from './rules/requireYieldsCheck.js'; +import sortTags from './rules/sortTags.js'; +import tagLines from './rules/tagLines.js'; +import textEscaping from './rules/textEscaping.js'; +import validTypes from './rules/validTypes.js'; /** - * @type {import('eslint').ESLint.Plugin} + * @type {import('eslint').ESLint.Plugin & { + * configs: Record + * }} */ const index = { configs: {}, diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index e6a57ec44..c4fbdace0 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -1,4 +1,4 @@ -import jsdocUtils from './jsdocUtils'; +import jsdocUtils from './jsdocUtils.js'; import { commentHandler, getJSDocComment, diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index 89d186ebb..a8f6fcc86 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -1,14 +1,14 @@ -import getDefaultTagStructureForMode from './getDefaultTagStructureForMode'; +import getDefaultTagStructureForMode from './getDefaultTagStructureForMode.js'; import { closureTags, jsdocTags, typeScriptTags, -} from './tagNames'; +} from './tagNames.js'; import { hasReturnValue, hasValueOrExecutorHasNonEmptyResolveValue, -} from './utils/hasReturnValue'; -import WarnSettings from './WarnSettings'; +} from './utils/hasReturnValue.js'; +import WarnSettings from './WarnSettings.js'; import { tryParse, } from '@es-joy/jsdoccomment'; diff --git a/src/rules/checkAccess.js b/src/rules/checkAccess.js index 5fc6ffc80..178b24771 100644 --- a/src/rules/checkAccess.js +++ b/src/rules/checkAccess.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; const accessLevels = [ 'package', 'private', 'protected', 'public', diff --git a/src/rules/checkAlignment.js b/src/rules/checkAlignment.js index 60ee841b3..68d002c31 100644 --- a/src/rules/checkAlignment.js +++ b/src/rules/checkAlignment.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; /** * @param {string} string diff --git a/src/rules/checkExamples.js b/src/rules/checkExamples.js index 5da101f75..2989c92bb 100644 --- a/src/rules/checkExamples.js +++ b/src/rules/checkExamples.js @@ -1,6 +1,6 @@ // Todo: When replace `CLIEngine` with `ESLint` when feature set complete per https://github.com/eslint/eslint/issues/14745 // https://github.com/eslint/eslint/blob/master/docs/user-guide/migrating-to-7.0.0.md#-the-cliengine-class-has-been-deprecated -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; import { // @ts-expect-error - For older ESLint CLIEngine, diff --git a/src/rules/checkIndentation.js b/src/rules/checkIndentation.js index 383dd68ee..9157dc765 100644 --- a/src/rules/checkIndentation.js +++ b/src/rules/checkIndentation.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; /** * @param {string} str diff --git a/src/rules/checkLineAlignment.js b/src/rules/checkLineAlignment.js index 16fbcecb3..b592abd6e 100644 --- a/src/rules/checkLineAlignment.js +++ b/src/rules/checkLineAlignment.js @@ -1,5 +1,5 @@ -import alignTransform from '../alignTransform'; -import iterateJsdoc from '../iterateJsdoc'; +import alignTransform from '../alignTransform.js'; +import iterateJsdoc from '../iterateJsdoc.js'; import { transforms, } from 'comment-parser'; diff --git a/src/rules/checkParamNames.js b/src/rules/checkParamNames.js index 61c308399..7837c6e6d 100644 --- a/src/rules/checkParamNames.js +++ b/src/rules/checkParamNames.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; /** * @param {string} targetTagName diff --git a/src/rules/checkPropertyNames.js b/src/rules/checkPropertyNames.js index d262f2b28..8bada8877 100644 --- a/src/rules/checkPropertyNames.js +++ b/src/rules/checkPropertyNames.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; /** * @param {string} targetTagName diff --git a/src/rules/checkSyntax.js b/src/rules/checkSyntax.js index 6ec851192..74f81bdd4 100644 --- a/src/rules/checkSyntax.js +++ b/src/rules/checkSyntax.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; export default iterateJsdoc(({ jsdoc, diff --git a/src/rules/checkTagNames.js b/src/rules/checkTagNames.js index b416c981c..09fe505f6 100644 --- a/src/rules/checkTagNames.js +++ b/src/rules/checkTagNames.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; import escapeStringRegexp from 'escape-string-regexp'; // https://babeljs.io/docs/en/babel-plugin-transform-react-jsx/ diff --git a/src/rules/checkTypes.js b/src/rules/checkTypes.js index 420440377..a9f81a14a 100644 --- a/src/rules/checkTypes.js +++ b/src/rules/checkTypes.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; import { parse, stringify, diff --git a/src/rules/checkValues.js b/src/rules/checkValues.js index 073673367..b3741c8ca 100644 --- a/src/rules/checkValues.js +++ b/src/rules/checkValues.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; import semver from 'semver'; import spdxExpressionParse from 'spdx-expression-parse'; diff --git a/src/rules/emptyTags.js b/src/rules/emptyTags.js index 4c37c51d4..38b4aa9bf 100644 --- a/src/rules/emptyTags.js +++ b/src/rules/emptyTags.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; const defaultEmptyTags = new Set([ 'abstract', 'async', 'generator', 'global', 'hideconstructor', diff --git a/src/rules/implementsOnClasses.js b/src/rules/implementsOnClasses.js index 94e42d144..4a3709a28 100644 --- a/src/rules/implementsOnClasses.js +++ b/src/rules/implementsOnClasses.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; export default iterateJsdoc(({ report, diff --git a/src/rules/importsAsDependencies.js b/src/rules/importsAsDependencies.js index b5554e3e0..435897cf4 100644 --- a/src/rules/importsAsDependencies.js +++ b/src/rules/importsAsDependencies.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; import { parse, traverse, diff --git a/src/rules/informativeDocs.js b/src/rules/informativeDocs.js index ecdf44965..6bd6eb23f 100644 --- a/src/rules/informativeDocs.js +++ b/src/rules/informativeDocs.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; import { areDocsInformative, } from 'are-docs-informative'; diff --git a/src/rules/matchDescription.js b/src/rules/matchDescription.js index 2bb8180b0..63d5a68eb 100644 --- a/src/rules/matchDescription.js +++ b/src/rules/matchDescription.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; // If supporting Node >= 10, we could loosen the default to this for the // initial letter: \\p{Upper} diff --git a/src/rules/matchName.js b/src/rules/matchName.js index 671a010b0..66d789611 100644 --- a/src/rules/matchName.js +++ b/src/rules/matchName.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; // eslint-disable-next-line complexity export default iterateJsdoc(({ diff --git a/src/rules/multilineBlocks.js b/src/rules/multilineBlocks.js index d8d9b18c0..2bd0ff6c8 100644 --- a/src/rules/multilineBlocks.js +++ b/src/rules/multilineBlocks.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; export default iterateJsdoc(({ context, diff --git a/src/rules/noBadBlocks.js b/src/rules/noBadBlocks.js index a798c0521..f64de2218 100644 --- a/src/rules/noBadBlocks.js +++ b/src/rules/noBadBlocks.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; import { parse as commentParser, } from 'comment-parser'; diff --git a/src/rules/noBlankBlockDescriptions.js b/src/rules/noBlankBlockDescriptions.js index 01a3901a5..d28bf2b3f 100644 --- a/src/rules/noBlankBlockDescriptions.js +++ b/src/rules/noBlankBlockDescriptions.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; const anyWhitespaceLines = /^\s*$/u; const atLeastTwoLinesWhitespace = /^[ \t]*\n[ \t]*\n\s*$/u; diff --git a/src/rules/noBlankBlocks.js b/src/rules/noBlankBlocks.js index bf03c5e48..7bc34af96 100644 --- a/src/rules/noBlankBlocks.js +++ b/src/rules/noBlankBlocks.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; export default iterateJsdoc(({ context, diff --git a/src/rules/noDefaults.js b/src/rules/noDefaults.js index 5304e1a7b..3ce05312a 100644 --- a/src/rules/noDefaults.js +++ b/src/rules/noDefaults.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; export default iterateJsdoc(({ context, diff --git a/src/rules/noMissingSyntax.js b/src/rules/noMissingSyntax.js index 8c06a52d8..417d68373 100644 --- a/src/rules/noMissingSyntax.js +++ b/src/rules/noMissingSyntax.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; /** * @typedef {{ diff --git a/src/rules/noMultiAsterisks.js b/src/rules/noMultiAsterisks.js index e8ef5120c..a8d783623 100644 --- a/src/rules/noMultiAsterisks.js +++ b/src/rules/noMultiAsterisks.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; const middleAsterisksBlockWS = /^([\t ]|\*(?!\*))+/u; const middleAsterisksNoBlockWS = /^\*+/u; diff --git a/src/rules/noRestrictedSyntax.js b/src/rules/noRestrictedSyntax.js index 291e85248..dd770f3a4 100644 --- a/src/rules/noRestrictedSyntax.js +++ b/src/rules/noRestrictedSyntax.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; export default iterateJsdoc(({ context, diff --git a/src/rules/noTypes.js b/src/rules/noTypes.js index b730a16ba..527891a15 100644 --- a/src/rules/noTypes.js +++ b/src/rules/noTypes.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; /** * @param {import('comment-parser').Line} line diff --git a/src/rules/noUndefinedTypes.js b/src/rules/noUndefinedTypes.js index c0fd8125d..9f2fce4cd 100644 --- a/src/rules/noUndefinedTypes.js +++ b/src/rules/noUndefinedTypes.js @@ -1,6 +1,6 @@ import iterateJsdoc, { parseComment, -} from '../iterateJsdoc'; +} from '../iterateJsdoc.js'; import { getJSDocComment, parse as parseType, diff --git a/src/rules/requireAsteriskPrefix.js b/src/rules/requireAsteriskPrefix.js index 78af247c2..27ad0f660 100644 --- a/src/rules/requireAsteriskPrefix.js +++ b/src/rules/requireAsteriskPrefix.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; export default iterateJsdoc(({ context, diff --git a/src/rules/requireDescription.js b/src/rules/requireDescription.js index fc80bcc2a..6af9df631 100644 --- a/src/rules/requireDescription.js +++ b/src/rules/requireDescription.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; /** * @param {string} description diff --git a/src/rules/requireDescriptionCompleteSentence.js b/src/rules/requireDescriptionCompleteSentence.js index 9fc370635..7a3e71f9d 100644 --- a/src/rules/requireDescriptionCompleteSentence.js +++ b/src/rules/requireDescriptionCompleteSentence.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; import escapeStringRegexp from 'escape-string-regexp'; const otherDescriptiveTags = new Set([ diff --git a/src/rules/requireExample.js b/src/rules/requireExample.js index 83e04ebbc..6b35f95ca 100644 --- a/src/rules/requireExample.js +++ b/src/rules/requireExample.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; export default iterateJsdoc(({ context, diff --git a/src/rules/requireFileOverview.js b/src/rules/requireFileOverview.js index 2a15bc2bc..dce8d0637 100644 --- a/src/rules/requireFileOverview.js +++ b/src/rules/requireFileOverview.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; const defaultTags = { file: { diff --git a/src/rules/requireHyphenBeforeParamDescription.js b/src/rules/requireHyphenBeforeParamDescription.js index 95d979805..5d881f7ed 100644 --- a/src/rules/requireHyphenBeforeParamDescription.js +++ b/src/rules/requireHyphenBeforeParamDescription.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; export default iterateJsdoc(({ sourceCode, diff --git a/src/rules/requireJsdoc.js b/src/rules/requireJsdoc.js index d9c1983d3..3dcc3c207 100644 --- a/src/rules/requireJsdoc.js +++ b/src/rules/requireJsdoc.js @@ -1,8 +1,8 @@ -import exportParser from '../exportParser'; +import exportParser from '../exportParser.js'; import { getSettings, -} from '../iterateJsdoc'; -import jsdocUtils from '../jsdocUtils'; +} from '../iterateJsdoc.js'; +import jsdocUtils from '../jsdocUtils.js'; import { getDecorator, getJSDocComment, diff --git a/src/rules/requireParam.js b/src/rules/requireParam.js index 193708d05..2ab5ba4a0 100644 --- a/src/rules/requireParam.js +++ b/src/rules/requireParam.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; /** * @typedef {[string, boolean, () => RootNamerReturn]} RootNamerReturn diff --git a/src/rules/requireParamDescription.js b/src/rules/requireParamDescription.js index dfc5d1783..1d32bdb26 100644 --- a/src/rules/requireParamDescription.js +++ b/src/rules/requireParamDescription.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; export default iterateJsdoc(({ context, diff --git a/src/rules/requireParamName.js b/src/rules/requireParamName.js index f90b34429..d23dc3522 100644 --- a/src/rules/requireParamName.js +++ b/src/rules/requireParamName.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; export default iterateJsdoc(({ report, diff --git a/src/rules/requireParamType.js b/src/rules/requireParamType.js index 8cd2cb03d..b405ce274 100644 --- a/src/rules/requireParamType.js +++ b/src/rules/requireParamType.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; export default iterateJsdoc(({ context, diff --git a/src/rules/requireProperty.js b/src/rules/requireProperty.js index 73ddc636a..67beca13d 100644 --- a/src/rules/requireProperty.js +++ b/src/rules/requireProperty.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; export default iterateJsdoc(({ utils, diff --git a/src/rules/requirePropertyDescription.js b/src/rules/requirePropertyDescription.js index 5345be0eb..773be42e2 100644 --- a/src/rules/requirePropertyDescription.js +++ b/src/rules/requirePropertyDescription.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; export default iterateJsdoc(({ report, diff --git a/src/rules/requirePropertyName.js b/src/rules/requirePropertyName.js index f3debfbf2..d1956dd8e 100644 --- a/src/rules/requirePropertyName.js +++ b/src/rules/requirePropertyName.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; export default iterateJsdoc(({ report, diff --git a/src/rules/requirePropertyType.js b/src/rules/requirePropertyType.js index 24c00b7dc..5c9f09ef4 100644 --- a/src/rules/requirePropertyType.js +++ b/src/rules/requirePropertyType.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; export default iterateJsdoc(({ report, diff --git a/src/rules/requireReturns.js b/src/rules/requireReturns.js index 3003d3357..582aa39ea 100644 --- a/src/rules/requireReturns.js +++ b/src/rules/requireReturns.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; /** * We can skip checking for a return value, in case the documentation is inherited diff --git a/src/rules/requireReturnsCheck.js b/src/rules/requireReturnsCheck.js index 13b99cc40..9c9fa35fb 100755 --- a/src/rules/requireReturnsCheck.js +++ b/src/rules/requireReturnsCheck.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; /** * @param {import('../iterateJsdoc.js').Utils} utils diff --git a/src/rules/requireReturnsDescription.js b/src/rules/requireReturnsDescription.js index ccc5d5e93..5cd9915c6 100644 --- a/src/rules/requireReturnsDescription.js +++ b/src/rules/requireReturnsDescription.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; export default iterateJsdoc(({ report, diff --git a/src/rules/requireReturnsType.js b/src/rules/requireReturnsType.js index 0cf1c378b..47e8cb960 100644 --- a/src/rules/requireReturnsType.js +++ b/src/rules/requireReturnsType.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; export default iterateJsdoc(({ report, diff --git a/src/rules/requireThrows.js b/src/rules/requireThrows.js index 827efd105..ac694afd1 100644 --- a/src/rules/requireThrows.js +++ b/src/rules/requireThrows.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; /** * We can skip checking for a throws value, in case the documentation is inherited diff --git a/src/rules/requireYields.js b/src/rules/requireYields.js index 59a7db1b8..83c7da7ee 100644 --- a/src/rules/requireYields.js +++ b/src/rules/requireYields.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; /** * We can skip checking for a yield value, in case the documentation is inherited diff --git a/src/rules/requireYieldsCheck.js b/src/rules/requireYieldsCheck.js index c10fea9c6..c356e7ea6 100644 --- a/src/rules/requireYieldsCheck.js +++ b/src/rules/requireYieldsCheck.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; /** * @param {import('../iterateJsdoc.js').Utils} utils diff --git a/src/rules/sortTags.js b/src/rules/sortTags.js index ef70d4143..6616e24df 100644 --- a/src/rules/sortTags.js +++ b/src/rules/sortTags.js @@ -1,5 +1,5 @@ -import defaultTagOrder from '../defaultTagOrder'; -import iterateJsdoc from '../iterateJsdoc'; +import defaultTagOrder from '../defaultTagOrder.js'; +import iterateJsdoc from '../iterateJsdoc.js'; // eslint-disable-next-line complexity -- Temporary export default iterateJsdoc(({ diff --git a/src/rules/tagLines.js b/src/rules/tagLines.js index 2df7fb3c4..0e34ed31c 100644 --- a/src/rules/tagLines.js +++ b/src/rules/tagLines.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; export default iterateJsdoc(({ context, diff --git a/src/rules/textEscaping.js b/src/rules/textEscaping.js index 791bcb0a8..2486ad81a 100644 --- a/src/rules/textEscaping.js +++ b/src/rules/textEscaping.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; // We could disallow raw gt, quot, and apos, but allow for parity; but we do // not allow hex or decimal character references diff --git a/src/rules/validTypes.js b/src/rules/validTypes.js index c3df2edcb..339247ef7 100644 --- a/src/rules/validTypes.js +++ b/src/rules/validTypes.js @@ -1,4 +1,4 @@ -import iterateJsdoc from '../iterateJsdoc'; +import iterateJsdoc from '../iterateJsdoc.js'; import { parse, traverse, From e41df35d0e843f5b0dfbc1585ff5afc722a5c4ed Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 27 Jul 2023 16:18:19 +0800 Subject: [PATCH 122/273] fix(`require-jsdoc`): accessibility check for latest typescript-eslint/parser (#1136) Also: - chore: update semver and devDeps. - test: avoid compile errors for interfaces --- docs/rules/require-param.md | 4 +- package.json | 44 +- pnpm-lock.yaml | 3593 +++++++++++++------------ src/exportParser.js | 2 +- test/rules/assertions/requireParam.js | 8 +- 5 files changed, 1866 insertions(+), 1785 deletions(-) diff --git a/docs/rules/require-param.md b/docs/rules/require-param.md index 0d7e820fc..eb3f75b49 100644 --- a/docs/rules/require-param.md +++ b/docs/rules/require-param.md @@ -915,7 +915,7 @@ interface TestInterface { /** * An interface property. */ -public Test: (id: number) => string; +Test: (id: number) => string; } // "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] // Message: Missing JSDoc @param "id" declaration. @@ -924,7 +924,7 @@ interface TestInterface { /** * An interface method. */ - public TestMethod(): (id: number) => string; + TestMethod(): (id: number) => string; } // "jsdoc/require-param": ["error"|"warn", {"contexts":["TSFunctionType"]}] // Message: Missing JSDoc @param "id" declaration. diff --git a/package.json b/package.json index 4e7f6c211..a8171c917 100644 --- a/package.json +++ b/package.json @@ -12,57 +12,57 @@ "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", "is-builtin-module": "^3.2.1", - "semver": "^7.5.1", + "semver": "^7.5.4", "spdx-expression-parse": "^3.0.1" }, "description": "JSDoc linting rules for ESLint.", "devDependencies": { - "@babel/cli": "^7.21.5", - "@babel/core": "^7.21.8", - "@babel/eslint-parser": "^7.21.8", - "@babel/node": "^7.20.7", + "@babel/cli": "^7.22.9", + "@babel/core": "^7.22.9", + "@babel/eslint-parser": "^7.22.9", + "@babel/node": "^7.22.6", "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-transform-flow-strip-types": "^7.21.0", - "@babel/preset-env": "^7.21.5", - "@babel/register": "^7.21.0", + "@babel/plugin-transform-flow-strip-types": "^7.22.5", + "@babel/preset-env": "^7.22.9", + "@babel/register": "^7.22.5", "@es-joy/escodegen": "^3.5.1", "@es-joy/jsdoc-eslint-parser": "^0.19.0", "@hkdobrev/run-if-changed": "^0.3.1", - "@semantic-release/commit-analyzer": "^9.0.2", - "@semantic-release/github": "^8.0.7", - "@semantic-release/npm": "^10.0.3", + "@semantic-release/commit-analyzer": "^10.0.1", + "@semantic-release/github": "^9.0.4", + "@semantic-release/npm": "^10.0.4", "@types/chai": "^4.3.5", - "@types/debug": "^4.1.7", - "@types/eslint": "^8.37.0", + "@types/debug": "^4.1.8", + "@types/eslint": "^8.44.1", "@types/esquery": "^1.5.0", "@types/estree": "^1.0.1", "@types/lodash.defaultsdeep": "^4.6.7", "@types/mocha": "^10.0.1", - "@types/node": "^20.2.5", + "@types/node": "^20.4.5", "@types/semver": "^7.5.0", "@types/spdx-expression-parse": "^3.0.2", - "@typescript-eslint/parser": "^5.59.6", + "@typescript-eslint/parser": "^6.2.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", "chai": "^4.3.7", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "8.41.0", - "eslint-config-canonical": "~41.0.4", - "espree": "^9.5.2", + "eslint": "8.45.0", + "eslint-config-canonical": "~41.1.5", + "espree": "^9.6.1", "gitdown": "^3.1.5", - "glob": "^10.2.6", + "glob": "^10.3.3", "husky": "^8.0.3", "jsdoc-type-pratt-parser": "^4.0.0", - "lint-staged": "^13.2.2", + "lint-staged": "^13.2.3", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.2.0", "nyc": "^15.1.0", "open-editor": "^3.0.0", "rimraf": "^5.0.1", - "semantic-release": "^21.0.2", - "typescript": "^5.0.4" + "semantic-release": "^21.0.7", + "typescript": "^5.1.6" }, "engines": { "node": ">=16" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4ab01cdaf..433553d82 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.1' +lockfileVersion: '6.0' settings: autoInstallPeers: true @@ -27,37 +27,37 @@ dependencies: specifier: ^3.2.1 version: 3.2.1 semver: - specifier: ^7.5.1 - version: 7.5.1 + specifier: ^7.5.4 + version: 7.5.4 spdx-expression-parse: specifier: ^3.0.1 version: 3.0.1 devDependencies: '@babel/cli': - specifier: ^7.21.5 - version: 7.21.5(@babel/core@7.21.8) + specifier: ^7.22.9 + version: 7.22.9(@babel/core@7.22.9) '@babel/core': - specifier: ^7.21.8 - version: 7.21.8 + specifier: ^7.22.9 + version: 7.22.9 '@babel/eslint-parser': - specifier: ^7.21.8 - version: 7.21.8(@babel/core@7.21.8)(eslint@8.41.0) + specifier: ^7.22.9 + version: 7.22.9(@babel/core@7.22.9)(eslint@8.45.0) '@babel/node': - specifier: ^7.20.7 - version: 7.20.7(@babel/core@7.21.8) + specifier: ^7.22.6 + version: 7.22.6(@babel/core@7.22.9) '@babel/plugin-syntax-class-properties': specifier: ^7.12.13 - version: 7.12.13(@babel/core@7.21.8) + version: 7.12.13(@babel/core@7.22.9) '@babel/plugin-transform-flow-strip-types': - specifier: ^7.21.0 - version: 7.21.0(@babel/core@7.21.8) + specifier: ^7.22.5 + version: 7.22.5(@babel/core@7.22.9) '@babel/preset-env': - specifier: ^7.21.5 - version: 7.21.5(@babel/core@7.21.8) + specifier: ^7.22.9 + version: 7.22.9(@babel/core@7.22.9) '@babel/register': - specifier: ^7.21.0 - version: 7.21.0(@babel/core@7.21.8) + specifier: ^7.22.5 + version: 7.22.5(@babel/core@7.22.9) '@es-joy/escodegen': specifier: ^3.5.1 version: 3.5.1 @@ -68,23 +68,23 @@ devDependencies: specifier: ^0.3.1 version: 0.3.1 '@semantic-release/commit-analyzer': - specifier: ^9.0.2 - version: 9.0.2(semantic-release@21.0.2) + specifier: ^10.0.1 + version: 10.0.1(semantic-release@21.0.7) '@semantic-release/github': - specifier: ^8.0.7 - version: 8.0.7(semantic-release@21.0.2) + specifier: ^9.0.4 + version: 9.0.4(semantic-release@21.0.7) '@semantic-release/npm': - specifier: ^10.0.3 - version: 10.0.3(semantic-release@21.0.2)(typescript@5.0.4) + specifier: ^10.0.4 + version: 10.0.4(semantic-release@21.0.7) '@types/chai': specifier: ^4.3.5 version: 4.3.5 '@types/debug': - specifier: ^4.1.7 - version: 4.1.7 + specifier: ^4.1.8 + version: 4.1.8 '@types/eslint': - specifier: ^8.37.0 - version: 8.37.0 + specifier: ^8.44.1 + version: 8.44.1 '@types/esquery': specifier: ^1.5.0 version: 1.5.0 @@ -98,8 +98,8 @@ devDependencies: specifier: ^10.0.1 version: 10.0.1 '@types/node': - specifier: ^20.2.5 - version: 20.2.5 + specifier: ^20.4.5 + version: 20.4.5 '@types/semver': specifier: ^7.5.0 version: 7.5.0 @@ -107,8 +107,8 @@ devDependencies: specifier: ^3.0.2 version: 3.0.2 '@typescript-eslint/parser': - specifier: ^5.59.6 - version: 5.59.6(eslint@8.41.0)(typescript@5.0.4) + specifier: ^6.2.0 + version: 6.2.0(eslint@8.45.0)(typescript@5.1.6) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -128,20 +128,20 @@ devDependencies: specifier: ^5.0.1 version: 5.0.1 eslint: - specifier: 8.41.0 - version: 8.41.0 + specifier: 8.45.0 + version: 8.45.0 eslint-config-canonical: - specifier: ~41.0.4 - version: 41.0.4(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.2.5)(eslint@8.41.0)(graphql@16.6.0)(typescript@5.0.4) + specifier: ~41.1.5 + version: 41.1.5(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/node@20.4.5)(eslint@8.45.0)(graphql@16.7.1)(typescript@5.1.6) espree: - specifier: ^9.5.2 - version: 9.5.2 + specifier: ^9.6.1 + version: 9.6.1 gitdown: specifier: ^3.1.5 version: 3.1.5 glob: - specifier: ^10.2.6 - version: 10.2.6 + specifier: ^10.3.3 + version: 10.3.3 husky: specifier: ^8.0.3 version: 8.0.3 @@ -149,8 +149,8 @@ devDependencies: specifier: ^4.0.0 version: 4.0.0 lint-staged: - specifier: ^13.2.2 - version: 13.2.2 + specifier: ^13.2.3 + version: 13.2.3 lodash.defaultsdeep: specifier: ^4.6.1 version: 4.6.1 @@ -167,14 +167,19 @@ devDependencies: specifier: ^5.0.1 version: 5.0.1 semantic-release: - specifier: ^21.0.2 - version: 21.0.2(typescript@5.0.4) + specifier: ^21.0.7 + version: 21.0.7 typescript: - specifier: ^5.0.4 - version: 5.0.4 + specifier: ^5.1.6 + version: 5.1.6 packages: + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: true + /@ampproject/remapping@2.2.1: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} @@ -187,19 +192,19 @@ packages: resolution: {integrity: sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==} engines: {node: '>=14'} dependencies: - node-fetch: 2.6.11 + node-fetch: 2.6.12 transitivePeerDependencies: - encoding dev: true - /@babel/cli@7.21.5(@babel/core@7.21.8): - resolution: {integrity: sha512-TOKytQ9uQW9c4np8F+P7ZfPINy5Kv+pizDIUwSVH8X5zHgYHV4AA8HE5LA450xXeu4jEfmUckTYvv1I4S26M/g==} + /@babel/cli@7.22.9(@babel/core@7.22.9): + resolution: {integrity: sha512-nb2O7AThqRo7/E53EGiuAkMaRbb7J5Qp3RvN+dmua1U+kydm0oznkhqbTEG15yk26G/C3yL6OdZjzgl+DMXVVA==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 + '@babel/core': 7.22.9 '@jridgewell/trace-mapping': 0.3.18 commander: 4.1.1 convert-source-map: 1.9.0 @@ -212,1207 +217,1226 @@ packages: chokidar: 3.5.3 dev: true - /@babel/code-frame@7.21.4: - resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} + /@babel/code-frame@7.22.5: + resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.18.6 + '@babel/highlight': 7.22.5 dev: true - /@babel/compat-data@7.21.7: - resolution: {integrity: sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==} + /@babel/compat-data@7.22.9: + resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.21.8: - resolution: {integrity: sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==} + /@babel/core@7.22.9: + resolution: {integrity: sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.21.4 - '@babel/generator': 7.21.5 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.8) - '@babel/helper-module-transforms': 7.21.5 - '@babel/helpers': 7.21.5 - '@babel/parser': 7.21.8 - '@babel/template': 7.20.7 - '@babel/traverse': 7.21.5 - '@babel/types': 7.21.5 + '@babel/code-frame': 7.22.5 + '@babel/generator': 7.22.9 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/helpers': 7.22.6 + '@babel/parser': 7.22.7 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.8 + '@babel/types': 7.22.5 convert-source-map: 1.9.0 debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 - semver: 6.3.0 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/eslint-parser@7.21.8(@babel/core@7.21.8)(eslint@8.41.0): - resolution: {integrity: sha512-HLhI+2q+BP3sf78mFUZNCGc10KEmoUqtUT1OCdMZsN+qr4qFeLUod62/zAnF3jNQstwyasDkZnVXwfK2Bml7MQ==} + /@babel/eslint-parser@7.22.9(@babel/core@7.22.9)(eslint@8.45.0): + resolution: {integrity: sha512-xdMkt39/nviO/4vpVdrEYPwXCsYIXSSAr6mC7WQsNIlGnuxKyKE7GZjalcnbSWiC4OXGNNN3UQPeHfjSC6sTDA==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': '>=7.11.0' eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/core': 7.21.8 + '@babel/core': 7.22.9 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.41.0 + eslint: 8.45.0 eslint-visitor-keys: 2.1.0 - semver: 6.3.0 + semver: 6.3.1 dev: true - /@babel/eslint-plugin@7.19.1(@babel/eslint-parser@7.21.8)(eslint@8.41.0): - resolution: {integrity: sha512-ElGPkQPapKMa3zVqXHkZYzuL7I5LbRw9UWBUArgWsdWDDb9XcACqOpBib5tRPA9XvbVZYrFUkoQPbiJ4BFvu4w==} + /@babel/eslint-plugin@7.22.5(@babel/eslint-parser@7.22.9)(eslint@8.45.0): + resolution: {integrity: sha512-lDXW06rf1sXywWWw+UdS/iYxRjrqhH4AXdPeKE4+fEgEoGBXcdIDQ+uCJOUcvCb0jCTvfwHOSXkwnfd24EAkLQ==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': '>=7.11.0' eslint: '>=7.5.0' dependencies: - '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.41.0) - eslint: 8.41.0 + '@babel/eslint-parser': 7.22.9(@babel/core@7.22.9)(eslint@8.45.0) + eslint: 8.45.0 eslint-rule-composer: 0.3.0 dev: true - /@babel/generator@7.21.5: - resolution: {integrity: sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==} + /@babel/generator@7.22.9: + resolution: {integrity: sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.22.5 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.18 jsesc: 2.5.2 dev: true - /@babel/helper-annotate-as-pure@7.18.6: - resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.22.5 dev: true - /@babel/helper-builder-binary-assignment-operator-visitor@7.21.5: - resolution: {integrity: sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g==} + /@babel/helper-builder-binary-assignment-operator-visitor@7.22.5: + resolution: {integrity: sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.22.5 dev: true - /@babel/helper-compilation-targets@7.21.5(@babel/core@7.21.8): - resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==} + /@babel/helper-compilation-targets@7.22.9(@babel/core@7.22.9): + resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.21.7 - '@babel/core': 7.21.8 - '@babel/helper-validator-option': 7.21.0 - browserslist: 4.21.5 + '@babel/compat-data': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-validator-option': 7.22.5 + browserslist: 4.21.9 lru-cache: 5.1.1 - semver: 6.3.0 + semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.21.8(@babel/core@7.21.8): - resolution: {integrity: sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==} + /@babel/helper-create-class-features-plugin@7.22.9(@babel/core@7.22.9): + resolution: {integrity: sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.21.5 - '@babel/helper-function-name': 7.21.0 - '@babel/helper-member-expression-to-functions': 7.21.5 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-replace-supers': 7.21.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/helper-split-export-declaration': 7.18.6 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.9 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.22.5 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.21.8(@babel/core@7.21.8): - resolution: {integrity: sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g==} + /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.22.9): + resolution: {integrity: sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/core': 7.22.9 + '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 - semver: 6.3.0 + semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.21.8): - resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} + /@babel/helper-define-polyfill-provider@0.4.2(@babel/core@7.22.9): + resolution: {integrity: sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==} peerDependencies: - '@babel/core': ^7.4.0-0 + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.8) - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4(supports-color@8.1.1) lodash.debounce: 4.0.8 resolve: 1.22.2 - semver: 6.3.0 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-environment-visitor@7.21.5: - resolution: {integrity: sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==} + /@babel/helper-environment-visitor@7.22.5: + resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-function-name@7.21.0: - resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} + /@babel/helper-function-name@7.22.5: + resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.20.7 - '@babel/types': 7.21.5 + '@babel/template': 7.22.5 + '@babel/types': 7.22.5 dev: true - /@babel/helper-hoist-variables@7.18.6: - resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.22.5 dev: true - /@babel/helper-member-expression-to-functions@7.21.5: - resolution: {integrity: sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==} + /@babel/helper-member-expression-to-functions@7.22.5: + resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.22.5 dev: true - /@babel/helper-module-imports@7.21.4: - resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==} + /@babel/helper-module-imports@7.22.5: + resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.22.5 dev: true - /@babel/helper-module-transforms@7.21.5: - resolution: {integrity: sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==} + /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.9): + resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: - '@babel/helper-environment-visitor': 7.21.5 - '@babel/helper-module-imports': 7.21.4 - '@babel/helper-simple-access': 7.21.5 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/helper-validator-identifier': 7.19.1 - '@babel/template': 7.20.7 - '@babel/traverse': 7.21.5 - '@babel/types': 7.21.5 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.9 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.5 dev: true - /@babel/helper-optimise-call-expression@7.18.6: - resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} + /@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.22.5 dev: true - /@babel/helper-plugin-utils@7.21.5: - resolution: {integrity: sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==} + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.21.8): - resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} + /@babel/helper-remap-async-to-generator@7.22.9(@babel/core@7.22.9): + resolution: {integrity: sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.21.5 - '@babel/helper-wrap-function': 7.20.5 - '@babel/types': 7.21.5 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.9 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-wrap-function': 7.22.9 dev: true - /@babel/helper-replace-supers@7.21.5: - resolution: {integrity: sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg==} + /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.9): + resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: - '@babel/helper-environment-visitor': 7.21.5 - '@babel/helper-member-expression-to-functions': 7.21.5 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/template': 7.20.7 - '@babel/traverse': 7.21.5 - '@babel/types': 7.21.5 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.9 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.22.5 + '@babel/helper-optimise-call-expression': 7.22.5 dev: true - /@babel/helper-simple-access@7.21.5: - resolution: {integrity: sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==} + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.22.5 dev: true - /@babel/helper-skip-transparent-expression-wrappers@7.20.0: - resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.22.5 dev: true - /@babel/helper-split-export-declaration@7.18.6: - resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.22.5 dev: true - /@babel/helper-string-parser@7.21.5: - resolution: {integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==} + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-identifier@7.19.1: - resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + /@babel/helper-validator-identifier@7.22.5: + resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-option@7.21.0: - resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} + /@babel/helper-validator-option@7.22.5: + resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-wrap-function@7.20.5: - resolution: {integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==} + /@babel/helper-wrap-function@7.22.9: + resolution: {integrity: sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-function-name': 7.21.0 - '@babel/template': 7.20.7 - '@babel/traverse': 7.21.5 - '@babel/types': 7.21.5 - transitivePeerDependencies: - - supports-color + '@babel/helper-function-name': 7.22.5 + '@babel/template': 7.22.5 + '@babel/types': 7.22.5 dev: true - /@babel/helpers@7.21.5: - resolution: {integrity: sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==} + /@babel/helpers@7.22.6: + resolution: {integrity: sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.20.7 - '@babel/traverse': 7.21.5 - '@babel/types': 7.21.5 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.8 + '@babel/types': 7.22.5 transitivePeerDependencies: - supports-color dev: true - /@babel/highlight@7.18.6: - resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + /@babel/highlight@7.22.5: + resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.19.1 + '@babel/helper-validator-identifier': 7.22.5 chalk: 2.4.2 js-tokens: 4.0.0 dev: true - /@babel/node@7.20.7(@babel/core@7.21.8): - resolution: {integrity: sha512-AQt3gVcP+fpFuoFn4FmIW/+5JovvEoA9og4Y1LrRw0pv3jkl4tujZMMy3X/3ugjLrEy3k1aNywo3JIl3g+jVXQ==} + /@babel/node@7.22.6(@babel/core@7.22.9): + resolution: {integrity: sha512-Lt6v+RUQOTsEOXLv+KfjogLFkFfsLPPSoXZqmbngfVatkWjQPnFGHO0xjFRcN6XEvm3vsnZn+AWQiRpgZFsdIA==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/register': 7.21.0(@babel/core@7.21.8) + '@babel/core': 7.22.9 + '@babel/register': 7.22.5(@babel/core@7.22.9) commander: 4.1.1 - core-js: 3.30.2 + core-js: 3.31.1 node-environment-flags: 1.0.6 regenerator-runtime: 0.13.11 v8flags: 3.2.0 dev: true - /@babel/parser@7.21.8: - resolution: {integrity: sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==} + /@babel/parser@7.22.7: + resolution: {integrity: sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.22.5 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.20.7(@babel/core@7.21.8): - resolution: {integrity: sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==} + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.21.8) + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.22.6(@babel/core@7.22.9) dev: true - /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.21.8): - resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.9): + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-environment-visitor': 7.21.5 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.21.8) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.21.8) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.9 dev: true - /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} - engines: {node: '>=6.9.0'} + /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.22.9): + resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} + engines: {node: '>=4'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.21.8) - '@babel/helper-plugin-utils': 7.21.5 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-class-static-block@7.21.0(@babel/core@7.21.8): - resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.9): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: - '@babel/core': ^7.12.0 + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.21.8) - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.21.8) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.9): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.21.8) + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.21.8): - resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.9): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.21.8) + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.9): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.21.8) + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.21.8): - resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.9): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.21.8) + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} + /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.21.8) + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} + /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.21.8) + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.21.8): - resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} + /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.21.7 - '@babel/core': 7.21.8 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.8) - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.21.8) - '@babel/plugin-transform-parameters': 7.21.3(@babel/core@7.21.8) + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.9): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.21.8) + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.21.8): - resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.9): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.21.8) + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.21.8) - '@babel/helper-plugin-utils': 7.21.5 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0(@babel/core@7.21.8): - resolution: {integrity: sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.9): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.21.8) - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.21.8) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} - engines: {node: '>=4'} + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.9): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-create-regexp-features-plugin': 7.21.8(@babel/core@7.21.8) - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.21.8): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.9): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.21.8): - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.9): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.21.8): - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.9): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.21.8): - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.9): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.21.8): - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.9): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-flow@7.21.4(@babel/core@7.21.8): - resolution: {integrity: sha512-l9xd3N+XG4fZRxEP3vXdK6RW7vN1Uf5dxzRC/09wV86wqZ/YYQooBIGNsiRdfNR3/q2/5pPzV4B54J/9ctX5jw==} + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.9): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.22.9): + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.21.8): - resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} + /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.21.8): - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + /@babel/plugin-transform-async-generator-functions@7.22.7(@babel/core@7.22.9): + resolution: {integrity: sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.9) dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.21.8): - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.9) dev: true - /@babel/plugin-syntax-jsx@7.21.4(@babel/core@7.21.8): - resolution: {integrity: sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==} + /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.21.8): - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + /@babel/plugin-transform-block-scoping@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.21.8): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.21.8): - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + /@babel/plugin-transform-class-static-block@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.9) + dev: true + + /@babel/plugin-transform-classes@7.22.6(@babel/core@7.22.9): + resolution: {integrity: sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) + '@babel/helper-split-export-declaration': 7.22.6 + globals: 11.12.0 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.21.8): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.21.8): - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + /@babel/plugin-transform-destructuring@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.21.8): - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.21.8): - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.21.8): - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + /@babel/plugin-transform-dynamic-import@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-arrow-functions@7.21.5(@babel/core@7.21.8): - resolution: {integrity: sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==} + /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-to-generator@7.20.7(@babel/core@7.21.8): - resolution: {integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==} + /@babel/plugin-transform-export-namespace-from@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-module-imports': 7.21.4 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.21.8) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} + /@babel/plugin-transform-flow-strip-types@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-block-scoping@7.21.0(@babel/core@7.21.8): - resolution: {integrity: sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==} + /@babel/plugin-transform-for-of@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-classes@7.21.0(@babel/core@7.21.8): - resolution: {integrity: sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==} + /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.8) - '@babel/helper-environment-visitor': 7.21.5 - '@babel/helper-function-name': 7.21.0 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-replace-supers': 7.21.5 - '@babel/helper-split-export-declaration': 7.18.6 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.9 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/helper-function-name': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-computed-properties@7.21.5(@babel/core@7.21.8): - resolution: {integrity: sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==} + /@babel/plugin-transform-json-strings@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/template': 7.20.7 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-destructuring@7.21.3(@babel/core@7.21.8): - resolution: {integrity: sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==} + /@babel/plugin-transform-literals@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} + /@babel/plugin-transform-logical-assignment-operators@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-create-regexp-features-plugin': 7.21.8(@babel/core@7.21.8) - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-duplicate-keys@7.18.9(@babel/core@7.21.8): - resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} + /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} + /@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.21.5 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-flow-strip-types@7.21.0(@babel/core@7.21.8): - resolution: {integrity: sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w==} + /@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-flow': 7.21.4(@babel/core@7.21.8) + '@babel/core': 7.22.9 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-for-of@7.21.5(@babel/core@7.21.8): - resolution: {integrity: sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==} + /@babel/plugin-transform-modules-systemjs@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-identifier': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.18.9(@babel/core@7.21.8): - resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} + /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.8) - '@babel/helper-function-name': 7.21.0 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-literals@7.18.9(@babel/core@7.21.8): - resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} + /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} + /@babel/plugin-transform-nullish-coalescing-operator@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-modules-amd@7.20.11(@babel/core@7.21.8): - resolution: {integrity: sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==} + /@babel/plugin-transform-numeric-separator@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-module-transforms': 7.21.5 - '@babel/helper-plugin-utils': 7.21.5 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-modules-commonjs@7.21.5(@babel/core@7.21.8): - resolution: {integrity: sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==} + /@babel/plugin-transform-object-rest-spread@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-module-transforms': 7.21.5 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-simple-access': 7.21.5 - transitivePeerDependencies: - - supports-color + '@babel/compat-data': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-modules-systemjs@7.20.11(@babel/core@7.21.8): - resolution: {integrity: sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==} + /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-module-transforms': 7.21.5 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-validator-identifier': 7.19.1 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} + /@babel/plugin-transform-optional-catch-binding@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-module-transforms': 7.21.5 - '@babel/helper-plugin-utils': 7.21.5 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.20.5(@babel/core@7.21.8): - resolution: {integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==} + /@babel/plugin-transform-optional-chaining@7.22.6(@babel/core@7.22.9): + resolution: {integrity: sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-create-regexp-features-plugin': 7.21.8(@babel/core@7.21.8) - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-new-target@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} + /@babel/plugin-transform-parameters@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-object-super@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} + /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-replace-supers': 7.21.5 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.9 + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-parameters@7.21.3(@babel/core@7.21.8): - resolution: {integrity: sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==} + /@babel/plugin-transform-private-property-in-object@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} + /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx@7.21.5(@babel/core@7.21.8): - resolution: {integrity: sha512-ELdlq61FpoEkHO6gFRpfj0kUgSwQTGoaEU8eMRoS8Dv3v6e7BjEAj5WMtIBRdHUeAioMhKP5HyxNzNnP+heKbA==} + /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-module-imports': 7.21.4 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-jsx': 7.21.4(@babel/core@7.21.8) - '@babel/types': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.9) + '@babel/types': 7.22.5 dev: true - /@babel/plugin-transform-regenerator@7.21.5(@babel/core@7.21.8): - resolution: {integrity: sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==} + /@babel/plugin-transform-regenerator@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.1 dev: true - /@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} + /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} + /@babel/plugin-transform-spread@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.20.7(@babel/core@7.21.8): - resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==} + /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} + /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.18.9(@babel/core@7.21.8): - resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} + /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.18.9(@babel/core@7.21.8): - resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} + /@babel/plugin-transform-unicode-escapes@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-escapes@7.21.5(@babel/core@7.21.8): - resolution: {integrity: sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==} + /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.21.8): - resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} + /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-create-regexp-features-plugin': 7.21.8(@babel/core@7.21.8) - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.21.5(@babel/core@7.21.8): - resolution: {integrity: sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==} + /@babel/preset-env@7.22.9(@babel/core@7.22.9): + resolution: {integrity: sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.21.7 - '@babel/core': 7.21.8 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.8) - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-validator-option': 7.21.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7(@babel/core@7.21.8) - '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.21.8) - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-proposal-class-static-block': 7.21.0(@babel/core@7.21.8) - '@babel/plugin-proposal-dynamic-import': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-proposal-export-namespace-from': 7.18.9(@babel/core@7.21.8) - '@babel/plugin-proposal-json-strings': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.21.8) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.21.8) - '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.21.8) - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-proposal-private-property-in-object': 7.21.0(@babel/core@7.21.8) - '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.21.8) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.21.8) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.21.8) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.21.8) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.21.8) - '@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.21.8) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.21.8) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.21.8) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.21.8) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.21.8) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.21.8) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.21.8) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.21.8) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.21.8) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.21.8) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.21.8) - '@babel/plugin-transform-arrow-functions': 7.21.5(@babel/core@7.21.8) - '@babel/plugin-transform-async-to-generator': 7.20.7(@babel/core@7.21.8) - '@babel/plugin-transform-block-scoped-functions': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-transform-block-scoping': 7.21.0(@babel/core@7.21.8) - '@babel/plugin-transform-classes': 7.21.0(@babel/core@7.21.8) - '@babel/plugin-transform-computed-properties': 7.21.5(@babel/core@7.21.8) - '@babel/plugin-transform-destructuring': 7.21.3(@babel/core@7.21.8) - '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-transform-duplicate-keys': 7.18.9(@babel/core@7.21.8) - '@babel/plugin-transform-exponentiation-operator': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-transform-for-of': 7.21.5(@babel/core@7.21.8) - '@babel/plugin-transform-function-name': 7.18.9(@babel/core@7.21.8) - '@babel/plugin-transform-literals': 7.18.9(@babel/core@7.21.8) - '@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-transform-modules-amd': 7.20.11(@babel/core@7.21.8) - '@babel/plugin-transform-modules-commonjs': 7.21.5(@babel/core@7.21.8) - '@babel/plugin-transform-modules-systemjs': 7.20.11(@babel/core@7.21.8) - '@babel/plugin-transform-modules-umd': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5(@babel/core@7.21.8) - '@babel/plugin-transform-new-target': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-transform-object-super': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-transform-parameters': 7.21.3(@babel/core@7.21.8) - '@babel/plugin-transform-property-literals': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-transform-regenerator': 7.21.5(@babel/core@7.21.8) - '@babel/plugin-transform-reserved-words': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-transform-shorthand-properties': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-transform-spread': 7.20.7(@babel/core@7.21.8) - '@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-transform-template-literals': 7.18.9(@babel/core@7.21.8) - '@babel/plugin-transform-typeof-symbol': 7.18.9(@babel/core@7.21.8) - '@babel/plugin-transform-unicode-escapes': 7.21.5(@babel/core@7.21.8) - '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.21.8) - '@babel/preset-modules': 0.1.5(@babel/core@7.21.8) - '@babel/types': 7.21.5 - babel-plugin-polyfill-corejs2: 0.3.3(@babel/core@7.21.8) - babel-plugin-polyfill-corejs3: 0.6.0(@babel/core@7.21.8) - babel-plugin-polyfill-regenerator: 0.4.1(@babel/core@7.21.8) - core-js-compat: 3.30.2 - semver: 6.3.0 + '@babel/compat-data': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.5 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.9) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.9) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.9) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.9) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.9) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.9) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.9) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.9) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.22.9) + '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-async-generator-functions': 7.22.7(@babel/core@7.22.9) + '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-block-scoping': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-class-static-block': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-classes': 7.22.6(@babel/core@7.22.9) + '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-destructuring': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-dynamic-import': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-export-namespace-from': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-for-of': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-json-strings': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-logical-assignment-operators': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-modules-amd': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-modules-systemjs': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-numeric-separator': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-object-rest-spread': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-optional-catch-binding': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-optional-chaining': 7.22.6(@babel/core@7.22.9) + '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-private-property-in-object': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-regenerator': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-unicode-escapes': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.22.9) + '@babel/preset-modules': 0.1.6(@babel/core@7.22.9) + '@babel/types': 7.22.5 + babel-plugin-polyfill-corejs2: 0.4.5(@babel/core@7.22.9) + babel-plugin-polyfill-corejs3: 0.8.3(@babel/core@7.22.9) + babel-plugin-polyfill-regenerator: 0.5.2(@babel/core@7.22.9) + core-js-compat: 3.31.1 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.5(@babel/core@7.21.8): - resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} + /@babel/preset-modules@0.1.6(@babel/core@7.22.9): + resolution: {integrity: sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.21.8) - '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.21.8) - '@babel/types': 7.21.5 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.22.9) + '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.9) + '@babel/types': 7.22.5 esutils: 2.0.3 dev: true - /@babel/register@7.21.0(@babel/core@7.21.8): - resolution: {integrity: sha512-9nKsPmYDi5DidAqJaQooxIhsLJiNMkGr8ypQ8Uic7cIox7UCDsM7HuUGxdGT7mSDTYbqzIdsOWzfBton/YJrMw==} + /@babel/register@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-vV6pm/4CijSQ8Y47RH5SopXzursN35RQINfGJkmOlcpAtGuf94miFvIPhCKGQN7WGIcsgG1BHEX2KVdTYwTwUQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 + '@babel/core': 7.22.9 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 - pirates: 4.0.5 + pirates: 4.0.6 source-map-support: 0.5.21 dev: true @@ -1420,54 +1444,54 @@ packages: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} dev: true - /@babel/runtime-corejs3@7.21.5: - resolution: {integrity: sha512-FRqFlFKNazWYykft5zvzuEl1YyTDGsIRrjV9rvxvYkUC7W/ueBng1X68Xd6uRMzAaJ0xMKn08/wem5YS1lpX8w==} + /@babel/runtime-corejs3@7.22.6: + resolution: {integrity: sha512-M+37LLIRBTEVjktoJjbw4KVhupF0U/3PYUCbBwgAd9k17hoKhRu1n935QiG7Tuxv0LJOMrb2vuKEeYUlv0iyiw==} engines: {node: '>=6.9.0'} dependencies: - core-js-pure: 3.30.2 + core-js-pure: 3.31.1 regenerator-runtime: 0.13.11 dev: true - /@babel/runtime@7.21.5: - resolution: {integrity: sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==} + /@babel/runtime@7.22.6: + resolution: {integrity: sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.13.11 dev: true - /@babel/template@7.20.7: - resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} + /@babel/template@7.22.5: + resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.21.4 - '@babel/parser': 7.21.8 - '@babel/types': 7.21.5 + '@babel/code-frame': 7.22.5 + '@babel/parser': 7.22.7 + '@babel/types': 7.22.5 dev: true - /@babel/traverse@7.21.5: - resolution: {integrity: sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==} + /@babel/traverse@7.22.8: + resolution: {integrity: sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.21.4 - '@babel/generator': 7.21.5 - '@babel/helper-environment-visitor': 7.21.5 - '@babel/helper-function-name': 7.21.0 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.21.8 - '@babel/types': 7.21.5 + '@babel/code-frame': 7.22.5 + '@babel/generator': 7.22.9 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.22.7 + '@babel/types': 7.22.5 debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.21.5: - resolution: {integrity: sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==} + /@babel/types@7.22.5: + resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.21.5 - '@babel/helper-validator-identifier': 7.19.1 + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.5 to-fast-properties: 2.0.0 dev: true @@ -1486,7 +1510,7 @@ packages: '@es-joy/estraverse': 6.0.0 esprima: 4.0.1 esutils: 2.0.3 - optionator: 0.9.1 + optionator: 0.9.3 optionalDependencies: source-map: 0.7.4 dev: true @@ -1500,13 +1524,13 @@ packages: resolution: {integrity: sha512-PvggHK8390M0S/KyS2hUriNu83TLpOv2fjtuKdqE7+SeIKh7o6BgbCVjh0nxbMKVWToG2rGAaMGbOQIhxcq3ew==} engines: {node: '>=12.0.0'} dependencies: - '@babel/core': 7.21.8 - '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.41.0) + '@babel/core': 7.22.9 + '@babel/eslint-parser': 7.22.9(@babel/core@7.22.9)(eslint@8.45.0) '@es-joy/jsdoccomment': 0.38.0 - '@typescript-eslint/parser': 5.59.6(eslint@8.41.0)(typescript@5.0.4) - eslint: 8.41.0 + '@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6) + eslint: 8.45.0 esquery: 1.5.0 - typescript: 5.0.4 + typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true @@ -1529,28 +1553,28 @@ packages: jsdoc-type-pratt-parser: 4.0.0 dev: false - /@eslint-community/eslint-utils@4.4.0(eslint@8.41.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.45.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.41.0 + eslint: 8.45.0 eslint-visitor-keys: 3.4.1 dev: true - /@eslint-community/regexpp@4.5.1: - resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} + /@eslint-community/regexpp@4.6.2: + resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.0.3: - resolution: {integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==} + /@eslint/eslintrc@2.1.0: + resolution: {integrity: sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4(supports-color@8.1.1) - espree: 9.5.2 + espree: 9.6.1 globals: 13.20.0 ignore: 5.2.4 import-fresh: 3.3.0 @@ -1561,32 +1585,29 @@ packages: - supports-color dev: true - /@eslint/js@8.41.0: - resolution: {integrity: sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==} + /@eslint/js@8.44.0: + resolution: {integrity: sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@gar/promisify@1.1.3: - resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - dev: true - - /@graphql-eslint/eslint-plugin@3.18.0(@babel/core@7.21.8)(@types/node@20.2.5)(graphql@16.6.0): - resolution: {integrity: sha512-riEEfRycc0+pWxcEWqHi8woRxzg1xZqAfh9DRACJUR7bTN8dmc1N04i7+pvW4sevClUFYC2wuL1Vtr+DwzXLUg==} + /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.22.9)(@types/node@20.4.5)(graphql@16.7.1): + resolution: {integrity: sha512-RbwVlz1gcYG62sECR1u0XqMh8w5e5XMCCZoMvPQ3nJzEBCTfXLGX727GBoRmSvY1x4gJmqNZ1lsOX7lZY14RIw==} + engines: {node: '>=12'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@babel/code-frame': 7.21.4 - '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.21.8)(graphql@16.6.0) - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.21.8)(graphql@16.6.0) - '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + '@babel/code-frame': 7.22.5 + '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.22.9)(graphql@16.7.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.22.9)(graphql@16.7.1) + '@graphql-tools/utils': 9.2.1(graphql@16.7.1) chalk: 4.1.2 debug: 4.3.4(supports-color@8.1.1) - fast-glob: 3.2.12 - graphql: 16.6.0 - graphql-config: 4.5.0(@types/node@20.2.5)(graphql@16.6.0) - graphql-depth-limit: 1.1.0(graphql@16.6.0) + fast-glob: 3.3.1 + graphql: 16.7.1 + graphql-config: 4.5.0(@types/node@20.4.5)(graphql@16.7.1) + graphql-depth-limit: 1.1.0(graphql@16.7.1) lodash.lowercase: 4.3.0 - tslib: 2.5.0 + tslib: 2.6.1 transitivePeerDependencies: - '@babel/core' - '@types/node' @@ -1597,218 +1618,218 @@ packages: - utf-8-validate dev: true - /@graphql-tools/batch-execute@8.5.22(graphql@16.6.0): + /@graphql-tools/batch-execute@8.5.22(graphql@16.7.1): resolution: {integrity: sha512-hcV1JaY6NJQFQEwCKrYhpfLK8frSXDbtNMoTur98u10Cmecy1zrqNKSqhEyGetpgHxaJRqszGzKeI3RuroDN6A==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + '@graphql-tools/utils': 9.2.1(graphql@16.7.1) dataloader: 2.2.2 - graphql: 16.6.0 - tslib: 2.5.0 + graphql: 16.7.1 + tslib: 2.6.1 value-or-promise: 1.0.12 dev: true - /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.21.8)(graphql@16.6.0): + /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.22.9)(graphql@16.7.1): resolution: {integrity: sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.21.8)(graphql@16.6.0) - '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.22.9)(graphql@16.7.1) + '@graphql-tools/utils': 9.2.1(graphql@16.7.1) globby: 11.1.0 - graphql: 16.6.0 - tslib: 2.5.0 + graphql: 16.7.1 + tslib: 2.6.1 unixify: 1.0.0 transitivePeerDependencies: - '@babel/core' - supports-color dev: true - /@graphql-tools/delegate@9.0.35(graphql@16.6.0): + /@graphql-tools/delegate@9.0.35(graphql@16.7.1): resolution: {integrity: sha512-jwPu8NJbzRRMqi4Vp/5QX1vIUeUPpWmlQpOkXQD2r1X45YsVceyUUBnktCrlJlDB4jPRVy7JQGwmYo3KFiOBMA==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/batch-execute': 8.5.22(graphql@16.6.0) - '@graphql-tools/executor': 0.0.20(graphql@16.6.0) - '@graphql-tools/schema': 9.0.19(graphql@16.6.0) - '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + '@graphql-tools/batch-execute': 8.5.22(graphql@16.7.1) + '@graphql-tools/executor': 0.0.20(graphql@16.7.1) + '@graphql-tools/schema': 9.0.19(graphql@16.7.1) + '@graphql-tools/utils': 9.2.1(graphql@16.7.1) dataloader: 2.2.2 - graphql: 16.6.0 - tslib: 2.5.0 + graphql: 16.7.1 + tslib: 2.6.1 value-or-promise: 1.0.12 dev: true - /@graphql-tools/executor-graphql-ws@0.0.14(graphql@16.6.0): + /@graphql-tools/executor-graphql-ws@0.0.14(graphql@16.7.1): resolution: {integrity: sha512-P2nlkAsPZKLIXImFhj0YTtny5NQVGSsKnhi7PzXiaHSXc6KkzqbWZHKvikD4PObanqg+7IO58rKFpGXP7eeO+w==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + '@graphql-tools/utils': 9.2.1(graphql@16.7.1) '@repeaterjs/repeater': 3.0.4 - '@types/ws': 8.5.4 - graphql: 16.6.0 - graphql-ws: 5.12.1(graphql@16.6.0) + '@types/ws': 8.5.5 + graphql: 16.7.1 + graphql-ws: 5.12.1(graphql@16.7.1) isomorphic-ws: 5.0.0(ws@8.13.0) - tslib: 2.5.0 + tslib: 2.6.1 ws: 8.13.0 transitivePeerDependencies: - bufferutil - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.10(@types/node@20.2.5)(graphql@16.6.0): + /@graphql-tools/executor-http@0.1.10(@types/node@20.4.5)(graphql@16.7.1): resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + '@graphql-tools/utils': 9.2.1(graphql@16.7.1) '@repeaterjs/repeater': 3.0.4 '@whatwg-node/fetch': 0.8.8 dset: 3.1.2 extract-files: 11.0.0 - graphql: 16.6.0 - meros: 1.2.1(@types/node@20.2.5) - tslib: 2.5.0 + graphql: 16.7.1 + meros: 1.3.0(@types/node@20.4.5) + tslib: 2.6.1 value-or-promise: 1.0.12 transitivePeerDependencies: - '@types/node' dev: true - /@graphql-tools/executor-legacy-ws@0.0.11(graphql@16.6.0): + /@graphql-tools/executor-legacy-ws@0.0.11(graphql@16.7.1): resolution: {integrity: sha512-4ai+NnxlNfvIQ4c70hWFvOZlSUN8lt7yc+ZsrwtNFbFPH/EroIzFMapAxM9zwyv9bH38AdO3TQxZ5zNxgBdvUw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.6.0) - '@types/ws': 8.5.4 - graphql: 16.6.0 + '@graphql-tools/utils': 9.2.1(graphql@16.7.1) + '@types/ws': 8.5.5 + graphql: 16.7.1 isomorphic-ws: 5.0.0(ws@8.13.0) - tslib: 2.5.0 + tslib: 2.6.1 ws: 8.13.0 transitivePeerDependencies: - bufferutil - utf-8-validate dev: true - /@graphql-tools/executor@0.0.20(graphql@16.6.0): + /@graphql-tools/executor@0.0.20(graphql@16.7.1): resolution: {integrity: sha512-GdvNc4vszmfeGvUqlcaH1FjBoguvMYzxAfT6tDd4/LgwymepHhinqLNA5otqwVLW+JETcDaK7xGENzFomuE6TA==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.6.0) - '@graphql-typed-document-node/core': 3.2.0(graphql@16.6.0) + '@graphql-tools/utils': 9.2.1(graphql@16.7.1) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.7.1) '@repeaterjs/repeater': 3.0.4 - graphql: 16.6.0 - tslib: 2.5.0 + graphql: 16.7.1 + tslib: 2.6.1 value-or-promise: 1.0.12 dev: true - /@graphql-tools/graphql-file-loader@7.5.17(graphql@16.6.0): + /@graphql-tools/graphql-file-loader@7.5.17(graphql@16.7.1): resolution: {integrity: sha512-hVwwxPf41zOYgm4gdaZILCYnKB9Zap7Ys9OhY1hbwuAuC4MMNY9GpUjoTU3CQc3zUiPoYStyRtUGkHSJZ3HxBw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/import': 6.7.18(graphql@16.6.0) - '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + '@graphql-tools/import': 6.7.18(graphql@16.7.1) + '@graphql-tools/utils': 9.2.1(graphql@16.7.1) globby: 11.1.0 - graphql: 16.6.0 - tslib: 2.5.0 + graphql: 16.7.1 + tslib: 2.6.1 unixify: 1.0.0 dev: true - /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.21.8)(graphql@16.6.0): + /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.22.9)(graphql@16.7.1): resolution: {integrity: sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@babel/parser': 7.21.8 - '@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.21.8) - '@babel/traverse': 7.21.5 - '@babel/types': 7.21.5 - '@graphql-tools/utils': 9.2.1(graphql@16.6.0) - graphql: 16.6.0 - tslib: 2.5.0 + '@babel/parser': 7.22.7 + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.9) + '@babel/traverse': 7.22.8 + '@babel/types': 7.22.5 + '@graphql-tools/utils': 9.2.1(graphql@16.7.1) + graphql: 16.7.1 + tslib: 2.6.1 transitivePeerDependencies: - '@babel/core' - supports-color dev: true - /@graphql-tools/import@6.7.18(graphql@16.6.0): + /@graphql-tools/import@6.7.18(graphql@16.7.1): resolution: {integrity: sha512-XQDdyZTp+FYmT7as3xRWH/x8dx0QZA2WZqfMF5EWb36a0PiH7WwlRQYIdyYXj8YCLpiWkeBXgBRHmMnwEYR8iQ==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.6.0) - graphql: 16.6.0 + '@graphql-tools/utils': 9.2.1(graphql@16.7.1) + graphql: 16.7.1 resolve-from: 5.0.0 - tslib: 2.5.0 + tslib: 2.6.1 dev: true - /@graphql-tools/json-file-loader@7.4.18(graphql@16.6.0): + /@graphql-tools/json-file-loader@7.4.18(graphql@16.7.1): resolution: {integrity: sha512-AJ1b6Y1wiVgkwsxT5dELXhIVUPs/u3VZ8/0/oOtpcoyO/vAeM5rOvvWegzicOOnQw8G45fgBRMkkRfeuwVt6+w==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + '@graphql-tools/utils': 9.2.1(graphql@16.7.1) globby: 11.1.0 - graphql: 16.6.0 - tslib: 2.5.0 + graphql: 16.7.1 + tslib: 2.6.1 unixify: 1.0.0 dev: true - /@graphql-tools/load@7.8.14(graphql@16.6.0): + /@graphql-tools/load@7.8.14(graphql@16.7.1): resolution: {integrity: sha512-ASQvP+snHMYm+FhIaLxxFgVdRaM0vrN9wW2BKInQpktwWTXVyk+yP5nQUCEGmn0RTdlPKrffBaigxepkEAJPrg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/schema': 9.0.19(graphql@16.6.0) - '@graphql-tools/utils': 9.2.1(graphql@16.6.0) - graphql: 16.6.0 + '@graphql-tools/schema': 9.0.19(graphql@16.7.1) + '@graphql-tools/utils': 9.2.1(graphql@16.7.1) + graphql: 16.7.1 p-limit: 3.1.0 - tslib: 2.5.0 + tslib: 2.6.1 dev: true - /@graphql-tools/merge@8.4.2(graphql@16.6.0): + /@graphql-tools/merge@8.4.2(graphql@16.7.1): resolution: {integrity: sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.6.0) - graphql: 16.6.0 - tslib: 2.5.0 + '@graphql-tools/utils': 9.2.1(graphql@16.7.1) + graphql: 16.7.1 + tslib: 2.6.1 dev: true - /@graphql-tools/schema@9.0.19(graphql@16.6.0): + /@graphql-tools/schema@9.0.19(graphql@16.7.1): resolution: {integrity: sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/merge': 8.4.2(graphql@16.6.0) - '@graphql-tools/utils': 9.2.1(graphql@16.6.0) - graphql: 16.6.0 - tslib: 2.5.0 + '@graphql-tools/merge': 8.4.2(graphql@16.7.1) + '@graphql-tools/utils': 9.2.1(graphql@16.7.1) + graphql: 16.7.1 + tslib: 2.6.1 value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.2.5)(graphql@16.6.0): + /@graphql-tools/url-loader@7.17.18(@types/node@20.4.5)(graphql@16.7.1): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: '@ardatan/sync-fetch': 0.0.1 - '@graphql-tools/delegate': 9.0.35(graphql@16.6.0) - '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.6.0) - '@graphql-tools/executor-http': 0.1.10(@types/node@20.2.5)(graphql@16.6.0) - '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.6.0) - '@graphql-tools/utils': 9.2.1(graphql@16.6.0) - '@graphql-tools/wrap': 9.4.2(graphql@16.6.0) - '@types/ws': 8.5.4 + '@graphql-tools/delegate': 9.0.35(graphql@16.7.1) + '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.7.1) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.4.5)(graphql@16.7.1) + '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.7.1) + '@graphql-tools/utils': 9.2.1(graphql@16.7.1) + '@graphql-tools/wrap': 9.4.2(graphql@16.7.1) + '@types/ws': 8.5.5 '@whatwg-node/fetch': 0.8.8 - graphql: 16.6.0 + graphql: 16.7.1 isomorphic-ws: 5.0.0(ws@8.13.0) - tslib: 2.5.0 + tslib: 2.6.1 value-or-promise: 1.0.12 ws: 8.13.0 transitivePeerDependencies: @@ -1818,35 +1839,35 @@ packages: - utf-8-validate dev: true - /@graphql-tools/utils@9.2.1(graphql@16.6.0): + /@graphql-tools/utils@9.2.1(graphql@16.7.1): resolution: {integrity: sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.6.0) - graphql: 16.6.0 - tslib: 2.5.0 + '@graphql-typed-document-node/core': 3.2.0(graphql@16.7.1) + graphql: 16.7.1 + tslib: 2.6.1 dev: true - /@graphql-tools/wrap@9.4.2(graphql@16.6.0): + /@graphql-tools/wrap@9.4.2(graphql@16.7.1): resolution: {integrity: sha512-DFcd9r51lmcEKn0JW43CWkkI2D6T9XI1juW/Yo86i04v43O9w2/k4/nx2XTJv4Yv+iXwUw7Ok81PGltwGJSDSA==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/delegate': 9.0.35(graphql@16.6.0) - '@graphql-tools/schema': 9.0.19(graphql@16.6.0) - '@graphql-tools/utils': 9.2.1(graphql@16.6.0) - graphql: 16.6.0 - tslib: 2.5.0 + '@graphql-tools/delegate': 9.0.35(graphql@16.7.1) + '@graphql-tools/schema': 9.0.19(graphql@16.7.1) + '@graphql-tools/utils': 9.2.1(graphql@16.7.1) + graphql: 16.7.1 + tslib: 2.6.1 value-or-promise: 1.0.12 dev: true - /@graphql-typed-document-node/core@3.2.0(graphql@16.6.0): + /@graphql-typed-document-node/core@3.2.0(graphql@16.7.1): resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - graphql: 16.6.0 + graphql: 16.7.1 dev: true /@hkdobrev/run-if-changed@0.3.1: @@ -1862,8 +1883,8 @@ packages: - supports-color dev: true - /@humanwhocodes/config-array@0.11.8: - resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} + /@humanwhocodes/config-array@0.11.10: + resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -1888,7 +1909,7 @@ packages: dependencies: string-width: 5.1.2 string-width-cjs: /string-width@4.2.3 - strip-ansi: 7.0.1 + strip-ansi: 7.1.0 strip-ansi-cjs: /strip-ansi@6.0.1 wrap-ansi: 8.1.0 wrap-ansi-cjs: /wrap-ansi@7.0.0 @@ -1944,8 +1965,8 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@next/eslint-plugin-next@13.4.2: - resolution: {integrity: sha512-ZeFWgrxwckxTpYM+ANeUL9E7LOGPbZKmI94LJIjbDU69iEIgqd4WD0l2pVbOJMr/+vgoZmJ9Dx1m0WJ7WScXHA==} + /@next/eslint-plugin-next@13.4.12: + resolution: {integrity: sha512-6rhK9CdxEgj/j1qvXIyLTWEaeFv7zOK8yJMulz3Owel0uek0U9MJCGzmKgYxM3aAUBo3gKeywCZKyQnJKto60A==} dependencies: glob: 7.1.7 dev: true @@ -1983,137 +2004,110 @@ packages: fastq: 1.15.0 dev: true - /@npmcli/fs@2.1.2: - resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - '@gar/promisify': 1.1.3 - semver: 7.5.1 - dev: true - - /@npmcli/move-file@2.0.1: - resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This functionality has been moved to @npmcli/fs + /@npmcli/fs@3.1.0: + resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - mkdirp: 1.0.4 - rimraf: 3.0.2 + semver: 7.5.4 dev: true - /@octokit/auth-token@3.0.3: - resolution: {integrity: sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==} - engines: {node: '>= 14'} - dependencies: - '@octokit/types': 9.2.2 + /@octokit/auth-token@4.0.0: + resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} + engines: {node: '>= 18'} dev: true - /@octokit/core@4.2.0: - resolution: {integrity: sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg==} - engines: {node: '>= 14'} + /@octokit/core@5.0.0: + resolution: {integrity: sha512-YbAtMWIrbZ9FCXbLwT9wWB8TyLjq9mxpKdgB3dUNxQcIVTf9hJ70gRPwAcqGZdY6WdJPZ0I7jLaaNDCiloGN2A==} + engines: {node: '>= 18'} dependencies: - '@octokit/auth-token': 3.0.3 - '@octokit/graphql': 5.0.5 - '@octokit/request': 6.2.3 - '@octokit/request-error': 3.0.3 - '@octokit/types': 9.2.2 + '@octokit/auth-token': 4.0.0 + '@octokit/graphql': 7.0.1 + '@octokit/request': 8.1.1 + '@octokit/request-error': 5.0.0 + '@octokit/types': 11.1.0 before-after-hook: 2.2.3 universal-user-agent: 6.0.0 - transitivePeerDependencies: - - encoding dev: true - /@octokit/endpoint@7.0.5: - resolution: {integrity: sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==} - engines: {node: '>= 14'} + /@octokit/endpoint@9.0.0: + resolution: {integrity: sha512-szrQhiqJ88gghWY2Htt8MqUDO6++E/EIXqJ2ZEp5ma3uGS46o7LZAzSLt49myB7rT+Hfw5Y6gO3LmOxGzHijAQ==} + engines: {node: '>= 18'} dependencies: - '@octokit/types': 9.2.2 + '@octokit/types': 11.1.0 is-plain-object: 5.0.0 universal-user-agent: 6.0.0 dev: true - /@octokit/graphql@5.0.5: - resolution: {integrity: sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==} - engines: {node: '>= 14'} + /@octokit/graphql@7.0.1: + resolution: {integrity: sha512-T5S3oZ1JOE58gom6MIcrgwZXzTaxRnxBso58xhozxHpOqSTgDS6YNeEUvZ/kRvXgPrRz/KHnZhtb7jUMRi9E6w==} + engines: {node: '>= 18'} dependencies: - '@octokit/request': 6.2.3 - '@octokit/types': 9.2.2 + '@octokit/request': 8.1.1 + '@octokit/types': 11.1.0 universal-user-agent: 6.0.0 - transitivePeerDependencies: - - encoding dev: true - /@octokit/openapi-types@17.1.2: - resolution: {integrity: sha512-OaS7Ol4Y+U50PbejfzQflGWRMxO04nYWO5ZBv6JerqMKE2WS/tI9VoVDDPXHBlRMGG2fOdKwtVGlFfc7AVIstw==} + /@octokit/openapi-types@18.0.0: + resolution: {integrity: sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==} dev: true - /@octokit/plugin-paginate-rest@6.1.0(@octokit/core@4.2.0): - resolution: {integrity: sha512-5T4iXjJdYCVA1rdWS1C+uZV9AvtZY9QgTG74kFiSFVj94dZXowyi/YK8f4SGjZaL69jZthGlBaDKRdCMCF9log==} - engines: {node: '>= 14'} + /@octokit/plugin-paginate-rest@8.0.0(@octokit/core@5.0.0): + resolution: {integrity: sha512-2xZ+baZWUg+qudVXnnvXz7qfrTmDeYPCzangBVq/1gXxii/OiS//4shJp9dnCCvj1x+JAm9ji1Egwm1BA47lPQ==} + engines: {node: '>= 18'} peerDependencies: - '@octokit/core': '>=4' + '@octokit/core': '>=5' dependencies: - '@octokit/core': 4.2.0 - '@octokit/types': 9.2.2 + '@octokit/core': 5.0.0 + '@octokit/types': 11.1.0 dev: true - /@octokit/plugin-request-log@1.0.4(@octokit/core@4.2.0): - resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} + /@octokit/plugin-retry@6.0.0(@octokit/core@5.0.0): + resolution: {integrity: sha512-a1/A4A+PB1QoAHQfLJxGHhLfSAT03bR1jJz3GgQJZvty2ozawFWs93MiBQXO7SL2YbO7CIq0Goj4qLOBj8JeMQ==} + engines: {node: '>= 18'} peerDependencies: - '@octokit/core': '>=3' + '@octokit/core': '>=5' dependencies: - '@octokit/core': 4.2.0 + '@octokit/core': 5.0.0 + '@octokit/request-error': 5.0.0 + '@octokit/types': 11.1.0 + bottleneck: 2.19.5 dev: true - /@octokit/plugin-rest-endpoint-methods@7.1.0(@octokit/core@4.2.0): - resolution: {integrity: sha512-SWwz/hc47GaKJR6BlJI4WIVRodbAFRvrR0QRPSoPMs7krb7anYPML3psg+ThEz/kcwOdSNh/oA8qThi/Wvs4Fw==} - engines: {node: '>= 14'} + /@octokit/plugin-throttling@7.0.0(@octokit/core@5.0.0): + resolution: {integrity: sha512-KL2k/d0uANc8XqP5S64YcNFCudR3F5AaKO39XWdUtlJIjT9Ni79ekWJ6Kj5xvAw87udkOMEPcVf9xEge2+ahew==} + engines: {node: '>= 18'} peerDependencies: - '@octokit/core': '>=3' + '@octokit/core': ^5.0.0 dependencies: - '@octokit/core': 4.2.0 - '@octokit/types': 9.2.2 - deprecation: 2.3.1 + '@octokit/core': 5.0.0 + '@octokit/types': 11.1.0 + bottleneck: 2.19.5 dev: true - /@octokit/request-error@3.0.3: - resolution: {integrity: sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==} - engines: {node: '>= 14'} + /@octokit/request-error@5.0.0: + resolution: {integrity: sha512-1ue0DH0Lif5iEqT52+Rf/hf0RmGO9NWFjrzmrkArpG9trFfDM/efx00BJHdLGuro4BR/gECxCU2Twf5OKrRFsQ==} + engines: {node: '>= 18'} dependencies: - '@octokit/types': 9.2.2 + '@octokit/types': 11.1.0 deprecation: 2.3.1 once: 1.4.0 dev: true - /@octokit/request@6.2.3: - resolution: {integrity: sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==} - engines: {node: '>= 14'} + /@octokit/request@8.1.1: + resolution: {integrity: sha512-8N+tdUz4aCqQmXl8FpHYfKG9GelDFd7XGVzyN8rc6WxVlYcfpHECnuRkgquzz+WzvHTK62co5di8gSXnzASZPQ==} + engines: {node: '>= 18'} dependencies: - '@octokit/endpoint': 7.0.5 - '@octokit/request-error': 3.0.3 - '@octokit/types': 9.2.2 + '@octokit/endpoint': 9.0.0 + '@octokit/request-error': 5.0.0 + '@octokit/types': 11.1.0 is-plain-object: 5.0.0 - node-fetch: 2.6.11 universal-user-agent: 6.0.0 - transitivePeerDependencies: - - encoding - dev: true - - /@octokit/rest@19.0.8: - resolution: {integrity: sha512-/PKrzqn+zDzXKwBMwLI2IKrvk8yv8cedJOdcmxrjR3gmu6UIzURhP5oQj+4qkn7+uQi1gg7QqV4SqlaQ1HYW1Q==} - engines: {node: '>= 14'} - dependencies: - '@octokit/core': 4.2.0 - '@octokit/plugin-paginate-rest': 6.1.0(@octokit/core@4.2.0) - '@octokit/plugin-request-log': 1.0.4(@octokit/core@4.2.0) - '@octokit/plugin-rest-endpoint-methods': 7.1.0(@octokit/core@4.2.0) - transitivePeerDependencies: - - encoding dev: true - /@octokit/types@9.2.2: - resolution: {integrity: sha512-9BjDxjgQIvCjNWZsbqyH5QC2Yni16oaE6xL+8SUBMzcYPF4TGQBXGA97Cl3KceK9mwiNMb1mOYCz6FbCCLEL+g==} + /@octokit/types@11.1.0: + resolution: {integrity: sha512-Fz0+7GyLm/bHt8fwEqgvRBWwIV1S6wRRyq+V6exRKLVWaKGsuy6H9QFYeBVDV7rK6fO3XwHgQOPxv+cLj2zpXQ==} dependencies: - '@octokit/openapi-types': 17.1.2 + '@octokit/openapi-types': 18.0.0 dev: true /@peculiar/asn1-schema@2.3.6: @@ -2121,14 +2115,14 @@ packages: dependencies: asn1js: 3.0.5 pvtsutils: 1.3.2 - tslib: 2.5.0 + tslib: 2.6.1 dev: true /@peculiar/json-schema@1.1.12: resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} engines: {node: '>=8.0.0'} dependencies: - tslib: 2.5.0 + tslib: 2.6.1 dev: true /@peculiar/webcrypto@1.4.3: @@ -2138,7 +2132,7 @@ packages: '@peculiar/asn1-schema': 2.3.6 '@peculiar/json-schema': 1.1.12 pvtsutils: 1.3.2 - tslib: 2.5.0 + tslib: 2.6.1 webcrypto-core: 1.7.7 dev: true @@ -2149,16 +2143,16 @@ packages: dev: true optional: true - /@pkgr/utils@2.4.0: - resolution: {integrity: sha512-2OCURAmRtdlL8iUDTypMrrxfwe8frXTeXaxGsVOaYtc/wrUyk8Z/0OBetM7cdlsy7ZFWlMX72VogKeh+A4Xcjw==} + /@pkgr/utils@2.4.2: + resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dependencies: cross-spawn: 7.0.3 - fast-glob: 3.2.12 + fast-glob: 3.3.1 is-glob: 4.0.3 open: 9.1.0 picocolors: 1.0.0 - tslib: 2.5.0 + tslib: 2.6.1 dev: true /@pnpm/config.env-replace@1.1.0: @@ -2173,8 +2167,8 @@ packages: graceful-fs: 4.2.10 dev: true - /@pnpm/npm-conf@2.2.0: - resolution: {integrity: sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==} + /@pnpm/npm-conf@2.2.2: + resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} engines: {node: '>=12'} dependencies: '@pnpm/config.env-replace': 1.1.0 @@ -2186,102 +2180,99 @@ packages: resolution: {integrity: sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==} dev: true - /@rushstack/eslint-patch@1.2.0: - resolution: {integrity: sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==} + /@rushstack/eslint-patch@1.3.2: + resolution: {integrity: sha512-V+MvGwaHH03hYhY+k6Ef/xKd6RYlc4q8WBx+2ANmipHJcKuktNcI/NgEsJgdSUF6Lw32njT6OnrRsKYCdgHjYw==} dev: true - /@semantic-release/commit-analyzer@9.0.2(semantic-release@21.0.2): - resolution: {integrity: sha512-E+dr6L+xIHZkX4zNMe6Rnwg4YQrWNXK+rNsvwOPpdFppvZO1olE2fIgWhv89TkQErygevbjsZFSIxp+u6w2e5g==} - engines: {node: '>=14.17'} + /@semantic-release/commit-analyzer@10.0.1(semantic-release@21.0.7): + resolution: {integrity: sha512-9ejHzTAijYs9z246sY/dKBatmOPcd0GQ7lH4MgLCkv1q4GCiDZRkjHJkaQZXZVaK7mJybS+sH3Ng6G8i3pYMGQ==} + engines: {node: '>=18'} peerDependencies: - semantic-release: '>=18.0.0-beta.1' + semantic-release: '>=20.1.0' dependencies: - conventional-changelog-angular: 5.0.13 - conventional-commits-filter: 2.0.7 - conventional-commits-parser: 3.2.4 + conventional-changelog-angular: 6.0.0 + conventional-commits-filter: 3.0.0 + conventional-commits-parser: 4.0.0 debug: 4.3.4(supports-color@8.1.1) import-from: 4.0.0 - lodash: 4.17.21 + lodash-es: 4.17.21 micromatch: 4.0.5 - semantic-release: 21.0.2(typescript@5.0.4) + semantic-release: 21.0.7 transitivePeerDependencies: - supports-color dev: true - /@semantic-release/error@3.0.0: - resolution: {integrity: sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==} - engines: {node: '>=14.17'} + /@semantic-release/error@4.0.0: + resolution: {integrity: sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==} + engines: {node: '>=18'} dev: true - /@semantic-release/github@8.0.7(semantic-release@21.0.2): - resolution: {integrity: sha512-VtgicRIKGvmTHwm//iqTh/5NGQwsncOMR5vQK9pMT92Aem7dv37JFKKRuulUsAnUOIlO4G8wH3gPiBAA0iW0ww==} - engines: {node: '>=14.17'} + /@semantic-release/github@9.0.4(semantic-release@21.0.7): + resolution: {integrity: sha512-kQCGFAsBErvCR6hzNuzu63cj4erQN2krm9zQlg8vl4j5X0mL0d/Ras0wmL5Gkr1TuSS2lweME7M4J5zvtDDDSA==} + engines: {node: '>=18'} peerDependencies: - semantic-release: '>=18.0.0-beta.1' + semantic-release: '>=20.1.0' dependencies: - '@octokit/rest': 19.0.8 - '@semantic-release/error': 3.0.0 - aggregate-error: 3.1.0 - bottleneck: 2.19.5 + '@octokit/core': 5.0.0 + '@octokit/plugin-paginate-rest': 8.0.0(@octokit/core@5.0.0) + '@octokit/plugin-retry': 6.0.0(@octokit/core@5.0.0) + '@octokit/plugin-throttling': 7.0.0(@octokit/core@5.0.0) + '@semantic-release/error': 4.0.0 + aggregate-error: 4.0.1 debug: 4.3.4(supports-color@8.1.1) dir-glob: 3.0.1 - fs-extra: 11.1.1 - globby: 11.1.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 + globby: 13.2.2 + http-proxy-agent: 7.0.0 + https-proxy-agent: 7.0.1 issue-parser: 6.0.0 - lodash: 4.17.21 + lodash-es: 4.17.21 mime: 3.0.0 - p-filter: 2.1.0 - p-retry: 4.6.2 - semantic-release: 21.0.2(typescript@5.0.4) - url-join: 4.0.1 + p-filter: 3.0.0 + semantic-release: 21.0.7 + url-join: 5.0.0 transitivePeerDependencies: - - encoding - supports-color dev: true - /@semantic-release/npm@10.0.3(semantic-release@21.0.2)(typescript@5.0.4): - resolution: {integrity: sha512-Chbv3kX4o+y+r1X6hsqBVB8NFbSVfiNlYOqMG6o9Wc8r5Y4cjxfbaMCuJ++XAtw3YXYX/NVD05cPzBi4Orjusg==} + /@semantic-release/npm@10.0.4(semantic-release@21.0.7): + resolution: {integrity: sha512-6R3timIQ7VoL2QWRkc9DG8v74RQtRp7UOe/2KbNaqwJ815qOibAv65bH3RtTEhs4axEaHoZf7HDgFs5opaZ9Jw==} engines: {node: '>=18'} peerDependencies: semantic-release: '>=20.1.0' dependencies: - '@semantic-release/error': 3.0.0 + '@semantic-release/error': 4.0.0 aggregate-error: 4.0.1 - execa: 7.1.1 + execa: 7.2.0 fs-extra: 11.1.1 lodash-es: 4.17.21 nerf-dart: 1.0.0 normalize-url: 8.0.0 - npm: 9.6.6 + npm: 9.8.1 rc: 1.2.8 - read-pkg: 8.0.0(typescript@5.0.4) + read-pkg: 8.0.0 registry-auth-token: 5.0.2 - semantic-release: 21.0.2(typescript@5.0.4) - semver: 7.5.1 - tempy: 3.0.0 - transitivePeerDependencies: - - typescript + semantic-release: 21.0.7 + semver: 7.5.4 + tempy: 3.1.0 dev: true - /@semantic-release/release-notes-generator@11.0.1(semantic-release@21.0.2): - resolution: {integrity: sha512-4deWsiY4Rg80oc9Ms11N20BIDgYkPMys4scNYQpi2Njdrtw5Z55nXKNsUN3kn6Sy/nI9dqqbp5L63TL4luI5Bw==} + /@semantic-release/release-notes-generator@11.0.4(semantic-release@21.0.7): + resolution: {integrity: sha512-j0Znnwq9IdWTCGzqSlkLv4MpALTsVDZxcVESzJCNN8pK2BYQlYaKsdZ1Ea/+7RlppI3vjhEi33ZKmjSGY1FLKw==} engines: {node: '>=18'} peerDependencies: semantic-release: '>=20.1.0' dependencies: - conventional-changelog-angular: 5.0.13 - conventional-changelog-writer: 5.0.1 - conventional-commits-filter: 2.0.7 - conventional-commits-parser: 3.2.4 + conventional-changelog-angular: 6.0.0 + conventional-changelog-writer: 6.0.1 + conventional-commits-filter: 3.0.0 + conventional-commits-parser: 4.0.0 debug: 4.3.4(supports-color@8.1.1) - get-stream: 6.0.1 + get-stream: 7.0.1 import-from: 4.0.0 into-stream: 7.0.0 lodash-es: 4.17.21 - read-pkg-up: 9.1.0 - semantic-release: 21.0.2(typescript@5.0.4) + read-pkg-up: 10.0.0 + semantic-release: 21.0.7 transitivePeerDependencies: - supports-color dev: true @@ -2295,17 +2286,17 @@ packages: resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} dev: true - /@types/debug@4.1.7: - resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==} + /@types/debug@4.1.8: + resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==} dependencies: '@types/ms': 0.7.31 dev: true - /@types/eslint@8.37.0: - resolution: {integrity: sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==} + /@types/eslint@8.44.1: + resolution: {integrity: sha512-XpNDc4Z5Tb4x+SW1MriMVeIsMoONHCkWFMkR/aPJbzEsxqHy+4Glu/BqTdPrApfDeMaXbtNh6bseNgl5KaWrSg==} dependencies: '@types/estree': 1.0.1 - '@types/json-schema': 7.0.11 + '@types/json-schema': 7.0.12 dev: true /@types/esquery@1.5.0: @@ -2318,8 +2309,8 @@ packages: resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} dev: true - /@types/json-schema@7.0.11: - resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + /@types/json-schema@7.0.12: + resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: true /@types/json5@0.0.29: @@ -2329,11 +2320,11 @@ packages: /@types/lodash.defaultsdeep@4.6.7: resolution: {integrity: sha512-D+AUxs64qehDMkbfFoskG0XsIOh2CHBGqYfcQcubLbZSFCGKJKS885su3a97huqBNHj+p9of9UZ/uUIP46wUGQ==} dependencies: - '@types/lodash': 4.14.194 + '@types/lodash': 4.14.196 dev: true - /@types/lodash@4.14.194: - resolution: {integrity: sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==} + /@types/lodash@4.14.196: + resolution: {integrity: sha512-22y3o88f4a94mKljsZcanlNWPzO0uBsBdzLAngf2tp533LzZcQzb6+eZPJ+vCTt+bqF2XnvT9gejTLsAcJAJyQ==} dev: true /@types/minimist@1.2.2: @@ -2348,18 +2339,14 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node@20.2.5: - resolution: {integrity: sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==} + /@types/node@20.4.5: + resolution: {integrity: sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==} dev: true /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true - /@types/retry@0.12.0: - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - dev: true - /@types/semver@7.5.0: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true @@ -2368,14 +2355,14 @@ packages: resolution: {integrity: sha512-sMUf6orVVBVkpUEynLJu+Vt192vpG6CnPQA4Nk+i0hWoRGk6kxLjbr9gvISWfKb2IJNSoX/rUWbig32iP+FjWA==} dev: true - /@types/ws@8.5.4: - resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} + /@types/ws@8.5.5: + resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} dependencies: - '@types/node': 20.2.5 + '@types/node': 20.4.5 dev: true - /@typescript-eslint/eslint-plugin@5.59.5(@typescript-eslint/parser@5.59.6)(eslint@8.41.0)(typescript@5.0.4): - resolution: {integrity: sha512-feA9xbVRWJZor+AnLNAr7A8JRWeZqHUf4T9tlP+TN04b05pFVhO5eN7/O93Y/1OUlLMHKbnJisgDURs/qvtqdg==} + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)(typescript@5.1.6): + resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -2385,38 +2372,38 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 5.59.6(eslint@8.41.0)(typescript@5.0.4) - '@typescript-eslint/scope-manager': 5.59.5 - '@typescript-eslint/type-utils': 5.59.5(eslint@8.41.0)(typescript@5.0.4) - '@typescript-eslint/utils': 5.59.5(eslint@8.41.0)(typescript@5.0.4) + '@eslint-community/regexpp': 4.6.2 + '@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/type-utils': 5.62.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.45.0)(typescript@5.1.6) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.41.0 - grapheme-splitter: 1.0.4 + eslint: 8.45.0 + graphemer: 1.4.0 ignore: 5.2.4 natural-compare-lite: 1.4.0 - semver: 7.5.1 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + semver: 7.5.4 + tsutils: 3.21.0(typescript@5.1.6) + typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/experimental-utils@5.59.5(eslint@8.41.0)(typescript@5.0.4): - resolution: {integrity: sha512-ArcSSBifznsKNA/p4h2w3Olt/T8AZf3bNglxD8OnuTsSDJbRpjPPmI8qpr6ijyvk1J/T3GMJHwRIluS/Kuz9kA==} + /@typescript-eslint/experimental-utils@5.62.0(eslint@8.45.0)(typescript@5.1.6): + resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.59.5(eslint@8.41.0)(typescript@5.0.4) - eslint: 8.41.0 + '@typescript-eslint/utils': 5.62.0(eslint@8.45.0)(typescript@5.1.6) + eslint: 8.45.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/parser@5.59.6(eslint@8.41.0)(typescript@5.0.4): - resolution: {integrity: sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA==} + /@typescript-eslint/parser@5.62.0(eslint@8.45.0)(typescript@5.1.6): + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -2425,34 +2412,55 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.59.6 - '@typescript-eslint/types': 5.59.6 - '@typescript-eslint/typescript-estree': 5.59.6(typescript@5.0.4) + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.41.0 - typescript: 5.0.4 + eslint: 8.45.0 + typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@5.59.5: - resolution: {integrity: sha512-jVecWwnkX6ZgutF+DovbBJirZcAxgxC0EOHYt/niMROf8p4PwxxG32Qdhj/iIQQIuOflLjNkxoXyArkcIP7C3A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/parser@6.2.0(eslint@8.45.0)(typescript@5.1.6): + resolution: {integrity: sha512-igVYOqtiK/UsvKAmmloQAruAdUHihsOCvplJpplPZ+3h4aDkC/UKZZNKgB6h93ayuYLuEymU3h8nF1xMRbh37g==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@typescript-eslint/types': 5.59.5 - '@typescript-eslint/visitor-keys': 5.59.5 + '@typescript-eslint/scope-manager': 6.2.0 + '@typescript-eslint/types': 6.2.0 + '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.2.0 + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.45.0 + typescript: 5.1.6 + transitivePeerDependencies: + - supports-color dev: true - /@typescript-eslint/scope-manager@5.59.6: - resolution: {integrity: sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==} + /@typescript-eslint/scope-manager@5.62.0: + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.59.6 - '@typescript-eslint/visitor-keys': 5.59.6 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/type-utils@5.59.5(eslint@8.41.0)(typescript@5.0.4): - resolution: {integrity: sha512-4eyhS7oGym67/pSxA2mmNq7X164oqDYNnZCUayBwJZIRVvKpBCMBzFnFxjeoDeShjtO6RQBHBuwybuX3POnDqg==} + /@typescript-eslint/scope-manager@6.2.0: + resolution: {integrity: sha512-1ZMNVgm5nnHURU8ZSJ3snsHzpFeNK84rdZjluEVBGNu7jDymfqceB3kdIZ6A4xCfEFFhRIB6rF8q/JIqJd2R0Q==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.2.0 + '@typescript-eslint/visitor-keys': 6.2.0 + dev: true + + /@typescript-eslint/type-utils@5.62.0(eslint@8.45.0)(typescript@5.1.6): + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -2461,28 +2469,28 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.59.5(typescript@5.0.4) - '@typescript-eslint/utils': 5.59.5(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.45.0)(typescript@5.1.6) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.41.0 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + eslint: 8.45.0 + tsutils: 3.21.0(typescript@5.1.6) + typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@5.59.5: - resolution: {integrity: sha512-xkfRPHbqSH4Ggx4eHRIO/eGL8XL4Ysb4woL8c87YuAo8Md7AUjyWKa9YMwTL519SyDPrfEgKdewjkxNCVeJW7w==} + /@typescript-eslint/types@5.62.0: + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@5.59.6: - resolution: {integrity: sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/types@6.2.0: + resolution: {integrity: sha512-1nRRaDlp/XYJQLvkQJG5F3uBTno5SHPT7XVcJ5n1/k2WfNI28nJsvLakxwZRNY5spuatEKO7d5nZWsQpkqXwBA==} + engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.59.5(typescript@5.0.4): - resolution: {integrity: sha512-+XXdLN2CZLZcD/mO7mQtJMvCkzRfmODbeSKuMY/yXbGkzvA9rJyDY5qDYNoiz2kP/dmyAxXquL2BvLQLJFPQIg==} + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.1.6): + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -2490,72 +2498,91 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.59.5 - '@typescript-eslint/visitor-keys': 5.59.5 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.1 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + semver: 7.5.4 + tsutils: 3.21.0(typescript@5.1.6) + typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@5.59.6(typescript@5.0.4): - resolution: {integrity: sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/typescript-estree@6.2.0(typescript@5.1.6): + resolution: {integrity: sha512-Mts6+3HQMSM+LZCglsc2yMIny37IhUgp1Qe8yJUYVyO6rHP7/vN0vajKu3JvHCBIy8TSiKddJ/Zwu80jhnGj1w==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.59.6 - '@typescript-eslint/visitor-keys': 5.59.6 + '@typescript-eslint/types': 6.2.0 + '@typescript-eslint/visitor-keys': 6.2.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.1 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + semver: 7.5.4 + ts-api-utils: 1.0.1(typescript@5.1.6) + typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.59.5(eslint@8.41.0)(typescript@5.0.4): - resolution: {integrity: sha512-sCEHOiw+RbyTii9c3/qN74hYDPNORb8yWCoPLmB7BIflhplJ65u2PBpdRla12e3SSTJ2erRkPjz7ngLHhUegxA==} + /@typescript-eslint/utils@5.62.0(eslint@8.45.0)(typescript@5.1.6): + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0) - '@types/json-schema': 7.0.11 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) + '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 5.59.5 - '@typescript-eslint/types': 5.59.5 - '@typescript-eslint/typescript-estree': 5.59.5(typescript@5.0.4) - eslint: 8.41.0 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) + eslint: 8.45.0 eslint-scope: 5.1.1 - semver: 7.5.1 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/utils@6.2.0(eslint@8.45.0)(typescript@5.1.6): + resolution: {integrity: sha512-RCFrC1lXiX1qEZN8LmLrxYRhOkElEsPKTVSNout8DMzf8PeWoQG7Rxz2SadpJa3VSh5oYKGwt7j7X/VRg+Y3OQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) + '@types/json-schema': 7.0.12 + '@types/semver': 7.5.0 + '@typescript-eslint/scope-manager': 6.2.0 + '@typescript-eslint/types': 6.2.0 + '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) + eslint: 8.45.0 + semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@5.59.5: - resolution: {integrity: sha512-qL+Oz+dbeBRTeyJTIy0eniD3uvqU7x+y1QceBismZ41hd4aBSRh8UAw4pZP0+XzLuPZmx4raNMq/I+59W2lXKA==} + /@typescript-eslint/visitor-keys@5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.59.5 + '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.1 dev: true - /@typescript-eslint/visitor-keys@5.59.6: - resolution: {integrity: sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/visitor-keys@6.2.0: + resolution: {integrity: sha512-QbaYUQVKKo9bgCzpjz45llCfwakyoxHetIy8CAvYCtd16Zu1KrpzNHofwF8kGkpPOxZB2o6kz+0nqH8ZkIzuoQ==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 5.59.6 + '@typescript-eslint/types': 6.2.0 eslint-visitor-keys: 3.4.1 dev: true @@ -2578,9 +2605,9 @@ packages: dependencies: '@whatwg-node/events': 0.0.3 busboy: 1.6.0 - fast-querystring: 1.1.1 + fast-querystring: 1.1.2 fast-url-parser: 1.1.3 - tslib: 2.5.0 + tslib: 2.6.1 dev: true /JSONStream@1.3.5: @@ -2601,12 +2628,12 @@ packages: acorn: 2.7.0 dev: true - /acorn-jsx@5.3.2(acorn@8.8.2): + /acorn-jsx@5.3.2(acorn@8.10.0): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.8.2 + acorn: 8.10.0 dev: true /acorn@2.7.0: @@ -2615,8 +2642,8 @@ packages: hasBin: true dev: true - /acorn@8.8.2: - resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -2630,6 +2657,15 @@ packages: - supports-color dev: true + /agent-base@7.1.0: + resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} + engines: {node: '>= 14'} + dependencies: + debug: 4.3.4(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + dev: true + /agentkeepalive@4.3.0: resolution: {integrity: sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==} engines: {node: '>= 8.0.0'} @@ -2678,13 +2714,11 @@ packages: type-fest: 0.21.3 dev: true - /ansi-escapes@6.2.0(typescript@5.0.4): + /ansi-escapes@6.2.0: resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} engines: {node: '>=14.16'} dependencies: - type-fest: 3.10.0(typescript@5.0.4) - transitivePeerDependencies: - - typescript + type-fest: 3.13.1 dev: true /ansi-regex@5.0.1: @@ -2723,6 +2757,7 @@ packages: /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + requiresBuild: true dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 @@ -2769,10 +2804,10 @@ packages: resolution: {integrity: sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==} dev: true - /aria-query@5.1.3: - resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} dependencies: - deep-equal: 2.2.1 + dequal: 2.0.3 dev: true /arr-diff@4.0.0: @@ -2807,7 +2842,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 get-intrinsic: 1.2.1 is-string: 1.0.7 dev: true @@ -2828,7 +2863,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 dev: true @@ -2838,7 +2873,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 dev: true @@ -2848,7 +2883,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 es-array-method-boxes-properly: 1.0.0 is-string: 1.0.7 dev: true @@ -2858,11 +2893,23 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 get-intrinsic: 1.2.1 dev: true + /arraybuffer.prototype.slice@1.0.1: + resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.0 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: true + /arrify@1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} @@ -2880,7 +2927,7 @@ packages: dependencies: pvtsutils: 1.3.2 pvutils: 1.1.3 - tslib: 2.5.0 + tslib: 2.6.1 dev: true /assert-plus@1.0.0: @@ -2888,6 +2935,15 @@ packages: engines: {node: '>=0.8'} dev: true + /assert@2.0.0: + resolution: {integrity: sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==} + dependencies: + es6-object-assign: 1.1.0 + is-nan: 1.3.2 + object-is: 1.1.5 + util: 0.12.5 + dev: true + /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true @@ -2901,6 +2957,13 @@ packages: resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} dev: true + /ast-types@0.16.1: + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} + engines: {node: '>=4'} + dependencies: + tslib: 2.6.1 + dev: true + /astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} @@ -2929,15 +2992,15 @@ packages: resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} dev: true - /axe-core@4.7.0: - resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} + /axe-core@4.7.2: + resolution: {integrity: sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==} engines: {node: '>=4'} dev: true - /axobject-query@3.1.1: - resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} + /axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} dependencies: - deep-equal: 2.2.1 + dequal: 2.0.3 dev: true /babel-plugin-add-module-exports@1.0.4: @@ -2948,7 +3011,7 @@ packages: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} dependencies: - '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-plugin-utils': 7.22.5 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -2957,38 +3020,38 @@ packages: - supports-color dev: true - /babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.21.8): - resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} + /babel-plugin-polyfill-corejs2@0.4.5(@babel/core@7.22.9): + resolution: {integrity: sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/compat-data': 7.21.7 - '@babel/core': 7.21.8 - '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.21.8) - semver: 6.3.0 + '@babel/compat-data': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.9) + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.6.0(@babel/core@7.21.8): - resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} + /babel-plugin-polyfill-corejs3@0.8.3(@babel/core@7.22.9): + resolution: {integrity: sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.21.8) - core-js-compat: 3.30.2 + '@babel/core': 7.22.9 + '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.9) + core-js-compat: 3.31.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.4.1(@babel/core@7.21.8): - resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} + /babel-plugin-polyfill-regenerator@0.5.2(@babel/core@7.22.9): + resolution: {integrity: sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.21.8) + '@babel/core': 7.22.9 + '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.9) transitivePeerDependencies: - supports-color dev: true @@ -3028,6 +3091,7 @@ packages: /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} + requiresBuild: true dev: true /bluebird@2.11.0: @@ -3100,15 +3164,15 @@ packages: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} dev: true - /browserslist@4.21.5: - resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} + /browserslist@4.21.9: + resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001487 - electron-to-chromium: 1.4.394 - node-releases: 2.0.10 - update-browserslist-db: 1.0.11(browserslist@4.21.5) + caniuse-lite: 1.0.30001517 + electron-to-chromium: 1.4.473 + node-releases: 2.0.13 + update-browserslist-db: 1.0.11(browserslist@4.21.9) dev: true /buffer-from@1.1.2: @@ -3133,30 +3197,22 @@ packages: streamsearch: 1.1.0 dev: true - /cacache@16.1.3(bluebird@3.7.2): - resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /cacache@17.1.3: + resolution: {integrity: sha512-jAdjGxmPxZh0IipMdR7fK/4sDSrHMLUV0+GvVUsjwyGNKHsh79kW/otg+GkbXwl6Uzvy9wsvHOX4nUoWldeZMg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - '@npmcli/fs': 2.1.2 - '@npmcli/move-file': 2.0.1 - chownr: 2.0.0 - fs-minipass: 2.1.0 - glob: 8.1.0 - infer-owner: 1.0.4 + '@npmcli/fs': 3.1.0 + fs-minipass: 3.0.2 + glob: 10.3.3 lru-cache: 7.18.3 - minipass: 3.3.6 + minipass: 5.0.0 minipass-collect: 1.0.2 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 - mkdirp: 1.0.4 p-map: 4.0.0 - promise-inflight: 1.0.1(bluebird@3.7.2) - rimraf: 3.0.2 - ssri: 9.0.1 - tar: 6.1.14 - unique-filename: 2.0.1 - transitivePeerDependencies: - - bluebird + ssri: 10.0.4 + tar: 6.1.15 + unique-filename: 3.0.0 dev: true /cache-base@1.0.1: @@ -3234,8 +3290,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001487: - resolution: {integrity: sha512-83564Z3yWGqXsh2vaH/mhXfEM0wX+NlBCm1jYHOb97TrTWJEmPTccZgeLTPBUUb0PNVo+oomb7wkimZBIERClA==} + /caniuse-lite@1.0.30001517: + resolution: {integrity: sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==} dev: true /cardinal@2.1.1: @@ -3285,6 +3341,11 @@ packages: engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} dev: true + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + /check-error@1.0.2: resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} dev: true @@ -3509,49 +3570,44 @@ packages: sister: 3.0.2 dev: true - /conventional-changelog-angular@5.0.13: - resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} - engines: {node: '>=10'} + /conventional-changelog-angular@6.0.0: + resolution: {integrity: sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==} + engines: {node: '>=14'} dependencies: compare-func: 2.0.0 - q: 1.5.1 dev: true - /conventional-changelog-writer@5.0.1: - resolution: {integrity: sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==} - engines: {node: '>=10'} + /conventional-changelog-writer@6.0.1: + resolution: {integrity: sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==} + engines: {node: '>=14'} hasBin: true dependencies: - conventional-commits-filter: 2.0.7 + conventional-commits-filter: 3.0.0 dateformat: 3.0.3 handlebars: 4.7.7 json-stringify-safe: 5.0.1 - lodash: 4.17.21 meow: 8.1.2 - semver: 6.3.0 + semver: 7.5.4 split: 1.0.1 - through2: 4.0.2 dev: true - /conventional-commits-filter@2.0.7: - resolution: {integrity: sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==} - engines: {node: '>=10'} + /conventional-commits-filter@3.0.0: + resolution: {integrity: sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==} + engines: {node: '>=14'} dependencies: lodash.ismatch: 4.4.0 modify-values: 1.0.1 dev: true - /conventional-commits-parser@3.2.4: - resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} - engines: {node: '>=10'} + /conventional-commits-parser@4.0.0: + resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} + engines: {node: '>=14'} hasBin: true dependencies: JSONStream: 1.3.5 is-text-path: 1.0.1 - lodash: 4.17.21 meow: 8.1.2 split2: 3.2.2 - through2: 4.0.2 dev: true /convert-source-map@1.9.0: @@ -3563,19 +3619,19 @@ packages: engines: {node: '>=0.10.0'} dev: true - /core-js-compat@3.30.2: - resolution: {integrity: sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==} + /core-js-compat@3.31.1: + resolution: {integrity: sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==} dependencies: - browserslist: 4.21.5 + browserslist: 4.21.9 dev: true - /core-js-pure@3.30.2: - resolution: {integrity: sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg==} + /core-js-pure@3.31.1: + resolution: {integrity: sha512-w+C62kvWti0EPs4KPMCMVv9DriHSXfQOCQ94bGGBiEW5rrbtt/Rz8n5Krhfw9cpFyzXBjf3DB3QnPdEzGDY4Fw==} requiresBuild: true dev: true - /core-js@3.30.2: - resolution: {integrity: sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg==} + /core-js@3.31.1: + resolution: {integrity: sha512-2sKLtfq1eFST7l7v62zaqXacPc7uG8ZAya8ogijLhTtaKNcpzpB4TMoTw2Si+8GYKRwFPMMtUT0263QFWFfqyQ==} requiresBuild: true dev: true @@ -3607,8 +3663,8 @@ packages: path-type: 4.0.0 dev: true - /cosmiconfig@8.1.3: - resolution: {integrity: sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==} + /cosmiconfig@8.2.0: + resolution: {integrity: sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==} engines: {node: '>=14'} dependencies: import-fresh: 3.3.0 @@ -3638,7 +3694,7 @@ packages: dependencies: nice-try: 1.0.5 path-key: 2.0.1 - semver: 5.7.1 + semver: 5.7.2 shebang-command: 1.2.0 which: 1.3.1 dev: true @@ -3766,29 +3822,6 @@ packages: type-detect: 4.0.8 dev: true - /deep-equal@2.2.1: - resolution: {integrity: sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ==} - dependencies: - array-buffer-byte-length: 1.0.0 - call-bind: 1.0.2 - es-get-iterator: 1.1.3 - get-intrinsic: 1.2.1 - is-arguments: 1.1.1 - is-array-buffer: 3.0.2 - is-date-object: 1.0.5 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - isarray: 2.0.5 - object-is: 1.1.5 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.5.0 - side-channel: 1.0.4 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.1 - which-typed-array: 1.1.9 - dev: true - /deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -3817,7 +3850,7 @@ packages: dependencies: bundle-name: 3.0.0 default-browser-id: 3.0.0 - execa: 7.1.1 + execa: 7.2.0 titleize: 3.0.0 dev: true @@ -3881,6 +3914,11 @@ packages: resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} dev: true + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: true + /diff@5.0.0: resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} engines: {node: '>=0.3.1'} @@ -3964,8 +4002,8 @@ packages: safer-buffer: 2.1.2 dev: true - /electron-to-chromium@1.4.394: - resolution: {integrity: sha512-0IbC2cfr8w5LxTz+nmn2cJTGafsK9iauV2r5A5scfzyovqLrxuLoxOHE5OBobP3oVIggJT+0JfKnw9sm87c8Hw==} + /electron-to-chromium@1.4.473: + resolution: {integrity: sha512-aVfC8+440vGfl06l8HKKn8/PD5jRfSnLkTTD65EFvU46igbpQRri1gxSzW9/+TeUlwYzrXk1sw867T96zlyECA==} dev: true /emoji-regex@8.0.0: @@ -3997,8 +4035,8 @@ packages: lodash: 4.17.21 dev: true - /enhanced-resolve@5.14.0: - resolution: {integrity: sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw==} + /enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 @@ -4013,11 +4051,11 @@ packages: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} dev: true - /env-ci@9.1.0: - resolution: {integrity: sha512-ZCEas2sDVFR3gpumwwzSU4OJZwWJ46yqJH3TqH3vSxEBzeAlC0uCJLGAnZC0vX1TIXzHzjcwpKmUn2xw5mC/qA==} + /env-ci@9.1.1: + resolution: {integrity: sha512-Im2yEWeF4b2RAMAaWvGioXk6m0UNaIjD8hj28j2ij5ldnIFrDQT0+pzDvpbRkcjurhXhf/AsBKv8P2rtmGi9Aw==} engines: {node: ^16.14 || >=18} dependencies: - execa: 7.1.1 + execa: 7.2.0 java-properties: 1.0.2 dev: true @@ -4041,11 +4079,12 @@ packages: is-arrayish: 0.2.1 dev: true - /es-abstract@1.21.2: - resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} + /es-abstract@1.22.1: + resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.1 available-typed-arrays: 1.0.5 call-bind: 1.0.2 es-set-tostringtag: 2.0.1 @@ -4066,39 +4105,29 @@ packages: is-regex: 1.1.4 is-shared-array-buffer: 1.0.2 is-string: 1.0.7 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 is-weakref: 1.0.2 object-inspect: 1.12.3 object-keys: 1.1.1 object.assign: 4.1.4 regexp.prototype.flags: 1.5.0 + safe-array-concat: 1.0.0 safe-regex-test: 1.0.0 string.prototype.trim: 1.2.7 string.prototype.trimend: 1.0.6 string.prototype.trimstart: 1.0.6 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 typed-array-length: 1.0.4 unbox-primitive: 1.0.2 - which-typed-array: 1.1.9 + which-typed-array: 1.1.11 dev: true /es-array-method-boxes-properly@1.0.0: resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} dev: true - /es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - has-symbols: 1.0.3 - is-arguments: 1.1.1 - is-map: 2.0.2 - is-set: 2.0.2 - is-string: 1.0.7 - isarray: 2.0.5 - stop-iteration-iterator: 1.0.0 - dev: true - /es-set-tostringtag@2.0.1: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} @@ -4127,6 +4156,10 @@ packages: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} dev: true + /es6-object-assign@1.1.0: + resolution: {integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==} + dev: true + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -4167,50 +4200,50 @@ packages: lodash.zip: 4.2.0 dev: true - /eslint-config-canonical@41.0.4(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(@types/node@20.2.5)(eslint@8.41.0)(graphql@16.6.0)(typescript@5.0.4): - resolution: {integrity: sha512-2wRKw0VsBzP+GyWMMy0cuNkEs3NI5mWNk83rHAXZtkBA72AUanQw+ufoGhN0Uso4OiH0tb+Mj0kQkPDnr0DTbg==} + /eslint-config-canonical@41.1.5(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/node@20.4.5)(eslint@8.45.0)(graphql@16.7.1)(typescript@5.1.6): + resolution: {integrity: sha512-upJtTgQwjvWbna1Q0EGzZ9ral/xjTBpE31oy+UhXpJuo5I3dK32L51PuxBG8ROjHOTrHp2um40Cn4Z/iuSyujg==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 dependencies: - '@babel/core': 7.21.8 - '@babel/eslint-parser': 7.21.8(@babel/core@7.21.8)(eslint@8.41.0) - '@babel/eslint-plugin': 7.19.1(@babel/eslint-parser@7.21.8)(eslint@8.41.0) - '@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.21.8) - '@graphql-eslint/eslint-plugin': 3.18.0(@babel/core@7.21.8)(@types/node@20.2.5)(graphql@16.6.0) - '@next/eslint-plugin-next': 13.4.2 - '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/eslint-plugin': 5.59.5(@typescript-eslint/parser@5.59.6)(eslint@8.41.0)(typescript@5.0.4) - '@typescript-eslint/parser': 5.59.6(eslint@8.41.0)(typescript@5.0.4) - eslint: 8.41.0 - eslint-config-prettier: 8.8.0(eslint@8.41.0) - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.41.0) - eslint-plugin-ava: 14.0.0(eslint@8.41.0) - eslint-plugin-canonical: 4.2.2(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.41.0)(typescript@5.0.4) - eslint-plugin-cypress: 2.13.3(eslint@8.41.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.41.0) - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.41.0) - eslint-plugin-fp: 2.3.0(eslint@8.41.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.41.0) - eslint-plugin-jest: 27.2.1(@typescript-eslint/eslint-plugin@5.59.5)(eslint@8.41.0)(typescript@5.0.4) - eslint-plugin-jsdoc: 43.2.0(eslint@8.41.0) - eslint-plugin-jsonc: 2.8.0(eslint@8.41.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@8.41.0) - eslint-plugin-lodash: 7.4.0(eslint@8.41.0) - eslint-plugin-mocha: 10.1.0(eslint@8.41.0) + '@babel/core': 7.22.9 + '@babel/eslint-parser': 7.22.9(@babel/core@7.22.9)(eslint@8.45.0) + '@babel/eslint-plugin': 7.22.5(@babel/eslint-parser@7.22.9)(eslint@8.45.0) + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.9) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.22.9)(@types/node@20.4.5)(graphql@16.7.1) + '@next/eslint-plugin-next': 13.4.12 + '@rushstack/eslint-patch': 1.3.2 + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6) + eslint: 8.45.0 + eslint-config-prettier: 8.8.0(eslint@8.45.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.45.0) + eslint-plugin-ava: 14.0.0(eslint@8.45.0) + eslint-plugin-canonical: 4.8.0(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.45.0)(typescript@5.1.6) + eslint-plugin-cypress: 2.13.3(eslint@8.45.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.45.0) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.45.0) + eslint-plugin-fp: 2.3.0(eslint@8.45.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@6.2.0)(eslint@8.45.0) + eslint-plugin-jest: 27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.45.0)(typescript@5.1.6) + eslint-plugin-jsdoc: 43.2.0(eslint@8.45.0) + eslint-plugin-jsonc: 2.9.0(eslint@8.45.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.45.0) + eslint-plugin-lodash: 7.4.0(eslint@8.45.0) + eslint-plugin-mocha: 10.1.0(eslint@8.45.0) eslint-plugin-modules-newline: 0.0.6 - eslint-plugin-node: 11.1.0(eslint@8.41.0) - eslint-plugin-prettier: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.41.0)(prettier@2.8.8) - eslint-plugin-promise: 6.1.1(eslint@8.41.0) - eslint-plugin-react: 7.32.2(eslint@8.41.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.41.0) - eslint-plugin-regexp: 1.15.0(eslint@8.41.0) - eslint-plugin-simple-import-sort: 10.0.0(eslint@8.41.0) - eslint-plugin-typescript-sort-keys: 2.3.0(@typescript-eslint/parser@5.59.6)(eslint@8.41.0)(typescript@5.0.4) - eslint-plugin-unicorn: 46.0.1(eslint@8.41.0) - eslint-plugin-vitest: 0.1.5(eslint@8.41.0)(typescript@5.0.4) - eslint-plugin-yml: 1.7.0(eslint@8.41.0) - eslint-plugin-zod: 1.4.0(eslint@8.41.0) + eslint-plugin-node: 11.1.0(eslint@8.45.0) + eslint-plugin-prettier: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.45.0)(prettier@2.8.8) + eslint-plugin-promise: 6.1.1(eslint@8.45.0) + eslint-plugin-react: 7.33.0(eslint@8.45.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.45.0) + eslint-plugin-regexp: 1.15.0(eslint@8.45.0) + eslint-plugin-simple-import-sort: 10.0.0(eslint@8.45.0) + eslint-plugin-typescript-sort-keys: 2.3.0(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)(typescript@5.1.6) + eslint-plugin-unicorn: 46.0.1(eslint@8.45.0) + eslint-plugin-vitest: 0.1.5(eslint@8.45.0)(typescript@5.1.6) + eslint-plugin-yml: 1.8.0(eslint@8.45.0) + eslint-plugin-zod: 1.4.0(eslint@8.45.0) prettier: 2.8.8 ramda: 0.29.0 yaml-eslint-parser: 1.2.2 @@ -4230,26 +4263,26 @@ packages: - utf-8-validate dev: true - /eslint-config-prettier@8.8.0(eslint@8.41.0): + /eslint-config-prettier@8.8.0(eslint@8.45.0): resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.41.0 + eslint: 8.45.0 dev: true /eslint-import-resolver-node@0.3.7: resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} dependencies: debug: 3.2.7 - is-core-module: 2.12.0 + is-core-module: 2.12.1 resolve: 1.22.2 transitivePeerDependencies: - supports-color dev: true - /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.41.0): + /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.45.0): resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4257,13 +4290,13 @@ packages: eslint-plugin-import: '*' dependencies: debug: 4.3.4(supports-color@8.1.1) - enhanced-resolve: 5.14.0 - eslint: 8.41.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.41.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.41.0) - get-tsconfig: 4.5.0 - globby: 13.1.4 - is-core-module: 2.12.0 + enhanced-resolve: 5.15.0 + eslint: 8.45.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@6.2.0)(eslint@8.45.0) + get-tsconfig: 4.6.2 + globby: 13.2.2 + is-core-module: 2.12.1 is-glob: 4.0.3 synckit: 0.8.5 transitivePeerDependencies: @@ -4273,7 +4306,37 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.41.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6) + debug: 3.2.7 + eslint: 8.45.0 + eslint-import-resolver-node: 0.3.7 + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.45.0) + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.2.0)(eslint-import-resolver-node@0.3.7)(eslint@8.45.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4294,25 +4357,24 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.59.6(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/parser': 6.2.0(eslint@8.45.0)(typescript@5.1.6) debug: 3.2.7 - eslint: 8.41.0 + eslint: 8.45.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.41.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-ava@14.0.0(eslint@8.41.0): + /eslint-plugin-ava@14.0.0(eslint@8.45.0): resolution: {integrity: sha512-XmKT6hppaipwwnLVwwvQliSU6AF1QMHiNoLD5JQfzhUhf0jY7CO0O624fQrE+Y/fTb9vbW8r77nKf7M/oHulxw==} engines: {node: '>=14.17 <15 || >=16.4'} peerDependencies: eslint: '>=8.26.0' dependencies: enhance-visitors: 1.0.0 - eslint: 8.41.0 - eslint-utils: 3.0.0(eslint@8.41.0) - espree: 9.5.2 + eslint: 8.45.0 + eslint-utils: 3.0.0(eslint@8.45.0) + espree: 9.6.1 espurify: 2.1.1 import-modules: 2.1.0 micro-spelling-correcter: 1.1.1 @@ -4320,20 +4382,23 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-canonical@4.2.2(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.41.0)(typescript@5.0.4): - resolution: {integrity: sha512-yuGC3erbZ7+ncNn9oyfZQxNdepijMKhsq2DrSEj4jsgc4UMSQWlWDlt8lI767Lg8VfGCTG6Cgj2jJZFYjkFmDQ==} + /eslint-plugin-canonical@4.8.0(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.45.0)(typescript@5.1.6): + resolution: {integrity: sha512-OXbx3xhSf/u0bb1oUne0C3fKU5Zn89WXlQTb8jljw5nR5QD5vrI8efeshSAnI0uQVgKrN0uZdooKWgRdBqWPEg==} engines: {node: '>=16.0.0'} dependencies: - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.6)(eslint-plugin-import@2.27.5)(eslint@8.41.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.41.0) + '@typescript-eslint/utils': 6.2.0(eslint@8.45.0)(typescript@5.1.6) + debug: 4.3.4(supports-color@8.1.1) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.45.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 is-proto-prop: 2.0.0 lodash: 4.17.21 natural-compare: 1.4.0 + recast: 0.23.3 roarr: 7.15.0 - ts-unused-exports: 9.0.4(typescript@5.0.4) + ts-unused-exports: 9.0.5(typescript@5.1.6) xregexp: 5.1.1 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -4345,38 +4410,38 @@ packages: - typescript dev: true - /eslint-plugin-cypress@2.13.3(eslint@8.41.0): + /eslint-plugin-cypress@2.13.3(eslint@8.45.0): resolution: {integrity: sha512-nAPjZE5WopCsgJwl3vHm5iafpV+ZRO76Z9hMyRygWhmg5ODXDPd+9MaPl7kdJ2azj+sO87H3P1PRnggIrz848g==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 8.41.0 + eslint: 8.45.0 globals: 11.12.0 dev: true - /eslint-plugin-es@3.0.1(eslint@8.41.0): + /eslint-plugin-es@3.0.1(eslint@8.45.0): resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.41.0 + eslint: 8.45.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-eslint-comments@3.2.0(eslint@8.41.0): + /eslint-plugin-eslint-comments@3.2.0(eslint@8.45.0): resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' dependencies: escape-string-regexp: 1.0.5 - eslint: 8.41.0 + eslint: 8.45.0 ignore: 5.2.4 dev: true - /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.41.0): + /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.45.0): resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -4384,27 +4449,27 @@ packages: '@babel/plugin-transform-react-jsx': ^7.14.9 eslint: ^8.1.0 dependencies: - '@babel/plugin-syntax-flow': 7.21.4(@babel/core@7.21.8) - '@babel/plugin-transform-react-jsx': 7.21.5(@babel/core@7.21.8) - eslint: 8.41.0 + '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.9) + eslint: 8.45.0 lodash: 4.17.21 string-natural-compare: 3.0.1 dev: true - /eslint-plugin-fp@2.3.0(eslint@8.41.0): + /eslint-plugin-fp@2.3.0(eslint@8.45.0): resolution: {integrity: sha512-3n2oHibwoIxAht9/+ZaTldhI6brXORgl8oNXqZd+d9xuAQt2SBJ2/aml0oQRMWvXrgsz2WG6wfC++NjzSG3prA==} engines: {node: '>=4.0.0'} peerDependencies: eslint: '>=3' dependencies: create-eslint-index: 1.0.0 - eslint: 8.41.0 + eslint: 8.45.0 eslint-ast-utils: 1.1.0 lodash: 4.17.21 req-all: 0.1.0 dev: true - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.41.0): + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.2.0)(eslint@8.45.0): resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -4414,22 +4479,22 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.59.6(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/parser': 6.2.0(eslint@8.45.0)(typescript@5.1.6) array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.41.0 + eslint: 8.45.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.41.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.2.0)(eslint-import-resolver-node@0.3.7)(eslint@8.45.0) has: 1.0.3 - is-core-module: 2.12.0 + is-core-module: 2.12.1 is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.6 resolve: 1.22.2 - semver: 6.3.0 + semver: 6.3.1 tsconfig-paths: 3.14.2 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -4437,11 +4502,11 @@ packages: - supports-color dev: true - /eslint-plugin-jest@27.2.1(@typescript-eslint/eslint-plugin@5.59.5)(eslint@8.41.0)(typescript@5.0.4): - resolution: {integrity: sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg==} + /eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.45.0)(typescript@5.1.6): + resolution: {integrity: sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: - '@typescript-eslint/eslint-plugin': ^5.0.0 + '@typescript-eslint/eslint-plugin': ^5.0.0 || ^6.0.0 eslint: ^7.0.0 || ^8.0.0 jest: '*' peerDependenciesMeta: @@ -4450,15 +4515,15 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.59.5(@typescript-eslint/parser@5.59.6)(eslint@8.41.0)(typescript@5.0.4) - '@typescript-eslint/utils': 5.59.5(eslint@8.41.0)(typescript@5.0.4) - eslint: 8.41.0 + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.45.0)(typescript@5.1.6) + eslint: 8.45.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsdoc@43.2.0(eslint@8.41.0): + /eslint-plugin-jsdoc@43.2.0(eslint@8.45.0): resolution: {integrity: sha512-Hst7XUfqh28UmPD52oTXmjaRN3d0KrmOZdgtp4h9/VHUJD3Evoo82ZGXi1TtRDWgWhvqDIRI63O49H0eH7NrZQ==} engines: {node: '>=16'} peerDependencies: @@ -4469,69 +4534,69 @@ packages: comment-parser: 1.3.1 debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 8.41.0 + eslint: 8.45.0 esquery: 1.5.0 - semver: 7.5.1 + semver: 7.5.4 spdx-expression-parse: 3.0.1 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-jsonc@2.8.0(eslint@8.41.0): - resolution: {integrity: sha512-K4VsnztnNwpm+V49CcCu5laq8VjclJpuhfI9LFkOrOyK+BKdQHMzkWo43B4X4rYaVrChm4U9kw/tTU5RHh5Wtg==} + /eslint-plugin-jsonc@2.9.0(eslint@8.45.0): + resolution: {integrity: sha512-RK+LeONVukbLwT2+t7/OY54NJRccTXh/QbnXzPuTLpFMVZhPuq1C9E07+qWenGx7rrQl0kAalAWl7EmB+RjpGA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0) - eslint: 8.41.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) + eslint: 8.45.0 jsonc-eslint-parser: 2.3.0 natural-compare: 1.4.0 dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.41.0): + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.45.0): resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - '@babel/runtime': 7.21.5 - aria-query: 5.1.3 + '@babel/runtime': 7.22.6 + aria-query: 5.3.0 array-includes: 3.1.6 array.prototype.flatmap: 1.3.1 ast-types-flow: 0.0.7 - axe-core: 4.7.0 - axobject-query: 3.1.1 + axe-core: 4.7.2 + axobject-query: 3.2.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.41.0 + eslint: 8.45.0 has: 1.0.3 - jsx-ast-utils: 3.3.3 + jsx-ast-utils: 3.3.4 language-tags: 1.0.5 minimatch: 3.1.2 object.entries: 1.1.6 object.fromentries: 2.0.6 - semver: 6.3.0 + semver: 6.3.1 dev: true - /eslint-plugin-lodash@7.4.0(eslint@8.41.0): + /eslint-plugin-lodash@7.4.0(eslint@8.45.0): resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} engines: {node: '>=10'} peerDependencies: eslint: '>=2' dependencies: - eslint: 8.41.0 + eslint: 8.45.0 lodash: 4.17.21 dev: true - /eslint-plugin-mocha@10.1.0(eslint@8.41.0): + /eslint-plugin-mocha@10.1.0(eslint@8.45.0): resolution: {integrity: sha512-xLqqWUF17llsogVOC+8C6/jvQ+4IoOREbN7ZCHuOHuD6cT5cDD4h7f2LgsZuzMAiwswWE21tO7ExaknHVDrSkw==} engines: {node: '>=14.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.41.0 - eslint-utils: 3.0.0(eslint@8.41.0) + eslint: 8.45.0 + eslint-utils: 3.0.0(eslint@8.45.0) rambda: 7.5.0 dev: true @@ -4542,22 +4607,22 @@ packages: requireindex: 1.1.0 dev: true - /eslint-plugin-node@11.1.0(eslint@8.41.0): + /eslint-plugin-node@11.1.0(eslint@8.45.0): resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.41.0 - eslint-plugin-es: 3.0.1(eslint@8.41.0) + eslint: 8.45.0 + eslint-plugin-es: 3.0.1(eslint@8.45.0) eslint-utils: 2.1.0 ignore: 5.2.4 minimatch: 3.1.2 resolve: 1.22.2 - semver: 6.3.0 + semver: 6.3.1 dev: true - /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.41.0)(prettier@2.8.8): + /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.45.0)(prettier@2.8.8): resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -4568,32 +4633,32 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.41.0 - eslint-config-prettier: 8.8.0(eslint@8.41.0) + eslint: 8.45.0 + eslint-config-prettier: 8.8.0(eslint@8.45.0) prettier: 2.8.8 prettier-linter-helpers: 1.0.0 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.41.0): + /eslint-plugin-promise@6.1.1(eslint@8.45.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.41.0 + eslint: 8.45.0 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.41.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.45.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.41.0 + eslint: 8.45.0 dev: true - /eslint-plugin-react@7.32.2(eslint@8.41.0): - resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} + /eslint-plugin-react@7.33.0(eslint@8.45.0): + resolution: {integrity: sha512-qewL/8P34WkY8jAqdQxsiL82pDUeT7nhs8IsuXgfgnsEloKCT4miAV9N9kGtx7/KM9NH/NCGUE7Edt9iGxLXFw==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 @@ -4602,9 +4667,9 @@ packages: array.prototype.flatmap: 1.3.1 array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 - eslint: 8.41.0 + eslint: 8.45.0 estraverse: 5.3.0 - jsx-ast-utils: 3.3.3 + jsx-ast-utils: 3.3.4 minimatch: 3.1.2 object.entries: 1.1.6 object.fromentries: 2.0.6 @@ -4612,20 +4677,20 @@ packages: object.values: 1.1.6 prop-types: 15.8.1 resolve: 2.0.0-next.4 - semver: 6.3.0 + semver: 6.3.1 string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-regexp@1.15.0(eslint@8.41.0): + /eslint-plugin-regexp@1.15.0(eslint@8.45.0): resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} engines: {node: ^12 || >=14} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0) - '@eslint-community/regexpp': 4.5.1 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) + '@eslint-community/regexpp': 4.6.2 comment-parser: 1.3.1 - eslint: 8.41.0 + eslint: 8.45.0 grapheme-splitter: 1.0.4 jsdoctypeparser: 9.0.0 refa: 0.11.0 @@ -4633,15 +4698,15 @@ packages: scslre: 0.2.0 dev: true - /eslint-plugin-simple-import-sort@10.0.0(eslint@8.41.0): + /eslint-plugin-simple-import-sort@10.0.0(eslint@8.45.0): resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 8.41.0 + eslint: 8.45.0 dev: true - /eslint-plugin-typescript-sort-keys@2.3.0(@typescript-eslint/parser@5.59.6)(eslint@8.41.0)(typescript@5.0.4): + /eslint-plugin-typescript-sort-keys@2.3.0(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)(typescript@5.1.6): resolution: {integrity: sha512-3LAcYulo5gNYiPWee+TksITfvWeBuBjGgcSLTacPESFVKEoy8laOQuZvJlSCwTBHT2SCGIxr3bJ56zuux+3MCQ==} engines: {node: 12 || >= 13.9} peerDependencies: @@ -4649,27 +4714,27 @@ packages: eslint: ^5 || ^6 || ^7 || ^8 typescript: ^3 || ^4 || ^5 dependencies: - '@typescript-eslint/experimental-utils': 5.59.5(eslint@8.41.0)(typescript@5.0.4) - '@typescript-eslint/parser': 5.59.6(eslint@8.41.0)(typescript@5.0.4) - eslint: 8.41.0 + '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6) + eslint: 8.45.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 - typescript: 5.0.4 + typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-unicorn@46.0.1(eslint@8.41.0): + /eslint-plugin-unicorn@46.0.1(eslint@8.45.0): resolution: {integrity: sha512-setGhMTiLAddg1asdwjZ3hekIN5zLznNa5zll7pBPwFOka6greCKDQydfqy4fqyUhndi74wpDzClSQMEcmOaew==} engines: {node: '>=14.18'} peerDependencies: eslint: '>=8.28.0' dependencies: - '@babel/helper-validator-identifier': 7.19.1 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0) + '@babel/helper-validator-identifier': 7.22.5 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) ci-info: 3.8.0 clean-regexp: 1.0.0 - eslint: 8.41.0 + eslint: 8.45.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -4680,31 +4745,31 @@ packages: regexp-tree: 0.1.27 regjsparser: 0.9.1 safe-regex: 2.1.1 - semver: 7.5.1 + semver: 7.5.4 strip-indent: 3.0.0 dev: true - /eslint-plugin-vitest@0.1.5(eslint@8.41.0)(typescript@5.0.4): + /eslint-plugin-vitest@0.1.5(eslint@8.45.0)(typescript@5.1.6): resolution: {integrity: sha512-SxbGjyC6peUaCt/P+YrHxdfVzJkLC1RCotaCMZ6vuvkRGOx3SE1jcZb7vTlU6s9PoF0DYlkWuBAAYZi1IAwg2A==} engines: {node: 14.x || >= 16} peerDependencies: eslint: '>=8.0.0' dependencies: - '@typescript-eslint/utils': 5.59.5(eslint@8.41.0)(typescript@5.0.4) - eslint: 8.41.0 + '@typescript-eslint/utils': 5.62.0(eslint@8.45.0)(typescript@5.1.6) + eslint: 8.45.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-yml@1.7.0(eslint@8.41.0): - resolution: {integrity: sha512-qq61FQJk+qIgWl0R06bec7UQQEIBrUH22jS+MroTbFUKu+3/iVlGRpZd8mjpOAm/+H/WEDFwy4x/+kKgVGbsWw==} + /eslint-plugin-yml@1.8.0(eslint@8.45.0): + resolution: {integrity: sha512-fgBiJvXD0P2IN7SARDJ2J7mx8t0bLdG6Zcig4ufOqW5hOvSiFxeUyc2g5I1uIm8AExbo26NNYCcTGZT0MXTsyg==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4(supports-color@8.1.1) - eslint: 8.41.0 + eslint: 8.45.0 lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.2 @@ -4712,13 +4777,13 @@ packages: - supports-color dev: true - /eslint-plugin-zod@1.4.0(eslint@8.41.0): + /eslint-plugin-zod@1.4.0(eslint@8.45.0): resolution: {integrity: sha512-i9WzQGw2X5fQcuQh33mA8DQjZJM/yuyZvs1Fc5EyTidX7Ed/g832+1FEQ4u5gtXy+jZ+DVsB5+oMHj4tIOfeZg==} engines: {node: '>=12'} peerDependencies: eslint: '>=8.1.0' dependencies: - eslint: 8.41.0 + eslint: 8.45.0 dev: true /eslint-rule-composer@0.3.0: @@ -4734,8 +4799,8 @@ packages: estraverse: 4.3.0 dev: true - /eslint-scope@7.2.0: - resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} + /eslint-scope@7.2.1: + resolution: {integrity: sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 @@ -4749,13 +4814,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils@3.0.0(eslint@8.41.0): + /eslint-utils@3.0.0(eslint@8.45.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.41.0 + eslint: 8.45.0 eslint-visitor-keys: 2.1.0 dev: true @@ -4774,16 +4839,16 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.41.0: - resolution: {integrity: sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==} + /eslint@8.45.0: + resolution: {integrity: sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0) - '@eslint-community/regexpp': 4.5.1 - '@eslint/eslintrc': 2.0.3 - '@eslint/js': 8.41.0 - '@humanwhocodes/config-array': 0.11.8 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) + '@eslint-community/regexpp': 4.6.2 + '@eslint/eslintrc': 2.1.0 + '@eslint/js': 8.44.0 + '@humanwhocodes/config-array': 0.11.10 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 @@ -4792,9 +4857,9 @@ packages: debug: 4.3.4(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.0 + eslint-scope: 7.2.1 eslint-visitor-keys: 3.4.1 - espree: 9.5.2 + espree: 9.6.1 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -4804,7 +4869,6 @@ packages: globals: 13.20.0 graphemer: 1.4.0 ignore: 5.2.4 - import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -4814,20 +4878,19 @@ packages: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.1 + optionator: 0.9.3 strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color dev: true - /espree@9.5.2: - resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==} + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2(acorn@8.8.2) + acorn: 8.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) eslint-visitor-keys: 3.4.1 dev: true @@ -4896,8 +4959,8 @@ packages: strip-final-newline: 2.0.0 dev: true - /execa@7.1.1: - resolution: {integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==} + /execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} dependencies: cross-spawn: 7.0.3 @@ -4926,6 +4989,10 @@ packages: - supports-color dev: true + /exponential-backoff@3.1.1: + resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} + dev: true + /extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} engines: {node: '>=0.10.0'} @@ -4979,12 +5046,12 @@ packages: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-diff@1.2.0: - resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} + /fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} dev: true - /fast-glob@3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + /fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -5019,8 +5086,8 @@ packages: boolean: 3.2.0 dev: true - /fast-querystring@1.1.1: - resolution: {integrity: sha512-qR2r+e3HvhEFmpdHMv//U8FnFlnYjaC6QKDuaXALDkw2kvHO8WDjxH+f/rHGR4Me4pnk8p9JAkRNTjYHAKRn2Q==} + /fast-querystring@1.1.2: + resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} dependencies: fast-decode-uri-component: 1.0.1 dev: true @@ -5077,6 +5144,7 @@ packages: /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} + requiresBuild: true dependencies: to-regex-range: 5.0.1 dev: true @@ -5235,6 +5303,13 @@ packages: minipass: 3.3.6 dev: true + /fs-minipass@3.0.2: + resolution: {integrity: sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + minipass: 5.0.0 + dev: true + /fs-readdir-recursive@1.1.0: resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==} dev: true @@ -5261,7 +5336,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 functions-have-names: 1.2.3 dev: true @@ -5328,6 +5403,11 @@ packages: engines: {node: '>=10'} dev: true + /get-stream@7.0.1: + resolution: {integrity: sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==} + engines: {node: '>=16'} + dev: true + /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} @@ -5336,18 +5416,19 @@ packages: get-intrinsic: 1.2.1 dev: true - /get-tsconfig@4.5.0: - resolution: {integrity: sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==} + /get-tsconfig@4.6.2: + resolution: {integrity: sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg==} + dependencies: + resolve-pkg-maps: 1.0.0 dev: true - /get-urls@10.0.1(bluebird@3.7.2): + /get-urls@10.0.1: resolution: {integrity: sha512-5usUMF4FE0cTS7yUuRvBsB4tSs5u8KFn7v01+IDGL/18tuoADu5ehthqw+y2EHnJsWhsp1443K5P+C/XWZQ04g==} engines: {node: '>=10.12.0'} dependencies: normalize-url: 5.3.1 - url-regex-safe: 2.1.0(bluebird@3.7.2) + url-regex-safe: 2.1.0 transitivePeerDependencies: - - bluebird - supports-color dev: true @@ -5381,7 +5462,7 @@ packages: bluebird: 3.7.2 deadlink: 1.1.3 filesize: 6.4.0 - get-urls: 10.0.1(bluebird@3.7.2) + get-urls: 10.0.1 gitinfo: 2.4.0 glob: 7.2.3 jsonfile: 6.1.0 @@ -5416,16 +5497,16 @@ packages: is-glob: 4.0.3 dev: true - /glob@10.2.6: - resolution: {integrity: sha512-U/rnDpXJGF414QQQZv5uVsabTVxMSwzS5CH0p3DRCIV6ownl4f7PzGnkGmvlum2wB+9RlJWJZ6ACU1INnBqiPA==} + /glob@10.3.3: + resolution: {integrity: sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: foreground-child: 3.1.1 - jackspeak: 2.2.0 - minimatch: 9.0.1 - minipass: 5.0.0 - path-scurry: 1.9.0 + jackspeak: 2.2.2 + minimatch: 9.0.3 + minipass: 7.0.2 + path-scurry: 1.10.1 dev: true /glob@7.1.7: @@ -5461,17 +5542,6 @@ packages: path-is-absolute: 1.0.1 dev: true - /glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - dev: true - /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -5497,18 +5567,18 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.12 + fast-glob: 3.3.1 ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 dev: true - /globby@13.1.4: - resolution: {integrity: sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==} + /globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 - fast-glob: 3.2.12 + fast-glob: 3.3.1 ignore: 5.2.4 merge2: 1.4.1 slash: 4.0.0 @@ -5536,7 +5606,7 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql-config@4.5.0(@types/node@20.2.5)(graphql@16.6.0): + /graphql-config@4.5.0(@types/node@20.4.5)(graphql@16.7.1): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -5546,18 +5616,18 @@ packages: cosmiconfig-toml-loader: optional: true dependencies: - '@graphql-tools/graphql-file-loader': 7.5.17(graphql@16.6.0) - '@graphql-tools/json-file-loader': 7.4.18(graphql@16.6.0) - '@graphql-tools/load': 7.8.14(graphql@16.6.0) - '@graphql-tools/merge': 8.4.2(graphql@16.6.0) - '@graphql-tools/url-loader': 7.17.18(@types/node@20.2.5)(graphql@16.6.0) - '@graphql-tools/utils': 9.2.1(graphql@16.6.0) + '@graphql-tools/graphql-file-loader': 7.5.17(graphql@16.7.1) + '@graphql-tools/json-file-loader': 7.4.18(graphql@16.7.1) + '@graphql-tools/load': 7.8.14(graphql@16.7.1) + '@graphql-tools/merge': 8.4.2(graphql@16.7.1) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.4.5)(graphql@16.7.1) + '@graphql-tools/utils': 9.2.1(graphql@16.7.1) cosmiconfig: 8.0.0 - graphql: 16.6.0 + graphql: 16.7.1 jiti: 1.17.1 minimatch: 4.2.3 string-env-interpolation: 1.0.1 - tslib: 2.5.0 + tslib: 2.6.1 transitivePeerDependencies: - '@types/node' - bufferutil @@ -5565,27 +5635,27 @@ packages: - utf-8-validate dev: true - /graphql-depth-limit@1.1.0(graphql@16.6.0): + /graphql-depth-limit@1.1.0(graphql@16.7.1): resolution: {integrity: sha512-+3B2BaG8qQ8E18kzk9yiSdAa75i/hnnOwgSeAxVJctGQPvmeiLtqKOYF6HETCyRjiF7Xfsyal0HbLlxCQkgkrw==} engines: {node: '>=6.0.0'} peerDependencies: graphql: '*' dependencies: arrify: 1.0.1 - graphql: 16.6.0 + graphql: 16.7.1 dev: true - /graphql-ws@5.12.1(graphql@16.6.0): + /graphql-ws@5.12.1(graphql@16.7.1): resolution: {integrity: sha512-umt4f5NnMK46ChM2coO36PTFhHouBrK9stWWBczERguwYrGnPNxJ9dimU6IyOBfOkC6Izhkg4H8+F51W/8CYDg==} engines: {node: '>=10'} peerDependencies: graphql: '>=0.11 <=16' dependencies: - graphql: 16.6.0 + graphql: 16.7.1 dev: true - /graphql@16.6.0: - resolution: {integrity: sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==} + /graphql@16.7.1: + resolution: {integrity: sha512-DRYR9tf+UGU0KOsMcKAlXeFfX89UiiIZ0dRU3mR0yJfu6OjZqUcp68NnFLnqQU5RexygFoDy1EW+ccOYcPfmHg==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} dev: true @@ -5772,6 +5842,16 @@ packages: - supports-color dev: true + /http-proxy-agent@7.0.0: + resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.0 + debug: 4.3.4(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + dev: true + /http-signature@1.2.0: resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} engines: {node: '>=0.8', npm: '>=1.3.7'} @@ -5791,6 +5871,16 @@ packages: - supports-color dev: true + /https-proxy-agent@7.0.1: + resolution: {integrity: sha512-Eun8zV0kcYS1g19r78osiQLEFIRspRUDd9tIfBCTBPBeMieF/EsJNL8VI3xOIdYRDEkjQnqOYPsZ2DsWsVsFwQ==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.0 + debug: 4.3.4(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + dev: true + /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -5816,6 +5906,7 @@ packages: /iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + requiresBuild: true dependencies: safer-buffer: 2.1.2 dev: true @@ -5867,10 +5958,6 @@ packages: engines: {node: '>=12'} dev: true - /infer-owner@1.0.4: - resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} - dev: true - /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: @@ -5886,8 +5973,8 @@ packages: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: true - /install-artifact-from-github@1.3.2: - resolution: {integrity: sha512-yCFcLvqk0yQdxx0uJz4t9Z3adDMLAYrcGYv546uRXCSvxE+GqNYhhz/KmrGcUKGI/gVLR9n/e/zM9jX/+ASMJQ==} + /install-artifact-from-github@1.3.3: + resolution: {integrity: sha512-x79SL0d8WOi1ZjXSTUqqs0GPQZ92YArJAN9O46wgU9wdH2U9ecyyhB9YGDbPe2OLV4ptmt6AZYRQZ2GydQZosQ==} hasBin: true dev: true @@ -5944,7 +6031,7 @@ packages: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: true /is-arrayish@0.2.1: @@ -5960,6 +6047,7 @@ packages: /is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} + requiresBuild: true dependencies: binary-extensions: 2.2.0 dev: true @@ -5987,8 +6075,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /is-core-module@2.12.0: - resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==} + /is-core-module@2.12.1: + resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} dependencies: has: 1.0.3 dev: true @@ -6076,6 +6164,13 @@ packages: engines: {node: '>=12'} dev: true + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + /is-get-set-prop@1.0.0: resolution: {integrity: sha512-DvAYZ1ZgGUz4lzxKMPYlt08qAUqyG9ckSg2pIjfvcQ7+pkVNUHk8yVLXOnCLe5WKXhLop8oorWFBJHpwWQpszQ==} dependencies: @@ -6108,8 +6203,12 @@ packages: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} dev: true - /is-map@2.0.2: - resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + /is-nan@1.3.2: + resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 dev: true /is-negative-zero@2.0.2: @@ -6134,6 +6233,7 @@ packages: /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + requiresBuild: true dev: true /is-obj-prop@1.0.0: @@ -6190,10 +6290,6 @@ packages: has-tostringtag: 1.0.0 dev: true - /is-set@2.0.2: - resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} - dev: true - /is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: @@ -6236,15 +6332,11 @@ packages: text-extensions: 1.9.0 dev: true - /is-typed-array@1.1.10: - resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 + which-typed-array: 1.1.11 dev: true /is-typedarray@1.0.0: @@ -6261,23 +6353,12 @@ packages: engines: {node: '>=12'} dev: true - /is-weakmap@2.0.1: - resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} - dev: true - /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.2 dev: true - /is-weakset@2.0.2: - resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - dev: true - /is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} @@ -6353,10 +6434,10 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.21.8 + '@babel/core': 7.22.9 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 - semver: 6.3.0 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true @@ -6365,11 +6446,11 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.21.8 - '@babel/parser': 7.21.8 + '@babel/core': 7.22.9 + '@babel/parser': 7.22.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 - semver: 6.3.0 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true @@ -6386,12 +6467,12 @@ packages: uuid: 8.3.2 dev: true - /istanbul-lib-report@3.0.0: - resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} - engines: {node: '>=8'} + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} dependencies: istanbul-lib-coverage: 3.2.0 - make-dir: 3.1.0 + make-dir: 4.0.0 supports-color: 7.2.0 dev: true @@ -6406,16 +6487,16 @@ packages: - supports-color dev: true - /istanbul-reports@3.1.5: - resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} + /istanbul-reports@3.1.6: + resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 - istanbul-lib-report: 3.0.0 + istanbul-lib-report: 3.0.1 dev: true - /jackspeak@2.2.0: - resolution: {integrity: sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==} + /jackspeak@2.2.2: + resolution: {integrity: sha512-mgNtVv4vUuaKA97yxUHoA3+FkuhtxkjdXEWOyB/N76fjy0FjezEt34oy3epBtvCvS+7DyKwqCFWx/oJLV5+kCg==} engines: {node: '>=14'} dependencies: '@isaacs/cliui': 8.0.2 @@ -6555,10 +6636,10 @@ packages: resolution: {integrity: sha512-9xZPKVYp9DxnM3sd1yAsh/d59iIaswDkai8oTxbursfKYbg/ibjX0IzFt35+VZ8iEW453TVTXztnRvYUQlAfUQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.8.2 + acorn: 8.10.0 eslint-visitor-keys: 3.4.1 - espree: 9.5.2 - semver: 7.5.1 + espree: 9.6.1 + semver: 7.5.4 dev: true /jsonfile@6.1.0: @@ -6584,12 +6665,14 @@ packages: verror: 1.10.0 dev: true - /jsx-ast-utils@3.3.3: - resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} + /jsx-ast-utils@3.3.4: + resolution: {integrity: sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw==} engines: {node: '>=4.0'} dependencies: array-includes: 3.1.6 + array.prototype.flat: 1.3.1 object.assign: 4.1.4 + object.values: 1.1.6 dev: true /kind-of@3.2.2: @@ -6663,8 +6746,8 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /lint-staged@13.2.2: - resolution: {integrity: sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA==} + /lint-staged@13.2.3: + resolution: {integrity: sha512-zVVEXLuQIhr1Y7R7YAWx4TZLdvuzk7DnmrsTNL0fax6Z3jrpFcas+vKbzxhhvp6TA55m1SQuWkpzI1qbfDZbAg==} engines: {node: ^14.13.1 || >=16.0.0} hasBin: true dependencies: @@ -6672,7 +6755,7 @@ packages: cli-truncate: 3.1.0 commander: 10.0.1 debug: 4.3.4(supports-color@8.1.1) - execa: 7.1.1 + execa: 7.2.0 lilconfig: 2.1.0 listr2: 5.0.8 micromatch: 4.0.5 @@ -6680,7 +6763,7 @@ packages: object-inspect: 1.12.3 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.2.2 + yaml: 2.3.1 transitivePeerDependencies: - enquirer - supports-color @@ -6848,6 +6931,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /lru-cache@10.0.0: + resolution: {integrity: sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==} + engines: {node: 14 || >=16.14} + dev: true + /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: @@ -6865,48 +6953,48 @@ packages: engines: {node: '>=12'} dev: true - /lru-cache@9.1.1: - resolution: {integrity: sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==} - engines: {node: 14 || >=16.14} - dev: true - /make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} dependencies: pify: 4.0.1 - semver: 5.7.1 + semver: 5.7.2 dev: true /make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} dependencies: - semver: 6.3.0 + semver: 6.3.1 dev: true - /make-fetch-happen@10.2.1(bluebird@3.7.2): - resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + dependencies: + semver: 7.5.4 + dev: true + + /make-fetch-happen@11.1.1: + resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: agentkeepalive: 4.3.0 - cacache: 16.1.3(bluebird@3.7.2) + cacache: 17.1.3 http-cache-semantics: 4.1.1 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 is-lambda: 1.0.1 lru-cache: 7.18.3 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-fetch: 2.1.2 + minipass: 5.0.0 + minipass-fetch: 3.0.3 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 negotiator: 0.6.3 promise-retry: 2.0.1 socks-proxy-agent: 7.0.0 - ssri: 9.0.1 + ssri: 10.0.4 transitivePeerDependencies: - - bluebird - supports-color dev: true @@ -6939,21 +7027,19 @@ packages: lodash: 4.17.21 dev: true - /marked-terminal@5.2.0(marked@4.3.0)(typescript@5.0.4): + /marked-terminal@5.2.0(marked@5.1.2): resolution: {integrity: sha512-Piv6yNwAQXGFjZSaiNljyNFw7jKDdGrw70FSbtxEyldLsyeuV5ZHm/1wW++kWbrOF1VPnUgYOhB2oLL0ZpnekA==} engines: {node: '>=14.13.1 || >=16.0.0'} peerDependencies: marked: ^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 dependencies: - ansi-escapes: 6.2.0(typescript@5.0.4) + ansi-escapes: 6.2.0 cardinal: 2.1.1 - chalk: 5.2.0 + chalk: 5.3.0 cli-table3: 0.6.3 - marked: 4.3.0 + marked: 5.1.2 node-emoji: 1.11.0 supports-hyperlinks: 2.3.0 - transitivePeerDependencies: - - typescript dev: true /marked@2.1.3: @@ -6962,9 +7048,9 @@ packages: hasBin: true dev: true - /marked@4.3.0: - resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} - engines: {node: '>= 12'} + /marked@5.1.2: + resolution: {integrity: sha512-ahRPGXJpjMjwSOlBoTMZAK7ATXkli5qCPxZ21TG44rx1KEo44bii4ekgTDQPNRQ4Kh7JMb9Ub1PVk1NxRSsorg==} + engines: {node: '>= 16'} hasBin: true dev: true @@ -6994,8 +7080,8 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.2.1(@types/node@20.2.5): - resolution: {integrity: sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g==} + /meros@1.3.0(@types/node@20.4.5): + resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} engines: {node: '>=13'} peerDependencies: '@types/node': '>=13' @@ -7003,7 +7089,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.2.5 + '@types/node': 20.4.5 dev: true /micro-spelling-correcter@1.1.1: @@ -7092,15 +7178,8 @@ packages: brace-expansion: 2.0.1 dev: true - /minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - dev: true - - /minimatch@9.0.1: - resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 @@ -7126,11 +7205,11 @@ packages: minipass: 3.3.6 dev: true - /minipass-fetch@2.1.2: - resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /minipass-fetch@3.0.3: + resolution: {integrity: sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - minipass: 3.3.6 + minipass: 5.0.0 minipass-sized: 1.0.3 minizlib: 2.1.2 optionalDependencies: @@ -7170,6 +7249,11 @@ packages: engines: {node: '>=8'} dev: true + /minipass@7.0.2: + resolution: {integrity: sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true + /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} @@ -7304,11 +7388,11 @@ packages: resolution: {integrity: sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==} dependencies: object.getownpropertydescriptors: 2.1.6 - semver: 5.7.1 + semver: 5.7.2 dev: true - /node-fetch@2.6.11: - resolution: {integrity: sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==} + /node-fetch@2.6.12: + resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 @@ -7319,23 +7403,23 @@ packages: whatwg-url: 5.0.0 dev: true - /node-gyp@9.3.1(bluebird@3.7.2): - resolution: {integrity: sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==} + /node-gyp@9.4.0: + resolution: {integrity: sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==} engines: {node: ^12.13 || ^14.13 || >=16} hasBin: true dependencies: env-paths: 2.2.1 + exponential-backoff: 3.1.1 glob: 7.2.3 graceful-fs: 4.2.11 - make-fetch-happen: 10.2.1(bluebird@3.7.2) + make-fetch-happen: 11.1.1 nopt: 6.0.0 npmlog: 6.0.2 rimraf: 3.0.2 - semver: 7.5.1 - tar: 6.1.14 + semver: 7.5.4 + tar: 6.1.15 which: 2.0.2 transitivePeerDependencies: - - bluebird - supports-color dev: true @@ -7346,8 +7430,8 @@ packages: process-on-spawn: 1.0.0 dev: true - /node-releases@2.0.10: - resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} dev: true /nopt@6.0.0: @@ -7363,7 +7447,7 @@ packages: dependencies: hosted-git-info: 2.8.9 resolve: 1.22.2 - semver: 5.7.1 + semver: 5.7.2 validate-npm-package-license: 3.0.4 dev: true @@ -7372,8 +7456,8 @@ packages: engines: {node: '>=10'} dependencies: hosted-git-info: 4.1.0 - is-core-module: 2.12.0 - semver: 7.5.1 + is-core-module: 2.12.1 + semver: 7.5.4 validate-npm-package-license: 3.0.4 dev: true @@ -7382,8 +7466,8 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: hosted-git-info: 6.1.1 - is-core-module: 2.12.0 - semver: 7.5.1 + is-core-module: 2.12.1 + semver: 7.5.4 validate-npm-package-license: 3.0.4 dev: true @@ -7448,8 +7532,8 @@ packages: which: 1.3.1 dev: true - /npm@9.6.6: - resolution: {integrity: sha512-GIe+nCIw8EJIv52IXDVETSGnx7p9Ttg4VsaXNIeT4eaKZpIZ635rKC/uzQ6nnc4ibCUmESoK3PrXG0/puoqNcg==} + /npm@9.8.1: + resolution: {integrity: sha512-AfDvThQzsIXhYgk9zhbk5R+lh811lKkLAeQMMhSypf1BM7zUafeIIBzMzespeuVEJ0+LvY36oRQYf7IKLzU3rw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true dev: true @@ -7457,8 +7541,10 @@ packages: - '@isaacs/string-locale-compare' - '@npmcli/arborist' - '@npmcli/config' + - '@npmcli/fs' - '@npmcli/map-workspaces' - '@npmcli/package-json' + - '@npmcli/promise-spawn' - '@npmcli/run-script' - abbrev - archy @@ -7509,10 +7595,10 @@ packages: - proc-log - qrcode-terminal - read - - read-package-json - - read-package-json-fast - semver + - sigstore - ssri + - supports-color - tar - text-table - tiny-relative-date @@ -7554,9 +7640,9 @@ packages: istanbul-lib-hook: 3.0.0 istanbul-lib-instrument: 4.0.3 istanbul-lib-processinfo: 2.0.3 - istanbul-lib-report: 3.0.0 + istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.5 + istanbul-reports: 3.1.6 make-dir: 3.1.0 node-preload: 0.2.1 p-map: 3.0.0 @@ -7634,7 +7720,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 dev: true /object.fromentries@2.0.6: @@ -7643,7 +7729,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 dev: true /object.getownpropertydescriptors@2.1.6: @@ -7653,7 +7739,7 @@ packages: array.prototype.reduce: 1.0.5 call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 safe-array-concat: 1.0.0 dev: true @@ -7661,7 +7747,7 @@ packages: resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} dependencies: define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 dev: true /object.pick@1.3.0: @@ -7677,7 +7763,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 dev: true /once@1.4.0: @@ -7737,19 +7823,19 @@ packages: levn: 0.3.0 prelude-ls: 1.1.2 type-check: 0.3.2 - word-wrap: 1.2.3 + word-wrap: 1.2.5 dev: true - /optionator@0.9.1: - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - word-wrap: 1.2.3 dev: true /p-each-series@3.0.0: @@ -7757,11 +7843,11 @@ packages: engines: {node: '>=12'} dev: true - /p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} + /p-filter@3.0.0: + resolution: {integrity: sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - p-map: 2.1.0 + p-map: 5.5.0 dev: true /p-finally@1.0.0: @@ -7837,11 +7923,6 @@ packages: p-limit: 4.0.0 dev: true - /p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - dev: true - /p-map@3.0.0: resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} engines: {node: '>=8'} @@ -7856,17 +7937,16 @@ packages: aggregate-error: 3.1.0 dev: true - /p-reduce@3.0.0: - resolution: {integrity: sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==} + /p-map@5.5.0: + resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==} engines: {node: '>=12'} + dependencies: + aggregate-error: 4.0.1 dev: true - /p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} - dependencies: - '@types/retry': 0.12.0 - retry: 0.13.1 + /p-reduce@3.0.0: + resolution: {integrity: sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==} + engines: {node: '>=12'} dev: true /p-try@1.0.0: @@ -7908,23 +7988,21 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.21.4 + '@babel/code-frame': 7.22.5 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 dev: true - /parse-json@7.0.0(typescript@5.0.4): + /parse-json@7.0.0: resolution: {integrity: sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==} engines: {node: '>=16'} dependencies: - '@babel/code-frame': 7.21.4 + '@babel/code-frame': 7.22.5 error-ex: 1.3.2 json-parse-even-better-errors: 3.0.0 lines-and-columns: 2.0.3 - type-fest: 3.10.0(typescript@5.0.4) - transitivePeerDependencies: - - typescript + type-fest: 3.13.1 dev: true /parse-passwd@1.0.0: @@ -7980,12 +8058,12 @@ packages: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true - /path-scurry@1.9.0: - resolution: {integrity: sha512-KLejx+14koDZLnb3JNDZbjcmHC/IO2Imd3rNoyt5mynieVd+MT4b1aaGaXAHw06H3P+aZ3Q+56VKJ6BCHMO3WA==} + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 9.1.1 - minipass: 5.0.0 + lru-cache: 10.0.0 + minipass: 7.0.2 dev: true /path-type@4.0.0: @@ -8026,8 +8104,8 @@ packages: engines: {node: '>=6'} dev: true - /pirates@4.0.5: - resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} dev: true @@ -8084,7 +8162,7 @@ packages: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} engines: {node: '>=6.0.0'} dependencies: - fast-diff: 1.2.0 + fast-diff: 1.3.0 dev: true /prettier@2.8.8: @@ -8104,17 +8182,6 @@ packages: fromentries: 1.3.2 dev: true - /promise-inflight@1.0.1(bluebird@3.7.2): - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - dependencies: - bluebird: 3.7.2 - dev: true - /promise-retry@2.0.1: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} @@ -8163,7 +8230,7 @@ packages: /pvtsutils@1.3.2: resolution: {integrity: sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==} dependencies: - tslib: 2.5.0 + tslib: 2.6.1 dev: true /pvutils@1.1.3: @@ -8171,11 +8238,6 @@ packages: engines: {node: '>=6.0.0'} dev: true - /q@1.5.1: - resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} - engines: {node: '>=0.6.0', teleport: '>=0.2.0'} - dev: true - /qs@6.5.3: resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} engines: {node: '>=0.6'} @@ -8218,15 +8280,14 @@ packages: strip-json-comments: 2.0.1 dev: true - /re2@1.18.0(bluebird@3.7.2): - resolution: {integrity: sha512-MoCYZlJ9YUgksND9asyNF2/x532daXU/ARp1UeJbQ5flMY6ryKNEhrWt85aw3YluzOJlC3vXpGgK2a1jb0b4GA==} + /re2@1.19.1: + resolution: {integrity: sha512-pML2LZvGdjESWAsufwlFwF+TBauIx7ItgcPIL0KiiZ9GrJ5OU3aJEc/EZvygB32nhjrRxe6QQFbie79QhT7gVA==} requiresBuild: true dependencies: - install-artifact-from-github: 1.3.2 + install-artifact-from-github: 1.3.3 nan: 2.17.0 - node-gyp: 9.3.1(bluebird@3.7.2) + node-gyp: 9.4.0 transitivePeerDependencies: - - bluebird - supports-color dev: true @@ -8234,6 +8295,15 @@ packages: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: true + /read-pkg-up@10.0.0: + resolution: {integrity: sha512-jgmKiS//w2Zs+YbX039CorlkOp8FIVbSAN8r8GJHDsGlmNPXo+VeHkqAwCiQVTTx5/LwLZTcEw59z3DvcLbr0g==} + engines: {node: '>=16'} + dependencies: + find-up: 6.3.0 + read-pkg: 8.0.0 + type-fest: 3.13.1 + dev: true + /read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} @@ -8243,15 +8313,6 @@ packages: type-fest: 0.8.1 dev: true - /read-pkg-up@9.1.0: - resolution: {integrity: sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - find-up: 6.3.0 - read-pkg: 7.1.0 - type-fest: 2.19.0 - dev: true - /read-pkg@5.2.0: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} @@ -8262,26 +8323,14 @@ packages: type-fest: 0.6.0 dev: true - /read-pkg@7.1.0: - resolution: {integrity: sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==} - engines: {node: '>=12.20'} - dependencies: - '@types/normalize-package-data': 2.4.1 - normalize-package-data: 3.0.3 - parse-json: 5.2.0 - type-fest: 2.19.0 - dev: true - - /read-pkg@8.0.0(typescript@5.0.4): + /read-pkg@8.0.0: resolution: {integrity: sha512-Ajb9oSjxXBw0YyOiwtQ2dKbAA/vMnUPnY63XcCk+mXo0BwIdQEMgZLZiMWGttQHcUhUgbK0mH85ethMPKXxziw==} engines: {node: '>=16'} dependencies: '@types/normalize-package-data': 2.4.1 normalize-package-data: 5.0.0 - parse-json: 7.0.0(typescript@5.0.4) - type-fest: 3.10.0(typescript@5.0.4) - transitivePeerDependencies: - - typescript + parse-json: 7.0.0 + type-fest: 3.13.1 dev: true /readable-stream@2.3.8: @@ -8308,10 +8357,22 @@ packages: /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + requiresBuild: true dependencies: picomatch: 2.3.1 dev: true + /recast@0.23.3: + resolution: {integrity: sha512-HbCVFh2ANP6a09nzD4lx7XthsxMOJWKX5pIcUwtLrmeEIl3I0DwjCoVXDE0Aobk+7k/mS3H50FK4iuYArpcT6Q==} + engines: {node: '>= 4'} + dependencies: + assert: 2.0.0 + ast-types: 0.16.1 + esprima: 4.0.1 + source-map: 0.6.1 + tslib: 2.6.1 + dev: true + /redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} @@ -8330,7 +8391,7 @@ packages: resolution: {integrity: sha512-486O8/pQXwj9jV0mVvUnTsxq0uknpBnNJ0eCUhkZqJRQ8KutrT1PhzmumdCeM1hSBF2eMlFPmwECRER4IbKXlQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: - '@eslint-community/regexpp': 4.5.1 + '@eslint-community/regexpp': 4.6.2 dev: true /regenerate-unicode-properties@10.1.0: @@ -8351,7 +8412,7 @@ packages: /regenerator-transform@0.15.1: resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==} dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': 7.22.6 dev: true /regex-not@1.0.2: @@ -8366,7 +8427,7 @@ packages: resolution: {integrity: sha512-OLxjyjPkVH+rQlBLb1I/P/VTmamSjGkvN5PTV5BXP432k3uVz727J7H29GA5IFiY0m7e1xBN7049Wn59FY3DEQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: - '@eslint-community/regexpp': 4.5.1 + '@eslint-community/regexpp': 4.6.2 refa: 0.11.0 dev: true @@ -8405,7 +8466,7 @@ packages: resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} engines: {node: '>=14'} dependencies: - '@pnpm/npm-conf': 2.2.0 + '@pnpm/npm-conf': 2.2.2 dev: true /regjsparser@0.9.1: @@ -8497,6 +8558,10 @@ packages: engines: {node: '>=8'} dev: true + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: true + /resolve-url@0.2.1: resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} deprecated: https://github.com/lydell/resolve-url#deprecated @@ -8506,7 +8571,7 @@ packages: resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} hasBin: true dependencies: - is-core-module: 2.12.0 + is-core-module: 2.12.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -8515,7 +8580,7 @@ packages: resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} hasBin: true dependencies: - is-core-module: 2.12.0 + is-core-module: 2.12.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -8538,11 +8603,6 @@ packages: engines: {node: '>= 4'} dev: true - /retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - dev: true - /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -8564,7 +8624,7 @@ packages: engines: {node: '>=14'} hasBin: true dependencies: - glob: 10.2.6 + glob: 10.3.3 dev: true /roarr@7.15.0: @@ -8595,7 +8655,7 @@ packages: /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.5.0 + tslib: 2.6.1 dev: true /safe-array-concat@1.0.0: @@ -8648,26 +8708,26 @@ packages: /scslre@0.2.0: resolution: {integrity: sha512-4hc49fUMmX3jM0XdFUAPBrs1xwEcdHa0KyjEsjFs+Zfc66mpFpq5YmRgDtl+Ffo6AtJIilfei+yKw8fUn3N88w==} dependencies: - '@eslint-community/regexpp': 4.5.1 + '@eslint-community/regexpp': 4.6.2 refa: 0.11.0 regexp-ast-analysis: 0.6.0 dev: true - /semantic-release@21.0.2(typescript@5.0.4): - resolution: {integrity: sha512-Hl6lyJdZ0pAYD07Z1FIUmg06UzSC3fEjHS7U31YppNQ8jOwjjt7pVzW9OfpoO0vbmqD3Tc+b/iZh5fqvKt01OA==} + /semantic-release@21.0.7: + resolution: {integrity: sha512-peRDSXN+hF8EFSKzze90ff/EnAmgITHQ/a3SZpRV3479ny0BIZWEJ33uX6/GlOSKdaSxo9hVRDyv2/u2MuF+Bw==} engines: {node: '>=18'} hasBin: true dependencies: - '@semantic-release/commit-analyzer': 9.0.2(semantic-release@21.0.2) - '@semantic-release/error': 3.0.0 - '@semantic-release/github': 8.0.7(semantic-release@21.0.2) - '@semantic-release/npm': 10.0.3(semantic-release@21.0.2)(typescript@5.0.4) - '@semantic-release/release-notes-generator': 11.0.1(semantic-release@21.0.2) + '@semantic-release/commit-analyzer': 10.0.1(semantic-release@21.0.7) + '@semantic-release/error': 4.0.0 + '@semantic-release/github': 9.0.4(semantic-release@21.0.7) + '@semantic-release/npm': 10.0.4(semantic-release@21.0.7) + '@semantic-release/release-notes-generator': 11.0.4(semantic-release@21.0.7) aggregate-error: 4.0.1 - cosmiconfig: 8.1.3 + cosmiconfig: 8.2.0 debug: 4.3.4(supports-color@8.1.1) - env-ci: 9.1.0 - execa: 7.1.1 + env-ci: 9.1.1 + execa: 7.2.0 figures: 5.0.0 find-versions: 5.1.0 get-stream: 6.0.1 @@ -8675,21 +8735,19 @@ packages: hook-std: 3.0.0 hosted-git-info: 6.1.1 lodash-es: 4.17.21 - marked: 4.3.0 - marked-terminal: 5.2.0(marked@4.3.0)(typescript@5.0.4) + marked: 5.1.2 + marked-terminal: 5.2.0(marked@5.1.2) micromatch: 4.0.5 p-each-series: 3.0.0 p-reduce: 3.0.0 - read-pkg-up: 9.1.0 + read-pkg-up: 10.0.0 resolve-from: 5.0.0 - semver: 7.5.1 + semver: 7.5.4 semver-diff: 4.0.0 signale: 1.4.0 yargs: 17.7.2 transitivePeerDependencies: - - encoding - supports-color - - typescript dev: true /semver-compare@1.0.0: @@ -8700,7 +8758,7 @@ packages: resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} engines: {node: '>=12'} dependencies: - semver: 7.5.1 + semver: 7.5.4 dev: true /semver-regex@4.0.5: @@ -8708,18 +8766,18 @@ packages: engines: {node: '>=12'} dev: true - /semver@5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true dev: true - /semver@6.3.0: - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true dev: true - /semver@7.5.1: - resolution: {integrity: sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==} + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} hasBin: true dependencies: @@ -9023,11 +9081,11 @@ packages: tweetnacl: 0.14.5 dev: true - /ssri@9.0.1: - resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /ssri@10.0.4: + resolution: {integrity: sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - minipass: 3.3.6 + minipass: 5.0.0 dev: true /stack-trace@0.0.10: @@ -9042,13 +9100,6 @@ packages: object-copy: 0.1.0 dev: true - /stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} - engines: {node: '>= 0.4'} - dependencies: - internal-slot: 1.0.5 - dev: true - /stream-combiner2@1.1.1: resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} dependencies: @@ -9099,7 +9150,7 @@ packages: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.0.1 + strip-ansi: 7.1.0 dev: true /string.prototype.matchall@4.0.8: @@ -9107,7 +9158,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 get-intrinsic: 1.2.1 has-symbols: 1.0.3 internal-slot: 1.0.5 @@ -9121,7 +9172,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 dev: true /string.prototype.trimend@1.0.6: @@ -9129,7 +9180,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 dev: true /string.prototype.trimstart@1.0.6: @@ -9137,7 +9188,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 dev: true /string_decoder@1.1.1: @@ -9159,8 +9210,8 @@ packages: ansi-regex: 5.0.1 dev: true - /strip-ansi@7.0.1: - resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 @@ -9249,8 +9300,8 @@ packages: resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} engines: {node: ^14.18.0 || >=16.0.0} dependencies: - '@pkgr/utils': 2.4.0 - tslib: 2.5.0 + '@pkgr/utils': 2.4.2 + tslib: 2.6.1 dev: true /tapable@2.2.1: @@ -9258,8 +9309,8 @@ packages: engines: {node: '>=6'} dev: true - /tar@6.1.14: - resolution: {integrity: sha512-piERznXu0U7/pW7cdSn7hjqySIVTYT6F76icmFk7ptU7dDYlXTm5r9A6K04R2vU3olYgoKeo1Cg3eeu5nhftAw==} + /tar@6.1.15: + resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==} engines: {node: '>=10'} dependencies: chownr: 2.0.0 @@ -9270,17 +9321,17 @@ packages: yallist: 4.0.0 dev: true - /temp-dir@2.0.0: - resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} - engines: {node: '>=8'} + /temp-dir@3.0.0: + resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} + engines: {node: '>=14.16'} dev: true - /tempy@3.0.0: - resolution: {integrity: sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==} + /tempy@3.1.0: + resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==} engines: {node: '>=14.16'} dependencies: is-stream: 3.0.0 - temp-dir: 2.0.0 + temp-dir: 3.0.0 type-fest: 2.19.0 unique-string: 3.0.0 dev: true @@ -9310,12 +9361,6 @@ packages: xtend: 4.0.2 dev: true - /through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - dependencies: - readable-stream: 3.6.2 - dev: true - /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true @@ -9325,8 +9370,8 @@ packages: engines: {node: '>=12'} dev: true - /tlds@1.238.0: - resolution: {integrity: sha512-lFPF9pZFhLrPodaJ0wt9QIN0l8jOxqmUezGZnm7BfkDSVd9q667oVIJukLVzhF+4oW7uDlrLlfJrL5yu9RWwew==} + /tlds@1.240.0: + resolution: {integrity: sha512-1OYJQenswGZSOdRw7Bql5Qu7uf75b+F3HFBXbqnG/ifHa0fev1XcG+3pJf3pA/KC6RtHQzfKgIf1vkMlMG7mtQ==} hasBin: true dev: true @@ -9353,6 +9398,7 @@ packages: /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + requiresBuild: true dependencies: is-number: 7.0.0 dev: true @@ -9388,15 +9434,24 @@ packages: engines: {node: '>=8'} dev: true - /ts-unused-exports@9.0.4(typescript@5.0.4): - resolution: {integrity: sha512-/PPy0B1zhOJkDTUd1XVyaCqE/yA3IL2FrQ8W5/6cQ2g0kKC/06q8LEoPeXI6ELfI6Bivmv3MMvsUup5u3WH+BQ==} + /ts-api-utils@1.0.1(typescript@5.1.6): + resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.1.6 + dev: true + + /ts-unused-exports@9.0.5(typescript@5.1.6): + resolution: {integrity: sha512-1XAXaH2i4Al/aZO06pWDn9MUgTN0KQi+fvWudiWfHUTHAav45gzrx7Xq6JAsu6+LoMlVoyGvNvZSPW3KTjDncA==} hasBin: true peerDependencies: typescript: '>=3.8.3' dependencies: chalk: 4.1.2 tsconfig-paths: 3.14.2 - typescript: 5.0.4 + typescript: 5.1.6 dev: true /tsconfig-paths@3.14.2: @@ -9412,18 +9467,18 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib@2.5.0: - resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} + /tslib@2.6.1: + resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} dev: true - /tsutils@3.21.0(typescript@5.0.4): + /tsutils@3.21.0(typescript@5.1.6): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 5.0.4 + typescript: 5.1.6 dev: true /tunnel-agent@0.6.0: @@ -9495,13 +9550,39 @@ packages: engines: {node: '>=12.20'} dev: true - /type-fest@3.10.0(typescript@5.0.4): - resolution: {integrity: sha512-hmAPf1datm+gt3c2mvu0sJyhFy6lTkIGf0GzyaZWxRLnabQfPUqg6tF95RPg6sLxKI7nFLGdFxBcf2/7+GXI+A==} + /type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} - peerDependencies: - typescript: '>=4.7.0' + dev: true + + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} dependencies: - typescript: 5.0.4 + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 dev: true /typed-array-length@1.0.4: @@ -9509,7 +9590,7 @@ packages: dependencies: call-bind: 1.0.2 for-each: 0.3.3 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: true /typedarray-to-buffer@3.1.5: @@ -9518,9 +9599,9 @@ packages: is-typedarray: 1.0.0 dev: true - /typescript@5.0.4: - resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} - engines: {node: '>=12.20'} + /typescript@5.1.6: + resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} + engines: {node: '>=14.17'} hasBin: true dev: true @@ -9574,16 +9655,16 @@ packages: set-value: 2.0.1 dev: true - /unique-filename@2.0.1: - resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /unique-filename@3.0.0: + resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - unique-slug: 3.0.0 + unique-slug: 4.0.0 dev: true - /unique-slug@3.0.0: - resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /unique-slug@4.0.0: + resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: imurmurhash: 0.1.4 dev: true @@ -9624,13 +9705,13 @@ packages: engines: {node: '>=8'} dev: true - /update-browserslist-db@1.0.11(browserslist@4.21.5): + /update-browserslist-db@1.0.11(browserslist@4.21.9): resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.21.5 + browserslist: 4.21.9 escalade: 3.1.1 picocolors: 1.0.0 dev: true @@ -9646,20 +9727,20 @@ packages: deprecated: Please see https://github.com/lydell/urix#deprecated dev: true - /url-join@4.0.1: - resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + /url-join@5.0.0: + resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /url-regex-safe@2.1.0(bluebird@3.7.2): + /url-regex-safe@2.1.0: resolution: {integrity: sha512-nfrmOb62+kN4JJRkY/w9QzZeuc63/ddIFfqS9ntok0UYsJW3C5J/jGvYZecwk8V68og2zWA7fcVn4GUXIi5qbg==} engines: {node: '>= 10.12.0'} deprecated: Please upgrade to url-regex-safe@v3.0.0+ AND install re2 as an additional dependency in your project via `npm install re2` or `yarn add re2`. dependencies: ip-regex: 4.3.0 - re2: 1.18.0(bluebird@3.7.2) - tlds: 1.238.0 + re2: 1.19.1 + tlds: 1.240.0 transitivePeerDependencies: - - bluebird - supports-color dev: true @@ -9680,6 +9761,16 @@ packages: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true + /util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + dependencies: + inherits: 2.0.4 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.12 + which-typed-array: 1.1.11 + dev: true + /uuid@3.4.0: resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. @@ -9731,7 +9822,7 @@ packages: '@peculiar/json-schema': 1.1.12 asn1js: 3.0.5 pvtsutils: 1.3.2 - tslib: 2.5.0 + tslib: 2.6.1 dev: true /webidl-conversions@3.0.1: @@ -9761,21 +9852,12 @@ packages: is-symbol: 1.0.4 dev: true - /which-collection@1.0.1: - resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} - dependencies: - is-map: 2.0.2 - is-set: 2.0.2 - is-weakmap: 2.0.1 - is-weakset: 2.0.2 - dev: true - /which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} dev: true - /which-typed-array@1.1.9: - resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} + /which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 @@ -9783,7 +9865,6 @@ packages: for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - is-typed-array: 1.1.10 dev: true /which@1.3.1: @@ -9807,8 +9888,8 @@ packages: string-width: 4.2.3 dev: true - /word-wrap@1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} dev: true @@ -9844,7 +9925,7 @@ packages: dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 - strip-ansi: 7.0.1 + strip-ansi: 7.1.0 dev: true /wrappy@1.0.2: @@ -9885,7 +9966,7 @@ packages: /xregexp@5.1.1: resolution: {integrity: sha512-fKXeVorD+CzWvFs7VBuKTYIW63YD1e1osxwQ8caZ6o1jg6pDAbABDG54LCIq0j5cy7PjRvGIq6sef9DYPXpncg==} dependencies: - '@babel/runtime-corejs3': 7.21.5 + '@babel/runtime-corejs3': 7.22.6 dev: true /xtend@4.0.2: @@ -9915,11 +9996,11 @@ packages: dependencies: eslint-visitor-keys: 3.4.1 lodash: 4.17.21 - yaml: 2.2.2 + yaml: 2.3.1 dev: true - /yaml@2.2.2: - resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==} + /yaml@2.3.1: + resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} engines: {node: '>= 14'} dev: true diff --git a/src/exportParser.js b/src/exportParser.js index 5bcef3764..842effc45 100644 --- a/src/exportParser.js +++ b/src/exportParser.js @@ -905,7 +905,7 @@ const accessibilityNodes = new Set([ */ const hasAccessibility = (node) => { return accessibilityNodes.has(node.type) && 'accessibility' in node && - node.accessibility !== 'public'; + node.accessibility !== 'public' && node.accessibility !== undefined; }; /** diff --git a/test/rules/assertions/requireParam.js b/test/rules/assertions/requireParam.js index 423664658..402ac73d2 100644 --- a/test/rules/assertions/requireParam.js +++ b/test/rules/assertions/requireParam.js @@ -1624,7 +1624,7 @@ export default { /** * An interface property. */ - public Test: (id: number) => string; + Test: (id: number) => string; } `, errors: [ @@ -1646,7 +1646,7 @@ export default { * An interface property. * @param id */ - public Test: (id: number) => string; + Test: (id: number) => string; } `, parser: require.resolve('@typescript-eslint/parser'), @@ -1657,7 +1657,7 @@ export default { /** * An interface method. */ - public TestMethod(): (id: number) => string; + TestMethod(): (id: number) => string; } `, errors: [ @@ -1679,7 +1679,7 @@ export default { * An interface method. * @param id */ - public TestMethod(): (id: number) => string; + TestMethod(): (id: number) => string; } `, parser: require.resolve('@typescript-eslint/parser'), From eed807edd9a14750ae4e16279cafeb27064ecd59 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 5 Aug 2023 01:58:36 +0800 Subject: [PATCH 123/273] fix: update jsdoccomment, comment-parser, and devDeps. (#1139) --- .README/rules/imports-as-dependencies.md | 2 +- .eslintrc.json | 1 + docs/rules/imports-as-dependencies.md | 2 +- package.json | 16 +- pnpm-lock.yaml | 1009 +++++++++++++++++----- src/alignTransform.js | 10 +- src/iterateJsdoc.js | 2 +- src/rules/checkExamples.js | 15 +- test/iterateJsdoc.js | 2 +- test/jsdocUtils.js | 2 +- test/rules/assertions/flatConfig.js | 1 + test/rules/assertions/sortTags.js | 2 +- test/rules/index.js | 2 +- tsconfig-prod.json | 20 + tsconfig.json | 1 - 15 files changed, 861 insertions(+), 226 deletions(-) create mode 100644 tsconfig-prod.json diff --git a/.README/rules/imports-as-dependencies.md b/.README/rules/imports-as-dependencies.md index 59ce4bf6a..8dacbf7fa 100644 --- a/.README/rules/imports-as-dependencies.md +++ b/.README/rules/imports-as-dependencies.md @@ -6,7 +6,7 @@ which is not listed in `dependencies` or `devDependencies`. ||| |---|---| |Context|everywhere| -|Tags|``| +|Tags|(Any)| |Recommended|false| |Settings|| |Options|| diff --git a/.eslintrc.json b/.eslintrc.json index 03365fd19..feb42684b 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -32,6 +32,7 @@ "array-element-newline": 0, "filenames/match-regex": 0, "import/extensions": 0, + "import/no-useless-path-segments": 0, "prefer-named-capture-group": 0, "unicorn/no-array-reduce": 0, "unicorn/no-unsafe-regex": 0, diff --git a/docs/rules/imports-as-dependencies.md b/docs/rules/imports-as-dependencies.md index 072a39ce3..f59540a73 100644 --- a/docs/rules/imports-as-dependencies.md +++ b/docs/rules/imports-as-dependencies.md @@ -8,7 +8,7 @@ which is not listed in `dependencies` or `devDependencies`. ||| |---|---| |Context|everywhere| -|Tags|``| +|Tags|(Any)| |Recommended|false| |Settings|| |Options|| diff --git a/package.json b/package.json index a8171c917..dfaf8926a 100644 --- a/package.json +++ b/package.json @@ -5,9 +5,9 @@ "url": "http://gajus.com" }, "dependencies": { - "@es-joy/jsdoccomment": "~0.39.4", + "@es-joy/jsdoccomment": "~0.40.1", "are-docs-informative": "^0.0.2", - "comment-parser": "1.3.1", + "comment-parser": "1.4.0", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", @@ -38,18 +38,18 @@ "@types/estree": "^1.0.1", "@types/lodash.defaultsdeep": "^4.6.7", "@types/mocha": "^10.0.1", - "@types/node": "^20.4.5", + "@types/node": "^20.4.7", "@types/semver": "^7.5.0", "@types/spdx-expression-parse": "^3.0.2", - "@typescript-eslint/parser": "^6.2.0", + "@typescript-eslint/parser": "^6.2.1", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", "chai": "^4.3.7", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "8.45.0", - "eslint-config-canonical": "~41.1.5", + "eslint": "8.46.0", + "eslint-config-canonical": "~41.1.7", "espree": "^9.6.1", "gitdown": "^3.1.5", "glob": "^10.3.3", @@ -81,6 +81,7 @@ "*.js": "npm run lint-arg -- --fix" }, "main": "./dist/index.js", + "types": "./dist/index.d.ts", "name": "eslint-plugin-jsdoc", "mocha": { "require": [ @@ -121,7 +122,8 @@ }, "scripts": { "tsc": "tsc", - "build": "rimraf ./dist && cross-env NODE_ENV=production babel ./src --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored", + "tsc-build": "tsc -p tsconfig-prod.json", + "build": "rimraf ./dist && cross-env NODE_ENV=production babel ./src --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored && pnpm tsc-build || true", "check-docs": "babel-node ./src/bin/generateDocs.js --check", "create-docs": "npm run create-options && babel-node ./src/bin/generateDocs.js", "create-rule": "babel-node ./src/bin/generateRule.js", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 433553d82..bc7e18163 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,14 +6,14 @@ settings: dependencies: '@es-joy/jsdoccomment': - specifier: ~0.39.4 - version: 0.39.4 + specifier: ~0.40.1 + version: 0.40.1 are-docs-informative: specifier: ^0.0.2 version: 0.0.2 comment-parser: - specifier: 1.3.1 - version: 1.3.1 + specifier: 1.4.0 + version: 1.4.0 debug: specifier: ^4.3.4 version: 4.3.4(supports-color@8.1.1) @@ -42,7 +42,7 @@ devDependencies: version: 7.22.9 '@babel/eslint-parser': specifier: ^7.22.9 - version: 7.22.9(@babel/core@7.22.9)(eslint@8.45.0) + version: 7.22.9(@babel/core@7.22.9)(eslint@8.46.0) '@babel/node': specifier: ^7.22.6 version: 7.22.6(@babel/core@7.22.9) @@ -98,8 +98,8 @@ devDependencies: specifier: ^10.0.1 version: 10.0.1 '@types/node': - specifier: ^20.4.5 - version: 20.4.5 + specifier: ^20.4.7 + version: 20.4.7 '@types/semver': specifier: ^7.5.0 version: 7.5.0 @@ -107,8 +107,8 @@ devDependencies: specifier: ^3.0.2 version: 3.0.2 '@typescript-eslint/parser': - specifier: ^6.2.0 - version: 6.2.0(eslint@8.45.0)(typescript@5.1.6) + specifier: ^6.2.1 + version: 6.2.1(eslint@8.46.0)(typescript@5.1.6) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -128,11 +128,11 @@ devDependencies: specifier: ^5.0.1 version: 5.0.1 eslint: - specifier: 8.45.0 - version: 8.45.0 + specifier: 8.46.0 + version: 8.46.0 eslint-config-canonical: - specifier: ~41.1.5 - version: 41.1.5(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/node@20.4.5)(eslint@8.45.0)(graphql@16.7.1)(typescript@5.1.6) + specifier: ~41.1.7 + version: 41.1.7(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/node@20.4.7)(eslint@8.46.0)(graphql@16.7.1)(typescript@5.1.6)(vitest@0.34.1) espree: specifier: ^9.6.1 version: 9.6.1 @@ -252,7 +252,7 @@ packages: - supports-color dev: true - /@babel/eslint-parser@7.22.9(@babel/core@7.22.9)(eslint@8.45.0): + /@babel/eslint-parser@7.22.9(@babel/core@7.22.9)(eslint@8.46.0): resolution: {integrity: sha512-xdMkt39/nviO/4vpVdrEYPwXCsYIXSSAr6mC7WQsNIlGnuxKyKE7GZjalcnbSWiC4OXGNNN3UQPeHfjSC6sTDA==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: @@ -261,20 +261,20 @@ packages: dependencies: '@babel/core': 7.22.9 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.45.0 + eslint: 8.46.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true - /@babel/eslint-plugin@7.22.5(@babel/eslint-parser@7.22.9)(eslint@8.45.0): + /@babel/eslint-plugin@7.22.5(@babel/eslint-parser@7.22.9)(eslint@8.46.0): resolution: {integrity: sha512-lDXW06rf1sXywWWw+UdS/iYxRjrqhH4AXdPeKE4+fEgEoGBXcdIDQ+uCJOUcvCb0jCTvfwHOSXkwnfd24EAkLQ==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': '>=7.11.0' eslint: '>=7.5.0' dependencies: - '@babel/eslint-parser': 7.22.9(@babel/core@7.22.9)(eslint@8.45.0) - eslint: 8.45.0 + '@babel/eslint-parser': 7.22.9(@babel/core@7.22.9)(eslint@8.46.0) + eslint: 8.46.0 eslint-rule-composer: 0.3.0 dev: true @@ -1525,10 +1525,10 @@ packages: engines: {node: '>=12.0.0'} dependencies: '@babel/core': 7.22.9 - '@babel/eslint-parser': 7.22.9(@babel/core@7.22.9)(eslint@8.45.0) + '@babel/eslint-parser': 7.22.9(@babel/core@7.22.9)(eslint@8.46.0) '@es-joy/jsdoccomment': 0.38.0 - '@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6) - eslint: 8.45.0 + '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6) + eslint: 8.46.0 esquery: 1.5.0 typescript: 5.1.6 transitivePeerDependencies: @@ -1544,23 +1544,221 @@ packages: jsdoc-type-pratt-parser: 4.0.0 dev: true - /@es-joy/jsdoccomment@0.39.4: - resolution: {integrity: sha512-Jvw915fjqQct445+yron7Dufix9A+m9j1fCJYlCo1FWlRvTxa3pjJelxdSTdaLWcTwRU6vbL+NYjO4YuNIS5Qg==} + /@es-joy/jsdoccomment@0.40.1: + resolution: {integrity: sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg==} engines: {node: '>=16'} dependencies: - comment-parser: 1.3.1 + comment-parser: 1.4.0 esquery: 1.5.0 jsdoc-type-pratt-parser: 4.0.0 dev: false - /@eslint-community/eslint-utils@4.4.0(eslint@8.45.0): + /@esbuild/android-arm64@0.18.17: + resolution: {integrity: sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.18.17: + resolution: {integrity: sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.18.17: + resolution: {integrity: sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.18.17: + resolution: {integrity: sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.18.17: + resolution: {integrity: sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.18.17: + resolution: {integrity: sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.18.17: + resolution: {integrity: sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.18.17: + resolution: {integrity: sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.18.17: + resolution: {integrity: sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.18.17: + resolution: {integrity: sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.18.17: + resolution: {integrity: sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.18.17: + resolution: {integrity: sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.18.17: + resolution: {integrity: sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.18.17: + resolution: {integrity: sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.18.17: + resolution: {integrity: sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.18.17: + resolution: {integrity: sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.18.17: + resolution: {integrity: sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.18.17: + resolution: {integrity: sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.18.17: + resolution: {integrity: sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.18.17: + resolution: {integrity: sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.18.17: + resolution: {integrity: sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.18.17: + resolution: {integrity: sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.46.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.45.0 - eslint-visitor-keys: 3.4.1 + eslint: 8.46.0 + eslint-visitor-keys: 3.4.2 dev: true /@eslint-community/regexpp@4.6.2: @@ -1568,8 +1766,8 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.0: - resolution: {integrity: sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==} + /@eslint/eslintrc@2.1.1: + resolution: {integrity: sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -1585,12 +1783,12 @@ packages: - supports-color dev: true - /@eslint/js@8.44.0: - resolution: {integrity: sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==} + /@eslint/js@8.46.0: + resolution: {integrity: sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.22.9)(@types/node@20.4.5)(graphql@16.7.1): + /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.22.9)(@types/node@20.4.7)(graphql@16.7.1): resolution: {integrity: sha512-RbwVlz1gcYG62sECR1u0XqMh8w5e5XMCCZoMvPQ3nJzEBCTfXLGX727GBoRmSvY1x4gJmqNZ1lsOX7lZY14RIw==} engines: {node: '>=12'} peerDependencies: @@ -1604,7 +1802,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.3.1 graphql: 16.7.1 - graphql-config: 4.5.0(@types/node@20.4.5)(graphql@16.7.1) + graphql-config: 4.5.0(@types/node@20.4.7)(graphql@16.7.1) graphql-depth-limit: 1.1.0(graphql@16.7.1) lodash.lowercase: 4.3.0 tslib: 2.6.1 @@ -1679,7 +1877,7 @@ packages: - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.10(@types/node@20.4.5)(graphql@16.7.1): + /@graphql-tools/executor-http@0.1.10(@types/node@20.4.7)(graphql@16.7.1): resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1690,7 +1888,7 @@ packages: dset: 3.1.2 extract-files: 11.0.0 graphql: 16.7.1 - meros: 1.3.0(@types/node@20.4.5) + meros: 1.3.0(@types/node@20.4.7) tslib: 2.6.1 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -1813,7 +2011,7 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.4.5)(graphql@16.7.1): + /@graphql-tools/url-loader@7.17.18(@types/node@20.4.7)(graphql@16.7.1): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1821,7 +2019,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 9.0.35(graphql@16.7.1) '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.7.1) - '@graphql-tools/executor-http': 0.1.10(@types/node@20.4.5)(graphql@16.7.1) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.4.7)(graphql@16.7.1) '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) '@graphql-tools/wrap': 9.4.2(graphql@16.7.1) @@ -1931,6 +2129,13 @@ packages: engines: {node: '>=8'} dev: true + /@jest/schemas@29.6.0: + resolution: {integrity: sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} @@ -2277,11 +2482,21 @@ packages: - supports-color dev: true + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true + /@tootallnate/once@2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} dev: true + /@types/chai-subset@1.3.3: + resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} + dependencies: + '@types/chai': 4.3.5 + dev: true + /@types/chai@4.3.5: resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} dev: true @@ -2339,8 +2554,8 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node@20.4.5: - resolution: {integrity: sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==} + /@types/node@20.4.7: + resolution: {integrity: sha512-bUBrPjEry2QUTsnuEjzjbS7voGWCc30W0qzgMf90GPeDGFRakvrz47ju+oqDAKCXLUCe39u57/ORMl/O/04/9g==} dev: true /@types/normalize-package-data@2.4.1: @@ -2358,10 +2573,10 @@ packages: /@types/ws@8.5.5: resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} dependencies: - '@types/node': 20.4.5 + '@types/node': 20.4.7 dev: true - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)(typescript@5.1.6): + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2373,12 +2588,12 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6) '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/utils': 5.62.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/type-utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.45.0 + eslint: 8.46.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare-lite: 1.4.0 @@ -2389,20 +2604,20 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils@5.62.0(eslint@8.45.0)(typescript@5.1.6): + /@typescript-eslint/experimental-utils@5.62.0(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.45.0)(typescript@5.1.6) - eslint: 8.45.0 + '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) + eslint: 8.46.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.45.0)(typescript@5.1.6): + /@typescript-eslint/parser@5.62.0(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2416,14 +2631,14 @@ packages: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.45.0 + eslint: 8.46.0 typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.2.0(eslint@8.45.0)(typescript@5.1.6): - resolution: {integrity: sha512-igVYOqtiK/UsvKAmmloQAruAdUHihsOCvplJpplPZ+3h4aDkC/UKZZNKgB6h93ayuYLuEymU3h8nF1xMRbh37g==} + /@typescript-eslint/parser@6.2.1(eslint@8.46.0)(typescript@5.1.6): + resolution: {integrity: sha512-Ld+uL1kYFU8e6btqBFpsHkwQ35rw30IWpdQxgOqOh4NfxSDH6uCkah1ks8R/RgQqI5hHPXMaLy9fbFseIe+dIg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2432,12 +2647,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.2.0 - '@typescript-eslint/types': 6.2.0 - '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.2.0 + '@typescript-eslint/scope-manager': 6.2.1 + '@typescript-eslint/types': 6.2.1 + '@typescript-eslint/typescript-estree': 6.2.1(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.2.1 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.45.0 + eslint: 8.46.0 typescript: 5.1.6 transitivePeerDependencies: - supports-color @@ -2459,7 +2674,15 @@ packages: '@typescript-eslint/visitor-keys': 6.2.0 dev: true - /@typescript-eslint/type-utils@5.62.0(eslint@8.45.0)(typescript@5.1.6): + /@typescript-eslint/scope-manager@6.2.1: + resolution: {integrity: sha512-UCqBF9WFqv64xNsIEPfBtenbfodPXsJ3nPAr55mGPkQIkiQvgoWNo+astj9ZUfJfVKiYgAZDMnM6dIpsxUMp3Q==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.2.1 + '@typescript-eslint/visitor-keys': 6.2.1 + dev: true + + /@typescript-eslint/type-utils@5.62.0(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2470,9 +2693,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) - '@typescript-eslint/utils': 5.62.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.45.0 + eslint: 8.46.0 tsutils: 3.21.0(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: @@ -2489,6 +2712,11 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true + /@typescript-eslint/types@6.2.1: + resolution: {integrity: sha512-528bGcoelrpw+sETlyM91k51Arl2ajbNT9L4JwoXE2dvRe1yd8Q64E4OL7vHYw31mlnVsf+BeeLyAZUEQtqahQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.1.6): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2531,19 +2759,40 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.45.0)(typescript@5.1.6): + /@typescript-eslint/typescript-estree@6.2.1(typescript@5.1.6): + resolution: {integrity: sha512-G+UJeQx9AKBHRQBpmvr8T/3K5bJa485eu+4tQBxFq0KoT22+jJyzo1B50JDT9QdC1DEmWQfdKsa8ybiNWYsi0Q==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.2.1 + '@typescript-eslint/visitor-keys': 6.2.1 + debug: 4.3.4(supports-color@8.1.1) + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.1(typescript@5.1.6) + typescript: 5.1.6 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@5.62.0(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) - eslint: 8.45.0 + eslint: 8.46.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -2551,19 +2800,19 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.2.0(eslint@8.45.0)(typescript@5.1.6): + /@typescript-eslint/utils@6.2.0(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-RCFrC1lXiX1qEZN8LmLrxYRhOkElEsPKTVSNout8DMzf8PeWoQG7Rxz2SadpJa3VSh5oYKGwt7j7X/VRg+Y3OQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 6.2.0 '@typescript-eslint/types': 6.2.0 '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) - eslint: 8.45.0 + eslint: 8.46.0 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -2586,6 +2835,52 @@ packages: eslint-visitor-keys: 3.4.1 dev: true + /@typescript-eslint/visitor-keys@6.2.1: + resolution: {integrity: sha512-iTN6w3k2JEZ7cyVdZJTVJx2Lv7t6zFA8DCrJEHD2mwfc16AEvvBWVhbFh34XyG2NORCd0viIgQY1+u7kPI0WpA==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.2.1 + eslint-visitor-keys: 3.4.1 + dev: true + + /@vitest/expect@0.34.1: + resolution: {integrity: sha512-q2CD8+XIsQ+tHwypnoCk8Mnv5e6afLFvinVGCq3/BOT4kQdVQmY6rRfyKkwcg635lbliLPqbunXZr+L1ssUWiQ==} + dependencies: + '@vitest/spy': 0.34.1 + '@vitest/utils': 0.34.1 + chai: 4.3.7 + dev: true + + /@vitest/runner@0.34.1: + resolution: {integrity: sha512-YfQMpYzDsYB7yqgmlxZ06NI4LurHWfrH7Wy3Pvf/z/vwUSgq1zLAb1lWcItCzQG+NVox+VvzlKQrYEXb47645g==} + dependencies: + '@vitest/utils': 0.34.1 + p-limit: 4.0.0 + pathe: 1.1.1 + dev: true + + /@vitest/snapshot@0.34.1: + resolution: {integrity: sha512-0O9LfLU0114OqdF8lENlrLsnn024Tb1CsS9UwG0YMWY2oGTQfPtkW+B/7ieyv0X9R2Oijhi3caB1xgGgEgclSQ==} + dependencies: + magic-string: 0.30.2 + pathe: 1.1.1 + pretty-format: 29.6.2 + dev: true + + /@vitest/spy@0.34.1: + resolution: {integrity: sha512-UT4WcI3EAPUNO8n6y9QoEqynGGEPmmRxC+cLzneFFXpmacivjHZsNbiKD88KUScv5DCHVDgdBsLD7O7s1enFcQ==} + dependencies: + tinyspy: 2.1.1 + dev: true + + /@vitest/utils@0.34.1: + resolution: {integrity: sha512-/ql9dsFi4iuEbiNcjNHQWXBum7aL8pyhxvfnD9gNtbjR9fUKAjxhj4AA3yfLXg6gJpMGGecvtF8Au2G9y3q47Q==} + dependencies: + diff-sequences: 29.4.3 + loupe: 2.3.6 + pretty-format: 29.6.2 + dev: true + /@whatwg-node/events@0.0.3: resolution: {integrity: sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA==} dev: true @@ -2636,6 +2931,11 @@ packages: acorn: 8.10.0 dev: true + /acorn-walk@8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + dev: true + /acorn@2.7.0: resolution: {integrity: sha512-pXK8ez/pVjqFdAgBkF1YPVRacuLQ9EXBKaKWaeh58WNfMkCmZhOZzu+NtKSPD5PHmCCHheQ5cD29qM1K4QTxIg==} engines: {node: '>=0.4.0'} @@ -2745,6 +3045,11 @@ packages: color-convert: 2.0.1 dev: true + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true + /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} @@ -3197,6 +3502,11 @@ packages: streamsearch: 1.1.0 dev: true + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + /cacache@17.1.3: resolution: {integrity: sha512-jAdjGxmPxZh0IipMdR7fK/4sDSrHMLUV0+GvVUsjwyGNKHsh79kW/otg+GkbXwl6Uzvy9wsvHOX4nUoWldeZMg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -3532,6 +3842,11 @@ packages: /comment-parser@1.3.1: resolution: {integrity: sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==} engines: {node: '>= 12.0.0'} + dev: true + + /comment-parser@1.4.0: + resolution: {integrity: sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==} + engines: {node: '>= 12.0.0'} /commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} @@ -3919,6 +4234,11 @@ packages: engines: {node: '>=6'} dev: true + /diff-sequences@29.4.3: + resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + /diff@5.0.0: resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} engines: {node: '>=0.3.1'} @@ -4160,6 +4480,36 @@ packages: resolution: {integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==} dev: true + /esbuild@0.18.17: + resolution: {integrity: sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.18.17 + '@esbuild/android-arm64': 0.18.17 + '@esbuild/android-x64': 0.18.17 + '@esbuild/darwin-arm64': 0.18.17 + '@esbuild/darwin-x64': 0.18.17 + '@esbuild/freebsd-arm64': 0.18.17 + '@esbuild/freebsd-x64': 0.18.17 + '@esbuild/linux-arm': 0.18.17 + '@esbuild/linux-arm64': 0.18.17 + '@esbuild/linux-ia32': 0.18.17 + '@esbuild/linux-loong64': 0.18.17 + '@esbuild/linux-mips64el': 0.18.17 + '@esbuild/linux-ppc64': 0.18.17 + '@esbuild/linux-riscv64': 0.18.17 + '@esbuild/linux-s390x': 0.18.17 + '@esbuild/linux-x64': 0.18.17 + '@esbuild/netbsd-x64': 0.18.17 + '@esbuild/openbsd-x64': 0.18.17 + '@esbuild/sunos-x64': 0.18.17 + '@esbuild/win32-arm64': 0.18.17 + '@esbuild/win32-ia32': 0.18.17 + '@esbuild/win32-x64': 0.18.17 + dev: true + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -4200,50 +4550,50 @@ packages: lodash.zip: 4.2.0 dev: true - /eslint-config-canonical@41.1.5(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/node@20.4.5)(eslint@8.45.0)(graphql@16.7.1)(typescript@5.1.6): - resolution: {integrity: sha512-upJtTgQwjvWbna1Q0EGzZ9ral/xjTBpE31oy+UhXpJuo5I3dK32L51PuxBG8ROjHOTrHp2um40Cn4Z/iuSyujg==} + /eslint-config-canonical@41.1.7(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/node@20.4.7)(eslint@8.46.0)(graphql@16.7.1)(typescript@5.1.6)(vitest@0.34.1): + resolution: {integrity: sha512-vtFiCYoJTcFqX3v+v21PP4sizK6mkSRAtEZ6mea/Z+vM4EsRykaV/QDRVgUirBH4ZcegI8zJVuA+WyZbCCumRA==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 dependencies: '@babel/core': 7.22.9 - '@babel/eslint-parser': 7.22.9(@babel/core@7.22.9)(eslint@8.45.0) - '@babel/eslint-plugin': 7.22.5(@babel/eslint-parser@7.22.9)(eslint@8.45.0) + '@babel/eslint-parser': 7.22.9(@babel/core@7.22.9)(eslint@8.46.0) + '@babel/eslint-plugin': 7.22.5(@babel/eslint-parser@7.22.9)(eslint@8.46.0) '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.9) - '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.22.9)(@types/node@20.4.5)(graphql@16.7.1) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.22.9)(@types/node@20.4.7)(graphql@16.7.1) '@next/eslint-plugin-next': 13.4.12 '@rushstack/eslint-patch': 1.3.2 - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6) - eslint: 8.45.0 - eslint-config-prettier: 8.8.0(eslint@8.45.0) - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.45.0) - eslint-plugin-ava: 14.0.0(eslint@8.45.0) - eslint-plugin-canonical: 4.8.0(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.45.0)(typescript@5.1.6) - eslint-plugin-cypress: 2.13.3(eslint@8.45.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.45.0) - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.45.0) - eslint-plugin-fp: 2.3.0(eslint@8.45.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@6.2.0)(eslint@8.45.0) - eslint-plugin-jest: 27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.45.0)(typescript@5.1.6) - eslint-plugin-jsdoc: 43.2.0(eslint@8.45.0) - eslint-plugin-jsonc: 2.9.0(eslint@8.45.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@8.45.0) - eslint-plugin-lodash: 7.4.0(eslint@8.45.0) - eslint-plugin-mocha: 10.1.0(eslint@8.45.0) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6) + eslint: 8.46.0 + eslint-config-prettier: 8.8.0(eslint@8.46.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.46.0) + eslint-plugin-ava: 14.0.0(eslint@8.46.0) + eslint-plugin-canonical: 4.9.0(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.46.0)(typescript@5.1.6) + eslint-plugin-cypress: 2.13.3(eslint@8.46.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.46.0) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.46.0) + eslint-plugin-fp: 2.3.0(eslint@8.46.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@6.2.1)(eslint@8.46.0) + eslint-plugin-jest: 27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.46.0)(typescript@5.1.6) + eslint-plugin-jsdoc: 43.2.0(eslint@8.46.0) + eslint-plugin-jsonc: 2.9.0(eslint@8.46.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.46.0) + eslint-plugin-lodash: 7.4.0(eslint@8.46.0) + eslint-plugin-mocha: 10.1.0(eslint@8.46.0) eslint-plugin-modules-newline: 0.0.6 - eslint-plugin-node: 11.1.0(eslint@8.45.0) - eslint-plugin-prettier: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.45.0)(prettier@2.8.8) - eslint-plugin-promise: 6.1.1(eslint@8.45.0) - eslint-plugin-react: 7.33.0(eslint@8.45.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.45.0) - eslint-plugin-regexp: 1.15.0(eslint@8.45.0) - eslint-plugin-simple-import-sort: 10.0.0(eslint@8.45.0) - eslint-plugin-typescript-sort-keys: 2.3.0(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)(typescript@5.1.6) - eslint-plugin-unicorn: 46.0.1(eslint@8.45.0) - eslint-plugin-vitest: 0.1.5(eslint@8.45.0)(typescript@5.1.6) - eslint-plugin-yml: 1.8.0(eslint@8.45.0) - eslint-plugin-zod: 1.4.0(eslint@8.45.0) + eslint-plugin-node: 11.1.0(eslint@8.46.0) + eslint-plugin-prettier: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.46.0)(prettier@2.8.8) + eslint-plugin-promise: 6.1.1(eslint@8.46.0) + eslint-plugin-react: 7.33.0(eslint@8.46.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.46.0) + eslint-plugin-regexp: 1.15.0(eslint@8.46.0) + eslint-plugin-simple-import-sort: 10.0.0(eslint@8.46.0) + eslint-plugin-typescript-sort-keys: 2.3.0(@typescript-eslint/parser@5.62.0)(eslint@8.46.0)(typescript@5.1.6) + eslint-plugin-unicorn: 46.0.1(eslint@8.46.0) + eslint-plugin-vitest: 0.2.8(eslint@8.46.0)(typescript@5.1.6)(vitest@0.34.1) + eslint-plugin-yml: 1.8.0(eslint@8.46.0) + eslint-plugin-zod: 1.4.0(eslint@8.46.0) prettier: 2.8.8 ramda: 0.29.0 yaml-eslint-parser: 1.2.2 @@ -4261,15 +4611,17 @@ packages: - supports-color - typescript - utf-8-validate + - vite + - vitest dev: true - /eslint-config-prettier@8.8.0(eslint@8.45.0): + /eslint-config-prettier@8.8.0(eslint@8.46.0): resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.45.0 + eslint: 8.46.0 dev: true /eslint-import-resolver-node@0.3.7: @@ -4282,7 +4634,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.45.0): + /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.46.0): resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4291,9 +4643,9 @@ packages: dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 - eslint: 8.45.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@6.2.0)(eslint@8.45.0) + eslint: 8.46.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.46.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@6.2.1)(eslint@8.46.0) get-tsconfig: 4.6.2 globby: 13.2.2 is-core-module: 2.12.1 @@ -4306,7 +4658,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.46.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4327,16 +4679,16 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6) debug: 3.2.7 - eslint: 8.45.0 + eslint: 8.46.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.45.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.46.0) transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.2.0)(eslint-import-resolver-node@0.3.7)(eslint@8.45.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.2.1)(eslint-import-resolver-node@0.3.7)(eslint@8.46.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4357,23 +4709,23 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.2.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.2.1(eslint@8.46.0)(typescript@5.1.6) debug: 3.2.7 - eslint: 8.45.0 + eslint: 8.46.0 eslint-import-resolver-node: 0.3.7 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-ava@14.0.0(eslint@8.45.0): + /eslint-plugin-ava@14.0.0(eslint@8.46.0): resolution: {integrity: sha512-XmKT6hppaipwwnLVwwvQliSU6AF1QMHiNoLD5JQfzhUhf0jY7CO0O624fQrE+Y/fTb9vbW8r77nKf7M/oHulxw==} engines: {node: '>=14.17 <15 || >=16.4'} peerDependencies: eslint: '>=8.26.0' dependencies: enhance-visitors: 1.0.0 - eslint: 8.45.0 - eslint-utils: 3.0.0(eslint@8.45.0) + eslint: 8.46.0 + eslint-utils: 3.0.0(eslint@8.46.0) espree: 9.6.1 espurify: 2.1.1 import-modules: 2.1.0 @@ -4382,14 +4734,14 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-canonical@4.8.0(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.45.0)(typescript@5.1.6): - resolution: {integrity: sha512-OXbx3xhSf/u0bb1oUne0C3fKU5Zn89WXlQTb8jljw5nR5QD5vrI8efeshSAnI0uQVgKrN0uZdooKWgRdBqWPEg==} + /eslint-plugin-canonical@4.9.0(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.46.0)(typescript@5.1.6): + resolution: {integrity: sha512-9c716jTFFfmYceO2AJHGWSamKKXiHVne8rE13nc1zYDwLiKRhSg56Poyp/kXJv8b0lhWXLMddRZzVEtDCKlucA==} engines: {node: '>=16.0.0'} dependencies: - '@typescript-eslint/utils': 6.2.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/utils': 6.2.0(eslint@8.46.0)(typescript@5.1.6) debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.45.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.46.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.46.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -4410,38 +4762,38 @@ packages: - typescript dev: true - /eslint-plugin-cypress@2.13.3(eslint@8.45.0): + /eslint-plugin-cypress@2.13.3(eslint@8.46.0): resolution: {integrity: sha512-nAPjZE5WopCsgJwl3vHm5iafpV+ZRO76Z9hMyRygWhmg5ODXDPd+9MaPl7kdJ2azj+sO87H3P1PRnggIrz848g==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 8.45.0 + eslint: 8.46.0 globals: 11.12.0 dev: true - /eslint-plugin-es@3.0.1(eslint@8.45.0): + /eslint-plugin-es@3.0.1(eslint@8.46.0): resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.45.0 + eslint: 8.46.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-eslint-comments@3.2.0(eslint@8.45.0): + /eslint-plugin-eslint-comments@3.2.0(eslint@8.46.0): resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' dependencies: escape-string-regexp: 1.0.5 - eslint: 8.45.0 + eslint: 8.46.0 ignore: 5.2.4 dev: true - /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.45.0): + /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.46.0): resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -4451,25 +4803,25 @@ packages: dependencies: '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.22.9) '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.9) - eslint: 8.45.0 + eslint: 8.46.0 lodash: 4.17.21 string-natural-compare: 3.0.1 dev: true - /eslint-plugin-fp@2.3.0(eslint@8.45.0): + /eslint-plugin-fp@2.3.0(eslint@8.46.0): resolution: {integrity: sha512-3n2oHibwoIxAht9/+ZaTldhI6brXORgl8oNXqZd+d9xuAQt2SBJ2/aml0oQRMWvXrgsz2WG6wfC++NjzSG3prA==} engines: {node: '>=4.0.0'} peerDependencies: eslint: '>=3' dependencies: create-eslint-index: 1.0.0 - eslint: 8.45.0 + eslint: 8.46.0 eslint-ast-utils: 1.1.0 lodash: 4.17.21 req-all: 0.1.0 dev: true - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.2.0)(eslint@8.45.0): + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.2.1)(eslint@8.46.0): resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -4479,15 +4831,15 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.2.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.2.1(eslint@8.46.0)(typescript@5.1.6) array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.45.0 + eslint: 8.46.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.2.0)(eslint-import-resolver-node@0.3.7)(eslint@8.45.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.2.1)(eslint-import-resolver-node@0.3.7)(eslint@8.46.0) has: 1.0.3 is-core-module: 2.12.1 is-glob: 4.0.3 @@ -4502,7 +4854,7 @@ packages: - supports-color dev: true - /eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.45.0)(typescript@5.1.6): + /eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -4515,15 +4867,15 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/utils': 5.62.0(eslint@8.45.0)(typescript@5.1.6) - eslint: 8.45.0 + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) + eslint: 8.46.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsdoc@43.2.0(eslint@8.45.0): + /eslint-plugin-jsdoc@43.2.0(eslint@8.46.0): resolution: {integrity: sha512-Hst7XUfqh28UmPD52oTXmjaRN3d0KrmOZdgtp4h9/VHUJD3Evoo82ZGXi1TtRDWgWhvqDIRI63O49H0eH7NrZQ==} engines: {node: '>=16'} peerDependencies: @@ -4534,7 +4886,7 @@ packages: comment-parser: 1.3.1 debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 8.45.0 + eslint: 8.46.0 esquery: 1.5.0 semver: 7.5.4 spdx-expression-parse: 3.0.1 @@ -4542,19 +4894,19 @@ packages: - supports-color dev: true - /eslint-plugin-jsonc@2.9.0(eslint@8.45.0): + /eslint-plugin-jsonc@2.9.0(eslint@8.46.0): resolution: {integrity: sha512-RK+LeONVukbLwT2+t7/OY54NJRccTXh/QbnXzPuTLpFMVZhPuq1C9E07+qWenGx7rrQl0kAalAWl7EmB+RjpGA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) - eslint: 8.45.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + eslint: 8.46.0 jsonc-eslint-parser: 2.3.0 natural-compare: 1.4.0 dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.45.0): + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.46.0): resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} peerDependencies: @@ -4569,7 +4921,7 @@ packages: axobject-query: 3.2.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.45.0 + eslint: 8.46.0 has: 1.0.3 jsx-ast-utils: 3.3.4 language-tags: 1.0.5 @@ -4579,24 +4931,24 @@ packages: semver: 6.3.1 dev: true - /eslint-plugin-lodash@7.4.0(eslint@8.45.0): + /eslint-plugin-lodash@7.4.0(eslint@8.46.0): resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} engines: {node: '>=10'} peerDependencies: eslint: '>=2' dependencies: - eslint: 8.45.0 + eslint: 8.46.0 lodash: 4.17.21 dev: true - /eslint-plugin-mocha@10.1.0(eslint@8.45.0): + /eslint-plugin-mocha@10.1.0(eslint@8.46.0): resolution: {integrity: sha512-xLqqWUF17llsogVOC+8C6/jvQ+4IoOREbN7ZCHuOHuD6cT5cDD4h7f2LgsZuzMAiwswWE21tO7ExaknHVDrSkw==} engines: {node: '>=14.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.45.0 - eslint-utils: 3.0.0(eslint@8.45.0) + eslint: 8.46.0 + eslint-utils: 3.0.0(eslint@8.46.0) rambda: 7.5.0 dev: true @@ -4607,14 +4959,14 @@ packages: requireindex: 1.1.0 dev: true - /eslint-plugin-node@11.1.0(eslint@8.45.0): + /eslint-plugin-node@11.1.0(eslint@8.46.0): resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.45.0 - eslint-plugin-es: 3.0.1(eslint@8.45.0) + eslint: 8.46.0 + eslint-plugin-es: 3.0.1(eslint@8.46.0) eslint-utils: 2.1.0 ignore: 5.2.4 minimatch: 3.1.2 @@ -4622,7 +4974,7 @@ packages: semver: 6.3.1 dev: true - /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.45.0)(prettier@2.8.8): + /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.46.0)(prettier@2.8.8): resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -4633,31 +4985,31 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.45.0 - eslint-config-prettier: 8.8.0(eslint@8.45.0) + eslint: 8.46.0 + eslint-config-prettier: 8.8.0(eslint@8.46.0) prettier: 2.8.8 prettier-linter-helpers: 1.0.0 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.45.0): + /eslint-plugin-promise@6.1.1(eslint@8.46.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.45.0 + eslint: 8.46.0 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.45.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.46.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.45.0 + eslint: 8.46.0 dev: true - /eslint-plugin-react@7.33.0(eslint@8.45.0): + /eslint-plugin-react@7.33.0(eslint@8.46.0): resolution: {integrity: sha512-qewL/8P34WkY8jAqdQxsiL82pDUeT7nhs8IsuXgfgnsEloKCT4miAV9N9kGtx7/KM9NH/NCGUE7Edt9iGxLXFw==} engines: {node: '>=4'} peerDependencies: @@ -4667,7 +5019,7 @@ packages: array.prototype.flatmap: 1.3.1 array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 - eslint: 8.45.0 + eslint: 8.46.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.4 minimatch: 3.1.2 @@ -4681,16 +5033,16 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-regexp@1.15.0(eslint@8.45.0): + /eslint-plugin-regexp@1.15.0(eslint@8.46.0): resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} engines: {node: ^12 || >=14} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) '@eslint-community/regexpp': 4.6.2 - comment-parser: 1.3.1 - eslint: 8.45.0 + comment-parser: 1.4.0 + eslint: 8.46.0 grapheme-splitter: 1.0.4 jsdoctypeparser: 9.0.0 refa: 0.11.0 @@ -4698,15 +5050,15 @@ packages: scslre: 0.2.0 dev: true - /eslint-plugin-simple-import-sort@10.0.0(eslint@8.45.0): + /eslint-plugin-simple-import-sort@10.0.0(eslint@8.46.0): resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 8.45.0 + eslint: 8.46.0 dev: true - /eslint-plugin-typescript-sort-keys@2.3.0(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)(typescript@5.1.6): + /eslint-plugin-typescript-sort-keys@2.3.0(@typescript-eslint/parser@5.62.0)(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-3LAcYulo5gNYiPWee+TksITfvWeBuBjGgcSLTacPESFVKEoy8laOQuZvJlSCwTBHT2SCGIxr3bJ56zuux+3MCQ==} engines: {node: 12 || >= 13.9} peerDependencies: @@ -4714,9 +5066,9 @@ packages: eslint: ^5 || ^6 || ^7 || ^8 typescript: ^3 || ^4 || ^5 dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6) - eslint: 8.45.0 + '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6) + eslint: 8.46.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 typescript: 5.1.6 @@ -4724,17 +5076,17 @@ packages: - supports-color dev: true - /eslint-plugin-unicorn@46.0.1(eslint@8.45.0): + /eslint-plugin-unicorn@46.0.1(eslint@8.46.0): resolution: {integrity: sha512-setGhMTiLAddg1asdwjZ3hekIN5zLznNa5zll7pBPwFOka6greCKDQydfqy4fqyUhndi74wpDzClSQMEcmOaew==} engines: {node: '>=14.18'} peerDependencies: eslint: '>=8.28.0' dependencies: '@babel/helper-validator-identifier': 7.22.5 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) ci-info: 3.8.0 clean-regexp: 1.0.0 - eslint: 8.45.0 + eslint: 8.46.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -4749,27 +5101,33 @@ packages: strip-indent: 3.0.0 dev: true - /eslint-plugin-vitest@0.1.5(eslint@8.45.0)(typescript@5.1.6): - resolution: {integrity: sha512-SxbGjyC6peUaCt/P+YrHxdfVzJkLC1RCotaCMZ6vuvkRGOx3SE1jcZb7vTlU6s9PoF0DYlkWuBAAYZi1IAwg2A==} + /eslint-plugin-vitest@0.2.8(eslint@8.46.0)(typescript@5.1.6)(vitest@0.34.1): + resolution: {integrity: sha512-q8s4tStyKtn3gXf+8nf1ZYTHhoCXKdnozZzp6u8b4ni5v68Y4vxhNh4Z8njUfNjEY8HoPBB77MazHMR23IPb+g==} engines: {node: 14.x || >= 16} peerDependencies: eslint: '>=8.0.0' + vite: '*' + vitest: '*' + peerDependenciesMeta: + vite: + optional: true dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.45.0)(typescript@5.1.6) - eslint: 8.45.0 + '@typescript-eslint/utils': 6.2.0(eslint@8.46.0)(typescript@5.1.6) + eslint: 8.46.0 + vitest: 0.34.1 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-yml@1.8.0(eslint@8.45.0): + /eslint-plugin-yml@1.8.0(eslint@8.46.0): resolution: {integrity: sha512-fgBiJvXD0P2IN7SARDJ2J7mx8t0bLdG6Zcig4ufOqW5hOvSiFxeUyc2g5I1uIm8AExbo26NNYCcTGZT0MXTsyg==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4(supports-color@8.1.1) - eslint: 8.45.0 + eslint: 8.46.0 lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.2 @@ -4777,13 +5135,13 @@ packages: - supports-color dev: true - /eslint-plugin-zod@1.4.0(eslint@8.45.0): + /eslint-plugin-zod@1.4.0(eslint@8.46.0): resolution: {integrity: sha512-i9WzQGw2X5fQcuQh33mA8DQjZJM/yuyZvs1Fc5EyTidX7Ed/g832+1FEQ4u5gtXy+jZ+DVsB5+oMHj4tIOfeZg==} engines: {node: '>=12'} peerDependencies: eslint: '>=8.1.0' dependencies: - eslint: 8.45.0 + eslint: 8.46.0 dev: true /eslint-rule-composer@0.3.0: @@ -4799,8 +5157,8 @@ packages: estraverse: 4.3.0 dev: true - /eslint-scope@7.2.1: - resolution: {integrity: sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==} + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 @@ -4814,13 +5172,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils@3.0.0(eslint@8.45.0): + /eslint-utils@3.0.0(eslint@8.46.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.45.0 + eslint: 8.46.0 eslint-visitor-keys: 2.1.0 dev: true @@ -4839,15 +5197,20 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.45.0: - resolution: {integrity: sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==} + /eslint-visitor-keys@3.4.2: + resolution: {integrity: sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.46.0: + resolution: {integrity: sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) '@eslint-community/regexpp': 4.6.2 - '@eslint/eslintrc': 2.1.0 - '@eslint/js': 8.44.0 + '@eslint/eslintrc': 2.1.1 + '@eslint/js': 8.46.0 '@humanwhocodes/config-array': 0.11.10 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -4857,8 +5220,8 @@ packages: debug: 4.3.4(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.1 - eslint-visitor-keys: 3.4.1 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.2 espree: 9.6.1 esquery: 1.5.0 esutils: 2.0.3 @@ -5606,7 +5969,7 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql-config@4.5.0(@types/node@20.4.5)(graphql@16.7.1): + /graphql-config@4.5.0(@types/node@20.4.7)(graphql@16.7.1): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -5620,7 +5983,7 @@ packages: '@graphql-tools/json-file-loader': 7.4.18(graphql@16.7.1) '@graphql-tools/load': 7.8.14(graphql@16.7.1) '@graphql-tools/merge': 8.4.2(graphql@16.7.1) - '@graphql-tools/url-loader': 7.17.18(@types/node@20.4.5)(graphql@16.7.1) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.4.7)(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) cosmiconfig: 8.0.0 graphql: 16.7.1 @@ -6642,6 +7005,10 @@ packages: semver: 7.5.4 dev: true + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: @@ -6798,6 +7165,11 @@ packages: strip-bom: 3.0.0 dev: true + /local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} + dev: true + /locate-path@2.0.0: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} @@ -6953,6 +7325,13 @@ packages: engines: {node: '>=12'} dev: true + /magic-string@0.30.2: + resolution: {integrity: sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + /make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -7080,7 +7459,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.3.0(@types/node@20.4.5): + /meros@1.3.0(@types/node@20.4.7): resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} engines: {node: '>=13'} peerDependencies: @@ -7089,7 +7468,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.4.5 + '@types/node': 20.4.7 dev: true /micro-spelling-correcter@1.1.1: @@ -7276,6 +7655,15 @@ packages: hasBin: true dev: true + /mlly@1.4.0: + resolution: {integrity: sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==} + dependencies: + acorn: 8.10.0 + pathe: 1.1.1 + pkg-types: 1.0.3 + ufo: 1.2.0 + dev: true + /mocha@10.2.0: resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==} engines: {node: '>= 14.0.0'} @@ -7334,6 +7722,12 @@ packages: hasBin: true dev: true + /nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + /nanomatch@1.2.13: resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} engines: {node: '>=0.10.0'} @@ -8071,6 +8465,10 @@ packages: engines: {node: '>=8'} dev: true + /pathe@1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} + dev: true + /pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} dev: true @@ -8138,6 +8536,14 @@ packages: find-up: 5.0.0 dev: true + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.4.0 + pathe: 1.1.1 + dev: true + /pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} @@ -8148,6 +8554,15 @@ packages: engines: {node: '>=0.10.0'} dev: true + /postcss@8.4.27: + resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + /prelude-ls@1.1.2: resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} engines: {node: '>= 0.8.0'} @@ -8171,6 +8586,15 @@ packages: hasBin: true dev: true + /pretty-format@29.6.2: + resolution: {integrity: sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.0 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true @@ -8295,6 +8719,10 @@ packages: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: true + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: true + /read-pkg-up@10.0.0: resolution: {integrity: sha512-jgmKiS//w2Zs+YbX039CorlkOp8FIVbSAN8r8GJHDsGlmNPXo+VeHkqAwCiQVTTx5/LwLZTcEw59z3DvcLbr0g==} engines: {node: '>=16'} @@ -8639,6 +9067,14 @@ packages: semver-compare: 1.0.0 dev: true + /rollup@3.27.2: + resolution: {integrity: sha512-YGwmHf7h2oUHkVBT248x0yt6vZkYQ3/rvE5iQuVBh3WO8GcJ6BNeOkpoX1yMHIiBm18EMLjBPIoUDkhgnyxGOQ==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + /run-applescript@5.0.0: resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} engines: {node: '>=12'} @@ -8842,6 +9278,10 @@ packages: object-inspect: 1.12.3 dev: true + /siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true @@ -8961,6 +9401,11 @@ packages: smart-buffer: 4.2.0 dev: true + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + /source-map-resolve@0.5.3: resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} deprecated: See https://github.com/lydell/source-map-resolve#deprecated @@ -9092,6 +9537,10 @@ packages: resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} dev: true + /stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + dev: true + /static-extend@0.1.2: resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} engines: {node: '>=0.10.0'} @@ -9100,6 +9549,10 @@ packages: object-copy: 0.1.0 dev: true + /std-env@3.3.3: + resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} + dev: true + /stream-combiner2@1.1.1: resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} dependencies: @@ -9259,6 +9712,12 @@ packages: engines: {node: '>=8'} dev: true + /strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + dependencies: + acorn: 8.10.0 + dev: true + /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -9365,6 +9824,20 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true + /tinybench@2.5.0: + resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==} + dev: true + + /tinypool@0.7.0: + resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} + engines: {node: '>=14.0.0'} + dev: true + + /tinyspy@2.1.1: + resolution: {integrity: sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==} + engines: {node: '>=14.0.0'} + dev: true + /titleize@3.0.0: resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} engines: {node: '>=12'} @@ -9605,6 +10078,10 @@ packages: hasBin: true dev: true + /ufo@1.2.0: + resolution: {integrity: sha512-RsPyTbqORDNDxqAdQPQBpgqhWle1VcTSou/FraClYlHf6TZnQcGslpLcAphNR+sQW4q5lLWLbOsRlh9j24baQg==} + dev: true + /uglify-js@3.17.4: resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} engines: {node: '>=0.8.0'} @@ -9810,6 +10287,129 @@ packages: extsprintf: 1.3.0 dev: true + /vite-node@0.34.1(@types/node@20.4.7): + resolution: {integrity: sha512-odAZAL9xFMuAg8aWd7nSPT+hU8u2r9gU3LRm9QKjxBEF2rRdWpMuqkrkjvyVQEdNFiBctqr2Gg4uJYizm5Le6w==} + engines: {node: '>=v14.18.0'} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4(supports-color@8.1.1) + mlly: 1.4.0 + pathe: 1.1.1 + picocolors: 1.0.0 + vite: 4.4.8(@types/node@20.4.7) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vite@4.4.8(@types/node@20.4.7): + resolution: {integrity: sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.4.7 + esbuild: 0.18.17 + postcss: 8.4.27 + rollup: 3.27.2 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vitest@0.34.1: + resolution: {integrity: sha512-G1PzuBEq9A75XSU88yO5G4vPT20UovbC/2osB2KEuV/FisSIIsw7m5y2xMdB7RsAGHAfg2lPmp2qKr3KWliVlQ==} + engines: {node: '>=v14.18.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + playwright: '*' + safaridriver: '*' + webdriverio: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + dependencies: + '@types/chai': 4.3.5 + '@types/chai-subset': 1.3.3 + '@types/node': 20.4.7 + '@vitest/expect': 0.34.1 + '@vitest/runner': 0.34.1 + '@vitest/snapshot': 0.34.1 + '@vitest/spy': 0.34.1 + '@vitest/utils': 0.34.1 + acorn: 8.10.0 + acorn-walk: 8.2.0 + cac: 6.7.14 + chai: 4.3.7 + debug: 4.3.4(supports-color@8.1.1) + local-pkg: 0.4.3 + magic-string: 0.30.2 + pathe: 1.1.1 + picocolors: 1.0.0 + std-env: 3.3.3 + strip-literal: 1.3.0 + tinybench: 2.5.0 + tinypool: 0.7.0 + vite: 4.4.8(@types/node@20.4.7) + vite-node: 0.34.1(@types/node@20.4.7) + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + /web-streams-polyfill@3.2.1: resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} engines: {node: '>= 8'} @@ -9882,6 +10482,15 @@ packages: isexe: 2.0.0 dev: true + /why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + dev: true + /wide-align@1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} dependencies: diff --git a/src/alignTransform.js b/src/alignTransform.js index 9f62260a4..022761f65 100644 --- a/src/alignTransform.js +++ b/src/alignTransform.js @@ -23,10 +23,10 @@ const { /** * @typedef {{ - * name: import('./iterateJsdoc').Integer, - * start: import('./iterateJsdoc').Integer, - * tag: import('./iterateJsdoc').Integer, - * type: import('./iterateJsdoc').Integer + * name: import('./iterateJsdoc.js').Integer, + * start: import('./iterateJsdoc.js').Integer, + * tag: import('./iterateJsdoc.js').Integer, + * type: import('./iterateJsdoc.js').Integer * }} Width */ @@ -40,7 +40,7 @@ const zeroWidth = { /** * @param {string[]} tags - * @param {import('./iterateJsdoc').Integer} index + * @param {import('./iterateJsdoc.js').Integer} index * @param {import('comment-parser').Line[]} source * @returns {boolean} */ diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index c4fbdace0..a801733ac 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -2097,7 +2097,7 @@ const getIndentAndJSDoc = function (lines, jsdocNode) { /** * @typedef {object} RuleConfig * @property {EslintRuleMeta} meta ESLint rule meta - * @property {import('./jsdocUtils').DefaultContexts} [contextDefaults] Any default contexts + * @property {import('./jsdocUtils.js').DefaultContexts} [contextDefaults] Any default contexts * @property {true} [contextSelected] Whether to force a `contexts` check * @property {true} [iterateAllJsdocs] Whether to iterate all JSDoc blocks by default * regardless of context diff --git a/src/rules/checkExamples.js b/src/rules/checkExamples.js index 2989c92bb..fdbb7d540 100644 --- a/src/rules/checkExamples.js +++ b/src/rules/checkExamples.js @@ -1,13 +1,16 @@ // Todo: When replace `CLIEngine` with `ESLint` when feature set complete per https://github.com/eslint/eslint/issues/14745 // https://github.com/eslint/eslint/blob/master/docs/user-guide/migrating-to-7.0.0.md#-the-cliengine-class-has-been-deprecated import iterateJsdoc from '../iterateJsdoc.js'; -import { - // @ts-expect-error - For older ESLint - CLIEngine, +import eslint, { ESLint, } from 'eslint'; import semver from 'semver'; +const { + // @ts-expect-error Older ESLint + CLIEngine, +} = eslint; + const zeroBasedLineIndexAdjust = -1; const likelyNestedJSDocIndentSpace = 1; const preTagSpaceLength = 1; @@ -28,7 +31,7 @@ const escapeStringRegexp = (str) => { /** * @param {string} str * @param {string} ch - * @returns {import('../iterateJsdoc').Integer} + * @returns {import('../iterateJsdoc.js').Integer} */ const countChars = (str, ch) => { return (str.match(new RegExp(escapeStringRegexp(ch), 'gu')) || []).length; @@ -224,8 +227,8 @@ export default iterateJsdoc(({ /** * @param {{ - * nonJSPrefacingCols: import('../iterateJsdoc').Integer, - * nonJSPrefacingLines: import('../iterateJsdoc').Integer, + * nonJSPrefacingCols: import('../iterateJsdoc.js').Integer, + * nonJSPrefacingLines: import('../iterateJsdoc.js').Integer, * string: string * }} cfg */ diff --git a/test/iterateJsdoc.js b/test/iterateJsdoc.js index d5350c854..f26900855 100644 --- a/test/iterateJsdoc.js +++ b/test/iterateJsdoc.js @@ -2,7 +2,7 @@ import { // eslint-disable-next-line import/no-named-default default as iterateJsdoc, parseComment, -} from '../src/iterateJsdoc'; +} from '../src/iterateJsdoc.js'; import { expect, } from 'chai'; diff --git a/test/jsdocUtils.js b/test/jsdocUtils.js index fd305f264..2de63cb14 100644 --- a/test/jsdocUtils.js +++ b/test/jsdocUtils.js @@ -1,4 +1,4 @@ -import jsdocUtils from '../src/jsdocUtils'; +import jsdocUtils from '../src/jsdocUtils.js'; import { expect, } from 'chai'; diff --git a/test/rules/assertions/flatConfig.js b/test/rules/assertions/flatConfig.js index 02b876389..9554d007e 100644 --- a/test/rules/assertions/flatConfig.js +++ b/test/rules/assertions/flatConfig.js @@ -1,3 +1,4 @@ +// @ts-expect-error Our package is not ESM import * as tsParser from '@typescript-eslint/parser'; export default { diff --git a/test/rules/assertions/sortTags.js b/test/rules/assertions/sortTags.js index 41f73e092..634ac1c46 100644 --- a/test/rules/assertions/sortTags.js +++ b/test/rules/assertions/sortTags.js @@ -1,4 +1,4 @@ -import defaultTagOrder from '../../../src/defaultTagOrder'; +import defaultTagOrder from '../../../src/defaultTagOrder.js'; const tagList = defaultTagOrder.flatMap((obj) => { return obj.tags; diff --git a/test/rules/index.js b/test/rules/index.js index 07475543b..9f444abe0 100644 --- a/test/rules/index.js +++ b/test/rules/index.js @@ -1,4 +1,4 @@ -import config from '../../src'; +import config from '../../src/index.js'; // import {fileURLToPath} from 'url'; import camelCase from 'camelcase'; import { diff --git a/tsconfig-prod.json b/tsconfig-prod.json new file mode 100644 index 000000000..42adea280 --- /dev/null +++ b/tsconfig-prod.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "lib": ["es2022"], + "moduleResolution": "node", + "module": "NodeNext", + "allowJs": true, + "checkJs": true, + "noEmit": false, + "emitDeclarationOnly": true, + "declaration": true, + "declarationMap": true, + "strict": true, + "target": "es2017", + "outDir": "dist" + }, + "include": [ + "src/**/*.js" + ], + "exclude": ["node_modules", "src/bin/*.js"] +} diff --git a/tsconfig.json b/tsconfig.json index 19913bf21..ecee904c8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,7 +8,6 @@ "noEmit": true, "declaration": true, "declarationMap": true, - "allowSyntheticDefaultImports": true, "strict": true, "target": "es2017", "outDir": "dist" From af726c8c5bd4be63acb3da44bc3014fe8c1017c6 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 16 Aug 2023 10:49:18 -0700 Subject: [PATCH 124/273] chore: tsconfig fixes --- package.json | 22 +- pnpm-lock.yaml | 1598 ++++++++++++++------------- test/rules/assertions/flatConfig.js | 1 - tsconfig-prod.json | 5 +- tsconfig.json | 5 +- 5 files changed, 848 insertions(+), 783 deletions(-) diff --git a/package.json b/package.json index dfaf8926a..bf49f05f4 100644 --- a/package.json +++ b/package.json @@ -17,13 +17,13 @@ }, "description": "JSDoc linting rules for ESLint.", "devDependencies": { - "@babel/cli": "^7.22.9", - "@babel/core": "^7.22.9", - "@babel/eslint-parser": "^7.22.9", - "@babel/node": "^7.22.6", + "@babel/cli": "^7.22.10", + "@babel/core": "^7.22.10", + "@babel/eslint-parser": "^7.22.10", + "@babel/node": "^7.22.10", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-transform-flow-strip-types": "^7.22.5", - "@babel/preset-env": "^7.22.9", + "@babel/preset-env": "^7.22.10", "@babel/register": "^7.22.5", "@es-joy/escodegen": "^3.5.1", "@es-joy/jsdoc-eslint-parser": "^0.19.0", @@ -33,29 +33,29 @@ "@semantic-release/npm": "^10.0.4", "@types/chai": "^4.3.5", "@types/debug": "^4.1.8", - "@types/eslint": "^8.44.1", + "@types/eslint": "^8.44.2", "@types/esquery": "^1.5.0", "@types/estree": "^1.0.1", "@types/lodash.defaultsdeep": "^4.6.7", "@types/mocha": "^10.0.1", - "@types/node": "^20.4.7", + "@types/node": "^20.5.0", "@types/semver": "^7.5.0", "@types/spdx-expression-parse": "^3.0.2", - "@typescript-eslint/parser": "^6.2.1", + "@typescript-eslint/parser": "^6.3.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", "chai": "^4.3.7", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "8.46.0", + "eslint": "8.47.0", "eslint-config-canonical": "~41.1.7", "espree": "^9.6.1", "gitdown": "^3.1.5", "glob": "^10.3.3", "husky": "^8.0.3", "jsdoc-type-pratt-parser": "^4.0.0", - "lint-staged": "^13.2.3", + "lint-staged": "^14.0.0", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.2.0", "nyc": "^15.1.0", @@ -123,7 +123,7 @@ "scripts": { "tsc": "tsc", "tsc-build": "tsc -p tsconfig-prod.json", - "build": "rimraf ./dist && cross-env NODE_ENV=production babel ./src --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored && pnpm tsc-build || true", + "build": "rimraf ./dist && cross-env NODE_ENV=production babel ./src --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored && pnpm tsc-build", "check-docs": "babel-node ./src/bin/generateDocs.js --check", "create-docs": "npm run create-options && babel-node ./src/bin/generateDocs.js", "create-rule": "babel-node ./src/bin/generateRule.js", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bc7e18163..f7df9e279 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,29 +35,29 @@ dependencies: devDependencies: '@babel/cli': - specifier: ^7.22.9 - version: 7.22.9(@babel/core@7.22.9) + specifier: ^7.22.10 + version: 7.22.10(@babel/core@7.22.10) '@babel/core': - specifier: ^7.22.9 - version: 7.22.9 + specifier: ^7.22.10 + version: 7.22.10 '@babel/eslint-parser': - specifier: ^7.22.9 - version: 7.22.9(@babel/core@7.22.9)(eslint@8.46.0) + specifier: ^7.22.10 + version: 7.22.10(@babel/core@7.22.10)(eslint@8.47.0) '@babel/node': - specifier: ^7.22.6 - version: 7.22.6(@babel/core@7.22.9) + specifier: ^7.22.10 + version: 7.22.10(@babel/core@7.22.10) '@babel/plugin-syntax-class-properties': specifier: ^7.12.13 - version: 7.12.13(@babel/core@7.22.9) + version: 7.12.13(@babel/core@7.22.10) '@babel/plugin-transform-flow-strip-types': specifier: ^7.22.5 - version: 7.22.5(@babel/core@7.22.9) + version: 7.22.5(@babel/core@7.22.10) '@babel/preset-env': - specifier: ^7.22.9 - version: 7.22.9(@babel/core@7.22.9) + specifier: ^7.22.10 + version: 7.22.10(@babel/core@7.22.10) '@babel/register': specifier: ^7.22.5 - version: 7.22.5(@babel/core@7.22.9) + version: 7.22.5(@babel/core@7.22.10) '@es-joy/escodegen': specifier: ^3.5.1 version: 3.5.1 @@ -83,8 +83,8 @@ devDependencies: specifier: ^4.1.8 version: 4.1.8 '@types/eslint': - specifier: ^8.44.1 - version: 8.44.1 + specifier: ^8.44.2 + version: 8.44.2 '@types/esquery': specifier: ^1.5.0 version: 1.5.0 @@ -98,8 +98,8 @@ devDependencies: specifier: ^10.0.1 version: 10.0.1 '@types/node': - specifier: ^20.4.7 - version: 20.4.7 + specifier: ^20.5.0 + version: 20.5.0 '@types/semver': specifier: ^7.5.0 version: 7.5.0 @@ -107,8 +107,8 @@ devDependencies: specifier: ^3.0.2 version: 3.0.2 '@typescript-eslint/parser': - specifier: ^6.2.1 - version: 6.2.1(eslint@8.46.0)(typescript@5.1.6) + specifier: ^6.3.0 + version: 6.3.0(eslint@8.47.0)(typescript@5.1.6) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -128,11 +128,11 @@ devDependencies: specifier: ^5.0.1 version: 5.0.1 eslint: - specifier: 8.46.0 - version: 8.46.0 + specifier: 8.47.0 + version: 8.47.0 eslint-config-canonical: specifier: ~41.1.7 - version: 41.1.7(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/node@20.4.7)(eslint@8.46.0)(graphql@16.7.1)(typescript@5.1.6)(vitest@0.34.1) + version: 41.1.7(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/node@20.5.0)(eslint@8.47.0)(graphql@16.7.1)(typescript@5.1.6)(vitest@0.34.1) espree: specifier: ^9.6.1 version: 9.6.1 @@ -149,8 +149,8 @@ devDependencies: specifier: ^4.0.0 version: 4.0.0 lint-staged: - specifier: ^13.2.3 - version: 13.2.3 + specifier: ^14.0.0 + version: 14.0.0 lodash.defaultsdeep: specifier: ^4.6.1 version: 4.6.1 @@ -197,14 +197,14 @@ packages: - encoding dev: true - /@babel/cli@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-nb2O7AThqRo7/E53EGiuAkMaRbb7J5Qp3RvN+dmua1U+kydm0oznkhqbTEG15yk26G/C3yL6OdZjzgl+DMXVVA==} + /@babel/cli@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-rM9ZMmaII630zGvtMtQ3P4GyHs28CHLYE9apLG7L8TgaSqcfoIGrlLSLsh4Q8kDTdZQQEXZm1M0nQtOvU/2heg==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@jridgewell/trace-mapping': 0.3.18 commander: 4.1.1 convert-source-map: 1.9.0 @@ -217,6 +217,14 @@ packages: chokidar: 3.5.3 dev: true + /@babel/code-frame@7.22.10: + resolution: {integrity: sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.22.10 + chalk: 2.4.2 + dev: true + /@babel/code-frame@7.22.5: resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} engines: {node: '>=6.9.0'} @@ -229,20 +237,20 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.22.9: - resolution: {integrity: sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==} + /@babel/core@7.22.10: + resolution: {integrity: sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) - '@babel/helpers': 7.22.6 - '@babel/parser': 7.22.7 + '@babel/code-frame': 7.22.10 + '@babel/generator': 7.22.10 + '@babel/helper-compilation-targets': 7.22.10 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10) + '@babel/helpers': 7.22.10 + '@babel/parser': 7.22.10 '@babel/template': 7.22.5 - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 + '@babel/traverse': 7.22.10 + '@babel/types': 7.22.10 convert-source-map: 1.9.0 debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 @@ -252,32 +260,42 @@ packages: - supports-color dev: true - /@babel/eslint-parser@7.22.9(@babel/core@7.22.9)(eslint@8.46.0): - resolution: {integrity: sha512-xdMkt39/nviO/4vpVdrEYPwXCsYIXSSAr6mC7WQsNIlGnuxKyKE7GZjalcnbSWiC4OXGNNN3UQPeHfjSC6sTDA==} + /@babel/eslint-parser@7.22.10(@babel/core@7.22.10)(eslint@8.47.0): + resolution: {integrity: sha512-0J8DNPRXQRLeR9rPaUMM3fA+RbixjnVLe/MRMYCkp3hzgsSuxCHQ8NN8xQG1wIHKJ4a1DTROTvFJdW+B5/eOsg==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: - '@babel/core': '>=7.11.0' + '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.46.0 + eslint: 8.47.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true - /@babel/eslint-plugin@7.22.5(@babel/eslint-parser@7.22.9)(eslint@8.46.0): + /@babel/eslint-plugin@7.22.5(@babel/eslint-parser@7.22.10)(eslint@8.47.0): resolution: {integrity: sha512-lDXW06rf1sXywWWw+UdS/iYxRjrqhH4AXdPeKE4+fEgEoGBXcdIDQ+uCJOUcvCb0jCTvfwHOSXkwnfd24EAkLQ==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': '>=7.11.0' eslint: '>=7.5.0' dependencies: - '@babel/eslint-parser': 7.22.9(@babel/core@7.22.9)(eslint@8.46.0) - eslint: 8.46.0 + '@babel/eslint-parser': 7.22.10(@babel/core@7.22.10)(eslint@8.47.0) + eslint: 8.47.0 eslint-rule-composer: 0.3.0 dev: true + /@babel/generator@7.22.10: + resolution: {integrity: sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.10 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 + jsesc: 2.5.2 + dev: true + /@babel/generator@7.22.9: resolution: {integrity: sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==} engines: {node: '>=6.9.0'} @@ -292,71 +310,68 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/helper-builder-binary-assignment-operator-visitor@7.22.5: resolution: {integrity: sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true - /@babel/helper-compilation-targets@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==} + /@babel/helper-compilation-targets@7.22.10: + resolution: {integrity: sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 dependencies: '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 '@babel/helper-validator-option': 7.22.5 - browserslist: 4.21.9 + browserslist: 4.21.10 lru-cache: 5.1.1 semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.22.9(@babel/core@7.22.9): + /@babel/helper-create-class-features-plugin@7.22.9(@babel/core@7.22.10): resolution: {integrity: sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-member-expression-to-functions': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.10) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.22.9): + /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.22.10): resolution: {integrity: sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.4.2(@babel/core@7.22.9): + /@babel/helper-define-polyfill-provider@0.4.2(@babel/core@7.22.10): resolution: {integrity: sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-compilation-targets': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4(supports-color@8.1.1) lodash.debounce: 4.0.8 - resolve: 1.22.2 + resolve: 1.22.3 transitivePeerDependencies: - supports-color dev: true @@ -371,37 +386,37 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.5 - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/helper-member-expression-to-functions@7.22.5: resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/helper-module-imports@7.22.5: resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true - /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.9): + /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.10): resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-module-imports': 7.22.5 '@babel/helper-simple-access': 7.22.5 @@ -413,7 +428,7 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/helper-plugin-utils@7.22.5: @@ -421,25 +436,25 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.9(@babel/core@7.22.9): + /@babel/helper-remap-async-to-generator@7.22.9(@babel/core@7.22.10): resolution: {integrity: sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-wrap-function': 7.22.9 dev: true - /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.9): + /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.10): resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-member-expression-to-functions': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 @@ -449,21 +464,21 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/helper-string-parser@7.22.5: @@ -487,20 +502,29 @@ packages: dependencies: '@babel/helper-function-name': 7.22.5 '@babel/template': 7.22.5 - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true - /@babel/helpers@7.22.6: - resolution: {integrity: sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==} + /@babel/helpers@7.22.10: + resolution: {integrity: sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.5 - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 + '@babel/traverse': 7.22.10 + '@babel/types': 7.22.10 transitivePeerDependencies: - supports-color dev: true + /@babel/highlight@7.22.10: + resolution: {integrity: sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.5 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + /@babel/highlight@7.22.5: resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} engines: {node: '>=6.9.0'} @@ -510,22 +534,30 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/node@7.22.6(@babel/core@7.22.9): - resolution: {integrity: sha512-Lt6v+RUQOTsEOXLv+KfjogLFkFfsLPPSoXZqmbngfVatkWjQPnFGHO0xjFRcN6XEvm3vsnZn+AWQiRpgZFsdIA==} + /@babel/node@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-FpSgdjIPabpEetDxtKYAcXCs0qRh12S2D40rhpRoo0w5h7/7Tu2ZroaX99cbKFNDODiSs484sZ1q0kutJbZ2iQ==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/register': 7.22.5(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/register': 7.22.5(@babel/core@7.22.10) commander: 4.1.1 - core-js: 3.31.1 + core-js: 3.32.0 node-environment-flags: 1.0.6 - regenerator-runtime: 0.13.11 + regenerator-runtime: 0.14.0 v8flags: 3.2.0 dev: true + /@babel/parser@7.22.10: + resolution: {integrity: sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.22.10 + dev: true + /@babel/parser@7.22.7: resolution: {integrity: sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==} engines: {node: '>=6.0.0'} @@ -534,905 +566,892 @@ packages: '@babel/types': 7.22.5 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.22.9): + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.22.9): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.22.6(@babel/core@7.22.9) + '@babel/plugin-transform-optional-chaining': 7.22.10(@babel/core@7.22.10) dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.9): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.10): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 dev: true - /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.22.9): - resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} - engines: {node: '>=4'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.9): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.10): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.9): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.10): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.9): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.10): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.22.9): + /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.22.9): + /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.22.9): + /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.9): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.10): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.9): + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.9): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.10): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.9): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.10): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.9): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.10): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.9): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.10): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.22.9): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.22.10): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-generator-functions@7.22.7(@babel/core@7.22.9): - resolution: {integrity: sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg==} + /@babel/plugin-transform-async-generator-functions@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.9) + '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.10) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-module-imports': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.9) + '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping@7.22.5(@babel/core@7.22.9): - resolution: {integrity: sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==} + /@babel/plugin-transform-block-scoping@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-static-block@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-class-static-block@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.9) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-classes@7.22.6(@babel/core@7.22.9): + /@babel/plugin-transform-classes@7.22.6(@babel/core@7.22.10): resolution: {integrity: sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/helper-compilation-targets': 7.22.10 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.10) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.5 dev: true - /@babel/plugin-transform-destructuring@7.22.5(@babel/core@7.22.9): - resolution: {integrity: sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==} + /@babel/plugin-transform-destructuring@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dynamic-import@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-dynamic-import@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-export-namespace-from@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-export-namespace-from@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-flow-strip-types@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-flow-strip-types@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-for-of@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-for-of@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-compilation-targets': 7.22.10 '@babel/helper-function-name': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-json-strings@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-json-strings@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-literals@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-literals@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-logical-assignment-operators@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.9) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-modules-systemjs@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.5 dev: true - /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-nullish-coalescing-operator@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-numeric-separator@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-numeric-separator@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.9) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-object-rest-spread@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-object-rest-spread@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-compilation-targets': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-optional-catch-binding@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-optional-catch-binding@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-optional-chaining@7.22.6(@babel/core@7.22.9): - resolution: {integrity: sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg==} + /@babel/plugin-transform-optional-chaining@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-parameters@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-parameters@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-property-in-object@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-private-property-in-object@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.9) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-module-imports': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.10) '@babel/types': 7.22.5 dev: true - /@babel/plugin-transform-regenerator@7.22.5(@babel/core@7.22.9): - resolution: {integrity: sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==} + /@babel/plugin-transform-regenerator@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - regenerator-transform: 0.15.1 + regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-spread@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-escapes@7.22.5(@babel/core@7.22.9): - resolution: {integrity: sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==} + /@babel/plugin-transform-unicode-escapes@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==} + /@babel/preset-env@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-compilation-targets': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.22.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.9) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.9) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.9) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.9) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.9) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.9) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.9) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.22.9) - '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-async-generator-functions': 7.22.7(@babel/core@7.22.9) - '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-block-scoping': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-class-static-block': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-classes': 7.22.6(@babel/core@7.22.9) - '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-destructuring': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-dynamic-import': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-export-namespace-from': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-for-of': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-json-strings': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-logical-assignment-operators': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-modules-amd': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-modules-systemjs': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-numeric-separator': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-object-rest-spread': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-optional-catch-binding': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-optional-chaining': 7.22.6(@babel/core@7.22.9) - '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-private-property-in-object': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-regenerator': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-unicode-escapes': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.22.9) - '@babel/preset-modules': 0.1.6(@babel/core@7.22.9) - '@babel/types': 7.22.5 - babel-plugin-polyfill-corejs2: 0.4.5(@babel/core@7.22.9) - babel-plugin-polyfill-corejs3: 0.8.3(@babel/core@7.22.9) - babel-plugin-polyfill-regenerator: 0.5.2(@babel/core@7.22.9) - core-js-compat: 3.31.1 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.10) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.10) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.10) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.10) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.10) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.10) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.10) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.10) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.10) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.22.10) + '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-async-generator-functions': 7.22.10(@babel/core@7.22.10) + '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-block-scoping': 7.22.10(@babel/core@7.22.10) + '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-class-static-block': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-classes': 7.22.6(@babel/core@7.22.10) + '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-destructuring': 7.22.10(@babel/core@7.22.10) + '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-dynamic-import': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-export-namespace-from': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-for-of': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-json-strings': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-logical-assignment-operators': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-modules-amd': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-modules-systemjs': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-numeric-separator': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-object-rest-spread': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-optional-catch-binding': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-optional-chaining': 7.22.10(@babel/core@7.22.10) + '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-private-property-in-object': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-regenerator': 7.22.10(@babel/core@7.22.10) + '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-unicode-escapes': 7.22.10(@babel/core@7.22.10) + '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.22.10) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.22.10) + '@babel/types': 7.22.10 + babel-plugin-polyfill-corejs2: 0.4.5(@babel/core@7.22.10) + babel-plugin-polyfill-corejs3: 0.8.3(@babel/core@7.22.10) + babel-plugin-polyfill-regenerator: 0.5.2(@babel/core@7.22.10) + core-js-compat: 3.32.0 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.6(@babel/core@7.22.9): - resolution: {integrity: sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==} + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.22.10): + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.22.9) - '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.9) - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 esutils: 2.0.3 dev: true - /@babel/register@7.22.5(@babel/core@7.22.9): + /@babel/register@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-vV6pm/4CijSQ8Y47RH5SopXzursN35RQINfGJkmOlcpAtGuf94miFvIPhCKGQN7WGIcsgG1BHEX2KVdTYwTwUQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -1448,7 +1467,7 @@ packages: resolution: {integrity: sha512-M+37LLIRBTEVjktoJjbw4KVhupF0U/3PYUCbBwgAd9k17hoKhRu1n935QiG7Tuxv0LJOMrb2vuKEeYUlv0iyiw==} engines: {node: '>=6.9.0'} dependencies: - core-js-pure: 3.31.1 + core-js-pure: 3.32.0 regenerator-runtime: 0.13.11 dev: true @@ -1463,9 +1482,27 @@ packages: resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/parser': 7.22.7 - '@babel/types': 7.22.5 + '@babel/code-frame': 7.22.10 + '@babel/parser': 7.22.10 + '@babel/types': 7.22.10 + dev: true + + /@babel/traverse@7.22.10: + resolution: {integrity: sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.10 + '@babel/generator': 7.22.10 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.22.10 + '@babel/types': 7.22.10 + debug: 4.3.4(supports-color@8.1.1) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color dev: true /@babel/traverse@7.22.8: @@ -1486,6 +1523,15 @@ packages: - supports-color dev: true + /@babel/types@7.22.10: + resolution: {integrity: sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.5 + to-fast-properties: 2.0.0 + dev: true + /@babel/types@7.22.5: resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} engines: {node: '>=6.9.0'} @@ -1524,11 +1570,11 @@ packages: resolution: {integrity: sha512-PvggHK8390M0S/KyS2hUriNu83TLpOv2fjtuKdqE7+SeIKh7o6BgbCVjh0nxbMKVWToG2rGAaMGbOQIhxcq3ew==} engines: {node: '>=12.0.0'} dependencies: - '@babel/core': 7.22.9 - '@babel/eslint-parser': 7.22.9(@babel/core@7.22.9)(eslint@8.46.0) + '@babel/core': 7.22.10 + '@babel/eslint-parser': 7.22.10(@babel/core@7.22.10)(eslint@8.47.0) '@es-joy/jsdoccomment': 0.38.0 - '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6) - eslint: 8.46.0 + '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.1.6) + eslint: 8.47.0 esquery: 1.5.0 typescript: 5.1.6 transitivePeerDependencies: @@ -1751,14 +1797,14 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.46.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.47.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.46.0 - eslint-visitor-keys: 3.4.2 + eslint: 8.47.0 + eslint-visitor-keys: 3.4.3 dev: true /@eslint-community/regexpp@4.6.2: @@ -1766,8 +1812,8 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.1: - resolution: {integrity: sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==} + /@eslint/eslintrc@2.1.2: + resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -1783,26 +1829,30 @@ packages: - supports-color dev: true - /@eslint/js@8.46.0: - resolution: {integrity: sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==} + /@eslint/js@8.47.0: + resolution: {integrity: sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.22.9)(@types/node@20.4.7)(graphql@16.7.1): + /@fastify/deepmerge@1.3.0: + resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==} + dev: true + + /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.22.10)(@types/node@20.5.0)(graphql@16.7.1): resolution: {integrity: sha512-RbwVlz1gcYG62sECR1u0XqMh8w5e5XMCCZoMvPQ3nJzEBCTfXLGX727GBoRmSvY1x4gJmqNZ1lsOX7lZY14RIw==} engines: {node: '>=12'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: '@babel/code-frame': 7.22.5 - '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.22.9)(graphql@16.7.1) - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.22.9)(graphql@16.7.1) + '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.22.10)(graphql@16.7.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.22.10)(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) chalk: 4.1.2 debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.3.1 graphql: 16.7.1 - graphql-config: 4.5.0(@types/node@20.4.7)(graphql@16.7.1) + graphql-config: 4.5.0(@types/node@20.5.0)(graphql@16.7.1) graphql-depth-limit: 1.1.0(graphql@16.7.1) lodash.lowercase: 4.3.0 tslib: 2.6.1 @@ -1828,12 +1878,12 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.22.9)(graphql@16.7.1): + /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.22.10)(graphql@16.7.1): resolution: {integrity: sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.22.9)(graphql@16.7.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.22.10)(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) globby: 11.1.0 graphql: 16.7.1 @@ -1877,7 +1927,7 @@ packages: - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.10(@types/node@20.4.7)(graphql@16.7.1): + /@graphql-tools/executor-http@0.1.10(@types/node@20.5.0)(graphql@16.7.1): resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1888,7 +1938,7 @@ packages: dset: 3.1.2 extract-files: 11.0.0 graphql: 16.7.1 - meros: 1.3.0(@types/node@20.4.7) + meros: 1.3.0(@types/node@20.5.0) tslib: 2.6.1 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -1937,13 +1987,13 @@ packages: unixify: 1.0.0 dev: true - /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.22.9)(graphql@16.7.1): + /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.22.10)(graphql@16.7.1): resolution: {integrity: sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: '@babel/parser': 7.22.7 - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.10) '@babel/traverse': 7.22.8 '@babel/types': 7.22.5 '@graphql-tools/utils': 9.2.1(graphql@16.7.1) @@ -2011,7 +2061,7 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.4.7)(graphql@16.7.1): + /@graphql-tools/url-loader@7.17.18(@types/node@20.5.0)(graphql@16.7.1): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -2019,7 +2069,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 9.0.35(graphql@16.7.1) '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.7.1) - '@graphql-tools/executor-http': 0.1.10(@types/node@20.4.7)(graphql@16.7.1) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.5.0)(graphql@16.7.1) '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) '@graphql-tools/wrap': 9.4.2(graphql@16.7.1) @@ -2507,8 +2557,8 @@ packages: '@types/ms': 0.7.31 dev: true - /@types/eslint@8.44.1: - resolution: {integrity: sha512-XpNDc4Z5Tb4x+SW1MriMVeIsMoONHCkWFMkR/aPJbzEsxqHy+4Glu/BqTdPrApfDeMaXbtNh6bseNgl5KaWrSg==} + /@types/eslint@8.44.2: + resolution: {integrity: sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg==} dependencies: '@types/estree': 1.0.1 '@types/json-schema': 7.0.12 @@ -2554,8 +2604,8 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node@20.4.7: - resolution: {integrity: sha512-bUBrPjEry2QUTsnuEjzjbS7voGWCc30W0qzgMf90GPeDGFRakvrz47ju+oqDAKCXLUCe39u57/ORMl/O/04/9g==} + /@types/node@20.5.0: + resolution: {integrity: sha512-Mgq7eCtoTjT89FqNoTzzXg2XvCi5VMhRV6+I2aYanc6kQCBImeNaAYRs/DyoVqk1YEUJK5gN9VO7HRIdz4Wo3Q==} dev: true /@types/normalize-package-data@2.4.1: @@ -2573,10 +2623,10 @@ packages: /@types/ws@8.5.5: resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} dependencies: - '@types/node': 20.4.7 + '@types/node': 20.5.0 dev: true - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.46.0)(typescript@5.1.6): + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.1.6): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2588,12 +2638,12 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.1.6) '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) - '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/type-utils': 5.62.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.1.6) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.46.0 + eslint: 8.47.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare-lite: 1.4.0 @@ -2604,20 +2654,20 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils@5.62.0(eslint@8.46.0)(typescript@5.1.6): + /@typescript-eslint/experimental-utils@5.62.0(eslint@8.47.0)(typescript@5.1.6): resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) - eslint: 8.46.0 + '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.1.6) + eslint: 8.47.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.46.0)(typescript@5.1.6): + /@typescript-eslint/parser@5.62.0(eslint@8.47.0)(typescript@5.1.6): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2631,14 +2681,14 @@ packages: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.46.0 + eslint: 8.47.0 typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.2.1(eslint@8.46.0)(typescript@5.1.6): - resolution: {integrity: sha512-Ld+uL1kYFU8e6btqBFpsHkwQ35rw30IWpdQxgOqOh4NfxSDH6uCkah1ks8R/RgQqI5hHPXMaLy9fbFseIe+dIg==} + /@typescript-eslint/parser@6.3.0(eslint@8.47.0)(typescript@5.1.6): + resolution: {integrity: sha512-ibP+y2Gr6p0qsUkhs7InMdXrwldjxZw66wpcQq9/PzAroM45wdwyu81T+7RibNCh8oc0AgrsyCwJByncY0Ongg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2647,12 +2697,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.2.1 - '@typescript-eslint/types': 6.2.1 - '@typescript-eslint/typescript-estree': 6.2.1(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.2.1 + '@typescript-eslint/scope-manager': 6.3.0 + '@typescript-eslint/types': 6.3.0 + '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.3.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.46.0 + eslint: 8.47.0 typescript: 5.1.6 transitivePeerDependencies: - supports-color @@ -2666,14 +2716,6 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@6.2.0: - resolution: {integrity: sha512-1ZMNVgm5nnHURU8ZSJ3snsHzpFeNK84rdZjluEVBGNu7jDymfqceB3kdIZ6A4xCfEFFhRIB6rF8q/JIqJd2R0Q==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.2.0 - '@typescript-eslint/visitor-keys': 6.2.0 - dev: true - /@typescript-eslint/scope-manager@6.2.1: resolution: {integrity: sha512-UCqBF9WFqv64xNsIEPfBtenbfodPXsJ3nPAr55mGPkQIkiQvgoWNo+astj9ZUfJfVKiYgAZDMnM6dIpsxUMp3Q==} engines: {node: ^16.0.0 || >=18.0.0} @@ -2682,7 +2724,15 @@ packages: '@typescript-eslint/visitor-keys': 6.2.1 dev: true - /@typescript-eslint/type-utils@5.62.0(eslint@8.46.0)(typescript@5.1.6): + /@typescript-eslint/scope-manager@6.3.0: + resolution: {integrity: sha512-WlNFgBEuGu74ahrXzgefiz/QlVb+qg8KDTpknKwR7hMH+lQygWyx0CQFoUmMn1zDkQjTBBIn75IxtWss77iBIQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.3.0 + '@typescript-eslint/visitor-keys': 6.3.0 + dev: true + + /@typescript-eslint/type-utils@5.62.0(eslint@8.47.0)(typescript@5.1.6): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2693,9 +2743,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) - '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.1.6) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.46.0 + eslint: 8.47.0 tsutils: 3.21.0(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: @@ -2707,13 +2757,13 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@6.2.0: - resolution: {integrity: sha512-1nRRaDlp/XYJQLvkQJG5F3uBTno5SHPT7XVcJ5n1/k2WfNI28nJsvLakxwZRNY5spuatEKO7d5nZWsQpkqXwBA==} + /@typescript-eslint/types@6.2.1: + resolution: {integrity: sha512-528bGcoelrpw+sETlyM91k51Arl2ajbNT9L4JwoXE2dvRe1yd8Q64E4OL7vHYw31mlnVsf+BeeLyAZUEQtqahQ==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@6.2.1: - resolution: {integrity: sha512-528bGcoelrpw+sETlyM91k51Arl2ajbNT9L4JwoXE2dvRe1yd8Q64E4OL7vHYw31mlnVsf+BeeLyAZUEQtqahQ==} + /@typescript-eslint/types@6.3.0: + resolution: {integrity: sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -2738,8 +2788,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.2.0(typescript@5.1.6): - resolution: {integrity: sha512-Mts6+3HQMSM+LZCglsc2yMIny37IhUgp1Qe8yJUYVyO6rHP7/vN0vajKu3JvHCBIy8TSiKddJ/Zwu80jhnGj1w==} + /@typescript-eslint/typescript-estree@6.2.1(typescript@5.1.6): + resolution: {integrity: sha512-G+UJeQx9AKBHRQBpmvr8T/3K5bJa485eu+4tQBxFq0KoT22+jJyzo1B50JDT9QdC1DEmWQfdKsa8ybiNWYsi0Q==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2747,8 +2797,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.2.0 - '@typescript-eslint/visitor-keys': 6.2.0 + '@typescript-eslint/types': 6.2.1 + '@typescript-eslint/visitor-keys': 6.2.1 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 @@ -2759,8 +2809,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.2.1(typescript@5.1.6): - resolution: {integrity: sha512-G+UJeQx9AKBHRQBpmvr8T/3K5bJa485eu+4tQBxFq0KoT22+jJyzo1B50JDT9QdC1DEmWQfdKsa8ybiNWYsi0Q==} + /@typescript-eslint/typescript-estree@6.3.0(typescript@5.1.6): + resolution: {integrity: sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2768,8 +2818,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.2.1 - '@typescript-eslint/visitor-keys': 6.2.1 + '@typescript-eslint/types': 6.3.0 + '@typescript-eslint/visitor-keys': 6.3.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 @@ -2780,19 +2830,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.46.0)(typescript@5.1.6): + /@typescript-eslint/utils@5.62.0(eslint@8.47.0)(typescript@5.1.6): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) - eslint: 8.46.0 + eslint: 8.47.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -2800,19 +2850,19 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.2.0(eslint@8.46.0)(typescript@5.1.6): - resolution: {integrity: sha512-RCFrC1lXiX1qEZN8LmLrxYRhOkElEsPKTVSNout8DMzf8PeWoQG7Rxz2SadpJa3VSh5oYKGwt7j7X/VRg+Y3OQ==} + /@typescript-eslint/utils@6.2.1(eslint@8.47.0)(typescript@5.1.6): + resolution: {integrity: sha512-eBIXQeupYmxVB6S7x+B9SdBeB6qIdXKjgQBge2J+Ouv8h9Cxm5dHf/gfAZA6dkMaag+03HdbVInuXMmqFB/lKQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 6.2.0 - '@typescript-eslint/types': 6.2.0 - '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) - eslint: 8.46.0 + '@typescript-eslint/scope-manager': 6.2.1 + '@typescript-eslint/types': 6.2.1 + '@typescript-eslint/typescript-estree': 6.2.1(typescript@5.1.6) + eslint: 8.47.0 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -2824,23 +2874,23 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.2 dev: true - /@typescript-eslint/visitor-keys@6.2.0: - resolution: {integrity: sha512-QbaYUQVKKo9bgCzpjz45llCfwakyoxHetIy8CAvYCtd16Zu1KrpzNHofwF8kGkpPOxZB2o6kz+0nqH8ZkIzuoQ==} + /@typescript-eslint/visitor-keys@6.2.1: + resolution: {integrity: sha512-iTN6w3k2JEZ7cyVdZJTVJx2Lv7t6zFA8DCrJEHD2mwfc16AEvvBWVhbFh34XyG2NORCd0viIgQY1+u7kPI0WpA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.2.0 - eslint-visitor-keys: 3.4.1 + '@typescript-eslint/types': 6.2.1 + eslint-visitor-keys: 3.4.2 dev: true - /@typescript-eslint/visitor-keys@6.2.1: - resolution: {integrity: sha512-iTN6w3k2JEZ7cyVdZJTVJx2Lv7t6zFA8DCrJEHD2mwfc16AEvvBWVhbFh34XyG2NORCd0viIgQY1+u7kPI0WpA==} + /@typescript-eslint/visitor-keys@6.3.0: + resolution: {integrity: sha512-kEhRRj7HnvaSjux1J9+7dBen15CdWmDnwrpyiHsFX6Qx2iW5LOBUgNefOFeh2PjWPlNwN8TOn6+4eBU3J/gupw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.2.1 - eslint-visitor-keys: 3.4.1 + '@typescript-eslint/types': 6.3.0 + eslint-visitor-keys: 3.4.2 dev: true /@vitest/expect@0.34.1: @@ -2993,6 +3043,17 @@ packages: indent-string: 5.0.0 dev: true + /ajv-formats@2.1.1(ajv@8.12.0): + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.12.0 + dev: true + /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: @@ -3002,16 +3063,25 @@ packages: uri-js: 4.4.1 dev: true + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + /ansi-colors@4.1.1: resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} engines: {node: '>=6'} dev: true - /ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} + /ansi-escapes@5.0.0: + resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} + engines: {node: '>=12'} dependencies: - type-fest: 0.21.3 + type-fest: 1.4.0 dev: true /ansi-escapes@6.2.0: @@ -3162,6 +3232,17 @@ packages: engines: {node: '>=0.10.0'} dev: true + /array.prototype.findlastindex@1.2.2: + resolution: {integrity: sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: true + /array.prototype.flat@1.3.1: resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} engines: {node: '>= 0.4'} @@ -3269,11 +3350,6 @@ packages: tslib: 2.6.1 dev: true - /astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} - dev: true - /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: true @@ -3325,38 +3401,38 @@ packages: - supports-color dev: true - /babel-plugin-polyfill-corejs2@0.4.5(@babel/core@7.22.9): + /babel-plugin-polyfill-corejs2@0.4.5(@babel/core@7.22.10): resolution: {integrity: sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 - '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.10) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.8.3(@babel/core@7.22.9): + /babel-plugin-polyfill-corejs3@0.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.9) - core-js-compat: 3.31.1 + '@babel/core': 7.22.10 + '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.10) + core-js-compat: 3.32.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.5.2(@babel/core@7.22.9): + /babel-plugin-polyfill-regenerator@0.5.2(@babel/core@7.22.10): resolution: {integrity: sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.10) transitivePeerDependencies: - supports-color dev: true @@ -3469,15 +3545,15 @@ packages: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} dev: true - /browserslist@4.21.9: - resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==} + /browserslist@4.21.10: + resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001517 - electron-to-chromium: 1.4.473 + caniuse-lite: 1.0.30001519 + electron-to-chromium: 1.4.485 node-releases: 2.0.13 - update-browserslist-db: 1.0.11(browserslist@4.21.9) + update-browserslist-db: 1.0.11(browserslist@4.21.10) dev: true /buffer-from@1.1.2: @@ -3600,8 +3676,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001517: - resolution: {integrity: sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==} + /caniuse-lite@1.0.30001519: + resolution: {integrity: sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg==} dev: true /cardinal@2.1.1: @@ -3646,11 +3722,6 @@ packages: supports-color: 7.2.0 dev: true - /chalk@5.2.0: - resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - dev: true - /chalk@5.3.0: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} @@ -3714,11 +3785,11 @@ packages: escape-string-regexp: 5.0.0 dev: true - /cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - restore-cursor: 3.1.0 + restore-cursor: 4.0.0 dev: true /cli-table3@0.6.3: @@ -3730,14 +3801,6 @@ packages: '@colors/colors': 1.5.0 dev: true - /cli-truncate@2.1.0: - resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} - engines: {node: '>=8'} - dependencies: - slice-ansi: 3.0.0 - string-width: 4.2.3 - dev: true - /cli-truncate@3.1.0: resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3825,9 +3888,9 @@ packages: delayed-stream: 1.0.0 dev: true - /commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} + /commander@11.0.0: + resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} + engines: {node: '>=16'} dev: true /commander@2.20.3: @@ -3899,7 +3962,7 @@ packages: dependencies: conventional-commits-filter: 3.0.0 dateformat: 3.0.3 - handlebars: 4.7.7 + handlebars: 4.7.8 json-stringify-safe: 5.0.1 meow: 8.1.2 semver: 7.5.4 @@ -3934,19 +3997,19 @@ packages: engines: {node: '>=0.10.0'} dev: true - /core-js-compat@3.31.1: - resolution: {integrity: sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==} + /core-js-compat@3.32.0: + resolution: {integrity: sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw==} dependencies: - browserslist: 4.21.9 + browserslist: 4.21.10 dev: true - /core-js-pure@3.31.1: - resolution: {integrity: sha512-w+C62kvWti0EPs4KPMCMVv9DriHSXfQOCQ94bGGBiEW5rrbtt/Rz8n5Krhfw9cpFyzXBjf3DB3QnPdEzGDY4Fw==} + /core-js-pure@3.32.0: + resolution: {integrity: sha512-qsev1H+dTNYpDUEURRuOXMvpdtAnNEvQWS/FMJ2Vb5AY8ZP4rAPQldkE27joykZPJTe0+IVgHZYh1P5Xu1/i1g==} requiresBuild: true dev: true - /core-js@3.31.1: - resolution: {integrity: sha512-2sKLtfq1eFST7l7v62zaqXacPc7uG8ZAya8ogijLhTtaKNcpzpB4TMoTw2Si+8GYKRwFPMMtUT0263QFWFfqyQ==} + /core-js@3.32.0: + resolution: {integrity: sha512-rd4rYZNlF3WuoYuRIDEmbR/ga9CeuWX9U05umAvgrrZoHY4Z++cp/xwPQMvUpBB4Ag6J8KfD80G0zwCyaSxDww==} requiresBuild: true dev: true @@ -4146,11 +4209,6 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - dev: true - /default-browser-id@3.0.0: resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} engines: {node: '>=12'} @@ -4322,8 +4380,8 @@ packages: safer-buffer: 2.1.2 dev: true - /electron-to-chromium@1.4.473: - resolution: {integrity: sha512-aVfC8+440vGfl06l8HKKn8/PD5jRfSnLkTTD65EFvU46igbpQRri1gxSzW9/+TeUlwYzrXk1sw867T96zlyECA==} + /electron-to-chromium@1.4.485: + resolution: {integrity: sha512-1ndQ5IBNEnFirPwvyud69GHL+31FkE09gH/CJ6m3KCbkx3i0EVOrjwz4UNxRmN9H8OVHbC6vMRZGN1yCvjSs9w==} dev: true /emoji-regex@8.0.0: @@ -4550,50 +4608,50 @@ packages: lodash.zip: 4.2.0 dev: true - /eslint-config-canonical@41.1.7(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/node@20.4.7)(eslint@8.46.0)(graphql@16.7.1)(typescript@5.1.6)(vitest@0.34.1): + /eslint-config-canonical@41.1.7(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/node@20.5.0)(eslint@8.47.0)(graphql@16.7.1)(typescript@5.1.6)(vitest@0.34.1): resolution: {integrity: sha512-vtFiCYoJTcFqX3v+v21PP4sizK6mkSRAtEZ6mea/Z+vM4EsRykaV/QDRVgUirBH4ZcegI8zJVuA+WyZbCCumRA==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 dependencies: - '@babel/core': 7.22.9 - '@babel/eslint-parser': 7.22.9(@babel/core@7.22.9)(eslint@8.46.0) - '@babel/eslint-plugin': 7.22.5(@babel/eslint-parser@7.22.9)(eslint@8.46.0) - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.9) - '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.22.9)(@types/node@20.4.7)(graphql@16.7.1) + '@babel/core': 7.22.10 + '@babel/eslint-parser': 7.22.10(@babel/core@7.22.10)(eslint@8.47.0) + '@babel/eslint-plugin': 7.22.5(@babel/eslint-parser@7.22.10)(eslint@8.47.0) + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.10) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.22.10)(@types/node@20.5.0)(graphql@16.7.1) '@next/eslint-plugin-next': 13.4.12 '@rushstack/eslint-patch': 1.3.2 - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.46.0)(typescript@5.1.6) - '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6) - eslint: 8.46.0 - eslint-config-prettier: 8.8.0(eslint@8.46.0) - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.46.0) - eslint-plugin-ava: 14.0.0(eslint@8.46.0) - eslint-plugin-canonical: 4.9.0(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.46.0)(typescript@5.1.6) - eslint-plugin-cypress: 2.13.3(eslint@8.46.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.46.0) - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.46.0) - eslint-plugin-fp: 2.3.0(eslint@8.46.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@6.2.1)(eslint@8.46.0) - eslint-plugin-jest: 27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.46.0)(typescript@5.1.6) - eslint-plugin-jsdoc: 43.2.0(eslint@8.46.0) - eslint-plugin-jsonc: 2.9.0(eslint@8.46.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@8.46.0) - eslint-plugin-lodash: 7.4.0(eslint@8.46.0) - eslint-plugin-mocha: 10.1.0(eslint@8.46.0) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.1.6) + eslint: 8.47.0 + eslint-config-prettier: 8.10.0(eslint@8.47.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.0)(eslint@8.47.0) + eslint-plugin-ava: 14.0.0(eslint@8.47.0) + eslint-plugin-canonical: 4.9.0(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.0)(eslint@8.47.0)(typescript@5.1.6) + eslint-plugin-cypress: 2.13.3(eslint@8.47.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.47.0) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.47.0) + eslint-plugin-fp: 2.3.0(eslint@8.47.0) + eslint-plugin-import: 2.28.0(@typescript-eslint/parser@6.3.0)(eslint@8.47.0) + eslint-plugin-jest: 27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.47.0)(typescript@5.1.6) + eslint-plugin-jsdoc: 43.2.0(eslint@8.47.0) + eslint-plugin-jsonc: 2.9.0(eslint@8.47.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.47.0) + eslint-plugin-lodash: 7.4.0(eslint@8.47.0) + eslint-plugin-mocha: 10.1.0(eslint@8.47.0) eslint-plugin-modules-newline: 0.0.6 - eslint-plugin-node: 11.1.0(eslint@8.46.0) - eslint-plugin-prettier: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.46.0)(prettier@2.8.8) - eslint-plugin-promise: 6.1.1(eslint@8.46.0) - eslint-plugin-react: 7.33.0(eslint@8.46.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.46.0) - eslint-plugin-regexp: 1.15.0(eslint@8.46.0) - eslint-plugin-simple-import-sort: 10.0.0(eslint@8.46.0) - eslint-plugin-typescript-sort-keys: 2.3.0(@typescript-eslint/parser@5.62.0)(eslint@8.46.0)(typescript@5.1.6) - eslint-plugin-unicorn: 46.0.1(eslint@8.46.0) - eslint-plugin-vitest: 0.2.8(eslint@8.46.0)(typescript@5.1.6)(vitest@0.34.1) - eslint-plugin-yml: 1.8.0(eslint@8.46.0) - eslint-plugin-zod: 1.4.0(eslint@8.46.0) + eslint-plugin-node: 11.1.0(eslint@8.47.0) + eslint-plugin-prettier: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.47.0)(prettier@2.8.8) + eslint-plugin-promise: 6.1.1(eslint@8.47.0) + eslint-plugin-react: 7.33.1(eslint@8.47.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.47.0) + eslint-plugin-regexp: 1.15.0(eslint@8.47.0) + eslint-plugin-simple-import-sort: 10.0.0(eslint@8.47.0) + eslint-plugin-typescript-sort-keys: 2.3.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.1.6) + eslint-plugin-unicorn: 46.0.1(eslint@8.47.0) + eslint-plugin-vitest: 0.2.8(eslint@8.47.0)(typescript@5.1.6)(vitest@0.34.1) + eslint-plugin-yml: 1.8.0(eslint@8.47.0) + eslint-plugin-zod: 1.4.0(eslint@8.47.0) prettier: 2.8.8 ramda: 0.29.0 yaml-eslint-parser: 1.2.2 @@ -4615,13 +4673,13 @@ packages: - vitest dev: true - /eslint-config-prettier@8.8.0(eslint@8.46.0): - resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} + /eslint-config-prettier@8.10.0(eslint@8.47.0): + resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.46.0 + eslint: 8.47.0 dev: true /eslint-import-resolver-node@0.3.7: @@ -4629,12 +4687,12 @@ packages: dependencies: debug: 3.2.7 is-core-module: 2.12.1 - resolve: 1.22.2 + resolve: 1.22.3 transitivePeerDependencies: - supports-color dev: true - /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.46.0): + /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.0)(eslint@8.47.0): resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4643,9 +4701,9 @@ packages: dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 - eslint: 8.46.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.46.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@6.2.1)(eslint@8.46.0) + eslint: 8.47.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) + eslint-plugin-import: 2.28.0(@typescript-eslint/parser@6.3.0)(eslint@8.47.0) get-tsconfig: 4.6.2 globby: 13.2.2 is-core-module: 2.12.1 @@ -4658,7 +4716,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.46.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4679,16 +4737,16 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.1.6) debug: 3.2.7 - eslint: 8.46.0 + eslint: 8.47.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.46.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.0)(eslint@8.47.0) transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.2.1)(eslint-import-resolver-node@0.3.7)(eslint@8.46.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.3.0)(eslint-import-resolver-node@0.3.7)(eslint@8.47.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4709,23 +4767,23 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.2.1(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.3.0(eslint@8.47.0)(typescript@5.1.6) debug: 3.2.7 - eslint: 8.46.0 + eslint: 8.47.0 eslint-import-resolver-node: 0.3.7 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-ava@14.0.0(eslint@8.46.0): + /eslint-plugin-ava@14.0.0(eslint@8.47.0): resolution: {integrity: sha512-XmKT6hppaipwwnLVwwvQliSU6AF1QMHiNoLD5JQfzhUhf0jY7CO0O624fQrE+Y/fTb9vbW8r77nKf7M/oHulxw==} engines: {node: '>=14.17 <15 || >=16.4'} peerDependencies: eslint: '>=8.26.0' dependencies: enhance-visitors: 1.0.0 - eslint: 8.46.0 - eslint-utils: 3.0.0(eslint@8.46.0) + eslint: 8.47.0 + eslint-utils: 3.0.0(eslint@8.47.0) espree: 9.6.1 espurify: 2.1.1 import-modules: 2.1.0 @@ -4734,14 +4792,14 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-canonical@4.9.0(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.46.0)(typescript@5.1.6): + /eslint-plugin-canonical@4.9.0(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.0)(eslint@8.47.0)(typescript@5.1.6): resolution: {integrity: sha512-9c716jTFFfmYceO2AJHGWSamKKXiHVne8rE13nc1zYDwLiKRhSg56Poyp/kXJv8b0lhWXLMddRZzVEtDCKlucA==} engines: {node: '>=16.0.0'} dependencies: - '@typescript-eslint/utils': 6.2.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/utils': 6.2.1(eslint@8.47.0)(typescript@5.1.6) debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.27.5)(eslint@8.46.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.46.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.0)(eslint@8.47.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -4749,7 +4807,7 @@ packages: lodash: 4.17.21 natural-compare: 1.4.0 recast: 0.23.3 - roarr: 7.15.0 + roarr: 7.15.1 ts-unused-exports: 9.0.5(typescript@5.1.6) xregexp: 5.1.1 transitivePeerDependencies: @@ -4762,38 +4820,38 @@ packages: - typescript dev: true - /eslint-plugin-cypress@2.13.3(eslint@8.46.0): + /eslint-plugin-cypress@2.13.3(eslint@8.47.0): resolution: {integrity: sha512-nAPjZE5WopCsgJwl3vHm5iafpV+ZRO76Z9hMyRygWhmg5ODXDPd+9MaPl7kdJ2azj+sO87H3P1PRnggIrz848g==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 8.46.0 + eslint: 8.47.0 globals: 11.12.0 dev: true - /eslint-plugin-es@3.0.1(eslint@8.46.0): + /eslint-plugin-es@3.0.1(eslint@8.47.0): resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.46.0 + eslint: 8.47.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-eslint-comments@3.2.0(eslint@8.46.0): + /eslint-plugin-eslint-comments@3.2.0(eslint@8.47.0): resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' dependencies: escape-string-regexp: 1.0.5 - eslint: 8.46.0 + eslint: 8.47.0 ignore: 5.2.4 dev: true - /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.46.0): + /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.47.0): resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -4801,28 +4859,28 @@ packages: '@babel/plugin-transform-react-jsx': ^7.14.9 eslint: ^8.1.0 dependencies: - '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.9) - eslint: 8.46.0 + '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.10) + eslint: 8.47.0 lodash: 4.17.21 string-natural-compare: 3.0.1 dev: true - /eslint-plugin-fp@2.3.0(eslint@8.46.0): + /eslint-plugin-fp@2.3.0(eslint@8.47.0): resolution: {integrity: sha512-3n2oHibwoIxAht9/+ZaTldhI6brXORgl8oNXqZd+d9xuAQt2SBJ2/aml0oQRMWvXrgsz2WG6wfC++NjzSG3prA==} engines: {node: '>=4.0.0'} peerDependencies: eslint: '>=3' dependencies: create-eslint-index: 1.0.0 - eslint: 8.46.0 + eslint: 8.47.0 eslint-ast-utils: 1.1.0 lodash: 4.17.21 req-all: 0.1.0 dev: true - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.2.1)(eslint@8.46.0): - resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} + /eslint-plugin-import@2.28.0(@typescript-eslint/parser@6.3.0)(eslint@8.47.0): + resolution: {integrity: sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -4831,21 +4889,24 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.2.1(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.3.0(eslint@8.47.0)(typescript@5.1.6) array-includes: 3.1.6 + array.prototype.findlastindex: 1.2.2 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.46.0 + eslint: 8.47.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.2.1)(eslint-import-resolver-node@0.3.7)(eslint@8.46.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.3.0)(eslint-import-resolver-node@0.3.7)(eslint@8.47.0) has: 1.0.3 is-core-module: 2.12.1 is-glob: 4.0.3 minimatch: 3.1.2 + object.fromentries: 2.0.6 + object.groupby: 1.0.0 object.values: 1.1.6 - resolve: 1.22.2 + resolve: 1.22.3 semver: 6.3.1 tsconfig-paths: 3.14.2 transitivePeerDependencies: @@ -4854,7 +4915,7 @@ packages: - supports-color dev: true - /eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.46.0)(typescript@5.1.6): + /eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.47.0)(typescript@5.1.6): resolution: {integrity: sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -4867,15 +4928,15 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.46.0)(typescript@5.1.6) - '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) - eslint: 8.46.0 + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.1.6) + eslint: 8.47.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsdoc@43.2.0(eslint@8.46.0): + /eslint-plugin-jsdoc@43.2.0(eslint@8.47.0): resolution: {integrity: sha512-Hst7XUfqh28UmPD52oTXmjaRN3d0KrmOZdgtp4h9/VHUJD3Evoo82ZGXi1TtRDWgWhvqDIRI63O49H0eH7NrZQ==} engines: {node: '>=16'} peerDependencies: @@ -4886,7 +4947,7 @@ packages: comment-parser: 1.3.1 debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 8.46.0 + eslint: 8.47.0 esquery: 1.5.0 semver: 7.5.4 spdx-expression-parse: 3.0.1 @@ -4894,19 +4955,19 @@ packages: - supports-color dev: true - /eslint-plugin-jsonc@2.9.0(eslint@8.46.0): + /eslint-plugin-jsonc@2.9.0(eslint@8.47.0): resolution: {integrity: sha512-RK+LeONVukbLwT2+t7/OY54NJRccTXh/QbnXzPuTLpFMVZhPuq1C9E07+qWenGx7rrQl0kAalAWl7EmB+RjpGA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) - eslint: 8.46.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) + eslint: 8.47.0 jsonc-eslint-parser: 2.3.0 natural-compare: 1.4.0 dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.46.0): + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.47.0): resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} peerDependencies: @@ -4921,9 +4982,9 @@ packages: axobject-query: 3.2.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.46.0 + eslint: 8.47.0 has: 1.0.3 - jsx-ast-utils: 3.3.4 + jsx-ast-utils: 3.3.5 language-tags: 1.0.5 minimatch: 3.1.2 object.entries: 1.1.6 @@ -4931,24 +4992,24 @@ packages: semver: 6.3.1 dev: true - /eslint-plugin-lodash@7.4.0(eslint@8.46.0): + /eslint-plugin-lodash@7.4.0(eslint@8.47.0): resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} engines: {node: '>=10'} peerDependencies: eslint: '>=2' dependencies: - eslint: 8.46.0 + eslint: 8.47.0 lodash: 4.17.21 dev: true - /eslint-plugin-mocha@10.1.0(eslint@8.46.0): + /eslint-plugin-mocha@10.1.0(eslint@8.47.0): resolution: {integrity: sha512-xLqqWUF17llsogVOC+8C6/jvQ+4IoOREbN7ZCHuOHuD6cT5cDD4h7f2LgsZuzMAiwswWE21tO7ExaknHVDrSkw==} engines: {node: '>=14.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.46.0 - eslint-utils: 3.0.0(eslint@8.46.0) + eslint: 8.47.0 + eslint-utils: 3.0.0(eslint@8.47.0) rambda: 7.5.0 dev: true @@ -4959,14 +5020,14 @@ packages: requireindex: 1.1.0 dev: true - /eslint-plugin-node@11.1.0(eslint@8.46.0): + /eslint-plugin-node@11.1.0(eslint@8.47.0): resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.46.0 - eslint-plugin-es: 3.0.1(eslint@8.46.0) + eslint: 8.47.0 + eslint-plugin-es: 3.0.1(eslint@8.47.0) eslint-utils: 2.1.0 ignore: 5.2.4 minimatch: 3.1.2 @@ -4974,7 +5035,7 @@ packages: semver: 6.3.1 dev: true - /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.46.0)(prettier@2.8.8): + /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.10.0)(eslint@8.47.0)(prettier@2.8.8): resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -4985,32 +5046,32 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.46.0 - eslint-config-prettier: 8.8.0(eslint@8.46.0) + eslint: 8.47.0 + eslint-config-prettier: 8.10.0(eslint@8.47.0) prettier: 2.8.8 prettier-linter-helpers: 1.0.0 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.46.0): + /eslint-plugin-promise@6.1.1(eslint@8.47.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.46.0 + eslint: 8.47.0 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.46.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.47.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.46.0 + eslint: 8.47.0 dev: true - /eslint-plugin-react@7.33.0(eslint@8.46.0): - resolution: {integrity: sha512-qewL/8P34WkY8jAqdQxsiL82pDUeT7nhs8IsuXgfgnsEloKCT4miAV9N9kGtx7/KM9NH/NCGUE7Edt9iGxLXFw==} + /eslint-plugin-react@7.33.1(eslint@8.47.0): + resolution: {integrity: sha512-L093k0WAMvr6VhNwReB8VgOq5s2LesZmrpPdKz/kZElQDzqS7G7+DnKoqT+w4JwuiGeAhAvHO0fvy0Eyk4ejDA==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 @@ -5019,9 +5080,9 @@ packages: array.prototype.flatmap: 1.3.1 array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 - eslint: 8.46.0 + eslint: 8.47.0 estraverse: 5.3.0 - jsx-ast-utils: 3.3.4 + jsx-ast-utils: 3.3.5 minimatch: 3.1.2 object.entries: 1.1.6 object.fromentries: 2.0.6 @@ -5033,16 +5094,16 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-regexp@1.15.0(eslint@8.46.0): + /eslint-plugin-regexp@1.15.0(eslint@8.47.0): resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} engines: {node: ^12 || >=14} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) '@eslint-community/regexpp': 4.6.2 comment-parser: 1.4.0 - eslint: 8.46.0 + eslint: 8.47.0 grapheme-splitter: 1.0.4 jsdoctypeparser: 9.0.0 refa: 0.11.0 @@ -5050,15 +5111,15 @@ packages: scslre: 0.2.0 dev: true - /eslint-plugin-simple-import-sort@10.0.0(eslint@8.46.0): + /eslint-plugin-simple-import-sort@10.0.0(eslint@8.47.0): resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 8.46.0 + eslint: 8.47.0 dev: true - /eslint-plugin-typescript-sort-keys@2.3.0(@typescript-eslint/parser@5.62.0)(eslint@8.46.0)(typescript@5.1.6): + /eslint-plugin-typescript-sort-keys@2.3.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.1.6): resolution: {integrity: sha512-3LAcYulo5gNYiPWee+TksITfvWeBuBjGgcSLTacPESFVKEoy8laOQuZvJlSCwTBHT2SCGIxr3bJ56zuux+3MCQ==} engines: {node: 12 || >= 13.9} peerDependencies: @@ -5066,9 +5127,9 @@ packages: eslint: ^5 || ^6 || ^7 || ^8 typescript: ^3 || ^4 || ^5 dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) - '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6) - eslint: 8.46.0 + '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.1.6) + eslint: 8.47.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 typescript: 5.1.6 @@ -5076,17 +5137,17 @@ packages: - supports-color dev: true - /eslint-plugin-unicorn@46.0.1(eslint@8.46.0): + /eslint-plugin-unicorn@46.0.1(eslint@8.47.0): resolution: {integrity: sha512-setGhMTiLAddg1asdwjZ3hekIN5zLznNa5zll7pBPwFOka6greCKDQydfqy4fqyUhndi74wpDzClSQMEcmOaew==} engines: {node: '>=14.18'} peerDependencies: eslint: '>=8.28.0' dependencies: '@babel/helper-validator-identifier': 7.22.5 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) ci-info: 3.8.0 clean-regexp: 1.0.0 - eslint: 8.46.0 + eslint: 8.47.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -5101,7 +5162,7 @@ packages: strip-indent: 3.0.0 dev: true - /eslint-plugin-vitest@0.2.8(eslint@8.46.0)(typescript@5.1.6)(vitest@0.34.1): + /eslint-plugin-vitest@0.2.8(eslint@8.47.0)(typescript@5.1.6)(vitest@0.34.1): resolution: {integrity: sha512-q8s4tStyKtn3gXf+8nf1ZYTHhoCXKdnozZzp6u8b4ni5v68Y4vxhNh4Z8njUfNjEY8HoPBB77MazHMR23IPb+g==} engines: {node: 14.x || >= 16} peerDependencies: @@ -5112,22 +5173,22 @@ packages: vite: optional: true dependencies: - '@typescript-eslint/utils': 6.2.0(eslint@8.46.0)(typescript@5.1.6) - eslint: 8.46.0 + '@typescript-eslint/utils': 6.2.1(eslint@8.47.0)(typescript@5.1.6) + eslint: 8.47.0 vitest: 0.34.1 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-yml@1.8.0(eslint@8.46.0): + /eslint-plugin-yml@1.8.0(eslint@8.47.0): resolution: {integrity: sha512-fgBiJvXD0P2IN7SARDJ2J7mx8t0bLdG6Zcig4ufOqW5hOvSiFxeUyc2g5I1uIm8AExbo26NNYCcTGZT0MXTsyg==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4(supports-color@8.1.1) - eslint: 8.46.0 + eslint: 8.47.0 lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.2 @@ -5135,13 +5196,13 @@ packages: - supports-color dev: true - /eslint-plugin-zod@1.4.0(eslint@8.46.0): + /eslint-plugin-zod@1.4.0(eslint@8.47.0): resolution: {integrity: sha512-i9WzQGw2X5fQcuQh33mA8DQjZJM/yuyZvs1Fc5EyTidX7Ed/g832+1FEQ4u5gtXy+jZ+DVsB5+oMHj4tIOfeZg==} engines: {node: '>=12'} peerDependencies: eslint: '>=8.1.0' dependencies: - eslint: 8.46.0 + eslint: 8.47.0 dev: true /eslint-rule-composer@0.3.0: @@ -5172,13 +5233,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils@3.0.0(eslint@8.46.0): + /eslint-utils@3.0.0(eslint@8.47.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.46.0 + eslint: 8.47.0 eslint-visitor-keys: 2.1.0 dev: true @@ -5192,25 +5253,25 @@ packages: engines: {node: '>=10'} dev: true - /eslint-visitor-keys@3.4.1: - resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} + /eslint-visitor-keys@3.4.2: + resolution: {integrity: sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint-visitor-keys@3.4.2: - resolution: {integrity: sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.46.0: - resolution: {integrity: sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==} + /eslint@8.47.0: + resolution: {integrity: sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) '@eslint-community/regexpp': 4.6.2 - '@eslint/eslintrc': 2.1.1 - '@eslint/js': 8.46.0 + '@eslint/eslintrc': 2.1.2 + '@eslint/js': 8.47.0 '@humanwhocodes/config-array': 0.11.10 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -5221,7 +5282,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.2 + eslint-visitor-keys: 3.4.3 espree: 9.6.1 esquery: 1.5.0 esutils: 2.0.3 @@ -5254,7 +5315,7 @@ packages: dependencies: acorn: 8.10.0 acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.2 dev: true /esprima@4.0.1: @@ -5294,6 +5355,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + dev: true + /execa@1.0.0: resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} engines: {node: '>=6'} @@ -5428,14 +5493,15 @@ packages: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true - /fast-json-stringify@2.7.13: - resolution: {integrity: sha512-ar+hQ4+OIurUGjSJD1anvYSDcUflywhKjfxnsW4TBTD7+u0tJufv6DKRWoQk3vI6YBOWMoz0TQtfbe7dxbQmvA==} - engines: {node: '>= 10.0.0'} + /fast-json-stringify@5.8.0: + resolution: {integrity: sha512-VVwK8CFMSALIvt14U8AvrSzQAwN/0vaVRiFFUVlpnXSnDGrSkOAO5MtzyN8oQNjLd5AqTW5OZRgyjoNuAuR3jQ==} dependencies: - ajv: 6.12.6 - deepmerge: 4.3.1 + '@fastify/deepmerge': 1.3.0 + ajv: 8.12.0 + ajv-formats: 2.1.1(ajv@8.12.0) + fast-deep-equal: 3.1.3 + fast-uri: 2.2.0 rfdc: 1.3.0 - string-similarity: 4.0.4 dev: true /fast-levenshtein@2.0.6: @@ -5455,6 +5521,10 @@ packages: fast-decode-uri-component: 1.0.1 dev: true + /fast-uri@2.2.0: + resolution: {integrity: sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg==} + dev: true + /fast-url-parser@1.1.3: resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} dependencies: @@ -5616,7 +5686,7 @@ packages: engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 - signal-exit: 4.0.2 + signal-exit: 4.1.0 dev: true /forever-agent@0.6.1: @@ -5969,7 +6039,7 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql-config@4.5.0(@types/node@20.4.7)(graphql@16.7.1): + /graphql-config@4.5.0(@types/node@20.5.0)(graphql@16.7.1): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -5983,7 +6053,7 @@ packages: '@graphql-tools/json-file-loader': 7.4.18(graphql@16.7.1) '@graphql-tools/load': 7.8.14(graphql@16.7.1) '@graphql-tools/merge': 8.4.2(graphql@16.7.1) - '@graphql-tools/url-loader': 7.17.18(@types/node@20.4.7)(graphql@16.7.1) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.5.0)(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) cosmiconfig: 8.0.0 graphql: 16.7.1 @@ -6022,8 +6092,8 @@ packages: engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} dev: true - /handlebars@4.7.7: - resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} + /handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} hasBin: true dependencies: @@ -6797,7 +6867,7 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.1 @@ -6809,7 +6879,7 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/parser': 7.22.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 @@ -6970,6 +7040,10 @@ packages: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + /json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} dev: true @@ -7000,7 +7074,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.10.0 - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.2 espree: 9.6.1 semver: 7.5.4 dev: true @@ -7032,8 +7106,8 @@ packages: verror: 1.10.0 dev: true - /jsx-ast-utils@3.3.4: - resolution: {integrity: sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw==} + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} dependencies: array-includes: 3.1.6 @@ -7113,21 +7187,18 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /lint-staged@13.2.3: - resolution: {integrity: sha512-zVVEXLuQIhr1Y7R7YAWx4TZLdvuzk7DnmrsTNL0fax6Z3jrpFcas+vKbzxhhvp6TA55m1SQuWkpzI1qbfDZbAg==} - engines: {node: ^14.13.1 || >=16.0.0} + /lint-staged@14.0.0: + resolution: {integrity: sha512-0tLf0pqZYkar/wu3nTctk4rVIG+d7PanDYv4/IQR4qwdqfQkTDziLRFnqMcLuLBTuUqmcLwsHPD2EjQ18d/oaA==} + engines: {node: ^16.14.0 || >=18.0.0} hasBin: true dependencies: - chalk: 5.2.0 - cli-truncate: 3.1.0 - commander: 10.0.1 + chalk: 5.3.0 + commander: 11.0.0 debug: 4.3.4(supports-color@8.1.1) execa: 7.2.0 lilconfig: 2.1.0 - listr2: 5.0.8 + listr2: 6.6.1 micromatch: 4.0.5 - normalize-path: 3.0.0 - object-inspect: 1.12.3 pidtree: 0.6.0 string-argv: 0.3.2 yaml: 2.3.1 @@ -7136,23 +7207,21 @@ packages: - supports-color dev: true - /listr2@5.0.8: - resolution: {integrity: sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==} - engines: {node: ^14.13.1 || >=16.0.0} + /listr2@6.6.1: + resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==} + engines: {node: '>=16.0.0'} peerDependencies: enquirer: '>= 2.3.0 < 3' peerDependenciesMeta: enquirer: optional: true dependencies: - cli-truncate: 2.1.0 + cli-truncate: 3.1.0 colorette: 2.0.20 - log-update: 4.0.0 - p-map: 4.0.0 + eventemitter3: 5.0.1 + log-update: 5.0.1 rfdc: 1.3.0 - rxjs: 7.8.1 - through: 2.3.8 - wrap-ansi: 7.0.0 + wrap-ansi: 8.1.0 dev: true /load-json-file@4.0.0: @@ -7275,14 +7344,15 @@ packages: is-unicode-supported: 0.1.0 dev: true - /log-update@4.0.0: - resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} - engines: {node: '>=10'} + /log-update@5.0.1: + resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - ansi-escapes: 4.3.2 - cli-cursor: 3.1.0 - slice-ansi: 4.0.0 - wrap-ansi: 6.2.0 + ansi-escapes: 5.0.0 + cli-cursor: 4.0.0 + slice-ansi: 5.0.0 + strip-ansi: 7.1.0 + wrap-ansi: 8.1.0 dev: true /loose-envify@1.4.0: @@ -7459,7 +7529,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.3.0(@types/node@20.4.7): + /meros@1.3.0(@types/node@20.5.0): resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} engines: {node: '>=13'} peerDependencies: @@ -7468,7 +7538,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.4.7 + '@types/node': 20.5.0 dev: true /micro-spelling-correcter@1.1.1: @@ -7875,6 +7945,7 @@ packages: /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + requiresBuild: true dev: true /normalize-url@5.3.1: @@ -8137,6 +8208,15 @@ packages: safe-array-concat: 1.0.0 dev: true + /object.groupby@1.0.0: + resolution: {integrity: sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + get-intrinsic: 1.2.1 + dev: true + /object.hasown@1.1.2: resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} dependencies: @@ -8704,8 +8784,8 @@ packages: strip-json-comments: 2.0.1 dev: true - /re2@1.19.1: - resolution: {integrity: sha512-pML2LZvGdjESWAsufwlFwF+TBauIx7ItgcPIL0KiiZ9GrJ5OU3aJEc/EZvygB32nhjrRxe6QQFbie79QhT7gVA==} + /re2@1.20.1: + resolution: {integrity: sha512-JbzIoI5adNCqGUK8wHG1dMSyggvPyA4kx2hewt1lma5sP7/iWCfM15XKbCZlX2yvu5k80jSKAOQqJF7KC+2n8Q==} requiresBuild: true dependencies: install-artifact-from-github: 1.3.3 @@ -8837,8 +8917,12 @@ packages: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} dev: true - /regenerator-transform@0.15.1: - resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==} + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + dev: true + + /regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: '@babel/runtime': 7.22.6 dev: true @@ -8962,6 +9046,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + /require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} dev: true @@ -9004,6 +9093,15 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true + /resolve@1.22.3: + resolution: {integrity: sha512-P8ur/gp/AmbEzjr729bZnLjXK5Z+4P0zhIJgBgzqRih7hL7BOukHGtSTA3ACMY467GRFz3duQsi0bDZdR7DKdw==} + hasBin: true + dependencies: + is-core-module: 2.12.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + /resolve@2.0.0-next.4: resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} hasBin: true @@ -9013,9 +9111,9 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: onetime: 5.1.2 signal-exit: 3.0.7 @@ -9055,12 +9153,12 @@ packages: glob: 10.3.3 dev: true - /roarr@7.15.0: - resolution: {integrity: sha512-CV9WefQfUXTX6wr8CrEMhfNef3sjIt9wNhE/5PNu4tNWsaoDNDXqq+OGn/RW9A1UPb0qc7FQlswXRaJJJsqn8A==} + /roarr@7.15.1: + resolution: {integrity: sha512-0ExL9rjOXeQPvQvQo8IcV8SR2GTXmDr1FQFlY2HiAV+gdVQjaVZNOx9d4FI2RqFFsd0sNsiw2TRS/8RU9g0ZfA==} engines: {node: '>=12.0'} dependencies: boolean: 3.2.0 - fast-json-stringify: 2.7.13 + fast-json-stringify: 5.8.0 fast-printf: 1.6.9 globalthis: 1.0.3 safe-stable-stringify: 2.4.3 @@ -9088,12 +9186,6 @@ packages: queue-microtask: 1.2.3 dev: true - /rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - dependencies: - tslib: 2.6.1 - dev: true - /safe-array-concat@1.0.0: resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} engines: {node: '>=0.4'} @@ -9286,8 +9378,8 @@ packages: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - /signal-exit@4.0.2: - resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} dev: true @@ -9319,24 +9411,6 @@ packages: engines: {node: '>=12'} dev: true - /slice-ansi@3.0.0: - resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - dev: true - - /slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - dev: true - /slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} @@ -9583,11 +9657,6 @@ packages: resolution: {integrity: sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==} dev: true - /string-similarity@4.0.4: - resolution: {integrity: sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dev: true - /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -9993,11 +10062,6 @@ packages: engines: {node: '>=10'} dev: true - /type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - dev: true - /type-fest@0.4.1: resolution: {integrity: sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==} engines: {node: '>=6'} @@ -10182,13 +10246,13 @@ packages: engines: {node: '>=8'} dev: true - /update-browserslist-db@1.0.11(browserslist@4.21.9): + /update-browserslist-db@1.0.11(browserslist@4.21.10): resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.21.9 + browserslist: 4.21.10 escalade: 3.1.1 picocolors: 1.0.0 dev: true @@ -10215,7 +10279,7 @@ packages: deprecated: Please upgrade to url-regex-safe@v3.0.0+ AND install re2 as an additional dependency in your project via `npm install re2` or `yarn add re2`. dependencies: ip-regex: 4.3.0 - re2: 1.19.1 + re2: 1.20.1 tlds: 1.240.0 transitivePeerDependencies: - supports-color @@ -10287,7 +10351,7 @@ packages: extsprintf: 1.3.0 dev: true - /vite-node@0.34.1(@types/node@20.4.7): + /vite-node@0.34.1(@types/node@20.5.0): resolution: {integrity: sha512-odAZAL9xFMuAg8aWd7nSPT+hU8u2r9gU3LRm9QKjxBEF2rRdWpMuqkrkjvyVQEdNFiBctqr2Gg4uJYizm5Le6w==} engines: {node: '>=v14.18.0'} hasBin: true @@ -10297,7 +10361,7 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.8(@types/node@20.4.7) + vite: 4.4.8(@types/node@20.5.0) transitivePeerDependencies: - '@types/node' - less @@ -10309,7 +10373,7 @@ packages: - terser dev: true - /vite@4.4.8(@types/node@20.4.7): + /vite@4.4.8(@types/node@20.5.0): resolution: {integrity: sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -10337,7 +10401,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.4.7 + '@types/node': 20.5.0 esbuild: 0.18.17 postcss: 8.4.27 rollup: 3.27.2 @@ -10378,7 +10442,7 @@ packages: dependencies: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 - '@types/node': 20.4.7 + '@types/node': 20.5.0 '@vitest/expect': 0.34.1 '@vitest/runner': 0.34.1 '@vitest/snapshot': 0.34.1 @@ -10397,8 +10461,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.0 tinypool: 0.7.0 - vite: 4.4.8(@types/node@20.4.7) - vite-node: 0.34.1(@types/node@20.4.7) + vite: 4.4.8(@types/node@20.5.0) + vite-node: 0.34.1(@types/node@20.5.0) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -10603,7 +10667,7 @@ packages: resolution: {integrity: sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==} engines: {node: ^14.17.0 || >=16.0.0} dependencies: - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.2 lodash: 4.17.21 yaml: 2.3.1 dev: true diff --git a/test/rules/assertions/flatConfig.js b/test/rules/assertions/flatConfig.js index 9554d007e..02b876389 100644 --- a/test/rules/assertions/flatConfig.js +++ b/test/rules/assertions/flatConfig.js @@ -1,4 +1,3 @@ -// @ts-expect-error Our package is not ESM import * as tsParser from '@typescript-eslint/parser'; export default { diff --git a/tsconfig-prod.json b/tsconfig-prod.json index 42adea280..b60986b27 100644 --- a/tsconfig-prod.json +++ b/tsconfig-prod.json @@ -1,8 +1,9 @@ { "compilerOptions": { "lib": ["es2022"], - "moduleResolution": "node", - "module": "NodeNext", + "moduleResolution": "Node", + "module": "Commonjs", + "esModuleInterop": true, "allowJs": true, "checkJs": true, "noEmit": false, diff --git a/tsconfig.json b/tsconfig.json index ecee904c8..686c1bcd4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,8 +1,9 @@ { "compilerOptions": { "lib": ["es2022"], - "moduleResolution": "node", - "module": "NodeNext", + "moduleResolution": "Node", + "module": "Commonjs", + "esModuleInterop": true, "allowJs": true, "checkJs": true, "noEmit": true, From 6bc21aad9fc5c96504d7b8d8705d814cf0449905 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 16 Aug 2023 11:47:38 -0700 Subject: [PATCH 125/273] chore: add to ignore file; closes #1141 --- .npmignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.npmignore b/.npmignore index 1f22ff515..8d44672f4 100755 --- a/.npmignore +++ b/.npmignore @@ -5,3 +5,4 @@ test .* *.log CONTRIBUTING.md +tsconfig*.json From f6946a58c45fabfb145ab9d77f095d3a3be21153 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 16 Aug 2023 11:48:27 -0700 Subject: [PATCH 126/273] test: demo checking of observer call; #1144 --- docs/rules/require-jsdoc.md | 4 ++++ test/rules/assertions/requireJsdoc.js | 34 +++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/docs/rules/require-jsdoc.md b/docs/rules/require-jsdoc.md index 2c6868162..8ed3e8885 100644 --- a/docs/rules/require-jsdoc.md +++ b/docs/rules/require-jsdoc.md @@ -1003,6 +1003,10 @@ export class MyClass { } // "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["PropertyDefinition"],"publicOnly":true}] // Message: Missing JSDoc comment. + +export const Comp = observer(() => <>Hello); +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["CallExpression[callee.name=\"observer\"]"],"enableFixer":false,"publicOnly":true,"require":{"ArrowFunctionExpression":true,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":true,"MethodDefinition":true}}] +// Message: Missing JSDoc comment. ```` diff --git a/test/rules/assertions/requireJsdoc.js b/test/rules/assertions/requireJsdoc.js index 442d36a0f..079227561 100644 --- a/test/rules/assertions/requireJsdoc.js +++ b/test/rules/assertions/requireJsdoc.js @@ -4125,6 +4125,40 @@ function quux (foo) { `, parser: require.resolve('@typescript-eslint/parser'), }, + { + code: ` + export const Comp = observer(() => <>Hello); + `, + errors: [ + { + line: 2, + message: 'Missing JSDoc comment.', + }, + ], + options: [ + { + contexts: [ + 'CallExpression[callee.name="observer"]', + ], + enableFixer: false, + publicOnly: true, + require: { + ArrowFunctionExpression: true, + ClassDeclaration: true, + ClassExpression: true, + FunctionDeclaration: true, + FunctionExpression: true, + MethodDefinition: true, + }, + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + }, + }, ], valid: [ { From 3133c4e5e23b6ee82e72aca815ffa38f6e69f959 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 16 Aug 2023 11:49:11 -0700 Subject: [PATCH 127/273] test: properly report missing errors; use file extension in import --- test/rules/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/rules/index.js b/test/rules/index.js index 9f444abe0..ce84976ea 100644 --- a/test/rules/index.js +++ b/test/rules/index.js @@ -58,7 +58,7 @@ const main = async () => { */ let assertions; try { - assertions = (await import(`./assertions/${camelCase(ruleName)}`)).default; + assertions = (await import(`./assertions/${camelCase(ruleName)}.js`)).default; } catch (error) { // eslint-disable-next-line no-console -- Reporting back to tester console.error(error); @@ -84,7 +84,7 @@ const main = async () => { Reflect.deleteProperty(assertion, 'ignoreReadme'); assertion.parserOptions = defaultsDeep(assertion.parserOptions, parserOptions); for (const error of /** @type {import('eslint').RuleTester.TestCaseError[]} */ ( - assertion.errors + assertion.errors || [] )) { if (!('line' in error)) { count++; From 7b76058193674fb083d312662a2a35ae90061a5f Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 16 Aug 2023 12:00:49 -0700 Subject: [PATCH 128/273] chore: tsconfig --- package.json | 4 ++- pnpm-lock.yaml | 72 +++++++++++++++++++++++++--------------------- tsconfig-prod.json | 5 ++-- tsconfig.json | 5 ++-- 4 files changed, 46 insertions(+), 40 deletions(-) diff --git a/package.json b/package.json index bf49f05f4..ac365f4d3 100644 --- a/package.json +++ b/package.json @@ -36,12 +36,13 @@ "@types/eslint": "^8.44.2", "@types/esquery": "^1.5.0", "@types/estree": "^1.0.1", + "@types/json-schema": "^7.0.12", "@types/lodash.defaultsdeep": "^4.6.7", "@types/mocha": "^10.0.1", "@types/node": "^20.5.0", "@types/semver": "^7.5.0", "@types/spdx-expression-parse": "^3.0.2", - "@typescript-eslint/parser": "^6.3.0", + "@typescript-eslint/parser": "^6.4.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", @@ -55,6 +56,7 @@ "glob": "^10.3.3", "husky": "^8.0.3", "jsdoc-type-pratt-parser": "^4.0.0", + "json-schema": "^0.4.0", "lint-staged": "^14.0.0", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f7df9e279..152b4f8d3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -91,6 +91,9 @@ devDependencies: '@types/estree': specifier: ^1.0.1 version: 1.0.1 + '@types/json-schema': + specifier: ^7.0.12 + version: 7.0.12 '@types/lodash.defaultsdeep': specifier: ^4.6.7 version: 4.6.7 @@ -107,8 +110,8 @@ devDependencies: specifier: ^3.0.2 version: 3.0.2 '@typescript-eslint/parser': - specifier: ^6.3.0 - version: 6.3.0(eslint@8.47.0)(typescript@5.1.6) + specifier: ^6.4.0 + version: 6.4.0(eslint@8.47.0)(typescript@5.1.6) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -148,6 +151,9 @@ devDependencies: jsdoc-type-pratt-parser: specifier: ^4.0.0 version: 4.0.0 + json-schema: + specifier: ^0.4.0 + version: 0.4.0 lint-staged: specifier: ^14.0.0 version: 14.0.0 @@ -1225,7 +1231,7 @@ packages: '@babel/helper-module-imports': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.10) - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/plugin-transform-regenerator@7.22.10(@babel/core@7.22.10): @@ -2687,8 +2693,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.3.0(eslint@8.47.0)(typescript@5.1.6): - resolution: {integrity: sha512-ibP+y2Gr6p0qsUkhs7InMdXrwldjxZw66wpcQq9/PzAroM45wdwyu81T+7RibNCh8oc0AgrsyCwJByncY0Ongg==} + /@typescript-eslint/parser@6.4.0(eslint@8.47.0)(typescript@5.1.6): + resolution: {integrity: sha512-I1Ah1irl033uxjxO9Xql7+biL3YD7w9IU8zF+xlzD/YxY6a4b7DYA08PXUUCbm2sEljwJF6ERFy2kTGAGcNilg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2697,10 +2703,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.3.0 - '@typescript-eslint/types': 6.3.0 - '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.3.0 + '@typescript-eslint/scope-manager': 6.4.0 + '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.4.0 debug: 4.3.4(supports-color@8.1.1) eslint: 8.47.0 typescript: 5.1.6 @@ -2724,12 +2730,12 @@ packages: '@typescript-eslint/visitor-keys': 6.2.1 dev: true - /@typescript-eslint/scope-manager@6.3.0: - resolution: {integrity: sha512-WlNFgBEuGu74ahrXzgefiz/QlVb+qg8KDTpknKwR7hMH+lQygWyx0CQFoUmMn1zDkQjTBBIn75IxtWss77iBIQ==} + /@typescript-eslint/scope-manager@6.4.0: + resolution: {integrity: sha512-TUS7vaKkPWDVvl7GDNHFQMsMruD+zhkd3SdVW0d7b+7Zo+bd/hXJQ8nsiUZMi1jloWo6c9qt3B7Sqo+flC1nig==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.3.0 - '@typescript-eslint/visitor-keys': 6.3.0 + '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/visitor-keys': 6.4.0 dev: true /@typescript-eslint/type-utils@5.62.0(eslint@8.47.0)(typescript@5.1.6): @@ -2762,8 +2768,8 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@6.3.0: - resolution: {integrity: sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg==} + /@typescript-eslint/types@6.4.0: + resolution: {integrity: sha512-+FV9kVFrS7w78YtzkIsNSoYsnOtrYVnKWSTVXoL1761CsCRv5wpDOINgsXpxD67YCLZtVQekDDyaxfjVWUJmmg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -2809,8 +2815,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.3.0(typescript@5.1.6): - resolution: {integrity: sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg==} + /@typescript-eslint/typescript-estree@6.4.0(typescript@5.1.6): + resolution: {integrity: sha512-iDPJArf/K2sxvjOR6skeUCNgHR/tCQXBsa+ee1/clRKr3olZjZ/dSkXPZjG6YkPtnW6p5D1egeEPMCW6Gn4yLA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2818,8 +2824,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.3.0 - '@typescript-eslint/visitor-keys': 6.3.0 + '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/visitor-keys': 6.4.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 @@ -2874,7 +2880,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.2 + eslint-visitor-keys: 3.4.3 dev: true /@typescript-eslint/visitor-keys@6.2.1: @@ -2882,15 +2888,15 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dependencies: '@typescript-eslint/types': 6.2.1 - eslint-visitor-keys: 3.4.2 + eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.3.0: - resolution: {integrity: sha512-kEhRRj7HnvaSjux1J9+7dBen15CdWmDnwrpyiHsFX6Qx2iW5LOBUgNefOFeh2PjWPlNwN8TOn6+4eBU3J/gupw==} + /@typescript-eslint/visitor-keys@6.4.0: + resolution: {integrity: sha512-yJSfyT+uJm+JRDWYRYdCm2i+pmvXJSMtPR9Cq5/XQs4QIgNoLcoRtDdzsLbLsFM/c6um6ohQkg/MLxWvoIndJA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.3.0 - eslint-visitor-keys: 3.4.2 + '@typescript-eslint/types': 6.4.0 + eslint-visitor-keys: 3.4.3 dev: true /@vitest/expect@0.34.1: @@ -4632,7 +4638,7 @@ packages: eslint-plugin-eslint-comments: 3.2.0(eslint@8.47.0) eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.47.0) eslint-plugin-fp: 2.3.0(eslint@8.47.0) - eslint-plugin-import: 2.28.0(@typescript-eslint/parser@6.3.0)(eslint@8.47.0) + eslint-plugin-import: 2.28.0(@typescript-eslint/parser@6.4.0)(eslint@8.47.0) eslint-plugin-jest: 27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.47.0)(typescript@5.1.6) eslint-plugin-jsdoc: 43.2.0(eslint@8.47.0) eslint-plugin-jsonc: 2.9.0(eslint@8.47.0) @@ -4703,7 +4709,7 @@ packages: enhanced-resolve: 5.15.0 eslint: 8.47.0 eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) - eslint-plugin-import: 2.28.0(@typescript-eslint/parser@6.3.0)(eslint@8.47.0) + eslint-plugin-import: 2.28.0(@typescript-eslint/parser@6.4.0)(eslint@8.47.0) get-tsconfig: 4.6.2 globby: 13.2.2 is-core-module: 2.12.1 @@ -4746,7 +4752,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.3.0)(eslint-import-resolver-node@0.3.7)(eslint@8.47.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.4.0)(eslint-import-resolver-node@0.3.7)(eslint@8.47.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4767,7 +4773,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.3.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.4.0(eslint@8.47.0)(typescript@5.1.6) debug: 3.2.7 eslint: 8.47.0 eslint-import-resolver-node: 0.3.7 @@ -4879,7 +4885,7 @@ packages: req-all: 0.1.0 dev: true - /eslint-plugin-import@2.28.0(@typescript-eslint/parser@6.3.0)(eslint@8.47.0): + /eslint-plugin-import@2.28.0(@typescript-eslint/parser@6.4.0)(eslint@8.47.0): resolution: {integrity: sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q==} engines: {node: '>=4'} peerDependencies: @@ -4889,7 +4895,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.3.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.4.0(eslint@8.47.0)(typescript@5.1.6) array-includes: 3.1.6 array.prototype.findlastindex: 1.2.2 array.prototype.flat: 1.3.1 @@ -4898,7 +4904,7 @@ packages: doctrine: 2.1.0 eslint: 8.47.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.3.0)(eslint-import-resolver-node@0.3.7)(eslint@8.47.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.4.0)(eslint-import-resolver-node@0.3.7)(eslint@8.47.0) has: 1.0.3 is-core-module: 2.12.1 is-glob: 4.0.3 @@ -7074,7 +7080,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.10.0 - eslint-visitor-keys: 3.4.2 + eslint-visitor-keys: 3.4.3 espree: 9.6.1 semver: 7.5.4 dev: true diff --git a/tsconfig-prod.json b/tsconfig-prod.json index b60986b27..ff919479f 100644 --- a/tsconfig-prod.json +++ b/tsconfig-prod.json @@ -1,9 +1,8 @@ { "compilerOptions": { "lib": ["es2022"], - "moduleResolution": "Node", - "module": "Commonjs", - "esModuleInterop": true, + "moduleResolution": "Bundler", + "module": "ESNext", "allowJs": true, "checkJs": true, "noEmit": false, diff --git a/tsconfig.json b/tsconfig.json index 686c1bcd4..a939edb7d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,9 +1,8 @@ { "compilerOptions": { "lib": ["es2022"], - "moduleResolution": "Node", - "module": "Commonjs", - "esModuleInterop": true, + "moduleResolution": "Bundler", + "module": "ESNext", "allowJs": true, "checkJs": true, "noEmit": true, From 48cc6be422fe8ab1f25d2bd04cdfcf56d049bcbb Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 16 Aug 2023 12:58:40 -0700 Subject: [PATCH 129/273] chore: ignore declaration files and docs --- .npmignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.npmignore b/.npmignore index 8d44672f4..e29c3b128 100755 --- a/.npmignore +++ b/.npmignore @@ -6,3 +6,6 @@ test *.log CONTRIBUTING.md tsconfig*.json +*.d.ts +*.d.ts.map +docs From 918dbed99f74702b06f317d4632b58c9ba84f9c7 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 17 Aug 2023 17:03:23 -0700 Subject: [PATCH 130/273] feat: support Flat ESLint config; fixes #1131 --- .README/README.md | 25 +++++++++++++++++++++++++ README.md | 31 +++++++++++++++++++++++++++++++ src/index.js | 32 ++++++++++++++++++++++---------- 3 files changed, 78 insertions(+), 10 deletions(-) diff --git a/.README/README.md b/.README/README.md index 2487576c0..691fc30b8 100644 --- a/.README/README.md +++ b/.README/README.md @@ -27,6 +27,31 @@ npm install --save-dev eslint-plugin-jsdoc ## Configuration +### Flat config + +```js +import jsdoc from 'eslint-plugin-jsdoc'; + +const config = [ + // configuration included in plugin + jsdoc.configs['flat/recommended'], + // other configuration objects... + { + files: ['**/*.js'], + plugins: { + jsdoc, + }, + rules: { + 'jsdoc/require-description': 'warn' + } + } +]; + +export default config; +``` + +### `eslintrc` + Add `plugins` section to [.eslintrc.*](https://eslint.org/docs/user-guide/configuring#configuration-file-formats) and specify `eslint-plugin-jsdoc` as a plugin. diff --git a/README.md b/README.md index cb1108b32..a96bc2e72 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,8 @@ JSDoc linting rules for ESLint. * [eslint-plugin-jsdoc](#user-content-eslint-plugin-jsdoc) * [Installation](#user-content-eslint-plugin-jsdoc-installation) * [Configuration](#user-content-eslint-plugin-jsdoc-configuration) + * [Flat config](#user-content-eslint-plugin-jsdoc-configuration-flat-config) + * [`eslintrc`](#user-content-eslint-plugin-jsdoc-configuration-eslintrc) * [Options](#user-content-eslint-plugin-jsdoc-options) * [Settings](#user-content-eslint-plugin-jsdoc-settings) * [Advanced](#user-content-eslint-plugin-jsdoc-advanced) @@ -40,6 +42,35 @@ npm install --save-dev eslint-plugin-jsdoc ## Configuration + + +### Flat config + +```js +import jsdoc from 'eslint-plugin-jsdoc'; + +const config = [ + // configuration included in plugin + jsdoc.configs['flat/recommended'], + // other configuration objects... + { + files: ['**/*.js'], + plugins: { + jsdoc, + }, + rules: { + 'jsdoc/require-description': 'warn' + } + } +]; + +export default config; +``` + + + +### eslintrc + Add `plugins` section to [.eslintrc.*](https://eslint.org/docs/user-guide/configuring#configuration-file-formats) and specify `eslint-plugin-jsdoc` as a plugin. diff --git a/src/index.js b/src/index.js index 490fbb611..6ed3d59c8 100644 --- a/src/index.js +++ b/src/index.js @@ -54,7 +54,7 @@ import validTypes from './rules/validTypes.js'; /** * @type {import('eslint').ESLint.Plugin & { - * configs: Record + * configs: Record * }} */ const index = { @@ -118,11 +118,14 @@ const index = { /** * @param {"warn"|"error"} warnOrError - * @returns {import('eslint').ESLint.ConfigData} + * @param {boolean} [flat] + * @returns {import('eslint').ESLint.ConfigData | {plugins: {}, rules: {}}} */ -const createRecommendedRuleset = (warnOrError) => { +const createRecommendedRuleset = (warnOrError, flat) => { return { - plugins: [ + plugins: flat ? { + jsdoc: index, + } : [ 'jsdoc', ], rules: { @@ -185,10 +188,11 @@ const createRecommendedRuleset = (warnOrError) => { /** * @param {"warn"|"error"} warnOrError - * @returns {import('eslint').ESLint.ConfigData} + * @param {boolean} [flat] + * @returns {import('eslint').ESLint.ConfigData|{}} */ -const createRecommendedTypeScriptRuleset = (warnOrError) => { - const ruleset = createRecommendedRuleset(warnOrError); +const createRecommendedTypeScriptRuleset = (warnOrError, flat) => { + const ruleset = createRecommendedRuleset(warnOrError, flat); return { ...ruleset, @@ -212,10 +216,11 @@ const createRecommendedTypeScriptRuleset = (warnOrError) => { /** * @param {"warn"|"error"} warnOrError - * @returns {import('eslint').ESLint.ConfigData} + * @param {boolean} [flat] + * @returns {import('eslint').ESLint.ConfigData|{}} */ -const createRecommendedTypeScriptFlavorRuleset = (warnOrError) => { - const ruleset = createRecommendedRuleset(warnOrError); +const createRecommendedTypeScriptFlavorRuleset = (warnOrError, flat) => { + const ruleset = createRecommendedRuleset(warnOrError, flat); return { ...ruleset, @@ -240,4 +245,11 @@ index.configs['recommended-typescript-error'] = createRecommendedTypeScriptRules index.configs['recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn'); index.configs['recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error'); +index.configs['flat/recommended'] = createRecommendedRuleset('warn', true); +index.configs['flat/recommended-error'] = createRecommendedRuleset('error', true); +index.configs['flat/recommended-typescript'] = createRecommendedTypeScriptRuleset('warn', true); +index.configs['flat/recommended-typescript-error'] = createRecommendedTypeScriptRuleset('error', true); +index.configs['flat/recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn', true); +index.configs['flat/recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error', true); + export default index; From 85a21bfb696feace06da1a4e76977bcf34a9c45c Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 29 Aug 2023 16:03:05 -0700 Subject: [PATCH 131/273] fix: revert use of too-high language feature; fixes #1148 --- src/jsdocUtils.js | 2 +- src/rules/matchDescription.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index a8f6fcc86..9d3f5b4cc 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -595,7 +595,7 @@ const getPreferredTagName = ( }), ); - if (Object.hasOwn(tagPreferenceFixed, name)) { + if (Object.prototype.hasOwnProperty.call(tagPreferenceFixed, name)) { return tagPreferenceFixed[name]; } diff --git a/src/rules/matchDescription.js b/src/rules/matchDescription.js index 63d5a68eb..2b95adbca 100644 --- a/src/rules/matchDescription.js +++ b/src/rules/matchDescription.js @@ -43,7 +43,7 @@ export default iterateJsdoc(({ } if (mainDescriptionMatch === false && ( - !tag || !Object.hasOwn(tags, tag.tag)) + !tag || !Object.prototype.hasOwnProperty.call(tags, tag.tag)) ) { return; } From 6f1b50b57106df18ece93a68bb9bc15b1364aaa2 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 8 Sep 2023 09:59:33 -0700 Subject: [PATCH 132/273] feat(`informative-docs`): add `excludedTags`; fixes #1153 Also: - fix(`informative-docs`): proper `aliases` schema - test(`informative-docs`): check `uselessWords` - test(`require-jsdoc`): example for Vue components --- .README/rules/informative-docs.md | 2 +- docs/rules/informative-docs.md | 22 ++++++++-- docs/rules/require-jsdoc.md | 22 ++++++++++ src/rules/informativeDocs.js | 17 +++++++- test/rules/assertions/informativeDocs.js | 54 +++++++++++++++++++++++- test/rules/assertions/requireJsdoc.js | 33 +++++++++++++++ 6 files changed, 143 insertions(+), 7 deletions(-) diff --git a/.README/rules/informative-docs.md b/.README/rules/informative-docs.md index 1e02f5a32..5aa44948b 100644 --- a/.README/rules/informative-docs.md +++ b/.README/rules/informative-docs.md @@ -60,7 +60,7 @@ The default `uselessWords` option is: |Tags|any| |Recommended|false| |Settings|| -|Options|`aliases`, `uselessWords`| +|Options|`aliases`, `excludedTags`, `uselessWords`| ## Failing examples diff --git a/docs/rules/informative-docs.md b/docs/rules/informative-docs.md index 571428c09..bce9290bf 100644 --- a/docs/rules/informative-docs.md +++ b/docs/rules/informative-docs.md @@ -76,7 +76,7 @@ The default `uselessWords` option is: |Tags|any| |Recommended|false| |Settings|| -|Options|`aliases`, `uselessWords`| +|Options|`aliases`, `excludedTags`, `uselessWords`| @@ -249,6 +249,11 @@ function takesOne(param) {} */ function takesOne(param) {} // Message: This description only repeats the name it describes. + +/** A smiley/winkey. */ +let emoji; +// "jsdoc/informative-docs": ["error"|"warn", {"aliases":{"emoji":["smiley","winkey"]}}] +// Message: This description only repeats the name it describes. ```` @@ -391,10 +396,21 @@ function takesOne(param) {} function takesOne(param) {} /** - * @class + * @class * * @param {number} value - Some useful text - */ + */ function MyAmazingThing(value) {} + +/** + * My option. + * @default {} + */ +// "jsdoc/informative-docs": ["error"|"warn", {"excludedTags":["default"]}] + +/** + * The + */ +// "jsdoc/informative-docs": ["error"|"warn", {"uselessWords":["an"]}] ```` diff --git a/docs/rules/require-jsdoc.md b/docs/rules/require-jsdoc.md index 8ed3e8885..e40c04933 100644 --- a/docs/rules/require-jsdoc.md +++ b/docs/rules/require-jsdoc.md @@ -1857,5 +1857,27 @@ export default class Test { } } // "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ArrowFunctionExpression":false,"ClassDeclaration":false,"ClassExpression":false,"FunctionDeclaration":false,"FunctionExpression":false,"MethodDefinition":true}}] + +export default { + created() { + this.getData(); + }, + + beforeUpdate() {}, + + watch: { + someValue(val) {} + }, + + computed: { + loaded() {}, + selection() {} + }, + + methods: { + getData(id) {} + } +}; +// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["ExportDefaultDeclaration > ObjectExpression > Property[key.name!=/^(created|beforeUpdate)$/] > FunctionExpression","ExportDefaultDeclaration > ObjectExpression > Property[key.name!=/^(watch|computed|methods)$/] > ObjectExpression > Property > FunctionExpression"]}] ```` diff --git a/src/rules/informativeDocs.js b/src/rules/informativeDocs.js index 6bd6eb23f..03bd4c4ca 100644 --- a/src/rules/informativeDocs.js +++ b/src/rules/informativeDocs.js @@ -91,8 +91,9 @@ export default iterateJsdoc(({ report, utils, }) => { - const { + const /** @type {{aliases: {[key: string]: string[]}, excludedTags: string[], uselessWords: string[]}} */ { aliases = defaultAliases, + excludedTags = [], uselessWords = defaultUselessWords, } = context.options[0] || {}; const nodeNames = getNamesFromNode(node); @@ -119,6 +120,10 @@ export default iterateJsdoc(({ let descriptionReported = false; for (const tag of jsdoc.tags) { + if (excludedTags.includes(tag.tag)) { + continue; + } + if (descriptionIsRedundant(tag.description, tag.name)) { utils.reportJSDoc( 'This tag description only repeats the name it describes.', @@ -147,6 +152,16 @@ export default iterateJsdoc(({ additionalProperties: false, properties: { aliases: { + patternProperties: { + '.*': { + items: { + type: 'string', + }, + type: 'array', + }, + }, + }, + excludedTags: { items: { type: 'string', }, diff --git a/test/rules/assertions/informativeDocs.js b/test/rules/assertions/informativeDocs.js index bbdfbfa17..3b33641fe 100644 --- a/test/rules/assertions/informativeDocs.js +++ b/test/rules/assertions/informativeDocs.js @@ -476,6 +476,27 @@ export default { }, ], }, + { + code: ` + /** A smiley/winkey. */ + let emoji; + `, + errors: [ + { + line: 2, + message: 'This description only repeats the name it describes.', + }, + ], + options: [ + { + aliases: { + emoji: [ + 'smiley', 'winkey', + ], + }, + }, + ], + }, ], valid: [ { @@ -752,12 +773,41 @@ export default { { code: ` /** - * @class + * @class * * @param {number} value - Some useful text - */ + */ function MyAmazingThing(value) {} `, }, + { + code: ` + /** + * My option. + * @default {} + */ + `, + options: [ + { + excludedTags: [ + 'default', + ], + }, + ], + }, + { + code: ` + /** + * The + */ + `, + options: [ + { + uselessWords: [ + 'an', + ], + }, + ], + }, ], }; diff --git a/test/rules/assertions/requireJsdoc.js b/test/rules/assertions/requireJsdoc.js index 079227561..772f63219 100644 --- a/test/rules/assertions/requireJsdoc.js +++ b/test/rules/assertions/requireJsdoc.js @@ -6202,5 +6202,38 @@ function quux (foo) { sourceType: 'module', }, }, + { + code: ` + export default { + created() { + this.getData(); + }, + + beforeUpdate() {}, + + watch: { + someValue(val) {} + }, + + computed: { + loaded() {}, + selection() {} + }, + + methods: { + getData(id) {} + } + }; + `, + options: [ + { + contexts: [ + 'ExportDefaultDeclaration > ObjectExpression > Property[key.name!=/^(created|beforeUpdate)$/] > FunctionExpression', + 'ExportDefaultDeclaration > ObjectExpression > Property[key.name!=/^(watch|computed|methods)$/] > ObjectExpression > Property > FunctionExpression', + ], + }, + ], + parser: require.resolve('@typescript-eslint/parser'), + }, ], }; From dfd2a8a0b5fbff4e5840c8d65b82c61ab54d7f87 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 11 Sep 2023 14:53:55 -0700 Subject: [PATCH 133/273] feat(`require-returns`): add optional fixer --- .README/rules/require-returns.md | 4 +++- docs/rules/require-returns.md | 14 ++++++++++- src/rules/requireReturns.js | 9 ++++++- test/rules/assertions/requireReturns.js | 32 +++++++++++++++++++++++++ 4 files changed, 56 insertions(+), 3 deletions(-) diff --git a/.README/rules/require-returns.md b/.README/rules/require-returns.md index 240c7dd27..dc055e9d6 100644 --- a/.README/rules/require-returns.md +++ b/.README/rules/require-returns.md @@ -42,6 +42,8 @@ Will also report if multiple `@returns` tags are present. `forceReturnsWithAsync` option is set with a present `@async` tag (since we are not checking against the actual `return` values in these cases). +- `enableFixer` - Whether to enable the fixer to add a blank `@returns`. + Defaults to `false`. ## Context and settings @@ -51,7 +53,7 @@ Will also report if multiple `@returns` tags are present. | Tags | `returns` | | Aliases | `return` | |Recommended|true| -| Options |`checkConstructors`, `checkGetters`, `contexts`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync`| +| Options |`checkConstructors`, `checkGetters`, `contexts`, `enableFixer`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | ## Failing examples diff --git a/docs/rules/require-returns.md b/docs/rules/require-returns.md index 1f54d2073..847c6b889 100644 --- a/docs/rules/require-returns.md +++ b/docs/rules/require-returns.md @@ -50,6 +50,8 @@ Will also report if multiple `@returns` tags are present. `forceReturnsWithAsync` option is set with a present `@async` tag (since we are not checking against the actual `return` values in these cases). +- `enableFixer` - Whether to enable the fixer to add a blank `@returns`. + Defaults to `false`. @@ -61,7 +63,7 @@ Will also report if multiple `@returns` tags are present. | Tags | `returns` | | Aliases | `return` | |Recommended|true| -| Options |`checkConstructors`, `checkGetters`, `contexts`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync`| +| Options |`checkConstructors`, `checkGetters`, `contexts`, `enableFixer`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | @@ -80,6 +82,16 @@ function quux (foo) { } // Message: Missing JSDoc @returns declaration. +/** + * + */ +function quux (foo) { + + return foo; +} +// "jsdoc/require-returns": ["error"|"warn", {"enableFixer":true}] +// Message: Missing JSDoc @returns declaration. + /** * */ diff --git a/src/rules/requireReturns.js b/src/rules/requireReturns.js index 582aa39ea..8489c171d 100644 --- a/src/rules/requireReturns.js +++ b/src/rules/requireReturns.js @@ -44,6 +44,7 @@ export default iterateJsdoc(({ }) => { const { contexts, + enableFixer = false, forceRequireReturn = false, forceReturnsWithAsync = false, } = context.options[0] || {}; @@ -110,7 +111,9 @@ export default iterateJsdoc(({ }; if (shouldReport()) { - report(`Missing JSDoc @${tagName} declaration.`); + utils.reportJSDoc(`Missing JSDoc @${tagName} declaration.`, null, enableFixer ? () => { + utils.addTag(tagName); + } : null); } }, { contextDefaults: true, @@ -119,6 +122,7 @@ export default iterateJsdoc(({ description: 'Requires that returns are documented.', url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns.md#repos-sticky-header', }, + fixable: 'code', schema: [ { additionalProperties: false, @@ -156,6 +160,9 @@ export default iterateJsdoc(({ }, type: 'array', }, + enableFixer: { + type: 'boolean', + }, exemptedBy: { items: { type: 'string', diff --git a/test/rules/assertions/requireReturns.js b/test/rules/assertions/requireReturns.js index 81ba52db9..315c5ab4d 100644 --- a/test/rules/assertions/requireReturns.js +++ b/test/rules/assertions/requireReturns.js @@ -17,6 +17,38 @@ export default { }, ], }, + { + code: ` + /** + * + */ + function quux (foo) { + + return foo; + } + `, + errors: [ + { + line: 2, + message: 'Missing JSDoc @returns declaration.', + }, + ], + options: [ + { + enableFixer: true, + }, + ], + output: ` + /** + * + * @returns + */ + function quux (foo) { + + return foo; + } + `, + }, { code: ` /** From 8dbcb6f31d8e75b6a12dc0cfa19ace736ed0e9c6 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 12 Sep 2023 10:47:53 -0700 Subject: [PATCH 134/273] feat(`require-returns`): add `publicOnly` option; fixes #1137 --- .README/rules/require-returns.md | 3 +- docs/rules/require-returns.md | 64 ++++++++++- src/iterateJsdoc.js | 20 +++- src/rules/requireJsdoc.js | 4 +- src/rules/requireReturns.js | 51 ++++++++ test/rules/assertions/requireReturns.js | 147 ++++++++++++++++++++++++ 6 files changed, 281 insertions(+), 8 deletions(-) diff --git a/.README/rules/require-returns.md b/.README/rules/require-returns.md index dc055e9d6..af32243c6 100644 --- a/.README/rules/require-returns.md +++ b/.README/rules/require-returns.md @@ -44,6 +44,7 @@ Will also report if multiple `@returns` tags are present. cases). - `enableFixer` - Whether to enable the fixer to add a blank `@returns`. Defaults to `false`. +- `publicOnly` - See docs for `require-jsdoc`. ## Context and settings @@ -53,7 +54,7 @@ Will also report if multiple `@returns` tags are present. | Tags | `returns` | | Aliases | `return` | |Recommended|true| -| Options |`checkConstructors`, `checkGetters`, `contexts`, `enableFixer`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync`| +| Options |`checkConstructors`, `checkGetters`, `contexts`, `enableFixer`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync`, `publicOnly`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | ## Failing examples diff --git a/docs/rules/require-returns.md b/docs/rules/require-returns.md index 847c6b889..b620d90d8 100644 --- a/docs/rules/require-returns.md +++ b/docs/rules/require-returns.md @@ -52,6 +52,7 @@ Will also report if multiple `@returns` tags are present. cases). - `enableFixer` - Whether to enable the fixer to add a blank `@returns`. Defaults to `false`. +- `publicOnly` - See docs for `require-jsdoc`. @@ -63,7 +64,7 @@ Will also report if multiple `@returns` tags are present. | Tags | `returns` | | Aliases | `return` | |Recommended|true| -| Options |`checkConstructors`, `checkGetters`, `contexts`, `enableFixer`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync`| +| Options |`checkConstructors`, `checkGetters`, `contexts`, `enableFixer`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync`, `publicOnly`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | @@ -660,6 +661,58 @@ class Test { } // "jsdoc/require-returns": ["error"|"warn", {"contexts":["FunctionDeclaration",{"context":"TSEmptyBodyFunctionExpression","forceRequireReturn":true}]}] // Message: Missing JSDoc @returns declaration. + +/** + * + */ +module.exports = function quux (foo) { + + return foo; +} +// "jsdoc/require-returns": ["error"|"warn", {"publicOnly":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +const a = function quux (foo) { + + return foo; +}; + +export default a; +// "jsdoc/require-returns": ["error"|"warn", {"publicOnly":true}] +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +export default function quux (foo) { + + return foo; +}; +// "jsdoc/require-returns": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true,"esm":true}}] +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +exports.quux = function quux (foo) { + + return foo; +}; +// "jsdoc/require-returns": ["error"|"warn", {"publicOnly":{"cjs":true}}] +// Message: Missing JSDoc @returns declaration. + +/** + * + */ +window.quux = function quux (foo) { + + return foo; +}; +// "jsdoc/require-returns": ["error"|"warn", {"publicOnly":{"window":true}}] +// Message: Missing JSDoc @returns declaration. ```` @@ -1199,5 +1252,14 @@ class Test { abstract Test(): string; } // "jsdoc/require-returns": ["error"|"warn", {"contexts":["FunctionDeclaration",{"context":"TSEmptyBodyFunctionExpression","forceRequireReturn":true}]}] + +/** + * + */ +function quux (foo) { + + return foo; +} +// "jsdoc/require-returns": ["error"|"warn", {"publicOnly":true}] ```` diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index a801733ac..7dae4e88a 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -694,7 +694,9 @@ const getUtils = ( indent, ) => { const ancestors = /** @type {import('eslint').Rule.Node[]} */ (context.getAncestors()); - const sourceCode = context.getSourceCode(); + const { + sourceCode, + } = context; const utils = /** @type {Utils} */ (getBasicUtils(context, settings)); @@ -2147,7 +2149,9 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext * @returns {void} */ const callIterator = (context, node, jsdocNodes, state, lastCall) => { - const sourceCode = context.getSourceCode(); + const { + sourceCode, + } = context; const { lines, } = sourceCode; @@ -2258,7 +2262,9 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext return { // @ts-expect-error ESLint accepts create (context) { - const sourceCode = context.getSourceCode(); + const { + sourceCode, + } = context; settings = getSettings(context); if (!settings) { return {}; @@ -2334,7 +2340,9 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext const checkFile = (iterator, ruleConfig) => { return { create (context) { - const sourceCode = context.getSourceCode(); + const { + sourceCode, + } = context; const settings = getSettings(context); if (!settings) { return {}; @@ -2451,7 +2459,9 @@ export default function iterateJsdoc (iterator, ruleConfig) { } } - const sourceCode = context.getSourceCode(); + const { + sourceCode, + } = context; const { lines, } = sourceCode; diff --git a/src/rules/requireJsdoc.js b/src/rules/requireJsdoc.js index 3dcc3c207..4089cef9f 100644 --- a/src/rules/requireJsdoc.js +++ b/src/rules/requireJsdoc.js @@ -288,7 +288,9 @@ const getOptions = (context, settings) => { /** @type {import('eslint').Rule.RuleModule} */ export default { create (context) { - const sourceCode = context.getSourceCode(); + const { + sourceCode, + } = context; const settings = getSettings(context); if (!settings) { return {}; diff --git a/src/rules/requireReturns.js b/src/rules/requireReturns.js index 8489c171d..7c2dde04b 100644 --- a/src/rules/requireReturns.js +++ b/src/rules/requireReturns.js @@ -1,3 +1,4 @@ +import exportParser from '../exportParser.js'; import iterateJsdoc from '../iterateJsdoc.js'; /** @@ -38,7 +39,9 @@ export default iterateJsdoc(({ info: { comment, }, + node, report, + settings, utils, context, }) => { @@ -47,6 +50,7 @@ export default iterateJsdoc(({ enableFixer = false, forceRequireReturn = false, forceReturnsWithAsync = false, + publicOnly = false, } = context.options[0] || {}; // A preflight check. We do not need to run a deep check @@ -92,6 +96,26 @@ export default iterateJsdoc(({ return false; } + if (publicOnly) { + /** @type {import('./requireJsdoc.js').RequireJsdocOpts} */ + const opt = { + ancestorsOnly: Boolean(publicOnly?.ancestorsOnly ?? false), + esm: Boolean(publicOnly?.esm ?? true), + initModuleExports: Boolean(publicOnly?.cjs ?? true), + initWindow: Boolean(publicOnly?.window ?? false), + }; + const { + sourceCode, + } = context; + const exported = exportParser.isUncommentedExport( + /** @type {import('eslint').Rule.Node} */ (node), sourceCode, opt, settings, + ); + + if (!exported) { + return false; + } + } + if ((forceRequireReturn || forceRequireReturnContext) && ( iteratingFunction || utils.isVirtualFunction() )) { @@ -177,6 +201,33 @@ export default iterateJsdoc(({ default: false, type: 'boolean', }, + publicOnly: { + oneOf: [ + { + default: false, + type: 'boolean', + }, + { + additionalProperties: false, + default: {}, + properties: { + ancestorsOnly: { + type: 'boolean', + }, + cjs: { + type: 'boolean', + }, + esm: { + type: 'boolean', + }, + window: { + type: 'boolean', + }, + }, + type: 'object', + }, + ], + }, }, type: 'object', }, diff --git a/test/rules/assertions/requireReturns.js b/test/rules/assertions/requireReturns.js index 315c5ab4d..5388bbfd7 100644 --- a/test/rules/assertions/requireReturns.js +++ b/test/rules/assertions/requireReturns.js @@ -1830,6 +1830,137 @@ export default { ], parser: require.resolve('@typescript-eslint/parser'), }, + { + code: ` + /** + * + */ + module.exports = function quux (foo) { + + return foo; + } + `, + errors: [ + { + line: 2, + message: 'Missing JSDoc @returns declaration.', + }, + ], + options: [ + { + publicOnly: true, + }, + ], + }, + { + code: ` + /** + * + */ + const a = function quux (foo) { + + return foo; + }; + + export default a; + `, + errors: [ + { + line: 2, + message: 'Missing JSDoc @returns declaration.', + }, + ], + options: [ + { + publicOnly: true, + }, + ], + parserOptions: { + sourceType: 'module', + }, + }, + { + code: ` + /** + * + */ + export default function quux (foo) { + + return foo; + }; + `, + errors: [ + { + line: 2, + message: 'Missing JSDoc @returns declaration.', + }, + ], + options: [ + { + publicOnly: { + ancestorsOnly: true, + esm: true, + }, + }, + ], + parserOptions: { + sourceType: 'module', + }, + }, + { + code: ` + /** + * + */ + exports.quux = function quux (foo) { + + return foo; + }; + `, + errors: [ + { + line: 2, + message: 'Missing JSDoc @returns declaration.', + }, + ], + options: [ + { + publicOnly: { + cjs: true, + }, + }, + ], + parserOptions: { + sourceType: 'module', + }, + }, + { + code: ` + /** + * + */ + window.quux = function quux (foo) { + + return foo; + }; + `, + errors: [ + { + line: 2, + message: 'Missing JSDoc @returns declaration.', + }, + ], + options: [ + { + publicOnly: { + window: true, + }, + }, + ], + parserOptions: { + sourceType: 'module', + }, + }, ], valid: [ { @@ -2754,5 +2885,21 @@ export default { ], parser: require.resolve('@typescript-eslint/parser'), }, + { + code: ` + /** + * + */ + function quux (foo) { + + return foo; + } + `, + options: [ + { + publicOnly: true, + }, + ], + }, ], }; From e8b14756c573bc7f6eb824f2e87b67bbd6a50fab Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 14 Sep 2023 08:49:34 -0700 Subject: [PATCH 135/273] fix(`require-description-complete-sentence`): allow all inline tags at beginning of sentence; fixes #1150 --- docs/rules/require-description-complete-sentence.md | 4 +++- src/rules/requireDescriptionCompleteSentence.js | 2 +- .../assertions/requireDescriptionCompleteSentence.js | 11 ++++++----- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/docs/rules/require-description-complete-sentence.md b/docs/rules/require-description-complete-sentence.md index 37a6ae025..4b74c9d71 100644 --- a/docs/rules/require-description-complete-sentence.md +++ b/docs/rules/require-description-complete-sentence.md @@ -211,7 +211,7 @@ function quux (foo) { function quux (foo) { } -// Message: Sentences should start with an uppercase character. +// Message: Sentences must end with a period. /** * Foo. @@ -816,5 +816,7 @@ function quux () {} function quux () { } + +/** @param options {@link RequestOptions} specifying path parameters and query parameters. */ ```` diff --git a/src/rules/requireDescriptionCompleteSentence.js b/src/rules/requireDescriptionCompleteSentence.js index 7a3e71f9d..db67be6bf 100644 --- a/src/rules/requireDescriptionCompleteSentence.js +++ b/src/rules/requireDescriptionCompleteSentence.js @@ -25,7 +25,7 @@ const extractParagraphs = (text) => { const extractSentences = (text, abbreviationsRegex) => { const txt = text // Remove all {} tags. - .replaceAll(/\{[\s\S]*?\}\s*/gu, '') + .replaceAll(/(? Date: Wed, 20 Sep 2023 16:19:38 -0700 Subject: [PATCH 136/273] fix: fall back to deprecated `getSourceCode()`; fixes #1159 --- src/iterateJsdoc.js | 16 +++++++++++----- src/rules/requireJsdoc.js | 3 ++- src/rules/requireReturns.js | 3 ++- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index 7dae4e88a..3cf73489b 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -694,8 +694,10 @@ const getUtils = ( indent, ) => { const ancestors = /** @type {import('eslint').Rule.Node[]} */ (context.getAncestors()); + + // istanbul ignore next -- Fallback to deprecated method const { - sourceCode, + sourceCode = context.getSourceCode(), } = context; const utils = /** @type {Utils} */ (getBasicUtils(context, settings)); @@ -2149,8 +2151,9 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext * @returns {void} */ const callIterator = (context, node, jsdocNodes, state, lastCall) => { + // istanbul ignore next -- Fallback to deprecated method const { - sourceCode, + sourceCode = context.getSourceCode(), } = context; const { lines, @@ -2262,8 +2265,9 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext return { // @ts-expect-error ESLint accepts create (context) { + // istanbul ignore next -- Fallback to deprecated method const { - sourceCode, + sourceCode = context.getSourceCode(), } = context; settings = getSettings(context); if (!settings) { @@ -2340,8 +2344,9 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext const checkFile = (iterator, ruleConfig) => { return { create (context) { + // istanbul ignore next -- Fallback to deprecated method const { - sourceCode, + sourceCode = context.getSourceCode(), } = context; const settings = getSettings(context); if (!settings) { @@ -2459,8 +2464,9 @@ export default function iterateJsdoc (iterator, ruleConfig) { } } + // istanbul ignore next -- Fallback to deprecated method const { - sourceCode, + sourceCode = context.getSourceCode(), } = context; const { lines, diff --git a/src/rules/requireJsdoc.js b/src/rules/requireJsdoc.js index 4089cef9f..9ed84b96d 100644 --- a/src/rules/requireJsdoc.js +++ b/src/rules/requireJsdoc.js @@ -288,8 +288,9 @@ const getOptions = (context, settings) => { /** @type {import('eslint').Rule.RuleModule} */ export default { create (context) { + // istanbul ignore next -- Fallback to deprecated method const { - sourceCode, + sourceCode = context.getSourceCode(), } = context; const settings = getSettings(context); if (!settings) { diff --git a/src/rules/requireReturns.js b/src/rules/requireReturns.js index 7c2dde04b..26d04acb5 100644 --- a/src/rules/requireReturns.js +++ b/src/rules/requireReturns.js @@ -104,8 +104,9 @@ export default iterateJsdoc(({ initModuleExports: Boolean(publicOnly?.cjs ?? true), initWindow: Boolean(publicOnly?.window ?? false), }; + // istanbul ignore next -- Fallback to deprecated method const { - sourceCode, + sourceCode = context.getSourceCode(), } = context; const exported = exportParser.isUncommentedExport( /** @type {import('eslint').Rule.Node} */ (node), sourceCode, opt, settings, From 9d59826e039a862e50ae38396060c4058d6f8d66 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 8 Oct 2023 00:34:19 +0000 Subject: [PATCH 137/273] build(deps-dev): bump postcss from 8.4.27 to 8.4.31 Bumps [postcss](https://github.com/postcss/postcss) from 8.4.27 to 8.4.31. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.4.27...8.4.31) --- updated-dependencies: - dependency-name: postcss dependency-type: indirect ... Signed-off-by: dependabot[bot] --- pnpm-lock.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 152b4f8d3..b47877ba1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8640,8 +8640,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /postcss@8.4.27: - resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 @@ -10409,7 +10409,7 @@ packages: dependencies: '@types/node': 20.5.0 esbuild: 0.18.17 - postcss: 8.4.27 + postcss: 8.4.31 rollup: 3.27.2 optionalDependencies: fsevents: 2.3.2 From 081af266748024b024bcc957b61b6af33dddfcdb Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 11 Oct 2023 14:45:00 -0700 Subject: [PATCH 138/273] chore: update devDeps. (besides typescript); use non-deprecated eslint methods by preference --- package.json | 56 +- pnpm-lock.yaml | 2318 ++++++++++++++++++--------------- src/iterateJsdoc.js | 14 +- src/rules/noUndefinedTypes.js | 7 +- 4 files changed, 1341 insertions(+), 1054 deletions(-) diff --git a/package.json b/package.json index ac365f4d3..13c2eec82 100644 --- a/package.json +++ b/package.json @@ -17,54 +17,54 @@ }, "description": "JSDoc linting rules for ESLint.", "devDependencies": { - "@babel/cli": "^7.22.10", - "@babel/core": "^7.22.10", - "@babel/eslint-parser": "^7.22.10", - "@babel/node": "^7.22.10", + "@babel/cli": "^7.23.0", + "@babel/core": "^7.23.0", + "@babel/eslint-parser": "^7.22.15", + "@babel/node": "^7.22.19", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-transform-flow-strip-types": "^7.22.5", - "@babel/preset-env": "^7.22.10", - "@babel/register": "^7.22.5", + "@babel/preset-env": "^7.23.2", + "@babel/register": "^7.22.15", "@es-joy/escodegen": "^3.5.1", "@es-joy/jsdoc-eslint-parser": "^0.19.0", "@hkdobrev/run-if-changed": "^0.3.1", - "@semantic-release/commit-analyzer": "^10.0.1", - "@semantic-release/github": "^9.0.4", - "@semantic-release/npm": "^10.0.4", - "@types/chai": "^4.3.5", - "@types/debug": "^4.1.8", - "@types/eslint": "^8.44.2", - "@types/esquery": "^1.5.0", - "@types/estree": "^1.0.1", - "@types/json-schema": "^7.0.12", + "@semantic-release/commit-analyzer": "^11.0.0", + "@semantic-release/github": "^9.2.1", + "@semantic-release/npm": "^11.0.0", + "@types/chai": "^4.3.7", + "@types/debug": "^4.1.9", + "@types/eslint": "^8.44.4", + "@types/esquery": "^1.5.1", + "@types/estree": "^1.0.2", + "@types/json-schema": "^7.0.13", "@types/lodash.defaultsdeep": "^4.6.7", - "@types/mocha": "^10.0.1", - "@types/node": "^20.5.0", - "@types/semver": "^7.5.0", - "@types/spdx-expression-parse": "^3.0.2", - "@typescript-eslint/parser": "^6.4.0", + "@types/mocha": "^10.0.2", + "@types/node": "^20.8.4", + "@types/semver": "^7.5.3", + "@types/spdx-expression-parse": "^3.0.3", + "@typescript-eslint/parser": "^6.7.5", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", - "chai": "^4.3.7", + "chai": "^4.3.10", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "8.47.0", - "eslint-config-canonical": "~41.1.7", + "eslint": "8.51.0", + "eslint-config-canonical": "~41.3.0", "espree": "^9.6.1", "gitdown": "^3.1.5", - "glob": "^10.3.3", + "glob": "^10.3.10", "husky": "^8.0.3", "jsdoc-type-pratt-parser": "^4.0.0", "json-schema": "^0.4.0", - "lint-staged": "^14.0.0", + "lint-staged": "^14.0.1", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.2.0", "nyc": "^15.1.0", "open-editor": "^3.0.0", - "rimraf": "^5.0.1", - "semantic-release": "^21.0.7", - "typescript": "^5.1.6" + "rimraf": "^5.0.5", + "semantic-release": "^22.0.5", + "typescript": "5.1.6" }, "engines": { "node": ">=16" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b47877ba1..15c433163 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,29 +35,29 @@ dependencies: devDependencies: '@babel/cli': - specifier: ^7.22.10 - version: 7.22.10(@babel/core@7.22.10) + specifier: ^7.23.0 + version: 7.23.0(@babel/core@7.23.0) '@babel/core': - specifier: ^7.22.10 - version: 7.22.10 + specifier: ^7.23.0 + version: 7.23.0 '@babel/eslint-parser': - specifier: ^7.22.10 - version: 7.22.10(@babel/core@7.22.10)(eslint@8.47.0) + specifier: ^7.22.15 + version: 7.22.15(@babel/core@7.23.0)(eslint@8.51.0) '@babel/node': - specifier: ^7.22.10 - version: 7.22.10(@babel/core@7.22.10) + specifier: ^7.22.19 + version: 7.22.19(@babel/core@7.23.0) '@babel/plugin-syntax-class-properties': specifier: ^7.12.13 - version: 7.12.13(@babel/core@7.22.10) + version: 7.12.13(@babel/core@7.23.0) '@babel/plugin-transform-flow-strip-types': specifier: ^7.22.5 - version: 7.22.5(@babel/core@7.22.10) + version: 7.22.5(@babel/core@7.23.0) '@babel/preset-env': - specifier: ^7.22.10 - version: 7.22.10(@babel/core@7.22.10) + specifier: ^7.23.2 + version: 7.23.2(@babel/core@7.23.0) '@babel/register': - specifier: ^7.22.5 - version: 7.22.5(@babel/core@7.22.10) + specifier: ^7.22.15 + version: 7.22.15(@babel/core@7.23.0) '@es-joy/escodegen': specifier: ^3.5.1 version: 3.5.1 @@ -68,50 +68,50 @@ devDependencies: specifier: ^0.3.1 version: 0.3.1 '@semantic-release/commit-analyzer': - specifier: ^10.0.1 - version: 10.0.1(semantic-release@21.0.7) + specifier: ^11.0.0 + version: 11.0.0(semantic-release@22.0.5) '@semantic-release/github': - specifier: ^9.0.4 - version: 9.0.4(semantic-release@21.0.7) + specifier: ^9.2.1 + version: 9.2.1(semantic-release@22.0.5) '@semantic-release/npm': - specifier: ^10.0.4 - version: 10.0.4(semantic-release@21.0.7) + specifier: ^11.0.0 + version: 11.0.0(semantic-release@22.0.5) '@types/chai': - specifier: ^4.3.5 - version: 4.3.5 + specifier: ^4.3.7 + version: 4.3.7 '@types/debug': - specifier: ^4.1.8 - version: 4.1.8 + specifier: ^4.1.9 + version: 4.1.9 '@types/eslint': - specifier: ^8.44.2 - version: 8.44.2 + specifier: ^8.44.4 + version: 8.44.4 '@types/esquery': - specifier: ^1.5.0 - version: 1.5.0 + specifier: ^1.5.1 + version: 1.5.1 '@types/estree': - specifier: ^1.0.1 - version: 1.0.1 + specifier: ^1.0.2 + version: 1.0.2 '@types/json-schema': - specifier: ^7.0.12 - version: 7.0.12 + specifier: ^7.0.13 + version: 7.0.13 '@types/lodash.defaultsdeep': specifier: ^4.6.7 version: 4.6.7 '@types/mocha': - specifier: ^10.0.1 - version: 10.0.1 + specifier: ^10.0.2 + version: 10.0.2 '@types/node': - specifier: ^20.5.0 - version: 20.5.0 + specifier: ^20.8.4 + version: 20.8.4 '@types/semver': - specifier: ^7.5.0 - version: 7.5.0 + specifier: ^7.5.3 + version: 7.5.3 '@types/spdx-expression-parse': - specifier: ^3.0.2 - version: 3.0.2 + specifier: ^3.0.3 + version: 3.0.3 '@typescript-eslint/parser': - specifier: ^6.4.0 - version: 6.4.0(eslint@8.47.0)(typescript@5.1.6) + specifier: ^6.7.5 + version: 6.7.5(eslint@8.51.0)(typescript@5.1.6) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -122,8 +122,8 @@ devDependencies: specifier: ^6.3.0 version: 6.3.0 chai: - specifier: ^4.3.7 - version: 4.3.7 + specifier: ^4.3.10 + version: 4.3.10 cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -131,11 +131,11 @@ devDependencies: specifier: ^5.0.1 version: 5.0.1 eslint: - specifier: 8.47.0 - version: 8.47.0 + specifier: 8.51.0 + version: 8.51.0 eslint-config-canonical: - specifier: ~41.1.7 - version: 41.1.7(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/node@20.5.0)(eslint@8.47.0)(graphql@16.7.1)(typescript@5.1.6)(vitest@0.34.1) + specifier: ~41.3.0 + version: 41.3.0(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.4)(@types/node@20.8.4)(eslint@8.51.0)(graphql@16.7.1)(typescript@5.1.6)(vitest@0.34.1) espree: specifier: ^9.6.1 version: 9.6.1 @@ -143,8 +143,8 @@ devDependencies: specifier: ^3.1.5 version: 3.1.5 glob: - specifier: ^10.3.3 - version: 10.3.3 + specifier: ^10.3.10 + version: 10.3.10 husky: specifier: ^8.0.3 version: 8.0.3 @@ -155,8 +155,8 @@ devDependencies: specifier: ^0.4.0 version: 0.4.0 lint-staged: - specifier: ^14.0.0 - version: 14.0.0 + specifier: ^14.0.1 + version: 14.0.1 lodash.defaultsdeep: specifier: ^4.6.1 version: 4.6.1 @@ -170,13 +170,13 @@ devDependencies: specifier: ^3.0.0 version: 3.0.0 rimraf: - specifier: ^5.0.1 - version: 5.0.1 + specifier: ^5.0.5 + version: 5.0.5 semantic-release: - specifier: ^21.0.7 - version: 21.0.7 + specifier: ^22.0.5 + version: 22.0.5 typescript: - specifier: ^5.1.6 + specifier: 5.1.6 version: 5.1.6 packages: @@ -203,17 +203,17 @@ packages: - encoding dev: true - /@babel/cli@7.22.10(@babel/core@7.22.10): - resolution: {integrity: sha512-rM9ZMmaII630zGvtMtQ3P4GyHs28CHLYE9apLG7L8TgaSqcfoIGrlLSLsh4Q8kDTdZQQEXZm1M0nQtOvU/2heg==} + /@babel/cli@7.23.0(@babel/core@7.23.0): + resolution: {integrity: sha512-17E1oSkGk2IwNILM4jtfAvgjt+ohmpfBky8aLerUfYZhiPNg7ca+CRCxZn8QDxwNhV/upsc2VHBCqGFIR+iBfA==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@jridgewell/trace-mapping': 0.3.18 commander: 4.1.1 - convert-source-map: 1.9.0 + convert-source-map: 2.0.0 fs-readdir-recursive: 1.1.0 glob: 7.2.3 make-dir: 2.1.0 @@ -231,11 +231,12 @@ packages: chalk: 2.4.2 dev: true - /@babel/code-frame@7.22.5: - resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} + /@babel/code-frame@7.22.13: + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.22.5 + '@babel/highlight': 7.22.20 + chalk: 2.4.2 dev: true /@babel/compat-data@7.22.9: @@ -243,21 +244,26 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.22.10: - resolution: {integrity: sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==} + /@babel/compat-data@7.23.2: + resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.23.0: + resolution: {integrity: sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.10 - '@babel/generator': 7.22.10 - '@babel/helper-compilation-targets': 7.22.10 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10) - '@babel/helpers': 7.22.10 - '@babel/parser': 7.22.10 - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.10 - '@babel/types': 7.22.10 - convert-source-map: 1.9.0 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0) + '@babel/helpers': 7.23.2 + '@babel/parser': 7.23.0 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 + convert-source-map: 2.0.0 debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 @@ -266,29 +272,29 @@ packages: - supports-color dev: true - /@babel/eslint-parser@7.22.10(@babel/core@7.22.10)(eslint@8.47.0): - resolution: {integrity: sha512-0J8DNPRXQRLeR9rPaUMM3fA+RbixjnVLe/MRMYCkp3hzgsSuxCHQ8NN8xQG1wIHKJ4a1DTROTvFJdW+B5/eOsg==} + /@babel/eslint-parser@7.22.15(@babel/core@7.23.0)(eslint@8.51.0): + resolution: {integrity: sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.47.0 + eslint: 8.51.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true - /@babel/eslint-plugin@7.22.5(@babel/eslint-parser@7.22.10)(eslint@8.47.0): - resolution: {integrity: sha512-lDXW06rf1sXywWWw+UdS/iYxRjrqhH4AXdPeKE4+fEgEoGBXcdIDQ+uCJOUcvCb0jCTvfwHOSXkwnfd24EAkLQ==} + /@babel/eslint-plugin@7.22.10(@babel/eslint-parser@7.22.15)(eslint@8.51.0): + resolution: {integrity: sha512-SRZcvo3fnO5h79B9DZSV6LG2vHH7OWsSNp1huFLHsXKyytRG413byQk9zxW1VcPOhnzfx2VIUz+8aGbiE7fOkA==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: - '@babel/eslint-parser': '>=7.11.0' - eslint: '>=7.5.0' + '@babel/eslint-parser': ^7.11.0 + eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/eslint-parser': 7.22.10(@babel/core@7.22.10)(eslint@8.47.0) - eslint: 8.47.0 + '@babel/eslint-parser': 7.22.15(@babel/core@7.23.0)(eslint@8.51.0) + eslint: 8.51.0 eslint-rule-composer: 0.3.0 dev: true @@ -302,11 +308,11 @@ packages: jsesc: 2.5.2 dev: true - /@babel/generator@7.22.9: - resolution: {integrity: sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==} + /@babel/generator@7.23.0: + resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.23.0 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.18 jsesc: 2.5.2 @@ -316,64 +322,82 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.10 + '@babel/types': 7.23.0 dev: true /@babel/helper-builder-binary-assignment-operator-visitor@7.22.5: resolution: {integrity: sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.10 + '@babel/types': 7.23.0 dev: true - /@babel/helper-compilation-targets@7.22.10: - resolution: {integrity: sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==} + /@babel/helper-compilation-targets@7.22.15: + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} dependencies: '@babel/compat-data': 7.22.9 - '@babel/helper-validator-option': 7.22.5 + '@babel/helper-validator-option': 7.22.15 browserslist: 4.21.10 lru-cache: 5.1.1 semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.22.9(@babel/core@7.22.10): + /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.0): + resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.23.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.22.9(@babel/core@7.23.0): resolution: {integrity: sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-member-expression-to-functions': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.10) + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.23.0) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.22.10): + /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.23.0): resolution: {integrity: sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.4.2(@babel/core@7.22.10): - resolution: {integrity: sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==} + /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.0): + resolution: {integrity: sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.22.10 - '@babel/helper-compilation-targets': 7.22.10 + '@babel/core': 7.23.0 + '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4(supports-color@8.1.1) lodash.debounce: 4.0.8 @@ -382,6 +406,11 @@ packages: - supports-color dev: true + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-environment-visitor@7.22.5: resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} engines: {node: '>=6.9.0'} @@ -392,37 +421,59 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.5 - '@babel/types': 7.22.10 + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.0 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.10 + '@babel/types': 7.23.0 dev: true /@babel/helper-member-expression-to-functions@7.22.5: resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.10 + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 dev: true /@babel/helper-module-imports@7.22.5: resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.10 + '@babel/types': 7.23.0 dev: true - /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.10): + /@babel/helper-module-transforms@7.22.9(@babel/core@7.23.0): resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-module-imports': 7.22.5 '@babel/helper-simple-access': 7.22.5 @@ -430,11 +481,25 @@ packages: '@babel/helper-validator-identifier': 7.22.5 dev: true + /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.0): + resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + /@babel/helper-optimise-call-expression@7.22.5: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.10 + '@babel/types': 7.23.0 dev: true /@babel/helper-plugin-utils@7.22.5: @@ -442,25 +507,37 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.9(@babel/core@7.22.10): + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.0): + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.22.20 + dev: true + + /@babel/helper-remap-async-to-generator@7.22.9(@babel/core@7.23.0): resolution: {integrity: sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-wrap-function': 7.22.9 dev: true - /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.10): + /@babel/helper-replace-supers@7.22.9(@babel/core@7.23.0): resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-member-expression-to-functions': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 @@ -470,21 +547,21 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.10 + '@babel/types': 7.23.0 dev: true /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.10 + '@babel/types': 7.23.0 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.10 + '@babel/types': 7.23.0 dev: true /@babel/helper-string-parser@7.22.5: @@ -492,32 +569,46 @@ packages: engines: {node: '>=6.9.0'} dev: true + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-validator-identifier@7.22.5: resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-option@7.22.5: - resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} + /@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} engines: {node: '>=6.9.0'} dev: true + /@babel/helper-wrap-function@7.22.20: + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.22.5 + '@babel/template': 7.22.15 + '@babel/types': 7.23.0 + dev: true + /@babel/helper-wrap-function@7.22.9: resolution: {integrity: sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-function-name': 7.22.5 '@babel/template': 7.22.5 - '@babel/types': 7.22.10 + '@babel/types': 7.23.0 dev: true - /@babel/helpers@7.22.10: - resolution: {integrity: sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==} + /@babel/helpers@7.23.2: + resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.10 - '@babel/types': 7.22.10 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 transitivePeerDependencies: - supports-color dev: true @@ -531,24 +622,24 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/highlight@7.22.5: - resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} + /@babel/highlight@7.22.20: + resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 dev: true - /@babel/node@7.22.10(@babel/core@7.22.10): - resolution: {integrity: sha512-FpSgdjIPabpEetDxtKYAcXCs0qRh12S2D40rhpRoo0w5h7/7Tu2ZroaX99cbKFNDODiSs484sZ1q0kutJbZ2iQ==} + /@babel/node@7.22.19(@babel/core@7.23.0): + resolution: {integrity: sha512-VsKSO9aEHdO16NdtqkJfrXZ9Sxlna1BVnBbToWr1KGdI3cyIk6KqOoa8mWvpK280lJDOwJqxvnl994KmLhq1Yw==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 - '@babel/register': 7.22.5(@babel/core@7.22.10) + '@babel/core': 7.23.0 + '@babel/register': 7.22.15(@babel/core@7.23.0) commander: 4.1.1 core-js: 3.32.0 node-environment-flags: 1.0.6 @@ -561,7 +652,7 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.22.10 + '@babel/types': 7.23.0 dev: true /@babel/parser@7.22.7: @@ -569,895 +660,903 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.22.10): - resolution: {integrity: sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==} + /@babel/parser@7.23.0: + resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.15(@babel/core@7.23.0): + resolution: {integrity: sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.22.10): - resolution: {integrity: sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==} + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.15(@babel/core@7.23.0): + resolution: {integrity: sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.22.10(@babel/core@7.22.10) + '@babel/plugin-transform-optional-chaining': 7.23.0(@babel/core@7.23.0) dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.10): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.0): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.10): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.0): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.10): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.0): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.10): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.0): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.10): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.0): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.10): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.0): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.22.10): + /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.22.10): + /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.22.10): + /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.10): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.0): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.10): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.0): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.10): + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.10): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.0): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.10): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.0): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.10): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.0): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.10): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.0): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.10): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.0): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.10): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.0): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.10): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.0): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.10): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.0): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.22.10): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.0): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.10 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.10) + '@babel/core': 7.23.0 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.0) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-generator-functions@7.22.10(@babel/core@7.22.10): - resolution: {integrity: sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g==} + /@babel/plugin-transform-async-generator-functions@7.23.2(@babel/core@7.23.0): + resolution: {integrity: sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 - '@babel/helper-environment-visitor': 7.22.5 + '@babel/core': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.10) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.10) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.0) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.0) dev: true - /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-module-imports': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.10) + '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.23.0) dev: true - /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping@7.22.10(@babel/core@7.22.10): - resolution: {integrity: sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==} + /@babel/plugin-transform-block-scoping@7.23.0(@babel/core@7.23.0): + resolution: {integrity: sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.10) + '@babel/core': 7.23.0 + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.23.0) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-static-block@7.22.5(@babel/core@7.22.10): - resolution: {integrity: sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==} + /@babel/plugin-transform-class-static-block@7.22.11(@babel/core@7.23.0): + resolution: {integrity: sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.22.10 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.10) + '@babel/core': 7.23.0 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.0) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.10) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.0) dev: true - /@babel/plugin-transform-classes@7.22.6(@babel/core@7.22.10): - resolution: {integrity: sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==} + /@babel/plugin-transform-classes@7.22.15(@babel/core@7.23.0): + resolution: {integrity: sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.22.10 + '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.10) + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.23.0) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.5 dev: true - /@babel/plugin-transform-destructuring@7.22.10(@babel/core@7.22.10): - resolution: {integrity: sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==} + /@babel/plugin-transform-destructuring@7.23.0(@babel/core@7.23.0): + resolution: {integrity: sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.10) + '@babel/core': 7.23.0 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.0) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dynamic-import@7.22.5(@babel/core@7.22.10): - resolution: {integrity: sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==} + /@babel/plugin-transform-dynamic-import@7.22.11(@babel/core@7.23.0): + resolution: {integrity: sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.0) dev: true - /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-export-namespace-from@7.22.5(@babel/core@7.22.10): - resolution: {integrity: sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==} + /@babel/plugin-transform-export-namespace-from@7.22.11(@babel/core@7.23.0): + resolution: {integrity: sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.0) dev: true - /@babel/plugin-transform-flow-strip-types@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-flow-strip-types@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.23.0) dev: true - /@babel/plugin-transform-for-of@7.22.5(@babel/core@7.22.10): - resolution: {integrity: sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==} + /@babel/plugin-transform-for-of@7.22.15(@babel/core@7.23.0): + resolution: {integrity: sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 - '@babel/helper-compilation-targets': 7.22.10 + '@babel/core': 7.23.0 + '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-function-name': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-json-strings@7.22.5(@babel/core@7.22.10): - resolution: {integrity: sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==} + /@babel/plugin-transform-json-strings@7.22.11(@babel/core@7.23.0): + resolution: {integrity: sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.0) dev: true - /@babel/plugin-transform-literals@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-literals@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.22.5(@babel/core@7.22.10): - resolution: {integrity: sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==} + /@babel/plugin-transform-logical-assignment-operators@7.22.11(@babel/core@7.23.0): + resolution: {integrity: sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.10) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.0) dev: true - /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.22.10): - resolution: {integrity: sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==} + /@babel/plugin-transform-modules-amd@7.23.0(@babel/core@7.23.0): + resolution: {integrity: sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10) + '@babel/core': 7.23.0 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.22.10): - resolution: {integrity: sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==} + /@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.0): + resolution: {integrity: sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10) + '@babel/core': 7.23.0 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.22.5(@babel/core@7.22.10): - resolution: {integrity: sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==} + /@babel/plugin-transform-modules-systemjs@7.23.0(@babel/core@7.23.0): + resolution: {integrity: sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10) + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0) '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-identifier': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10) + '@babel/core': 7.23.0 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.23.0) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.10 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.10) + '@babel/core': 7.23.0 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.0) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.22.5(@babel/core@7.22.10): - resolution: {integrity: sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==} + /@babel/plugin-transform-nullish-coalescing-operator@7.22.11(@babel/core@7.23.0): + resolution: {integrity: sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.0) dev: true - /@babel/plugin-transform-numeric-separator@7.22.5(@babel/core@7.22.10): - resolution: {integrity: sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==} + /@babel/plugin-transform-numeric-separator@7.22.11(@babel/core@7.23.0): + resolution: {integrity: sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.10) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.0) dev: true - /@babel/plugin-transform-object-rest-spread@7.22.5(@babel/core@7.22.10): - resolution: {integrity: sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==} + /@babel/plugin-transform-object-rest-spread@7.22.15(@babel/core@7.23.0): + resolution: {integrity: sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.10 - '@babel/helper-compilation-targets': 7.22.10 + '@babel/compat-data': 7.23.2 + '@babel/core': 7.23.0 + '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.10) - '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.0) dev: true - /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.10) + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.23.0) dev: true - /@babel/plugin-transform-optional-catch-binding@7.22.5(@babel/core@7.22.10): - resolution: {integrity: sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==} + /@babel/plugin-transform-optional-catch-binding@7.22.11(@babel/core@7.23.0): + resolution: {integrity: sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.0) dev: true - /@babel/plugin-transform-optional-chaining@7.22.10(@babel/core@7.22.10): - resolution: {integrity: sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g==} + /@babel/plugin-transform-optional-chaining@7.23.0(@babel/core@7.23.0): + resolution: {integrity: sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.0) dev: true - /@babel/plugin-transform-parameters@7.22.5(@babel/core@7.22.10): - resolution: {integrity: sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==} + /@babel/plugin-transform-parameters@7.22.15(@babel/core@7.23.0): + resolution: {integrity: sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.10) + '@babel/core': 7.23.0 + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.23.0) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-property-in-object@7.22.5(@babel/core@7.22.10): - resolution: {integrity: sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==} + /@babel/plugin-transform-private-property-in-object@7.22.11(@babel/core@7.23.0): + resolution: {integrity: sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.10) + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.0) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.10) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.0) dev: true - /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.22.5 + '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.10) - '@babel/types': 7.22.10 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.0) + '@babel/types': 7.23.0 dev: true - /@babel/plugin-transform-regenerator@7.22.10(@babel/core@7.22.10): + /@babel/plugin-transform-regenerator@7.22.10(@babel/core@7.23.0): resolution: {integrity: sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-spread@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-escapes@7.22.10(@babel/core@7.22.10): + /@babel/plugin-transform-unicode-escapes@7.22.10(@babel/core@7.23.0): resolution: {integrity: sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.10) + '@babel/core': 7.23.0 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.0) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.10) + '@babel/core': 7.23.0 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.0) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.22.10): + /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.10 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.10) + '@babel/core': 7.23.0 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.0) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.22.10(@babel/core@7.22.10): - resolution: {integrity: sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==} + /@babel/preset-env@7.23.2(@babel/core@7.23.0): + resolution: {integrity: sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.10 - '@babel/helper-compilation-targets': 7.22.10 + '@babel/compat-data': 7.23.2 + '@babel/core': 7.23.0 + '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.10) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.10) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.10) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.10) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.10) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.10) - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.10) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.10) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.10) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.10) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.10) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.10) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.10) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.10) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.10) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.10) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.22.10) - '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-async-generator-functions': 7.22.10(@babel/core@7.22.10) - '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-block-scoping': 7.22.10(@babel/core@7.22.10) - '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-class-static-block': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-classes': 7.22.6(@babel/core@7.22.10) - '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-destructuring': 7.22.10(@babel/core@7.22.10) - '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-dynamic-import': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-export-namespace-from': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-for-of': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-json-strings': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-logical-assignment-operators': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-modules-amd': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-modules-systemjs': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-numeric-separator': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-object-rest-spread': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-optional-catch-binding': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-optional-chaining': 7.22.10(@babel/core@7.22.10) - '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-private-property-in-object': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-regenerator': 7.22.10(@babel/core@7.22.10) - '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-unicode-escapes': 7.22.10(@babel/core@7.22.10) - '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.22.10) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.22.10) - '@babel/types': 7.22.10 - babel-plugin-polyfill-corejs2: 0.4.5(@babel/core@7.22.10) - babel-plugin-polyfill-corejs3: 0.8.3(@babel/core@7.22.10) - babel-plugin-polyfill-regenerator: 0.5.2(@babel/core@7.22.10) + '@babel/helper-validator-option': 7.22.15 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.15(@babel/core@7.23.0) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.15(@babel/core@7.23.0) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.0) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.0) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.0) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.0) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.0) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.0) + '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-async-generator-functions': 7.23.2(@babel/core@7.23.0) + '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-block-scoping': 7.23.0(@babel/core@7.23.0) + '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-class-static-block': 7.22.11(@babel/core@7.23.0) + '@babel/plugin-transform-classes': 7.22.15(@babel/core@7.23.0) + '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-destructuring': 7.23.0(@babel/core@7.23.0) + '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-dynamic-import': 7.22.11(@babel/core@7.23.0) + '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-export-namespace-from': 7.22.11(@babel/core@7.23.0) + '@babel/plugin-transform-for-of': 7.22.15(@babel/core@7.23.0) + '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-json-strings': 7.22.11(@babel/core@7.23.0) + '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-logical-assignment-operators': 7.22.11(@babel/core@7.23.0) + '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-modules-amd': 7.23.0(@babel/core@7.23.0) + '@babel/plugin-transform-modules-commonjs': 7.23.0(@babel/core@7.23.0) + '@babel/plugin-transform-modules-systemjs': 7.23.0(@babel/core@7.23.0) + '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.22.11(@babel/core@7.23.0) + '@babel/plugin-transform-numeric-separator': 7.22.11(@babel/core@7.23.0) + '@babel/plugin-transform-object-rest-spread': 7.22.15(@babel/core@7.23.0) + '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-optional-catch-binding': 7.22.11(@babel/core@7.23.0) + '@babel/plugin-transform-optional-chaining': 7.23.0(@babel/core@7.23.0) + '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.0) + '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-private-property-in-object': 7.22.11(@babel/core@7.23.0) + '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-regenerator': 7.22.10(@babel/core@7.23.0) + '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-unicode-escapes': 7.22.10(@babel/core@7.23.0) + '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.23.0) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.0) + '@babel/types': 7.23.0 + babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.0) + babel-plugin-polyfill-corejs3: 0.8.5(@babel/core@7.23.0) + babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.0) core-js-compat: 3.32.0 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.22.10): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.0): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.22.10 + '@babel/types': 7.23.0 esutils: 2.0.3 dev: true - /@babel/register@7.22.5(@babel/core@7.22.10): - resolution: {integrity: sha512-vV6pm/4CijSQ8Y47RH5SopXzursN35RQINfGJkmOlcpAtGuf94miFvIPhCKGQN7WGIcsgG1BHEX2KVdTYwTwUQ==} + /@babel/register@7.22.15(@babel/core@7.23.0): + resolution: {integrity: sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -1484,13 +1583,22 @@ packages: regenerator-runtime: 0.13.11 dev: true + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + dev: true + /@babel/template@7.22.5: resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.10 '@babel/parser': 7.22.10 - '@babel/types': 7.22.10 + '@babel/types': 7.23.0 dev: true /@babel/traverse@7.22.10: @@ -1511,18 +1619,18 @@ packages: - supports-color dev: true - /@babel/traverse@7.22.8: - resolution: {integrity: sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==} + /@babel/traverse@7.23.2: + resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.9 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.22.7 - '@babel/types': 7.22.5 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: @@ -1538,12 +1646,12 @@ packages: to-fast-properties: 2.0.0 dev: true - /@babel/types@7.22.5: - resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} + /@babel/types@7.23.0: + resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.22.5 - '@babel/helper-validator-identifier': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 dev: true @@ -1576,11 +1684,11 @@ packages: resolution: {integrity: sha512-PvggHK8390M0S/KyS2hUriNu83TLpOv2fjtuKdqE7+SeIKh7o6BgbCVjh0nxbMKVWToG2rGAaMGbOQIhxcq3ew==} engines: {node: '>=12.0.0'} dependencies: - '@babel/core': 7.22.10 - '@babel/eslint-parser': 7.22.10(@babel/core@7.22.10)(eslint@8.47.0) + '@babel/core': 7.23.0 + '@babel/eslint-parser': 7.22.15(@babel/core@7.23.0)(eslint@8.51.0) '@es-joy/jsdoccomment': 0.38.0 - '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.1.6) - eslint: 8.47.0 + '@typescript-eslint/parser': 5.62.0(eslint@8.51.0)(typescript@5.1.6) + eslint: 8.51.0 esquery: 1.5.0 typescript: 5.1.6 transitivePeerDependencies: @@ -1803,13 +1911,13 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.47.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.51.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.47.0 + eslint: 8.51.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1835,8 +1943,8 @@ packages: - supports-color dev: true - /@eslint/js@8.47.0: - resolution: {integrity: sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og==} + /@eslint/js@8.51.0: + resolution: {integrity: sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -1844,21 +1952,21 @@ packages: resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==} dev: true - /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.22.10)(@types/node@20.5.0)(graphql@16.7.1): + /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.0)(@types/node@20.8.4)(graphql@16.7.1): resolution: {integrity: sha512-RbwVlz1gcYG62sECR1u0XqMh8w5e5XMCCZoMvPQ3nJzEBCTfXLGX727GBoRmSvY1x4gJmqNZ1lsOX7lZY14RIw==} engines: {node: '>=12'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@babel/code-frame': 7.22.5 - '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.22.10)(graphql@16.7.1) - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.22.10)(graphql@16.7.1) + '@babel/code-frame': 7.22.10 + '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.23.0)(graphql@16.7.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.0)(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) chalk: 4.1.2 debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.3.1 graphql: 16.7.1 - graphql-config: 4.5.0(@types/node@20.5.0)(graphql@16.7.1) + graphql-config: 4.5.0(@types/node@20.8.4)(graphql@16.7.1) graphql-depth-limit: 1.1.0(graphql@16.7.1) lodash.lowercase: 4.3.0 tslib: 2.6.1 @@ -1884,12 +1992,12 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.22.10)(graphql@16.7.1): + /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.23.0)(graphql@16.7.1): resolution: {integrity: sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.22.10)(graphql@16.7.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.0)(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) globby: 11.1.0 graphql: 16.7.1 @@ -1933,7 +2041,7 @@ packages: - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.10(@types/node@20.5.0)(graphql@16.7.1): + /@graphql-tools/executor-http@0.1.10(@types/node@20.8.4)(graphql@16.7.1): resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1944,7 +2052,7 @@ packages: dset: 3.1.2 extract-files: 11.0.0 graphql: 16.7.1 - meros: 1.3.0(@types/node@20.5.0) + meros: 1.3.0(@types/node@20.8.4) tslib: 2.6.1 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -1993,15 +2101,15 @@ packages: unixify: 1.0.0 dev: true - /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.22.10)(graphql@16.7.1): + /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.23.0)(graphql@16.7.1): resolution: {integrity: sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@babel/parser': 7.22.7 - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.10) - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 + '@babel/parser': 7.22.10 + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.0) + '@babel/traverse': 7.22.10 + '@babel/types': 7.22.10 '@graphql-tools/utils': 9.2.1(graphql@16.7.1) graphql: 16.7.1 tslib: 2.6.1 @@ -2067,7 +2175,7 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.5.0)(graphql@16.7.1): + /@graphql-tools/url-loader@7.17.18(@types/node@20.8.4)(graphql@16.7.1): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -2075,7 +2183,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 9.0.35(graphql@16.7.1) '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.7.1) - '@graphql-tools/executor-http': 0.1.10(@types/node@20.5.0)(graphql@16.7.1) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.8.4)(graphql@16.7.1) '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) '@graphql-tools/wrap': 9.4.2(graphql@16.7.1) @@ -2137,8 +2245,8 @@ packages: - supports-color dev: true - /@humanwhocodes/config-array@0.11.10: - resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} + /@humanwhocodes/config-array@0.11.11: + resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -2312,14 +2420,18 @@ packages: resolution: {integrity: sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==} dev: true - /@octokit/plugin-paginate-rest@8.0.0(@octokit/core@5.0.0): - resolution: {integrity: sha512-2xZ+baZWUg+qudVXnnvXz7qfrTmDeYPCzangBVq/1gXxii/OiS//4shJp9dnCCvj1x+JAm9ji1Egwm1BA47lPQ==} + /@octokit/openapi-types@19.0.0: + resolution: {integrity: sha512-PclQ6JGMTE9iUStpzMkwLCISFn/wDeRjkZFIKALpvJQNBGwDoYYi2fFvuHwssoQ1rXI5mfh6jgTgWuddeUzfWw==} + dev: true + + /@octokit/plugin-paginate-rest@9.0.0(@octokit/core@5.0.0): + resolution: {integrity: sha512-oIJzCpttmBTlEhBmRvb+b9rlnGpmFgDtZ0bB6nq39qIod6A5DP+7RkVLMOixIgRCYSHDTeayWqmiJ2SZ6xgfdw==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=5' dependencies: '@octokit/core': 5.0.0 - '@octokit/types': 11.1.0 + '@octokit/types': 12.0.0 dev: true /@octokit/plugin-retry@6.0.0(@octokit/core@5.0.0): @@ -2334,14 +2446,14 @@ packages: bottleneck: 2.19.5 dev: true - /@octokit/plugin-throttling@7.0.0(@octokit/core@5.0.0): - resolution: {integrity: sha512-KL2k/d0uANc8XqP5S64YcNFCudR3F5AaKO39XWdUtlJIjT9Ni79ekWJ6Kj5xvAw87udkOMEPcVf9xEge2+ahew==} + /@octokit/plugin-throttling@8.0.0(@octokit/core@5.0.0): + resolution: {integrity: sha512-OkMbHYUidj81q92YRkPzWmwXkEtsI3KOcSkNm763aqUOh9IEplyX05XjKAdZFANAvaYH0Q4JBZwu4h2VnPVXZA==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': ^5.0.0 dependencies: '@octokit/core': 5.0.0 - '@octokit/types': 11.1.0 + '@octokit/types': 12.0.0 bottleneck: 2.19.5 dev: true @@ -2371,6 +2483,12 @@ packages: '@octokit/openapi-types': 18.0.0 dev: true + /@octokit/types@12.0.0: + resolution: {integrity: sha512-EzD434aHTFifGudYAygnFlS1Tl6KhbTynEWELQXIbTY8Msvb5nEqTZIm7sbPEt4mQYLZwu3zPKVdeIrw0g7ovg==} + dependencies: + '@octokit/openapi-types': 19.0.0 + dev: true + /@peculiar/asn1-schema@2.3.6: resolution: {integrity: sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA==} dependencies: @@ -2445,20 +2563,20 @@ packages: resolution: {integrity: sha512-V+MvGwaHH03hYhY+k6Ef/xKd6RYlc4q8WBx+2ANmipHJcKuktNcI/NgEsJgdSUF6Lw32njT6OnrRsKYCdgHjYw==} dev: true - /@semantic-release/commit-analyzer@10.0.1(semantic-release@21.0.7): - resolution: {integrity: sha512-9ejHzTAijYs9z246sY/dKBatmOPcd0GQ7lH4MgLCkv1q4GCiDZRkjHJkaQZXZVaK7mJybS+sH3Ng6G8i3pYMGQ==} - engines: {node: '>=18'} + /@semantic-release/commit-analyzer@11.0.0(semantic-release@22.0.5): + resolution: {integrity: sha512-uEXyf4Z0AWJuxI9TbSQP5kkIYqus1/E1NcmE7pIv6d6/m/5EJcNWAGR4FOo34vrV26FhEaRVkxFfYzp/M7BKIg==} + engines: {node: ^18.17 || >=20.6.1} peerDependencies: semantic-release: '>=20.1.0' dependencies: - conventional-changelog-angular: 6.0.0 - conventional-commits-filter: 3.0.0 - conventional-commits-parser: 4.0.0 + conventional-changelog-angular: 7.0.0 + conventional-commits-filter: 4.0.0 + conventional-commits-parser: 5.0.0 debug: 4.3.4(supports-color@8.1.1) import-from: 4.0.0 lodash-es: 4.17.21 micromatch: 4.0.5 - semantic-release: 21.0.7 + semantic-release: 22.0.5 transitivePeerDependencies: - supports-color dev: true @@ -2468,18 +2586,18 @@ packages: engines: {node: '>=18'} dev: true - /@semantic-release/github@9.0.4(semantic-release@21.0.7): - resolution: {integrity: sha512-kQCGFAsBErvCR6hzNuzu63cj4erQN2krm9zQlg8vl4j5X0mL0d/Ras0wmL5Gkr1TuSS2lweME7M4J5zvtDDDSA==} + /@semantic-release/github@9.2.1(semantic-release@22.0.5): + resolution: {integrity: sha512-fEn9uOe6jwWR6ro2Wh6YNBCBuZ5lRi8Myz+1j3KDTSt8OuUGlpVM4lFac/0bDrql2NOKrIEAMGCfWb9WMIdzIg==} engines: {node: '>=18'} peerDependencies: semantic-release: '>=20.1.0' dependencies: '@octokit/core': 5.0.0 - '@octokit/plugin-paginate-rest': 8.0.0(@octokit/core@5.0.0) + '@octokit/plugin-paginate-rest': 9.0.0(@octokit/core@5.0.0) '@octokit/plugin-retry': 6.0.0(@octokit/core@5.0.0) - '@octokit/plugin-throttling': 7.0.0(@octokit/core@5.0.0) + '@octokit/plugin-throttling': 8.0.0(@octokit/core@5.0.0) '@semantic-release/error': 4.0.0 - aggregate-error: 4.0.1 + aggregate-error: 5.0.0 debug: 4.3.4(supports-color@8.1.1) dir-glob: 3.0.1 globby: 13.2.2 @@ -2489,51 +2607,51 @@ packages: lodash-es: 4.17.21 mime: 3.0.0 p-filter: 3.0.0 - semantic-release: 21.0.7 + semantic-release: 22.0.5 url-join: 5.0.0 transitivePeerDependencies: - supports-color dev: true - /@semantic-release/npm@10.0.4(semantic-release@21.0.7): - resolution: {integrity: sha512-6R3timIQ7VoL2QWRkc9DG8v74RQtRp7UOe/2KbNaqwJ815qOibAv65bH3RtTEhs4axEaHoZf7HDgFs5opaZ9Jw==} - engines: {node: '>=18'} + /@semantic-release/npm@11.0.0(semantic-release@22.0.5): + resolution: {integrity: sha512-ozNCiPUp14Xp2rgeY7j96yFTEhDncLSWOJr0IAUr888+ax6fH5xgYkNVv08vpkV8C5GIXBgnGd9coRiOCD6oqQ==} + engines: {node: ^18.17 || >=20} peerDependencies: semantic-release: '>=20.1.0' dependencies: '@semantic-release/error': 4.0.0 - aggregate-error: 4.0.1 - execa: 7.2.0 + aggregate-error: 5.0.0 + execa: 8.0.1 fs-extra: 11.1.1 lodash-es: 4.17.21 nerf-dart: 1.0.0 normalize-url: 8.0.0 - npm: 9.8.1 + npm: 10.2.0 rc: 1.2.8 read-pkg: 8.0.0 registry-auth-token: 5.0.2 - semantic-release: 21.0.7 + semantic-release: 22.0.5 semver: 7.5.4 tempy: 3.1.0 dev: true - /@semantic-release/release-notes-generator@11.0.4(semantic-release@21.0.7): - resolution: {integrity: sha512-j0Znnwq9IdWTCGzqSlkLv4MpALTsVDZxcVESzJCNN8pK2BYQlYaKsdZ1Ea/+7RlppI3vjhEi33ZKmjSGY1FLKw==} - engines: {node: '>=18'} + /@semantic-release/release-notes-generator@12.0.0(semantic-release@22.0.5): + resolution: {integrity: sha512-m7Ds8ComP1KJgA2Lke2xMwE1TOOU40U7AzP4lT8hJ2tUAeicziPz/1GeDFmRkTOkMFlfHvE6kuvMkvU+mIzIDQ==} + engines: {node: ^18.17 || >=20.6.1} peerDependencies: semantic-release: '>=20.1.0' dependencies: - conventional-changelog-angular: 6.0.0 - conventional-changelog-writer: 6.0.1 - conventional-commits-filter: 3.0.0 - conventional-commits-parser: 4.0.0 + conventional-changelog-angular: 7.0.0 + conventional-changelog-writer: 7.0.1 + conventional-commits-filter: 4.0.0 + conventional-commits-parser: 5.0.0 debug: 4.3.4(supports-color@8.1.1) get-stream: 7.0.1 import-from: 4.0.0 into-stream: 7.0.0 lodash-es: 4.17.21 read-pkg-up: 10.0.0 - semantic-release: 21.0.7 + semantic-release: 22.0.5 transitivePeerDependencies: - supports-color dev: true @@ -2542,6 +2660,11 @@ packages: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true + /@sindresorhus/is@3.1.2: + resolution: {integrity: sha512-JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ==} + engines: {node: '>=10'} + dev: true + /@tootallnate/once@2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} @@ -2550,38 +2673,38 @@ packages: /@types/chai-subset@1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: - '@types/chai': 4.3.5 + '@types/chai': 4.3.7 dev: true - /@types/chai@4.3.5: - resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} + /@types/chai@4.3.7: + resolution: {integrity: sha512-/k+vesl92vMvMygmQrFe9Aimxi6oQXFUX9mA5HanTrKUSAMoLauSi6PNFOdRw0oeqilaW600GNx2vSaT2f8aIQ==} dev: true - /@types/debug@4.1.8: - resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==} + /@types/debug@4.1.9: + resolution: {integrity: sha512-8Hz50m2eoS56ldRlepxSBa6PWEVCtzUo/92HgLc2qTMnotJNIm7xP+UZhyWoYsyOdd5dxZ+NZLb24rsKyFs2ow==} dependencies: '@types/ms': 0.7.31 dev: true - /@types/eslint@8.44.2: - resolution: {integrity: sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg==} + /@types/eslint@8.44.4: + resolution: {integrity: sha512-lOzjyfY/D9QR4hY9oblZ76B90MYTB3RrQ4z2vBIJKj9ROCRqdkYl2gSUx1x1a4IWPjKJZLL4Aw1Zfay7eMnmnA==} dependencies: - '@types/estree': 1.0.1 - '@types/json-schema': 7.0.12 + '@types/estree': 1.0.2 + '@types/json-schema': 7.0.13 dev: true - /@types/esquery@1.5.0: - resolution: {integrity: sha512-MNQ5gCt3j1idWHlj/dEF+WPS1kl6Woe0Agzwy96JvrwDQdDadqeIBhY7mUca51CCUzxf7BsnXzcyKi6ENpEtmQ==} + /@types/esquery@1.5.1: + resolution: {integrity: sha512-tMg6kvauDs1i7uJveMk0uEZ0vgxv/5vqXL1SY4W6yqID4jfNmphJPXrt76mqPK5pzkDMA/Si/YboeHZSq7ltKA==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.2 dev: true - /@types/estree@1.0.1: - resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} + /@types/estree@1.0.2: + resolution: {integrity: sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==} dev: true - /@types/json-schema@7.0.12: - resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} + /@types/json-schema@7.0.13: + resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==} dev: true /@types/json5@0.0.29: @@ -2598,82 +2721,81 @@ packages: resolution: {integrity: sha512-22y3o88f4a94mKljsZcanlNWPzO0uBsBdzLAngf2tp533LzZcQzb6+eZPJ+vCTt+bqF2XnvT9gejTLsAcJAJyQ==} dev: true - /@types/minimist@1.2.2: - resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} - dev: true - - /@types/mocha@10.0.1: - resolution: {integrity: sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==} + /@types/mocha@10.0.2: + resolution: {integrity: sha512-NaHL0+0lLNhX6d9rs+NSt97WH/gIlRHmszXbQ/8/MV/eVcFNdeJ/GYhrFuUc8K7WuPhRhTSdMkCp8VMzhUq85w==} dev: true /@types/ms@0.7.31: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node@20.5.0: - resolution: {integrity: sha512-Mgq7eCtoTjT89FqNoTzzXg2XvCi5VMhRV6+I2aYanc6kQCBImeNaAYRs/DyoVqk1YEUJK5gN9VO7HRIdz4Wo3Q==} + /@types/node@20.8.4: + resolution: {integrity: sha512-ZVPnqU58giiCjSxjVUESDtdPk4QR5WQhhINbc9UBrKLU68MX5BF6kbQzTrkwbolyr0X8ChBpXfavr5mZFKZQ5A==} + dependencies: + undici-types: 5.25.3 dev: true /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true - /@types/semver@7.5.0: - resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} + /@types/semver@7.5.3: + resolution: {integrity: sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==} dev: true - /@types/spdx-expression-parse@3.0.2: - resolution: {integrity: sha512-sMUf6orVVBVkpUEynLJu+Vt192vpG6CnPQA4Nk+i0hWoRGk6kxLjbr9gvISWfKb2IJNSoX/rUWbig32iP+FjWA==} + /@types/spdx-expression-parse@3.0.3: + resolution: {integrity: sha512-v3OYEMJyAVAlJOpzh/cbQNGS6ToAG4UNUmbLCDey6yc9qancsaaYz2ZigAwX/7L+fYN2X8Q6X82IsJv2EZnSNA==} dev: true /@types/ws@8.5.5: resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} dependencies: - '@types/node': 20.5.0 + '@types/node': 20.8.4 dev: true - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.1.6): - resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/eslint-plugin@6.7.5(@typescript-eslint/parser@6.7.5)(eslint@8.51.0)(typescript@5.1.6): + resolution: {integrity: sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.1.6) - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.47.0)(typescript@5.1.6) - '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.7.5(eslint@8.51.0)(typescript@5.1.6) + '@typescript-eslint/scope-manager': 6.7.5 + '@typescript-eslint/type-utils': 6.7.5(eslint@8.51.0)(typescript@5.1.6) + '@typescript-eslint/utils': 6.7.5(eslint@8.51.0)(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.7.5 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.47.0 + eslint: 8.51.0 graphemer: 1.4.0 ignore: 5.2.4 - natural-compare-lite: 1.4.0 + natural-compare: 1.4.0 semver: 7.5.4 - tsutils: 3.21.0(typescript@5.1.6) + ts-api-utils: 1.0.1(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/experimental-utils@5.62.0(eslint@8.47.0)(typescript@5.1.6): + /@typescript-eslint/experimental-utils@5.62.0(eslint@8.51.0)(typescript@5.1.6): resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.1.6) - eslint: 8.47.0 + '@typescript-eslint/utils': 5.62.0(eslint@8.51.0)(typescript@5.1.6) + eslint: 8.51.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.47.0)(typescript@5.1.6): + /@typescript-eslint/parser@5.62.0(eslint@8.51.0)(typescript@5.1.6): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2687,14 +2809,14 @@ packages: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.47.0 + eslint: 8.51.0 typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.4.0(eslint@8.47.0)(typescript@5.1.6): - resolution: {integrity: sha512-I1Ah1irl033uxjxO9Xql7+biL3YD7w9IU8zF+xlzD/YxY6a4b7DYA08PXUUCbm2sEljwJF6ERFy2kTGAGcNilg==} + /@typescript-eslint/parser@6.7.5(eslint@8.51.0)(typescript@5.1.6): + resolution: {integrity: sha512-bIZVSGx2UME/lmhLcjdVc7ePBwn7CLqKarUBL4me1C5feOd663liTGjMBGVcGr+BhnSLeP4SgwdvNnnkbIdkCw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2703,12 +2825,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.4.0 - '@typescript-eslint/types': 6.4.0 - '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.4.0 + '@typescript-eslint/scope-manager': 6.7.5 + '@typescript-eslint/types': 6.7.5 + '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.7.5 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.47.0 + eslint: 8.51.0 typescript: 5.1.6 transitivePeerDependencies: - supports-color @@ -2730,29 +2852,29 @@ packages: '@typescript-eslint/visitor-keys': 6.2.1 dev: true - /@typescript-eslint/scope-manager@6.4.0: - resolution: {integrity: sha512-TUS7vaKkPWDVvl7GDNHFQMsMruD+zhkd3SdVW0d7b+7Zo+bd/hXJQ8nsiUZMi1jloWo6c9qt3B7Sqo+flC1nig==} + /@typescript-eslint/scope-manager@6.7.5: + resolution: {integrity: sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.4.0 - '@typescript-eslint/visitor-keys': 6.4.0 + '@typescript-eslint/types': 6.7.5 + '@typescript-eslint/visitor-keys': 6.7.5 dev: true - /@typescript-eslint/type-utils@5.62.0(eslint@8.47.0)(typescript@5.1.6): - resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/type-utils@6.7.5(eslint@8.51.0)(typescript@5.1.6): + resolution: {integrity: sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: '*' + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) - '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.1.6) + '@typescript-eslint/utils': 6.7.5(eslint@8.51.0)(typescript@5.1.6) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.47.0 - tsutils: 3.21.0(typescript@5.1.6) + eslint: 8.51.0 + ts-api-utils: 1.0.1(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color @@ -2768,8 +2890,8 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@6.4.0: - resolution: {integrity: sha512-+FV9kVFrS7w78YtzkIsNSoYsnOtrYVnKWSTVXoL1761CsCRv5wpDOINgsXpxD67YCLZtVQekDDyaxfjVWUJmmg==} + /@typescript-eslint/types@6.7.5: + resolution: {integrity: sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -2815,8 +2937,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.4.0(typescript@5.1.6): - resolution: {integrity: sha512-iDPJArf/K2sxvjOR6skeUCNgHR/tCQXBsa+ee1/clRKr3olZjZ/dSkXPZjG6YkPtnW6p5D1egeEPMCW6Gn4yLA==} + /@typescript-eslint/typescript-estree@6.7.5(typescript@5.1.6): + resolution: {integrity: sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2824,8 +2946,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.4.0 - '@typescript-eslint/visitor-keys': 6.4.0 + '@typescript-eslint/types': 6.7.5 + '@typescript-eslint/visitor-keys': 6.7.5 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 @@ -2836,19 +2958,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.47.0)(typescript@5.1.6): + /@typescript-eslint/utils@5.62.0(eslint@8.51.0)(typescript@5.1.6): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) - '@types/json-schema': 7.0.12 - '@types/semver': 7.5.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + '@types/json-schema': 7.0.13 + '@types/semver': 7.5.3 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) - eslint: 8.47.0 + eslint: 8.51.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -2856,19 +2978,38 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.2.1(eslint@8.47.0)(typescript@5.1.6): + /@typescript-eslint/utils@6.2.1(eslint@8.51.0)(typescript@5.1.6): resolution: {integrity: sha512-eBIXQeupYmxVB6S7x+B9SdBeB6qIdXKjgQBge2J+Ouv8h9Cxm5dHf/gfAZA6dkMaag+03HdbVInuXMmqFB/lKQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) - '@types/json-schema': 7.0.12 - '@types/semver': 7.5.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + '@types/json-schema': 7.0.13 + '@types/semver': 7.5.3 '@typescript-eslint/scope-manager': 6.2.1 '@typescript-eslint/types': 6.2.1 '@typescript-eslint/typescript-estree': 6.2.1(typescript@5.1.6) - eslint: 8.47.0 + eslint: 8.51.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/utils@6.7.5(eslint@8.51.0)(typescript@5.1.6): + resolution: {integrity: sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + '@types/json-schema': 7.0.13 + '@types/semver': 7.5.3 + '@typescript-eslint/scope-manager': 6.7.5 + '@typescript-eslint/types': 6.7.5 + '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.1.6) + eslint: 8.51.0 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -2891,11 +3032,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.4.0: - resolution: {integrity: sha512-yJSfyT+uJm+JRDWYRYdCm2i+pmvXJSMtPR9Cq5/XQs4QIgNoLcoRtDdzsLbLsFM/c6um6ohQkg/MLxWvoIndJA==} + /@typescript-eslint/visitor-keys@6.7.5: + resolution: {integrity: sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/types': 6.7.5 eslint-visitor-keys: 3.4.3 dev: true @@ -2904,7 +3045,7 @@ packages: dependencies: '@vitest/spy': 0.34.1 '@vitest/utils': 0.34.1 - chai: 4.3.7 + chai: 4.3.10 dev: true /@vitest/runner@0.34.1: @@ -3049,6 +3190,14 @@ packages: indent-string: 5.0.0 dev: true + /aggregate-error@5.0.0: + resolution: {integrity: sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==} + engines: {node: '>=18'} + dependencies: + clean-stack: 5.2.0 + indent-string: 5.0.0 + dev: true + /ajv-formats@2.1.1(ajv@8.12.0): resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: @@ -3356,6 +3505,12 @@ packages: tslib: 2.6.1 dev: true + /asynciterator.prototype@1.0.0: + resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} + dependencies: + has-symbols: 1.0.3 + dev: true + /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: true @@ -3407,38 +3562,38 @@ packages: - supports-color dev: true - /babel-plugin-polyfill-corejs2@0.4.5(@babel/core@7.22.10): - resolution: {integrity: sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==} + /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.0): + resolution: {integrity: sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.10 - '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.10) + '@babel/compat-data': 7.23.2 + '@babel/core': 7.23.0 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.0) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.8.3(@babel/core@7.22.10): - resolution: {integrity: sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==} + /babel-plugin-polyfill-corejs3@0.8.5(@babel/core@7.23.0): + resolution: {integrity: sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.22.10 - '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.10) - core-js-compat: 3.32.0 + '@babel/core': 7.23.0 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.0) + core-js-compat: 3.33.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.5.2(@babel/core@7.22.10): - resolution: {integrity: sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==} + /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.0): + resolution: {integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.22.10 - '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.10) + '@babel/core': 7.23.0 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.0) transitivePeerDependencies: - supports-color dev: true @@ -3562,6 +3717,17 @@ packages: update-browserslist-db: 1.0.11(browserslist@4.21.10) dev: true + /browserslist@4.22.1: + resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001547 + electron-to-chromium: 1.4.550 + node-releases: 2.0.13 + update-browserslist-db: 1.0.13(browserslist@4.22.1) + dev: true + /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true @@ -3595,7 +3761,7 @@ packages: dependencies: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.2 - glob: 10.3.3 + glob: 10.3.10 lru-cache: 7.18.3 minipass: 5.0.0 minipass-collect: 1.0.2 @@ -3663,15 +3829,6 @@ packages: engines: {node: '>=6'} dev: true - /camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 - dev: true - /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -3686,6 +3843,10 @@ packages: resolution: {integrity: sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg==} dev: true + /caniuse-lite@1.0.30001547: + resolution: {integrity: sha512-W7CrtIModMAxobGhz8iXmDfuJiiKg1WADMO/9x7/CLNin5cpSbuBjooyoIUVB5eyCc36QuTVlkVa1iB2S5+/eA==} + dev: true + /cardinal@2.1.1: resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==} hasBin: true @@ -3698,14 +3859,14 @@ packages: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} dev: true - /chai@4.3.7: - resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} + /chai@4.3.10: + resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 - check-error: 1.0.2 + check-error: 1.0.3 deep-eql: 4.1.3 - get-func-name: 2.0.0 + get-func-name: 2.0.2 loupe: 2.3.6 pathval: 1.1.1 type-detect: 4.0.8 @@ -3733,8 +3894,19 @@ packages: engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} dev: true - /check-error@1.0.2: - resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + /chance@1.1.11: + resolution: {integrity: sha512-kqTg3WWywappJPqtgrdvbA380VoXO2eu9VCV895JgbyHsaErXdyHK9LOZ911OvAk6L0obK7kDk9CGs8+oBawVA==} + dev: true + + /char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + dev: true + + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 dev: true /chokidar@3.5.3: @@ -3791,6 +3963,13 @@ packages: escape-string-regexp: 5.0.0 dev: true + /clean-stack@5.2.0: + resolution: {integrity: sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==} + engines: {node: '>=14.16'} + dependencies: + escape-string-regexp: 5.0.0 + dev: true + /cli-cursor@4.0.0: resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3954,50 +4133,50 @@ packages: sister: 3.0.2 dev: true - /conventional-changelog-angular@6.0.0: - resolution: {integrity: sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==} - engines: {node: '>=14'} + /conventional-changelog-angular@7.0.0: + resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} + engines: {node: '>=16'} dependencies: compare-func: 2.0.0 dev: true - /conventional-changelog-writer@6.0.1: - resolution: {integrity: sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==} - engines: {node: '>=14'} + /conventional-changelog-writer@7.0.1: + resolution: {integrity: sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==} + engines: {node: '>=16'} hasBin: true dependencies: - conventional-commits-filter: 3.0.0 - dateformat: 3.0.3 + conventional-commits-filter: 4.0.0 handlebars: 4.7.8 json-stringify-safe: 5.0.1 - meow: 8.1.2 + meow: 12.1.1 semver: 7.5.4 - split: 1.0.1 + split2: 4.2.0 dev: true - /conventional-commits-filter@3.0.0: - resolution: {integrity: sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==} - engines: {node: '>=14'} - dependencies: - lodash.ismatch: 4.4.0 - modify-values: 1.0.1 + /conventional-commits-filter@4.0.0: + resolution: {integrity: sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==} + engines: {node: '>=16'} dev: true - /conventional-commits-parser@4.0.0: - resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} - engines: {node: '>=14'} + /conventional-commits-parser@5.0.0: + resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} + engines: {node: '>=16'} hasBin: true dependencies: JSONStream: 1.3.5 - is-text-path: 1.0.1 - meow: 8.1.2 - split2: 3.2.2 + is-text-path: 2.0.0 + meow: 12.1.1 + split2: 4.2.0 dev: true /convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} dev: true + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true + /copy-descriptor@0.1.1: resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} engines: {node: '>=0.10.0'} @@ -4009,6 +4188,12 @@ packages: browserslist: 4.21.10 dev: true + /core-js-compat@3.33.0: + resolution: {integrity: sha512-0w4LcLXsVEuNkIqwjjf9rjCoPhK8uqA4tMRh4Ge26vfLtUutshn+aRJU21I9LCJlh2QQHfisNToLjw1XEJLTWw==} + dependencies: + browserslist: 4.22.1 + dev: true + /core-js-pure@3.32.0: resolution: {integrity: sha512-qsev1H+dTNYpDUEURRuOXMvpdtAnNEvQWS/FMJ2Vb5AY8ZP4rAPQldkE27joykZPJTe0+IVgHZYh1P5Xu1/i1g==} requiresBuild: true @@ -4124,10 +4309,6 @@ packages: resolution: {integrity: sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==} dev: true - /dateformat@3.0.3: - resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} - dev: true - /deadlink@1.1.3: resolution: {integrity: sha512-m1h/xFi5eqcByMT7AGBt0BCygIifVyUw6CtEh1NpS/x0yeyS709+nCY5ByK255J/5hiRb9O/8dx6mmx3t6qSIQ==} engines: {node: '>=4'} @@ -4171,14 +4352,6 @@ packages: ms: 2.1.2 supports-color: 8.1.1 - /decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - dev: true - /decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} @@ -4240,6 +4413,15 @@ packages: strip-bom: 4.0.0 dev: true + /define-data-property@1.1.0: + resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + gopd: 1.0.1 + has-property-descriptors: 1.0.0 + dev: true + /define-lazy-prop@3.0.0: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} @@ -4253,6 +4435,15 @@ packages: object-keys: 1.1.1 dev: true + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + /define-property@0.2.5: resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} engines: {node: '>=0.10.0'} @@ -4390,6 +4581,10 @@ packages: resolution: {integrity: sha512-1ndQ5IBNEnFirPwvyud69GHL+31FkE09gH/CJ6m3KCbkx3i0EVOrjwz4UNxRmN9H8OVHbC6vMRZGN1yCvjSs9w==} dev: true + /electron-to-chromium@1.4.550: + resolution: {integrity: sha512-LfcsAzGj18xBYFM5WetwNQdqA03iLDozfCo0SWpu5G9zA5H1G/2GOiHOVnQdOrqaZ8vI8IiSgS3JMUrq930zsw==} + dev: true + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true @@ -4398,6 +4593,10 @@ packages: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true + /emojilib@2.4.0: + resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} + dev: true + /encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} requiresBuild: true @@ -4435,11 +4634,11 @@ packages: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} dev: true - /env-ci@9.1.1: - resolution: {integrity: sha512-Im2yEWeF4b2RAMAaWvGioXk6m0UNaIjD8hj28j2ij5ldnIFrDQT0+pzDvpbRkcjurhXhf/AsBKv8P2rtmGi9Aw==} - engines: {node: ^16.14 || >=18} + /env-ci@10.0.0: + resolution: {integrity: sha512-U4xcd/utDYFgMh0yWj07R1H6L5fwhVbmxBCpnL0DbVSDZVnsC82HONw0wxtxNkIAcua3KtbomQvIk5xFZGAQJw==} + engines: {node: ^18.17 || >=20.6.1} dependencies: - execa: 7.2.0 + execa: 8.0.1 java-properties: 1.0.2 dev: true @@ -4512,6 +4711,25 @@ packages: resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} dev: true + /es-iterator-helpers@1.0.15: + resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + dependencies: + asynciterator.prototype: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.1 + es-set-tostringtag: 2.0.1 + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + iterator.prototype: 1.1.2 + safe-array-concat: 1.0.1 + dev: true + /es-set-tostringtag@2.0.1: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} @@ -4614,56 +4832,66 @@ packages: lodash.zip: 4.2.0 dev: true - /eslint-config-canonical@41.1.7(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/node@20.5.0)(eslint@8.47.0)(graphql@16.7.1)(typescript@5.1.6)(vitest@0.34.1): - resolution: {integrity: sha512-vtFiCYoJTcFqX3v+v21PP4sizK6mkSRAtEZ6mea/Z+vM4EsRykaV/QDRVgUirBH4ZcegI8zJVuA+WyZbCCumRA==} + /eslint-compat-utils@0.1.2(eslint@8.51.0): + resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + eslint: 8.51.0 + dev: true + + /eslint-config-canonical@41.3.0(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.4)(@types/node@20.8.4)(eslint@8.51.0)(graphql@16.7.1)(typescript@5.1.6)(vitest@0.34.1): + resolution: {integrity: sha512-fCB6PuNqfAvUuqzFdMGT19PTFQXdoqPdIXacPyTSruybWWzaXsBBECu6himd7o9h26h4McYzEM+MKyga3Itp1g==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 dependencies: - '@babel/core': 7.22.10 - '@babel/eslint-parser': 7.22.10(@babel/core@7.22.10)(eslint@8.47.0) - '@babel/eslint-plugin': 7.22.5(@babel/eslint-parser@7.22.10)(eslint@8.47.0) - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.10) - '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.22.10)(@types/node@20.5.0)(graphql@16.7.1) + '@babel/core': 7.23.0 + '@babel/eslint-parser': 7.22.15(@babel/core@7.23.0)(eslint@8.51.0) + '@babel/eslint-plugin': 7.22.10(@babel/eslint-parser@7.22.15)(eslint@8.51.0) + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.0) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.0)(@types/node@20.8.4)(graphql@16.7.1) '@next/eslint-plugin-next': 13.4.12 '@rushstack/eslint-patch': 1.3.2 - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.1.6) - '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.1.6) - eslint: 8.47.0 - eslint-config-prettier: 8.10.0(eslint@8.47.0) - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.0)(eslint@8.47.0) - eslint-plugin-ava: 14.0.0(eslint@8.47.0) - eslint-plugin-canonical: 4.9.0(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.0)(eslint@8.47.0)(typescript@5.1.6) - eslint-plugin-cypress: 2.13.3(eslint@8.47.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.47.0) - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.47.0) - eslint-plugin-fp: 2.3.0(eslint@8.47.0) - eslint-plugin-import: 2.28.0(@typescript-eslint/parser@6.4.0)(eslint@8.47.0) - eslint-plugin-jest: 27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.47.0)(typescript@5.1.6) - eslint-plugin-jsdoc: 43.2.0(eslint@8.47.0) - eslint-plugin-jsonc: 2.9.0(eslint@8.47.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@8.47.0) - eslint-plugin-lodash: 7.4.0(eslint@8.47.0) - eslint-plugin-mocha: 10.1.0(eslint@8.47.0) + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.7.5)(eslint@8.51.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.7.5(eslint@8.51.0)(typescript@5.1.6) + eslint: 8.51.0 + eslint-config-prettier: 9.0.0(eslint@8.51.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.7.5)(eslint-plugin-import@2.28.1)(eslint@8.51.0) + eslint-plugin-ava: 14.0.0(eslint@8.51.0) + eslint-plugin-canonical: 4.12.0(@typescript-eslint/parser@6.7.5)(eslint-plugin-import@2.28.1)(eslint@8.51.0)(typescript@5.1.6) + eslint-plugin-cypress: 2.15.1(eslint@8.51.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.51.0) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.51.0) + eslint-plugin-fp: 2.3.0(eslint@8.51.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) + eslint-plugin-jest: 27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.51.0)(typescript@5.1.6) + eslint-plugin-jsdoc: 43.2.0(eslint@8.51.0) + eslint-plugin-jsonc: 2.9.0(eslint@8.51.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.51.0) + eslint-plugin-lodash: 7.4.0(eslint@8.51.0) + eslint-plugin-mocha: 10.1.0(eslint@8.51.0) eslint-plugin-modules-newline: 0.0.6 - eslint-plugin-node: 11.1.0(eslint@8.47.0) - eslint-plugin-prettier: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.47.0)(prettier@2.8.8) - eslint-plugin-promise: 6.1.1(eslint@8.47.0) - eslint-plugin-react: 7.33.1(eslint@8.47.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.47.0) - eslint-plugin-regexp: 1.15.0(eslint@8.47.0) - eslint-plugin-simple-import-sort: 10.0.0(eslint@8.47.0) - eslint-plugin-typescript-sort-keys: 2.3.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.1.6) - eslint-plugin-unicorn: 46.0.1(eslint@8.47.0) - eslint-plugin-vitest: 0.2.8(eslint@8.47.0)(typescript@5.1.6)(vitest@0.34.1) - eslint-plugin-yml: 1.8.0(eslint@8.47.0) - eslint-plugin-zod: 1.4.0(eslint@8.47.0) - prettier: 2.8.8 + eslint-plugin-node: 11.1.0(eslint@8.51.0) + eslint-plugin-prettier: 5.0.1(@types/eslint@8.44.4)(eslint-config-prettier@9.0.0)(eslint@8.51.0)(prettier@3.0.3) + eslint-plugin-promise: 6.1.1(eslint@8.51.0) + eslint-plugin-react: 7.33.2(eslint@8.51.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.51.0) + eslint-plugin-regexp: 1.15.0(eslint@8.51.0) + eslint-plugin-simple-import-sort: 10.0.0(eslint@8.51.0) + eslint-plugin-typescript-sort-keys: 3.0.0(@typescript-eslint/parser@6.7.5)(eslint@8.51.0)(typescript@5.1.6) + eslint-plugin-unicorn: 46.0.1(eslint@8.51.0) + eslint-plugin-vitest: 0.2.8(eslint@8.51.0)(typescript@5.1.6)(vitest@0.34.1) + eslint-plugin-yml: 1.10.0(eslint@8.51.0) + eslint-plugin-zod: 1.4.0(eslint@8.51.0) + prettier: 3.0.3 ramda: 0.29.0 yaml-eslint-parser: 1.2.2 transitivePeerDependencies: - '@babel/plugin-syntax-flow' - '@babel/plugin-transform-react-jsx' + - '@types/eslint' - '@types/node' - bufferutil - cosmiconfig-toml-loader @@ -4679,27 +4907,27 @@ packages: - vitest dev: true - /eslint-config-prettier@8.10.0(eslint@8.47.0): - resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} + /eslint-config-prettier@9.0.0(eslint@8.51.0): + resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.47.0 + eslint: 8.51.0 dev: true /eslint-import-resolver-node@0.3.7: resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} dependencies: debug: 3.2.7 - is-core-module: 2.12.1 + is-core-module: 2.13.0 resolve: 1.22.3 transitivePeerDependencies: - supports-color dev: true - /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.0)(eslint@8.47.0): - resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.7.5)(eslint-plugin-import@2.28.1)(eslint@8.51.0): + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -4707,14 +4935,13 @@ packages: dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 - eslint: 8.47.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) - eslint-plugin-import: 2.28.0(@typescript-eslint/parser@6.4.0)(eslint@8.47.0) + eslint: 8.51.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) + fast-glob: 3.3.1 get-tsconfig: 4.6.2 - globby: 13.2.2 is-core-module: 2.12.1 is-glob: 4.0.3 - synckit: 0.8.5 transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node @@ -4722,37 +4949,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0): - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.1.6) - debug: 3.2.7 - eslint: 8.47.0 - eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.0)(eslint@8.47.0) - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.4.0)(eslint-import-resolver-node@0.3.7)(eslint@8.47.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4773,23 +4970,24 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.4.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.7.5(eslint@8.51.0)(typescript@5.1.6) debug: 3.2.7 - eslint: 8.47.0 + eslint: 8.51.0 eslint-import-resolver-node: 0.3.7 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.7.5)(eslint-plugin-import@2.28.1)(eslint@8.51.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-ava@14.0.0(eslint@8.47.0): + /eslint-plugin-ava@14.0.0(eslint@8.51.0): resolution: {integrity: sha512-XmKT6hppaipwwnLVwwvQliSU6AF1QMHiNoLD5JQfzhUhf0jY7CO0O624fQrE+Y/fTb9vbW8r77nKf7M/oHulxw==} engines: {node: '>=14.17 <15 || >=16.4'} peerDependencies: eslint: '>=8.26.0' dependencies: enhance-visitors: 1.0.0 - eslint: 8.47.0 - eslint-utils: 3.0.0(eslint@8.47.0) + eslint: 8.51.0 + eslint-utils: 3.0.0(eslint@8.51.0) espree: 9.6.1 espurify: 2.1.1 import-modules: 2.1.0 @@ -4798,14 +4996,15 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-canonical@4.9.0(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.0)(eslint@8.47.0)(typescript@5.1.6): - resolution: {integrity: sha512-9c716jTFFfmYceO2AJHGWSamKKXiHVne8rE13nc1zYDwLiKRhSg56Poyp/kXJv8b0lhWXLMddRZzVEtDCKlucA==} + /eslint-plugin-canonical@4.12.0(@typescript-eslint/parser@6.7.5)(eslint-plugin-import@2.28.1)(eslint@8.51.0)(typescript@5.1.6): + resolution: {integrity: sha512-q7ghsn0esUmgwamhAomg2edIP5dQNJrdRvxw/aYA7/BkN953VxPL0zKGGrZ2oOmCPAUvg6CY1CE4BzTAq+5eyA==} engines: {node: '>=16.0.0'} dependencies: - '@typescript-eslint/utils': 6.2.1(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/utils': 6.2.1(eslint@8.51.0)(typescript@5.1.6) + chance: 1.1.11 debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.0)(eslint@8.47.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.7.5)(eslint-plugin-import@2.28.1)(eslint@8.51.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -4826,38 +5025,38 @@ packages: - typescript dev: true - /eslint-plugin-cypress@2.13.3(eslint@8.47.0): - resolution: {integrity: sha512-nAPjZE5WopCsgJwl3vHm5iafpV+ZRO76Z9hMyRygWhmg5ODXDPd+9MaPl7kdJ2azj+sO87H3P1PRnggIrz848g==} + /eslint-plugin-cypress@2.15.1(eslint@8.51.0): + resolution: {integrity: sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 8.47.0 - globals: 11.12.0 + eslint: 8.51.0 + globals: 13.20.0 dev: true - /eslint-plugin-es@3.0.1(eslint@8.47.0): + /eslint-plugin-es@3.0.1(eslint@8.51.0): resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.47.0 + eslint: 8.51.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-eslint-comments@3.2.0(eslint@8.47.0): + /eslint-plugin-eslint-comments@3.2.0(eslint@8.51.0): resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' dependencies: escape-string-regexp: 1.0.5 - eslint: 8.47.0 + eslint: 8.51.0 ignore: 5.2.4 dev: true - /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.47.0): + /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.51.0): resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -4865,28 +5064,28 @@ packages: '@babel/plugin-transform-react-jsx': ^7.14.9 eslint: ^8.1.0 dependencies: - '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.22.10) - '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.10) - eslint: 8.47.0 + '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.23.0) + eslint: 8.51.0 lodash: 4.17.21 string-natural-compare: 3.0.1 dev: true - /eslint-plugin-fp@2.3.0(eslint@8.47.0): + /eslint-plugin-fp@2.3.0(eslint@8.51.0): resolution: {integrity: sha512-3n2oHibwoIxAht9/+ZaTldhI6brXORgl8oNXqZd+d9xuAQt2SBJ2/aml0oQRMWvXrgsz2WG6wfC++NjzSG3prA==} engines: {node: '>=4.0.0'} peerDependencies: eslint: '>=3' dependencies: create-eslint-index: 1.0.0 - eslint: 8.47.0 + eslint: 8.51.0 eslint-ast-utils: 1.1.0 lodash: 4.17.21 req-all: 0.1.0 dev: true - /eslint-plugin-import@2.28.0(@typescript-eslint/parser@6.4.0)(eslint@8.47.0): - resolution: {integrity: sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q==} + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0): + resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -4895,24 +5094,23 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.4.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.7.5(eslint@8.51.0)(typescript@5.1.6) array-includes: 3.1.6 array.prototype.findlastindex: 1.2.2 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.47.0 + eslint: 8.51.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.4.0)(eslint-import-resolver-node@0.3.7)(eslint@8.47.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) has: 1.0.3 - is-core-module: 2.12.1 + is-core-module: 2.13.0 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.6 object.groupby: 1.0.0 object.values: 1.1.6 - resolve: 1.22.3 semver: 6.3.1 tsconfig-paths: 3.14.2 transitivePeerDependencies: @@ -4921,8 +5119,8 @@ packages: - supports-color dev: true - /eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.47.0)(typescript@5.1.6): - resolution: {integrity: sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==} + /eslint-plugin-jest@27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.51.0)(typescript@5.1.6): + resolution: {integrity: sha512-3Nfvv3wbq2+PZlRTf2oaAWXWwbdBejFRBR2O8tAO67o+P8zno+QGbcDYaAXODlreXVg+9gvWhKKmG2rgfb8GEg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': ^5.0.0 || ^6.0.0 @@ -4934,15 +5132,15 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.1.6) - '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.1.6) - eslint: 8.47.0 + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.7.5)(eslint@8.51.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.51.0)(typescript@5.1.6) + eslint: 8.51.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsdoc@43.2.0(eslint@8.47.0): + /eslint-plugin-jsdoc@43.2.0(eslint@8.51.0): resolution: {integrity: sha512-Hst7XUfqh28UmPD52oTXmjaRN3d0KrmOZdgtp4h9/VHUJD3Evoo82ZGXi1TtRDWgWhvqDIRI63O49H0eH7NrZQ==} engines: {node: '>=16'} peerDependencies: @@ -4953,7 +5151,7 @@ packages: comment-parser: 1.3.1 debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 8.47.0 + eslint: 8.51.0 esquery: 1.5.0 semver: 7.5.4 spdx-expression-parse: 3.0.1 @@ -4961,19 +5159,19 @@ packages: - supports-color dev: true - /eslint-plugin-jsonc@2.9.0(eslint@8.47.0): + /eslint-plugin-jsonc@2.9.0(eslint@8.51.0): resolution: {integrity: sha512-RK+LeONVukbLwT2+t7/OY54NJRccTXh/QbnXzPuTLpFMVZhPuq1C9E07+qWenGx7rrQl0kAalAWl7EmB+RjpGA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) - eslint: 8.47.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + eslint: 8.51.0 jsonc-eslint-parser: 2.3.0 natural-compare: 1.4.0 dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.47.0): + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.51.0): resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} peerDependencies: @@ -4988,7 +5186,7 @@ packages: axobject-query: 3.2.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.47.0 + eslint: 8.51.0 has: 1.0.3 jsx-ast-utils: 3.3.5 language-tags: 1.0.5 @@ -4998,24 +5196,24 @@ packages: semver: 6.3.1 dev: true - /eslint-plugin-lodash@7.4.0(eslint@8.47.0): + /eslint-plugin-lodash@7.4.0(eslint@8.51.0): resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} engines: {node: '>=10'} peerDependencies: eslint: '>=2' dependencies: - eslint: 8.47.0 + eslint: 8.51.0 lodash: 4.17.21 dev: true - /eslint-plugin-mocha@10.1.0(eslint@8.47.0): + /eslint-plugin-mocha@10.1.0(eslint@8.51.0): resolution: {integrity: sha512-xLqqWUF17llsogVOC+8C6/jvQ+4IoOREbN7ZCHuOHuD6cT5cDD4h7f2LgsZuzMAiwswWE21tO7ExaknHVDrSkw==} engines: {node: '>=14.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.47.0 - eslint-utils: 3.0.0(eslint@8.47.0) + eslint: 8.51.0 + eslint-utils: 3.0.0(eslint@8.51.0) rambda: 7.5.0 dev: true @@ -5026,58 +5224,63 @@ packages: requireindex: 1.1.0 dev: true - /eslint-plugin-node@11.1.0(eslint@8.47.0): + /eslint-plugin-node@11.1.0(eslint@8.51.0): resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.47.0 - eslint-plugin-es: 3.0.1(eslint@8.47.0) + eslint: 8.51.0 + eslint-plugin-es: 3.0.1(eslint@8.51.0) eslint-utils: 2.1.0 ignore: 5.2.4 minimatch: 3.1.2 - resolve: 1.22.2 + resolve: 1.22.3 semver: 6.3.1 dev: true - /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.10.0)(eslint@8.47.0)(prettier@2.8.8): - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} - engines: {node: '>=12.0.0'} + /eslint-plugin-prettier@5.0.1(@types/eslint@8.44.4)(eslint-config-prettier@9.0.0)(eslint@8.51.0)(prettier@3.0.3): + resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - eslint: '>=7.28.0' + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' eslint-config-prettier: '*' - prettier: '>=2.0.0' + prettier: '>=3.0.0' peerDependenciesMeta: + '@types/eslint': + optional: true eslint-config-prettier: optional: true dependencies: - eslint: 8.47.0 - eslint-config-prettier: 8.10.0(eslint@8.47.0) - prettier: 2.8.8 + '@types/eslint': 8.44.4 + eslint: 8.51.0 + eslint-config-prettier: 9.0.0(eslint@8.51.0) + prettier: 3.0.3 prettier-linter-helpers: 1.0.0 + synckit: 0.8.5 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.47.0): + /eslint-plugin-promise@6.1.1(eslint@8.51.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.47.0 + eslint: 8.51.0 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.47.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.51.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.47.0 + eslint: 8.51.0 dev: true - /eslint-plugin-react@7.33.1(eslint@8.47.0): - resolution: {integrity: sha512-L093k0WAMvr6VhNwReB8VgOq5s2LesZmrpPdKz/kZElQDzqS7G7+DnKoqT+w4JwuiGeAhAvHO0fvy0Eyk4ejDA==} + /eslint-plugin-react@7.33.2(eslint@8.51.0): + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 @@ -5086,7 +5289,8 @@ packages: array.prototype.flatmap: 1.3.1 array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 - eslint: 8.47.0 + es-iterator-helpers: 1.0.15 + eslint: 8.51.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 @@ -5100,16 +5304,16 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-regexp@1.15.0(eslint@8.47.0): + /eslint-plugin-regexp@1.15.0(eslint@8.51.0): resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} engines: {node: ^12 || >=14} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) '@eslint-community/regexpp': 4.6.2 comment-parser: 1.4.0 - eslint: 8.47.0 + eslint: 8.51.0 grapheme-splitter: 1.0.4 jsdoctypeparser: 9.0.0 refa: 0.11.0 @@ -5117,25 +5321,25 @@ packages: scslre: 0.2.0 dev: true - /eslint-plugin-simple-import-sort@10.0.0(eslint@8.47.0): + /eslint-plugin-simple-import-sort@10.0.0(eslint@8.51.0): resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 8.47.0 + eslint: 8.51.0 dev: true - /eslint-plugin-typescript-sort-keys@2.3.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.1.6): - resolution: {integrity: sha512-3LAcYulo5gNYiPWee+TksITfvWeBuBjGgcSLTacPESFVKEoy8laOQuZvJlSCwTBHT2SCGIxr3bJ56zuux+3MCQ==} - engines: {node: 12 || >= 13.9} + /eslint-plugin-typescript-sort-keys@3.0.0(@typescript-eslint/parser@6.7.5)(eslint@8.51.0)(typescript@5.1.6): + resolution: {integrity: sha512-bMmI4prYlf3l/1O8j8Nsz11m+XfKEHRFk9aJqP91L4Hgy7I38lnitnYElDmPQaznE1oFlGgBcnkEizNT2NLylQ==} + engines: {node: '>= 16'} peerDependencies: - '@typescript-eslint/parser': ^1 || ^2 || ^3 || ^4 || ^5 - eslint: ^5 || ^6 || ^7 || ^8 + '@typescript-eslint/parser': ^6 + eslint: ^7 || ^8 typescript: ^3 || ^4 || ^5 dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.47.0)(typescript@5.1.6) - '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.1.6) - eslint: 8.47.0 + '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.51.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.7.5(eslint@8.51.0)(typescript@5.1.6) + eslint: 8.51.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 typescript: 5.1.6 @@ -5143,17 +5347,17 @@ packages: - supports-color dev: true - /eslint-plugin-unicorn@46.0.1(eslint@8.47.0): + /eslint-plugin-unicorn@46.0.1(eslint@8.51.0): resolution: {integrity: sha512-setGhMTiLAddg1asdwjZ3hekIN5zLznNa5zll7pBPwFOka6greCKDQydfqy4fqyUhndi74wpDzClSQMEcmOaew==} engines: {node: '>=14.18'} peerDependencies: eslint: '>=8.28.0' dependencies: '@babel/helper-validator-identifier': 7.22.5 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) ci-info: 3.8.0 clean-regexp: 1.0.0 - eslint: 8.47.0 + eslint: 8.51.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -5168,7 +5372,7 @@ packages: strip-indent: 3.0.0 dev: true - /eslint-plugin-vitest@0.2.8(eslint@8.47.0)(typescript@5.1.6)(vitest@0.34.1): + /eslint-plugin-vitest@0.2.8(eslint@8.51.0)(typescript@5.1.6)(vitest@0.34.1): resolution: {integrity: sha512-q8s4tStyKtn3gXf+8nf1ZYTHhoCXKdnozZzp6u8b4ni5v68Y4vxhNh4Z8njUfNjEY8HoPBB77MazHMR23IPb+g==} engines: {node: 14.x || >= 16} peerDependencies: @@ -5179,22 +5383,23 @@ packages: vite: optional: true dependencies: - '@typescript-eslint/utils': 6.2.1(eslint@8.47.0)(typescript@5.1.6) - eslint: 8.47.0 + '@typescript-eslint/utils': 6.2.1(eslint@8.51.0)(typescript@5.1.6) + eslint: 8.51.0 vitest: 0.34.1 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-yml@1.8.0(eslint@8.47.0): - resolution: {integrity: sha512-fgBiJvXD0P2IN7SARDJ2J7mx8t0bLdG6Zcig4ufOqW5hOvSiFxeUyc2g5I1uIm8AExbo26NNYCcTGZT0MXTsyg==} + /eslint-plugin-yml@1.10.0(eslint@8.51.0): + resolution: {integrity: sha512-53SUwuNDna97lVk38hL/5++WXDuugPM9SUQ1T645R0EHMRCdBIIxGye/oOX2qO3FQ7aImxaUZJU/ju+NMUBrLQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4(supports-color@8.1.1) - eslint: 8.47.0 + eslint: 8.51.0 + eslint-compat-utils: 0.1.2(eslint@8.51.0) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.2 @@ -5202,13 +5407,13 @@ packages: - supports-color dev: true - /eslint-plugin-zod@1.4.0(eslint@8.47.0): + /eslint-plugin-zod@1.4.0(eslint@8.51.0): resolution: {integrity: sha512-i9WzQGw2X5fQcuQh33mA8DQjZJM/yuyZvs1Fc5EyTidX7Ed/g832+1FEQ4u5gtXy+jZ+DVsB5+oMHj4tIOfeZg==} engines: {node: '>=12'} peerDependencies: eslint: '>=8.1.0' dependencies: - eslint: 8.47.0 + eslint: 8.51.0 dev: true /eslint-rule-composer@0.3.0: @@ -5239,13 +5444,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils@3.0.0(eslint@8.47.0): + /eslint-utils@3.0.0(eslint@8.51.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.47.0 + eslint: 8.51.0 eslint-visitor-keys: 2.1.0 dev: true @@ -5269,16 +5474,16 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.47.0: - resolution: {integrity: sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==} + /eslint@8.51.0: + resolution: {integrity: sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) '@eslint-community/regexpp': 4.6.2 '@eslint/eslintrc': 2.1.2 - '@eslint/js': 8.47.0 - '@humanwhocodes/config-array': 0.11.10 + '@eslint/js': 8.51.0 + '@humanwhocodes/config-array': 0.11.11 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 @@ -5408,6 +5613,21 @@ packages: strip-final-newline: 3.0.0 dev: true + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + /expand-brackets@2.1.4: resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} engines: {node: '>=0.10.0'} @@ -5807,8 +6027,8 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: true - /get-func-name@2.0.0: - resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} dev: true /get-intrinsic@1.2.1: @@ -5847,6 +6067,11 @@ packages: engines: {node: '>=16'} dev: true + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} @@ -5936,13 +6161,13 @@ packages: is-glob: 4.0.3 dev: true - /glob@10.3.3: - resolution: {integrity: sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==} + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: foreground-child: 3.1.1 - jackspeak: 2.2.2 + jackspeak: 2.3.6 minimatch: 9.0.3 minipass: 7.0.2 path-scurry: 1.10.1 @@ -6045,7 +6270,7 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql-config@4.5.0(@types/node@20.5.0)(graphql@16.7.1): + /graphql-config@4.5.0(@types/node@20.8.4)(graphql@16.7.1): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -6059,7 +6284,7 @@ packages: '@graphql-tools/json-file-loader': 7.4.18(graphql@16.7.1) '@graphql-tools/load': 7.8.14(graphql@16.7.1) '@graphql-tools/merge': 8.4.2(graphql@16.7.1) - '@graphql-tools/url-loader': 7.17.18(@types/node@20.5.0)(graphql@16.7.1) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.8.4)(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) cosmiconfig: 8.0.0 graphql: 16.7.1 @@ -6125,11 +6350,6 @@ packages: har-schema: 2.0.0 dev: true - /hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - dev: true - /has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: true @@ -6237,13 +6457,6 @@ packages: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true - /hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - dependencies: - lru-cache: 6.0.0 - dev: true - /hosted-git-info@6.1.1: resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -6251,6 +6464,13 @@ packages: lru-cache: 7.18.3 dev: true + /hosted-git-info@7.0.1: + resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + lru-cache: 10.0.1 + dev: true + /html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true @@ -6330,6 +6550,11 @@ packages: engines: {node: '>=14.18.0'} dev: true + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true + /humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} dependencies: @@ -6477,6 +6702,13 @@ packages: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + /is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: @@ -6520,6 +6752,12 @@ packages: has: 1.0.3 dev: true + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + dependencies: + has: 1.0.3 + dev: true + /is-data-descriptor@0.1.4: resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} engines: {node: '>=0.10.0'} @@ -6593,6 +6831,12 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dependencies: + call-bind: 1.0.2 + dev: true + /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -6642,6 +6886,10 @@ packages: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} dev: true + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true + /is-nan@1.3.2: resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} engines: {node: '>= 0.4'} @@ -6692,11 +6940,6 @@ packages: engines: {node: '>=8'} dev: true - /is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - dev: true - /is-plain-obj@2.1.0: resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} engines: {node: '>=8'} @@ -6729,6 +6972,10 @@ packages: has-tostringtag: 1.0.0 dev: true + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true + /is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: @@ -6764,11 +7011,11 @@ packages: has-symbols: 1.0.3 dev: true - /is-text-path@1.0.1: - resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} - engines: {node: '>=0.10.0'} + /is-text-path@2.0.0: + resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} + engines: {node: '>=8'} dependencies: - text-extensions: 1.9.0 + text-extensions: 2.4.0 dev: true /is-typed-array@1.1.12: @@ -6792,12 +7039,23 @@ packages: engines: {node: '>=12'} dev: true + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true + /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.2 dev: true + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: true + /is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} @@ -6873,7 +7131,7 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.1 @@ -6885,7 +7143,7 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.22.10 + '@babel/core': 7.23.0 '@babel/parser': 7.22.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 @@ -6934,8 +7192,18 @@ packages: istanbul-lib-report: 3.0.1 dev: true - /jackspeak@2.2.2: - resolution: {integrity: sha512-mgNtVv4vUuaKA97yxUHoA3+FkuhtxkjdXEWOyB/N76fjy0FjezEt34oy3epBtvCvS+7DyKwqCFWx/oJLV5+kCg==} + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.4 + set-function-name: 2.0.1 + dev: true + + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} dependencies: '@isaacs/cliui': 8.0.2 @@ -7193,8 +7461,8 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /lint-staged@14.0.0: - resolution: {integrity: sha512-0tLf0pqZYkar/wu3nTctk4rVIG+d7PanDYv4/IQR4qwdqfQkTDziLRFnqMcLuLBTuUqmcLwsHPD2EjQ18d/oaA==} + /lint-staged@14.0.1: + resolution: {integrity: sha512-Mw0cL6HXnHN1ag0mN/Dg4g6sr8uf8sn98w2Oc1ECtFto9tvRF7nkXGJRbx8gPlHyoR0pLyBr2lQHbWwmUHe1Sw==} engines: {node: ^16.14.0 || >=18.0.0} hasBin: true dependencies: @@ -7310,10 +7578,6 @@ packages: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} dev: true - /lodash.ismatch@4.4.0: - resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} - dev: true - /lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} dev: true @@ -7371,7 +7635,7 @@ packages: /loupe@2.3.6: resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} dependencies: - get-func-name: 2.0.0 + get-func-name: 2.0.2 dev: true /lowercase-keys@1.0.1: @@ -7384,6 +7648,11 @@ packages: engines: {node: 14 || >=16.14} dev: true + /lru-cache@10.0.1: + resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} + engines: {node: 14 || >=16.14} + dev: true + /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: @@ -7458,16 +7727,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - dev: true - - /map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - dev: true - /map-visit@1.0.0: resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} engines: {node: '>=0.10.0'} @@ -7482,19 +7741,19 @@ packages: lodash: 4.17.21 dev: true - /marked-terminal@5.2.0(marked@5.1.2): - resolution: {integrity: sha512-Piv6yNwAQXGFjZSaiNljyNFw7jKDdGrw70FSbtxEyldLsyeuV5ZHm/1wW++kWbrOF1VPnUgYOhB2oLL0ZpnekA==} - engines: {node: '>=14.13.1 || >=16.0.0'} + /marked-terminal@6.0.0(marked@9.1.1): + resolution: {integrity: sha512-6rruICvqRfA4N+Mvdc0UyDbLA0A0nI5omtARIlin3P2F+aNc3EbW91Rd9HTuD0v9qWyHmNIu8Bt40gAnPfldsg==} + engines: {node: '>=16.0.0'} peerDependencies: - marked: ^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + marked: '>=1 <10' dependencies: ansi-escapes: 6.2.0 cardinal: 2.1.1 chalk: 5.3.0 cli-table3: 0.6.3 - marked: 5.1.2 - node-emoji: 1.11.0 - supports-hyperlinks: 2.3.0 + marked: 9.1.1 + node-emoji: 2.1.0 + supports-hyperlinks: 3.0.0 dev: true /marked@2.1.3: @@ -7503,27 +7762,15 @@ packages: hasBin: true dev: true - /marked@5.1.2: - resolution: {integrity: sha512-ahRPGXJpjMjwSOlBoTMZAK7ATXkli5qCPxZ21TG44rx1KEo44bii4ekgTDQPNRQ4Kh7JMb9Ub1PVk1NxRSsorg==} + /marked@9.1.1: + resolution: {integrity: sha512-ZmXkUGH54U4rEy3GL9vYj8+S1PHJx/zz5pc4Frn7UdGiNREKT12fWBJ5a5ffjFtghx9C9912vEg9Zra1Nf7CnA==} engines: {node: '>= 16'} hasBin: true dev: true - /meow@8.1.2: - resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} - engines: {node: '>=10'} - dependencies: - '@types/minimist': 1.2.2 - camelcase-keys: 6.2.2 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.18.1 - yargs-parser: 20.2.9 + /meow@12.1.1: + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} + engines: {node: '>=16.10'} dev: true /merge-stream@2.0.0: @@ -7535,7 +7782,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.3.0(@types/node@20.5.0): + /meros@1.3.0(@types/node@20.8.4): resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} engines: {node: '>=13'} peerDependencies: @@ -7544,7 +7791,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.5.0 + '@types/node': 20.8.4 dev: true /micro-spelling-correcter@1.1.1: @@ -7640,15 +7887,6 @@ packages: brace-expansion: 2.0.1 dev: true - /minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - dev: true - /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true @@ -7768,11 +8006,6 @@ packages: yargs-unparser: 2.0.0 dev: true - /modify-values@1.0.1: - resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} - engines: {node: '>=0.10.0'} - dev: true - /moment@2.29.4: resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} dev: true @@ -7848,10 +8081,13 @@ packages: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} dev: true - /node-emoji@1.11.0: - resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} + /node-emoji@2.1.0: + resolution: {integrity: sha512-tcsBm9C6FmPN5Wo7OjFi9lgMyJjvkAeirmjR/ax8Ttfqy4N8PoFic26uqFTIgayHPNI5FH4ltUvfh9kHzwcK9A==} dependencies: - lodash: 4.17.21 + '@sindresorhus/is': 3.1.2 + char-regex: 1.0.2 + emojilib: 2.4.0 + skin-tone: 2.0.0 dev: true /node-environment-flags@1.0.6: @@ -7916,21 +8152,11 @@ packages: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.2 + resolve: 1.22.3 semver: 5.7.2 validate-npm-package-license: 3.0.4 dev: true - /normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.12.1 - semver: 7.5.4 - validate-npm-package-license: 3.0.4 - dev: true - /normalize-package-data@5.0.0: resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -8003,9 +8229,9 @@ packages: which: 1.3.1 dev: true - /npm@9.8.1: - resolution: {integrity: sha512-AfDvThQzsIXhYgk9zhbk5R+lh811lKkLAeQMMhSypf1BM7zUafeIIBzMzespeuVEJ0+LvY36oRQYf7IKLzU3rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + /npm@10.2.0: + resolution: {integrity: sha512-Auyq6d4cfg/SY4URjZE2aePLOPzK4lUD+qyMxY/7HbxAvCnOCKtMlyLPcbLSOq9lhEGBZN800S1o+UmfjA5dTg==} + engines: {node: ^18.17.0 || >=20.5.0} hasBin: true dev: true bundledDependencies: @@ -8017,6 +8243,7 @@ packages: - '@npmcli/package-json' - '@npmcli/promise-spawn' - '@npmcli/run-script' + - '@sigstore/tuf' - abbrev - archy - cacache @@ -8052,6 +8279,7 @@ packages: - ms - node-gyp - nopt + - normalize-package-data - npm-audit-report - npm-install-checks - npm-package-arg @@ -8067,8 +8295,9 @@ packages: - qrcode-terminal - read - semver - - sigstore + - spdx-expression-parse - ssri + - strip-ansi - supports-color - tar - text-table @@ -8468,7 +8697,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.10 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -8478,7 +8707,7 @@ packages: resolution: {integrity: sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==} engines: {node: '>=16'} dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.10 error-ex: 1.3.2 json-parse-even-better-errors: 3.0.0 lines-and-columns: 2.0.3 @@ -8666,9 +8895,9 @@ packages: fast-diff: 1.3.0 dev: true - /prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} + /prettier@3.0.3: + resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} + engines: {node: '>=14'} hasBin: true dev: true @@ -8757,11 +8986,6 @@ packages: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true - /quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - dev: true - /rambda@7.5.0: resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==} dev: true @@ -8887,14 +9111,6 @@ packages: tslib: 2.6.1 dev: true - /redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} - dependencies: - indent-string: 4.0.0 - strip-indent: 3.0.0 - dev: true - /redeyed@2.1.1: resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==} dependencies: @@ -8908,6 +9124,18 @@ packages: '@eslint-community/regexpp': 4.6.2 dev: true + /reflect.getprototypeof@1.0.4: + resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.1 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 + dev: true + /regenerate-unicode-properties@10.1.0: resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} engines: {node: '>=4'} @@ -9090,15 +9318,6 @@ packages: deprecated: https://github.com/lydell/resolve-url#deprecated dev: true - /resolve@1.22.2: - resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} - hasBin: true - dependencies: - is-core-module: 2.12.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - /resolve@1.22.3: resolution: {integrity: sha512-P8ur/gp/AmbEzjr729bZnLjXK5Z+4P0zhIJgBgzqRih7hL7BOukHGtSTA3ACMY467GRFz3duQsi0bDZdR7DKdw==} hasBin: true @@ -9151,12 +9370,12 @@ packages: glob: 7.2.3 dev: true - /rimraf@5.0.1: - resolution: {integrity: sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==} + /rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} engines: {node: '>=14'} hasBin: true dependencies: - glob: 10.3.3 + glob: 10.3.10 dev: true /roarr@7.15.1: @@ -9202,6 +9421,16 @@ packages: isarray: 2.0.5 dev: true + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: true @@ -9247,30 +9476,30 @@ packages: regexp-ast-analysis: 0.6.0 dev: true - /semantic-release@21.0.7: - resolution: {integrity: sha512-peRDSXN+hF8EFSKzze90ff/EnAmgITHQ/a3SZpRV3479ny0BIZWEJ33uX6/GlOSKdaSxo9hVRDyv2/u2MuF+Bw==} - engines: {node: '>=18'} + /semantic-release@22.0.5: + resolution: {integrity: sha512-ESCEQsZlBj1DWMA84RthaJzQHHnihoGk49s9nUxHfRNUNZelLE9JZrE94bHO2Y00EWb7iwrzr1OYhv5QNVmf8A==} + engines: {node: ^18.17 || >=20.6.1} hasBin: true dependencies: - '@semantic-release/commit-analyzer': 10.0.1(semantic-release@21.0.7) + '@semantic-release/commit-analyzer': 11.0.0(semantic-release@22.0.5) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 9.0.4(semantic-release@21.0.7) - '@semantic-release/npm': 10.0.4(semantic-release@21.0.7) - '@semantic-release/release-notes-generator': 11.0.4(semantic-release@21.0.7) - aggregate-error: 4.0.1 + '@semantic-release/github': 9.2.1(semantic-release@22.0.5) + '@semantic-release/npm': 11.0.0(semantic-release@22.0.5) + '@semantic-release/release-notes-generator': 12.0.0(semantic-release@22.0.5) + aggregate-error: 5.0.0 cosmiconfig: 8.2.0 debug: 4.3.4(supports-color@8.1.1) - env-ci: 9.1.1 - execa: 7.2.0 + env-ci: 10.0.0 + execa: 8.0.1 figures: 5.0.0 find-versions: 5.1.0 get-stream: 6.0.1 git-log-parser: 1.2.0 hook-std: 3.0.0 - hosted-git-info: 6.1.1 + hosted-git-info: 7.0.1 lodash-es: 4.17.21 - marked: 5.1.2 - marked-terminal: 5.2.0(marked@5.1.2) + marked: 9.1.1 + marked-terminal: 6.0.0(marked@9.1.1) micromatch: 4.0.5 p-each-series: 3.0.0 p-reduce: 3.0.0 @@ -9327,6 +9556,15 @@ packages: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.0 + dev: true + /set-value@2.0.1: resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} engines: {node: '>=0.10.0'} @@ -9402,6 +9640,13 @@ packages: resolution: {integrity: sha512-p19rtTs+NksBRKW9qn0UhZ8/TUI9BPw9lmtHny+Y3TinWlOa9jWh9xB0AtPSdmOy49NJJJSSe0Ey4C7h0TrcYA==} dev: true + /skin-tone@2.0.0: + resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + engines: {node: '>=8'} + dependencies: + unicode-emoji-modifier-base: 1.0.0 + dev: true + /slash@2.0.0: resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} engines: {node: '>=6'} @@ -9574,16 +9819,9 @@ packages: through2: 2.0.5 dev: true - /split2@3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} - dependencies: - readable-stream: 3.6.2 - dev: true - - /split@1.0.1: - resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} - dependencies: - through: 2.3.8 + /split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} dev: true /sprintf-js@1.0.3: @@ -9813,9 +10051,9 @@ packages: dependencies: has-flag: 4.0.0 - /supports-hyperlinks@2.3.0: - resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} - engines: {node: '>=8'} + /supports-hyperlinks@3.0.0: + resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} + engines: {node: '>=14.18'} dependencies: has-flag: 4.0.0 supports-color: 7.2.0 @@ -9879,9 +10117,9 @@ packages: minimatch: 3.1.2 dev: true - /text-extensions@1.9.0: - resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} - engines: {node: '>=0.10'} + /text-extensions@2.4.0: + resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} + engines: {node: '>=8'} dev: true /text-table@0.2.0: @@ -9977,11 +10215,6 @@ packages: resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==} dev: true - /trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} - dev: true - /ts-api-utils@1.0.1(typescript@5.1.6): resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} engines: {node: '>=16.13.0'} @@ -10058,11 +10291,6 @@ packages: engines: {node: '>=4'} dev: true - /type-fest@0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} - engines: {node: '>=10'} - dev: true - /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -10169,11 +10397,20 @@ packages: which-boxed-primitive: 1.0.2 dev: true + /undici-types@5.25.3: + resolution: {integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==} + dev: true + /unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} engines: {node: '>=4'} dev: true + /unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + dev: true + /unicode-match-property-ecmascript@2.0.0: resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} engines: {node: '>=4'} @@ -10263,6 +10500,17 @@ packages: picocolors: 1.0.0 dev: true + /update-browserslist-db@1.0.13(browserslist@4.22.1): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.1 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: @@ -10357,7 +10605,7 @@ packages: extsprintf: 1.3.0 dev: true - /vite-node@0.34.1(@types/node@20.5.0): + /vite-node@0.34.1(@types/node@20.8.4): resolution: {integrity: sha512-odAZAL9xFMuAg8aWd7nSPT+hU8u2r9gU3LRm9QKjxBEF2rRdWpMuqkrkjvyVQEdNFiBctqr2Gg4uJYizm5Le6w==} engines: {node: '>=v14.18.0'} hasBin: true @@ -10367,7 +10615,7 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.8(@types/node@20.5.0) + vite: 4.4.8(@types/node@20.8.4) transitivePeerDependencies: - '@types/node' - less @@ -10379,7 +10627,7 @@ packages: - terser dev: true - /vite@4.4.8(@types/node@20.5.0): + /vite@4.4.8(@types/node@20.8.4): resolution: {integrity: sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -10407,7 +10655,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.5.0 + '@types/node': 20.8.4 esbuild: 0.18.17 postcss: 8.4.31 rollup: 3.27.2 @@ -10446,9 +10694,9 @@ packages: webdriverio: optional: true dependencies: - '@types/chai': 4.3.5 + '@types/chai': 4.3.7 '@types/chai-subset': 1.3.3 - '@types/node': 20.5.0 + '@types/node': 20.8.4 '@vitest/expect': 0.34.1 '@vitest/runner': 0.34.1 '@vitest/snapshot': 0.34.1 @@ -10457,7 +10705,7 @@ packages: acorn: 8.10.0 acorn-walk: 8.2.0 cac: 6.7.14 - chai: 4.3.7 + chai: 4.3.10 debug: 4.3.4(supports-color@8.1.1) local-pkg: 0.4.3 magic-string: 0.30.2 @@ -10467,8 +10715,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.0 tinypool: 0.7.0 - vite: 4.4.8(@types/node@20.5.0) - vite-node: 0.34.1(@types/node@20.5.0) + vite: 4.4.8(@types/node@20.8.4) + vite-node: 0.34.1(@types/node@20.8.4) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -10522,6 +10770,33 @@ packages: is-symbol: 1.0.4 dev: true + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.5 + has-tostringtag: 1.0.0 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.11 + dev: true + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + /which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} dev: true @@ -10673,7 +10948,7 @@ packages: resolution: {integrity: sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==} engines: {node: ^14.17.0 || >=16.0.0} dependencies: - eslint-visitor-keys: 3.4.2 + eslint-visitor-keys: 3.4.3 lodash: 4.17.21 yaml: 2.3.1 dev: true @@ -10696,11 +10971,6 @@ packages: engines: {node: '>=10'} dev: true - /yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true - /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index 3cf73489b..82b1358ad 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -677,6 +677,7 @@ const getBasicUtils = (context, { * @param {Settings} settings * @param {Report} report * @param {import('eslint').Rule.RuleContext} context + * @param {import('eslint').SourceCode} sc * @param {boolean|undefined} iteratingAll * @param {RuleConfig} ruleConfig * @param {string} indent @@ -689,11 +690,21 @@ const getUtils = ( settings, report, context, + sc, iteratingAll, ruleConfig, indent, ) => { - const ancestors = /** @type {import('eslint').Rule.Node[]} */ (context.getAncestors()); + /* istanbul ignore next */ + const ancestors = /** @type {import('eslint').Rule.Node[]} */ (node ? + (sc.getAncestors ? + ( + sc.getAncestors(node) + ) : + ( + context.getAncestors() + )) : + []); // istanbul ignore next -- Fallback to deprecated method const { @@ -2018,6 +2029,7 @@ const iterate = ( settings, report, context, + sourceCode, iteratingAll, ruleConfig, indent, diff --git a/src/rules/noUndefinedTypes.js b/src/rules/noUndefinedTypes.js index 9f2fce4cd..e05745e9e 100644 --- a/src/rules/noUndefinedTypes.js +++ b/src/rules/noUndefinedTypes.js @@ -285,7 +285,12 @@ export default iterateJsdoc(({ report(`The type '${value}' is undefined.`, null, tag); } } else if (markVariablesAsUsed && !extraTypes.includes(value)) { - context.markVariableAsUsed(value); + /* istanbul ignore else */ + if (sourceCode.markVariableAsUsed) { + sourceCode.markVariableAsUsed(value); + } else { + context.markVariableAsUsed(value); + } } } }); From a11cde3df257ad398321cdaf5d990d518c93c371 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 18 Oct 2023 16:23:36 -0700 Subject: [PATCH 139/273] docs: document `fixerMessage` --- .README/rules/require-jsdoc.md | 10 ++++++++-- docs/rules/require-jsdoc.md | 13 +++++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.README/rules/require-jsdoc.md b/.README/rules/require-jsdoc.md index 8ee920a24..ef5abc597 100644 --- a/.README/rules/require-jsdoc.md +++ b/.README/rules/require-jsdoc.md @@ -9,7 +9,8 @@ functions. Adds an empty JSDoc block unless `enableFixer` is set to `false`. See the `contexts` option for how `inlineCommentBlock` can control the style -of the generated JSDoc block. +of the generated JSDoc block and `fixerMessage` for an optional message +to insert. ## Options @@ -107,6 +108,11 @@ An integer to indicate a minimum number of lines expected for a node in order for it to require documentation. Defaults to `undefined`. This option will apply to any context; see `contexts` for line counts per context. +### `fixerMessage` + +An optional message to add to the inserted JSDoc block. Defaults to the +empty string. + ## Context and settings ||| @@ -114,7 +120,7 @@ apply to any context; see `contexts` for line counts per context. |Context|`ArrowFunctionExpression`, `ClassDeclaration`, `ClassExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| |Tags|N/A| |Recommended|true| -|Options|`publicOnly`, `require`, `contexts`, `exemptEmptyConstructors`, `exemptEmptyFunctions`, `enableFixer`, `minLineCount`| +|Options|`publicOnly`, `require`, `contexts`, `exemptEmptyConstructors`, `exemptEmptyFunctions`, `enableFixer`, `minLineCount`, `fixerMessage`| ## Failing examples diff --git a/docs/rules/require-jsdoc.md b/docs/rules/require-jsdoc.md index e40c04933..93b068929 100644 --- a/docs/rules/require-jsdoc.md +++ b/docs/rules/require-jsdoc.md @@ -14,6 +14,7 @@ * [`checkSetters`](#user-content-require-jsdoc-options-checksetters) * [`enableFixer`](#user-content-require-jsdoc-options-enablefixer) * [`minLineCount`](#user-content-require-jsdoc-options-minlinecount) + * [`fixerMessage`](#user-content-require-jsdoc-options-fixermessage) * [Context and settings](#user-content-require-jsdoc-context-and-settings) * [Failing examples](#user-content-require-jsdoc-failing-examples) * [Passing examples](#user-content-require-jsdoc-passing-examples) @@ -28,7 +29,8 @@ functions. Adds an empty JSDoc block unless `enableFixer` is set to `false`. See the `contexts` option for how `inlineCommentBlock` can control the style -of the generated JSDoc block. +of the generated JSDoc block and `fixerMessage` for an optional message +to insert. @@ -148,6 +150,13 @@ An integer to indicate a minimum number of lines expected for a node in order for it to require documentation. Defaults to `undefined`. This option will apply to any context; see `contexts` for line counts per context. + + +### fixerMessage + +An optional message to add to the inserted JSDoc block. Defaults to the +empty string. + ## Context and settings @@ -157,7 +166,7 @@ apply to any context; see `contexts` for line counts per context. |Context|`ArrowFunctionExpression`, `ClassDeclaration`, `ClassExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| |Tags|N/A| |Recommended|true| -|Options|`publicOnly`, `require`, `contexts`, `exemptEmptyConstructors`, `exemptEmptyFunctions`, `enableFixer`, `minLineCount`| +|Options|`publicOnly`, `require`, `contexts`, `exemptEmptyConstructors`, `exemptEmptyFunctions`, `enableFixer`, `minLineCount`, `fixerMessage`| From aefceca7413ac0263ed1b58127fff4efca89de4f Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 18 Oct 2023 16:26:23 -0700 Subject: [PATCH 140/273] chore: update devDeps. --- package.json | 32 +- pnpm-lock.yaml | 1228 +++++++++++++++++++++++------------------------- 2 files changed, 602 insertions(+), 658 deletions(-) diff --git a/package.json b/package.json index 13c2eec82..4387fba5b 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "description": "JSDoc linting rules for ESLint.", "devDependencies": { "@babel/cli": "^7.23.0", - "@babel/core": "^7.23.0", + "@babel/core": "^7.23.2", "@babel/eslint-parser": "^7.22.15", "@babel/node": "^7.22.19", "@babel/plugin-syntax-class-properties": "^7.12.13", @@ -31,18 +31,18 @@ "@semantic-release/commit-analyzer": "^11.0.0", "@semantic-release/github": "^9.2.1", "@semantic-release/npm": "^11.0.0", - "@types/chai": "^4.3.7", - "@types/debug": "^4.1.9", - "@types/eslint": "^8.44.4", - "@types/esquery": "^1.5.1", - "@types/estree": "^1.0.2", - "@types/json-schema": "^7.0.13", - "@types/lodash.defaultsdeep": "^4.6.7", - "@types/mocha": "^10.0.2", - "@types/node": "^20.8.4", - "@types/semver": "^7.5.3", - "@types/spdx-expression-parse": "^3.0.3", - "@typescript-eslint/parser": "^6.7.5", + "@types/chai": "^4.3.9", + "@types/debug": "^4.1.10", + "@types/eslint": "^8.44.6", + "@types/esquery": "^1.5.2", + "@types/estree": "^1.0.3", + "@types/json-schema": "^7.0.14", + "@types/lodash.defaultsdeep": "^4.6.8", + "@types/mocha": "^10.0.3", + "@types/node": "^20.8.7", + "@types/semver": "^7.5.4", + "@types/spdx-expression-parse": "^3.0.4", + "@typescript-eslint/parser": "^6.8.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", @@ -50,21 +50,21 @@ "cross-env": "^7.0.3", "decamelize": "^5.0.1", "eslint": "8.51.0", - "eslint-config-canonical": "~41.3.0", + "eslint-config-canonical": "~42.0.1", "espree": "^9.6.1", "gitdown": "^3.1.5", "glob": "^10.3.10", "husky": "^8.0.3", "jsdoc-type-pratt-parser": "^4.0.0", "json-schema": "^0.4.0", - "lint-staged": "^14.0.1", + "lint-staged": "^15.0.1", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.2.0", "nyc": "^15.1.0", "open-editor": "^3.0.0", "rimraf": "^5.0.5", "semantic-release": "^22.0.5", - "typescript": "5.1.6" + "typescript": "5.2.2" }, "engines": { "node": ">=16" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 15c433163..36789af75 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,28 +36,28 @@ dependencies: devDependencies: '@babel/cli': specifier: ^7.23.0 - version: 7.23.0(@babel/core@7.23.0) + version: 7.23.0(@babel/core@7.23.2) '@babel/core': - specifier: ^7.23.0 - version: 7.23.0 + specifier: ^7.23.2 + version: 7.23.2 '@babel/eslint-parser': specifier: ^7.22.15 - version: 7.22.15(@babel/core@7.23.0)(eslint@8.51.0) + version: 7.22.15(@babel/core@7.23.2)(eslint@8.51.0) '@babel/node': specifier: ^7.22.19 - version: 7.22.19(@babel/core@7.23.0) + version: 7.22.19(@babel/core@7.23.2) '@babel/plugin-syntax-class-properties': specifier: ^7.12.13 - version: 7.12.13(@babel/core@7.23.0) + version: 7.12.13(@babel/core@7.23.2) '@babel/plugin-transform-flow-strip-types': specifier: ^7.22.5 - version: 7.22.5(@babel/core@7.23.0) + version: 7.22.5(@babel/core@7.23.2) '@babel/preset-env': specifier: ^7.23.2 - version: 7.23.2(@babel/core@7.23.0) + version: 7.23.2(@babel/core@7.23.2) '@babel/register': specifier: ^7.22.15 - version: 7.22.15(@babel/core@7.23.0) + version: 7.22.15(@babel/core@7.23.2) '@es-joy/escodegen': specifier: ^3.5.1 version: 3.5.1 @@ -77,41 +77,41 @@ devDependencies: specifier: ^11.0.0 version: 11.0.0(semantic-release@22.0.5) '@types/chai': - specifier: ^4.3.7 - version: 4.3.7 + specifier: ^4.3.9 + version: 4.3.9 '@types/debug': - specifier: ^4.1.9 - version: 4.1.9 + specifier: ^4.1.10 + version: 4.1.10 '@types/eslint': - specifier: ^8.44.4 - version: 8.44.4 + specifier: ^8.44.6 + version: 8.44.6 '@types/esquery': - specifier: ^1.5.1 - version: 1.5.1 + specifier: ^1.5.2 + version: 1.5.2 '@types/estree': - specifier: ^1.0.2 - version: 1.0.2 + specifier: ^1.0.3 + version: 1.0.3 '@types/json-schema': - specifier: ^7.0.13 - version: 7.0.13 + specifier: ^7.0.14 + version: 7.0.14 '@types/lodash.defaultsdeep': - specifier: ^4.6.7 - version: 4.6.7 + specifier: ^4.6.8 + version: 4.6.8 '@types/mocha': - specifier: ^10.0.2 - version: 10.0.2 + specifier: ^10.0.3 + version: 10.0.3 '@types/node': - specifier: ^20.8.4 - version: 20.8.4 + specifier: ^20.8.7 + version: 20.8.7 '@types/semver': - specifier: ^7.5.3 - version: 7.5.3 + specifier: ^7.5.4 + version: 7.5.4 '@types/spdx-expression-parse': - specifier: ^3.0.3 - version: 3.0.3 + specifier: ^3.0.4 + version: 3.0.4 '@typescript-eslint/parser': - specifier: ^6.7.5 - version: 6.7.5(eslint@8.51.0)(typescript@5.1.6) + specifier: ^6.8.0 + version: 6.8.0(eslint@8.51.0)(typescript@5.2.2) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -134,8 +134,8 @@ devDependencies: specifier: 8.51.0 version: 8.51.0 eslint-config-canonical: - specifier: ~41.3.0 - version: 41.3.0(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.4)(@types/node@20.8.4)(eslint@8.51.0)(graphql@16.7.1)(typescript@5.1.6)(vitest@0.34.1) + specifier: ~42.0.1 + version: 42.0.1(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.6)(@types/node@20.8.7)(eslint@8.51.0)(graphql@16.7.1)(typescript@5.2.2)(vitest@0.34.1) espree: specifier: ^9.6.1 version: 9.6.1 @@ -155,8 +155,8 @@ devDependencies: specifier: ^0.4.0 version: 0.4.0 lint-staged: - specifier: ^14.0.1 - version: 14.0.1 + specifier: ^15.0.1 + version: 15.0.1 lodash.defaultsdeep: specifier: ^4.6.1 version: 4.6.1 @@ -176,8 +176,8 @@ devDependencies: specifier: ^22.0.5 version: 22.0.5 typescript: - specifier: 5.1.6 - version: 5.1.6 + specifier: 5.2.2 + version: 5.2.2 packages: @@ -203,14 +203,14 @@ packages: - encoding dev: true - /@babel/cli@7.23.0(@babel/core@7.23.0): + /@babel/cli@7.23.0(@babel/core@7.23.2): resolution: {integrity: sha512-17E1oSkGk2IwNILM4jtfAvgjt+ohmpfBky8aLerUfYZhiPNg7ca+CRCxZn8QDxwNhV/upsc2VHBCqGFIR+iBfA==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@jridgewell/trace-mapping': 0.3.18 commander: 4.1.1 convert-source-map: 2.0.0 @@ -249,15 +249,15 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.23.0: - resolution: {integrity: sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==} + /@babel/core@7.23.2: + resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.22.13 '@babel/generator': 7.23.0 '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0) + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) '@babel/helpers': 7.23.2 '@babel/parser': 7.23.0 '@babel/template': 7.22.15 @@ -272,14 +272,14 @@ packages: - supports-color dev: true - /@babel/eslint-parser@7.22.15(@babel/core@7.23.0)(eslint@8.51.0): + /@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.51.0): resolution: {integrity: sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 eslint: 8.51.0 eslint-visitor-keys: 2.1.0 @@ -293,21 +293,11 @@ packages: '@babel/eslint-parser': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/eslint-parser': 7.22.15(@babel/core@7.23.0)(eslint@8.51.0) + '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.51.0) eslint: 8.51.0 eslint-rule-composer: 0.3.0 dev: true - /@babel/generator@7.22.10: - resolution: {integrity: sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.10 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 - jsesc: 2.5.2 - dev: true - /@babel/generator@7.23.0: resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} engines: {node: '>=6.9.0'} @@ -343,60 +333,60 @@ packages: semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.0): + /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.2): resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.23.0) + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.23.2) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.22.9(@babel/core@7.23.0): + /@babel/helper-create-class-features-plugin@7.22.9(@babel/core@7.23.2): resolution: {integrity: sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-member-expression-to-functions': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.23.0) + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.23.2) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.23.0): + /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.23.2): resolution: {integrity: sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.0): + /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.2): resolution: {integrity: sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4(supports-color@8.1.1) @@ -467,13 +457,13 @@ packages: '@babel/types': 7.23.0 dev: true - /@babel/helper-module-transforms@7.22.9(@babel/core@7.23.0): + /@babel/helper-module-transforms@7.22.9(@babel/core@7.23.2): resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-module-imports': 7.22.5 '@babel/helper-simple-access': 7.22.5 @@ -481,13 +471,13 @@ packages: '@babel/helper-validator-identifier': 7.22.5 dev: true - /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.0): + /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2): resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -507,37 +497,37 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.0): + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.2): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 dev: true - /@babel/helper-remap-async-to-generator@7.22.9(@babel/core@7.23.0): + /@babel/helper-remap-async-to-generator@7.22.9(@babel/core@7.23.2): resolution: {integrity: sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-wrap-function': 7.22.9 dev: true - /@babel/helper-replace-supers@7.22.9(@babel/core@7.23.0): + /@babel/helper-replace-supers@7.22.9(@babel/core@7.23.2): resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-member-expression-to-functions': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 @@ -631,15 +621,15 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/node@7.22.19(@babel/core@7.23.0): + /@babel/node@7.22.19(@babel/core@7.23.2): resolution: {integrity: sha512-VsKSO9aEHdO16NdtqkJfrXZ9Sxlna1BVnBbToWr1KGdI3cyIk6KqOoa8mWvpK280lJDOwJqxvnl994KmLhq1Yw==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 - '@babel/register': 7.22.15(@babel/core@7.23.0) + '@babel/core': 7.23.2 + '@babel/register': 7.22.15(@babel/core@7.23.2) commander: 4.1.1 core-js: 3.32.0 node-environment-flags: 1.0.6 @@ -660,7 +650,7 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.22.10 + '@babel/types': 7.23.0 dev: true /@babel/parser@7.23.0: @@ -671,892 +661,892 @@ packages: '@babel/types': 7.23.0 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.15(@babel/core@7.23.0): + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.15(@babel/core@7.23.2): resolution: {integrity: sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.15(@babel/core@7.23.0): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.15(@babel/core@7.23.2): resolution: {integrity: sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.0(@babel/core@7.23.0) + '@babel/plugin-transform-optional-chaining': 7.23.0(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.0): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.2): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.0): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.2): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.0): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.2): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.0): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.2): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.0): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.0): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.23.0): + /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.23.0): + /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.23.0): + /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.0): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.2): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.0): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.0): + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.0): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.2): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.0): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.0): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.2): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.0): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.0): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.0): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.0): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.2): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.0): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.2): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.0): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.0 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.0) + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.2) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-generator-functions@7.23.2(@babel/core@7.23.0): + /@babel/plugin-transform-async-generator-functions@7.23.2(@babel/core@7.23.2): resolution: {integrity: sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.0) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.0) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.2) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.2) dev: true - /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-module-imports': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.23.0) + '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.23.2) dev: true - /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping@7.23.0(@babel/core@7.23.0): + /@babel/plugin-transform-block-scoping@7.23.0(@babel/core@7.23.2): resolution: {integrity: sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.23.0) + '@babel/core': 7.23.2 + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.23.2) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-static-block@7.22.11(@babel/core@7.23.0): + /@babel/plugin-transform-class-static-block@7.22.11(@babel/core@7.23.2): resolution: {integrity: sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.23.0 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.0) + '@babel/core': 7.23.2 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.2) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.0) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.2) dev: true - /@babel/plugin-transform-classes@7.22.15(@babel/core@7.23.0): + /@babel/plugin-transform-classes@7.22.15(@babel/core@7.23.2): resolution: {integrity: sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.23.0) + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.23.2) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.5 dev: true - /@babel/plugin-transform-destructuring@7.23.0(@babel/core@7.23.0): + /@babel/plugin-transform-destructuring@7.23.0(@babel/core@7.23.2): resolution: {integrity: sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.0) + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.2) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dynamic-import@7.22.11(@babel/core@7.23.0): + /@babel/plugin-transform-dynamic-import@7.22.11(@babel/core@7.23.2): resolution: {integrity: sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.2) dev: true - /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-export-namespace-from@7.22.11(@babel/core@7.23.0): + /@babel/plugin-transform-export-namespace-from@7.22.11(@babel/core@7.23.2): resolution: {integrity: sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.2) dev: true - /@babel/plugin-transform-flow-strip-types@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-flow-strip-types@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.23.2) dev: true - /@babel/plugin-transform-for-of@7.22.15(@babel/core@7.23.0): + /@babel/plugin-transform-for-of@7.22.15(@babel/core@7.23.2): resolution: {integrity: sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-function-name': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-json-strings@7.22.11(@babel/core@7.23.0): + /@babel/plugin-transform-json-strings@7.22.11(@babel/core@7.23.2): resolution: {integrity: sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.2) dev: true - /@babel/plugin-transform-literals@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-literals@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.22.11(@babel/core@7.23.0): + /@babel/plugin-transform-logical-assignment-operators@7.22.11(@babel/core@7.23.2): resolution: {integrity: sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.2) dev: true - /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd@7.23.0(@babel/core@7.23.0): + /@babel/plugin-transform-modules-amd@7.23.0(@babel/core@7.23.2): resolution: {integrity: sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0) + '@babel/core': 7.23.2 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.0): + /@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.2): resolution: {integrity: sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0) + '@babel/core': 7.23.2 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.23.0(@babel/core@7.23.0): + /@babel/plugin-transform-modules-systemjs@7.23.0(@babel/core@7.23.2): resolution: {integrity: sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0) + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.23.0) + '@babel/core': 7.23.2 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.23.2) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.0 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.0) + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.2) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.22.11(@babel/core@7.23.0): + /@babel/plugin-transform-nullish-coalescing-operator@7.22.11(@babel/core@7.23.2): resolution: {integrity: sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.2) dev: true - /@babel/plugin-transform-numeric-separator@7.22.11(@babel/core@7.23.0): + /@babel/plugin-transform-numeric-separator@7.22.11(@babel/core@7.23.2): resolution: {integrity: sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.2) dev: true - /@babel/plugin-transform-object-rest-spread@7.22.15(@babel/core@7.23.0): + /@babel/plugin-transform-object-rest-spread@7.22.15(@babel/core@7.23.2): resolution: {integrity: sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.23.2 - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.0) - '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.2) dev: true - /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.23.0) + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.23.2) dev: true - /@babel/plugin-transform-optional-catch-binding@7.22.11(@babel/core@7.23.0): + /@babel/plugin-transform-optional-catch-binding@7.22.11(@babel/core@7.23.2): resolution: {integrity: sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.2) dev: true - /@babel/plugin-transform-optional-chaining@7.23.0(@babel/core@7.23.0): + /@babel/plugin-transform-optional-chaining@7.23.0(@babel/core@7.23.2): resolution: {integrity: sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.2) dev: true - /@babel/plugin-transform-parameters@7.22.15(@babel/core@7.23.0): + /@babel/plugin-transform-parameters@7.22.15(@babel/core@7.23.2): resolution: {integrity: sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.23.0) + '@babel/core': 7.23.2 + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.23.2) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-property-in-object@7.22.11(@babel/core@7.23.0): + /@babel/plugin-transform-private-property-in-object@7.22.11(@babel/core@7.23.2): resolution: {integrity: sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.0) + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.2) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.0) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.2) dev: true - /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) '@babel/types': 7.23.0 dev: true - /@babel/plugin-transform-regenerator@7.22.10(@babel/core@7.23.0): + /@babel/plugin-transform-regenerator@7.22.10(@babel/core@7.23.2): resolution: {integrity: sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-spread@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-escapes@7.22.10(@babel/core@7.23.0): + /@babel/plugin-transform-unicode-escapes@7.22.10(@babel/core@7.23.2): resolution: {integrity: sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.0) + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.2) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.0) + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.2) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.23.0): + /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.0 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.0) + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.2) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.23.2(@babel/core@7.23.0): + /@babel/preset-env@7.23.2(@babel/core@7.23.2): resolution: {integrity: sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.23.2 - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.22.15 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.15(@babel/core@7.23.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.15(@babel/core@7.23.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.0) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.0) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.0) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.0) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.0) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.0) - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.0) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.0) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.0) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.0) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.0) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.0) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.0) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.0) - '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-async-generator-functions': 7.23.2(@babel/core@7.23.0) - '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-block-scoping': 7.23.0(@babel/core@7.23.0) - '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-class-static-block': 7.22.11(@babel/core@7.23.0) - '@babel/plugin-transform-classes': 7.22.15(@babel/core@7.23.0) - '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-destructuring': 7.23.0(@babel/core@7.23.0) - '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-dynamic-import': 7.22.11(@babel/core@7.23.0) - '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-export-namespace-from': 7.22.11(@babel/core@7.23.0) - '@babel/plugin-transform-for-of': 7.22.15(@babel/core@7.23.0) - '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-json-strings': 7.22.11(@babel/core@7.23.0) - '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-logical-assignment-operators': 7.22.11(@babel/core@7.23.0) - '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-modules-amd': 7.23.0(@babel/core@7.23.0) - '@babel/plugin-transform-modules-commonjs': 7.23.0(@babel/core@7.23.0) - '@babel/plugin-transform-modules-systemjs': 7.23.0(@babel/core@7.23.0) - '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.22.11(@babel/core@7.23.0) - '@babel/plugin-transform-numeric-separator': 7.22.11(@babel/core@7.23.0) - '@babel/plugin-transform-object-rest-spread': 7.22.15(@babel/core@7.23.0) - '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-optional-catch-binding': 7.22.11(@babel/core@7.23.0) - '@babel/plugin-transform-optional-chaining': 7.23.0(@babel/core@7.23.0) - '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.0) - '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-private-property-in-object': 7.22.11(@babel/core@7.23.0) - '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-regenerator': 7.22.10(@babel/core@7.23.0) - '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-unicode-escapes': 7.22.10(@babel/core@7.23.0) - '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.23.0) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.0) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.2) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.2) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.2) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.2) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.2) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.2) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.2) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.2) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.2) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-async-generator-functions': 7.23.2(@babel/core@7.23.2) + '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-block-scoping': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-class-static-block': 7.22.11(@babel/core@7.23.2) + '@babel/plugin-transform-classes': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-destructuring': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-dynamic-import': 7.22.11(@babel/core@7.23.2) + '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-export-namespace-from': 7.22.11(@babel/core@7.23.2) + '@babel/plugin-transform-for-of': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-json-strings': 7.22.11(@babel/core@7.23.2) + '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-logical-assignment-operators': 7.22.11(@babel/core@7.23.2) + '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-modules-amd': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-modules-commonjs': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-modules-systemjs': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-nullish-coalescing-operator': 7.22.11(@babel/core@7.23.2) + '@babel/plugin-transform-numeric-separator': 7.22.11(@babel/core@7.23.2) + '@babel/plugin-transform-object-rest-spread': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-optional-catch-binding': 7.22.11(@babel/core@7.23.2) + '@babel/plugin-transform-optional-chaining': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-private-property-in-object': 7.22.11(@babel/core@7.23.2) + '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-regenerator': 7.22.10(@babel/core@7.23.2) + '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-unicode-escapes': 7.22.10(@babel/core@7.23.2) + '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.23.2) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.2) '@babel/types': 7.23.0 - babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.0) - babel-plugin-polyfill-corejs3: 0.8.5(@babel/core@7.23.0) - babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.0) + babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.2) + babel-plugin-polyfill-corejs3: 0.8.5(@babel/core@7.23.2) + babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.2) core-js-compat: 3.32.0 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.0): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.2): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 '@babel/types': 7.23.0 esutils: 2.0.3 dev: true - /@babel/register@7.22.15(@babel/core@7.23.0): + /@babel/register@7.22.15(@babel/core@7.23.2): resolution: {integrity: sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -1601,24 +1591,6 @@ packages: '@babel/types': 7.23.0 dev: true - /@babel/traverse@7.22.10: - resolution: {integrity: sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.22.10 - '@babel/generator': 7.22.10 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.22.10 - '@babel/types': 7.22.10 - debug: 4.3.4(supports-color@8.1.1) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/traverse@7.23.2: resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} engines: {node: '>=6.9.0'} @@ -1637,15 +1609,6 @@ packages: - supports-color dev: true - /@babel/types@7.22.10: - resolution: {integrity: sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.22.5 - '@babel/helper-validator-identifier': 7.22.5 - to-fast-properties: 2.0.0 - dev: true - /@babel/types@7.23.0: resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} engines: {node: '>=6.9.0'} @@ -1684,13 +1647,13 @@ packages: resolution: {integrity: sha512-PvggHK8390M0S/KyS2hUriNu83TLpOv2fjtuKdqE7+SeIKh7o6BgbCVjh0nxbMKVWToG2rGAaMGbOQIhxcq3ew==} engines: {node: '>=12.0.0'} dependencies: - '@babel/core': 7.23.0 - '@babel/eslint-parser': 7.22.15(@babel/core@7.23.0)(eslint@8.51.0) + '@babel/core': 7.23.2 + '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.51.0) '@es-joy/jsdoccomment': 0.38.0 - '@typescript-eslint/parser': 5.62.0(eslint@8.51.0)(typescript@5.1.6) + '@typescript-eslint/parser': 5.62.0(eslint@8.51.0)(typescript@5.2.2) eslint: 8.51.0 esquery: 1.5.0 - typescript: 5.1.6 + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true @@ -1711,7 +1674,6 @@ packages: comment-parser: 1.4.0 esquery: 1.5.0 jsdoc-type-pratt-parser: 4.0.0 - dev: false /@esbuild/android-arm64@0.18.17: resolution: {integrity: sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==} @@ -1952,21 +1914,21 @@ packages: resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==} dev: true - /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.0)(@types/node@20.8.4)(graphql@16.7.1): + /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.2)(@types/node@20.8.7)(graphql@16.7.1): resolution: {integrity: sha512-RbwVlz1gcYG62sECR1u0XqMh8w5e5XMCCZoMvPQ3nJzEBCTfXLGX727GBoRmSvY1x4gJmqNZ1lsOX7lZY14RIw==} engines: {node: '>=12'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@babel/code-frame': 7.22.10 - '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.23.0)(graphql@16.7.1) - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.0)(graphql@16.7.1) + '@babel/code-frame': 7.22.13 + '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.23.2)(graphql@16.7.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.2)(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) chalk: 4.1.2 debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.3.1 graphql: 16.7.1 - graphql-config: 4.5.0(@types/node@20.8.4)(graphql@16.7.1) + graphql-config: 4.5.0(@types/node@20.8.7)(graphql@16.7.1) graphql-depth-limit: 1.1.0(graphql@16.7.1) lodash.lowercase: 4.3.0 tslib: 2.6.1 @@ -1992,12 +1954,12 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.23.0)(graphql@16.7.1): + /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.23.2)(graphql@16.7.1): resolution: {integrity: sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.0)(graphql@16.7.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.2)(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) globby: 11.1.0 graphql: 16.7.1 @@ -2041,7 +2003,7 @@ packages: - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.10(@types/node@20.8.4)(graphql@16.7.1): + /@graphql-tools/executor-http@0.1.10(@types/node@20.8.7)(graphql@16.7.1): resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -2052,7 +2014,7 @@ packages: dset: 3.1.2 extract-files: 11.0.0 graphql: 16.7.1 - meros: 1.3.0(@types/node@20.8.4) + meros: 1.3.0(@types/node@20.8.7) tslib: 2.6.1 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -2101,15 +2063,15 @@ packages: unixify: 1.0.0 dev: true - /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.23.0)(graphql@16.7.1): + /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.23.2)(graphql@16.7.1): resolution: {integrity: sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@babel/parser': 7.22.10 - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.0) - '@babel/traverse': 7.22.10 - '@babel/types': 7.22.10 + '@babel/parser': 7.23.0 + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.2) + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 '@graphql-tools/utils': 9.2.1(graphql@16.7.1) graphql: 16.7.1 tslib: 2.6.1 @@ -2175,7 +2137,7 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.8.4)(graphql@16.7.1): + /@graphql-tools/url-loader@7.17.18(@types/node@20.8.7)(graphql@16.7.1): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -2183,7 +2145,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 9.0.35(graphql@16.7.1) '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.7.1) - '@graphql-tools/executor-http': 0.1.10(@types/node@20.8.4)(graphql@16.7.1) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.8.7)(graphql@16.7.1) '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) '@graphql-tools/wrap': 9.4.2(graphql@16.7.1) @@ -2334,8 +2296,8 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@next/eslint-plugin-next@13.4.12: - resolution: {integrity: sha512-6rhK9CdxEgj/j1qvXIyLTWEaeFv7zOK8yJMulz3Owel0uek0U9MJCGzmKgYxM3aAUBo3gKeywCZKyQnJKto60A==} + /@next/eslint-plugin-next@13.5.6: + resolution: {integrity: sha512-ng7pU/DDsxPgT6ZPvuprxrkeew3XaRf4LAT4FabaEO/hAbvVx4P7wqnqdbTdDn1kgTvsI4tpIgT4Awn/m0bGbg==} dependencies: glob: 7.1.7 dev: true @@ -2559,8 +2521,8 @@ packages: resolution: {integrity: sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==} dev: true - /@rushstack/eslint-patch@1.3.2: - resolution: {integrity: sha512-V+MvGwaHH03hYhY+k6Ef/xKd6RYlc4q8WBx+2ANmipHJcKuktNcI/NgEsJgdSUF6Lw32njT6OnrRsKYCdgHjYw==} + /@rushstack/eslint-patch@1.5.1: + resolution: {integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==} dev: true /@semantic-release/commit-analyzer@11.0.0(semantic-release@22.0.5): @@ -2673,46 +2635,46 @@ packages: /@types/chai-subset@1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: - '@types/chai': 4.3.7 + '@types/chai': 4.3.9 dev: true - /@types/chai@4.3.7: - resolution: {integrity: sha512-/k+vesl92vMvMygmQrFe9Aimxi6oQXFUX9mA5HanTrKUSAMoLauSi6PNFOdRw0oeqilaW600GNx2vSaT2f8aIQ==} + /@types/chai@4.3.9: + resolution: {integrity: sha512-69TtiDzu0bcmKQv3yg1Zx409/Kd7r0b5F1PfpYJfSHzLGtB53547V4u+9iqKYsTu/O2ai6KTb0TInNpvuQ3qmg==} dev: true - /@types/debug@4.1.9: - resolution: {integrity: sha512-8Hz50m2eoS56ldRlepxSBa6PWEVCtzUo/92HgLc2qTMnotJNIm7xP+UZhyWoYsyOdd5dxZ+NZLb24rsKyFs2ow==} + /@types/debug@4.1.10: + resolution: {integrity: sha512-tOSCru6s732pofZ+sMv9o4o3Zc+Sa8l3bxd/tweTQudFn06vAzb13ZX46Zi6m6EJ+RUbRTHvgQJ1gBtSgkaUYA==} dependencies: '@types/ms': 0.7.31 dev: true - /@types/eslint@8.44.4: - resolution: {integrity: sha512-lOzjyfY/D9QR4hY9oblZ76B90MYTB3RrQ4z2vBIJKj9ROCRqdkYl2gSUx1x1a4IWPjKJZLL4Aw1Zfay7eMnmnA==} + /@types/eslint@8.44.6: + resolution: {integrity: sha512-P6bY56TVmX8y9J87jHNgQh43h6VVU+6H7oN7hgvivV81K2XY8qJZ5vqPy/HdUoVIelii2kChYVzQanlswPWVFw==} dependencies: - '@types/estree': 1.0.2 - '@types/json-schema': 7.0.13 + '@types/estree': 1.0.3 + '@types/json-schema': 7.0.14 dev: true - /@types/esquery@1.5.1: - resolution: {integrity: sha512-tMg6kvauDs1i7uJveMk0uEZ0vgxv/5vqXL1SY4W6yqID4jfNmphJPXrt76mqPK5pzkDMA/Si/YboeHZSq7ltKA==} + /@types/esquery@1.5.2: + resolution: {integrity: sha512-/HlBsR2kIKPg9ptAL6JwMirGcrqZkPy7p1nnJrRngXk9dE4GZtKDkY6Ej0WTk0xSSgFO6ds6IdR4XjYABURcGQ==} dependencies: - '@types/estree': 1.0.2 + '@types/estree': 1.0.3 dev: true - /@types/estree@1.0.2: - resolution: {integrity: sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==} + /@types/estree@1.0.3: + resolution: {integrity: sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==} dev: true - /@types/json-schema@7.0.13: - resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==} + /@types/json-schema@7.0.14: + resolution: {integrity: sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==} dev: true /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/lodash.defaultsdeep@4.6.7: - resolution: {integrity: sha512-D+AUxs64qehDMkbfFoskG0XsIOh2CHBGqYfcQcubLbZSFCGKJKS885su3a97huqBNHj+p9of9UZ/uUIP46wUGQ==} + /@types/lodash.defaultsdeep@4.6.8: + resolution: {integrity: sha512-KmZGHVBLcdOISWI1smMnCwP3KSL6oF6AjJwoTL2c/pF2+wDCtVZkmTCbYgK+m1wvkqN+sxl06rZuIuE8k1fuKQ==} dependencies: '@types/lodash': 4.14.196 dev: true @@ -2721,16 +2683,16 @@ packages: resolution: {integrity: sha512-22y3o88f4a94mKljsZcanlNWPzO0uBsBdzLAngf2tp533LzZcQzb6+eZPJ+vCTt+bqF2XnvT9gejTLsAcJAJyQ==} dev: true - /@types/mocha@10.0.2: - resolution: {integrity: sha512-NaHL0+0lLNhX6d9rs+NSt97WH/gIlRHmszXbQ/8/MV/eVcFNdeJ/GYhrFuUc8K7WuPhRhTSdMkCp8VMzhUq85w==} + /@types/mocha@10.0.3: + resolution: {integrity: sha512-RsOPImTriV/OE4A9qKjMtk2MnXiuLLbcO3nCXK+kvq4nr0iMfFgpjaX3MPLb6f7+EL1FGSelYvuJMV6REH+ZPQ==} dev: true /@types/ms@0.7.31: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node@20.8.4: - resolution: {integrity: sha512-ZVPnqU58giiCjSxjVUESDtdPk4QR5WQhhINbc9UBrKLU68MX5BF6kbQzTrkwbolyr0X8ChBpXfavr5mZFKZQ5A==} + /@types/node@20.8.7: + resolution: {integrity: sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ==} dependencies: undici-types: 5.25.3 dev: true @@ -2739,21 +2701,21 @@ packages: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true - /@types/semver@7.5.3: - resolution: {integrity: sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==} + /@types/semver@7.5.4: + resolution: {integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==} dev: true - /@types/spdx-expression-parse@3.0.3: - resolution: {integrity: sha512-v3OYEMJyAVAlJOpzh/cbQNGS6ToAG4UNUmbLCDey6yc9qancsaaYz2ZigAwX/7L+fYN2X8Q6X82IsJv2EZnSNA==} + /@types/spdx-expression-parse@3.0.4: + resolution: {integrity: sha512-5Yq7gt6fo2lQKcLTjEsXBFuiOwx1vWwlChjmB12yTdtcqmDkbQbWeGONSWVKNZL/0OnY78tvQ18r//RsrtUZVQ==} dev: true /@types/ws@8.5.5: resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} dependencies: - '@types/node': 20.8.4 + '@types/node': 20.8.7 dev: true - /@typescript-eslint/eslint-plugin@6.7.5(@typescript-eslint/parser@6.7.5)(eslint@8.51.0)(typescript@5.1.6): + /@typescript-eslint/eslint-plugin@6.7.5(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@5.2.2): resolution: {integrity: sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2765,10 +2727,10 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.7.5(eslint@8.51.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.8.0(eslint@8.51.0)(typescript@5.2.2) '@typescript-eslint/scope-manager': 6.7.5 - '@typescript-eslint/type-utils': 6.7.5(eslint@8.51.0)(typescript@5.1.6) - '@typescript-eslint/utils': 6.7.5(eslint@8.51.0)(typescript@5.1.6) + '@typescript-eslint/type-utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.7.5 debug: 4.3.4(supports-color@8.1.1) eslint: 8.51.0 @@ -2776,26 +2738,26 @@ packages: ignore: 5.2.4 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.1.6) - typescript: 5.1.6 + ts-api-utils: 1.0.1(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/experimental-utils@5.62.0(eslint@8.51.0)(typescript@5.1.6): + /@typescript-eslint/experimental-utils@5.62.0(eslint@8.51.0)(typescript@5.2.2): resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.51.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.51.0)(typescript@5.2.2) eslint: 8.51.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.51.0)(typescript@5.1.6): + /@typescript-eslint/parser@5.62.0(eslint@8.51.0)(typescript@5.2.2): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2807,16 +2769,16 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) debug: 4.3.4(supports-color@8.1.1) eslint: 8.51.0 - typescript: 5.1.6 + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.7.5(eslint@8.51.0)(typescript@5.1.6): - resolution: {integrity: sha512-bIZVSGx2UME/lmhLcjdVc7ePBwn7CLqKarUBL4me1C5feOd663liTGjMBGVcGr+BhnSLeP4SgwdvNnnkbIdkCw==} + /@typescript-eslint/parser@6.8.0(eslint@8.51.0)(typescript@5.2.2): + resolution: {integrity: sha512-5tNs6Bw0j6BdWuP8Fx+VH4G9fEPDxnVI7yH1IAPkQH5RUtvKwRoqdecAPdQXv4rSOADAaz1LFBZvZG7VbXivSg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2825,13 +2787,13 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.7.5 - '@typescript-eslint/types': 6.7.5 - '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.7.5 + '@typescript-eslint/scope-manager': 6.8.0 + '@typescript-eslint/types': 6.8.0 + '@typescript-eslint/typescript-estree': 6.8.0(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.8.0 debug: 4.3.4(supports-color@8.1.1) eslint: 8.51.0 - typescript: 5.1.6 + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true @@ -2844,14 +2806,6 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@6.2.1: - resolution: {integrity: sha512-UCqBF9WFqv64xNsIEPfBtenbfodPXsJ3nPAr55mGPkQIkiQvgoWNo+astj9ZUfJfVKiYgAZDMnM6dIpsxUMp3Q==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.2.1 - '@typescript-eslint/visitor-keys': 6.2.1 - dev: true - /@typescript-eslint/scope-manager@6.7.5: resolution: {integrity: sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==} engines: {node: ^16.0.0 || >=18.0.0} @@ -2860,7 +2814,15 @@ packages: '@typescript-eslint/visitor-keys': 6.7.5 dev: true - /@typescript-eslint/type-utils@6.7.5(eslint@8.51.0)(typescript@5.1.6): + /@typescript-eslint/scope-manager@6.8.0: + resolution: {integrity: sha512-xe0HNBVwCph7rak+ZHcFD6A+q50SMsFwcmfdjs9Kz4qDh5hWhaPhFjRs/SODEhroBI5Ruyvyz9LfwUJ624O40g==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.8.0 + '@typescript-eslint/visitor-keys': 6.8.0 + dev: true + + /@typescript-eslint/type-utils@6.7.5(eslint@8.51.0)(typescript@5.2.2): resolution: {integrity: sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2870,12 +2832,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.1.6) - '@typescript-eslint/utils': 6.7.5(eslint@8.51.0)(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) debug: 4.3.4(supports-color@8.1.1) eslint: 8.51.0 - ts-api-utils: 1.0.1(typescript@5.1.6) - typescript: 5.1.6 + ts-api-utils: 1.0.1(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true @@ -2885,17 +2847,17 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@6.2.1: - resolution: {integrity: sha512-528bGcoelrpw+sETlyM91k51Arl2ajbNT9L4JwoXE2dvRe1yd8Q64E4OL7vHYw31mlnVsf+BeeLyAZUEQtqahQ==} + /@typescript-eslint/types@6.7.5: + resolution: {integrity: sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@6.7.5: - resolution: {integrity: sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==} + /@typescript-eslint/types@6.8.0: + resolution: {integrity: sha512-p5qOxSum7W3k+llc7owEStXlGmSl8FcGvhYt8Vjy7FqEnmkCVlM3P57XQEGj58oqaBWDQXbJDZxwUWMS/EAPNQ==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.1.6): + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.2.2): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2910,14 +2872,14 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - tsutils: 3.21.0(typescript@5.1.6) - typescript: 5.1.6 + tsutils: 3.21.0(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.2.1(typescript@5.1.6): - resolution: {integrity: sha512-G+UJeQx9AKBHRQBpmvr8T/3K5bJa485eu+4tQBxFq0KoT22+jJyzo1B50JDT9QdC1DEmWQfdKsa8ybiNWYsi0Q==} + /@typescript-eslint/typescript-estree@6.7.5(typescript@5.2.2): + resolution: {integrity: sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2925,20 +2887,20 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.2.1 - '@typescript-eslint/visitor-keys': 6.2.1 + '@typescript-eslint/types': 6.7.5 + '@typescript-eslint/visitor-keys': 6.7.5 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.1.6) - typescript: 5.1.6 + ts-api-utils: 1.0.1(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.7.5(typescript@5.1.6): - resolution: {integrity: sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==} + /@typescript-eslint/typescript-estree@6.8.0(typescript@5.2.2): + resolution: {integrity: sha512-ISgV0lQ8XgW+mvv5My/+iTUdRmGspducmQcDw5JxznasXNnZn3SKNrTRuMsEXv+V/O+Lw9AGcQCfVaOPCAk/Zg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2946,30 +2908,30 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.7.5 - '@typescript-eslint/visitor-keys': 6.7.5 + '@typescript-eslint/types': 6.8.0 + '@typescript-eslint/visitor-keys': 6.8.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.1.6) - typescript: 5.1.6 + ts-api-utils: 1.0.1(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.51.0)(typescript@5.1.6): + /@typescript-eslint/utils@5.62.0(eslint@8.51.0)(typescript@5.2.2): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) - '@types/json-schema': 7.0.13 - '@types/semver': 7.5.3 + '@types/json-schema': 7.0.14 + '@types/semver': 7.5.4 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) eslint: 8.51.0 eslint-scope: 5.1.1 semver: 7.5.4 @@ -2978,37 +2940,18 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.2.1(eslint@8.51.0)(typescript@5.1.6): - resolution: {integrity: sha512-eBIXQeupYmxVB6S7x+B9SdBeB6qIdXKjgQBge2J+Ouv8h9Cxm5dHf/gfAZA6dkMaag+03HdbVInuXMmqFB/lKQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) - '@types/json-schema': 7.0.13 - '@types/semver': 7.5.3 - '@typescript-eslint/scope-manager': 6.2.1 - '@typescript-eslint/types': 6.2.1 - '@typescript-eslint/typescript-estree': 6.2.1(typescript@5.1.6) - eslint: 8.51.0 - semver: 7.5.4 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/utils@6.7.5(eslint@8.51.0)(typescript@5.1.6): + /@typescript-eslint/utils@6.7.5(eslint@8.51.0)(typescript@5.2.2): resolution: {integrity: sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) - '@types/json-schema': 7.0.13 - '@types/semver': 7.5.3 + '@types/json-schema': 7.0.14 + '@types/semver': 7.5.4 '@typescript-eslint/scope-manager': 6.7.5 '@typescript-eslint/types': 6.7.5 - '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.2.2) eslint: 8.51.0 semver: 7.5.4 transitivePeerDependencies: @@ -3024,19 +2967,19 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.2.1: - resolution: {integrity: sha512-iTN6w3k2JEZ7cyVdZJTVJx2Lv7t6zFA8DCrJEHD2mwfc16AEvvBWVhbFh34XyG2NORCd0viIgQY1+u7kPI0WpA==} + /@typescript-eslint/visitor-keys@6.7.5: + resolution: {integrity: sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.2.1 + '@typescript-eslint/types': 6.7.5 eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.7.5: - resolution: {integrity: sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==} + /@typescript-eslint/visitor-keys@6.8.0: + resolution: {integrity: sha512-oqAnbA7c+pgOhW2OhGvxm0t1BULX5peQI/rLsNDpGM78EebV3C9IGbX5HNZabuZ6UQrYveCLjKo8Iy/lLlBkkg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.7.5 + '@typescript-eslint/types': 6.8.0 eslint-visitor-keys: 3.4.3 dev: true @@ -3371,7 +3314,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.1 get-intrinsic: 1.2.1 is-string: 1.0.7 @@ -3392,7 +3335,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 get-intrinsic: 1.2.1 @@ -3403,7 +3346,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 dev: true @@ -3413,7 +3356,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 dev: true @@ -3433,7 +3376,7 @@ packages: resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 get-intrinsic: 1.2.1 @@ -3562,38 +3505,38 @@ packages: - supports-color dev: true - /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.0): + /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.2): resolution: {integrity: sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/compat-data': 7.23.2 - '@babel/core': 7.23.0 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.0) + '@babel/core': 7.23.2 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.2) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.8.5(@babel/core@7.23.0): + /babel-plugin-polyfill-corejs3@0.8.5(@babel/core@7.23.2): resolution: {integrity: sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.0 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.0) + '@babel/core': 7.23.2 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.2) core-js-compat: 3.33.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.0): + /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.2): resolution: {integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.0 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.0) + '@babel/core': 7.23.2 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.2) transitivePeerDependencies: - supports-color dev: true @@ -4073,8 +4016,8 @@ packages: delayed-stream: 1.0.0 dev: true - /commander@11.0.0: - resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} + /commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} dev: true @@ -4841,52 +4784,52 @@ packages: eslint: 8.51.0 dev: true - /eslint-config-canonical@41.3.0(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.4)(@types/node@20.8.4)(eslint@8.51.0)(graphql@16.7.1)(typescript@5.1.6)(vitest@0.34.1): - resolution: {integrity: sha512-fCB6PuNqfAvUuqzFdMGT19PTFQXdoqPdIXacPyTSruybWWzaXsBBECu6himd7o9h26h4McYzEM+MKyga3Itp1g==} + /eslint-config-canonical@42.0.1(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.6)(@types/node@20.8.7)(eslint@8.51.0)(graphql@16.7.1)(typescript@5.2.2)(vitest@0.34.1): + resolution: {integrity: sha512-e+taL2j2EoeEJIxftD3+l3U3x/wnGQykrDb0CiBJuD+vCn9rM0Hc+j5ofUz6oKohTAuyR23qO8y6xqjOXnBLdQ==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 dependencies: - '@babel/core': 7.23.0 - '@babel/eslint-parser': 7.22.15(@babel/core@7.23.0)(eslint@8.51.0) + '@babel/core': 7.23.2 + '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.51.0) '@babel/eslint-plugin': 7.22.10(@babel/eslint-parser@7.22.15)(eslint@8.51.0) - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.0) - '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.0)(@types/node@20.8.4)(graphql@16.7.1) - '@next/eslint-plugin-next': 13.4.12 - '@rushstack/eslint-patch': 1.3.2 - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.7.5)(eslint@8.51.0)(typescript@5.1.6) - '@typescript-eslint/parser': 6.7.5(eslint@8.51.0)(typescript@5.1.6) + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.2) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.2)(@types/node@20.8.7)(graphql@16.7.1) + '@next/eslint-plugin-next': 13.5.6 + '@rushstack/eslint-patch': 1.5.1 + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.8.0(eslint@8.51.0)(typescript@5.2.2) eslint: 8.51.0 eslint-config-prettier: 9.0.0(eslint@8.51.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.7.5)(eslint-plugin-import@2.28.1)(eslint@8.51.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.8.0)(eslint-plugin-import@2.28.1)(eslint@8.51.0) eslint-plugin-ava: 14.0.0(eslint@8.51.0) - eslint-plugin-canonical: 4.12.0(@typescript-eslint/parser@6.7.5)(eslint-plugin-import@2.28.1)(eslint@8.51.0)(typescript@5.1.6) + eslint-plugin-canonical: 4.15.1(@typescript-eslint/parser@6.8.0)(eslint-plugin-import@2.28.1)(eslint@8.51.0)(typescript@5.2.2) eslint-plugin-cypress: 2.15.1(eslint@8.51.0) eslint-plugin-eslint-comments: 3.2.0(eslint@8.51.0) eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.51.0) eslint-plugin-fp: 2.3.0(eslint@8.51.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) - eslint-plugin-jest: 27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.51.0)(typescript@5.1.6) - eslint-plugin-jsdoc: 43.2.0(eslint@8.51.0) - eslint-plugin-jsonc: 2.9.0(eslint@8.51.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) + eslint-plugin-jest: 27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.51.0)(typescript@5.2.2) + eslint-plugin-jsdoc: 46.8.2(eslint@8.51.0) + eslint-plugin-jsonc: 2.10.0(eslint@8.51.0) eslint-plugin-jsx-a11y: 6.7.1(eslint@8.51.0) eslint-plugin-lodash: 7.4.0(eslint@8.51.0) - eslint-plugin-mocha: 10.1.0(eslint@8.51.0) + eslint-plugin-mocha: 10.2.0(eslint@8.51.0) eslint-plugin-modules-newline: 0.0.6 eslint-plugin-node: 11.1.0(eslint@8.51.0) - eslint-plugin-prettier: 5.0.1(@types/eslint@8.44.4)(eslint-config-prettier@9.0.0)(eslint@8.51.0)(prettier@3.0.3) + eslint-plugin-prettier: 5.0.1(@types/eslint@8.44.6)(eslint-config-prettier@9.0.0)(eslint@8.51.0)(prettier@3.0.3) eslint-plugin-promise: 6.1.1(eslint@8.51.0) eslint-plugin-react: 7.33.2(eslint@8.51.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.51.0) eslint-plugin-regexp: 1.15.0(eslint@8.51.0) eslint-plugin-simple-import-sort: 10.0.0(eslint@8.51.0) - eslint-plugin-typescript-sort-keys: 3.0.0(@typescript-eslint/parser@6.7.5)(eslint@8.51.0)(typescript@5.1.6) - eslint-plugin-unicorn: 46.0.1(eslint@8.51.0) - eslint-plugin-vitest: 0.2.8(eslint@8.51.0)(typescript@5.1.6)(vitest@0.34.1) + eslint-plugin-typescript-sort-keys: 3.0.0(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@5.2.2) + eslint-plugin-unicorn: 48.0.1(eslint@8.51.0) + eslint-plugin-vitest: 0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.51.0)(typescript@5.2.2)(vitest@0.34.1) eslint-plugin-yml: 1.10.0(eslint@8.51.0) eslint-plugin-zod: 1.4.0(eslint@8.51.0) prettier: 3.0.3 - ramda: 0.29.0 + ramda: 0.29.1 yaml-eslint-parser: 1.2.2 transitivePeerDependencies: - '@babel/plugin-syntax-flow' @@ -4903,7 +4846,6 @@ packages: - supports-color - typescript - utf-8-validate - - vite - vitest dev: true @@ -4926,7 +4868,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.7.5)(eslint-plugin-import@2.28.1)(eslint@8.51.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.8.0)(eslint-plugin-import@2.28.1)(eslint@8.51.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4936,11 +4878,11 @@ packages: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 eslint: 8.51.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) fast-glob: 3.3.1 get-tsconfig: 4.6.2 - is-core-module: 2.12.1 + is-core-module: 2.13.0 is-glob: 4.0.3 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -4949,7 +4891,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4970,11 +4912,11 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.7.5(eslint@8.51.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.8.0(eslint@8.51.0)(typescript@5.2.2) debug: 3.2.7 eslint: 8.51.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.7.5)(eslint-plugin-import@2.28.1)(eslint@8.51.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.8.0)(eslint-plugin-import@2.28.1)(eslint@8.51.0) transitivePeerDependencies: - supports-color dev: true @@ -4996,15 +4938,15 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-canonical@4.12.0(@typescript-eslint/parser@6.7.5)(eslint-plugin-import@2.28.1)(eslint@8.51.0)(typescript@5.1.6): - resolution: {integrity: sha512-q7ghsn0esUmgwamhAomg2edIP5dQNJrdRvxw/aYA7/BkN953VxPL0zKGGrZ2oOmCPAUvg6CY1CE4BzTAq+5eyA==} + /eslint-plugin-canonical@4.15.1(@typescript-eslint/parser@6.8.0)(eslint-plugin-import@2.28.1)(eslint@8.51.0)(typescript@5.2.2): + resolution: {integrity: sha512-xndfaRN9vOb6sd2bd7jKac6oMeDj9ZaKr7uPYt99BGyy4D2gRe4cisIMo4uVUR3CdRSK1fEmH68OeRtmpJ7cpA==} engines: {node: '>=16.0.0'} dependencies: - '@typescript-eslint/utils': 6.2.1(eslint@8.51.0)(typescript@5.1.6) + '@typescript-eslint/utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) chance: 1.1.11 debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.7.5)(eslint-plugin-import@2.28.1)(eslint@8.51.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.8.0)(eslint-plugin-import@2.28.1)(eslint@8.51.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -5013,7 +4955,7 @@ packages: natural-compare: 1.4.0 recast: 0.23.3 roarr: 7.15.1 - ts-unused-exports: 9.0.5(typescript@5.1.6) + ts-unused-exports: 9.0.5(typescript@5.2.2) xregexp: 5.1.1 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -5064,8 +5006,8 @@ packages: '@babel/plugin-transform-react-jsx': ^7.14.9 eslint: ^8.1.0 dependencies: - '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.23.0) - '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.23.2) eslint: 8.51.0 lodash: 4.17.21 string-natural-compare: 3.0.1 @@ -5084,7 +5026,7 @@ packages: req-all: 0.1.0 dev: true - /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0): + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0): resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} engines: {node: '>=4'} peerDependencies: @@ -5094,7 +5036,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.7.5(eslint@8.51.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.8.0(eslint@8.51.0)(typescript@5.2.2) array-includes: 3.1.6 array.prototype.findlastindex: 1.2.2 array.prototype.flat: 1.3.1 @@ -5103,7 +5045,7 @@ packages: doctrine: 2.1.0 eslint: 8.51.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) has: 1.0.3 is-core-module: 2.13.0 is-glob: 4.0.3 @@ -5119,7 +5061,7 @@ packages: - supports-color dev: true - /eslint-plugin-jest@27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.51.0)(typescript@5.1.6): + /eslint-plugin-jest@27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.51.0)(typescript@5.2.2): resolution: {integrity: sha512-3Nfvv3wbq2+PZlRTf2oaAWXWwbdBejFRBR2O8tAO67o+P8zno+QGbcDYaAXODlreXVg+9gvWhKKmG2rgfb8GEg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -5132,41 +5074,43 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.7.5)(eslint@8.51.0)(typescript@5.1.6) - '@typescript-eslint/utils': 5.62.0(eslint@8.51.0)(typescript@5.1.6) + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.51.0)(typescript@5.2.2) eslint: 8.51.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsdoc@43.2.0(eslint@8.51.0): - resolution: {integrity: sha512-Hst7XUfqh28UmPD52oTXmjaRN3d0KrmOZdgtp4h9/VHUJD3Evoo82ZGXi1TtRDWgWhvqDIRI63O49H0eH7NrZQ==} + /eslint-plugin-jsdoc@46.8.2(eslint@8.51.0): + resolution: {integrity: sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ==} engines: {node: '>=16'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@es-joy/jsdoccomment': 0.38.0 + '@es-joy/jsdoccomment': 0.40.1 are-docs-informative: 0.0.2 - comment-parser: 1.3.1 + comment-parser: 1.4.0 debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 eslint: 8.51.0 esquery: 1.5.0 + is-builtin-module: 3.2.1 semver: 7.5.4 spdx-expression-parse: 3.0.1 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-jsonc@2.9.0(eslint@8.51.0): - resolution: {integrity: sha512-RK+LeONVukbLwT2+t7/OY54NJRccTXh/QbnXzPuTLpFMVZhPuq1C9E07+qWenGx7rrQl0kAalAWl7EmB+RjpGA==} + /eslint-plugin-jsonc@2.10.0(eslint@8.51.0): + resolution: {integrity: sha512-9d//o6Jyh4s1RxC9fNSt1+MMaFN2ruFdXPG9XZcb/mR2KkfjADYiNL/hbU6W0Cyxfg3tS/XSFuhl5LgtMD8hmw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) eslint: 8.51.0 + eslint-compat-utils: 0.1.2(eslint@8.51.0) jsonc-eslint-parser: 2.3.0 natural-compare: 1.4.0 dev: true @@ -5206,8 +5150,8 @@ packages: lodash: 4.17.21 dev: true - /eslint-plugin-mocha@10.1.0(eslint@8.51.0): - resolution: {integrity: sha512-xLqqWUF17llsogVOC+8C6/jvQ+4IoOREbN7ZCHuOHuD6cT5cDD4h7f2LgsZuzMAiwswWE21tO7ExaknHVDrSkw==} + /eslint-plugin-mocha@10.2.0(eslint@8.51.0): + resolution: {integrity: sha512-ZhdxzSZnd1P9LqDPF0DBcFLpRIGdh1zkF2JHnQklKQOvrQtT73kdP5K9V2mzvbLR+cCAO9OI48NXK/Ax9/ciCQ==} engines: {node: '>=14.0.0'} peerDependencies: eslint: '>=7.0.0' @@ -5239,7 +5183,7 @@ packages: semver: 6.3.1 dev: true - /eslint-plugin-prettier@5.0.1(@types/eslint@8.44.4)(eslint-config-prettier@9.0.0)(eslint@8.51.0)(prettier@3.0.3): + /eslint-plugin-prettier@5.0.1(@types/eslint@8.44.6)(eslint-config-prettier@9.0.0)(eslint@8.51.0)(prettier@3.0.3): resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -5253,7 +5197,7 @@ packages: eslint-config-prettier: optional: true dependencies: - '@types/eslint': 8.44.4 + '@types/eslint': 8.44.6 eslint: 8.51.0 eslint-config-prettier: 9.0.0(eslint@8.51.0) prettier: 3.0.3 @@ -5329,7 +5273,7 @@ packages: eslint: 8.51.0 dev: true - /eslint-plugin-typescript-sort-keys@3.0.0(@typescript-eslint/parser@6.7.5)(eslint@8.51.0)(typescript@5.1.6): + /eslint-plugin-typescript-sort-keys@3.0.0(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@5.2.2): resolution: {integrity: sha512-bMmI4prYlf3l/1O8j8Nsz11m+XfKEHRFk9aJqP91L4Hgy7I38lnitnYElDmPQaznE1oFlGgBcnkEizNT2NLylQ==} engines: {node: '>= 16'} peerDependencies: @@ -5337,23 +5281,23 @@ packages: eslint: ^7 || ^8 typescript: ^3 || ^4 || ^5 dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.51.0)(typescript@5.1.6) - '@typescript-eslint/parser': 6.7.5(eslint@8.51.0)(typescript@5.1.6) + '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.8.0(eslint@8.51.0)(typescript@5.2.2) eslint: 8.51.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 - typescript: 5.1.6 + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-unicorn@46.0.1(eslint@8.51.0): - resolution: {integrity: sha512-setGhMTiLAddg1asdwjZ3hekIN5zLznNa5zll7pBPwFOka6greCKDQydfqy4fqyUhndi74wpDzClSQMEcmOaew==} - engines: {node: '>=14.18'} + /eslint-plugin-unicorn@48.0.1(eslint@8.51.0): + resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} + engines: {node: '>=16'} peerDependencies: - eslint: '>=8.28.0' + eslint: '>=8.44.0' dependencies: - '@babel/helper-validator-identifier': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) ci-info: 3.8.0 clean-regexp: 1.0.0 @@ -5366,24 +5310,24 @@ packages: pluralize: 8.0.0 read-pkg-up: 7.0.1 regexp-tree: 0.1.27 - regjsparser: 0.9.1 - safe-regex: 2.1.1 + regjsparser: 0.10.0 semver: 7.5.4 strip-indent: 3.0.0 dev: true - /eslint-plugin-vitest@0.2.8(eslint@8.51.0)(typescript@5.1.6)(vitest@0.34.1): - resolution: {integrity: sha512-q8s4tStyKtn3gXf+8nf1ZYTHhoCXKdnozZzp6u8b4ni5v68Y4vxhNh4Z8njUfNjEY8HoPBB77MazHMR23IPb+g==} + /eslint-plugin-vitest@0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.51.0)(typescript@5.2.2)(vitest@0.34.1): + resolution: {integrity: sha512-A1P0qJVkqHyfDolwm09h8/gu7SbGFOKbacJSeyZ9IRb8uyddgqLcqv4VrqgQfLA7QmGI9lwj1iV90NyZ1cHp8Q==} engines: {node: 14.x || >= 16} peerDependencies: + '@typescript-eslint/eslint-plugin': '*' eslint: '>=8.0.0' - vite: '*' vitest: '*' peerDependenciesMeta: - vite: + '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/utils': 6.2.1(eslint@8.51.0)(typescript@5.1.6) + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) eslint: 8.51.0 vitest: 0.34.1 transitivePeerDependencies: @@ -6270,7 +6214,7 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql-config@4.5.0(@types/node@20.8.4)(graphql@16.7.1): + /graphql-config@4.5.0(@types/node@20.8.7)(graphql@16.7.1): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -6284,7 +6228,7 @@ packages: '@graphql-tools/json-file-loader': 7.4.18(graphql@16.7.1) '@graphql-tools/load': 7.8.14(graphql@16.7.1) '@graphql-tools/merge': 8.4.2(graphql@16.7.1) - '@graphql-tools/url-loader': 7.17.18(@types/node@20.8.4)(graphql@16.7.1) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.8.7)(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) cosmiconfig: 8.0.0 graphql: 16.7.1 @@ -6895,7 +6839,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 + define-properties: 1.2.1 dev: true /is-negative-zero@2.0.2: @@ -7131,7 +7075,7 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.1 @@ -7143,7 +7087,7 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.0 + '@babel/core': 7.23.2 '@babel/parser': 7.22.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 @@ -7461,34 +7405,28 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /lint-staged@14.0.1: - resolution: {integrity: sha512-Mw0cL6HXnHN1ag0mN/Dg4g6sr8uf8sn98w2Oc1ECtFto9tvRF7nkXGJRbx8gPlHyoR0pLyBr2lQHbWwmUHe1Sw==} - engines: {node: ^16.14.0 || >=18.0.0} + /lint-staged@15.0.1: + resolution: {integrity: sha512-2IU5OWmCaxch0X0+IBF4/v7sutpB+F3qoXbro43pYjQTOo5wumckjxoxn47pQBqqBsCWrD5HnI2uG/zJA7isew==} + engines: {node: '>=18.12.0'} hasBin: true dependencies: chalk: 5.3.0 - commander: 11.0.0 + commander: 11.1.0 debug: 4.3.4(supports-color@8.1.1) - execa: 7.2.0 + execa: 8.0.1 lilconfig: 2.1.0 - listr2: 6.6.1 + listr2: 7.0.1 micromatch: 4.0.5 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.3.1 + yaml: 2.3.2 transitivePeerDependencies: - - enquirer - supports-color dev: true - /listr2@6.6.1: - resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==} + /listr2@7.0.1: + resolution: {integrity: sha512-nz+7hwgbDp8eWNoDgzdl4hA/xDSLrNRzPu1TLgOYs6l5Y+Ma6zVWWy9Oyt9TQFONwKoSPoka3H50D3vD5EuNwg==} engines: {node: '>=16.0.0'} - peerDependencies: - enquirer: '>= 2.3.0 < 3' - peerDependenciesMeta: - enquirer: - optional: true dependencies: cli-truncate: 3.1.0 colorette: 2.0.20 @@ -7782,7 +7720,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.3.0(@types/node@20.8.4): + /meros@1.3.0(@types/node@20.8.7): resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} engines: {node: '>=13'} peerDependencies: @@ -7791,7 +7729,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.8.4 + '@types/node': 20.8.7 dev: true /micro-spelling-correcter@1.1.1: @@ -8389,7 +8327,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 + define-properties: 1.2.1 dev: true /object-keys@1.1.1: @@ -8419,7 +8357,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.1 dev: true @@ -8428,7 +8366,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.1 dev: true @@ -8447,7 +8385,7 @@ packages: resolution: {integrity: sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.1 get-intrinsic: 1.2.1 dev: true @@ -8455,7 +8393,7 @@ packages: /object.hasown@1.1.2: resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} dependencies: - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.1 dev: true @@ -8471,7 +8409,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.1 dev: true @@ -8994,8 +8932,8 @@ packages: resolution: {integrity: sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==} dev: true - /ramda@0.29.0: - resolution: {integrity: sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==} + /ramda@0.29.1: + resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==} dev: true /randombytes@2.1.0: @@ -9215,6 +9153,13 @@ packages: '@pnpm/npm-conf': 2.2.2 dev: true + /regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + /regjsparser@0.9.1: resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} hasBin: true @@ -9331,7 +9276,7 @@ packages: resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} hasBin: true dependencies: - is-core-module: 2.12.1 + is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -9453,12 +9398,6 @@ packages: ret: 0.1.15 dev: true - /safe-regex@2.1.1: - resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} - dependencies: - regexp-tree: 0.1.27 - dev: true - /safe-stable-stringify@2.4.3: resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} engines: {node: '>=10'} @@ -9923,7 +9862,7 @@ packages: resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.1 get-intrinsic: 1.2.1 has-symbols: 1.0.3 @@ -10215,16 +10154,16 @@ packages: resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==} dev: true - /ts-api-utils@1.0.1(typescript@5.1.6): + /ts-api-utils@1.0.1(typescript@5.2.2): resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.1.6 + typescript: 5.2.2 dev: true - /ts-unused-exports@9.0.5(typescript@5.1.6): + /ts-unused-exports@9.0.5(typescript@5.2.2): resolution: {integrity: sha512-1XAXaH2i4Al/aZO06pWDn9MUgTN0KQi+fvWudiWfHUTHAav45gzrx7Xq6JAsu6+LoMlVoyGvNvZSPW3KTjDncA==} hasBin: true peerDependencies: @@ -10232,7 +10171,7 @@ packages: dependencies: chalk: 4.1.2 tsconfig-paths: 3.14.2 - typescript: 5.1.6 + typescript: 5.2.2 dev: true /tsconfig-paths@3.14.2: @@ -10252,14 +10191,14 @@ packages: resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} dev: true - /tsutils@3.21.0(typescript@5.1.6): + /tsutils@3.21.0(typescript@5.2.2): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 5.1.6 + typescript: 5.2.2 dev: true /tunnel-agent@0.6.0: @@ -10370,8 +10309,8 @@ packages: is-typedarray: 1.0.0 dev: true - /typescript@5.1.6: - resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} + /typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} hasBin: true dev: true @@ -10605,7 +10544,7 @@ packages: extsprintf: 1.3.0 dev: true - /vite-node@0.34.1(@types/node@20.8.4): + /vite-node@0.34.1(@types/node@20.8.7): resolution: {integrity: sha512-odAZAL9xFMuAg8aWd7nSPT+hU8u2r9gU3LRm9QKjxBEF2rRdWpMuqkrkjvyVQEdNFiBctqr2Gg4uJYizm5Le6w==} engines: {node: '>=v14.18.0'} hasBin: true @@ -10615,7 +10554,7 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.8(@types/node@20.8.4) + vite: 4.4.8(@types/node@20.8.7) transitivePeerDependencies: - '@types/node' - less @@ -10627,7 +10566,7 @@ packages: - terser dev: true - /vite@4.4.8(@types/node@20.8.4): + /vite@4.4.8(@types/node@20.8.7): resolution: {integrity: sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -10655,7 +10594,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.8.4 + '@types/node': 20.8.7 esbuild: 0.18.17 postcss: 8.4.31 rollup: 3.27.2 @@ -10694,9 +10633,9 @@ packages: webdriverio: optional: true dependencies: - '@types/chai': 4.3.7 + '@types/chai': 4.3.9 '@types/chai-subset': 1.3.3 - '@types/node': 20.8.4 + '@types/node': 20.8.7 '@vitest/expect': 0.34.1 '@vitest/runner': 0.34.1 '@vitest/snapshot': 0.34.1 @@ -10715,8 +10654,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.0 tinypool: 0.7.0 - vite: 4.4.8(@types/node@20.8.4) - vite-node: 0.34.1(@types/node@20.8.4) + vite: 4.4.8(@types/node@20.8.7) + vite-node: 0.34.1(@types/node@20.8.7) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -10958,6 +10897,11 @@ packages: engines: {node: '>= 14'} dev: true + /yaml@2.3.2: + resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} + engines: {node: '>= 14'} + dev: true + /yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} From 947f642d2a08e125af70fd67e58a62023607e385 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 26 Oct 2023 07:43:19 -0700 Subject: [PATCH 141/273] chore: update comment-parser and devDeps. --- package.json | 12 +- pnpm-lock.yaml | 467 +++++++++++++++++++++++++------------------------ 2 files changed, 244 insertions(+), 235 deletions(-) diff --git a/package.json b/package.json index 4387fba5b..00125958d 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "dependencies": { "@es-joy/jsdoccomment": "~0.40.1", "are-docs-informative": "^0.0.2", - "comment-parser": "1.4.0", + "comment-parser": "1.4.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", @@ -39,25 +39,25 @@ "@types/json-schema": "^7.0.14", "@types/lodash.defaultsdeep": "^4.6.8", "@types/mocha": "^10.0.3", - "@types/node": "^20.8.7", + "@types/node": "^20.8.9", "@types/semver": "^7.5.4", "@types/spdx-expression-parse": "^3.0.4", - "@typescript-eslint/parser": "^6.8.0", + "@typescript-eslint/parser": "^6.9.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", "chai": "^4.3.10", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "8.51.0", - "eslint-config-canonical": "~42.0.1", + "eslint": "8.52.0", + "eslint-config-canonical": "~42.1.0", "espree": "^9.6.1", "gitdown": "^3.1.5", "glob": "^10.3.10", "husky": "^8.0.3", "jsdoc-type-pratt-parser": "^4.0.0", "json-schema": "^0.4.0", - "lint-staged": "^15.0.1", + "lint-staged": "^15.0.2", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.2.0", "nyc": "^15.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 36789af75..77fe07017 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ dependencies: specifier: ^0.0.2 version: 0.0.2 comment-parser: - specifier: 1.4.0 - version: 1.4.0 + specifier: 1.4.1 + version: 1.4.1 debug: specifier: ^4.3.4 version: 4.3.4(supports-color@8.1.1) @@ -42,7 +42,7 @@ devDependencies: version: 7.23.2 '@babel/eslint-parser': specifier: ^7.22.15 - version: 7.22.15(@babel/core@7.23.2)(eslint@8.51.0) + version: 7.22.15(@babel/core@7.23.2)(eslint@8.52.0) '@babel/node': specifier: ^7.22.19 version: 7.22.19(@babel/core@7.23.2) @@ -101,8 +101,8 @@ devDependencies: specifier: ^10.0.3 version: 10.0.3 '@types/node': - specifier: ^20.8.7 - version: 20.8.7 + specifier: ^20.8.9 + version: 20.8.9 '@types/semver': specifier: ^7.5.4 version: 7.5.4 @@ -110,8 +110,8 @@ devDependencies: specifier: ^3.0.4 version: 3.0.4 '@typescript-eslint/parser': - specifier: ^6.8.0 - version: 6.8.0(eslint@8.51.0)(typescript@5.2.2) + specifier: ^6.9.0 + version: 6.9.0(eslint@8.52.0)(typescript@5.2.2) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -131,11 +131,11 @@ devDependencies: specifier: ^5.0.1 version: 5.0.1 eslint: - specifier: 8.51.0 - version: 8.51.0 + specifier: 8.52.0 + version: 8.52.0 eslint-config-canonical: - specifier: ~42.0.1 - version: 42.0.1(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.6)(@types/node@20.8.7)(eslint@8.51.0)(graphql@16.7.1)(typescript@5.2.2)(vitest@0.34.1) + specifier: ~42.1.0 + version: 42.1.0(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.6)(@types/node@20.8.9)(eslint@8.52.0)(graphql@16.7.1)(typescript@5.2.2)(vitest@0.34.1) espree: specifier: ^9.6.1 version: 9.6.1 @@ -155,8 +155,8 @@ devDependencies: specifier: ^0.4.0 version: 0.4.0 lint-staged: - specifier: ^15.0.1 - version: 15.0.1 + specifier: ^15.0.2 + version: 15.0.2 lodash.defaultsdeep: specifier: ^4.6.1 version: 4.6.1 @@ -272,7 +272,7 @@ packages: - supports-color dev: true - /@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.51.0): + /@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.52.0): resolution: {integrity: sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: @@ -281,20 +281,20 @@ packages: dependencies: '@babel/core': 7.23.2 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.51.0 + eslint: 8.52.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true - /@babel/eslint-plugin@7.22.10(@babel/eslint-parser@7.22.15)(eslint@8.51.0): + /@babel/eslint-plugin@7.22.10(@babel/eslint-parser@7.22.15)(eslint@8.52.0): resolution: {integrity: sha512-SRZcvo3fnO5h79B9DZSV6LG2vHH7OWsSNp1huFLHsXKyytRG413byQk9zxW1VcPOhnzfx2VIUz+8aGbiE7fOkA==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.51.0) - eslint: 8.51.0 + '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.52.0) + eslint: 8.52.0 eslint-rule-composer: 0.3.0 dev: true @@ -1648,10 +1648,10 @@ packages: engines: {node: '>=12.0.0'} dependencies: '@babel/core': 7.23.2 - '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.51.0) + '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.52.0) '@es-joy/jsdoccomment': 0.38.0 - '@typescript-eslint/parser': 5.62.0(eslint@8.51.0)(typescript@5.2.2) - eslint: 8.51.0 + '@typescript-eslint/parser': 5.62.0(eslint@8.52.0)(typescript@5.2.2) + eslint: 8.52.0 esquery: 1.5.0 typescript: 5.2.2 transitivePeerDependencies: @@ -1873,13 +1873,13 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.51.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.52.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.51.0 + eslint: 8.52.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1905,8 +1905,8 @@ packages: - supports-color dev: true - /@eslint/js@8.51.0: - resolution: {integrity: sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==} + /@eslint/js@8.52.0: + resolution: {integrity: sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -1914,7 +1914,7 @@ packages: resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==} dev: true - /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.2)(@types/node@20.8.7)(graphql@16.7.1): + /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.2)(@types/node@20.8.9)(graphql@16.7.1): resolution: {integrity: sha512-RbwVlz1gcYG62sECR1u0XqMh8w5e5XMCCZoMvPQ3nJzEBCTfXLGX727GBoRmSvY1x4gJmqNZ1lsOX7lZY14RIw==} engines: {node: '>=12'} peerDependencies: @@ -1928,7 +1928,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.3.1 graphql: 16.7.1 - graphql-config: 4.5.0(@types/node@20.8.7)(graphql@16.7.1) + graphql-config: 4.5.0(@types/node@20.8.9)(graphql@16.7.1) graphql-depth-limit: 1.1.0(graphql@16.7.1) lodash.lowercase: 4.3.0 tslib: 2.6.1 @@ -2003,7 +2003,7 @@ packages: - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.10(@types/node@20.8.7)(graphql@16.7.1): + /@graphql-tools/executor-http@0.1.10(@types/node@20.8.9)(graphql@16.7.1): resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -2014,7 +2014,7 @@ packages: dset: 3.1.2 extract-files: 11.0.0 graphql: 16.7.1 - meros: 1.3.0(@types/node@20.8.7) + meros: 1.3.0(@types/node@20.8.9) tslib: 2.6.1 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -2137,7 +2137,7 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.8.7)(graphql@16.7.1): + /@graphql-tools/url-loader@7.17.18(@types/node@20.8.9)(graphql@16.7.1): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -2145,7 +2145,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 9.0.35(graphql@16.7.1) '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.7.1) - '@graphql-tools/executor-http': 0.1.10(@types/node@20.8.7)(graphql@16.7.1) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.8.9)(graphql@16.7.1) '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) '@graphql-tools/wrap': 9.4.2(graphql@16.7.1) @@ -2207,11 +2207,11 @@ packages: - supports-color dev: true - /@humanwhocodes/config-array@0.11.11: - resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} + /@humanwhocodes/config-array@0.11.13: + resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 1.2.1 + '@humanwhocodes/object-schema': 2.0.1 debug: 4.3.4(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: @@ -2223,8 +2223,8 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + /@humanwhocodes/object-schema@2.0.1: + resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} dev: true /@isaacs/cliui@8.0.2: @@ -2691,10 +2691,10 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node@20.8.7: - resolution: {integrity: sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ==} + /@types/node@20.8.9: + resolution: {integrity: sha512-UzykFsT3FhHb1h7yD4CA4YhBHq545JC0YnEz41xkipN88eKQtL6rSgocL5tbAP6Ola9Izm/Aw4Ora8He4x0BHg==} dependencies: - undici-types: 5.25.3 + undici-types: 5.26.5 dev: true /@types/normalize-package-data@2.4.1: @@ -2712,10 +2712,10 @@ packages: /@types/ws@8.5.5: resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} dependencies: - '@types/node': 20.8.7 + '@types/node': 20.8.9 dev: true - /@typescript-eslint/eslint-plugin@6.7.5(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@5.2.2): + /@typescript-eslint/eslint-plugin@6.7.5(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)(typescript@5.2.2): resolution: {integrity: sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2727,13 +2727,13 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.8.0(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.9.0(eslint@8.52.0)(typescript@5.2.2) '@typescript-eslint/scope-manager': 6.7.5 - '@typescript-eslint/type-utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/type-utils': 6.7.5(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.5(eslint@8.52.0)(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.7.5 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.51.0 + eslint: 8.52.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare: 1.4.0 @@ -2744,20 +2744,20 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils@5.62.0(eslint@8.51.0)(typescript@5.2.2): + /@typescript-eslint/experimental-utils@5.62.0(eslint@8.52.0)(typescript@5.2.2): resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.51.0)(typescript@5.2.2) - eslint: 8.51.0 + '@typescript-eslint/utils': 5.62.0(eslint@8.52.0)(typescript@5.2.2) + eslint: 8.52.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.51.0)(typescript@5.2.2): + /@typescript-eslint/parser@5.62.0(eslint@8.52.0)(typescript@5.2.2): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2771,14 +2771,14 @@ packages: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.51.0 + eslint: 8.52.0 typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.8.0(eslint@8.51.0)(typescript@5.2.2): - resolution: {integrity: sha512-5tNs6Bw0j6BdWuP8Fx+VH4G9fEPDxnVI7yH1IAPkQH5RUtvKwRoqdecAPdQXv4rSOADAaz1LFBZvZG7VbXivSg==} + /@typescript-eslint/parser@6.9.0(eslint@8.52.0)(typescript@5.2.2): + resolution: {integrity: sha512-GZmjMh4AJ/5gaH4XF2eXA8tMnHWP+Pm1mjQR2QN4Iz+j/zO04b9TOvJYOX2sCNIQHtRStKTxRY1FX7LhpJT4Gw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2787,12 +2787,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.8.0 - '@typescript-eslint/types': 6.8.0 - '@typescript-eslint/typescript-estree': 6.8.0(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.8.0 + '@typescript-eslint/scope-manager': 6.9.0 + '@typescript-eslint/types': 6.9.0 + '@typescript-eslint/typescript-estree': 6.9.0(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.9.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.51.0 + eslint: 8.52.0 typescript: 5.2.2 transitivePeerDependencies: - supports-color @@ -2814,15 +2814,15 @@ packages: '@typescript-eslint/visitor-keys': 6.7.5 dev: true - /@typescript-eslint/scope-manager@6.8.0: - resolution: {integrity: sha512-xe0HNBVwCph7rak+ZHcFD6A+q50SMsFwcmfdjs9Kz4qDh5hWhaPhFjRs/SODEhroBI5Ruyvyz9LfwUJ624O40g==} + /@typescript-eslint/scope-manager@6.9.0: + resolution: {integrity: sha512-1R8A9Mc39n4pCCz9o79qRO31HGNDvC7UhPhv26TovDsWPBDx+Sg3rOZdCELIA3ZmNoWAuxaMOT7aWtGRSYkQxw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.8.0 - '@typescript-eslint/visitor-keys': 6.8.0 + '@typescript-eslint/types': 6.9.0 + '@typescript-eslint/visitor-keys': 6.9.0 dev: true - /@typescript-eslint/type-utils@6.7.5(eslint@8.51.0)(typescript@5.2.2): + /@typescript-eslint/type-utils@6.7.5(eslint@8.52.0)(typescript@5.2.2): resolution: {integrity: sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2833,9 +2833,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.2.2) - '@typescript-eslint/utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.5(eslint@8.52.0)(typescript@5.2.2) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.51.0 + eslint: 8.52.0 ts-api-utils: 1.0.1(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: @@ -2852,8 +2852,8 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@6.8.0: - resolution: {integrity: sha512-p5qOxSum7W3k+llc7owEStXlGmSl8FcGvhYt8Vjy7FqEnmkCVlM3P57XQEGj58oqaBWDQXbJDZxwUWMS/EAPNQ==} + /@typescript-eslint/types@6.9.0: + resolution: {integrity: sha512-+KB0lbkpxBkBSiVCuQvduqMJy+I1FyDbdwSpM3IoBS7APl4Bu15lStPjgBIdykdRqQNYqYNMa8Kuidax6phaEw==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -2899,8 +2899,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.8.0(typescript@5.2.2): - resolution: {integrity: sha512-ISgV0lQ8XgW+mvv5My/+iTUdRmGspducmQcDw5JxznasXNnZn3SKNrTRuMsEXv+V/O+Lw9AGcQCfVaOPCAk/Zg==} + /@typescript-eslint/typescript-estree@6.9.0(typescript@5.2.2): + resolution: {integrity: sha512-NJM2BnJFZBEAbCfBP00zONKXvMqihZCrmwCaik0UhLr0vAgb6oguXxLX1k00oQyD+vZZ+CJn3kocvv2yxm4awQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2908,8 +2908,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.8.0 - '@typescript-eslint/visitor-keys': 6.8.0 + '@typescript-eslint/types': 6.9.0 + '@typescript-eslint/visitor-keys': 6.9.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 @@ -2920,19 +2920,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.51.0)(typescript@5.2.2): + /@typescript-eslint/utils@5.62.0(eslint@8.52.0)(typescript@5.2.2): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) '@types/json-schema': 7.0.14 '@types/semver': 7.5.4 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - eslint: 8.51.0 + eslint: 8.52.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -2940,19 +2940,19 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.7.5(eslint@8.51.0)(typescript@5.2.2): + /@typescript-eslint/utils@6.7.5(eslint@8.52.0)(typescript@5.2.2): resolution: {integrity: sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) '@types/json-schema': 7.0.14 '@types/semver': 7.5.4 '@typescript-eslint/scope-manager': 6.7.5 '@typescript-eslint/types': 6.7.5 '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.2.2) - eslint: 8.51.0 + eslint: 8.52.0 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -2975,14 +2975,18 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.8.0: - resolution: {integrity: sha512-oqAnbA7c+pgOhW2OhGvxm0t1BULX5peQI/rLsNDpGM78EebV3C9IGbX5HNZabuZ6UQrYveCLjKo8Iy/lLlBkkg==} + /@typescript-eslint/visitor-keys@6.9.0: + resolution: {integrity: sha512-dGtAfqjV6RFOtIP8I0B4ZTBRrlTT8NHHlZZSchQx3qReaoDeXhYM++M4So2AgFK9ZB0emRPA6JI1HkafzA2Ibg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.8.0 + '@typescript-eslint/types': 6.9.0 eslint-visitor-keys: 3.4.3 dev: true + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true + /@vitest/expect@0.34.1: resolution: {integrity: sha512-q2CD8+XIsQ+tHwypnoCk8Mnv5e6afLFvinVGCq3/BOT4kQdVQmY6rRfyKkwcg635lbliLPqbunXZr+L1ssUWiQ==} dependencies: @@ -4039,6 +4043,10 @@ packages: resolution: {integrity: sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==} engines: {node: '>= 12.0.0'} + /comment-parser@1.4.1: + resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} + engines: {node: '>= 12.0.0'} + /commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: true @@ -4775,59 +4783,59 @@ packages: lodash.zip: 4.2.0 dev: true - /eslint-compat-utils@0.1.2(eslint@8.51.0): + /eslint-compat-utils@0.1.2(eslint@8.52.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 8.51.0 + eslint: 8.52.0 dev: true - /eslint-config-canonical@42.0.1(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.6)(@types/node@20.8.7)(eslint@8.51.0)(graphql@16.7.1)(typescript@5.2.2)(vitest@0.34.1): - resolution: {integrity: sha512-e+taL2j2EoeEJIxftD3+l3U3x/wnGQykrDb0CiBJuD+vCn9rM0Hc+j5ofUz6oKohTAuyR23qO8y6xqjOXnBLdQ==} + /eslint-config-canonical@42.1.0(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.6)(@types/node@20.8.9)(eslint@8.52.0)(graphql@16.7.1)(typescript@5.2.2)(vitest@0.34.1): + resolution: {integrity: sha512-h1h+Z4t/iy4mJfGud9s7jsVg/JBsAgIIYKgcrdODzJ45MU6Drs0aZ5efkY47y2e86CLusbZArf9ZQJcsLeI30g==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 dependencies: '@babel/core': 7.23.2 - '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.51.0) - '@babel/eslint-plugin': 7.22.10(@babel/eslint-parser@7.22.15)(eslint@8.51.0) + '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.52.0) + '@babel/eslint-plugin': 7.22.10(@babel/eslint-parser@7.22.15)(eslint@8.52.0) '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.2) - '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.2)(@types/node@20.8.7)(graphql@16.7.1) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.2)(@types/node@20.8.9)(graphql@16.7.1) '@next/eslint-plugin-next': 13.5.6 '@rushstack/eslint-patch': 1.5.1 - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@5.2.2) - '@typescript-eslint/parser': 6.8.0(eslint@8.51.0)(typescript@5.2.2) - eslint: 8.51.0 - eslint-config-prettier: 9.0.0(eslint@8.51.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.8.0)(eslint-plugin-import@2.28.1)(eslint@8.51.0) - eslint-plugin-ava: 14.0.0(eslint@8.51.0) - eslint-plugin-canonical: 4.15.1(@typescript-eslint/parser@6.8.0)(eslint-plugin-import@2.28.1)(eslint@8.51.0)(typescript@5.2.2) - eslint-plugin-cypress: 2.15.1(eslint@8.51.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.51.0) - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.51.0) - eslint-plugin-fp: 2.3.0(eslint@8.51.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) - eslint-plugin-jest: 27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.51.0)(typescript@5.2.2) - eslint-plugin-jsdoc: 46.8.2(eslint@8.51.0) - eslint-plugin-jsonc: 2.10.0(eslint@8.51.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@8.51.0) - eslint-plugin-lodash: 7.4.0(eslint@8.51.0) - eslint-plugin-mocha: 10.2.0(eslint@8.51.0) + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.9.0(eslint@8.52.0)(typescript@5.2.2) + eslint: 8.52.0 + eslint-config-prettier: 9.0.0(eslint@8.52.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.0)(eslint-plugin-import@2.28.1)(eslint@8.52.0) + eslint-plugin-ava: 14.0.0(eslint@8.52.0) + eslint-plugin-canonical: 4.15.1(@typescript-eslint/parser@6.9.0)(eslint-plugin-import@2.28.1)(eslint@8.52.0)(typescript@5.2.2) + eslint-plugin-cypress: 2.15.1(eslint@8.52.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.52.0) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.52.0) + eslint-plugin-fp: 2.3.0(eslint@8.52.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) + eslint-plugin-jest: 27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.52.0)(typescript@5.2.2) + eslint-plugin-jsdoc: 46.8.2(eslint@8.52.0) + eslint-plugin-jsonc: 2.10.0(eslint@8.52.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.52.0) + eslint-plugin-lodash: 7.4.0(eslint@8.52.0) + eslint-plugin-mocha: 10.2.0(eslint@8.52.0) eslint-plugin-modules-newline: 0.0.6 - eslint-plugin-node: 11.1.0(eslint@8.51.0) - eslint-plugin-prettier: 5.0.1(@types/eslint@8.44.6)(eslint-config-prettier@9.0.0)(eslint@8.51.0)(prettier@3.0.3) - eslint-plugin-promise: 6.1.1(eslint@8.51.0) - eslint-plugin-react: 7.33.2(eslint@8.51.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.51.0) - eslint-plugin-regexp: 1.15.0(eslint@8.51.0) - eslint-plugin-simple-import-sort: 10.0.0(eslint@8.51.0) - eslint-plugin-typescript-sort-keys: 3.0.0(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@5.2.2) - eslint-plugin-unicorn: 48.0.1(eslint@8.51.0) - eslint-plugin-vitest: 0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.51.0)(typescript@5.2.2)(vitest@0.34.1) - eslint-plugin-yml: 1.10.0(eslint@8.51.0) - eslint-plugin-zod: 1.4.0(eslint@8.51.0) + eslint-plugin-node: 11.1.0(eslint@8.52.0) + eslint-plugin-prettier: 5.0.1(@types/eslint@8.44.6)(eslint-config-prettier@9.0.0)(eslint@8.52.0)(prettier@3.0.3) + eslint-plugin-promise: 6.1.1(eslint@8.52.0) + eslint-plugin-react: 7.33.2(eslint@8.52.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.52.0) + eslint-plugin-regexp: 1.15.0(eslint@8.52.0) + eslint-plugin-simple-import-sort: 10.0.0(eslint@8.52.0) + eslint-plugin-typescript-sort-keys: 3.0.0(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)(typescript@5.2.2) + eslint-plugin-unicorn: 48.0.1(eslint@8.52.0) + eslint-plugin-vitest: 0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.52.0)(typescript@5.2.2)(vitest@0.34.1) + eslint-plugin-yml: 1.10.0(eslint@8.52.0) + eslint-plugin-zod: 1.4.0(eslint@8.52.0) prettier: 3.0.3 ramda: 0.29.1 yaml-eslint-parser: 1.2.2 @@ -4849,13 +4857,13 @@ packages: - vitest dev: true - /eslint-config-prettier@9.0.0(eslint@8.51.0): + /eslint-config-prettier@9.0.0(eslint@8.52.0): resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.51.0 + eslint: 8.52.0 dev: true /eslint-import-resolver-node@0.3.7: @@ -4868,7 +4876,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.8.0)(eslint-plugin-import@2.28.1)(eslint@8.51.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.9.0)(eslint-plugin-import@2.28.1)(eslint@8.52.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4877,9 +4885,9 @@ packages: dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 - eslint: 8.51.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) + eslint: 8.52.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) fast-glob: 3.3.1 get-tsconfig: 4.6.2 is-core-module: 2.13.0 @@ -4891,7 +4899,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4912,24 +4920,24 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.8.0(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.9.0(eslint@8.52.0)(typescript@5.2.2) debug: 3.2.7 - eslint: 8.51.0 + eslint: 8.52.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.8.0)(eslint-plugin-import@2.28.1)(eslint@8.51.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.0)(eslint-plugin-import@2.28.1)(eslint@8.52.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-ava@14.0.0(eslint@8.51.0): + /eslint-plugin-ava@14.0.0(eslint@8.52.0): resolution: {integrity: sha512-XmKT6hppaipwwnLVwwvQliSU6AF1QMHiNoLD5JQfzhUhf0jY7CO0O624fQrE+Y/fTb9vbW8r77nKf7M/oHulxw==} engines: {node: '>=14.17 <15 || >=16.4'} peerDependencies: eslint: '>=8.26.0' dependencies: enhance-visitors: 1.0.0 - eslint: 8.51.0 - eslint-utils: 3.0.0(eslint@8.51.0) + eslint: 8.52.0 + eslint-utils: 3.0.0(eslint@8.52.0) espree: 9.6.1 espurify: 2.1.1 import-modules: 2.1.0 @@ -4938,15 +4946,15 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-canonical@4.15.1(@typescript-eslint/parser@6.8.0)(eslint-plugin-import@2.28.1)(eslint@8.51.0)(typescript@5.2.2): + /eslint-plugin-canonical@4.15.1(@typescript-eslint/parser@6.9.0)(eslint-plugin-import@2.28.1)(eslint@8.52.0)(typescript@5.2.2): resolution: {integrity: sha512-xndfaRN9vOb6sd2bd7jKac6oMeDj9ZaKr7uPYt99BGyy4D2gRe4cisIMo4uVUR3CdRSK1fEmH68OeRtmpJ7cpA==} engines: {node: '>=16.0.0'} dependencies: - '@typescript-eslint/utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.5(eslint@8.52.0)(typescript@5.2.2) chance: 1.1.11 debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.8.0)(eslint-plugin-import@2.28.1)(eslint@8.51.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.0)(eslint-plugin-import@2.28.1)(eslint@8.52.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -4967,38 +4975,38 @@ packages: - typescript dev: true - /eslint-plugin-cypress@2.15.1(eslint@8.51.0): + /eslint-plugin-cypress@2.15.1(eslint@8.52.0): resolution: {integrity: sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 8.51.0 + eslint: 8.52.0 globals: 13.20.0 dev: true - /eslint-plugin-es@3.0.1(eslint@8.51.0): + /eslint-plugin-es@3.0.1(eslint@8.52.0): resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.51.0 + eslint: 8.52.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-eslint-comments@3.2.0(eslint@8.51.0): + /eslint-plugin-eslint-comments@3.2.0(eslint@8.52.0): resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' dependencies: escape-string-regexp: 1.0.5 - eslint: 8.51.0 + eslint: 8.52.0 ignore: 5.2.4 dev: true - /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.51.0): + /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.52.0): resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -5008,25 +5016,25 @@ packages: dependencies: '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.23.2) '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.23.2) - eslint: 8.51.0 + eslint: 8.52.0 lodash: 4.17.21 string-natural-compare: 3.0.1 dev: true - /eslint-plugin-fp@2.3.0(eslint@8.51.0): + /eslint-plugin-fp@2.3.0(eslint@8.52.0): resolution: {integrity: sha512-3n2oHibwoIxAht9/+ZaTldhI6brXORgl8oNXqZd+d9xuAQt2SBJ2/aml0oQRMWvXrgsz2WG6wfC++NjzSG3prA==} engines: {node: '>=4.0.0'} peerDependencies: eslint: '>=3' dependencies: create-eslint-index: 1.0.0 - eslint: 8.51.0 + eslint: 8.52.0 eslint-ast-utils: 1.1.0 lodash: 4.17.21 req-all: 0.1.0 dev: true - /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0): + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0): resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} engines: {node: '>=4'} peerDependencies: @@ -5036,16 +5044,16 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.8.0(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.9.0(eslint@8.52.0)(typescript@5.2.2) array-includes: 3.1.6 array.prototype.findlastindex: 1.2.2 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.51.0 + eslint: 8.52.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.8.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) has: 1.0.3 is-core-module: 2.13.0 is-glob: 4.0.3 @@ -5061,7 +5069,7 @@ packages: - supports-color dev: true - /eslint-plugin-jest@27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.51.0)(typescript@5.2.2): + /eslint-plugin-jest@27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.52.0)(typescript@5.2.2): resolution: {integrity: sha512-3Nfvv3wbq2+PZlRTf2oaAWXWwbdBejFRBR2O8tAO67o+P8zno+QGbcDYaAXODlreXVg+9gvWhKKmG2rgfb8GEg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -5074,15 +5082,15 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.51.0)(typescript@5.2.2) - eslint: 8.51.0 + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.52.0)(typescript@5.2.2) + eslint: 8.52.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsdoc@46.8.2(eslint@8.51.0): + /eslint-plugin-jsdoc@46.8.2(eslint@8.52.0): resolution: {integrity: sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ==} engines: {node: '>=16'} peerDependencies: @@ -5093,7 +5101,7 @@ packages: comment-parser: 1.4.0 debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 8.51.0 + eslint: 8.52.0 esquery: 1.5.0 is-builtin-module: 3.2.1 semver: 7.5.4 @@ -5102,20 +5110,20 @@ packages: - supports-color dev: true - /eslint-plugin-jsonc@2.10.0(eslint@8.51.0): + /eslint-plugin-jsonc@2.10.0(eslint@8.52.0): resolution: {integrity: sha512-9d//o6Jyh4s1RxC9fNSt1+MMaFN2ruFdXPG9XZcb/mR2KkfjADYiNL/hbU6W0Cyxfg3tS/XSFuhl5LgtMD8hmw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) - eslint: 8.51.0 - eslint-compat-utils: 0.1.2(eslint@8.51.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) + eslint: 8.52.0 + eslint-compat-utils: 0.1.2(eslint@8.52.0) jsonc-eslint-parser: 2.3.0 natural-compare: 1.4.0 dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.51.0): + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.52.0): resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} peerDependencies: @@ -5130,7 +5138,7 @@ packages: axobject-query: 3.2.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.51.0 + eslint: 8.52.0 has: 1.0.3 jsx-ast-utils: 3.3.5 language-tags: 1.0.5 @@ -5140,24 +5148,24 @@ packages: semver: 6.3.1 dev: true - /eslint-plugin-lodash@7.4.0(eslint@8.51.0): + /eslint-plugin-lodash@7.4.0(eslint@8.52.0): resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} engines: {node: '>=10'} peerDependencies: eslint: '>=2' dependencies: - eslint: 8.51.0 + eslint: 8.52.0 lodash: 4.17.21 dev: true - /eslint-plugin-mocha@10.2.0(eslint@8.51.0): + /eslint-plugin-mocha@10.2.0(eslint@8.52.0): resolution: {integrity: sha512-ZhdxzSZnd1P9LqDPF0DBcFLpRIGdh1zkF2JHnQklKQOvrQtT73kdP5K9V2mzvbLR+cCAO9OI48NXK/Ax9/ciCQ==} engines: {node: '>=14.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.51.0 - eslint-utils: 3.0.0(eslint@8.51.0) + eslint: 8.52.0 + eslint-utils: 3.0.0(eslint@8.52.0) rambda: 7.5.0 dev: true @@ -5168,14 +5176,14 @@ packages: requireindex: 1.1.0 dev: true - /eslint-plugin-node@11.1.0(eslint@8.51.0): + /eslint-plugin-node@11.1.0(eslint@8.52.0): resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.51.0 - eslint-plugin-es: 3.0.1(eslint@8.51.0) + eslint: 8.52.0 + eslint-plugin-es: 3.0.1(eslint@8.52.0) eslint-utils: 2.1.0 ignore: 5.2.4 minimatch: 3.1.2 @@ -5183,7 +5191,7 @@ packages: semver: 6.3.1 dev: true - /eslint-plugin-prettier@5.0.1(@types/eslint@8.44.6)(eslint-config-prettier@9.0.0)(eslint@8.51.0)(prettier@3.0.3): + /eslint-plugin-prettier@5.0.1(@types/eslint@8.44.6)(eslint-config-prettier@9.0.0)(eslint@8.52.0)(prettier@3.0.3): resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -5198,32 +5206,32 @@ packages: optional: true dependencies: '@types/eslint': 8.44.6 - eslint: 8.51.0 - eslint-config-prettier: 9.0.0(eslint@8.51.0) + eslint: 8.52.0 + eslint-config-prettier: 9.0.0(eslint@8.52.0) prettier: 3.0.3 prettier-linter-helpers: 1.0.0 synckit: 0.8.5 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.51.0): + /eslint-plugin-promise@6.1.1(eslint@8.52.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.51.0 + eslint: 8.52.0 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.51.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.52.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.51.0 + eslint: 8.52.0 dev: true - /eslint-plugin-react@7.33.2(eslint@8.51.0): + /eslint-plugin-react@7.33.2(eslint@8.52.0): resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} engines: {node: '>=4'} peerDependencies: @@ -5234,7 +5242,7 @@ packages: array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 es-iterator-helpers: 1.0.15 - eslint: 8.51.0 + eslint: 8.52.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 @@ -5248,16 +5256,16 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-regexp@1.15.0(eslint@8.51.0): + /eslint-plugin-regexp@1.15.0(eslint@8.52.0): resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} engines: {node: ^12 || >=14} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) '@eslint-community/regexpp': 4.6.2 - comment-parser: 1.4.0 - eslint: 8.51.0 + comment-parser: 1.4.1 + eslint: 8.52.0 grapheme-splitter: 1.0.4 jsdoctypeparser: 9.0.0 refa: 0.11.0 @@ -5265,15 +5273,15 @@ packages: scslre: 0.2.0 dev: true - /eslint-plugin-simple-import-sort@10.0.0(eslint@8.51.0): + /eslint-plugin-simple-import-sort@10.0.0(eslint@8.52.0): resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 8.51.0 + eslint: 8.52.0 dev: true - /eslint-plugin-typescript-sort-keys@3.0.0(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@5.2.2): + /eslint-plugin-typescript-sort-keys@3.0.0(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)(typescript@5.2.2): resolution: {integrity: sha512-bMmI4prYlf3l/1O8j8Nsz11m+XfKEHRFk9aJqP91L4Hgy7I38lnitnYElDmPQaznE1oFlGgBcnkEizNT2NLylQ==} engines: {node: '>= 16'} peerDependencies: @@ -5281,9 +5289,9 @@ packages: eslint: ^7 || ^8 typescript: ^3 || ^4 || ^5 dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.51.0)(typescript@5.2.2) - '@typescript-eslint/parser': 6.8.0(eslint@8.51.0)(typescript@5.2.2) - eslint: 8.51.0 + '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.9.0(eslint@8.52.0)(typescript@5.2.2) + eslint: 8.52.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 typescript: 5.2.2 @@ -5291,17 +5299,17 @@ packages: - supports-color dev: true - /eslint-plugin-unicorn@48.0.1(eslint@8.51.0): + /eslint-plugin-unicorn@48.0.1(eslint@8.52.0): resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} engines: {node: '>=16'} peerDependencies: eslint: '>=8.44.0' dependencies: '@babel/helper-validator-identifier': 7.22.20 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) ci-info: 3.8.0 clean-regexp: 1.0.0 - eslint: 8.51.0 + eslint: 8.52.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -5315,7 +5323,7 @@ packages: strip-indent: 3.0.0 dev: true - /eslint-plugin-vitest@0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.51.0)(typescript@5.2.2)(vitest@0.34.1): + /eslint-plugin-vitest@0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.52.0)(typescript@5.2.2)(vitest@0.34.1): resolution: {integrity: sha512-A1P0qJVkqHyfDolwm09h8/gu7SbGFOKbacJSeyZ9IRb8uyddgqLcqv4VrqgQfLA7QmGI9lwj1iV90NyZ1cHp8Q==} engines: {node: 14.x || >= 16} peerDependencies: @@ -5326,24 +5334,24 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) - eslint: 8.51.0 + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.5(eslint@8.52.0)(typescript@5.2.2) + eslint: 8.52.0 vitest: 0.34.1 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-yml@1.10.0(eslint@8.51.0): + /eslint-plugin-yml@1.10.0(eslint@8.52.0): resolution: {integrity: sha512-53SUwuNDna97lVk38hL/5++WXDuugPM9SUQ1T645R0EHMRCdBIIxGye/oOX2qO3FQ7aImxaUZJU/ju+NMUBrLQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4(supports-color@8.1.1) - eslint: 8.51.0 - eslint-compat-utils: 0.1.2(eslint@8.51.0) + eslint: 8.52.0 + eslint-compat-utils: 0.1.2(eslint@8.52.0) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.2 @@ -5351,13 +5359,13 @@ packages: - supports-color dev: true - /eslint-plugin-zod@1.4.0(eslint@8.51.0): + /eslint-plugin-zod@1.4.0(eslint@8.52.0): resolution: {integrity: sha512-i9WzQGw2X5fQcuQh33mA8DQjZJM/yuyZvs1Fc5EyTidX7Ed/g832+1FEQ4u5gtXy+jZ+DVsB5+oMHj4tIOfeZg==} engines: {node: '>=12'} peerDependencies: eslint: '>=8.1.0' dependencies: - eslint: 8.51.0 + eslint: 8.52.0 dev: true /eslint-rule-composer@0.3.0: @@ -5388,13 +5396,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils@3.0.0(eslint@8.51.0): + /eslint-utils@3.0.0(eslint@8.52.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.51.0 + eslint: 8.52.0 eslint-visitor-keys: 2.1.0 dev: true @@ -5418,18 +5426,19 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.51.0: - resolution: {integrity: sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==} + /eslint@8.52.0: + resolution: {integrity: sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) '@eslint-community/regexpp': 4.6.2 '@eslint/eslintrc': 2.1.2 - '@eslint/js': 8.51.0 - '@humanwhocodes/config-array': 0.11.11 + '@eslint/js': 8.52.0 + '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -6214,7 +6223,7 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql-config@4.5.0(@types/node@20.8.7)(graphql@16.7.1): + /graphql-config@4.5.0(@types/node@20.8.9)(graphql@16.7.1): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -6228,7 +6237,7 @@ packages: '@graphql-tools/json-file-loader': 7.4.18(graphql@16.7.1) '@graphql-tools/load': 7.8.14(graphql@16.7.1) '@graphql-tools/merge': 8.4.2(graphql@16.7.1) - '@graphql-tools/url-loader': 7.17.18(@types/node@20.8.7)(graphql@16.7.1) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.8.9)(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) cosmiconfig: 8.0.0 graphql: 16.7.1 @@ -7405,8 +7414,8 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /lint-staged@15.0.1: - resolution: {integrity: sha512-2IU5OWmCaxch0X0+IBF4/v7sutpB+F3qoXbro43pYjQTOo5wumckjxoxn47pQBqqBsCWrD5HnI2uG/zJA7isew==} + /lint-staged@15.0.2: + resolution: {integrity: sha512-vnEy7pFTHyVuDmCAIFKR5QDO8XLVlPFQQyujQ/STOxe40ICWqJ6knS2wSJ/ffX/Lw0rz83luRDh+ET7toN+rOw==} engines: {node: '>=18.12.0'} hasBin: true dependencies: @@ -7415,17 +7424,17 @@ packages: debug: 4.3.4(supports-color@8.1.1) execa: 8.0.1 lilconfig: 2.1.0 - listr2: 7.0.1 + listr2: 7.0.2 micromatch: 4.0.5 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.3.2 + yaml: 2.3.3 transitivePeerDependencies: - supports-color dev: true - /listr2@7.0.1: - resolution: {integrity: sha512-nz+7hwgbDp8eWNoDgzdl4hA/xDSLrNRzPu1TLgOYs6l5Y+Ma6zVWWy9Oyt9TQFONwKoSPoka3H50D3vD5EuNwg==} + /listr2@7.0.2: + resolution: {integrity: sha512-rJysbR9GKIalhTbVL2tYbF2hVyDnrf7pFUZBwjPaMIdadYHmeT+EVi/Bu3qd7ETQPahTotg2WRCatXwRBW554g==} engines: {node: '>=16.0.0'} dependencies: cli-truncate: 3.1.0 @@ -7720,7 +7729,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.3.0(@types/node@20.8.7): + /meros@1.3.0(@types/node@20.8.9): resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} engines: {node: '>=13'} peerDependencies: @@ -7729,7 +7738,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.8.7 + '@types/node': 20.8.9 dev: true /micro-spelling-correcter@1.1.1: @@ -10336,8 +10345,8 @@ packages: which-boxed-primitive: 1.0.2 dev: true - /undici-types@5.25.3: - resolution: {integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==} + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} dev: true /unicode-canonical-property-names-ecmascript@2.0.0: @@ -10544,7 +10553,7 @@ packages: extsprintf: 1.3.0 dev: true - /vite-node@0.34.1(@types/node@20.8.7): + /vite-node@0.34.1(@types/node@20.8.9): resolution: {integrity: sha512-odAZAL9xFMuAg8aWd7nSPT+hU8u2r9gU3LRm9QKjxBEF2rRdWpMuqkrkjvyVQEdNFiBctqr2Gg4uJYizm5Le6w==} engines: {node: '>=v14.18.0'} hasBin: true @@ -10554,7 +10563,7 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.8(@types/node@20.8.7) + vite: 4.4.8(@types/node@20.8.9) transitivePeerDependencies: - '@types/node' - less @@ -10566,7 +10575,7 @@ packages: - terser dev: true - /vite@4.4.8(@types/node@20.8.7): + /vite@4.4.8(@types/node@20.8.9): resolution: {integrity: sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -10594,7 +10603,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.8.7 + '@types/node': 20.8.9 esbuild: 0.18.17 postcss: 8.4.31 rollup: 3.27.2 @@ -10635,7 +10644,7 @@ packages: dependencies: '@types/chai': 4.3.9 '@types/chai-subset': 1.3.3 - '@types/node': 20.8.7 + '@types/node': 20.8.9 '@vitest/expect': 0.34.1 '@vitest/runner': 0.34.1 '@vitest/snapshot': 0.34.1 @@ -10654,8 +10663,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.0 tinypool: 0.7.0 - vite: 4.4.8(@types/node@20.8.7) - vite-node: 0.34.1(@types/node@20.8.7) + vite: 4.4.8(@types/node@20.8.9) + vite-node: 0.34.1(@types/node@20.8.9) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -10889,16 +10898,16 @@ packages: dependencies: eslint-visitor-keys: 3.4.3 lodash: 4.17.21 - yaml: 2.3.1 + yaml: 2.3.2 dev: true - /yaml@2.3.1: - resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} + /yaml@2.3.2: + resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} engines: {node: '>= 14'} dev: true - /yaml@2.3.2: - resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} + /yaml@2.3.3: + resolution: {integrity: sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==} engines: {node: '>= 14'} dev: true From da65fe99101430eee55765067757d4a8c00e822b Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 30 Oct 2023 06:59:56 -0700 Subject: [PATCH 142/273] docs(`require-param`): method example --- docs/rules/require-param.md | 16 ++++++++++ test/rules/assertions/requireParam.js | 46 +++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) diff --git a/docs/rules/require-param.md b/docs/rules/require-param.md index eb3f75b49..eeb88e5d8 100644 --- a/docs/rules/require-param.md +++ b/docs/rules/require-param.md @@ -1143,6 +1143,22 @@ function foo(a, b, c) {} export function myPublicFunction(foo: number, bar: number, baz: number) {} // "jsdoc/require-param": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock:has(JsdocTag[tag=\"param\"])","context":"FunctionDeclaration"}]}] // Message: Missing JSDoc @param "baz" declaration. + +/** + * [A description] + */ +class A { + /** + * openConfirmModal + * @memberof CreateEditTestWizardComponent + */ + public openConfirmModal(btnState: string) { + this.modalBtnState = btnState; + this.openModal(); + } +} +// "jsdoc/require-param": ["error"|"warn", {"contexts":["MethodDefinition"]}] +// Message: Missing JSDoc @param "btnState" declaration. ```` diff --git a/test/rules/assertions/requireParam.js b/test/rules/assertions/requireParam.js index 402ac73d2..ee72c5644 100644 --- a/test/rules/assertions/requireParam.js +++ b/test/rules/assertions/requireParam.js @@ -2451,6 +2451,52 @@ export default { `, parser: require.resolve('@typescript-eslint/parser'), }, + { + code: ` + /** + * [A description] + */ + class A { + /** + * openConfirmModal + * @memberof CreateEditTestWizardComponent + */ + public openConfirmModal(btnState: string) { + this.modalBtnState = btnState; + this.openModal(); + } + } + `, + errors: [ + { + message: 'Missing JSDoc @param "btnState" declaration.', + }, + ], + options: [ + { + contexts: [ + 'MethodDefinition', + ], + }, + ], + output: ` + /** + * [A description] + */ + class A { + /** + * openConfirmModal + * @param btnState + * @memberof CreateEditTestWizardComponent + */ + public openConfirmModal(btnState: string) { + this.modalBtnState = btnState; + this.openModal(); + } + } + `, + parser: require.resolve('@typescript-eslint/parser'), + }, ], valid: [ { From f96a1af17a5a01060209136a6ba8c625faeb2c46 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 30 Oct 2023 07:07:27 -0700 Subject: [PATCH 143/273] chore: update devDep. and lint --- package.json | 2 +- pnpm-lock.yaml | 15 +++++---------- src/exportParser.js | 3 --- src/iterateJsdoc.js | 15 --------------- src/jsdocUtils.js | 3 --- src/rules/checkTypes.js | 1 - src/rules/requireHyphenBeforeParamDescription.js | 1 - src/rules/requireJsdoc.js | 6 ------ src/rules/validTypes.js | 1 - 9 files changed, 6 insertions(+), 41 deletions(-) diff --git a/package.json b/package.json index 00125958d..a382159cf 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "cross-env": "^7.0.3", "decamelize": "^5.0.1", "eslint": "8.52.0", - "eslint-config-canonical": "~42.1.0", + "eslint-config-canonical": "~42.3.0", "espree": "^9.6.1", "gitdown": "^3.1.5", "glob": "^10.3.10", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 77fe07017..99112bf7b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -134,8 +134,8 @@ devDependencies: specifier: 8.52.0 version: 8.52.0 eslint-config-canonical: - specifier: ~42.1.0 - version: 42.1.0(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.6)(@types/node@20.8.9)(eslint@8.52.0)(graphql@16.7.1)(typescript@5.2.2)(vitest@0.34.1) + specifier: ~42.3.0 + version: 42.3.0(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.6)(@types/node@20.8.9)(eslint@8.52.0)(graphql@16.7.1)(typescript@5.2.2)(vitest@0.34.1) espree: specifier: ^9.6.1 version: 9.6.1 @@ -4792,8 +4792,8 @@ packages: eslint: 8.52.0 dev: true - /eslint-config-canonical@42.1.0(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.6)(@types/node@20.8.9)(eslint@8.52.0)(graphql@16.7.1)(typescript@5.2.2)(vitest@0.34.1): - resolution: {integrity: sha512-h1h+Z4t/iy4mJfGud9s7jsVg/JBsAgIIYKgcrdODzJ45MU6Drs0aZ5efkY47y2e86CLusbZArf9ZQJcsLeI30g==} + /eslint-config-canonical@42.3.0(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.6)(@types/node@20.8.9)(eslint@8.52.0)(graphql@16.7.1)(typescript@5.2.2)(vitest@0.34.1): + resolution: {integrity: sha512-1FDYIBs3gFpZNhCAe4zfskCsYQNrBc15npCVrFqI2fknszMgoEi7YoYlzx18eSPnlH3xigQWm0ZK90351yZI+Q==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 @@ -10898,12 +10898,7 @@ packages: dependencies: eslint-visitor-keys: 3.4.3 lodash: 4.17.21 - yaml: 2.3.2 - dev: true - - /yaml@2.3.2: - resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} - engines: {node: '>= 14'} + yaml: 2.3.3 dev: true /yaml@2.3.3: diff --git a/src/exportParser.js b/src/exportParser.js index 842effc45..9ec8e089d 100644 --- a/src/exportParser.js +++ b/src/exportParser.js @@ -123,7 +123,6 @@ const getSymbol = function (node, globals, scope, opt) { /* eslint-enable complexity -- Temporary */ const opts = opt || {}; /* istanbul ignore next */ - // eslint-disable-next-line default-case switch (node.type) { case 'Identifier': { return getIdentifier(node, globals, scope, opts); @@ -318,7 +317,6 @@ createSymbol = function (node, globals, value, scope, isGlobal) { } let symbol; - // eslint-disable-next-line default-case switch (node.type) { case 'FunctionDeclaration': /* istanbul ignore next */ @@ -411,7 +409,6 @@ createSymbol = function (node, globals, value, scope, isGlobal) { * @returns {void} */ const initVariables = function (node, globals, opts) { - // eslint-disable-next-line default-case switch (node.type) { case 'Program': { for (const childNode of node.body) { diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index 82b1358ad..0dbee3cbd 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -122,7 +122,6 @@ import esquery from 'esquery'; * [key: string]: string * }} [data] */ -/* eslint-enable jsdoc/valid-types -- Old version */ /** * @callback GetRegexFromString @@ -170,7 +169,6 @@ import esquery from 'esquery'; * ) => import('comment-parser').Line[]} setter * @returns {void} */ -/* eslint-enable jsdoc/no-undefined-types -- Bug */ /** * @callback SetDescriptionLines @@ -185,7 +183,6 @@ import esquery from 'esquery'; * @param {...Partial} tokens * @returns {void} */ -/* eslint-enable jsdoc/no-undefined-types -- TS */ /** * @callback SetTag @@ -195,7 +192,6 @@ import esquery from 'esquery'; * @param {Partial} [tokens] * @returns {void} */ -/* eslint-enable jsdoc/no-undefined-types -- TS */ /** * @callback RemoveTag @@ -225,7 +221,6 @@ import esquery from 'esquery'; * tokens?: Partial | undefined * ) => import('comment-parser').Tokens} SeedTokens */ -/* eslint-enable jsdoc/no-undefined-types -- TS */ /** * Sets tokens to empty string. @@ -240,7 +235,6 @@ import esquery from 'esquery'; * @param {Partial} tokens * @returns {void} */ -/* eslint-enable jsdoc/no-undefined-types -- TS */ /** * @callback AddLines @@ -576,7 +570,6 @@ const { * } * }} StateObject */ -/* eslint-enable jsdoc/valid-types -- Old version */ /** * The Node AST as supplied by the parser. @@ -668,7 +661,6 @@ const getBasicUtils = (context, { * }} [data] * @returns {void} */ -/* eslint-enable jsdoc/valid-types -- Old version of pratt */ /** * @param {Node|null} node @@ -1807,7 +1799,6 @@ const getUtils = ( * contexts?: Context[] * }} Settings */ -/* eslint-enable jsdoc/valid-types -- Old version */ /** * @param {import('eslint').Rule.RuleContext} context @@ -1885,7 +1876,6 @@ const getSettings = (context) => { const makeReport = (context, commentNode) => { /** @type {Report} */ const report = (message, fix = null, jsdocLoc = null, data = undefined) => { - /* eslint-enable jsdoc/valid-types -- Old version */ let loc; if (jsdocLoc) { @@ -1985,8 +1975,6 @@ const makeReport = (context, commentNode) => { * } * ) => any } JsdocVisitor */ -/* eslint-enable jsdoc/valid-types -- Old version */ -/* eslint-enable jsdoc/no-undefined-types -- canonical still using an older version where not defined */ /** * @param {{ @@ -2439,7 +2427,6 @@ export default function iterateJsdoc (iterator, ruleConfig) { * @type {Context[]|undefined} */ let contexts; - /* eslint-enable jsdoc/valid-types -- Old version */ if (ruleConfig.contextDefaults || ruleConfig.contextSelected || ruleConfig.matchContext) { contexts = ruleConfig.matchContext && context.options[0]?.match ? context.options[0].match : @@ -2486,7 +2473,6 @@ export default function iterateJsdoc (iterator, ruleConfig) { /** @type {Partial} */ const state = {}; - /* eslint-enable jsdoc/no-undefined-types -- TS */ /** @type {CheckJsdoc} */ const checkJsdoc = (info, handler, node) => { @@ -2563,7 +2549,6 @@ export default function iterateJsdoc (iterator, ruleConfig) { settings, state: ste, }); - /* eslint-enable jsdoc/no-undefined-types -- Bug */ }; } diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index 9d3f5b4cc..8e6c015d9 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -307,7 +307,6 @@ const getFunctionParameterNames = ( } if (param.type === 'Property') { - // eslint-disable-next-line default-case switch (param.value.type) { case 'ArrayPattern': { return [ @@ -336,7 +335,6 @@ const getFunctionParameterNames = ( } case 'AssignmentPattern': { - // eslint-disable-next-line default-case switch (param.value.left.type) { case 'Identifier': // Default parameter @@ -1416,7 +1414,6 @@ const tagsWithNamesAndDescriptions = new Set([ * {message: string, replacement?: string} * }} TagNamePreference */ -/* eslint-enable jsdoc/valid-types -- Old version */ /** * @param {import('eslint').Rule.RuleContext} context diff --git a/src/rules/checkTypes.js b/src/rules/checkTypes.js index a9f81a14a..c295db887 100644 --- a/src/rules/checkTypes.js +++ b/src/rules/checkTypes.js @@ -113,7 +113,6 @@ export default iterateJsdoc(({ structuredTags, mode, } = settings; - /* eslint-enable jsdoc/valid-types -- Old version */ const injectObjectPreferredTypes = !('Object' in preferredTypesOriginal || 'object' in preferredTypesOriginal || diff --git a/src/rules/requireHyphenBeforeParamDescription.js b/src/rules/requireHyphenBeforeParamDescription.js index 5d881f7ed..791e842fa 100644 --- a/src/rules/requireHyphenBeforeParamDescription.js +++ b/src/rules/requireHyphenBeforeParamDescription.js @@ -18,7 +18,6 @@ export default iterateJsdoc(({ const tgs = /** * @type {null|"any"|{[key: string]: "always"|"never"}} */ (tags); - /* eslint-enable jsdoc/valid-types -- Old version */ /** * @param {import('@es-joy/jsdoccomment').JsdocTagWithInline} jsdocTag diff --git a/src/rules/requireJsdoc.js b/src/rules/requireJsdoc.js index 9ed84b96d..fb74c0e1c 100644 --- a/src/rules/requireJsdoc.js +++ b/src/rules/requireJsdoc.js @@ -180,7 +180,6 @@ const getOption = (context, baseObject, option, key) => { return /** @type {{[key: string]: {default?: boolean|undefined}}} */ ( baseObject.properties )[key].default; - /* eslint-enable jsdoc/valid-types -- Old version */ }; /** @@ -202,7 +201,6 @@ const getOption = (context, baseObject, option, key) => { * }} */ const getOptions = (context, settings) => { - /* eslint-enable jsdoc/valid-types -- Old version */ const { publicOnly, contexts = settings.contexts || [], @@ -227,7 +225,6 @@ const getOptions = (context, settings) => { /** @type {{[key: string]: boolean|undefined}} */ const properties = {}; - /* eslint-enable jsdoc/valid-types -- Old version */ for (const prop of Object.keys( /** @type {import('json-schema').JSONSchema4Object} */ ( /** @type {import('json-schema').JSONSchema4Object} */ ( @@ -260,7 +257,6 @@ const getOptions = (context, settings) => { require: ((baseObj) => { /** @type {{[key: string]: boolean|undefined}} */ const properties = {}; - /* eslint-enable jsdoc/valid-types -- Old version */ for (const prop of Object.keys( /** @type {import('json-schema').JSONSchema4Object} */ ( /** @type {import('json-schema').JSONSchema4Object} */ ( @@ -318,7 +314,6 @@ export default { */ ( opts.publicOnly ); - /* eslint-enable jsdoc/valid-types -- Old version */ /** * @type {import('../iterateJsdoc.js').CheckJsdoc} @@ -501,7 +496,6 @@ export default { report(); } }; - /* eslint-enable complexity -- Temporary */ /** * @param {string} prop diff --git a/src/rules/validTypes.js b/src/rules/validTypes.js index 339247ef7..f8620da42 100644 --- a/src/rules/validTypes.js +++ b/src/rules/validTypes.js @@ -114,7 +114,6 @@ export default iterateJsdoc(({ let handled = false; if (tagName) { - // eslint-disable-next-line default-case switch (tagName) { case 'requires': case 'module': { From 7a70c83db1c33f4b140e2e352368246acf3b7317 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 5 Nov 2023 19:58:52 -0700 Subject: [PATCH 144/273] chore: update devDeps --- package.json | 14 +- pnpm-lock.yaml | 559 +++++++++++++++++++++++++++---------------------- 2 files changed, 318 insertions(+), 255 deletions(-) diff --git a/package.json b/package.json index a382159cf..6e25a11b0 100644 --- a/package.json +++ b/package.json @@ -28,28 +28,28 @@ "@es-joy/escodegen": "^3.5.1", "@es-joy/jsdoc-eslint-parser": "^0.19.0", "@hkdobrev/run-if-changed": "^0.3.1", - "@semantic-release/commit-analyzer": "^11.0.0", + "@semantic-release/commit-analyzer": "^11.1.0", "@semantic-release/github": "^9.2.1", - "@semantic-release/npm": "^11.0.0", + "@semantic-release/npm": "^11.0.1", "@types/chai": "^4.3.9", "@types/debug": "^4.1.10", "@types/eslint": "^8.44.6", "@types/esquery": "^1.5.2", - "@types/estree": "^1.0.3", + "@types/estree": "^1.0.4", "@types/json-schema": "^7.0.14", "@types/lodash.defaultsdeep": "^4.6.8", "@types/mocha": "^10.0.3", - "@types/node": "^20.8.9", + "@types/node": "^20.8.10", "@types/semver": "^7.5.4", "@types/spdx-expression-parse": "^3.0.4", - "@typescript-eslint/parser": "^6.9.0", + "@typescript-eslint/parser": "^6.9.1", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", "chai": "^4.3.10", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "8.52.0", + "eslint": "8.53.0", "eslint-config-canonical": "~42.3.0", "espree": "^9.6.1", "gitdown": "^3.1.5", @@ -63,7 +63,7 @@ "nyc": "^15.1.0", "open-editor": "^3.0.0", "rimraf": "^5.0.5", - "semantic-release": "^22.0.5", + "semantic-release": "^22.0.7", "typescript": "5.2.2" }, "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 99112bf7b..63652e324 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -42,7 +42,7 @@ devDependencies: version: 7.23.2 '@babel/eslint-parser': specifier: ^7.22.15 - version: 7.22.15(@babel/core@7.23.2)(eslint@8.52.0) + version: 7.22.15(@babel/core@7.23.2)(eslint@8.53.0) '@babel/node': specifier: ^7.22.19 version: 7.22.19(@babel/core@7.23.2) @@ -68,14 +68,14 @@ devDependencies: specifier: ^0.3.1 version: 0.3.1 '@semantic-release/commit-analyzer': - specifier: ^11.0.0 - version: 11.0.0(semantic-release@22.0.5) + specifier: ^11.1.0 + version: 11.1.0(semantic-release@22.0.7) '@semantic-release/github': specifier: ^9.2.1 - version: 9.2.1(semantic-release@22.0.5) + version: 9.2.1(semantic-release@22.0.7) '@semantic-release/npm': - specifier: ^11.0.0 - version: 11.0.0(semantic-release@22.0.5) + specifier: ^11.0.1 + version: 11.0.1(semantic-release@22.0.7) '@types/chai': specifier: ^4.3.9 version: 4.3.9 @@ -89,8 +89,8 @@ devDependencies: specifier: ^1.5.2 version: 1.5.2 '@types/estree': - specifier: ^1.0.3 - version: 1.0.3 + specifier: ^1.0.4 + version: 1.0.4 '@types/json-schema': specifier: ^7.0.14 version: 7.0.14 @@ -101,8 +101,8 @@ devDependencies: specifier: ^10.0.3 version: 10.0.3 '@types/node': - specifier: ^20.8.9 - version: 20.8.9 + specifier: ^20.8.10 + version: 20.8.10 '@types/semver': specifier: ^7.5.4 version: 7.5.4 @@ -110,8 +110,8 @@ devDependencies: specifier: ^3.0.4 version: 3.0.4 '@typescript-eslint/parser': - specifier: ^6.9.0 - version: 6.9.0(eslint@8.52.0)(typescript@5.2.2) + specifier: ^6.9.1 + version: 6.9.1(eslint@8.53.0)(typescript@5.2.2) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -131,11 +131,11 @@ devDependencies: specifier: ^5.0.1 version: 5.0.1 eslint: - specifier: 8.52.0 - version: 8.52.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-canonical: specifier: ~42.3.0 - version: 42.3.0(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.6)(@types/node@20.8.9)(eslint@8.52.0)(graphql@16.7.1)(typescript@5.2.2)(vitest@0.34.1) + version: 42.3.0(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.6)(@types/node@20.8.10)(eslint@8.53.0)(graphql@16.7.1)(typescript@5.2.2)(vitest@0.34.1) espree: specifier: ^9.6.1 version: 9.6.1 @@ -173,8 +173,8 @@ devDependencies: specifier: ^5.0.5 version: 5.0.5 semantic-release: - specifier: ^22.0.5 - version: 22.0.5 + specifier: ^22.0.7 + version: 22.0.7 typescript: specifier: 5.2.2 version: 5.2.2 @@ -272,7 +272,7 @@ packages: - supports-color dev: true - /@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.52.0): + /@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.53.0): resolution: {integrity: sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: @@ -281,20 +281,20 @@ packages: dependencies: '@babel/core': 7.23.2 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.52.0 + eslint: 8.53.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true - /@babel/eslint-plugin@7.22.10(@babel/eslint-parser@7.22.15)(eslint@8.52.0): + /@babel/eslint-plugin@7.22.10(@babel/eslint-parser@7.22.15)(eslint@8.53.0): resolution: {integrity: sha512-SRZcvo3fnO5h79B9DZSV6LG2vHH7OWsSNp1huFLHsXKyytRG413byQk9zxW1VcPOhnzfx2VIUz+8aGbiE7fOkA==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.52.0) - eslint: 8.52.0 + '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.53.0) + eslint: 8.53.0 eslint-rule-composer: 0.3.0 dev: true @@ -1648,10 +1648,10 @@ packages: engines: {node: '>=12.0.0'} dependencies: '@babel/core': 7.23.2 - '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.52.0) + '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.53.0) '@es-joy/jsdoccomment': 0.38.0 - '@typescript-eslint/parser': 5.62.0(eslint@8.52.0)(typescript@5.2.2) - eslint: 8.52.0 + '@typescript-eslint/parser': 5.62.0(eslint@8.53.0)(typescript@5.2.2) + eslint: 8.53.0 esquery: 1.5.0 typescript: 5.2.2 transitivePeerDependencies: @@ -1873,13 +1873,13 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.52.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.52.0 + eslint: 8.53.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1888,8 +1888,8 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.2: - resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} + /@eslint/eslintrc@2.1.3: + resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -1905,8 +1905,8 @@ packages: - supports-color dev: true - /@eslint/js@8.52.0: - resolution: {integrity: sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==} + /@eslint/js@8.53.0: + resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -1914,7 +1914,7 @@ packages: resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==} dev: true - /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.2)(@types/node@20.8.9)(graphql@16.7.1): + /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.2)(@types/node@20.8.10)(graphql@16.7.1): resolution: {integrity: sha512-RbwVlz1gcYG62sECR1u0XqMh8w5e5XMCCZoMvPQ3nJzEBCTfXLGX727GBoRmSvY1x4gJmqNZ1lsOX7lZY14RIw==} engines: {node: '>=12'} peerDependencies: @@ -1928,7 +1928,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.3.1 graphql: 16.7.1 - graphql-config: 4.5.0(@types/node@20.8.9)(graphql@16.7.1) + graphql-config: 4.5.0(@types/node@20.8.10)(graphql@16.7.1) graphql-depth-limit: 1.1.0(graphql@16.7.1) lodash.lowercase: 4.3.0 tslib: 2.6.1 @@ -2003,7 +2003,7 @@ packages: - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.10(@types/node@20.8.9)(graphql@16.7.1): + /@graphql-tools/executor-http@0.1.10(@types/node@20.8.10)(graphql@16.7.1): resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -2014,7 +2014,7 @@ packages: dset: 3.1.2 extract-files: 11.0.0 graphql: 16.7.1 - meros: 1.3.0(@types/node@20.8.9) + meros: 1.3.0(@types/node@20.8.10) tslib: 2.6.1 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -2137,7 +2137,7 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.8.9)(graphql@16.7.1): + /@graphql-tools/url-loader@7.17.18(@types/node@20.8.10)(graphql@16.7.1): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -2145,7 +2145,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 9.0.35(graphql@16.7.1) '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.7.1) - '@graphql-tools/executor-http': 0.1.10(@types/node@20.8.9)(graphql@16.7.1) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.8.10)(graphql@16.7.1) '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) '@graphql-tools/wrap': 9.4.2(graphql@16.7.1) @@ -2525,8 +2525,8 @@ packages: resolution: {integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==} dev: true - /@semantic-release/commit-analyzer@11.0.0(semantic-release@22.0.5): - resolution: {integrity: sha512-uEXyf4Z0AWJuxI9TbSQP5kkIYqus1/E1NcmE7pIv6d6/m/5EJcNWAGR4FOo34vrV26FhEaRVkxFfYzp/M7BKIg==} + /@semantic-release/commit-analyzer@11.1.0(semantic-release@22.0.7): + resolution: {integrity: sha512-cXNTbv3nXR2hlzHjAMgbuiQVtvWHTlwwISt60B+4NZv01y/QRY7p2HcJm8Eh2StzcTJoNnflvKjHH/cjFS7d5g==} engines: {node: ^18.17 || >=20.6.1} peerDependencies: semantic-release: '>=20.1.0' @@ -2535,10 +2535,10 @@ packages: conventional-commits-filter: 4.0.0 conventional-commits-parser: 5.0.0 debug: 4.3.4(supports-color@8.1.1) - import-from: 4.0.0 + import-from-esm: 1.0.3 lodash-es: 4.17.21 micromatch: 4.0.5 - semantic-release: 22.0.5 + semantic-release: 22.0.7 transitivePeerDependencies: - supports-color dev: true @@ -2548,7 +2548,7 @@ packages: engines: {node: '>=18'} dev: true - /@semantic-release/github@9.2.1(semantic-release@22.0.5): + /@semantic-release/github@9.2.1(semantic-release@22.0.7): resolution: {integrity: sha512-fEn9uOe6jwWR6ro2Wh6YNBCBuZ5lRi8Myz+1j3KDTSt8OuUGlpVM4lFac/0bDrql2NOKrIEAMGCfWb9WMIdzIg==} engines: {node: '>=18'} peerDependencies: @@ -2569,14 +2569,14 @@ packages: lodash-es: 4.17.21 mime: 3.0.0 p-filter: 3.0.0 - semantic-release: 22.0.5 + semantic-release: 22.0.7 url-join: 5.0.0 transitivePeerDependencies: - supports-color dev: true - /@semantic-release/npm@11.0.0(semantic-release@22.0.5): - resolution: {integrity: sha512-ozNCiPUp14Xp2rgeY7j96yFTEhDncLSWOJr0IAUr888+ax6fH5xgYkNVv08vpkV8C5GIXBgnGd9coRiOCD6oqQ==} + /@semantic-release/npm@11.0.1(semantic-release@22.0.7): + resolution: {integrity: sha512-nFcT0pgVwpXsPkzjqP3ObH+pILeN1AbYscCDuYwgZEPZukL+RsGhrtdT4HA1Gjb/y1bVbE90JNtMIcgRi5z/Fg==} engines: {node: ^18.17 || >=20} peerDependencies: semantic-release: '>=20.1.0' @@ -2590,14 +2590,14 @@ packages: normalize-url: 8.0.0 npm: 10.2.0 rc: 1.2.8 - read-pkg: 8.0.0 + read-pkg: 9.0.0 registry-auth-token: 5.0.2 - semantic-release: 22.0.5 + semantic-release: 22.0.7 semver: 7.5.4 tempy: 3.1.0 dev: true - /@semantic-release/release-notes-generator@12.0.0(semantic-release@22.0.5): + /@semantic-release/release-notes-generator@12.0.0(semantic-release@22.0.7): resolution: {integrity: sha512-m7Ds8ComP1KJgA2Lke2xMwE1TOOU40U7AzP4lT8hJ2tUAeicziPz/1GeDFmRkTOkMFlfHvE6kuvMkvU+mIzIDQ==} engines: {node: ^18.17 || >=20.6.1} peerDependencies: @@ -2613,7 +2613,7 @@ packages: into-stream: 7.0.0 lodash-es: 4.17.21 read-pkg-up: 10.0.0 - semantic-release: 22.0.5 + semantic-release: 22.0.7 transitivePeerDependencies: - supports-color dev: true @@ -2651,18 +2651,18 @@ packages: /@types/eslint@8.44.6: resolution: {integrity: sha512-P6bY56TVmX8y9J87jHNgQh43h6VVU+6H7oN7hgvivV81K2XY8qJZ5vqPy/HdUoVIelii2kChYVzQanlswPWVFw==} dependencies: - '@types/estree': 1.0.3 + '@types/estree': 1.0.4 '@types/json-schema': 7.0.14 dev: true /@types/esquery@1.5.2: resolution: {integrity: sha512-/HlBsR2kIKPg9ptAL6JwMirGcrqZkPy7p1nnJrRngXk9dE4GZtKDkY6Ej0WTk0xSSgFO6ds6IdR4XjYABURcGQ==} dependencies: - '@types/estree': 1.0.3 + '@types/estree': 1.0.4 dev: true - /@types/estree@1.0.3: - resolution: {integrity: sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==} + /@types/estree@1.0.4: + resolution: {integrity: sha512-2JwWnHK9H+wUZNorf2Zr6ves96WHoWDJIftkcxPKsS7Djta6Zu519LarhRNljPXkpsZR2ZMwNCPeW7omW07BJw==} dev: true /@types/json-schema@7.0.14: @@ -2691,8 +2691,8 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node@20.8.9: - resolution: {integrity: sha512-UzykFsT3FhHb1h7yD4CA4YhBHq545JC0YnEz41xkipN88eKQtL6rSgocL5tbAP6Ola9Izm/Aw4Ora8He4x0BHg==} + /@types/node@20.8.10: + resolution: {integrity: sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==} dependencies: undici-types: 5.26.5 dev: true @@ -2701,6 +2701,10 @@ packages: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true + /@types/normalize-package-data@2.4.3: + resolution: {integrity: sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==} + dev: true + /@types/semver@7.5.4: resolution: {integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==} dev: true @@ -2712,10 +2716,10 @@ packages: /@types/ws@8.5.5: resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} dependencies: - '@types/node': 20.8.9 + '@types/node': 20.8.10 dev: true - /@typescript-eslint/eslint-plugin@6.7.5(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)(typescript@5.2.2): + /@typescript-eslint/eslint-plugin@6.7.5(@typescript-eslint/parser@6.9.1)(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2727,13 +2731,13 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.9.0(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.9.1(eslint@8.53.0)(typescript@5.2.2) '@typescript-eslint/scope-manager': 6.7.5 - '@typescript-eslint/type-utils': 6.7.5(eslint@8.52.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.7.5(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/type-utils': 6.7.5(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.5(eslint@8.53.0)(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.7.5 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.52.0 + eslint: 8.53.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare: 1.4.0 @@ -2744,20 +2748,20 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils@5.62.0(eslint@8.52.0)(typescript@5.2.2): + /@typescript-eslint/experimental-utils@5.62.0(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.52.0)(typescript@5.2.2) - eslint: 8.52.0 + '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) + eslint: 8.53.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.52.0)(typescript@5.2.2): + /@typescript-eslint/parser@5.62.0(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2771,14 +2775,14 @@ packages: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.52.0 + eslint: 8.53.0 typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.9.0(eslint@8.52.0)(typescript@5.2.2): - resolution: {integrity: sha512-GZmjMh4AJ/5gaH4XF2eXA8tMnHWP+Pm1mjQR2QN4Iz+j/zO04b9TOvJYOX2sCNIQHtRStKTxRY1FX7LhpJT4Gw==} + /@typescript-eslint/parser@6.9.1(eslint@8.53.0)(typescript@5.2.2): + resolution: {integrity: sha512-C7AK2wn43GSaCUZ9do6Ksgi2g3mwFkMO3Cis96kzmgudoVaKyt62yNzJOktP0HDLb/iO2O0n2lBOzJgr6Q/cyg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2787,12 +2791,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.9.0 - '@typescript-eslint/types': 6.9.0 - '@typescript-eslint/typescript-estree': 6.9.0(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.9.0 + '@typescript-eslint/scope-manager': 6.9.1 + '@typescript-eslint/types': 6.9.1 + '@typescript-eslint/typescript-estree': 6.9.1(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.9.1 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.52.0 + eslint: 8.53.0 typescript: 5.2.2 transitivePeerDependencies: - supports-color @@ -2814,15 +2818,15 @@ packages: '@typescript-eslint/visitor-keys': 6.7.5 dev: true - /@typescript-eslint/scope-manager@6.9.0: - resolution: {integrity: sha512-1R8A9Mc39n4pCCz9o79qRO31HGNDvC7UhPhv26TovDsWPBDx+Sg3rOZdCELIA3ZmNoWAuxaMOT7aWtGRSYkQxw==} + /@typescript-eslint/scope-manager@6.9.1: + resolution: {integrity: sha512-38IxvKB6NAne3g/+MyXMs2Cda/Sz+CEpmm+KLGEM8hx/CvnSRuw51i8ukfwB/B/sESdeTGet1NH1Wj7I0YXswg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.9.0 - '@typescript-eslint/visitor-keys': 6.9.0 + '@typescript-eslint/types': 6.9.1 + '@typescript-eslint/visitor-keys': 6.9.1 dev: true - /@typescript-eslint/type-utils@6.7.5(eslint@8.52.0)(typescript@5.2.2): + /@typescript-eslint/type-utils@6.7.5(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2833,9 +2837,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.2.2) - '@typescript-eslint/utils': 6.7.5(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.5(eslint@8.53.0)(typescript@5.2.2) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.52.0 + eslint: 8.53.0 ts-api-utils: 1.0.1(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: @@ -2852,8 +2856,8 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@6.9.0: - resolution: {integrity: sha512-+KB0lbkpxBkBSiVCuQvduqMJy+I1FyDbdwSpM3IoBS7APl4Bu15lStPjgBIdykdRqQNYqYNMa8Kuidax6phaEw==} + /@typescript-eslint/types@6.9.1: + resolution: {integrity: sha512-BUGslGOb14zUHOUmDB2FfT6SI1CcZEJYfF3qFwBeUrU6srJfzANonwRYHDpLBuzbq3HaoF2XL2hcr01c8f8OaQ==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -2899,8 +2903,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.9.0(typescript@5.2.2): - resolution: {integrity: sha512-NJM2BnJFZBEAbCfBP00zONKXvMqihZCrmwCaik0UhLr0vAgb6oguXxLX1k00oQyD+vZZ+CJn3kocvv2yxm4awQ==} + /@typescript-eslint/typescript-estree@6.9.1(typescript@5.2.2): + resolution: {integrity: sha512-U+mUylTHfcqeO7mLWVQ5W/tMLXqVpRv61wm9ZtfE5egz7gtnmqVIw9ryh0mgIlkKk9rZLY3UHygsBSdB9/ftyw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2908,8 +2912,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.9.0 - '@typescript-eslint/visitor-keys': 6.9.0 + '@typescript-eslint/types': 6.9.1 + '@typescript-eslint/visitor-keys': 6.9.1 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 @@ -2920,19 +2924,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.52.0)(typescript@5.2.2): + /@typescript-eslint/utils@5.62.0(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) '@types/json-schema': 7.0.14 '@types/semver': 7.5.4 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - eslint: 8.52.0 + eslint: 8.53.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -2940,19 +2944,19 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.7.5(eslint@8.52.0)(typescript@5.2.2): + /@typescript-eslint/utils@6.7.5(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) '@types/json-schema': 7.0.14 '@types/semver': 7.5.4 '@typescript-eslint/scope-manager': 6.7.5 '@typescript-eslint/types': 6.7.5 '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.2.2) - eslint: 8.52.0 + eslint: 8.53.0 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -2975,11 +2979,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.9.0: - resolution: {integrity: sha512-dGtAfqjV6RFOtIP8I0B4ZTBRrlTT8NHHlZZSchQx3qReaoDeXhYM++M4So2AgFK9ZB0emRPA6JI1HkafzA2Ibg==} + /@typescript-eslint/visitor-keys@6.9.1: + resolution: {integrity: sha512-MUaPUe/QRLEffARsmNfmpghuQkW436DvESW+h+M52w0coICHRfD6Np9/K6PdACwnrq1HmuLl+cSPZaJmeVPkSw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.9.0 + '@typescript-eslint/types': 6.9.1 eslint-visitor-keys: 3.4.3 dev: true @@ -4783,59 +4787,59 @@ packages: lodash.zip: 4.2.0 dev: true - /eslint-compat-utils@0.1.2(eslint@8.52.0): + /eslint-compat-utils@0.1.2(eslint@8.53.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 8.52.0 + eslint: 8.53.0 dev: true - /eslint-config-canonical@42.3.0(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.6)(@types/node@20.8.9)(eslint@8.52.0)(graphql@16.7.1)(typescript@5.2.2)(vitest@0.34.1): + /eslint-config-canonical@42.3.0(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.6)(@types/node@20.8.10)(eslint@8.53.0)(graphql@16.7.1)(typescript@5.2.2)(vitest@0.34.1): resolution: {integrity: sha512-1FDYIBs3gFpZNhCAe4zfskCsYQNrBc15npCVrFqI2fknszMgoEi7YoYlzx18eSPnlH3xigQWm0ZK90351yZI+Q==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 dependencies: '@babel/core': 7.23.2 - '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.52.0) - '@babel/eslint-plugin': 7.22.10(@babel/eslint-parser@7.22.15)(eslint@8.52.0) + '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.53.0) + '@babel/eslint-plugin': 7.22.10(@babel/eslint-parser@7.22.15)(eslint@8.53.0) '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.2) - '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.2)(@types/node@20.8.9)(graphql@16.7.1) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.2)(@types/node@20.8.10)(graphql@16.7.1) '@next/eslint-plugin-next': 13.5.6 '@rushstack/eslint-patch': 1.5.1 - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)(typescript@5.2.2) - '@typescript-eslint/parser': 6.9.0(eslint@8.52.0)(typescript@5.2.2) - eslint: 8.52.0 - eslint-config-prettier: 9.0.0(eslint@8.52.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.0)(eslint-plugin-import@2.28.1)(eslint@8.52.0) - eslint-plugin-ava: 14.0.0(eslint@8.52.0) - eslint-plugin-canonical: 4.15.1(@typescript-eslint/parser@6.9.0)(eslint-plugin-import@2.28.1)(eslint@8.52.0)(typescript@5.2.2) - eslint-plugin-cypress: 2.15.1(eslint@8.52.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.52.0) - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.52.0) - eslint-plugin-fp: 2.3.0(eslint@8.52.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) - eslint-plugin-jest: 27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.52.0)(typescript@5.2.2) - eslint-plugin-jsdoc: 46.8.2(eslint@8.52.0) - eslint-plugin-jsonc: 2.10.0(eslint@8.52.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@8.52.0) - eslint-plugin-lodash: 7.4.0(eslint@8.52.0) - eslint-plugin-mocha: 10.2.0(eslint@8.52.0) + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.9.1)(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.9.1(eslint@8.53.0)(typescript@5.2.2) + eslint: 8.53.0 + eslint-config-prettier: 9.0.0(eslint@8.53.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.1)(eslint-plugin-import@2.28.1)(eslint@8.53.0) + eslint-plugin-ava: 14.0.0(eslint@8.53.0) + eslint-plugin-canonical: 4.15.1(@typescript-eslint/parser@6.9.1)(eslint-plugin-import@2.28.1)(eslint@8.53.0)(typescript@5.2.2) + eslint-plugin-cypress: 2.15.1(eslint@8.53.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.53.0) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.53.0) + eslint-plugin-fp: 2.3.0(eslint@8.53.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) + eslint-plugin-jest: 27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.53.0)(typescript@5.2.2) + eslint-plugin-jsdoc: 46.8.2(eslint@8.53.0) + eslint-plugin-jsonc: 2.10.0(eslint@8.53.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.53.0) + eslint-plugin-lodash: 7.4.0(eslint@8.53.0) + eslint-plugin-mocha: 10.2.0(eslint@8.53.0) eslint-plugin-modules-newline: 0.0.6 - eslint-plugin-node: 11.1.0(eslint@8.52.0) - eslint-plugin-prettier: 5.0.1(@types/eslint@8.44.6)(eslint-config-prettier@9.0.0)(eslint@8.52.0)(prettier@3.0.3) - eslint-plugin-promise: 6.1.1(eslint@8.52.0) - eslint-plugin-react: 7.33.2(eslint@8.52.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.52.0) - eslint-plugin-regexp: 1.15.0(eslint@8.52.0) - eslint-plugin-simple-import-sort: 10.0.0(eslint@8.52.0) - eslint-plugin-typescript-sort-keys: 3.0.0(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)(typescript@5.2.2) - eslint-plugin-unicorn: 48.0.1(eslint@8.52.0) - eslint-plugin-vitest: 0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.52.0)(typescript@5.2.2)(vitest@0.34.1) - eslint-plugin-yml: 1.10.0(eslint@8.52.0) - eslint-plugin-zod: 1.4.0(eslint@8.52.0) + eslint-plugin-node: 11.1.0(eslint@8.53.0) + eslint-plugin-prettier: 5.0.1(@types/eslint@8.44.6)(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@3.0.3) + eslint-plugin-promise: 6.1.1(eslint@8.53.0) + eslint-plugin-react: 7.33.2(eslint@8.53.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.53.0) + eslint-plugin-regexp: 1.15.0(eslint@8.53.0) + eslint-plugin-simple-import-sort: 10.0.0(eslint@8.53.0) + eslint-plugin-typescript-sort-keys: 3.0.0(@typescript-eslint/parser@6.9.1)(eslint@8.53.0)(typescript@5.2.2) + eslint-plugin-unicorn: 48.0.1(eslint@8.53.0) + eslint-plugin-vitest: 0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.53.0)(typescript@5.2.2)(vitest@0.34.1) + eslint-plugin-yml: 1.10.0(eslint@8.53.0) + eslint-plugin-zod: 1.4.0(eslint@8.53.0) prettier: 3.0.3 ramda: 0.29.1 yaml-eslint-parser: 1.2.2 @@ -4857,13 +4861,13 @@ packages: - vitest dev: true - /eslint-config-prettier@9.0.0(eslint@8.52.0): + /eslint-config-prettier@9.0.0(eslint@8.53.0): resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.52.0 + eslint: 8.53.0 dev: true /eslint-import-resolver-node@0.3.7: @@ -4876,7 +4880,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.9.0)(eslint-plugin-import@2.28.1)(eslint@8.52.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.9.1)(eslint-plugin-import@2.28.1)(eslint@8.53.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4885,9 +4889,9 @@ packages: dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 - eslint: 8.52.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) + eslint: 8.53.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) fast-glob: 3.3.1 get-tsconfig: 4.6.2 is-core-module: 2.13.0 @@ -4899,7 +4903,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4920,24 +4924,24 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.9.0(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.9.1(eslint@8.53.0)(typescript@5.2.2) debug: 3.2.7 - eslint: 8.52.0 + eslint: 8.53.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.0)(eslint-plugin-import@2.28.1)(eslint@8.52.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.1)(eslint-plugin-import@2.28.1)(eslint@8.53.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-ava@14.0.0(eslint@8.52.0): + /eslint-plugin-ava@14.0.0(eslint@8.53.0): resolution: {integrity: sha512-XmKT6hppaipwwnLVwwvQliSU6AF1QMHiNoLD5JQfzhUhf0jY7CO0O624fQrE+Y/fTb9vbW8r77nKf7M/oHulxw==} engines: {node: '>=14.17 <15 || >=16.4'} peerDependencies: eslint: '>=8.26.0' dependencies: enhance-visitors: 1.0.0 - eslint: 8.52.0 - eslint-utils: 3.0.0(eslint@8.52.0) + eslint: 8.53.0 + eslint-utils: 3.0.0(eslint@8.53.0) espree: 9.6.1 espurify: 2.1.1 import-modules: 2.1.0 @@ -4946,15 +4950,15 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-canonical@4.15.1(@typescript-eslint/parser@6.9.0)(eslint-plugin-import@2.28.1)(eslint@8.52.0)(typescript@5.2.2): + /eslint-plugin-canonical@4.15.1(@typescript-eslint/parser@6.9.1)(eslint-plugin-import@2.28.1)(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-xndfaRN9vOb6sd2bd7jKac6oMeDj9ZaKr7uPYt99BGyy4D2gRe4cisIMo4uVUR3CdRSK1fEmH68OeRtmpJ7cpA==} engines: {node: '>=16.0.0'} dependencies: - '@typescript-eslint/utils': 6.7.5(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.5(eslint@8.53.0)(typescript@5.2.2) chance: 1.1.11 debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.0)(eslint-plugin-import@2.28.1)(eslint@8.52.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.1)(eslint-plugin-import@2.28.1)(eslint@8.53.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -4975,38 +4979,38 @@ packages: - typescript dev: true - /eslint-plugin-cypress@2.15.1(eslint@8.52.0): + /eslint-plugin-cypress@2.15.1(eslint@8.53.0): resolution: {integrity: sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 8.52.0 + eslint: 8.53.0 globals: 13.20.0 dev: true - /eslint-plugin-es@3.0.1(eslint@8.52.0): + /eslint-plugin-es@3.0.1(eslint@8.53.0): resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.52.0 + eslint: 8.53.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-eslint-comments@3.2.0(eslint@8.52.0): + /eslint-plugin-eslint-comments@3.2.0(eslint@8.53.0): resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' dependencies: escape-string-regexp: 1.0.5 - eslint: 8.52.0 + eslint: 8.53.0 ignore: 5.2.4 dev: true - /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.52.0): + /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.53.0): resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -5016,25 +5020,25 @@ packages: dependencies: '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.23.2) '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.23.2) - eslint: 8.52.0 + eslint: 8.53.0 lodash: 4.17.21 string-natural-compare: 3.0.1 dev: true - /eslint-plugin-fp@2.3.0(eslint@8.52.0): + /eslint-plugin-fp@2.3.0(eslint@8.53.0): resolution: {integrity: sha512-3n2oHibwoIxAht9/+ZaTldhI6brXORgl8oNXqZd+d9xuAQt2SBJ2/aml0oQRMWvXrgsz2WG6wfC++NjzSG3prA==} engines: {node: '>=4.0.0'} peerDependencies: eslint: '>=3' dependencies: create-eslint-index: 1.0.0 - eslint: 8.52.0 + eslint: 8.53.0 eslint-ast-utils: 1.1.0 lodash: 4.17.21 req-all: 0.1.0 dev: true - /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0): + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0): resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} engines: {node: '>=4'} peerDependencies: @@ -5044,16 +5048,16 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.9.0(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.9.1(eslint@8.53.0)(typescript@5.2.2) array-includes: 3.1.6 array.prototype.findlastindex: 1.2.2 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.52.0 + eslint: 8.53.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) has: 1.0.3 is-core-module: 2.13.0 is-glob: 4.0.3 @@ -5069,7 +5073,7 @@ packages: - supports-color dev: true - /eslint-plugin-jest@27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.52.0)(typescript@5.2.2): + /eslint-plugin-jest@27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-3Nfvv3wbq2+PZlRTf2oaAWXWwbdBejFRBR2O8tAO67o+P8zno+QGbcDYaAXODlreXVg+9gvWhKKmG2rgfb8GEg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -5082,15 +5086,15 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.52.0)(typescript@5.2.2) - eslint: 8.52.0 + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.9.1)(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) + eslint: 8.53.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsdoc@46.8.2(eslint@8.52.0): + /eslint-plugin-jsdoc@46.8.2(eslint@8.53.0): resolution: {integrity: sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ==} engines: {node: '>=16'} peerDependencies: @@ -5101,7 +5105,7 @@ packages: comment-parser: 1.4.0 debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 8.52.0 + eslint: 8.53.0 esquery: 1.5.0 is-builtin-module: 3.2.1 semver: 7.5.4 @@ -5110,20 +5114,20 @@ packages: - supports-color dev: true - /eslint-plugin-jsonc@2.10.0(eslint@8.52.0): + /eslint-plugin-jsonc@2.10.0(eslint@8.53.0): resolution: {integrity: sha512-9d//o6Jyh4s1RxC9fNSt1+MMaFN2ruFdXPG9XZcb/mR2KkfjADYiNL/hbU6W0Cyxfg3tS/XSFuhl5LgtMD8hmw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) - eslint: 8.52.0 - eslint-compat-utils: 0.1.2(eslint@8.52.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + eslint: 8.53.0 + eslint-compat-utils: 0.1.2(eslint@8.53.0) jsonc-eslint-parser: 2.3.0 natural-compare: 1.4.0 dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.52.0): + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.53.0): resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} peerDependencies: @@ -5138,7 +5142,7 @@ packages: axobject-query: 3.2.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.52.0 + eslint: 8.53.0 has: 1.0.3 jsx-ast-utils: 3.3.5 language-tags: 1.0.5 @@ -5148,24 +5152,24 @@ packages: semver: 6.3.1 dev: true - /eslint-plugin-lodash@7.4.0(eslint@8.52.0): + /eslint-plugin-lodash@7.4.0(eslint@8.53.0): resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} engines: {node: '>=10'} peerDependencies: eslint: '>=2' dependencies: - eslint: 8.52.0 + eslint: 8.53.0 lodash: 4.17.21 dev: true - /eslint-plugin-mocha@10.2.0(eslint@8.52.0): + /eslint-plugin-mocha@10.2.0(eslint@8.53.0): resolution: {integrity: sha512-ZhdxzSZnd1P9LqDPF0DBcFLpRIGdh1zkF2JHnQklKQOvrQtT73kdP5K9V2mzvbLR+cCAO9OI48NXK/Ax9/ciCQ==} engines: {node: '>=14.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.52.0 - eslint-utils: 3.0.0(eslint@8.52.0) + eslint: 8.53.0 + eslint-utils: 3.0.0(eslint@8.53.0) rambda: 7.5.0 dev: true @@ -5176,14 +5180,14 @@ packages: requireindex: 1.1.0 dev: true - /eslint-plugin-node@11.1.0(eslint@8.52.0): + /eslint-plugin-node@11.1.0(eslint@8.53.0): resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.52.0 - eslint-plugin-es: 3.0.1(eslint@8.52.0) + eslint: 8.53.0 + eslint-plugin-es: 3.0.1(eslint@8.53.0) eslint-utils: 2.1.0 ignore: 5.2.4 minimatch: 3.1.2 @@ -5191,7 +5195,7 @@ packages: semver: 6.3.1 dev: true - /eslint-plugin-prettier@5.0.1(@types/eslint@8.44.6)(eslint-config-prettier@9.0.0)(eslint@8.52.0)(prettier@3.0.3): + /eslint-plugin-prettier@5.0.1(@types/eslint@8.44.6)(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@3.0.3): resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -5206,32 +5210,32 @@ packages: optional: true dependencies: '@types/eslint': 8.44.6 - eslint: 8.52.0 - eslint-config-prettier: 9.0.0(eslint@8.52.0) + eslint: 8.53.0 + eslint-config-prettier: 9.0.0(eslint@8.53.0) prettier: 3.0.3 prettier-linter-helpers: 1.0.0 synckit: 0.8.5 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.52.0): + /eslint-plugin-promise@6.1.1(eslint@8.53.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.52.0 + eslint: 8.53.0 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.52.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.53.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.52.0 + eslint: 8.53.0 dev: true - /eslint-plugin-react@7.33.2(eslint@8.52.0): + /eslint-plugin-react@7.33.2(eslint@8.53.0): resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} engines: {node: '>=4'} peerDependencies: @@ -5242,7 +5246,7 @@ packages: array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 es-iterator-helpers: 1.0.15 - eslint: 8.52.0 + eslint: 8.53.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 @@ -5256,16 +5260,16 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-regexp@1.15.0(eslint@8.52.0): + /eslint-plugin-regexp@1.15.0(eslint@8.53.0): resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} engines: {node: ^12 || >=14} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) '@eslint-community/regexpp': 4.6.2 comment-parser: 1.4.1 - eslint: 8.52.0 + eslint: 8.53.0 grapheme-splitter: 1.0.4 jsdoctypeparser: 9.0.0 refa: 0.11.0 @@ -5273,15 +5277,15 @@ packages: scslre: 0.2.0 dev: true - /eslint-plugin-simple-import-sort@10.0.0(eslint@8.52.0): + /eslint-plugin-simple-import-sort@10.0.0(eslint@8.53.0): resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 8.52.0 + eslint: 8.53.0 dev: true - /eslint-plugin-typescript-sort-keys@3.0.0(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)(typescript@5.2.2): + /eslint-plugin-typescript-sort-keys@3.0.0(@typescript-eslint/parser@6.9.1)(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-bMmI4prYlf3l/1O8j8Nsz11m+XfKEHRFk9aJqP91L4Hgy7I38lnitnYElDmPQaznE1oFlGgBcnkEizNT2NLylQ==} engines: {node: '>= 16'} peerDependencies: @@ -5289,9 +5293,9 @@ packages: eslint: ^7 || ^8 typescript: ^3 || ^4 || ^5 dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.52.0)(typescript@5.2.2) - '@typescript-eslint/parser': 6.9.0(eslint@8.52.0)(typescript@5.2.2) - eslint: 8.52.0 + '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.9.1(eslint@8.53.0)(typescript@5.2.2) + eslint: 8.53.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 typescript: 5.2.2 @@ -5299,17 +5303,17 @@ packages: - supports-color dev: true - /eslint-plugin-unicorn@48.0.1(eslint@8.52.0): + /eslint-plugin-unicorn@48.0.1(eslint@8.53.0): resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} engines: {node: '>=16'} peerDependencies: eslint: '>=8.44.0' dependencies: '@babel/helper-validator-identifier': 7.22.20 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) ci-info: 3.8.0 clean-regexp: 1.0.0 - eslint: 8.52.0 + eslint: 8.53.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -5323,7 +5327,7 @@ packages: strip-indent: 3.0.0 dev: true - /eslint-plugin-vitest@0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.52.0)(typescript@5.2.2)(vitest@0.34.1): + /eslint-plugin-vitest@0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.53.0)(typescript@5.2.2)(vitest@0.34.1): resolution: {integrity: sha512-A1P0qJVkqHyfDolwm09h8/gu7SbGFOKbacJSeyZ9IRb8uyddgqLcqv4VrqgQfLA7QmGI9lwj1iV90NyZ1cHp8Q==} engines: {node: 14.x || >= 16} peerDependencies: @@ -5334,24 +5338,24 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.7.5(eslint@8.52.0)(typescript@5.2.2) - eslint: 8.52.0 + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.9.1)(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.5(eslint@8.53.0)(typescript@5.2.2) + eslint: 8.53.0 vitest: 0.34.1 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-yml@1.10.0(eslint@8.52.0): + /eslint-plugin-yml@1.10.0(eslint@8.53.0): resolution: {integrity: sha512-53SUwuNDna97lVk38hL/5++WXDuugPM9SUQ1T645R0EHMRCdBIIxGye/oOX2qO3FQ7aImxaUZJU/ju+NMUBrLQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4(supports-color@8.1.1) - eslint: 8.52.0 - eslint-compat-utils: 0.1.2(eslint@8.52.0) + eslint: 8.53.0 + eslint-compat-utils: 0.1.2(eslint@8.53.0) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.2 @@ -5359,13 +5363,13 @@ packages: - supports-color dev: true - /eslint-plugin-zod@1.4.0(eslint@8.52.0): + /eslint-plugin-zod@1.4.0(eslint@8.53.0): resolution: {integrity: sha512-i9WzQGw2X5fQcuQh33mA8DQjZJM/yuyZvs1Fc5EyTidX7Ed/g832+1FEQ4u5gtXy+jZ+DVsB5+oMHj4tIOfeZg==} engines: {node: '>=12'} peerDependencies: eslint: '>=8.1.0' dependencies: - eslint: 8.52.0 + eslint: 8.53.0 dev: true /eslint-rule-composer@0.3.0: @@ -5396,13 +5400,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils@3.0.0(eslint@8.52.0): + /eslint-utils@3.0.0(eslint@8.53.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.52.0 + eslint: 8.53.0 eslint-visitor-keys: 2.1.0 dev: true @@ -5426,15 +5430,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.52.0: - resolution: {integrity: sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==} + /eslint@8.53.0: + resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) '@eslint-community/regexpp': 4.6.2 - '@eslint/eslintrc': 2.1.2 - '@eslint/js': 8.52.0 + '@eslint/eslintrc': 2.1.3 + '@eslint/js': 8.53.0 '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -5723,12 +5727,11 @@ packages: escape-string-regexp: 1.0.5 dev: true - /figures@5.0.0: - resolution: {integrity: sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==} - engines: {node: '>=14'} + /figures@6.0.1: + resolution: {integrity: sha512-0oY/olScYD4IhQ8u//gCPA4F3mlTn2dacYmiDm/mbDQvpmLjV4uH+zhsQ5IyXRyvqkvtUkXkNdGvg5OFJTCsuQ==} + engines: {node: '>=18'} dependencies: - escape-string-regexp: 5.0.0 - is-unicode-supported: 1.3.0 + is-unicode-supported: 2.0.0 dev: true /file-entry-cache@6.0.1: @@ -5779,6 +5782,11 @@ packages: pkg-dir: 4.2.0 dev: true + /find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} + dev: true + /find-up@2.1.0: resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} engines: {node: '>=4'} @@ -6223,7 +6231,7 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql-config@4.5.0(@types/node@20.8.9)(graphql@16.7.1): + /graphql-config@4.5.0(@types/node@20.8.10)(graphql@16.7.1): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -6237,7 +6245,7 @@ packages: '@graphql-tools/json-file-loader': 7.4.18(graphql@16.7.1) '@graphql-tools/load': 7.8.14(graphql@16.7.1) '@graphql-tools/merge': 8.4.2(graphql@16.7.1) - '@graphql-tools/url-loader': 7.17.18(@types/node@20.8.9)(graphql@16.7.1) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.8.10)(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) cosmiconfig: 8.0.0 graphql: 16.7.1 @@ -6550,6 +6558,11 @@ packages: resolve-from: 4.0.0 dev: true + /import-from-esm@1.0.3: + resolution: {integrity: sha512-bncoEU7L4Vi5OoeygZuBUP9IC1AxavLR4UMCwZ9FtujOhDG1PDEo7IpCdfeOxKfrMCGwoK6UXpF9q/cXTA/ejg==} + engines: {node: '>=16.20'} + dev: true + /import-from@4.0.0: resolution: {integrity: sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==} engines: {node: '>=12.2'} @@ -6575,6 +6588,11 @@ packages: engines: {node: '>=12'} dev: true + /index-to-position@0.1.0: + resolution: {integrity: sha512-I6PLk0E6Jk8t/W212xp9euPed30tIN9mYdslb0Vkd03hG9sd0pByboBdtIRL+Y/103JLp1alP3OuMgxfbIQyFw==} + engines: {node: '>=18'} + dev: true + /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: @@ -6987,9 +7005,9 @@ packages: engines: {node: '>=10'} dev: true - /is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} + /is-unicode-supported@2.0.0: + resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} + engines: {node: '>=18'} dev: true /is-weakmap@2.0.1: @@ -7729,7 +7747,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.3.0(@types/node@20.8.9): + /meros@1.3.0(@types/node@20.8.10): resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} engines: {node: '>=13'} peerDependencies: @@ -7738,7 +7756,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.8.9 + '@types/node': 20.8.10 dev: true /micro-spelling-correcter@1.1.1: @@ -8109,7 +8127,17 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: hosted-git-info: 6.1.1 - is-core-module: 2.12.1 + is-core-module: 2.13.0 + semver: 7.5.4 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-package-data@6.0.0: + resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + hosted-git-info: 7.0.1 + is-core-module: 2.13.0 semver: 7.5.4 validate-npm-package-license: 3.0.4 dev: true @@ -8654,13 +8682,23 @@ packages: resolution: {integrity: sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==} engines: {node: '>=16'} dependencies: - '@babel/code-frame': 7.22.10 + '@babel/code-frame': 7.22.13 error-ex: 1.3.2 json-parse-even-better-errors: 3.0.0 lines-and-columns: 2.0.3 type-fest: 3.13.1 dev: true + /parse-json@8.0.0: + resolution: {integrity: sha512-QtWnjHuun44MCLbq9f2rlcX9Bp9FSsPgQS9nuGcIm3J557b3/CvmYUhwChgJJDlMpuNN0sFRAogzQ8xMitD1oQ==} + engines: {node: '>=18'} + dependencies: + '@babel/code-frame': 7.22.13 + index-to-position: 0.1.0 + json-parse-even-better-errors: 3.0.0 + type-fest: 4.6.0 + dev: true + /parse-passwd@1.0.0: resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} engines: {node: '>=0.10.0'} @@ -8989,6 +9027,16 @@ packages: type-fest: 3.13.1 dev: true + /read-pkg-up@11.0.0: + resolution: {integrity: sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q==} + engines: {node: '>=18'} + deprecated: Renamed to read-package-up + dependencies: + find-up-simple: 1.0.0 + read-pkg: 9.0.0 + type-fest: 4.6.0 + dev: true + /read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} @@ -9018,6 +9066,16 @@ packages: type-fest: 3.13.1 dev: true + /read-pkg@9.0.0: + resolution: {integrity: sha512-SBoBio4xhJmlF4xs9IBliWZGSbDAnrOfQkLGL7xB+RYEUZNAN2LlNkzO45B7gc7c2dLMX987bhHAaJ/LG3efeQ==} + engines: {node: '>=18'} + dependencies: + '@types/normalize-package-data': 2.4.3 + normalize-package-data: 6.0.0 + parse-json: 8.0.0 + type-fest: 4.6.0 + dev: true + /readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} dependencies: @@ -9424,22 +9482,22 @@ packages: regexp-ast-analysis: 0.6.0 dev: true - /semantic-release@22.0.5: - resolution: {integrity: sha512-ESCEQsZlBj1DWMA84RthaJzQHHnihoGk49s9nUxHfRNUNZelLE9JZrE94bHO2Y00EWb7iwrzr1OYhv5QNVmf8A==} + /semantic-release@22.0.7: + resolution: {integrity: sha512-Stx23Hjn7iU8GOAlhG3pHlR7AoNEahj9q7lKBP0rdK2BasGtJ4AWYh3zm1u3SCMuFiA8y4CE/Gu4RGKau1WiaQ==} engines: {node: ^18.17 || >=20.6.1} hasBin: true dependencies: - '@semantic-release/commit-analyzer': 11.0.0(semantic-release@22.0.5) + '@semantic-release/commit-analyzer': 11.1.0(semantic-release@22.0.7) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 9.2.1(semantic-release@22.0.5) - '@semantic-release/npm': 11.0.0(semantic-release@22.0.5) - '@semantic-release/release-notes-generator': 12.0.0(semantic-release@22.0.5) + '@semantic-release/github': 9.2.1(semantic-release@22.0.7) + '@semantic-release/npm': 11.0.1(semantic-release@22.0.7) + '@semantic-release/release-notes-generator': 12.0.0(semantic-release@22.0.7) aggregate-error: 5.0.0 cosmiconfig: 8.2.0 debug: 4.3.4(supports-color@8.1.1) env-ci: 10.0.0 execa: 8.0.1 - figures: 5.0.0 + figures: 6.0.1 find-versions: 5.1.0 get-stream: 6.0.1 git-log-parser: 1.2.0 @@ -9451,7 +9509,7 @@ packages: micromatch: 4.0.5 p-each-series: 3.0.0 p-reduce: 3.0.0 - read-pkg-up: 10.0.0 + read-pkg-up: 11.0.0 resolve-from: 5.0.0 semver: 7.5.4 semver-diff: 4.0.0 @@ -10274,6 +10332,11 @@ packages: engines: {node: '>=14.16'} dev: true + /type-fest@4.6.0: + resolution: {integrity: sha512-rLjWJzQFOq4xw7MgJrCZ6T1jIOvvYElXT12r+y0CC6u67hegDHaxcPqb2fZHOGlqxugGQPNB1EnTezjBetkwkw==} + engines: {node: '>=16'} + dev: true + /typed-array-buffer@1.0.0: resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} engines: {node: '>= 0.4'} @@ -10553,7 +10616,7 @@ packages: extsprintf: 1.3.0 dev: true - /vite-node@0.34.1(@types/node@20.8.9): + /vite-node@0.34.1(@types/node@20.8.10): resolution: {integrity: sha512-odAZAL9xFMuAg8aWd7nSPT+hU8u2r9gU3LRm9QKjxBEF2rRdWpMuqkrkjvyVQEdNFiBctqr2Gg4uJYizm5Le6w==} engines: {node: '>=v14.18.0'} hasBin: true @@ -10563,7 +10626,7 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.8(@types/node@20.8.9) + vite: 4.4.8(@types/node@20.8.10) transitivePeerDependencies: - '@types/node' - less @@ -10575,7 +10638,7 @@ packages: - terser dev: true - /vite@4.4.8(@types/node@20.8.9): + /vite@4.4.8(@types/node@20.8.10): resolution: {integrity: sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -10603,7 +10666,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.8.9 + '@types/node': 20.8.10 esbuild: 0.18.17 postcss: 8.4.31 rollup: 3.27.2 @@ -10644,7 +10707,7 @@ packages: dependencies: '@types/chai': 4.3.9 '@types/chai-subset': 1.3.3 - '@types/node': 20.8.9 + '@types/node': 20.8.10 '@vitest/expect': 0.34.1 '@vitest/runner': 0.34.1 '@vitest/snapshot': 0.34.1 @@ -10663,8 +10726,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.0 tinypool: 0.7.0 - vite: 4.4.8(@types/node@20.8.9) - vite-node: 0.34.1(@types/node@20.8.9) + vite: 4.4.8(@types/node@20.8.10) + vite-node: 0.34.1(@types/node@20.8.10) why-is-node-running: 2.2.2 transitivePeerDependencies: - less From fd1eab0e2bb948461dbf1e709f8006cfa1f6c469 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 9 Nov 2023 20:08:24 -0700 Subject: [PATCH 145/273] feat: bump jsdoccomment, devDeps.; fixes #1167 --- docs/rules/require-description.md | 23 + package.json | 36 +- pnpm-lock.yaml | 1395 +++++++++---------- test/rules/assertions/requireDescription.js | 53 + 4 files changed, 783 insertions(+), 724 deletions(-) diff --git a/docs/rules/require-description.md b/docs/rules/require-description.md index 7d2143da1..17a414e9c 100644 --- a/docs/rules/require-description.md +++ b/docs/rules/require-description.md @@ -345,6 +345,29 @@ class quux { // Settings: {"jsdoc":{"implementsReplacesDocs":false}} // "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[tag=\"implements\"])","context":"any"}],"descriptionStyle":"tag"}] // Message: Missing JSDoc @description declaration. + +app.use( + /** @type {express.ErrorRequestHandler} */ + (err, req, res, next) => { + // foo + } +); +// Message: Missing JSDoc block description. + +app.use( + /** @type {express.ErrorRequestHandler} */ + ( + (err, req, res, next) => { + // foo + } + ) +); +// Message: Missing JSDoc block description. + +/** @type {TreeViewItemData[]} */ +this.treeViewSelection = []; +// "jsdoc/require-description": ["error"|"warn", {"contexts":["AssignmentExpression"]}] +// Message: Missing JSDoc block description. ```` diff --git a/package.json b/package.json index 6e25a11b0..75f72a027 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "url": "http://gajus.com" }, "dependencies": { - "@es-joy/jsdoccomment": "~0.40.1", + "@es-joy/jsdoccomment": "~0.41.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.3.4", @@ -18,31 +18,31 @@ "description": "JSDoc linting rules for ESLint.", "devDependencies": { "@babel/cli": "^7.23.0", - "@babel/core": "^7.23.2", - "@babel/eslint-parser": "^7.22.15", + "@babel/core": "^7.23.3", + "@babel/eslint-parser": "^7.23.3", "@babel/node": "^7.22.19", "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-transform-flow-strip-types": "^7.22.5", - "@babel/preset-env": "^7.23.2", + "@babel/plugin-transform-flow-strip-types": "^7.23.3", + "@babel/preset-env": "^7.23.3", "@babel/register": "^7.22.15", "@es-joy/escodegen": "^3.5.1", "@es-joy/jsdoc-eslint-parser": "^0.19.0", "@hkdobrev/run-if-changed": "^0.3.1", "@semantic-release/commit-analyzer": "^11.1.0", - "@semantic-release/github": "^9.2.1", + "@semantic-release/github": "^9.2.3", "@semantic-release/npm": "^11.0.1", - "@types/chai": "^4.3.9", - "@types/debug": "^4.1.10", - "@types/eslint": "^8.44.6", - "@types/esquery": "^1.5.2", - "@types/estree": "^1.0.4", - "@types/json-schema": "^7.0.14", - "@types/lodash.defaultsdeep": "^4.6.8", - "@types/mocha": "^10.0.3", - "@types/node": "^20.8.10", - "@types/semver": "^7.5.4", - "@types/spdx-expression-parse": "^3.0.4", - "@typescript-eslint/parser": "^6.9.1", + "@types/chai": "^4.3.10", + "@types/debug": "^4.1.12", + "@types/eslint": "^8.44.7", + "@types/esquery": "^1.5.3", + "@types/estree": "^1.0.5", + "@types/json-schema": "^7.0.15", + "@types/lodash.defaultsdeep": "^4.6.9", + "@types/mocha": "^10.0.4", + "@types/node": "^20.9.0", + "@types/semver": "^7.5.5", + "@types/spdx-expression-parse": "^3.0.5", + "@typescript-eslint/parser": "^6.10.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 63652e324..1def6a606 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,8 +6,8 @@ settings: dependencies: '@es-joy/jsdoccomment': - specifier: ~0.40.1 - version: 0.40.1 + specifier: ~0.41.0 + version: 0.41.0 are-docs-informative: specifier: ^0.0.2 version: 0.0.2 @@ -36,28 +36,28 @@ dependencies: devDependencies: '@babel/cli': specifier: ^7.23.0 - version: 7.23.0(@babel/core@7.23.2) + version: 7.23.0(@babel/core@7.23.3) '@babel/core': - specifier: ^7.23.2 - version: 7.23.2 + specifier: ^7.23.3 + version: 7.23.3 '@babel/eslint-parser': - specifier: ^7.22.15 - version: 7.22.15(@babel/core@7.23.2)(eslint@8.53.0) + specifier: ^7.23.3 + version: 7.23.3(@babel/core@7.23.3)(eslint@8.53.0) '@babel/node': specifier: ^7.22.19 - version: 7.22.19(@babel/core@7.23.2) + version: 7.22.19(@babel/core@7.23.3) '@babel/plugin-syntax-class-properties': specifier: ^7.12.13 - version: 7.12.13(@babel/core@7.23.2) + version: 7.12.13(@babel/core@7.23.3) '@babel/plugin-transform-flow-strip-types': - specifier: ^7.22.5 - version: 7.22.5(@babel/core@7.23.2) + specifier: ^7.23.3 + version: 7.23.3(@babel/core@7.23.3) '@babel/preset-env': - specifier: ^7.23.2 - version: 7.23.2(@babel/core@7.23.2) + specifier: ^7.23.3 + version: 7.23.3(@babel/core@7.23.3) '@babel/register': specifier: ^7.22.15 - version: 7.22.15(@babel/core@7.23.2) + version: 7.22.15(@babel/core@7.23.3) '@es-joy/escodegen': specifier: ^3.5.1 version: 3.5.1 @@ -71,47 +71,47 @@ devDependencies: specifier: ^11.1.0 version: 11.1.0(semantic-release@22.0.7) '@semantic-release/github': - specifier: ^9.2.1 - version: 9.2.1(semantic-release@22.0.7) + specifier: ^9.2.3 + version: 9.2.3(semantic-release@22.0.7) '@semantic-release/npm': specifier: ^11.0.1 version: 11.0.1(semantic-release@22.0.7) '@types/chai': - specifier: ^4.3.9 - version: 4.3.9 + specifier: ^4.3.10 + version: 4.3.10 '@types/debug': - specifier: ^4.1.10 - version: 4.1.10 + specifier: ^4.1.12 + version: 4.1.12 '@types/eslint': - specifier: ^8.44.6 - version: 8.44.6 + specifier: ^8.44.7 + version: 8.44.7 '@types/esquery': - specifier: ^1.5.2 - version: 1.5.2 + specifier: ^1.5.3 + version: 1.5.3 '@types/estree': - specifier: ^1.0.4 - version: 1.0.4 + specifier: ^1.0.5 + version: 1.0.5 '@types/json-schema': - specifier: ^7.0.14 - version: 7.0.14 + specifier: ^7.0.15 + version: 7.0.15 '@types/lodash.defaultsdeep': - specifier: ^4.6.8 - version: 4.6.8 + specifier: ^4.6.9 + version: 4.6.9 '@types/mocha': - specifier: ^10.0.3 - version: 10.0.3 + specifier: ^10.0.4 + version: 10.0.4 '@types/node': - specifier: ^20.8.10 - version: 20.8.10 + specifier: ^20.9.0 + version: 20.9.0 '@types/semver': - specifier: ^7.5.4 - version: 7.5.4 + specifier: ^7.5.5 + version: 7.5.5 '@types/spdx-expression-parse': - specifier: ^3.0.4 - version: 3.0.4 + specifier: ^3.0.5 + version: 3.0.5 '@typescript-eslint/parser': - specifier: ^6.9.1 - version: 6.9.1(eslint@8.53.0)(typescript@5.2.2) + specifier: ^6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.2.2) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -135,7 +135,7 @@ devDependencies: version: 8.53.0 eslint-config-canonical: specifier: ~42.3.0 - version: 42.3.0(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.6)(@types/node@20.8.10)(eslint@8.53.0)(graphql@16.7.1)(typescript@5.2.2)(vitest@0.34.1) + version: 42.3.0(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.7)(@types/node@20.9.0)(eslint@8.53.0)(graphql@16.7.1)(typescript@5.2.2)(vitest@0.34.1) espree: specifier: ^9.6.1 version: 9.6.1 @@ -203,14 +203,14 @@ packages: - encoding dev: true - /@babel/cli@7.23.0(@babel/core@7.23.2): + /@babel/cli@7.23.0(@babel/core@7.23.3): resolution: {integrity: sha512-17E1oSkGk2IwNILM4jtfAvgjt+ohmpfBky8aLerUfYZhiPNg7ca+CRCxZn8QDxwNhV/upsc2VHBCqGFIR+iBfA==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@jridgewell/trace-mapping': 0.3.18 commander: 4.1.1 convert-source-map: 2.0.0 @@ -223,14 +223,6 @@ packages: chokidar: 3.5.3 dev: true - /@babel/code-frame@7.22.10: - resolution: {integrity: sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.22.10 - chalk: 2.4.2 - dev: true - /@babel/code-frame@7.22.13: resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} engines: {node: '>=6.9.0'} @@ -239,30 +231,30 @@ packages: chalk: 2.4.2 dev: true - /@babel/compat-data@7.22.9: - resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} + /@babel/compat-data@7.23.2: + resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/compat-data@7.23.2: - resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} + /@babel/compat-data@7.23.3: + resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.23.2: - resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==} + /@babel/core@7.23.3: + resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.0 + '@babel/generator': 7.23.3 '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helpers': 7.23.2 - '@babel/parser': 7.23.0 + '@babel/parser': 7.23.3 '@babel/template': 7.22.15 - '@babel/traverse': 7.23.2 - '@babel/types': 7.23.0 + '@babel/traverse': 7.23.3 + '@babel/types': 7.23.3 convert-source-map: 2.0.0 debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 @@ -272,28 +264,28 @@ packages: - supports-color dev: true - /@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.53.0): - resolution: {integrity: sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==} + /@babel/eslint-parser@7.23.3(@babel/core@7.23.3)(eslint@8.53.0): + resolution: {integrity: sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 eslint: 8.53.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true - /@babel/eslint-plugin@7.22.10(@babel/eslint-parser@7.22.15)(eslint@8.53.0): + /@babel/eslint-plugin@7.22.10(@babel/eslint-parser@7.23.3)(eslint@8.53.0): resolution: {integrity: sha512-SRZcvo3fnO5h79B9DZSV6LG2vHH7OWsSNp1huFLHsXKyytRG413byQk9zxW1VcPOhnzfx2VIUz+8aGbiE7fOkA==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.53.0) + '@babel/eslint-parser': 7.23.3(@babel/core@7.23.3)(eslint@8.53.0) eslint: 8.53.0 eslint-rule-composer: 0.3.0 dev: true @@ -308,6 +300,16 @@ packages: jsesc: 2.5.2 dev: true + /@babel/generator@7.23.3: + resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.3 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 + jsesc: 2.5.2 + dev: true + /@babel/helper-annotate-as-pure@7.22.5: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} @@ -315,8 +317,8 @@ packages: '@babel/types': 7.23.0 dev: true - /@babel/helper-builder-binary-assignment-operator-visitor@7.22.5: - resolution: {integrity: sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==} + /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: + resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.0 @@ -326,67 +328,61 @@ packages: resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.22.9 + '@babel/compat-data': 7.23.2 '@babel/helper-validator-option': 7.22.15 - browserslist: 4.21.10 + browserslist: 4.22.1 lru-cache: 5.1.1 semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.2): + /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.3): resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.23.2) + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.23.3) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.22.9(@babel/core@7.23.2): - resolution: {integrity: sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==} + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.3): + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-member-expression-to-functions': 7.22.5 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.23.2) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 + regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.23.2): + /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.23.3): resolution: {integrity: sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.2): + /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.3): resolution: {integrity: sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4(supports-color@8.1.1) @@ -401,39 +397,19 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-environment-visitor@7.22.5: - resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-function-name@7.22.5: - resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.5 - '@babel/types': 7.23.0 - dev: true - /@babel/helper-function-name@7.23.0: resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 - dev: true - - /@babel/helper-member-expression-to-functions@7.22.5: - resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-member-expression-to-functions@7.23.0: @@ -447,37 +423,16 @@ packages: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true - /@babel/helper-module-imports@7.22.5: - resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.0 - dev: true - - /@babel/helper-module-transforms@7.22.9(@babel/core@7.23.2): - resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-module-imports': 7.22.5 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.5 - dev: true - - /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2): - resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -497,39 +452,39 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.2): + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.3): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 dev: true - /@babel/helper-remap-async-to-generator@7.22.9(@babel/core@7.23.2): - resolution: {integrity: sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==} + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.3): + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-wrap-function': 7.22.9 + '@babel/core': 7.23.3 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 dev: true - /@babel/helper-replace-supers@7.22.9(@babel/core@7.23.2): + /@babel/helper-replace-supers@7.22.9(@babel/core@7.23.3): resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-member-expression-to-functions': 7.22.5 + '@babel/core': 7.23.3 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 dev: true @@ -537,7 +492,7 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-skip-transparent-expression-wrappers@7.22.5: @@ -551,7 +506,7 @@ packages: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-string-parser@7.22.5: @@ -564,11 +519,6 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-identifier@7.22.5: - resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} - engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-validator-option@7.22.15: resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} engines: {node: '>=6.9.0'} @@ -578,40 +528,22 @@ packages: resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-function-name': 7.22.5 + '@babel/helper-function-name': 7.23.0 '@babel/template': 7.22.15 '@babel/types': 7.23.0 dev: true - /@babel/helper-wrap-function@7.22.9: - resolution: {integrity: sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-function-name': 7.22.5 - '@babel/template': 7.22.5 - '@babel/types': 7.23.0 - dev: true - /@babel/helpers@7.23.2: resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.23.2 - '@babel/types': 7.23.0 + '@babel/traverse': 7.23.3 + '@babel/types': 7.23.3 transitivePeerDependencies: - supports-color dev: true - /@babel/highlight@7.22.10: - resolution: {integrity: sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.5 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: true - /@babel/highlight@7.22.20: resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} engines: {node: '>=6.9.0'} @@ -621,15 +553,15 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/node@7.22.19(@babel/core@7.23.2): + /@babel/node@7.22.19(@babel/core@7.23.3): resolution: {integrity: sha512-VsKSO9aEHdO16NdtqkJfrXZ9Sxlna1BVnBbToWr1KGdI3cyIk6KqOoa8mWvpK280lJDOwJqxvnl994KmLhq1Yw==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/register': 7.22.15(@babel/core@7.23.2) + '@babel/core': 7.23.3 + '@babel/register': 7.22.15(@babel/core@7.23.3) commander: 4.1.1 core-js: 3.32.0 node-environment-flags: 1.0.6 @@ -637,916 +569,947 @@ packages: v8flags: 3.2.0 dev: true - /@babel/parser@7.22.10: - resolution: {integrity: sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==} + /@babel/parser@7.22.7: + resolution: {integrity: sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==} engines: {node: '>=6.0.0'} hasBin: true dependencies: '@babel/types': 7.23.0 dev: true - /@babel/parser@7.22.7: - resolution: {integrity: sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==} + /@babel/parser@7.23.0: + resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} engines: {node: '>=6.0.0'} hasBin: true dependencies: '@babel/types': 7.23.0 dev: true - /@babel/parser@7.23.0: - resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + /@babel/parser@7.23.3: + resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.15(@babel/core@7.23.2): - resolution: {integrity: sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==} + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.15(@babel/core@7.23.2): - resolution: {integrity: sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==} + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.3) dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.2): + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.3): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.2): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.2): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.3): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.2): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.3): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.2): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.2): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.23.2): + /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.23.3): resolution: {integrity: sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.23.2): + /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.23.3): resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==} + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.2): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.2): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.2): + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.3): resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.2): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.3): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.2): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.2): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.3): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.2): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.2): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.2): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.2): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.3): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.2): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.3): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.2): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.3): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.2) + '@babel/core': 7.23.3 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==} + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-generator-functions@7.23.2(@babel/core@7.23.2): - resolution: {integrity: sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==} + /@babel/plugin-transform-async-generator-functions@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-59GsVNavGxAXCDDbakWSMJhajASb4kBCqDjqJsv+p5nKdbz7istmZ3HrX3L2LuiI80+zsOADCvooqQH3qGCucQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.2) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.2) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==} + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-module-imports': 7.22.5 + '@babel/core': 7.23.3 + '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.23.2) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==} + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping@7.23.0(@babel/core@7.23.2): - resolution: {integrity: sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==} + /@babel/plugin-transform-block-scoping@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==} + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.23.2) + '@babel/core': 7.23.3 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-static-block@7.22.11(@babel/core@7.23.2): - resolution: {integrity: sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==} + /@babel/plugin-transform-class-static-block@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-PENDVxdr7ZxKPyi5Ffc0LjXdnJyrJxyqF5T5YjlVg4a0VFfQHW0r8iAtRiDXkfHlu1wwcvdtnndGYIeJLSuRMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.2) + '@babel/core': 7.23.3 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.2) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-classes@7.22.15(@babel/core@7.23.2): - resolution: {integrity: sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==} + /@babel/plugin-transform-classes@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.23.2) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==} + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/template': 7.22.5 + '@babel/template': 7.22.15 dev: true - /@babel/plugin-transform-destructuring@7.23.0(@babel/core@7.23.2): - resolution: {integrity: sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==} + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==} + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.2) + '@babel/core': 7.23.3 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==} + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dynamic-import@7.22.11(@babel/core@7.23.2): - resolution: {integrity: sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==} + /@babel/plugin-transform-dynamic-import@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-vTG+cTGxPFou12Rj7ll+eD5yWeNl5/8xvQvF08y5Gv3v4mZQoyFf8/n9zg4q5vvCWt5jmgymfzMAldO7orBn7A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==} + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.5 + '@babel/core': 7.23.3 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-export-namespace-from@7.22.11(@babel/core@7.23.2): - resolution: {integrity: sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==} + /@babel/plugin-transform-export-namespace-from@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-yCLhW34wpJWRdTxxWtFZASJisihrfyMOTOQexhVzA78jlU+dH7Dw+zQgcPepQ5F3C6bAIiblZZ+qBggJdHiBAg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-flow-strip-types@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA==} + /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-for-of@7.22.15(@babel/core@7.23.2): - resolution: {integrity: sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==} + /@babel/plugin-transform-for-of@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==} + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-function-name': 7.22.5 + '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-json-strings@7.22.11(@babel/core@7.23.2): - resolution: {integrity: sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==} + /@babel/plugin-transform-json-strings@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-H9Ej2OiISIZowZHaBwF0tsJOih1PftXJtE8EWqlEIwpc7LMTGq0rPOrywKLQ4nefzx8/HMR0D3JGXoMHYvhi0A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-literals@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==} + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.22.11(@babel/core@7.23.2): - resolution: {integrity: sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==} + /@babel/plugin-transform-logical-assignment-operators@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-+pD5ZbxofyOygEp+zZAfujY2ShNCXRpDRIPOiBmTO693hhyOEteZgl876Xs9SAHPQpcV0vz8LvA/T+w8AzyX8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.2) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==} + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd@7.23.0(@babel/core@7.23.2): - resolution: {integrity: sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==} + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/core': 7.23.3 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.2): - resolution: {integrity: sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==} + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/core': 7.23.3 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.23.0(@babel/core@7.23.2): - resolution: {integrity: sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==} + /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==} + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.23.2) + '@babel/core': 7.23.3 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.2): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.3): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.2) + '@babel/core': 7.23.3 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==} + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.22.11(@babel/core@7.23.2): - resolution: {integrity: sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==} + /@babel/plugin-transform-nullish-coalescing-operator@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-xzg24Lnld4DYIdysyf07zJ1P+iIfJpxtVFOzX4g+bsJ3Ng5Le7rXx9KwqKzuyaUeRnt+I1EICwQITqc0E2PmpA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-numeric-separator@7.22.11(@babel/core@7.23.2): - resolution: {integrity: sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==} + /@babel/plugin-transform-numeric-separator@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-s9GO7fIBi/BLsZ0v3Rftr6Oe4t0ctJ8h4CCXfPoEJwmvAPMyNrfkOOJzm6b9PX9YXcCJWWQd/sBF/N26eBiMVw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.2) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-object-rest-spread@7.22.15(@babel/core@7.23.2): - resolution: {integrity: sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==} + /@babel/plugin-transform-object-rest-spread@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-VxHt0ANkDmu8TANdE9Kc0rndo/ccsmfe2Cx2y5sI4hu3AukHQ5wAu4cM7j3ba8B9548ijVyclBU+nuDQftZsog==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.23.2 - '@babel/core': 7.23.2 + '@babel/compat-data': 7.23.3 + '@babel/core': 7.23.3 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==} + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.23.2) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-optional-catch-binding@7.22.11(@babel/core@7.23.2): - resolution: {integrity: sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==} + /@babel/plugin-transform-optional-catch-binding@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-LxYSb0iLjUamfm7f1D7GpiS4j0UAC8AOiehnsGAP8BEsIX8EOi3qV6bbctw8M7ZvLtcoZfZX5Z7rN9PlWk0m5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-optional-chaining@7.23.0(@babel/core@7.23.2): - resolution: {integrity: sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==} + /@babel/plugin-transform-optional-chaining@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-zvL8vIfIUgMccIAK1lxjvNv572JHFJIKb4MWBz5OGdBQA0fB0Xluix5rmOby48exiJc987neOmP/m9Fnpkz3Tg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-parameters@7.22.15(@babel/core@7.23.2): - resolution: {integrity: sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==} + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==} + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.23.2) + '@babel/core': 7.23.3 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-property-in-object@7.22.11(@babel/core@7.23.2): - resolution: {integrity: sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==} + /@babel/plugin-transform-private-property-in-object@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-a5m2oLNFyje2e/rGKjVfAELTVI5mbA0FeZpBnkOWWV7eSmKQ+T/XW0Vf+29ScLzSxX+rnsarvU0oie/4m6hkxA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.2) + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.2) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==} + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.23.2): + /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.23.3): resolution: {integrity: sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.3) '@babel/types': 7.23.0 dev: true - /@babel/plugin-transform-regenerator@7.22.10(@babel/core@7.23.2): - resolution: {integrity: sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==} + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==} + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==} + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==} + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==} + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==} + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==} + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-escapes@7.22.10(@babel/core@7.23.2): - resolution: {integrity: sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==} + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==} + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.2) + '@babel/core': 7.23.3 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==} + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.2) + '@babel/core': 7.23.3 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==} + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.2) + '@babel/core': 7.23.3 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.23.2(@babel/core@7.23.2): - resolution: {integrity: sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==} + /@babel/preset-env@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.23.2 - '@babel/core': 7.23.2 + '@babel/compat-data': 7.23.3 + '@babel/core': 7.23.3 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.22.15 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.15(@babel/core@7.23.2) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.15(@babel/core@7.23.2) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.2) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.2) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.2) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.2) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.2) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.2) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.2) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.2) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.2) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.2) - '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-async-generator-functions': 7.23.2(@babel/core@7.23.2) - '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-block-scoping': 7.23.0(@babel/core@7.23.2) - '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-class-static-block': 7.22.11(@babel/core@7.23.2) - '@babel/plugin-transform-classes': 7.22.15(@babel/core@7.23.2) - '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-destructuring': 7.23.0(@babel/core@7.23.2) - '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-dynamic-import': 7.22.11(@babel/core@7.23.2) - '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-export-namespace-from': 7.22.11(@babel/core@7.23.2) - '@babel/plugin-transform-for-of': 7.22.15(@babel/core@7.23.2) - '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-json-strings': 7.22.11(@babel/core@7.23.2) - '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-logical-assignment-operators': 7.22.11(@babel/core@7.23.2) - '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-modules-amd': 7.23.0(@babel/core@7.23.2) - '@babel/plugin-transform-modules-commonjs': 7.23.0(@babel/core@7.23.2) - '@babel/plugin-transform-modules-systemjs': 7.23.0(@babel/core@7.23.2) - '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-nullish-coalescing-operator': 7.22.11(@babel/core@7.23.2) - '@babel/plugin-transform-numeric-separator': 7.22.11(@babel/core@7.23.2) - '@babel/plugin-transform-object-rest-spread': 7.22.15(@babel/core@7.23.2) - '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-optional-catch-binding': 7.22.11(@babel/core@7.23.2) - '@babel/plugin-transform-optional-chaining': 7.23.0(@babel/core@7.23.2) - '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.2) - '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-private-property-in-object': 7.22.11(@babel/core@7.23.2) - '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-regenerator': 7.22.10(@babel/core@7.23.2) - '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-unicode-escapes': 7.22.10(@babel/core@7.23.2) - '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.23.2) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.2) - '@babel/types': 7.23.0 - babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.2) - babel-plugin-polyfill-corejs3: 0.8.5(@babel/core@7.23.2) - babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.2) - core-js-compat: 3.32.0 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.3) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.3) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.3) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.3) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.3) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-async-generator-functions': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-class-static-block': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-classes': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-dynamic-import': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-export-namespace-from': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-json-strings': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-logical-assignment-operators': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.3) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-numeric-separator': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-object-rest-spread': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-optional-catch-binding': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-private-property-in-object': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.3) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.3) + babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.3) + babel-plugin-polyfill-corejs3: 0.8.5(@babel/core@7.23.3) + babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.3) + core-js-compat: 3.33.0 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.2): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.3): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/types': 7.23.0 esutils: 2.0.3 dev: true - /@babel/register@7.22.15(@babel/core@7.23.2): + /@babel/register@7.22.15(@babel/core@7.23.3): resolution: {integrity: sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -1578,17 +1541,8 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.13 - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 - dev: true - - /@babel/template@7.22.5: - resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.22.10 - '@babel/parser': 7.22.10 - '@babel/types': 7.23.0 + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 dev: true /@babel/traverse@7.23.2: @@ -1609,6 +1563,24 @@ packages: - supports-color dev: true + /@babel/traverse@7.23.3: + resolution: {integrity: sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.3 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 + debug: 4.3.4(supports-color@8.1.1) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/types@7.23.0: resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} engines: {node: '>=6.9.0'} @@ -1618,6 +1590,15 @@ packages: to-fast-properties: 2.0.0 dev: true + /@babel/types@7.23.3: + resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + /@colors/colors@1.5.0: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -1647,8 +1628,8 @@ packages: resolution: {integrity: sha512-PvggHK8390M0S/KyS2hUriNu83TLpOv2fjtuKdqE7+SeIKh7o6BgbCVjh0nxbMKVWToG2rGAaMGbOQIhxcq3ew==} engines: {node: '>=12.0.0'} dependencies: - '@babel/core': 7.23.2 - '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.53.0) + '@babel/core': 7.23.3 + '@babel/eslint-parser': 7.23.3(@babel/core@7.23.3)(eslint@8.53.0) '@es-joy/jsdoccomment': 0.38.0 '@typescript-eslint/parser': 5.62.0(eslint@8.53.0)(typescript@5.2.2) eslint: 8.53.0 @@ -1674,6 +1655,16 @@ packages: comment-parser: 1.4.0 esquery: 1.5.0 jsdoc-type-pratt-parser: 4.0.0 + dev: true + + /@es-joy/jsdoccomment@0.41.0: + resolution: {integrity: sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==} + engines: {node: '>=16'} + dependencies: + comment-parser: 1.4.1 + esquery: 1.5.0 + jsdoc-type-pratt-parser: 4.0.0 + dev: false /@esbuild/android-arm64@0.18.17: resolution: {integrity: sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==} @@ -1914,21 +1905,21 @@ packages: resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==} dev: true - /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.2)(@types/node@20.8.10)(graphql@16.7.1): + /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.3)(@types/node@20.9.0)(graphql@16.7.1): resolution: {integrity: sha512-RbwVlz1gcYG62sECR1u0XqMh8w5e5XMCCZoMvPQ3nJzEBCTfXLGX727GBoRmSvY1x4gJmqNZ1lsOX7lZY14RIw==} engines: {node: '>=12'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: '@babel/code-frame': 7.22.13 - '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.23.2)(graphql@16.7.1) - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.2)(graphql@16.7.1) + '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.23.3)(graphql@16.7.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.3)(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) chalk: 4.1.2 debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.3.1 graphql: 16.7.1 - graphql-config: 4.5.0(@types/node@20.8.10)(graphql@16.7.1) + graphql-config: 4.5.0(@types/node@20.9.0)(graphql@16.7.1) graphql-depth-limit: 1.1.0(graphql@16.7.1) lodash.lowercase: 4.3.0 tslib: 2.6.1 @@ -1954,12 +1945,12 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.23.2)(graphql@16.7.1): + /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.23.3)(graphql@16.7.1): resolution: {integrity: sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.2)(graphql@16.7.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.3)(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) globby: 11.1.0 graphql: 16.7.1 @@ -2003,7 +1994,7 @@ packages: - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.10(@types/node@20.8.10)(graphql@16.7.1): + /@graphql-tools/executor-http@0.1.10(@types/node@20.9.0)(graphql@16.7.1): resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -2014,7 +2005,7 @@ packages: dset: 3.1.2 extract-files: 11.0.0 graphql: 16.7.1 - meros: 1.3.0(@types/node@20.8.10) + meros: 1.3.0(@types/node@20.9.0) tslib: 2.6.1 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -2063,13 +2054,13 @@ packages: unixify: 1.0.0 dev: true - /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.23.2)(graphql@16.7.1): + /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.23.3)(graphql@16.7.1): resolution: {integrity: sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: '@babel/parser': 7.23.0 - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.3) '@babel/traverse': 7.23.2 '@babel/types': 7.23.0 '@graphql-tools/utils': 9.2.1(graphql@16.7.1) @@ -2137,7 +2128,7 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.8.10)(graphql@16.7.1): + /@graphql-tools/url-loader@7.17.18(@types/node@20.9.0)(graphql@16.7.1): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -2145,7 +2136,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 9.0.35(graphql@16.7.1) '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.7.1) - '@graphql-tools/executor-http': 0.1.10(@types/node@20.8.10)(graphql@16.7.1) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.9.0)(graphql@16.7.1) '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) '@graphql-tools/wrap': 9.4.2(graphql@16.7.1) @@ -2548,8 +2539,8 @@ packages: engines: {node: '>=18'} dev: true - /@semantic-release/github@9.2.1(semantic-release@22.0.7): - resolution: {integrity: sha512-fEn9uOe6jwWR6ro2Wh6YNBCBuZ5lRi8Myz+1j3KDTSt8OuUGlpVM4lFac/0bDrql2NOKrIEAMGCfWb9WMIdzIg==} + /@semantic-release/github@9.2.3(semantic-release@22.0.7): + resolution: {integrity: sha512-FAjXb1F84CVI6IG8fWi+XS9ErYD+s3MHkP03zBa3+GyUrV4kqwYu/WPppIciHxujGFR51SAWPkOY5rnH6ZlrxA==} engines: {node: '>=18'} peerDependencies: semantic-release: '>=20.1.0' @@ -2562,7 +2553,7 @@ packages: aggregate-error: 5.0.0 debug: 4.3.4(supports-color@8.1.1) dir-glob: 3.0.1 - globby: 13.2.2 + globby: 14.0.0 http-proxy-agent: 7.0.0 https-proxy-agent: 7.0.1 issue-parser: 6.0.0 @@ -2627,6 +2618,11 @@ packages: engines: {node: '>=10'} dev: true + /@sindresorhus/merge-streams@1.0.0: + resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==} + engines: {node: '>=18'} + dev: true + /@tootallnate/once@2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} @@ -2635,46 +2631,46 @@ packages: /@types/chai-subset@1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: - '@types/chai': 4.3.9 + '@types/chai': 4.3.10 dev: true - /@types/chai@4.3.9: - resolution: {integrity: sha512-69TtiDzu0bcmKQv3yg1Zx409/Kd7r0b5F1PfpYJfSHzLGtB53547V4u+9iqKYsTu/O2ai6KTb0TInNpvuQ3qmg==} + /@types/chai@4.3.10: + resolution: {integrity: sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg==} dev: true - /@types/debug@4.1.10: - resolution: {integrity: sha512-tOSCru6s732pofZ+sMv9o4o3Zc+Sa8l3bxd/tweTQudFn06vAzb13ZX46Zi6m6EJ+RUbRTHvgQJ1gBtSgkaUYA==} + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} dependencies: '@types/ms': 0.7.31 dev: true - /@types/eslint@8.44.6: - resolution: {integrity: sha512-P6bY56TVmX8y9J87jHNgQh43h6VVU+6H7oN7hgvivV81K2XY8qJZ5vqPy/HdUoVIelii2kChYVzQanlswPWVFw==} + /@types/eslint@8.44.7: + resolution: {integrity: sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==} dependencies: - '@types/estree': 1.0.4 - '@types/json-schema': 7.0.14 + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 dev: true - /@types/esquery@1.5.2: - resolution: {integrity: sha512-/HlBsR2kIKPg9ptAL6JwMirGcrqZkPy7p1nnJrRngXk9dE4GZtKDkY6Ej0WTk0xSSgFO6ds6IdR4XjYABURcGQ==} + /@types/esquery@1.5.3: + resolution: {integrity: sha512-c55hQOcoPkWDfuEN9EdP1YyNH4D909U40gUEpY0nB5PWHExWHEPxcx3sx0fJ1Gzf4j1OpWktmIgciIlpgHtfDg==} dependencies: - '@types/estree': 1.0.4 + '@types/estree': 1.0.5 dev: true - /@types/estree@1.0.4: - resolution: {integrity: sha512-2JwWnHK9H+wUZNorf2Zr6ves96WHoWDJIftkcxPKsS7Djta6Zu519LarhRNljPXkpsZR2ZMwNCPeW7omW07BJw==} + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: true - /@types/json-schema@7.0.14: - resolution: {integrity: sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==} + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/lodash.defaultsdeep@4.6.8: - resolution: {integrity: sha512-KmZGHVBLcdOISWI1smMnCwP3KSL6oF6AjJwoTL2c/pF2+wDCtVZkmTCbYgK+m1wvkqN+sxl06rZuIuE8k1fuKQ==} + /@types/lodash.defaultsdeep@4.6.9: + resolution: {integrity: sha512-pLtCFK0YkHfGtGLYLNMTbFB5/G5+RsmQCIbbHH8GOAXjv+gDkVilY98kILfe8JH2Kev0OCReYxp1AjxEjP8ixA==} dependencies: '@types/lodash': 4.14.196 dev: true @@ -2683,16 +2679,16 @@ packages: resolution: {integrity: sha512-22y3o88f4a94mKljsZcanlNWPzO0uBsBdzLAngf2tp533LzZcQzb6+eZPJ+vCTt+bqF2XnvT9gejTLsAcJAJyQ==} dev: true - /@types/mocha@10.0.3: - resolution: {integrity: sha512-RsOPImTriV/OE4A9qKjMtk2MnXiuLLbcO3nCXK+kvq4nr0iMfFgpjaX3MPLb6f7+EL1FGSelYvuJMV6REH+ZPQ==} + /@types/mocha@10.0.4: + resolution: {integrity: sha512-xKU7bUjiFTIttpWaIZ9qvgg+22O1nmbA+HRxdlR+u6TWsGfmFdXrheJoK4fFxrHNVIOBDvDNKZG+LYBpMHpX3w==} dev: true /@types/ms@0.7.31: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node@20.8.10: - resolution: {integrity: sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==} + /@types/node@20.9.0: + resolution: {integrity: sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==} dependencies: undici-types: 5.26.5 dev: true @@ -2705,21 +2701,21 @@ packages: resolution: {integrity: sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==} dev: true - /@types/semver@7.5.4: - resolution: {integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==} + /@types/semver@7.5.5: + resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==} dev: true - /@types/spdx-expression-parse@3.0.4: - resolution: {integrity: sha512-5Yq7gt6fo2lQKcLTjEsXBFuiOwx1vWwlChjmB12yTdtcqmDkbQbWeGONSWVKNZL/0OnY78tvQ18r//RsrtUZVQ==} + /@types/spdx-expression-parse@3.0.5: + resolution: {integrity: sha512-XrojSCTzVxPAfWeAiw8Hg27OW/4jalE7yiohCHRPprqfPyt2oG+Osy1HstUPMF26cEdno3IeEhv31Pzl0wwsQw==} dev: true /@types/ws@8.5.5: resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} dependencies: - '@types/node': 20.8.10 + '@types/node': 20.9.0 dev: true - /@typescript-eslint/eslint-plugin@6.7.5(@typescript-eslint/parser@6.9.1)(eslint@8.53.0)(typescript@5.2.2): + /@typescript-eslint/eslint-plugin@6.7.5(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2731,7 +2727,7 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.9.1(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) '@typescript-eslint/scope-manager': 6.7.5 '@typescript-eslint/type-utils': 6.7.5(eslint@8.53.0)(typescript@5.2.2) '@typescript-eslint/utils': 6.7.5(eslint@8.53.0)(typescript@5.2.2) @@ -2781,8 +2777,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.9.1(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-C7AK2wn43GSaCUZ9do6Ksgi2g3mwFkMO3Cis96kzmgudoVaKyt62yNzJOktP0HDLb/iO2O0n2lBOzJgr6Q/cyg==} + /@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.2.2): + resolution: {integrity: sha512-+sZwIj+s+io9ozSxIWbNB5873OSdfeBEH/FR0re14WLI6BaKuSOnnwCJ2foUiu8uXf4dRp1UqHP0vrZ1zXGrog==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2791,10 +2787,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.9.1 - '@typescript-eslint/types': 6.9.1 - '@typescript-eslint/typescript-estree': 6.9.1(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.9.1 + '@typescript-eslint/scope-manager': 6.10.0 + '@typescript-eslint/types': 6.10.0 + '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.10.0 debug: 4.3.4(supports-color@8.1.1) eslint: 8.53.0 typescript: 5.2.2 @@ -2810,20 +2806,20 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@6.7.5: - resolution: {integrity: sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==} + /@typescript-eslint/scope-manager@6.10.0: + resolution: {integrity: sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.7.5 - '@typescript-eslint/visitor-keys': 6.7.5 + '@typescript-eslint/types': 6.10.0 + '@typescript-eslint/visitor-keys': 6.10.0 dev: true - /@typescript-eslint/scope-manager@6.9.1: - resolution: {integrity: sha512-38IxvKB6NAne3g/+MyXMs2Cda/Sz+CEpmm+KLGEM8hx/CvnSRuw51i8ukfwB/B/sESdeTGet1NH1Wj7I0YXswg==} + /@typescript-eslint/scope-manager@6.7.5: + resolution: {integrity: sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.9.1 - '@typescript-eslint/visitor-keys': 6.9.1 + '@typescript-eslint/types': 6.7.5 + '@typescript-eslint/visitor-keys': 6.7.5 dev: true /@typescript-eslint/type-utils@6.7.5(eslint@8.53.0)(typescript@5.2.2): @@ -2851,13 +2847,13 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@6.7.5: - resolution: {integrity: sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==} + /@typescript-eslint/types@6.10.0: + resolution: {integrity: sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@6.9.1: - resolution: {integrity: sha512-BUGslGOb14zUHOUmDB2FfT6SI1CcZEJYfF3qFwBeUrU6srJfzANonwRYHDpLBuzbq3HaoF2XL2hcr01c8f8OaQ==} + /@typescript-eslint/types@6.7.5: + resolution: {integrity: sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -2882,8 +2878,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.7.5(typescript@5.2.2): - resolution: {integrity: sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==} + /@typescript-eslint/typescript-estree@6.10.0(typescript@5.2.2): + resolution: {integrity: sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2891,8 +2887,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.7.5 - '@typescript-eslint/visitor-keys': 6.7.5 + '@typescript-eslint/types': 6.10.0 + '@typescript-eslint/visitor-keys': 6.10.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 @@ -2903,8 +2899,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.9.1(typescript@5.2.2): - resolution: {integrity: sha512-U+mUylTHfcqeO7mLWVQ5W/tMLXqVpRv61wm9ZtfE5egz7gtnmqVIw9ryh0mgIlkKk9rZLY3UHygsBSdB9/ftyw==} + /@typescript-eslint/typescript-estree@6.7.5(typescript@5.2.2): + resolution: {integrity: sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2912,8 +2908,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.9.1 - '@typescript-eslint/visitor-keys': 6.9.1 + '@typescript-eslint/types': 6.7.5 + '@typescript-eslint/visitor-keys': 6.7.5 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 @@ -2931,8 +2927,8 @@ packages: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) - '@types/json-schema': 7.0.14 - '@types/semver': 7.5.4 + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.5 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) @@ -2951,8 +2947,8 @@ packages: eslint: ^7.0.0 || ^8.0.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) - '@types/json-schema': 7.0.14 - '@types/semver': 7.5.4 + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.5 '@typescript-eslint/scope-manager': 6.7.5 '@typescript-eslint/types': 6.7.5 '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.2.2) @@ -2971,19 +2967,19 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.7.5: - resolution: {integrity: sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==} + /@typescript-eslint/visitor-keys@6.10.0: + resolution: {integrity: sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.7.5 + '@typescript-eslint/types': 6.10.0 eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.9.1: - resolution: {integrity: sha512-MUaPUe/QRLEffARsmNfmpghuQkW436DvESW+h+M52w0coICHRfD6Np9/K6PdACwnrq1HmuLl+cSPZaJmeVPkSw==} + /@typescript-eslint/visitor-keys@6.7.5: + resolution: {integrity: sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.9.1 + '@typescript-eslint/types': 6.7.5 eslint-visitor-keys: 3.4.3 dev: true @@ -3513,38 +3509,38 @@ packages: - supports-color dev: true - /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.2): + /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.3): resolution: {integrity: sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/compat-data': 7.23.2 - '@babel/core': 7.23.2 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.2) + '@babel/compat-data': 7.23.3 + '@babel/core': 7.23.3 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.8.5(@babel/core@7.23.2): + /babel-plugin-polyfill-corejs3@0.8.5(@babel/core@7.23.3): resolution: {integrity: sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.2) + '@babel/core': 7.23.3 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) core-js-compat: 3.33.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.2): + /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.3): resolution: {integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.2) + '@babel/core': 7.23.3 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) transitivePeerDependencies: - supports-color dev: true @@ -3657,17 +3653,6 @@ packages: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} dev: true - /browserslist@4.21.10: - resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001519 - electron-to-chromium: 1.4.485 - node-releases: 2.0.13 - update-browserslist-db: 1.0.11(browserslist@4.21.10) - dev: true - /browserslist@4.22.1: resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -3790,10 +3775,6 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001519: - resolution: {integrity: sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg==} - dev: true - /caniuse-lite@1.0.30001547: resolution: {integrity: sha512-W7CrtIModMAxobGhz8iXmDfuJiiKg1WADMO/9x7/CLNin5cpSbuBjooyoIUVB5eyCc36QuTVlkVa1iB2S5+/eA==} dev: true @@ -4046,6 +4027,7 @@ packages: /comment-parser@1.4.0: resolution: {integrity: sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==} engines: {node: '>= 12.0.0'} + dev: true /comment-parser@1.4.1: resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} @@ -4137,12 +4119,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /core-js-compat@3.32.0: - resolution: {integrity: sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw==} - dependencies: - browserslist: 4.21.10 - dev: true - /core-js-compat@3.33.0: resolution: {integrity: sha512-0w4LcLXsVEuNkIqwjjf9rjCoPhK8uqA4tMRh4Ge26vfLtUutshn+aRJU21I9LCJlh2QQHfisNToLjw1XEJLTWw==} dependencies: @@ -4532,10 +4508,6 @@ packages: safer-buffer: 2.1.2 dev: true - /electron-to-chromium@1.4.485: - resolution: {integrity: sha512-1ndQ5IBNEnFirPwvyud69GHL+31FkE09gH/CJ6m3KCbkx3i0EVOrjwz4UNxRmN9H8OVHbC6vMRZGN1yCvjSs9w==} - dev: true - /electron-to-chromium@1.4.550: resolution: {integrity: sha512-LfcsAzGj18xBYFM5WetwNQdqA03iLDozfCo0SWpu5G9zA5H1G/2GOiHOVnQdOrqaZ8vI8IiSgS3JMUrq930zsw==} dev: true @@ -4796,31 +4768,31 @@ packages: eslint: 8.53.0 dev: true - /eslint-config-canonical@42.3.0(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.6)(@types/node@20.8.10)(eslint@8.53.0)(graphql@16.7.1)(typescript@5.2.2)(vitest@0.34.1): + /eslint-config-canonical@42.3.0(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.7)(@types/node@20.9.0)(eslint@8.53.0)(graphql@16.7.1)(typescript@5.2.2)(vitest@0.34.1): resolution: {integrity: sha512-1FDYIBs3gFpZNhCAe4zfskCsYQNrBc15npCVrFqI2fknszMgoEi7YoYlzx18eSPnlH3xigQWm0ZK90351yZI+Q==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 dependencies: - '@babel/core': 7.23.2 - '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.53.0) - '@babel/eslint-plugin': 7.22.10(@babel/eslint-parser@7.22.15)(eslint@8.53.0) - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.2) - '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.2)(@types/node@20.8.10)(graphql@16.7.1) + '@babel/core': 7.23.3 + '@babel/eslint-parser': 7.23.3(@babel/core@7.23.3)(eslint@8.53.0) + '@babel/eslint-plugin': 7.22.10(@babel/eslint-parser@7.23.3)(eslint@8.53.0) + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.3) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.3)(@types/node@20.9.0)(graphql@16.7.1) '@next/eslint-plugin-next': 13.5.6 '@rushstack/eslint-patch': 1.5.1 - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.9.1)(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/parser': 6.9.1(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) eslint: 8.53.0 eslint-config-prettier: 9.0.0(eslint@8.53.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.1)(eslint-plugin-import@2.28.1)(eslint@8.53.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.10.0)(eslint-plugin-import@2.28.1)(eslint@8.53.0) eslint-plugin-ava: 14.0.0(eslint@8.53.0) - eslint-plugin-canonical: 4.15.1(@typescript-eslint/parser@6.9.1)(eslint-plugin-import@2.28.1)(eslint@8.53.0)(typescript@5.2.2) + eslint-plugin-canonical: 4.15.1(@typescript-eslint/parser@6.10.0)(eslint-plugin-import@2.28.1)(eslint@8.53.0)(typescript@5.2.2) eslint-plugin-cypress: 2.15.1(eslint@8.53.0) eslint-plugin-eslint-comments: 3.2.0(eslint@8.53.0) eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.53.0) eslint-plugin-fp: 2.3.0(eslint@8.53.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) eslint-plugin-jest: 27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.53.0)(typescript@5.2.2) eslint-plugin-jsdoc: 46.8.2(eslint@8.53.0) eslint-plugin-jsonc: 2.10.0(eslint@8.53.0) @@ -4829,13 +4801,13 @@ packages: eslint-plugin-mocha: 10.2.0(eslint@8.53.0) eslint-plugin-modules-newline: 0.0.6 eslint-plugin-node: 11.1.0(eslint@8.53.0) - eslint-plugin-prettier: 5.0.1(@types/eslint@8.44.6)(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@3.0.3) + eslint-plugin-prettier: 5.0.1(@types/eslint@8.44.7)(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@3.0.3) eslint-plugin-promise: 6.1.1(eslint@8.53.0) eslint-plugin-react: 7.33.2(eslint@8.53.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.53.0) eslint-plugin-regexp: 1.15.0(eslint@8.53.0) eslint-plugin-simple-import-sort: 10.0.0(eslint@8.53.0) - eslint-plugin-typescript-sort-keys: 3.0.0(@typescript-eslint/parser@6.9.1)(eslint@8.53.0)(typescript@5.2.2) + eslint-plugin-typescript-sort-keys: 3.0.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2) eslint-plugin-unicorn: 48.0.1(eslint@8.53.0) eslint-plugin-vitest: 0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.53.0)(typescript@5.2.2)(vitest@0.34.1) eslint-plugin-yml: 1.10.0(eslint@8.53.0) @@ -4880,7 +4852,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.9.1)(eslint-plugin-import@2.28.1)(eslint@8.53.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.10.0)(eslint-plugin-import@2.28.1)(eslint@8.53.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4890,8 +4862,8 @@ packages: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 eslint: 8.53.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) fast-glob: 3.3.1 get-tsconfig: 4.6.2 is-core-module: 2.13.0 @@ -4903,7 +4875,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4924,11 +4896,11 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.9.1(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) debug: 3.2.7 eslint: 8.53.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.1)(eslint-plugin-import@2.28.1)(eslint@8.53.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.10.0)(eslint-plugin-import@2.28.1)(eslint@8.53.0) transitivePeerDependencies: - supports-color dev: true @@ -4950,15 +4922,15 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-canonical@4.15.1(@typescript-eslint/parser@6.9.1)(eslint-plugin-import@2.28.1)(eslint@8.53.0)(typescript@5.2.2): + /eslint-plugin-canonical@4.15.1(@typescript-eslint/parser@6.10.0)(eslint-plugin-import@2.28.1)(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-xndfaRN9vOb6sd2bd7jKac6oMeDj9ZaKr7uPYt99BGyy4D2gRe4cisIMo4uVUR3CdRSK1fEmH68OeRtmpJ7cpA==} engines: {node: '>=16.0.0'} dependencies: '@typescript-eslint/utils': 6.7.5(eslint@8.53.0)(typescript@5.2.2) chance: 1.1.11 debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.1)(eslint-plugin-import@2.28.1)(eslint@8.53.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.10.0)(eslint-plugin-import@2.28.1)(eslint@8.53.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -5018,8 +4990,8 @@ packages: '@babel/plugin-transform-react-jsx': ^7.14.9 eslint: ^8.1.0 dependencies: - '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.23.3) + '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.23.3) eslint: 8.53.0 lodash: 4.17.21 string-natural-compare: 3.0.1 @@ -5038,7 +5010,7 @@ packages: req-all: 0.1.0 dev: true - /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0): + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0): resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} engines: {node: '>=4'} peerDependencies: @@ -5048,7 +5020,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.9.1(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) array-includes: 3.1.6 array.prototype.findlastindex: 1.2.2 array.prototype.flat: 1.3.1 @@ -5057,7 +5029,7 @@ packages: doctrine: 2.1.0 eslint: 8.53.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) has: 1.0.3 is-core-module: 2.13.0 is-glob: 4.0.3 @@ -5086,7 +5058,7 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.9.1)(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2) '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) eslint: 8.53.0 transitivePeerDependencies: @@ -5195,7 +5167,7 @@ packages: semver: 6.3.1 dev: true - /eslint-plugin-prettier@5.0.1(@types/eslint@8.44.6)(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@3.0.3): + /eslint-plugin-prettier@5.0.1(@types/eslint@8.44.7)(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@3.0.3): resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -5209,7 +5181,7 @@ packages: eslint-config-prettier: optional: true dependencies: - '@types/eslint': 8.44.6 + '@types/eslint': 8.44.7 eslint: 8.53.0 eslint-config-prettier: 9.0.0(eslint@8.53.0) prettier: 3.0.3 @@ -5285,7 +5257,7 @@ packages: eslint: 8.53.0 dev: true - /eslint-plugin-typescript-sort-keys@3.0.0(@typescript-eslint/parser@6.9.1)(eslint@8.53.0)(typescript@5.2.2): + /eslint-plugin-typescript-sort-keys@3.0.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-bMmI4prYlf3l/1O8j8Nsz11m+XfKEHRFk9aJqP91L4Hgy7I38lnitnYElDmPQaznE1oFlGgBcnkEizNT2NLylQ==} engines: {node: '>= 16'} peerDependencies: @@ -5294,7 +5266,7 @@ packages: typescript: ^3 || ^4 || ^5 dependencies: '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/parser': 6.9.1(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) eslint: 8.53.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 @@ -5338,7 +5310,7 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.9.1)(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2) '@typescript-eslint/utils': 6.7.5(eslint@8.53.0)(typescript@5.2.2) eslint: 8.53.0 vitest: 0.34.1 @@ -5672,6 +5644,17 @@ packages: micromatch: 4.0.5 dev: true + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true @@ -6198,15 +6181,16 @@ packages: slash: 3.0.0 dev: true - /globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /globby@14.0.0: + resolution: {integrity: sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==} + engines: {node: '>=18'} dependencies: - dir-glob: 3.0.1 - fast-glob: 3.3.1 + '@sindresorhus/merge-streams': 1.0.0 + fast-glob: 3.3.2 ignore: 5.2.4 - merge2: 1.4.1 - slash: 4.0.0 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 dev: true /gopd@1.0.1: @@ -6231,7 +6215,7 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql-config@4.5.0(@types/node@20.8.10)(graphql@16.7.1): + /graphql-config@4.5.0(@types/node@20.9.0)(graphql@16.7.1): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -6245,7 +6229,7 @@ packages: '@graphql-tools/json-file-loader': 7.4.18(graphql@16.7.1) '@graphql-tools/load': 7.8.14(graphql@16.7.1) '@graphql-tools/merge': 8.4.2(graphql@16.7.1) - '@graphql-tools/url-loader': 7.17.18(@types/node@20.8.10)(graphql@16.7.1) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.9.0)(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) cosmiconfig: 8.0.0 graphql: 16.7.1 @@ -7102,7 +7086,7 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.1 @@ -7114,7 +7098,7 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/parser': 7.22.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 @@ -7747,7 +7731,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.3.0(@types/node@20.8.10): + /meros@1.3.0(@types/node@20.9.0): resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} engines: {node: '>=13'} peerDependencies: @@ -7756,7 +7740,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.8.10 + '@types/node': 20.9.0 dev: true /micro-spelling-correcter@1.1.1: @@ -8672,7 +8656,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.22.10 + '@babel/code-frame': 7.22.13 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -8765,6 +8749,11 @@ packages: engines: {node: '>=8'} dev: true + /path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + dev: true + /pathe@1.1.1: resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} dev: true @@ -9489,7 +9478,7 @@ packages: dependencies: '@semantic-release/commit-analyzer': 11.1.0(semantic-release@22.0.7) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 9.2.1(semantic-release@22.0.7) + '@semantic-release/github': 9.2.3(semantic-release@22.0.7) '@semantic-release/npm': 11.0.1(semantic-release@22.0.7) '@semantic-release/release-notes-generator': 12.0.0(semantic-release@22.0.7) aggregate-error: 5.0.0 @@ -9663,9 +9652,9 @@ packages: engines: {node: '>=8'} dev: true - /slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} + /slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} dev: true /slice-ansi@5.0.0: @@ -10440,6 +10429,11 @@ packages: engines: {node: '>=4'} dev: true + /unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + dev: true + /union-value@1.0.1: resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} engines: {node: '>=0.10.0'} @@ -10500,17 +10494,6 @@ packages: engines: {node: '>=8'} dev: true - /update-browserslist-db@1.0.11(browserslist@4.21.10): - resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.21.10 - escalade: 3.1.1 - picocolors: 1.0.0 - dev: true - /update-browserslist-db@1.0.13(browserslist@4.22.1): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true @@ -10616,7 +10599,7 @@ packages: extsprintf: 1.3.0 dev: true - /vite-node@0.34.1(@types/node@20.8.10): + /vite-node@0.34.1(@types/node@20.9.0): resolution: {integrity: sha512-odAZAL9xFMuAg8aWd7nSPT+hU8u2r9gU3LRm9QKjxBEF2rRdWpMuqkrkjvyVQEdNFiBctqr2Gg4uJYizm5Le6w==} engines: {node: '>=v14.18.0'} hasBin: true @@ -10626,7 +10609,7 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.8(@types/node@20.8.10) + vite: 4.4.8(@types/node@20.9.0) transitivePeerDependencies: - '@types/node' - less @@ -10638,7 +10621,7 @@ packages: - terser dev: true - /vite@4.4.8(@types/node@20.8.10): + /vite@4.4.8(@types/node@20.9.0): resolution: {integrity: sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -10666,7 +10649,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.8.10 + '@types/node': 20.9.0 esbuild: 0.18.17 postcss: 8.4.31 rollup: 3.27.2 @@ -10705,9 +10688,9 @@ packages: webdriverio: optional: true dependencies: - '@types/chai': 4.3.9 + '@types/chai': 4.3.10 '@types/chai-subset': 1.3.3 - '@types/node': 20.8.10 + '@types/node': 20.9.0 '@vitest/expect': 0.34.1 '@vitest/runner': 0.34.1 '@vitest/snapshot': 0.34.1 @@ -10726,8 +10709,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.0 tinypool: 0.7.0 - vite: 4.4.8(@types/node@20.8.10) - vite-node: 0.34.1(@types/node@20.8.10) + vite: 4.4.8(@types/node@20.9.0) + vite-node: 0.34.1(@types/node@20.9.0) why-is-node-running: 2.2.2 transitivePeerDependencies: - less diff --git a/test/rules/assertions/requireDescription.js b/test/rules/assertions/requireDescription.js index a1ed81120..004cf45c5 100644 --- a/test/rules/assertions/requireDescription.js +++ b/test/rules/assertions/requireDescription.js @@ -735,6 +735,59 @@ export default { }, }, }, + { + code: ` + app.use( + /** @type {express.ErrorRequestHandler} */ + (err, req, res, next) => { + // foo + } + ); + `, + errors: [ + { + line: 3, + message: 'Missing JSDoc block description.', + }, + ], + }, + { + code: ` + app.use( + /** @type {express.ErrorRequestHandler} */ + ( + (err, req, res, next) => { + // foo + } + ) + ); + `, + errors: [ + { + line: 3, + message: 'Missing JSDoc block description.', + }, + ], + }, + { + code: ` + /** @type {TreeViewItemData[]} */ + this.treeViewSelection = []; + `, + errors: [ + { + line: 2, + message: 'Missing JSDoc block description.', + }, + ], + options: [ + { + contexts: [ + 'AssignmentExpression', + ], + }, + ], + }, ], valid: [ { From 9263e63f021d7e7b359d48d4db51ebe55c0043c1 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 22 Nov 2023 22:23:54 -0700 Subject: [PATCH 146/273] chore: update spdx-expression-parse and devDeps. --- package.json | 26 +- pnpm-lock.yaml | 843 ++++++++++++++++++++++--------------------------- 2 files changed, 384 insertions(+), 485 deletions(-) diff --git a/package.json b/package.json index 75f72a027..14614c900 100644 --- a/package.json +++ b/package.json @@ -13,11 +13,11 @@ "esquery": "^1.5.0", "is-builtin-module": "^3.2.1", "semver": "^7.5.4", - "spdx-expression-parse": "^3.0.1" + "spdx-expression-parse": "^4.0.0" }, "description": "JSDoc linting rules for ESLint.", "devDependencies": { - "@babel/cli": "^7.23.0", + "@babel/cli": "^7.23.4", "@babel/core": "^7.23.3", "@babel/eslint-parser": "^7.23.3", "@babel/node": "^7.22.19", @@ -26,45 +26,45 @@ "@babel/preset-env": "^7.23.3", "@babel/register": "^7.22.15", "@es-joy/escodegen": "^3.5.1", - "@es-joy/jsdoc-eslint-parser": "^0.19.0", + "@es-joy/jsdoc-eslint-parser": "^0.20.0", "@hkdobrev/run-if-changed": "^0.3.1", "@semantic-release/commit-analyzer": "^11.1.0", "@semantic-release/github": "^9.2.3", "@semantic-release/npm": "^11.0.1", - "@types/chai": "^4.3.10", + "@types/chai": "^4.3.11", "@types/debug": "^4.1.12", "@types/eslint": "^8.44.7", "@types/esquery": "^1.5.3", "@types/estree": "^1.0.5", "@types/json-schema": "^7.0.15", "@types/lodash.defaultsdeep": "^4.6.9", - "@types/mocha": "^10.0.4", - "@types/node": "^20.9.0", - "@types/semver": "^7.5.5", + "@types/mocha": "^10.0.6", + "@types/node": "^20.9.4", + "@types/semver": "^7.5.6", "@types/spdx-expression-parse": "^3.0.5", - "@typescript-eslint/parser": "^6.10.0", + "@typescript-eslint/parser": "^6.12.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", "chai": "^4.3.10", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "8.53.0", - "eslint-config-canonical": "~42.3.0", + "eslint": "8.54.0", + "eslint-config-canonical": "~42.8.0", "espree": "^9.6.1", "gitdown": "^3.1.5", "glob": "^10.3.10", "husky": "^8.0.3", "jsdoc-type-pratt-parser": "^4.0.0", "json-schema": "^0.4.0", - "lint-staged": "^15.0.2", + "lint-staged": "^15.1.0", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.2.0", "nyc": "^15.1.0", "open-editor": "^3.0.0", "rimraf": "^5.0.5", - "semantic-release": "^22.0.7", - "typescript": "5.2.2" + "semantic-release": "^22.0.8", + "typescript": "5.3.2" }, "engines": { "node": ">=16" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1def6a606..55db411db 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -30,19 +30,19 @@ dependencies: specifier: ^7.5.4 version: 7.5.4 spdx-expression-parse: - specifier: ^3.0.1 - version: 3.0.1 + specifier: ^4.0.0 + version: 4.0.0 devDependencies: '@babel/cli': - specifier: ^7.23.0 - version: 7.23.0(@babel/core@7.23.3) + specifier: ^7.23.4 + version: 7.23.4(@babel/core@7.23.3) '@babel/core': specifier: ^7.23.3 version: 7.23.3 '@babel/eslint-parser': specifier: ^7.23.3 - version: 7.23.3(@babel/core@7.23.3)(eslint@8.53.0) + version: 7.23.3(@babel/core@7.23.3)(eslint@8.54.0) '@babel/node': specifier: ^7.22.19 version: 7.22.19(@babel/core@7.23.3) @@ -62,23 +62,23 @@ devDependencies: specifier: ^3.5.1 version: 3.5.1 '@es-joy/jsdoc-eslint-parser': - specifier: ^0.19.0 - version: 0.19.0 + specifier: ^0.20.0 + version: 0.20.0 '@hkdobrev/run-if-changed': specifier: ^0.3.1 version: 0.3.1 '@semantic-release/commit-analyzer': specifier: ^11.1.0 - version: 11.1.0(semantic-release@22.0.7) + version: 11.1.0(semantic-release@22.0.8) '@semantic-release/github': specifier: ^9.2.3 - version: 9.2.3(semantic-release@22.0.7) + version: 9.2.3(semantic-release@22.0.8) '@semantic-release/npm': specifier: ^11.0.1 - version: 11.0.1(semantic-release@22.0.7) + version: 11.0.1(semantic-release@22.0.8) '@types/chai': - specifier: ^4.3.10 - version: 4.3.10 + specifier: ^4.3.11 + version: 4.3.11 '@types/debug': specifier: ^4.1.12 version: 4.1.12 @@ -98,20 +98,20 @@ devDependencies: specifier: ^4.6.9 version: 4.6.9 '@types/mocha': - specifier: ^10.0.4 - version: 10.0.4 + specifier: ^10.0.6 + version: 10.0.6 '@types/node': - specifier: ^20.9.0 - version: 20.9.0 + specifier: ^20.9.4 + version: 20.9.4 '@types/semver': - specifier: ^7.5.5 - version: 7.5.5 + specifier: ^7.5.6 + version: 7.5.6 '@types/spdx-expression-parse': specifier: ^3.0.5 version: 3.0.5 '@typescript-eslint/parser': - specifier: ^6.10.0 - version: 6.10.0(eslint@8.53.0)(typescript@5.2.2) + specifier: ^6.12.0 + version: 6.12.0(eslint@8.54.0)(typescript@5.3.2) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -131,11 +131,11 @@ devDependencies: specifier: ^5.0.1 version: 5.0.1 eslint: - specifier: 8.53.0 - version: 8.53.0 + specifier: 8.54.0 + version: 8.54.0 eslint-config-canonical: - specifier: ~42.3.0 - version: 42.3.0(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.7)(@types/node@20.9.0)(eslint@8.53.0)(graphql@16.7.1)(typescript@5.2.2)(vitest@0.34.1) + specifier: ~42.8.0 + version: 42.8.0(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.7)(@types/node@20.9.4)(eslint@8.54.0)(graphql@16.7.1)(typescript@5.3.2)(vitest@0.34.1) espree: specifier: ^9.6.1 version: 9.6.1 @@ -155,8 +155,8 @@ devDependencies: specifier: ^0.4.0 version: 0.4.0 lint-staged: - specifier: ^15.0.2 - version: 15.0.2 + specifier: ^15.1.0 + version: 15.1.0 lodash.defaultsdeep: specifier: ^4.6.1 version: 4.6.1 @@ -173,11 +173,11 @@ devDependencies: specifier: ^5.0.5 version: 5.0.5 semantic-release: - specifier: ^22.0.7 - version: 22.0.7 + specifier: ^22.0.8 + version: 22.0.8 typescript: - specifier: 5.2.2 - version: 5.2.2 + specifier: 5.3.2 + version: 5.3.2 packages: @@ -203,8 +203,8 @@ packages: - encoding dev: true - /@babel/cli@7.23.0(@babel/core@7.23.3): - resolution: {integrity: sha512-17E1oSkGk2IwNILM4jtfAvgjt+ohmpfBky8aLerUfYZhiPNg7ca+CRCxZn8QDxwNhV/upsc2VHBCqGFIR+iBfA==} + /@babel/cli@7.23.4(@babel/core@7.23.3): + resolution: {integrity: sha512-j3luA9xGKCXVyCa5R7lJvOMM+Kc2JEnAEIgz2ggtjQ/j5YUVgfsg/WsG95bbsgq7YLHuiCOzMnoSasuY16qiCw==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: @@ -264,7 +264,7 @@ packages: - supports-color dev: true - /@babel/eslint-parser@7.23.3(@babel/core@7.23.3)(eslint@8.53.0): + /@babel/eslint-parser@7.23.3(@babel/core@7.23.3)(eslint@8.54.0): resolution: {integrity: sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: @@ -273,33 +273,23 @@ packages: dependencies: '@babel/core': 7.23.3 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.53.0 + eslint: 8.54.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true - /@babel/eslint-plugin@7.22.10(@babel/eslint-parser@7.23.3)(eslint@8.53.0): + /@babel/eslint-plugin@7.22.10(@babel/eslint-parser@7.23.3)(eslint@8.54.0): resolution: {integrity: sha512-SRZcvo3fnO5h79B9DZSV6LG2vHH7OWsSNp1huFLHsXKyytRG413byQk9zxW1VcPOhnzfx2VIUz+8aGbiE7fOkA==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/eslint-parser': 7.23.3(@babel/core@7.23.3)(eslint@8.53.0) - eslint: 8.53.0 + '@babel/eslint-parser': 7.23.3(@babel/core@7.23.3)(eslint@8.54.0) + eslint: 8.54.0 eslint-rule-composer: 0.3.0 dev: true - /@babel/generator@7.23.0: - resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.0 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 - jsesc: 2.5.2 - dev: true - /@babel/generator@7.23.3: resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==} engines: {node: '>=6.9.0'} @@ -577,14 +567,6 @@ packages: '@babel/types': 7.23.0 dev: true - /@babel/parser@7.23.0: - resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.23.0 - dev: true - /@babel/parser@7.23.3: resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} engines: {node: '>=6.0.0'} @@ -681,16 +663,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==} engines: {node: '>=6.9.0'} @@ -701,16 +673,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} engines: {node: '>=6.9.0'} @@ -1283,7 +1245,7 @@ packages: '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.3) - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.3): @@ -1545,24 +1507,6 @@ packages: '@babel/types': 7.23.3 dev: true - /@babel/traverse@7.23.2: - resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.0 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 - debug: 4.3.4(supports-color@8.1.1) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/traverse@7.23.3: resolution: {integrity: sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==} engines: {node: '>=6.9.0'} @@ -1624,30 +1568,21 @@ packages: engines: {node: '>=4.0'} dev: true - /@es-joy/jsdoc-eslint-parser@0.19.0: - resolution: {integrity: sha512-PvggHK8390M0S/KyS2hUriNu83TLpOv2fjtuKdqE7+SeIKh7o6BgbCVjh0nxbMKVWToG2rGAaMGbOQIhxcq3ew==} + /@es-joy/jsdoc-eslint-parser@0.20.0: + resolution: {integrity: sha512-4ywXGd30Frz6AKMPjHi96LmOSAquZEZmzbMmoRgnYTGO+gb0CkfXos9tDYS0PxEkMbj5AOQFHUiZ7Md0FH5gqg==} engines: {node: '>=12.0.0'} dependencies: '@babel/core': 7.23.3 - '@babel/eslint-parser': 7.23.3(@babel/core@7.23.3)(eslint@8.53.0) - '@es-joy/jsdoccomment': 0.38.0 - '@typescript-eslint/parser': 5.62.0(eslint@8.53.0)(typescript@5.2.2) - eslint: 8.53.0 + '@babel/eslint-parser': 7.23.3(@babel/core@7.23.3)(eslint@8.54.0) + '@es-joy/jsdoccomment': 0.41.0 + '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + eslint: 8.54.0 esquery: 1.5.0 - typescript: 5.2.2 + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true - /@es-joy/jsdoccomment@0.38.0: - resolution: {integrity: sha512-TFac4Bnv0ZYNkEeDnOWHQhaS1elWlvOCQxH06iHeu5iffs+hCaLVIZJwF+FqksQi68R4i66Pu+4DfFGvble+Uw==} - engines: {node: '>=16'} - dependencies: - comment-parser: 1.3.1 - esquery: 1.5.0 - jsdoc-type-pratt-parser: 4.0.0 - dev: true - /@es-joy/jsdoccomment@0.40.1: resolution: {integrity: sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg==} engines: {node: '>=16'} @@ -1664,7 +1599,6 @@ packages: comment-parser: 1.4.1 esquery: 1.5.0 jsdoc-type-pratt-parser: 4.0.0 - dev: false /@esbuild/android-arm64@0.18.17: resolution: {integrity: sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==} @@ -1864,13 +1798,13 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.53.0 + eslint: 8.54.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1896,8 +1830,8 @@ packages: - supports-color dev: true - /@eslint/js@8.53.0: - resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} + /@eslint/js@8.54.0: + resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -1905,7 +1839,7 @@ packages: resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==} dev: true - /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.3)(@types/node@20.9.0)(graphql@16.7.1): + /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.3)(@types/node@20.9.4)(graphql@16.7.1): resolution: {integrity: sha512-RbwVlz1gcYG62sECR1u0XqMh8w5e5XMCCZoMvPQ3nJzEBCTfXLGX727GBoRmSvY1x4gJmqNZ1lsOX7lZY14RIw==} engines: {node: '>=12'} peerDependencies: @@ -1917,9 +1851,9 @@ packages: '@graphql-tools/utils': 9.2.1(graphql@16.7.1) chalk: 4.1.2 debug: 4.3.4(supports-color@8.1.1) - fast-glob: 3.3.1 + fast-glob: 3.3.2 graphql: 16.7.1 - graphql-config: 4.5.0(@types/node@20.9.0)(graphql@16.7.1) + graphql-config: 4.5.0(@types/node@20.9.4)(graphql@16.7.1) graphql-depth-limit: 1.1.0(graphql@16.7.1) lodash.lowercase: 4.3.0 tslib: 2.6.1 @@ -1994,7 +1928,7 @@ packages: - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.10(@types/node@20.9.0)(graphql@16.7.1): + /@graphql-tools/executor-http@0.1.10(@types/node@20.9.4)(graphql@16.7.1): resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -2005,7 +1939,7 @@ packages: dset: 3.1.2 extract-files: 11.0.0 graphql: 16.7.1 - meros: 1.3.0(@types/node@20.9.0) + meros: 1.3.0(@types/node@20.9.4) tslib: 2.6.1 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -2059,10 +1993,10 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@babel/parser': 7.23.0 - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.3) - '@babel/traverse': 7.23.2 - '@babel/types': 7.23.0 + '@babel/parser': 7.23.3 + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.3) + '@babel/traverse': 7.23.3 + '@babel/types': 7.23.3 '@graphql-tools/utils': 9.2.1(graphql@16.7.1) graphql: 16.7.1 tslib: 2.6.1 @@ -2128,7 +2062,7 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.9.0)(graphql@16.7.1): + /@graphql-tools/url-loader@7.17.18(@types/node@20.9.4)(graphql@16.7.1): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -2136,7 +2070,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 9.0.35(graphql@16.7.1) '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.7.1) - '@graphql-tools/executor-http': 0.1.10(@types/node@20.9.0)(graphql@16.7.1) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.9.4)(graphql@16.7.1) '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) '@graphql-tools/wrap': 9.4.2(graphql@16.7.1) @@ -2480,7 +2414,7 @@ packages: engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dependencies: cross-spawn: 7.0.3 - fast-glob: 3.3.1 + fast-glob: 3.3.2 is-glob: 4.0.3 open: 9.1.0 picocolors: 1.0.0 @@ -2516,7 +2450,7 @@ packages: resolution: {integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==} dev: true - /@semantic-release/commit-analyzer@11.1.0(semantic-release@22.0.7): + /@semantic-release/commit-analyzer@11.1.0(semantic-release@22.0.8): resolution: {integrity: sha512-cXNTbv3nXR2hlzHjAMgbuiQVtvWHTlwwISt60B+4NZv01y/QRY7p2HcJm8Eh2StzcTJoNnflvKjHH/cjFS7d5g==} engines: {node: ^18.17 || >=20.6.1} peerDependencies: @@ -2529,7 +2463,7 @@ packages: import-from-esm: 1.0.3 lodash-es: 4.17.21 micromatch: 4.0.5 - semantic-release: 22.0.7 + semantic-release: 22.0.8 transitivePeerDependencies: - supports-color dev: true @@ -2539,7 +2473,7 @@ packages: engines: {node: '>=18'} dev: true - /@semantic-release/github@9.2.3(semantic-release@22.0.7): + /@semantic-release/github@9.2.3(semantic-release@22.0.8): resolution: {integrity: sha512-FAjXb1F84CVI6IG8fWi+XS9ErYD+s3MHkP03zBa3+GyUrV4kqwYu/WPppIciHxujGFR51SAWPkOY5rnH6ZlrxA==} engines: {node: '>=18'} peerDependencies: @@ -2560,13 +2494,13 @@ packages: lodash-es: 4.17.21 mime: 3.0.0 p-filter: 3.0.0 - semantic-release: 22.0.7 + semantic-release: 22.0.8 url-join: 5.0.0 transitivePeerDependencies: - supports-color dev: true - /@semantic-release/npm@11.0.1(semantic-release@22.0.7): + /@semantic-release/npm@11.0.1(semantic-release@22.0.8): resolution: {integrity: sha512-nFcT0pgVwpXsPkzjqP3ObH+pILeN1AbYscCDuYwgZEPZukL+RsGhrtdT4HA1Gjb/y1bVbE90JNtMIcgRi5z/Fg==} engines: {node: ^18.17 || >=20} peerDependencies: @@ -2583,12 +2517,12 @@ packages: rc: 1.2.8 read-pkg: 9.0.0 registry-auth-token: 5.0.2 - semantic-release: 22.0.7 + semantic-release: 22.0.8 semver: 7.5.4 tempy: 3.1.0 dev: true - /@semantic-release/release-notes-generator@12.0.0(semantic-release@22.0.7): + /@semantic-release/release-notes-generator@12.0.0(semantic-release@22.0.8): resolution: {integrity: sha512-m7Ds8ComP1KJgA2Lke2xMwE1TOOU40U7AzP4lT8hJ2tUAeicziPz/1GeDFmRkTOkMFlfHvE6kuvMkvU+mIzIDQ==} engines: {node: ^18.17 || >=20.6.1} peerDependencies: @@ -2604,7 +2538,7 @@ packages: into-stream: 7.0.0 lodash-es: 4.17.21 read-pkg-up: 10.0.0 - semantic-release: 22.0.7 + semantic-release: 22.0.8 transitivePeerDependencies: - supports-color dev: true @@ -2631,11 +2565,11 @@ packages: /@types/chai-subset@1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: - '@types/chai': 4.3.10 + '@types/chai': 4.3.11 dev: true - /@types/chai@4.3.10: - resolution: {integrity: sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg==} + /@types/chai@4.3.11: + resolution: {integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==} dev: true /@types/debug@4.1.12: @@ -2679,30 +2613,26 @@ packages: resolution: {integrity: sha512-22y3o88f4a94mKljsZcanlNWPzO0uBsBdzLAngf2tp533LzZcQzb6+eZPJ+vCTt+bqF2XnvT9gejTLsAcJAJyQ==} dev: true - /@types/mocha@10.0.4: - resolution: {integrity: sha512-xKU7bUjiFTIttpWaIZ9qvgg+22O1nmbA+HRxdlR+u6TWsGfmFdXrheJoK4fFxrHNVIOBDvDNKZG+LYBpMHpX3w==} + /@types/mocha@10.0.6: + resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} dev: true /@types/ms@0.7.31: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node@20.9.0: - resolution: {integrity: sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==} + /@types/node@20.9.4: + resolution: {integrity: sha512-wmyg8HUhcn6ACjsn8oKYjkN/zUzQeNtMy44weTJSM6p4MMzEOuKbA3OjJ267uPCOW7Xex9dyrNTful8XTQYoDA==} dependencies: undici-types: 5.26.5 dev: true - /@types/normalize-package-data@2.4.1: - resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} - dev: true - /@types/normalize-package-data@2.4.3: resolution: {integrity: sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==} dev: true - /@types/semver@7.5.5: - resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==} + /@types/semver@7.5.6: + resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true /@types/spdx-expression-parse@3.0.5: @@ -2712,10 +2642,10 @@ packages: /@types/ws@8.5.5: resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.9.4 dev: true - /@typescript-eslint/eslint-plugin@6.7.5(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2): + /@typescript-eslint/eslint-plugin@6.7.5(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2): resolution: {integrity: sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2727,58 +2657,38 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.3.2) '@typescript-eslint/scope-manager': 6.7.5 - '@typescript-eslint/type-utils': 6.7.5(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.7.5(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/type-utils': 6.7.5(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/utils': 6.7.5(eslint@8.54.0)(typescript@5.3.2) '@typescript-eslint/visitor-keys': 6.7.5 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.53.0 + eslint: 8.54.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.2.2) - typescript: 5.2.2 + ts-api-utils: 1.0.1(typescript@5.3.2) + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/experimental-utils@5.62.0(eslint@8.53.0)(typescript@5.2.2): + /@typescript-eslint/experimental-utils@5.62.0(eslint@8.54.0)(typescript@5.3.2): resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) - eslint: 8.53.0 + '@typescript-eslint/utils': 5.62.0(eslint@8.54.0)(typescript@5.3.2) + eslint: 8.54.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - debug: 4.3.4(supports-color@8.1.1) - eslint: 8.53.0 - typescript: 5.2.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-+sZwIj+s+io9ozSxIWbNB5873OSdfeBEH/FR0re14WLI6BaKuSOnnwCJ2foUiu8uXf4dRp1UqHP0vrZ1zXGrog==} + /@typescript-eslint/parser@6.12.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2787,13 +2697,13 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.10.0 - '@typescript-eslint/types': 6.10.0 - '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.10.0 + '@typescript-eslint/scope-manager': 6.12.0 + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2) + '@typescript-eslint/visitor-keys': 6.12.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.53.0 - typescript: 5.2.2 + eslint: 8.54.0 + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true @@ -2806,12 +2716,12 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@6.10.0: - resolution: {integrity: sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==} + /@typescript-eslint/scope-manager@6.12.0: + resolution: {integrity: sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.10.0 - '@typescript-eslint/visitor-keys': 6.10.0 + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/visitor-keys': 6.12.0 dev: true /@typescript-eslint/scope-manager@6.7.5: @@ -2822,7 +2732,7 @@ packages: '@typescript-eslint/visitor-keys': 6.7.5 dev: true - /@typescript-eslint/type-utils@6.7.5(eslint@8.53.0)(typescript@5.2.2): + /@typescript-eslint/type-utils@6.7.5(eslint@8.54.0)(typescript@5.3.2): resolution: {integrity: sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2832,12 +2742,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.2.2) - '@typescript-eslint/utils': 6.7.5(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.3.2) + '@typescript-eslint/utils': 6.7.5(eslint@8.54.0)(typescript@5.3.2) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.53.0 - ts-api-utils: 1.0.1(typescript@5.2.2) - typescript: 5.2.2 + eslint: 8.54.0 + ts-api-utils: 1.0.1(typescript@5.3.2) + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true @@ -2847,8 +2757,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@6.10.0: - resolution: {integrity: sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==} + /@typescript-eslint/types@6.12.0: + resolution: {integrity: sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -2857,7 +2767,7 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.2.2): + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.2): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2872,14 +2782,14 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - tsutils: 3.21.0(typescript@5.2.2) - typescript: 5.2.2 + tsutils: 3.21.0(typescript@5.3.2) + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.10.0(typescript@5.2.2): - resolution: {integrity: sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==} + /@typescript-eslint/typescript-estree@6.12.0(typescript@5.3.2): + resolution: {integrity: sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2887,19 +2797,19 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.10.0 - '@typescript-eslint/visitor-keys': 6.10.0 + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/visitor-keys': 6.12.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.2.2) - typescript: 5.2.2 + ts-api-utils: 1.0.1(typescript@5.3.2) + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.7.5(typescript@5.2.2): + /@typescript-eslint/typescript-estree@6.7.5(typescript@5.3.2): resolution: {integrity: sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2914,25 +2824,25 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.2.2) - typescript: 5.2.2 + ts-api-utils: 1.0.1(typescript@5.3.2) + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.53.0)(typescript@5.2.2): + /@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.3.2): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.5 + '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - eslint: 8.53.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.2) + eslint: 8.54.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -2940,19 +2850,19 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.7.5(eslint@8.53.0)(typescript@5.2.2): + /@typescript-eslint/utils@6.7.5(eslint@8.54.0)(typescript@5.3.2): resolution: {integrity: sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.5 + '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 6.7.5 '@typescript-eslint/types': 6.7.5 - '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.2.2) - eslint: 8.53.0 + '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.3.2) + eslint: 8.54.0 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -2967,11 +2877,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.10.0: - resolution: {integrity: sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==} + /@typescript-eslint/visitor-keys@6.12.0: + resolution: {integrity: sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.10.0 + '@typescript-eslint/types': 6.12.0 eslint-visitor-keys: 3.4.3 dev: true @@ -3334,17 +3244,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /array.prototype.findlastindex@1.2.2: - resolution: {integrity: sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.1 - es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.1 - dev: true - /array.prototype.flat@1.3.1: resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} engines: {node: '>= 0.4'} @@ -3672,6 +3571,12 @@ packages: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} + /builtins@5.0.1: + resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} + dependencies: + semver: 7.5.4 + dev: true + /bundle-name@3.0.0: resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} engines: {node: '>=12'} @@ -4019,11 +3924,6 @@ packages: engines: {node: '>= 6'} dev: true - /comment-parser@1.3.1: - resolution: {integrity: sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==} - engines: {node: '>= 12.0.0'} - dev: true - /comment-parser@1.4.0: resolution: {integrity: sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==} engines: {node: '>= 12.0.0'} @@ -4759,59 +4659,59 @@ packages: lodash.zip: 4.2.0 dev: true - /eslint-compat-utils@0.1.2(eslint@8.53.0): + /eslint-compat-utils@0.1.2(eslint@8.54.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 8.53.0 + eslint: 8.54.0 dev: true - /eslint-config-canonical@42.3.0(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.7)(@types/node@20.9.0)(eslint@8.53.0)(graphql@16.7.1)(typescript@5.2.2)(vitest@0.34.1): - resolution: {integrity: sha512-1FDYIBs3gFpZNhCAe4zfskCsYQNrBc15npCVrFqI2fknszMgoEi7YoYlzx18eSPnlH3xigQWm0ZK90351yZI+Q==} + /eslint-config-canonical@42.8.0(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.7)(@types/node@20.9.4)(eslint@8.54.0)(graphql@16.7.1)(typescript@5.3.2)(vitest@0.34.1): + resolution: {integrity: sha512-Jurs2GnTq9ISNwSt+ryYPy35smrfFQXGSTi9dLJvGqDP3bAI27U9TkUNozCwPNb0hxy8gsvwy2tA4IO8TV1Kcg==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 dependencies: '@babel/core': 7.23.3 - '@babel/eslint-parser': 7.23.3(@babel/core@7.23.3)(eslint@8.53.0) - '@babel/eslint-plugin': 7.22.10(@babel/eslint-parser@7.23.3)(eslint@8.53.0) - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.3) - '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.3)(@types/node@20.9.0)(graphql@16.7.1) + '@babel/eslint-parser': 7.23.3(@babel/core@7.23.3)(eslint@8.54.0) + '@babel/eslint-plugin': 7.22.10(@babel/eslint-parser@7.23.3)(eslint@8.54.0) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.3) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.3)(@types/node@20.9.4)(graphql@16.7.1) '@next/eslint-plugin-next': 13.5.6 '@rushstack/eslint-patch': 1.5.1 - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - eslint: 8.53.0 - eslint-config-prettier: 9.0.0(eslint@8.53.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.10.0)(eslint-plugin-import@2.28.1)(eslint@8.53.0) - eslint-plugin-ava: 14.0.0(eslint@8.53.0) - eslint-plugin-canonical: 4.15.1(@typescript-eslint/parser@6.10.0)(eslint-plugin-import@2.28.1)(eslint@8.53.0)(typescript@5.2.2) - eslint-plugin-cypress: 2.15.1(eslint@8.53.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.53.0) - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.53.0) - eslint-plugin-fp: 2.3.0(eslint@8.53.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) - eslint-plugin-jest: 27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.53.0)(typescript@5.2.2) - eslint-plugin-jsdoc: 46.8.2(eslint@8.53.0) - eslint-plugin-jsonc: 2.10.0(eslint@8.53.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@8.53.0) - eslint-plugin-lodash: 7.4.0(eslint@8.53.0) - eslint-plugin-mocha: 10.2.0(eslint@8.53.0) + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + eslint: 8.54.0 + eslint-config-prettier: 9.0.0(eslint@8.54.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.12.0)(eslint-plugin-i@2.29.0)(eslint@8.54.0) + eslint-plugin-ava: 14.0.0(eslint@8.54.0) + eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@6.12.0)(eslint-plugin-i@2.29.0)(eslint@8.54.0)(typescript@5.3.2) + eslint-plugin-cypress: 2.15.1(eslint@8.54.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.54.0) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.54.0) + eslint-plugin-fp: 2.3.0(eslint@8.54.0) + eslint-plugin-import: /eslint-plugin-i@2.29.0(@typescript-eslint/parser@6.12.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0) + eslint-plugin-jest: 27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.54.0)(typescript@5.3.2) + eslint-plugin-jsdoc: 46.8.2(eslint@8.54.0) + eslint-plugin-jsonc: 2.10.0(eslint@8.54.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.54.0) + eslint-plugin-lodash: 7.4.0(eslint@8.54.0) + eslint-plugin-mocha: 10.2.0(eslint@8.54.0) eslint-plugin-modules-newline: 0.0.6 - eslint-plugin-node: 11.1.0(eslint@8.53.0) - eslint-plugin-prettier: 5.0.1(@types/eslint@8.44.7)(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@3.0.3) - eslint-plugin-promise: 6.1.1(eslint@8.53.0) - eslint-plugin-react: 7.33.2(eslint@8.53.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.53.0) - eslint-plugin-regexp: 1.15.0(eslint@8.53.0) - eslint-plugin-simple-import-sort: 10.0.0(eslint@8.53.0) - eslint-plugin-typescript-sort-keys: 3.0.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2) - eslint-plugin-unicorn: 48.0.1(eslint@8.53.0) - eslint-plugin-vitest: 0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.53.0)(typescript@5.2.2)(vitest@0.34.1) - eslint-plugin-yml: 1.10.0(eslint@8.53.0) - eslint-plugin-zod: 1.4.0(eslint@8.53.0) + eslint-plugin-n: 16.3.1(eslint@8.54.0) + eslint-plugin-prettier: 5.0.1(@types/eslint@8.44.7)(eslint-config-prettier@9.0.0)(eslint@8.54.0)(prettier@3.0.3) + eslint-plugin-promise: 6.1.1(eslint@8.54.0) + eslint-plugin-react: 7.33.2(eslint@8.54.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.54.0) + eslint-plugin-regexp: 1.15.0(eslint@8.54.0) + eslint-plugin-simple-import-sort: 10.0.0(eslint@8.54.0) + eslint-plugin-typescript-sort-keys: 3.0.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) + eslint-plugin-unicorn: 48.0.1(eslint@8.54.0) + eslint-plugin-vitest: 0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.54.0)(typescript@5.3.2)(vitest@0.34.1) + eslint-plugin-yml: 1.10.0(eslint@8.54.0) + eslint-plugin-zod: 1.4.0(eslint@8.54.0) prettier: 3.0.3 ramda: 0.29.1 yaml-eslint-parser: 1.2.2 @@ -4833,26 +4733,26 @@ packages: - vitest dev: true - /eslint-config-prettier@9.0.0(eslint@8.53.0): + /eslint-config-prettier@9.0.0(eslint@8.54.0): resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.53.0 + eslint: 8.54.0 dev: true - /eslint-import-resolver-node@0.3.7: - resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 is-core-module: 2.13.0 - resolve: 1.22.3 + resolve: 1.22.8 transitivePeerDependencies: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.10.0)(eslint-plugin-import@2.28.1)(eslint@8.53.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.12.0)(eslint-plugin-i@2.29.0)(eslint@8.54.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4861,10 +4761,10 @@ packages: dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 - eslint: 8.53.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) - fast-glob: 3.3.1 + eslint: 8.54.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.12.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0) + eslint-plugin-import: /eslint-plugin-i@2.29.0(@typescript-eslint/parser@6.12.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0) + fast-glob: 3.3.2 get-tsconfig: 4.6.2 is-core-module: 2.13.0 is-glob: 4.0.3 @@ -4875,7 +4775,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.12.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4896,24 +4796,24 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.3.2) debug: 3.2.7 - eslint: 8.53.0 - eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.10.0)(eslint-plugin-import@2.28.1)(eslint@8.53.0) + eslint: 8.54.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.12.0)(eslint-plugin-i@2.29.0)(eslint@8.54.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-ava@14.0.0(eslint@8.53.0): + /eslint-plugin-ava@14.0.0(eslint@8.54.0): resolution: {integrity: sha512-XmKT6hppaipwwnLVwwvQliSU6AF1QMHiNoLD5JQfzhUhf0jY7CO0O624fQrE+Y/fTb9vbW8r77nKf7M/oHulxw==} engines: {node: '>=14.17 <15 || >=16.4'} peerDependencies: eslint: '>=8.26.0' dependencies: enhance-visitors: 1.0.0 - eslint: 8.53.0 - eslint-utils: 3.0.0(eslint@8.53.0) + eslint: 8.54.0 + eslint-utils: 3.0.0(eslint@8.54.0) espree: 9.6.1 espurify: 2.1.1 import-modules: 2.1.0 @@ -4922,15 +4822,15 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-canonical@4.15.1(@typescript-eslint/parser@6.10.0)(eslint-plugin-import@2.28.1)(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-xndfaRN9vOb6sd2bd7jKac6oMeDj9ZaKr7uPYt99BGyy4D2gRe4cisIMo4uVUR3CdRSK1fEmH68OeRtmpJ7cpA==} + /eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@6.12.0)(eslint-plugin-i@2.29.0)(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-0Egc0FKOnCRdu3bFEJhfHkdkusIgW0UxdemukkowZQnQsnf12FHSJ7K26b+tZ5pKB7cTyECSaqvEpoIJfplX4g==} engines: {node: '>=16.0.0'} dependencies: - '@typescript-eslint/utils': 6.7.5(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.5(eslint@8.54.0)(typescript@5.3.2) chance: 1.1.11 debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.10.0)(eslint-plugin-import@2.28.1)(eslint@8.53.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.12.0)(eslint-plugin-i@2.29.0)(eslint@8.54.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.12.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -4939,7 +4839,7 @@ packages: natural-compare: 1.4.0 recast: 0.23.3 roarr: 7.15.1 - ts-unused-exports: 9.0.5(typescript@5.2.2) + ts-unused-exports: 9.0.5(typescript@5.3.2) xregexp: 5.1.1 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -4951,38 +4851,39 @@ packages: - typescript dev: true - /eslint-plugin-cypress@2.15.1(eslint@8.53.0): + /eslint-plugin-cypress@2.15.1(eslint@8.54.0): resolution: {integrity: sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 8.53.0 + eslint: 8.54.0 globals: 13.20.0 dev: true - /eslint-plugin-es@3.0.1(eslint@8.53.0): - resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} - engines: {node: '>=8.10.0'} + /eslint-plugin-es-x@7.4.0(eslint@8.54.0): + resolution: {integrity: sha512-WJa3RhYzBtl8I37ebY9p76s61UhZyi4KaFOnX2A5r32RPazkXj5yoT6PGnD02dhwzEUj0KwsUdqfKDd/OuvGsw==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - eslint: '>=4.19.1' + eslint: '>=8' dependencies: - eslint: 8.53.0 - eslint-utils: 2.1.0 - regexpp: 3.2.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/regexpp': 4.6.2 + eslint: 8.54.0 + eslint-compat-utils: 0.1.2(eslint@8.54.0) dev: true - /eslint-plugin-eslint-comments@3.2.0(eslint@8.53.0): + /eslint-plugin-eslint-comments@3.2.0(eslint@8.54.0): resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' dependencies: escape-string-regexp: 1.0.5 - eslint: 8.53.0 + eslint: 8.54.0 ignore: 5.2.4 dev: true - /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.53.0): + /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.54.0): resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -4990,62 +4891,50 @@ packages: '@babel/plugin-transform-react-jsx': ^7.14.9 eslint: ^8.1.0 dependencies: - '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.23.3) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.23.3) - eslint: 8.53.0 + eslint: 8.54.0 lodash: 4.17.21 string-natural-compare: 3.0.1 dev: true - /eslint-plugin-fp@2.3.0(eslint@8.53.0): + /eslint-plugin-fp@2.3.0(eslint@8.54.0): resolution: {integrity: sha512-3n2oHibwoIxAht9/+ZaTldhI6brXORgl8oNXqZd+d9xuAQt2SBJ2/aml0oQRMWvXrgsz2WG6wfC++NjzSG3prA==} engines: {node: '>=4.0.0'} peerDependencies: eslint: '>=3' dependencies: create-eslint-index: 1.0.0 - eslint: 8.53.0 + eslint: 8.54.0 eslint-ast-utils: 1.1.0 lodash: 4.17.21 req-all: 0.1.0 dev: true - /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0): - resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} - engines: {node: '>=4'} + /eslint-plugin-i@2.29.0(@typescript-eslint/parser@6.12.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0): + resolution: {integrity: sha512-slGeTS3GQzx9267wLJnNYNO8X9EHGsc75AKIAFvnvMYEcTJKotPKL1Ru5PIGVHIVet+2DsugePWp8Oxpx8G22w==} + engines: {node: '>=12'} peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true + eslint: ^7.2.0 || ^8 dependencies: - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - array-includes: 3.1.6 - array.prototype.findlastindex: 1.2.2 - array.prototype.flat: 1.3.1 - array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.53.0 - eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) - has: 1.0.3 - is-core-module: 2.13.0 + eslint: 8.54.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.12.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0) + get-tsconfig: 4.6.2 is-glob: 4.0.3 minimatch: 3.1.2 - object.fromentries: 2.0.6 - object.groupby: 1.0.0 - object.values: 1.1.6 - semver: 6.3.1 - tsconfig-paths: 3.14.2 + resolve: 1.22.3 + semver: 7.5.4 transitivePeerDependencies: + - '@typescript-eslint/parser' - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color dev: true - /eslint-plugin-jest@27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.53.0)(typescript@5.2.2): + /eslint-plugin-jest@27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.54.0)(typescript@5.3.2): resolution: {integrity: sha512-3Nfvv3wbq2+PZlRTf2oaAWXWwbdBejFRBR2O8tAO67o+P8zno+QGbcDYaAXODlreXVg+9gvWhKKmG2rgfb8GEg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -5058,15 +4947,15 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) - eslint: 8.53.0 + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.54.0)(typescript@5.3.2) + eslint: 8.54.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsdoc@46.8.2(eslint@8.53.0): + /eslint-plugin-jsdoc@46.8.2(eslint@8.54.0): resolution: {integrity: sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ==} engines: {node: '>=16'} peerDependencies: @@ -5077,7 +4966,7 @@ packages: comment-parser: 1.4.0 debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 8.53.0 + eslint: 8.54.0 esquery: 1.5.0 is-builtin-module: 3.2.1 semver: 7.5.4 @@ -5086,20 +4975,20 @@ packages: - supports-color dev: true - /eslint-plugin-jsonc@2.10.0(eslint@8.53.0): + /eslint-plugin-jsonc@2.10.0(eslint@8.54.0): resolution: {integrity: sha512-9d//o6Jyh4s1RxC9fNSt1+MMaFN2ruFdXPG9XZcb/mR2KkfjADYiNL/hbU6W0Cyxfg3tS/XSFuhl5LgtMD8hmw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) - eslint: 8.53.0 - eslint-compat-utils: 0.1.2(eslint@8.53.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + eslint: 8.54.0 + eslint-compat-utils: 0.1.2(eslint@8.54.0) jsonc-eslint-parser: 2.3.0 natural-compare: 1.4.0 dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.53.0): + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.54.0): resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} peerDependencies: @@ -5114,7 +5003,7 @@ packages: axobject-query: 3.2.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.53.0 + eslint: 8.54.0 has: 1.0.3 jsx-ast-utils: 3.3.5 language-tags: 1.0.5 @@ -5124,24 +5013,24 @@ packages: semver: 6.3.1 dev: true - /eslint-plugin-lodash@7.4.0(eslint@8.53.0): + /eslint-plugin-lodash@7.4.0(eslint@8.54.0): resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} engines: {node: '>=10'} peerDependencies: eslint: '>=2' dependencies: - eslint: 8.53.0 + eslint: 8.54.0 lodash: 4.17.21 dev: true - /eslint-plugin-mocha@10.2.0(eslint@8.53.0): + /eslint-plugin-mocha@10.2.0(eslint@8.54.0): resolution: {integrity: sha512-ZhdxzSZnd1P9LqDPF0DBcFLpRIGdh1zkF2JHnQklKQOvrQtT73kdP5K9V2mzvbLR+cCAO9OI48NXK/Ax9/ciCQ==} engines: {node: '>=14.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.53.0 - eslint-utils: 3.0.0(eslint@8.53.0) + eslint: 8.54.0 + eslint-utils: 3.0.0(eslint@8.54.0) rambda: 7.5.0 dev: true @@ -5152,22 +5041,26 @@ packages: requireindex: 1.1.0 dev: true - /eslint-plugin-node@11.1.0(eslint@8.53.0): - resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} - engines: {node: '>=8.10.0'} + /eslint-plugin-n@16.3.1(eslint@8.54.0): + resolution: {integrity: sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==} + engines: {node: '>=16.0.0'} peerDependencies: - eslint: '>=5.16.0' + eslint: '>=7.0.0' dependencies: - eslint: 8.53.0 - eslint-plugin-es: 3.0.1(eslint@8.53.0) - eslint-utils: 2.1.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + builtins: 5.0.1 + eslint: 8.54.0 + eslint-plugin-es-x: 7.4.0(eslint@8.54.0) + get-tsconfig: 4.7.2 ignore: 5.2.4 + is-builtin-module: 3.2.1 + is-core-module: 2.13.0 minimatch: 3.1.2 resolve: 1.22.3 - semver: 6.3.1 + semver: 7.5.4 dev: true - /eslint-plugin-prettier@5.0.1(@types/eslint@8.44.7)(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@3.0.3): + /eslint-plugin-prettier@5.0.1(@types/eslint@8.44.7)(eslint-config-prettier@9.0.0)(eslint@8.54.0)(prettier@3.0.3): resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -5182,32 +5075,32 @@ packages: optional: true dependencies: '@types/eslint': 8.44.7 - eslint: 8.53.0 - eslint-config-prettier: 9.0.0(eslint@8.53.0) + eslint: 8.54.0 + eslint-config-prettier: 9.0.0(eslint@8.54.0) prettier: 3.0.3 prettier-linter-helpers: 1.0.0 synckit: 0.8.5 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.53.0): + /eslint-plugin-promise@6.1.1(eslint@8.54.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.53.0 + eslint: 8.54.0 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.53.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.54.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.53.0 + eslint: 8.54.0 dev: true - /eslint-plugin-react@7.33.2(eslint@8.53.0): + /eslint-plugin-react@7.33.2(eslint@8.54.0): resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} engines: {node: '>=4'} peerDependencies: @@ -5218,7 +5111,7 @@ packages: array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 es-iterator-helpers: 1.0.15 - eslint: 8.53.0 + eslint: 8.54.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 @@ -5232,16 +5125,16 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-regexp@1.15.0(eslint@8.53.0): + /eslint-plugin-regexp@1.15.0(eslint@8.54.0): resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} engines: {node: ^12 || >=14} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) '@eslint-community/regexpp': 4.6.2 comment-parser: 1.4.1 - eslint: 8.53.0 + eslint: 8.54.0 grapheme-splitter: 1.0.4 jsdoctypeparser: 9.0.0 refa: 0.11.0 @@ -5249,15 +5142,15 @@ packages: scslre: 0.2.0 dev: true - /eslint-plugin-simple-import-sort@10.0.0(eslint@8.53.0): + /eslint-plugin-simple-import-sort@10.0.0(eslint@8.54.0): resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 8.53.0 + eslint: 8.54.0 dev: true - /eslint-plugin-typescript-sort-keys@3.0.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2): + /eslint-plugin-typescript-sort-keys@3.0.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2): resolution: {integrity: sha512-bMmI4prYlf3l/1O8j8Nsz11m+XfKEHRFk9aJqP91L4Hgy7I38lnitnYElDmPQaznE1oFlGgBcnkEizNT2NLylQ==} engines: {node: '>= 16'} peerDependencies: @@ -5265,27 +5158,27 @@ packages: eslint: ^7 || ^8 typescript: ^3 || ^4 || ^5 dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - eslint: 8.53.0 + '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + eslint: 8.54.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 - typescript: 5.2.2 + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-unicorn@48.0.1(eslint@8.53.0): + /eslint-plugin-unicorn@48.0.1(eslint@8.54.0): resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} engines: {node: '>=16'} peerDependencies: eslint: '>=8.44.0' dependencies: '@babel/helper-validator-identifier': 7.22.20 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) ci-info: 3.8.0 clean-regexp: 1.0.0 - eslint: 8.53.0 + eslint: 8.54.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -5299,7 +5192,7 @@ packages: strip-indent: 3.0.0 dev: true - /eslint-plugin-vitest@0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.53.0)(typescript@5.2.2)(vitest@0.34.1): + /eslint-plugin-vitest@0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.54.0)(typescript@5.3.2)(vitest@0.34.1): resolution: {integrity: sha512-A1P0qJVkqHyfDolwm09h8/gu7SbGFOKbacJSeyZ9IRb8uyddgqLcqv4VrqgQfLA7QmGI9lwj1iV90NyZ1cHp8Q==} engines: {node: 14.x || >= 16} peerDependencies: @@ -5310,24 +5203,24 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.7.5(eslint@8.53.0)(typescript@5.2.2) - eslint: 8.53.0 + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/utils': 6.7.5(eslint@8.54.0)(typescript@5.3.2) + eslint: 8.54.0 vitest: 0.34.1 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-yml@1.10.0(eslint@8.53.0): + /eslint-plugin-yml@1.10.0(eslint@8.54.0): resolution: {integrity: sha512-53SUwuNDna97lVk38hL/5++WXDuugPM9SUQ1T645R0EHMRCdBIIxGye/oOX2qO3FQ7aImxaUZJU/ju+NMUBrLQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4(supports-color@8.1.1) - eslint: 8.53.0 - eslint-compat-utils: 0.1.2(eslint@8.53.0) + eslint: 8.54.0 + eslint-compat-utils: 0.1.2(eslint@8.54.0) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.2 @@ -5335,13 +5228,13 @@ packages: - supports-color dev: true - /eslint-plugin-zod@1.4.0(eslint@8.53.0): + /eslint-plugin-zod@1.4.0(eslint@8.54.0): resolution: {integrity: sha512-i9WzQGw2X5fQcuQh33mA8DQjZJM/yuyZvs1Fc5EyTidX7Ed/g832+1FEQ4u5gtXy+jZ+DVsB5+oMHj4tIOfeZg==} engines: {node: '>=12'} peerDependencies: eslint: '>=8.1.0' dependencies: - eslint: 8.53.0 + eslint: 8.54.0 dev: true /eslint-rule-composer@0.3.0: @@ -5365,28 +5258,16 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils@2.1.0: - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} - engines: {node: '>=6'} - dependencies: - eslint-visitor-keys: 1.3.0 - dev: true - - /eslint-utils@3.0.0(eslint@8.53.0): + /eslint-utils@3.0.0(eslint@8.54.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.53.0 + eslint: 8.54.0 eslint-visitor-keys: 2.1.0 dev: true - /eslint-visitor-keys@1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - dev: true - /eslint-visitor-keys@2.1.0: resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} engines: {node: '>=10'} @@ -5402,15 +5283,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.53.0: - resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==} + /eslint@8.54.0: + resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) '@eslint-community/regexpp': 4.6.2 '@eslint/eslintrc': 2.1.3 - '@eslint/js': 8.53.0 + '@eslint/js': 8.54.0 '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -5633,17 +5514,6 @@ packages: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} dev: true - /fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - /fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -6030,6 +5900,12 @@ packages: resolve-pkg-maps: 1.0.0 dev: true + /get-tsconfig@4.7.2: + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + /get-urls@10.0.1: resolution: {integrity: sha512-5usUMF4FE0cTS7yUuRvBsB4tSs5u8KFn7v01+IDGL/18tuoADu5ehthqw+y2EHnJsWhsp1443K5P+C/XWZQ04g==} engines: {node: '>=10.12.0'} @@ -6175,7 +6051,7 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.1 + fast-glob: 3.3.2 ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 @@ -6215,7 +6091,7 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql-config@4.5.0(@types/node@20.9.0)(graphql@16.7.1): + /graphql-config@4.5.0(@types/node@20.9.4)(graphql@16.7.1): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -6229,7 +6105,7 @@ packages: '@graphql-tools/json-file-loader': 7.4.18(graphql@16.7.1) '@graphql-tools/load': 7.8.14(graphql@16.7.1) '@graphql-tools/merge': 8.4.2(graphql@16.7.1) - '@graphql-tools/url-loader': 7.17.18(@types/node@20.9.0)(graphql@16.7.1) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.9.4)(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) cosmiconfig: 8.0.0 graphql: 16.7.1 @@ -6547,11 +6423,25 @@ packages: engines: {node: '>=16.20'} dev: true + /import-from-esm@1.3.3: + resolution: {integrity: sha512-U3Qt/CyfFpTUv6LOP2jRTLYjphH6zg3okMfHbyqRa/W2w6hr8OsJWVggNlR4jxuojQy81TgTJTxgSkyoteRGMQ==} + engines: {node: '>=16.20'} + dependencies: + debug: 4.3.4(supports-color@8.1.1) + import-meta-resolve: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /import-from@4.0.0: resolution: {integrity: sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==} engines: {node: '>=12.2'} dev: true + /import-meta-resolve@4.0.0: + resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} + dev: true + /import-modules@2.1.0: resolution: {integrity: sha512-8HEWcnkbGpovH9yInoisxaSoIg9Brbul+Ju3Kqe2UsYDUBJD/iQjSgEj0zPcTDPKfPp2fs5xlv1i+JSye/m1/A==} engines: {node: '>=8'} @@ -7416,8 +7306,8 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /lint-staged@15.0.2: - resolution: {integrity: sha512-vnEy7pFTHyVuDmCAIFKR5QDO8XLVlPFQQyujQ/STOxe40ICWqJ6knS2wSJ/ffX/Lw0rz83luRDh+ET7toN+rOw==} + /lint-staged@15.1.0: + resolution: {integrity: sha512-ZPKXWHVlL7uwVpy8OZ7YQjYDAuO5X4kMh0XgZvPNxLcCCngd0PO5jKQyy3+s4TL2EnHoIXIzP1422f/l3nZKMw==} engines: {node: '>=18.12.0'} hasBin: true dependencies: @@ -7430,7 +7320,7 @@ packages: micromatch: 4.0.5 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.3.3 + yaml: 2.3.4 transitivePeerDependencies: - supports-color dev: true @@ -7731,7 +7621,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.3.0(@types/node@20.9.0): + /meros@1.3.0(@types/node@20.9.4): resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} engines: {node: '>=13'} peerDependencies: @@ -7740,7 +7630,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.9.0 + '@types/node': 20.9.4 dev: true /micro-spelling-correcter@1.1.1: @@ -8402,15 +8292,6 @@ packages: safe-array-concat: 1.0.0 dev: true - /object.groupby@1.0.0: - resolution: {integrity: sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.1 - get-intrinsic: 1.2.1 - dev: true - /object.hasown@1.1.2: resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} dependencies: @@ -9039,7 +8920,7 @@ packages: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} dependencies: - '@types/normalize-package-data': 2.4.1 + '@types/normalize-package-data': 2.4.3 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 @@ -9049,7 +8930,7 @@ packages: resolution: {integrity: sha512-Ajb9oSjxXBw0YyOiwtQ2dKbAA/vMnUPnY63XcCk+mXo0BwIdQEMgZLZiMWGttQHcUhUgbK0mH85ethMPKXxziw==} engines: {node: '>=16'} dependencies: - '@types/normalize-package-data': 2.4.1 + '@types/normalize-package-data': 2.4.3 normalize-package-data: 5.0.0 parse-json: 7.0.0 type-fest: 3.13.1 @@ -9185,11 +9066,6 @@ packages: functions-have-names: 1.2.3 dev: true - /regexpp@3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - dev: true - /regexpu-core@5.3.2: resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} engines: {node: '>=4'} @@ -9328,6 +9204,15 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + /resolve@2.0.0-next.4: resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} hasBin: true @@ -9471,16 +9356,16 @@ packages: regexp-ast-analysis: 0.6.0 dev: true - /semantic-release@22.0.7: - resolution: {integrity: sha512-Stx23Hjn7iU8GOAlhG3pHlR7AoNEahj9q7lKBP0rdK2BasGtJ4AWYh3zm1u3SCMuFiA8y4CE/Gu4RGKau1WiaQ==} + /semantic-release@22.0.8: + resolution: {integrity: sha512-55rb31jygqIYsGU/rY+gXXm2fnxBIWo9azOjxbqKsPnq7p70zwZ5v+xnD7TxJC+zvS3sy1eHLGXYWCaX3WI76A==} engines: {node: ^18.17 || >=20.6.1} hasBin: true dependencies: - '@semantic-release/commit-analyzer': 11.1.0(semantic-release@22.0.7) + '@semantic-release/commit-analyzer': 11.1.0(semantic-release@22.0.8) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 9.2.3(semantic-release@22.0.7) - '@semantic-release/npm': 11.0.1(semantic-release@22.0.7) - '@semantic-release/release-notes-generator': 12.0.0(semantic-release@22.0.7) + '@semantic-release/github': 9.2.3(semantic-release@22.0.8) + '@semantic-release/npm': 11.0.1(semantic-release@22.0.8) + '@semantic-release/release-notes-generator': 12.0.0(semantic-release@22.0.8) aggregate-error: 5.0.0 cosmiconfig: 8.2.0 debug: 4.3.4(supports-color@8.1.1) @@ -9492,6 +9377,7 @@ packages: git-log-parser: 1.2.0 hook-std: 3.0.0 hosted-git-info: 7.0.1 + import-from-esm: 1.3.3 lodash-es: 4.17.21 marked: 9.1.1 marked-terminal: 6.0.0(marked@9.1.1) @@ -9797,6 +9683,14 @@ packages: dependencies: spdx-exceptions: 2.3.0 spdx-license-ids: 3.0.13 + dev: true + + /spdx-expression-parse@4.0.0: + resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.13 + dev: false /spdx-license-ids@3.0.13: resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} @@ -10210,16 +10104,16 @@ packages: resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==} dev: true - /ts-api-utils@1.0.1(typescript@5.2.2): + /ts-api-utils@1.0.1(typescript@5.3.2): resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.2.2 + typescript: 5.3.2 dev: true - /ts-unused-exports@9.0.5(typescript@5.2.2): + /ts-unused-exports@9.0.5(typescript@5.3.2): resolution: {integrity: sha512-1XAXaH2i4Al/aZO06pWDn9MUgTN0KQi+fvWudiWfHUTHAav45gzrx7Xq6JAsu6+LoMlVoyGvNvZSPW3KTjDncA==} hasBin: true peerDependencies: @@ -10227,7 +10121,7 @@ packages: dependencies: chalk: 4.1.2 tsconfig-paths: 3.14.2 - typescript: 5.2.2 + typescript: 5.3.2 dev: true /tsconfig-paths@3.14.2: @@ -10247,14 +10141,14 @@ packages: resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} dev: true - /tsutils@3.21.0(typescript@5.2.2): + /tsutils@3.21.0(typescript@5.3.2): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 5.2.2 + typescript: 5.3.2 dev: true /tunnel-agent@0.6.0: @@ -10370,8 +10264,8 @@ packages: is-typedarray: 1.0.0 dev: true - /typescript@5.2.2: - resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + /typescript@5.3.2: + resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==} engines: {node: '>=14.17'} hasBin: true dev: true @@ -10599,7 +10493,7 @@ packages: extsprintf: 1.3.0 dev: true - /vite-node@0.34.1(@types/node@20.9.0): + /vite-node@0.34.1(@types/node@20.9.4): resolution: {integrity: sha512-odAZAL9xFMuAg8aWd7nSPT+hU8u2r9gU3LRm9QKjxBEF2rRdWpMuqkrkjvyVQEdNFiBctqr2Gg4uJYizm5Le6w==} engines: {node: '>=v14.18.0'} hasBin: true @@ -10609,7 +10503,7 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.8(@types/node@20.9.0) + vite: 4.4.8(@types/node@20.9.4) transitivePeerDependencies: - '@types/node' - less @@ -10621,7 +10515,7 @@ packages: - terser dev: true - /vite@4.4.8(@types/node@20.9.0): + /vite@4.4.8(@types/node@20.9.4): resolution: {integrity: sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -10649,7 +10543,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.9.0 + '@types/node': 20.9.4 esbuild: 0.18.17 postcss: 8.4.31 rollup: 3.27.2 @@ -10688,9 +10582,9 @@ packages: webdriverio: optional: true dependencies: - '@types/chai': 4.3.10 + '@types/chai': 4.3.11 '@types/chai-subset': 1.3.3 - '@types/node': 20.9.0 + '@types/node': 20.9.4 '@vitest/expect': 0.34.1 '@vitest/runner': 0.34.1 '@vitest/snapshot': 0.34.1 @@ -10709,8 +10603,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.0 tinypool: 0.7.0 - vite: 4.4.8(@types/node@20.9.0) - vite-node: 0.34.1(@types/node@20.9.0) + vite: 4.4.8(@types/node@20.9.4) + vite-node: 0.34.1(@types/node@20.9.4) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -10952,6 +10846,11 @@ packages: engines: {node: '>= 14'} dev: true + /yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + engines: {node: '>= 14'} + dev: true + /yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} From caec52688bf4f413e34a76d4eddcde28df489bcb Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 8 Dec 2023 21:12:46 -0700 Subject: [PATCH 147/273] chore: update devDeps. --- package.json | 22 +- pnpm-lock.yaml | 1469 +++++++++++++++++++++++++----------------------- 2 files changed, 780 insertions(+), 711 deletions(-) diff --git a/package.json b/package.json index 14614c900..c2c61a9a0 100644 --- a/package.json +++ b/package.json @@ -18,38 +18,38 @@ "description": "JSDoc linting rules for ESLint.", "devDependencies": { "@babel/cli": "^7.23.4", - "@babel/core": "^7.23.3", + "@babel/core": "^7.23.5", "@babel/eslint-parser": "^7.23.3", "@babel/node": "^7.22.19", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-transform-flow-strip-types": "^7.23.3", - "@babel/preset-env": "^7.23.3", + "@babel/preset-env": "^7.23.5", "@babel/register": "^7.22.15", "@es-joy/escodegen": "^3.5.1", "@es-joy/jsdoc-eslint-parser": "^0.20.0", "@hkdobrev/run-if-changed": "^0.3.1", "@semantic-release/commit-analyzer": "^11.1.0", - "@semantic-release/github": "^9.2.3", - "@semantic-release/npm": "^11.0.1", + "@semantic-release/github": "^9.2.5", + "@semantic-release/npm": "^11.0.2", "@types/chai": "^4.3.11", "@types/debug": "^4.1.12", - "@types/eslint": "^8.44.7", + "@types/eslint": "^8.44.8", "@types/esquery": "^1.5.3", "@types/estree": "^1.0.5", "@types/json-schema": "^7.0.15", "@types/lodash.defaultsdeep": "^4.6.9", "@types/mocha": "^10.0.6", - "@types/node": "^20.9.4", + "@types/node": "^20.10.4", "@types/semver": "^7.5.6", "@types/spdx-expression-parse": "^3.0.5", - "@typescript-eslint/parser": "^6.12.0", + "@typescript-eslint/parser": "^6.13.2", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", "chai": "^4.3.10", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "8.54.0", + "eslint": "8.55.0", "eslint-config-canonical": "~42.8.0", "espree": "^9.6.1", "gitdown": "^3.1.5", @@ -57,14 +57,14 @@ "husky": "^8.0.3", "jsdoc-type-pratt-parser": "^4.0.0", "json-schema": "^0.4.0", - "lint-staged": "^15.1.0", + "lint-staged": "^15.2.0", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.2.0", "nyc": "^15.1.0", "open-editor": "^3.0.0", "rimraf": "^5.0.5", - "semantic-release": "^22.0.8", - "typescript": "5.3.2" + "semantic-release": "^22.0.10", + "typescript": "5.3.3" }, "engines": { "node": ">=16" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 55db411db..e4af702b6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,28 +36,28 @@ dependencies: devDependencies: '@babel/cli': specifier: ^7.23.4 - version: 7.23.4(@babel/core@7.23.3) + version: 7.23.4(@babel/core@7.23.5) '@babel/core': - specifier: ^7.23.3 - version: 7.23.3 + specifier: ^7.23.5 + version: 7.23.5 '@babel/eslint-parser': specifier: ^7.23.3 - version: 7.23.3(@babel/core@7.23.3)(eslint@8.54.0) + version: 7.23.3(@babel/core@7.23.5)(eslint@8.55.0) '@babel/node': specifier: ^7.22.19 - version: 7.22.19(@babel/core@7.23.3) + version: 7.22.19(@babel/core@7.23.5) '@babel/plugin-syntax-class-properties': specifier: ^7.12.13 - version: 7.12.13(@babel/core@7.23.3) + version: 7.12.13(@babel/core@7.23.5) '@babel/plugin-transform-flow-strip-types': specifier: ^7.23.3 - version: 7.23.3(@babel/core@7.23.3) + version: 7.23.3(@babel/core@7.23.5) '@babel/preset-env': - specifier: ^7.23.3 - version: 7.23.3(@babel/core@7.23.3) + specifier: ^7.23.5 + version: 7.23.5(@babel/core@7.23.5) '@babel/register': specifier: ^7.22.15 - version: 7.22.15(@babel/core@7.23.3) + version: 7.22.15(@babel/core@7.23.5) '@es-joy/escodegen': specifier: ^3.5.1 version: 3.5.1 @@ -69,13 +69,13 @@ devDependencies: version: 0.3.1 '@semantic-release/commit-analyzer': specifier: ^11.1.0 - version: 11.1.0(semantic-release@22.0.8) + version: 11.1.0(semantic-release@22.0.10) '@semantic-release/github': - specifier: ^9.2.3 - version: 9.2.3(semantic-release@22.0.8) + specifier: ^9.2.5 + version: 9.2.5(semantic-release@22.0.10) '@semantic-release/npm': - specifier: ^11.0.1 - version: 11.0.1(semantic-release@22.0.8) + specifier: ^11.0.2 + version: 11.0.2(semantic-release@22.0.10) '@types/chai': specifier: ^4.3.11 version: 4.3.11 @@ -83,8 +83,8 @@ devDependencies: specifier: ^4.1.12 version: 4.1.12 '@types/eslint': - specifier: ^8.44.7 - version: 8.44.7 + specifier: ^8.44.8 + version: 8.44.8 '@types/esquery': specifier: ^1.5.3 version: 1.5.3 @@ -101,8 +101,8 @@ devDependencies: specifier: ^10.0.6 version: 10.0.6 '@types/node': - specifier: ^20.9.4 - version: 20.9.4 + specifier: ^20.10.4 + version: 20.10.4 '@types/semver': specifier: ^7.5.6 version: 7.5.6 @@ -110,8 +110,8 @@ devDependencies: specifier: ^3.0.5 version: 3.0.5 '@typescript-eslint/parser': - specifier: ^6.12.0 - version: 6.12.0(eslint@8.54.0)(typescript@5.3.2) + specifier: ^6.13.2 + version: 6.13.2(eslint@8.55.0)(typescript@5.3.3) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -131,11 +131,11 @@ devDependencies: specifier: ^5.0.1 version: 5.0.1 eslint: - specifier: 8.54.0 - version: 8.54.0 + specifier: 8.55.0 + version: 8.55.0 eslint-config-canonical: specifier: ~42.8.0 - version: 42.8.0(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.7)(@types/node@20.9.4)(eslint@8.54.0)(graphql@16.7.1)(typescript@5.3.2)(vitest@0.34.1) + version: 42.8.0(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.8)(@types/node@20.10.4)(eslint@8.55.0)(graphql@16.7.1)(typescript@5.3.3)(vitest@0.34.1) espree: specifier: ^9.6.1 version: 9.6.1 @@ -155,8 +155,8 @@ devDependencies: specifier: ^0.4.0 version: 0.4.0 lint-staged: - specifier: ^15.1.0 - version: 15.1.0 + specifier: ^15.2.0 + version: 15.2.0 lodash.defaultsdeep: specifier: ^4.6.1 version: 4.6.1 @@ -173,11 +173,11 @@ devDependencies: specifier: ^5.0.5 version: 5.0.5 semantic-release: - specifier: ^22.0.8 - version: 22.0.8 + specifier: ^22.0.10 + version: 22.0.10 typescript: - specifier: 5.3.2 - version: 5.3.2 + specifier: 5.3.3 + version: 5.3.3 packages: @@ -203,14 +203,14 @@ packages: - encoding dev: true - /@babel/cli@7.23.4(@babel/core@7.23.3): + /@babel/cli@7.23.4(@babel/core@7.23.5): resolution: {integrity: sha512-j3luA9xGKCXVyCa5R7lJvOMM+Kc2JEnAEIgz2ggtjQ/j5YUVgfsg/WsG95bbsgq7YLHuiCOzMnoSasuY16qiCw==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@jridgewell/trace-mapping': 0.3.18 commander: 4.1.1 convert-source-map: 2.0.0 @@ -231,9 +231,12 @@ packages: chalk: 2.4.2 dev: true - /@babel/compat-data@7.23.2: - resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 dev: true /@babel/compat-data@7.23.3: @@ -241,20 +244,25 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.23.3: - resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==} + /@babel/compat-data@7.23.5: + resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.23.5: + resolution: {integrity: sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.3 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.5 '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) - '@babel/helpers': 7.23.2 - '@babel/parser': 7.23.3 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/helpers': 7.23.5 + '@babel/parser': 7.23.5 '@babel/template': 7.22.15 - '@babel/traverse': 7.23.3 - '@babel/types': 7.23.3 + '@babel/traverse': 7.23.5 + '@babel/types': 7.23.5 convert-source-map: 2.0.0 debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 @@ -264,29 +272,29 @@ packages: - supports-color dev: true - /@babel/eslint-parser@7.23.3(@babel/core@7.23.3)(eslint@8.54.0): + /@babel/eslint-parser@7.23.3(@babel/core@7.23.5)(eslint@8.55.0): resolution: {integrity: sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.54.0 + eslint: 8.55.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true - /@babel/eslint-plugin@7.22.10(@babel/eslint-parser@7.23.3)(eslint@8.54.0): + /@babel/eslint-plugin@7.22.10(@babel/eslint-parser@7.23.3)(eslint@8.55.0): resolution: {integrity: sha512-SRZcvo3fnO5h79B9DZSV6LG2vHH7OWsSNp1huFLHsXKyytRG413byQk9zxW1VcPOhnzfx2VIUz+8aGbiE7fOkA==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/eslint-parser': 7.23.3(@babel/core@7.23.3)(eslint@8.54.0) - eslint: 8.54.0 + '@babel/eslint-parser': 7.23.3(@babel/core@7.23.5)(eslint@8.55.0) + eslint: 8.55.0 eslint-rule-composer: 0.3.0 dev: true @@ -300,84 +308,82 @@ packages: jsesc: 2.5.2 dev: true + /@babel/generator@7.23.5: + resolution: {integrity: sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.5 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 + jsesc: 2.5.2 + dev: true + /@babel/helper-annotate-as-pure@7.22.5: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-compilation-targets@7.22.15: resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.23.2 + '@babel/compat-data': 7.23.3 '@babel/helper-validator-option': 7.22.15 browserslist: 4.22.1 lru-cache: 5.1.1 semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.3): + /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.5): resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.23.3) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.5) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.3): + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.5): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.23.3): - resolution: {integrity: sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-annotate-as-pure': 7.22.5 - regexpu-core: 5.3.2 - semver: 6.3.1 - dev: true - - /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.3): + /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.5): resolution: {integrity: sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4(supports-color@8.1.1) lodash.debounce: 4.0.8 - resolve: 1.22.3 + resolve: 1.22.8 transitivePeerDependencies: - supports-color dev: true @@ -392,37 +398,37 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.3 + '@babel/types': 7.23.5 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.5 dev: true /@babel/helper-member-expression-to-functions@7.23.0: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.5 dev: true - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -434,7 +440,7 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-plugin-utils@7.22.5: @@ -442,37 +448,25 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.3): + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.5): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 dev: true - /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.3): + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.5): resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - dev: true - - /@babel/helper-replace-supers@7.22.9(@babel/core@7.23.3): - resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 @@ -482,21 +476,21 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.5 dev: true /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.5 dev: true /@babel/helper-string-parser@7.22.5: @@ -504,6 +498,11 @@ packages: engines: {node: '>=6.9.0'} dev: true + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-validator-identifier@7.22.20: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} @@ -514,22 +513,27 @@ packages: engines: {node: '>=6.9.0'} dev: true + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-wrap-function@7.22.20: resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-function-name': 7.23.0 '@babel/template': 7.22.15 - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true - /@babel/helpers@7.23.2: - resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} + /@babel/helpers@7.23.5: + resolution: {integrity: sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.23.3 - '@babel/types': 7.23.3 + '@babel/traverse': 7.23.5 + '@babel/types': 7.23.5 transitivePeerDependencies: - supports-color dev: true @@ -543,15 +547,24 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/node@7.22.19(@babel/core@7.23.3): + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/node@7.22.19(@babel/core@7.23.5): resolution: {integrity: sha512-VsKSO9aEHdO16NdtqkJfrXZ9Sxlna1BVnBbToWr1KGdI3cyIk6KqOoa8mWvpK280lJDOwJqxvnl994KmLhq1Yw==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/register': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/register': 7.22.15(@babel/core@7.23.5) commander: 4.1.1 core-js: 3.32.0 node-environment-flags: 1.0.6 @@ -564,7 +577,7 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/parser@7.23.3: @@ -575,903 +588,911 @@ packages: '@babel/types': 7.23.3 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.3): + /@babel/parser@7.23.5: + resolution: {integrity: sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.5 + dev: true + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.3): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.5) dev: true - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.3): + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.3): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.5): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.5): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.3): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.5): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.3): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.5): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.3): + /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.3): + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.3): + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.5): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.3): + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.5): resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.3): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.5): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.3): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.5): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.3): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.5): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.3): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.5): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.3): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.5): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-generator-functions@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-59GsVNavGxAXCDDbakWSMJhajASb4kBCqDjqJsv+p5nKdbz7istmZ3HrX3L2LuiI80+zsOADCvooqQH3qGCucQ==} + /@babel/plugin-transform-async-generator-functions@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.5) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw==} + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-static-block@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-PENDVxdr7ZxKPyi5Ffc0LjXdnJyrJxyqF5T5YjlVg4a0VFfQHW0r8iAtRiDXkfHlu1wwcvdtnndGYIeJLSuRMQ==} + /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.3) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-classes@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==} + /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.5): + resolution: {integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.5) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.15 dev: true - /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dynamic-import@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-vTG+cTGxPFou12Rj7ll+eD5yWeNl5/8xvQvF08y5Gv3v4mZQoyFf8/n9zg4q5vvCWt5jmgymfzMAldO7orBn7A==} + /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-export-namespace-from@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-yCLhW34wpJWRdTxxWtFZASJisihrfyMOTOQexhVzA78jlU+dH7Dw+zQgcPepQ5F3C6bAIiblZZ+qBggJdHiBAg==} + /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-for-of@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-for-of@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-json-strings@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-H9Ej2OiISIZowZHaBwF0tsJOih1PftXJtE8EWqlEIwpc7LMTGq0rPOrywKLQ4nefzx8/HMR0D3JGXoMHYvhi0A==} + /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-+pD5ZbxofyOygEp+zZAfujY2ShNCXRpDRIPOiBmTO693hhyOEteZgl876Xs9SAHPQpcV0vz8LvA/T+w8AzyX8A==} + /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.3): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.5): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-xzg24Lnld4DYIdysyf07zJ1P+iIfJpxtVFOzX4g+bsJ3Ng5Le7rXx9KwqKzuyaUeRnt+I1EICwQITqc0E2PmpA==} + /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-numeric-separator@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-s9GO7fIBi/BLsZ0v3Rftr6Oe4t0ctJ8h4CCXfPoEJwmvAPMyNrfkOOJzm6b9PX9YXcCJWWQd/sBF/N26eBiMVw==} + /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-object-rest-spread@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-VxHt0ANkDmu8TANdE9Kc0rndo/ccsmfe2Cx2y5sI4hu3AukHQ5wAu4cM7j3ba8B9548ijVyclBU+nuDQftZsog==} + /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.23.3 - '@babel/core': 7.23.3 + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.5 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-optional-catch-binding@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-LxYSb0iLjUamfm7f1D7GpiS4j0UAC8AOiehnsGAP8BEsIX8EOi3qV6bbctw8M7ZvLtcoZfZX5Z7rN9PlWk0m5A==} + /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-optional-chaining@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-zvL8vIfIUgMccIAK1lxjvNv572JHFJIKb4MWBz5OGdBQA0fB0Xluix5rmOby48exiJc987neOmP/m9Fnpkz3Tg==} + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-property-in-object@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-a5m2oLNFyje2e/rGKjVfAELTVI5mbA0FeZpBnkOWWV7eSmKQ+T/XW0Vf+29ScLzSxX+rnsarvU0oie/4m6hkxA==} + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.23.3): + /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.23.5): resolution: {integrity: sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.3) + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.5) '@babel/types': 7.23.3 dev: true - /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==} + /@babel/preset-env@7.23.5(@babel/core@7.23.5): + resolution: {integrity: sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.23.3 - '@babel/core': 7.23.3 + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.5 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.15 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.3) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.3) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.3) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.3) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.3) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-async-generator-functions': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-class-static-block': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-classes': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-dynamic-import': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-export-namespace-from': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-json-strings': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-logical-assignment-operators': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-numeric-separator': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-object-rest-spread': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-optional-catch-binding': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-private-property-in-object': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.3) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.3) - babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.3) - babel-plugin-polyfill-corejs3: 0.8.5(@babel/core@7.23.3) - babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.3) + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.5) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.5) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.5) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.5) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-async-generator-functions': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.5) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.5) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.5) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.5) + babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.5) + babel-plugin-polyfill-corejs3: 0.8.5(@babel/core@7.23.5) + babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.5) core-js-compat: 3.33.0 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.3): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.5): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 esutils: 2.0.3 dev: true - /@babel/register@7.22.15(@babel/core@7.23.3): + /@babel/register@7.22.15(@babel/core@7.23.5): resolution: {integrity: sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -1502,9 +1523,9 @@ packages: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.13 - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.23.5 + '@babel/types': 7.23.5 dev: true /@babel/traverse@7.23.3: @@ -1525,13 +1546,22 @@ packages: - supports-color dev: true - /@babel/types@7.23.0: - resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} + /@babel/traverse@7.23.5: + resolution: {integrity: sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.22.5 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.5 + '@babel/types': 7.23.5 + debug: 4.3.4(supports-color@8.1.1) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color dev: true /@babel/types@7.23.3: @@ -1543,6 +1573,15 @@ packages: to-fast-properties: 2.0.0 dev: true + /@babel/types@7.23.5: + resolution: {integrity: sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + /@colors/colors@1.5.0: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -1572,13 +1611,13 @@ packages: resolution: {integrity: sha512-4ywXGd30Frz6AKMPjHi96LmOSAquZEZmzbMmoRgnYTGO+gb0CkfXos9tDYS0PxEkMbj5AOQFHUiZ7Md0FH5gqg==} engines: {node: '>=12.0.0'} dependencies: - '@babel/core': 7.23.3 - '@babel/eslint-parser': 7.23.3(@babel/core@7.23.3)(eslint@8.54.0) + '@babel/core': 7.23.5 + '@babel/eslint-parser': 7.23.3(@babel/core@7.23.5)(eslint@8.55.0) '@es-joy/jsdoccomment': 0.41.0 - '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.3.2) - eslint: 8.54.0 + '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) + eslint: 8.55.0 esquery: 1.5.0 - typescript: 5.3.2 + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true @@ -1798,13 +1837,13 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.55.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.54.0 + eslint: 8.55.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1813,8 +1852,8 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.3: - resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -1830,8 +1869,8 @@ packages: - supports-color dev: true - /@eslint/js@8.54.0: - resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==} + /@eslint/js@8.55.0: + resolution: {integrity: sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -1839,21 +1878,21 @@ packages: resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==} dev: true - /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.3)(@types/node@20.9.4)(graphql@16.7.1): + /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.5)(@types/node@20.10.4)(graphql@16.7.1): resolution: {integrity: sha512-RbwVlz1gcYG62sECR1u0XqMh8w5e5XMCCZoMvPQ3nJzEBCTfXLGX727GBoRmSvY1x4gJmqNZ1lsOX7lZY14RIw==} engines: {node: '>=12'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: '@babel/code-frame': 7.22.13 - '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.23.3)(graphql@16.7.1) - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.3)(graphql@16.7.1) + '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.23.5)(graphql@16.7.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.5)(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) chalk: 4.1.2 debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.3.2 graphql: 16.7.1 - graphql-config: 4.5.0(@types/node@20.9.4)(graphql@16.7.1) + graphql-config: 4.5.0(@types/node@20.10.4)(graphql@16.7.1) graphql-depth-limit: 1.1.0(graphql@16.7.1) lodash.lowercase: 4.3.0 tslib: 2.6.1 @@ -1879,12 +1918,12 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.23.3)(graphql@16.7.1): + /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.23.5)(graphql@16.7.1): resolution: {integrity: sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.3)(graphql@16.7.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.5)(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) globby: 11.1.0 graphql: 16.7.1 @@ -1928,7 +1967,7 @@ packages: - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.10(@types/node@20.9.4)(graphql@16.7.1): + /@graphql-tools/executor-http@0.1.10(@types/node@20.10.4)(graphql@16.7.1): resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1939,7 +1978,7 @@ packages: dset: 3.1.2 extract-files: 11.0.0 graphql: 16.7.1 - meros: 1.3.0(@types/node@20.9.4) + meros: 1.3.0(@types/node@20.10.4) tslib: 2.6.1 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -1988,13 +2027,13 @@ packages: unixify: 1.0.0 dev: true - /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.23.3)(graphql@16.7.1): + /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.23.5)(graphql@16.7.1): resolution: {integrity: sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: '@babel/parser': 7.23.3 - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.5) '@babel/traverse': 7.23.3 '@babel/types': 7.23.3 '@graphql-tools/utils': 9.2.1(graphql@16.7.1) @@ -2062,7 +2101,7 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.9.4)(graphql@16.7.1): + /@graphql-tools/url-loader@7.17.18(@types/node@20.10.4)(graphql@16.7.1): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -2070,7 +2109,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 9.0.35(graphql@16.7.1) '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.7.1) - '@graphql-tools/executor-http': 0.1.10(@types/node@20.9.4)(graphql@16.7.1) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.10.4)(graphql@16.7.1) '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) '@graphql-tools/wrap': 9.4.2(graphql@16.7.1) @@ -2450,7 +2489,7 @@ packages: resolution: {integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==} dev: true - /@semantic-release/commit-analyzer@11.1.0(semantic-release@22.0.8): + /@semantic-release/commit-analyzer@11.1.0(semantic-release@22.0.10): resolution: {integrity: sha512-cXNTbv3nXR2hlzHjAMgbuiQVtvWHTlwwISt60B+4NZv01y/QRY7p2HcJm8Eh2StzcTJoNnflvKjHH/cjFS7d5g==} engines: {node: ^18.17 || >=20.6.1} peerDependencies: @@ -2463,7 +2502,7 @@ packages: import-from-esm: 1.0.3 lodash-es: 4.17.21 micromatch: 4.0.5 - semantic-release: 22.0.8 + semantic-release: 22.0.10 transitivePeerDependencies: - supports-color dev: true @@ -2473,8 +2512,8 @@ packages: engines: {node: '>=18'} dev: true - /@semantic-release/github@9.2.3(semantic-release@22.0.8): - resolution: {integrity: sha512-FAjXb1F84CVI6IG8fWi+XS9ErYD+s3MHkP03zBa3+GyUrV4kqwYu/WPppIciHxujGFR51SAWPkOY5rnH6ZlrxA==} + /@semantic-release/github@9.2.5(semantic-release@22.0.10): + resolution: {integrity: sha512-XWumFEOHiWllekymZjeVgkQCJ4YnD8020ZspAHYIIBNX8O4d/1ldeU5iNXu6NGkKlOCokyXh13KwVP0UEMm5kw==} engines: {node: '>=18'} peerDependencies: semantic-release: '>=20.1.0' @@ -2492,16 +2531,16 @@ packages: https-proxy-agent: 7.0.1 issue-parser: 6.0.0 lodash-es: 4.17.21 - mime: 3.0.0 + mime: 4.0.0 p-filter: 3.0.0 - semantic-release: 22.0.8 + semantic-release: 22.0.10 url-join: 5.0.0 transitivePeerDependencies: - supports-color dev: true - /@semantic-release/npm@11.0.1(semantic-release@22.0.8): - resolution: {integrity: sha512-nFcT0pgVwpXsPkzjqP3ObH+pILeN1AbYscCDuYwgZEPZukL+RsGhrtdT4HA1Gjb/y1bVbE90JNtMIcgRi5z/Fg==} + /@semantic-release/npm@11.0.2(semantic-release@22.0.10): + resolution: {integrity: sha512-owtf3RjyPvRE63iUKZ5/xO4uqjRpVQDUB9+nnXj0xwfIeM9pRl+cG+zGDzdftR4m3f2s4Wyf3SexW+kF5DFtWA==} engines: {node: ^18.17 || >=20} peerDependencies: semantic-release: '>=20.1.0' @@ -2517,12 +2556,12 @@ packages: rc: 1.2.8 read-pkg: 9.0.0 registry-auth-token: 5.0.2 - semantic-release: 22.0.8 + semantic-release: 22.0.10 semver: 7.5.4 tempy: 3.1.0 dev: true - /@semantic-release/release-notes-generator@12.0.0(semantic-release@22.0.8): + /@semantic-release/release-notes-generator@12.0.0(semantic-release@22.0.10): resolution: {integrity: sha512-m7Ds8ComP1KJgA2Lke2xMwE1TOOU40U7AzP4lT8hJ2tUAeicziPz/1GeDFmRkTOkMFlfHvE6kuvMkvU+mIzIDQ==} engines: {node: ^18.17 || >=20.6.1} peerDependencies: @@ -2538,7 +2577,7 @@ packages: into-stream: 7.0.0 lodash-es: 4.17.21 read-pkg-up: 10.0.0 - semantic-release: 22.0.8 + semantic-release: 22.0.10 transitivePeerDependencies: - supports-color dev: true @@ -2578,8 +2617,8 @@ packages: '@types/ms': 0.7.31 dev: true - /@types/eslint@8.44.7: - resolution: {integrity: sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==} + /@types/eslint@8.44.8: + resolution: {integrity: sha512-4K8GavROwhrYl2QXDXm0Rv9epkA8GBFu0EI+XrrnnuCl7u8CWBRusX7fXJfanhZTDWSAL24gDI/UqXyUM0Injw==} dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 @@ -2621,8 +2660,8 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node@20.9.4: - resolution: {integrity: sha512-wmyg8HUhcn6ACjsn8oKYjkN/zUzQeNtMy44weTJSM6p4MMzEOuKbA3OjJ267uPCOW7Xex9dyrNTful8XTQYoDA==} + /@types/node@20.10.4: + resolution: {integrity: sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==} dependencies: undici-types: 5.26.5 dev: true @@ -2642,10 +2681,10 @@ packages: /@types/ws@8.5.5: resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} dependencies: - '@types/node': 20.9.4 + '@types/node': 20.10.4 dev: true - /@typescript-eslint/eslint-plugin@6.7.5(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2): + /@typescript-eslint/eslint-plugin@6.7.5(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3): resolution: {integrity: sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2657,38 +2696,38 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': 6.7.5 - '@typescript-eslint/type-utils': 6.7.5(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/utils': 6.7.5(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/type-utils': 6.7.5(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.7.5(eslint@8.55.0)(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.7.5 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.54.0 + eslint: 8.55.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.3.2) - typescript: 5.3.2 + ts-api-utils: 1.0.1(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/experimental-utils@5.62.0(eslint@8.54.0)(typescript@5.3.2): + /@typescript-eslint/experimental-utils@5.62.0(eslint@8.55.0)(typescript@5.3.3): resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.54.0)(typescript@5.3.2) - eslint: 8.54.0 + '@typescript-eslint/utils': 5.62.0(eslint@8.55.0)(typescript@5.3.3) + eslint: 8.55.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/parser@6.12.0(eslint@8.54.0)(typescript@5.3.2): - resolution: {integrity: sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==} + /@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3): + resolution: {integrity: sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2697,13 +2736,13 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.12.0 - '@typescript-eslint/types': 6.12.0 - '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2) - '@typescript-eslint/visitor-keys': 6.12.0 + '@typescript-eslint/scope-manager': 6.13.2 + '@typescript-eslint/types': 6.13.2 + '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.13.2 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.54.0 - typescript: 5.3.2 + eslint: 8.55.0 + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true @@ -2716,12 +2755,12 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@6.12.0: - resolution: {integrity: sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==} + /@typescript-eslint/scope-manager@6.13.2: + resolution: {integrity: sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.12.0 - '@typescript-eslint/visitor-keys': 6.12.0 + '@typescript-eslint/types': 6.13.2 + '@typescript-eslint/visitor-keys': 6.13.2 dev: true /@typescript-eslint/scope-manager@6.7.5: @@ -2732,7 +2771,7 @@ packages: '@typescript-eslint/visitor-keys': 6.7.5 dev: true - /@typescript-eslint/type-utils@6.7.5(eslint@8.54.0)(typescript@5.3.2): + /@typescript-eslint/type-utils@6.7.5(eslint@8.55.0)(typescript@5.3.3): resolution: {integrity: sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2742,12 +2781,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.3.2) - '@typescript-eslint/utils': 6.7.5(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.3.3) + '@typescript-eslint/utils': 6.7.5(eslint@8.55.0)(typescript@5.3.3) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.54.0 - ts-api-utils: 1.0.1(typescript@5.3.2) - typescript: 5.3.2 + eslint: 8.55.0 + ts-api-utils: 1.0.1(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true @@ -2757,8 +2796,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@6.12.0: - resolution: {integrity: sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==} + /@typescript-eslint/types@6.13.2: + resolution: {integrity: sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -2767,7 +2806,7 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.2): + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2782,14 +2821,14 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - tsutils: 3.21.0(typescript@5.3.2) - typescript: 5.3.2 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.12.0(typescript@5.3.2): - resolution: {integrity: sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==} + /@typescript-eslint/typescript-estree@6.13.2(typescript@5.3.3): + resolution: {integrity: sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2797,19 +2836,19 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.12.0 - '@typescript-eslint/visitor-keys': 6.12.0 + '@typescript-eslint/types': 6.13.2 + '@typescript-eslint/visitor-keys': 6.13.2 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.3.2) - typescript: 5.3.2 + ts-api-utils: 1.0.1(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.7.5(typescript@5.3.2): + /@typescript-eslint/typescript-estree@6.7.5(typescript@5.3.3): resolution: {integrity: sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2824,25 +2863,25 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.3.2) - typescript: 5.3.2 + ts-api-utils: 1.0.1(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.3.2): + /@typescript-eslint/utils@5.62.0(eslint@8.55.0)(typescript@5.3.3): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.2) - eslint: 8.54.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) + eslint: 8.55.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -2850,19 +2889,19 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.7.5(eslint@8.54.0)(typescript@5.3.2): + /@typescript-eslint/utils@6.7.5(eslint@8.55.0)(typescript@5.3.3): resolution: {integrity: sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 6.7.5 '@typescript-eslint/types': 6.7.5 - '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.3.2) - eslint: 8.54.0 + '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.3.3) + eslint: 8.55.0 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -2877,11 +2916,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.12.0: - resolution: {integrity: sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==} + /@typescript-eslint/visitor-keys@6.13.2: + resolution: {integrity: sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/types': 6.13.2 eslint-visitor-keys: 3.4.3 dev: true @@ -3089,13 +3128,6 @@ packages: engines: {node: '>=6'} dev: true - /ansi-escapes@5.0.0: - resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} - engines: {node: '>=12'} - dependencies: - type-fest: 1.4.0 - dev: true - /ansi-escapes@6.2.0: resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} engines: {node: '>=14.16'} @@ -3408,38 +3440,38 @@ packages: - supports-color dev: true - /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.3): + /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.5): resolution: {integrity: sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/compat-data': 7.23.3 - '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.5 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.5) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.8.5(@babel/core@7.23.3): + /babel-plugin-polyfill-corejs3@0.8.5(@babel/core@7.23.5): resolution: {integrity: sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.5) core-js-compat: 3.33.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.3): + /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.5): resolution: {integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.5) transitivePeerDependencies: - supports-color dev: true @@ -3823,12 +3855,12 @@ packages: '@colors/colors': 1.5.0 dev: true - /cli-truncate@3.1.0: - resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} dependencies: slice-ansi: 5.0.0 - string-width: 5.1.2 + string-width: 7.0.0 dev: true /cliui@6.0.0: @@ -4412,6 +4444,10 @@ packages: resolution: {integrity: sha512-LfcsAzGj18xBYFM5WetwNQdqA03iLDozfCo0SWpu5G9zA5H1G/2GOiHOVnQdOrqaZ8vI8IiSgS3JMUrq930zsw==} dev: true + /emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + dev: true + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true @@ -4659,59 +4695,59 @@ packages: lodash.zip: 4.2.0 dev: true - /eslint-compat-utils@0.1.2(eslint@8.54.0): + /eslint-compat-utils@0.1.2(eslint@8.55.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 8.54.0 + eslint: 8.55.0 dev: true - /eslint-config-canonical@42.8.0(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.7)(@types/node@20.9.4)(eslint@8.54.0)(graphql@16.7.1)(typescript@5.3.2)(vitest@0.34.1): + /eslint-config-canonical@42.8.0(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.8)(@types/node@20.10.4)(eslint@8.55.0)(graphql@16.7.1)(typescript@5.3.3)(vitest@0.34.1): resolution: {integrity: sha512-Jurs2GnTq9ISNwSt+ryYPy35smrfFQXGSTi9dLJvGqDP3bAI27U9TkUNozCwPNb0hxy8gsvwy2tA4IO8TV1Kcg==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 dependencies: - '@babel/core': 7.23.3 - '@babel/eslint-parser': 7.23.3(@babel/core@7.23.3)(eslint@8.54.0) - '@babel/eslint-plugin': 7.22.10(@babel/eslint-parser@7.23.3)(eslint@8.54.0) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.3) - '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.3)(@types/node@20.9.4)(graphql@16.7.1) + '@babel/core': 7.23.5 + '@babel/eslint-parser': 7.23.3(@babel/core@7.23.5)(eslint@8.55.0) + '@babel/eslint-plugin': 7.22.10(@babel/eslint-parser@7.23.3)(eslint@8.55.0) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.5) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.5)(@types/node@20.10.4)(graphql@16.7.1) '@next/eslint-plugin-next': 13.5.6 '@rushstack/eslint-patch': 1.5.1 - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.3.2) - eslint: 8.54.0 - eslint-config-prettier: 9.0.0(eslint@8.54.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.12.0)(eslint-plugin-i@2.29.0)(eslint@8.54.0) - eslint-plugin-ava: 14.0.0(eslint@8.54.0) - eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@6.12.0)(eslint-plugin-i@2.29.0)(eslint@8.54.0)(typescript@5.3.2) - eslint-plugin-cypress: 2.15.1(eslint@8.54.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.54.0) - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.54.0) - eslint-plugin-fp: 2.3.0(eslint@8.54.0) - eslint-plugin-import: /eslint-plugin-i@2.29.0(@typescript-eslint/parser@6.12.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0) - eslint-plugin-jest: 27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.54.0)(typescript@5.3.2) - eslint-plugin-jsdoc: 46.8.2(eslint@8.54.0) - eslint-plugin-jsonc: 2.10.0(eslint@8.54.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@8.54.0) - eslint-plugin-lodash: 7.4.0(eslint@8.54.0) - eslint-plugin-mocha: 10.2.0(eslint@8.54.0) + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) + eslint: 8.55.0 + eslint-config-prettier: 9.0.0(eslint@8.55.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.13.2)(eslint-plugin-i@2.29.0)(eslint@8.55.0) + eslint-plugin-ava: 14.0.0(eslint@8.55.0) + eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@6.13.2)(eslint-plugin-i@2.29.0)(eslint@8.55.0)(typescript@5.3.3) + eslint-plugin-cypress: 2.15.1(eslint@8.55.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.55.0) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.55.0) + eslint-plugin-fp: 2.3.0(eslint@8.55.0) + eslint-plugin-import: /eslint-plugin-i@2.29.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-typescript@3.6.1)(eslint@8.55.0) + eslint-plugin-jest: 27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.55.0)(typescript@5.3.3) + eslint-plugin-jsdoc: 46.8.2(eslint@8.55.0) + eslint-plugin-jsonc: 2.10.0(eslint@8.55.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.55.0) + eslint-plugin-lodash: 7.4.0(eslint@8.55.0) + eslint-plugin-mocha: 10.2.0(eslint@8.55.0) eslint-plugin-modules-newline: 0.0.6 - eslint-plugin-n: 16.3.1(eslint@8.54.0) - eslint-plugin-prettier: 5.0.1(@types/eslint@8.44.7)(eslint-config-prettier@9.0.0)(eslint@8.54.0)(prettier@3.0.3) - eslint-plugin-promise: 6.1.1(eslint@8.54.0) - eslint-plugin-react: 7.33.2(eslint@8.54.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.54.0) - eslint-plugin-regexp: 1.15.0(eslint@8.54.0) - eslint-plugin-simple-import-sort: 10.0.0(eslint@8.54.0) - eslint-plugin-typescript-sort-keys: 3.0.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) - eslint-plugin-unicorn: 48.0.1(eslint@8.54.0) - eslint-plugin-vitest: 0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.54.0)(typescript@5.3.2)(vitest@0.34.1) - eslint-plugin-yml: 1.10.0(eslint@8.54.0) - eslint-plugin-zod: 1.4.0(eslint@8.54.0) + eslint-plugin-n: 16.3.1(eslint@8.55.0) + eslint-plugin-prettier: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.0.0)(eslint@8.55.0)(prettier@3.0.3) + eslint-plugin-promise: 6.1.1(eslint@8.55.0) + eslint-plugin-react: 7.33.2(eslint@8.55.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.55.0) + eslint-plugin-regexp: 1.15.0(eslint@8.55.0) + eslint-plugin-simple-import-sort: 10.0.0(eslint@8.55.0) + eslint-plugin-typescript-sort-keys: 3.0.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3) + eslint-plugin-unicorn: 48.0.1(eslint@8.55.0) + eslint-plugin-vitest: 0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.55.0)(typescript@5.3.3)(vitest@0.34.1) + eslint-plugin-yml: 1.10.0(eslint@8.55.0) + eslint-plugin-zod: 1.4.0(eslint@8.55.0) prettier: 3.0.3 ramda: 0.29.1 yaml-eslint-parser: 1.2.2 @@ -4733,13 +4769,13 @@ packages: - vitest dev: true - /eslint-config-prettier@9.0.0(eslint@8.54.0): + /eslint-config-prettier@9.0.0(eslint@8.55.0): resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.54.0 + eslint: 8.55.0 dev: true /eslint-import-resolver-node@0.3.9: @@ -4752,7 +4788,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.12.0)(eslint-plugin-i@2.29.0)(eslint@8.54.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.13.2)(eslint-plugin-i@2.29.0)(eslint@8.55.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4761,9 +4797,9 @@ packages: dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 - eslint: 8.54.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.12.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0) - eslint-plugin-import: /eslint-plugin-i@2.29.0(@typescript-eslint/parser@6.12.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0) + eslint: 8.55.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.55.0) + eslint-plugin-import: /eslint-plugin-i@2.29.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-typescript@3.6.1)(eslint@8.55.0) fast-glob: 3.3.2 get-tsconfig: 4.6.2 is-core-module: 2.13.0 @@ -4775,7 +4811,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.12.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.55.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4796,24 +4832,24 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) debug: 3.2.7 - eslint: 8.54.0 + eslint: 8.55.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.12.0)(eslint-plugin-i@2.29.0)(eslint@8.54.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.13.2)(eslint-plugin-i@2.29.0)(eslint@8.55.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-ava@14.0.0(eslint@8.54.0): + /eslint-plugin-ava@14.0.0(eslint@8.55.0): resolution: {integrity: sha512-XmKT6hppaipwwnLVwwvQliSU6AF1QMHiNoLD5JQfzhUhf0jY7CO0O624fQrE+Y/fTb9vbW8r77nKf7M/oHulxw==} engines: {node: '>=14.17 <15 || >=16.4'} peerDependencies: eslint: '>=8.26.0' dependencies: enhance-visitors: 1.0.0 - eslint: 8.54.0 - eslint-utils: 3.0.0(eslint@8.54.0) + eslint: 8.55.0 + eslint-utils: 3.0.0(eslint@8.55.0) espree: 9.6.1 espurify: 2.1.1 import-modules: 2.1.0 @@ -4822,15 +4858,15 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@6.12.0)(eslint-plugin-i@2.29.0)(eslint@8.54.0)(typescript@5.3.2): + /eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@6.13.2)(eslint-plugin-i@2.29.0)(eslint@8.55.0)(typescript@5.3.3): resolution: {integrity: sha512-0Egc0FKOnCRdu3bFEJhfHkdkusIgW0UxdemukkowZQnQsnf12FHSJ7K26b+tZ5pKB7cTyECSaqvEpoIJfplX4g==} engines: {node: '>=16.0.0'} dependencies: - '@typescript-eslint/utils': 6.7.5(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/utils': 6.7.5(eslint@8.55.0)(typescript@5.3.3) chance: 1.1.11 debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.12.0)(eslint-plugin-i@2.29.0)(eslint@8.54.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.12.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.13.2)(eslint-plugin-i@2.29.0)(eslint@8.55.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.55.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -4839,7 +4875,7 @@ packages: natural-compare: 1.4.0 recast: 0.23.3 roarr: 7.15.1 - ts-unused-exports: 9.0.5(typescript@5.3.2) + ts-unused-exports: 9.0.5(typescript@5.3.3) xregexp: 5.1.1 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -4851,39 +4887,39 @@ packages: - typescript dev: true - /eslint-plugin-cypress@2.15.1(eslint@8.54.0): + /eslint-plugin-cypress@2.15.1(eslint@8.55.0): resolution: {integrity: sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 8.54.0 + eslint: 8.55.0 globals: 13.20.0 dev: true - /eslint-plugin-es-x@7.4.0(eslint@8.54.0): + /eslint-plugin-es-x@7.4.0(eslint@8.55.0): resolution: {integrity: sha512-WJa3RhYzBtl8I37ebY9p76s61UhZyi4KaFOnX2A5r32RPazkXj5yoT6PGnD02dhwzEUj0KwsUdqfKDd/OuvGsw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) '@eslint-community/regexpp': 4.6.2 - eslint: 8.54.0 - eslint-compat-utils: 0.1.2(eslint@8.54.0) + eslint: 8.55.0 + eslint-compat-utils: 0.1.2(eslint@8.55.0) dev: true - /eslint-plugin-eslint-comments@3.2.0(eslint@8.54.0): + /eslint-plugin-eslint-comments@3.2.0(eslint@8.55.0): resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' dependencies: escape-string-regexp: 1.0.5 - eslint: 8.54.0 + eslint: 8.55.0 ignore: 5.2.4 dev: true - /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.54.0): + /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.55.0): resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -4891,27 +4927,27 @@ packages: '@babel/plugin-transform-react-jsx': ^7.14.9 eslint: ^8.1.0 dependencies: - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.23.3) - eslint: 8.54.0 + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.23.5) + eslint: 8.55.0 lodash: 4.17.21 string-natural-compare: 3.0.1 dev: true - /eslint-plugin-fp@2.3.0(eslint@8.54.0): + /eslint-plugin-fp@2.3.0(eslint@8.55.0): resolution: {integrity: sha512-3n2oHibwoIxAht9/+ZaTldhI6brXORgl8oNXqZd+d9xuAQt2SBJ2/aml0oQRMWvXrgsz2WG6wfC++NjzSG3prA==} engines: {node: '>=4.0.0'} peerDependencies: eslint: '>=3' dependencies: create-eslint-index: 1.0.0 - eslint: 8.54.0 + eslint: 8.55.0 eslint-ast-utils: 1.1.0 lodash: 4.17.21 req-all: 0.1.0 dev: true - /eslint-plugin-i@2.29.0(@typescript-eslint/parser@6.12.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0): + /eslint-plugin-i@2.29.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-typescript@3.6.1)(eslint@8.55.0): resolution: {integrity: sha512-slGeTS3GQzx9267wLJnNYNO8X9EHGsc75AKIAFvnvMYEcTJKotPKL1Ru5PIGVHIVet+2DsugePWp8Oxpx8G22w==} engines: {node: '>=12'} peerDependencies: @@ -4919,13 +4955,13 @@ packages: dependencies: debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.54.0 + eslint: 8.55.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.12.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0) - get-tsconfig: 4.6.2 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.55.0) + get-tsconfig: 4.7.2 is-glob: 4.0.3 minimatch: 3.1.2 - resolve: 1.22.3 + resolve: 1.22.8 semver: 7.5.4 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -4934,7 +4970,7 @@ packages: - supports-color dev: true - /eslint-plugin-jest@27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.54.0)(typescript@5.3.2): + /eslint-plugin-jest@27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.55.0)(typescript@5.3.3): resolution: {integrity: sha512-3Nfvv3wbq2+PZlRTf2oaAWXWwbdBejFRBR2O8tAO67o+P8zno+QGbcDYaAXODlreXVg+9gvWhKKmG2rgfb8GEg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -4947,15 +4983,15 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.54.0)(typescript@5.3.2) - eslint: 8.54.0 + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.55.0)(typescript@5.3.3) + eslint: 8.55.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsdoc@46.8.2(eslint@8.54.0): + /eslint-plugin-jsdoc@46.8.2(eslint@8.55.0): resolution: {integrity: sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ==} engines: {node: '>=16'} peerDependencies: @@ -4966,7 +5002,7 @@ packages: comment-parser: 1.4.0 debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 8.54.0 + eslint: 8.55.0 esquery: 1.5.0 is-builtin-module: 3.2.1 semver: 7.5.4 @@ -4975,20 +5011,20 @@ packages: - supports-color dev: true - /eslint-plugin-jsonc@2.10.0(eslint@8.54.0): + /eslint-plugin-jsonc@2.10.0(eslint@8.55.0): resolution: {integrity: sha512-9d//o6Jyh4s1RxC9fNSt1+MMaFN2ruFdXPG9XZcb/mR2KkfjADYiNL/hbU6W0Cyxfg3tS/XSFuhl5LgtMD8hmw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) - eslint: 8.54.0 - eslint-compat-utils: 0.1.2(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + eslint: 8.55.0 + eslint-compat-utils: 0.1.2(eslint@8.55.0) jsonc-eslint-parser: 2.3.0 natural-compare: 1.4.0 dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.54.0): + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.55.0): resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} peerDependencies: @@ -5003,7 +5039,7 @@ packages: axobject-query: 3.2.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.54.0 + eslint: 8.55.0 has: 1.0.3 jsx-ast-utils: 3.3.5 language-tags: 1.0.5 @@ -5013,24 +5049,24 @@ packages: semver: 6.3.1 dev: true - /eslint-plugin-lodash@7.4.0(eslint@8.54.0): + /eslint-plugin-lodash@7.4.0(eslint@8.55.0): resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} engines: {node: '>=10'} peerDependencies: eslint: '>=2' dependencies: - eslint: 8.54.0 + eslint: 8.55.0 lodash: 4.17.21 dev: true - /eslint-plugin-mocha@10.2.0(eslint@8.54.0): + /eslint-plugin-mocha@10.2.0(eslint@8.55.0): resolution: {integrity: sha512-ZhdxzSZnd1P9LqDPF0DBcFLpRIGdh1zkF2JHnQklKQOvrQtT73kdP5K9V2mzvbLR+cCAO9OI48NXK/Ax9/ciCQ==} engines: {node: '>=14.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.54.0 - eslint-utils: 3.0.0(eslint@8.54.0) + eslint: 8.55.0 + eslint-utils: 3.0.0(eslint@8.55.0) rambda: 7.5.0 dev: true @@ -5041,16 +5077,16 @@ packages: requireindex: 1.1.0 dev: true - /eslint-plugin-n@16.3.1(eslint@8.54.0): + /eslint-plugin-n@16.3.1(eslint@8.55.0): resolution: {integrity: sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) builtins: 5.0.1 - eslint: 8.54.0 - eslint-plugin-es-x: 7.4.0(eslint@8.54.0) + eslint: 8.55.0 + eslint-plugin-es-x: 7.4.0(eslint@8.55.0) get-tsconfig: 4.7.2 ignore: 5.2.4 is-builtin-module: 3.2.1 @@ -5060,7 +5096,7 @@ packages: semver: 7.5.4 dev: true - /eslint-plugin-prettier@5.0.1(@types/eslint@8.44.7)(eslint-config-prettier@9.0.0)(eslint@8.54.0)(prettier@3.0.3): + /eslint-plugin-prettier@5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.0.0)(eslint@8.55.0)(prettier@3.0.3): resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -5074,33 +5110,33 @@ packages: eslint-config-prettier: optional: true dependencies: - '@types/eslint': 8.44.7 - eslint: 8.54.0 - eslint-config-prettier: 9.0.0(eslint@8.54.0) + '@types/eslint': 8.44.8 + eslint: 8.55.0 + eslint-config-prettier: 9.0.0(eslint@8.55.0) prettier: 3.0.3 prettier-linter-helpers: 1.0.0 synckit: 0.8.5 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.54.0): + /eslint-plugin-promise@6.1.1(eslint@8.55.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.54.0 + eslint: 8.55.0 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.54.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.55.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.54.0 + eslint: 8.55.0 dev: true - /eslint-plugin-react@7.33.2(eslint@8.54.0): + /eslint-plugin-react@7.33.2(eslint@8.55.0): resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} engines: {node: '>=4'} peerDependencies: @@ -5111,7 +5147,7 @@ packages: array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 es-iterator-helpers: 1.0.15 - eslint: 8.54.0 + eslint: 8.55.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 @@ -5125,16 +5161,16 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-regexp@1.15.0(eslint@8.54.0): + /eslint-plugin-regexp@1.15.0(eslint@8.55.0): resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} engines: {node: ^12 || >=14} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) '@eslint-community/regexpp': 4.6.2 comment-parser: 1.4.1 - eslint: 8.54.0 + eslint: 8.55.0 grapheme-splitter: 1.0.4 jsdoctypeparser: 9.0.0 refa: 0.11.0 @@ -5142,15 +5178,15 @@ packages: scslre: 0.2.0 dev: true - /eslint-plugin-simple-import-sort@10.0.0(eslint@8.54.0): + /eslint-plugin-simple-import-sort@10.0.0(eslint@8.55.0): resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 8.54.0 + eslint: 8.55.0 dev: true - /eslint-plugin-typescript-sort-keys@3.0.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2): + /eslint-plugin-typescript-sort-keys@3.0.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3): resolution: {integrity: sha512-bMmI4prYlf3l/1O8j8Nsz11m+XfKEHRFk9aJqP91L4Hgy7I38lnitnYElDmPQaznE1oFlGgBcnkEizNT2NLylQ==} engines: {node: '>= 16'} peerDependencies: @@ -5158,27 +5194,27 @@ packages: eslint: ^7 || ^8 typescript: ^3 || ^4 || ^5 dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.3.2) - eslint: 8.54.0 + '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) + eslint: 8.55.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 - typescript: 5.3.2 + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-unicorn@48.0.1(eslint@8.54.0): + /eslint-plugin-unicorn@48.0.1(eslint@8.55.0): resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} engines: {node: '>=16'} peerDependencies: eslint: '>=8.44.0' dependencies: '@babel/helper-validator-identifier': 7.22.20 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) ci-info: 3.8.0 clean-regexp: 1.0.0 - eslint: 8.54.0 + eslint: 8.55.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -5192,7 +5228,7 @@ packages: strip-indent: 3.0.0 dev: true - /eslint-plugin-vitest@0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.54.0)(typescript@5.3.2)(vitest@0.34.1): + /eslint-plugin-vitest@0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.55.0)(typescript@5.3.3)(vitest@0.34.1): resolution: {integrity: sha512-A1P0qJVkqHyfDolwm09h8/gu7SbGFOKbacJSeyZ9IRb8uyddgqLcqv4VrqgQfLA7QmGI9lwj1iV90NyZ1cHp8Q==} engines: {node: 14.x || >= 16} peerDependencies: @@ -5203,24 +5239,24 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/utils': 6.7.5(eslint@8.54.0)(typescript@5.3.2) - eslint: 8.54.0 + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.7.5(eslint@8.55.0)(typescript@5.3.3) + eslint: 8.55.0 vitest: 0.34.1 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-yml@1.10.0(eslint@8.54.0): + /eslint-plugin-yml@1.10.0(eslint@8.55.0): resolution: {integrity: sha512-53SUwuNDna97lVk38hL/5++WXDuugPM9SUQ1T645R0EHMRCdBIIxGye/oOX2qO3FQ7aImxaUZJU/ju+NMUBrLQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4(supports-color@8.1.1) - eslint: 8.54.0 - eslint-compat-utils: 0.1.2(eslint@8.54.0) + eslint: 8.55.0 + eslint-compat-utils: 0.1.2(eslint@8.55.0) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.2 @@ -5228,13 +5264,13 @@ packages: - supports-color dev: true - /eslint-plugin-zod@1.4.0(eslint@8.54.0): + /eslint-plugin-zod@1.4.0(eslint@8.55.0): resolution: {integrity: sha512-i9WzQGw2X5fQcuQh33mA8DQjZJM/yuyZvs1Fc5EyTidX7Ed/g832+1FEQ4u5gtXy+jZ+DVsB5+oMHj4tIOfeZg==} engines: {node: '>=12'} peerDependencies: eslint: '>=8.1.0' dependencies: - eslint: 8.54.0 + eslint: 8.55.0 dev: true /eslint-rule-composer@0.3.0: @@ -5258,13 +5294,13 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils@3.0.0(eslint@8.54.0): + /eslint-utils@3.0.0(eslint@8.55.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.54.0 + eslint: 8.55.0 eslint-visitor-keys: 2.1.0 dev: true @@ -5283,15 +5319,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.54.0: - resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==} + /eslint@8.55.0: + resolution: {integrity: sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) '@eslint-community/regexpp': 4.6.2 - '@eslint/eslintrc': 2.1.3 - '@eslint/js': 8.54.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.55.0 '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -5841,6 +5877,11 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: true + /get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + dev: true + /get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} dev: true @@ -6091,7 +6132,7 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql-config@4.5.0(@types/node@20.9.4)(graphql@16.7.1): + /graphql-config@4.5.0(@types/node@20.10.4)(graphql@16.7.1): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -6105,7 +6146,7 @@ packages: '@graphql-tools/json-file-loader': 7.4.18(graphql@16.7.1) '@graphql-tools/load': 7.8.14(graphql@16.7.1) '@graphql-tools/merge': 8.4.2(graphql@16.7.1) - '@graphql-tools/url-loader': 7.17.18(@types/node@20.9.4)(graphql@16.7.1) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.10.4)(graphql@16.7.1) '@graphql-tools/utils': 9.2.1(graphql@16.7.1) cosmiconfig: 8.0.0 graphql: 16.7.1 @@ -6692,6 +6733,13 @@ packages: engines: {node: '>=12'} dev: true + /is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + dependencies: + get-east-asian-width: 1.2.0 + dev: true + /is-generator-function@1.0.10: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} engines: {node: '>= 0.4'} @@ -6976,7 +7024,7 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.1 @@ -6988,7 +7036,7 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/parser': 7.22.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 @@ -7285,9 +7333,9 @@ packages: type-check: 0.4.0 dev: true - /lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} + /lilconfig@3.0.0: + resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + engines: {node: '>=14'} dev: true /line-column-path@2.0.0: @@ -7306,8 +7354,8 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /lint-staged@15.1.0: - resolution: {integrity: sha512-ZPKXWHVlL7uwVpy8OZ7YQjYDAuO5X4kMh0XgZvPNxLcCCngd0PO5jKQyy3+s4TL2EnHoIXIzP1422f/l3nZKMw==} + /lint-staged@15.2.0: + resolution: {integrity: sha512-TFZzUEV00f+2YLaVPWBWGAMq7So6yQx+GG8YRMDeOEIf95Zn5RyiLMsEiX4KTNl9vq/w+NqRJkLA1kPIo15ufQ==} engines: {node: '>=18.12.0'} hasBin: true dependencies: @@ -7315,8 +7363,8 @@ packages: commander: 11.1.0 debug: 4.3.4(supports-color@8.1.1) execa: 8.0.1 - lilconfig: 2.1.0 - listr2: 7.0.2 + lilconfig: 3.0.0 + listr2: 8.0.0 micromatch: 4.0.5 pidtree: 0.6.0 string-argv: 0.3.2 @@ -7325,16 +7373,16 @@ packages: - supports-color dev: true - /listr2@7.0.2: - resolution: {integrity: sha512-rJysbR9GKIalhTbVL2tYbF2hVyDnrf7pFUZBwjPaMIdadYHmeT+EVi/Bu3qd7ETQPahTotg2WRCatXwRBW554g==} - engines: {node: '>=16.0.0'} + /listr2@8.0.0: + resolution: {integrity: sha512-u8cusxAcyqAiQ2RhYvV7kRKNLgUvtObIbhOX2NCXqvp1UU32xIg5CT22ykS2TPKJXZWJwtK3IKLiqAGlGNE+Zg==} + engines: {node: '>=18.0.0'} dependencies: - cli-truncate: 3.1.0 + cli-truncate: 4.0.0 colorette: 2.0.20 eventemitter3: 5.0.1 - log-update: 5.0.1 + log-update: 6.0.0 rfdc: 1.3.0 - wrap-ansi: 8.1.0 + wrap-ansi: 9.0.0 dev: true /load-json-file@4.0.0: @@ -7453,15 +7501,15 @@ packages: is-unicode-supported: 0.1.0 dev: true - /log-update@5.0.1: - resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /log-update@6.0.0: + resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} + engines: {node: '>=18'} dependencies: - ansi-escapes: 5.0.0 + ansi-escapes: 6.2.0 cli-cursor: 4.0.0 - slice-ansi: 5.0.0 + slice-ansi: 7.1.0 strip-ansi: 7.1.0 - wrap-ansi: 8.1.0 + wrap-ansi: 9.0.0 dev: true /loose-envify@1.4.0: @@ -7621,7 +7669,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.3.0(@types/node@20.9.4): + /meros@1.3.0(@types/node@20.10.4): resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} engines: {node: '>=13'} peerDependencies: @@ -7630,7 +7678,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.9.4 + '@types/node': 20.10.4 dev: true /micro-spelling-correcter@1.1.1: @@ -7678,9 +7726,9 @@ packages: mime-db: 1.52.0 dev: true - /mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} + /mime@4.0.0: + resolution: {integrity: sha512-pzhgdeqU5pJ9t5WK9m4RT4GgGWqYJylxUf62Yb9datXRwdcw5MjiD1BYI5evF8AgTXN9gtKX3CFLvCUL5fAhEA==} + engines: {node: '>=16'} hasBin: true dev: true @@ -7991,7 +8039,7 @@ packages: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.3 + resolve: 1.22.8 semver: 5.7.2 validate-npm-package-license: 3.0.4 dev: true @@ -9356,16 +9404,16 @@ packages: regexp-ast-analysis: 0.6.0 dev: true - /semantic-release@22.0.8: - resolution: {integrity: sha512-55rb31jygqIYsGU/rY+gXXm2fnxBIWo9azOjxbqKsPnq7p70zwZ5v+xnD7TxJC+zvS3sy1eHLGXYWCaX3WI76A==} + /semantic-release@22.0.10: + resolution: {integrity: sha512-4ahPaOX+0UYpYlosjc/tfCzB/cqlnjN0/xSKGryEC4bOpuYSkoK+QHw7xDPmAuiMNBBvkFD+m3aVMENUr++CIg==} engines: {node: ^18.17 || >=20.6.1} hasBin: true dependencies: - '@semantic-release/commit-analyzer': 11.1.0(semantic-release@22.0.8) + '@semantic-release/commit-analyzer': 11.1.0(semantic-release@22.0.10) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 9.2.3(semantic-release@22.0.8) - '@semantic-release/npm': 11.0.1(semantic-release@22.0.8) - '@semantic-release/release-notes-generator': 12.0.0(semantic-release@22.0.8) + '@semantic-release/github': 9.2.5(semantic-release@22.0.10) + '@semantic-release/npm': 11.0.2(semantic-release@22.0.10) + '@semantic-release/release-notes-generator': 12.0.0(semantic-release@22.0.10) aggregate-error: 5.0.0 cosmiconfig: 8.2.0 debug: 4.3.4(supports-color@8.1.1) @@ -9551,6 +9599,14 @@ packages: is-fullwidth-code-point: 4.0.0 dev: true + /slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 + dev: true + /smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} @@ -9808,6 +9864,15 @@ packages: strip-ansi: 7.1.0 dev: true + /string-width@7.0.0: + resolution: {integrity: sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==} + engines: {node: '>=18'} + dependencies: + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + dev: true + /string.prototype.matchall@4.0.8: resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} dependencies: @@ -10104,16 +10169,16 @@ packages: resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==} dev: true - /ts-api-utils@1.0.1(typescript@5.3.2): + /ts-api-utils@1.0.1(typescript@5.3.3): resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.3.2 + typescript: 5.3.3 dev: true - /ts-unused-exports@9.0.5(typescript@5.3.2): + /ts-unused-exports@9.0.5(typescript@5.3.3): resolution: {integrity: sha512-1XAXaH2i4Al/aZO06pWDn9MUgTN0KQi+fvWudiWfHUTHAav45gzrx7Xq6JAsu6+LoMlVoyGvNvZSPW3KTjDncA==} hasBin: true peerDependencies: @@ -10121,7 +10186,7 @@ packages: dependencies: chalk: 4.1.2 tsconfig-paths: 3.14.2 - typescript: 5.3.2 + typescript: 5.3.3 dev: true /tsconfig-paths@3.14.2: @@ -10141,14 +10206,14 @@ packages: resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} dev: true - /tsutils@3.21.0(typescript@5.3.2): + /tsutils@3.21.0(typescript@5.3.3): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 5.3.2 + typescript: 5.3.3 dev: true /tunnel-agent@0.6.0: @@ -10264,8 +10329,8 @@ packages: is-typedarray: 1.0.0 dev: true - /typescript@5.3.2: - resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==} + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} hasBin: true dev: true @@ -10493,7 +10558,7 @@ packages: extsprintf: 1.3.0 dev: true - /vite-node@0.34.1(@types/node@20.9.4): + /vite-node@0.34.1(@types/node@20.10.4): resolution: {integrity: sha512-odAZAL9xFMuAg8aWd7nSPT+hU8u2r9gU3LRm9QKjxBEF2rRdWpMuqkrkjvyVQEdNFiBctqr2Gg4uJYizm5Le6w==} engines: {node: '>=v14.18.0'} hasBin: true @@ -10503,7 +10568,7 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.8(@types/node@20.9.4) + vite: 4.4.8(@types/node@20.10.4) transitivePeerDependencies: - '@types/node' - less @@ -10515,7 +10580,7 @@ packages: - terser dev: true - /vite@4.4.8(@types/node@20.9.4): + /vite@4.4.8(@types/node@20.10.4): resolution: {integrity: sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -10543,7 +10608,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.9.4 + '@types/node': 20.10.4 esbuild: 0.18.17 postcss: 8.4.31 rollup: 3.27.2 @@ -10584,7 +10649,7 @@ packages: dependencies: '@types/chai': 4.3.11 '@types/chai-subset': 1.3.3 - '@types/node': 20.9.4 + '@types/node': 20.10.4 '@vitest/expect': 0.34.1 '@vitest/runner': 0.34.1 '@vitest/snapshot': 0.34.1 @@ -10603,8 +10668,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.0 tinypool: 0.7.0 - vite: 4.4.8(@types/node@20.9.4) - vite-node: 0.34.1(@types/node@20.9.4) + vite: 4.4.8(@types/node@20.10.4) + vite-node: 0.34.1(@types/node@20.10.4) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -10770,6 +10835,15 @@ packages: strip-ansi: 7.1.0 dev: true + /wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + dependencies: + ansi-styles: 6.2.1 + string-width: 7.0.0 + strip-ansi: 7.1.0 + dev: true + /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true @@ -10838,12 +10912,7 @@ packages: dependencies: eslint-visitor-keys: 3.4.3 lodash: 4.17.21 - yaml: 2.3.3 - dev: true - - /yaml@2.3.3: - resolution: {integrity: sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==} - engines: {node: '>= 14'} + yaml: 2.3.4 dev: true /yaml@2.3.4: From b102693f98abbc7727d80c50c0500c6b59e9d5ae Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 13 Dec 2023 14:50:52 -0700 Subject: [PATCH 148/273] fix(`check-examples`): properly replace final extension; fixes #1172 --- src/rules/checkExamples.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rules/checkExamples.js b/src/rules/checkExamples.js index fdbb7d540..5d0f79875 100644 --- a/src/rules/checkExamples.js +++ b/src/rules/checkExamples.js @@ -350,7 +350,7 @@ export default iterateJsdoc(({ if (!filename) { const jsFileName = context.getFilename(); if (typeof jsFileName === 'string' && jsFileName.includes('.')) { - defaultFileName = jsFileName.replace(/\..*?$/u, `.${ext}`); + defaultFileName = jsFileName.replace(/\.[^.]*$/u, `.${ext}`); } else { defaultFileName = `dummy.${ext}`; } From 5c4ccb9752c70bde1ca3a800370d146c757b71c9 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 28 Dec 2023 14:45:24 -0700 Subject: [PATCH 149/273] chore: update devDeps. --- .ncurc.js | 1 + package.json | 18 +- pnpm-lock.yaml | 4064 ++++++++++++++++++------------------------------ 3 files changed, 1490 insertions(+), 2593 deletions(-) diff --git a/.ncurc.js b/.ncurc.js index 1dcb0edb0..fc63f4815 100644 --- a/.ncurc.js +++ b/.ncurc.js @@ -4,6 +4,7 @@ module.exports = { reject: [ // Todo: When package converted to ESM 'camelcase', + 'chai', 'decamelize', 'escape-string-regexp', 'open-editor', diff --git a/package.json b/package.json index c2c61a9a0..8612b687d 100644 --- a/package.json +++ b/package.json @@ -18,38 +18,38 @@ "description": "JSDoc linting rules for ESLint.", "devDependencies": { "@babel/cli": "^7.23.4", - "@babel/core": "^7.23.5", + "@babel/core": "^7.23.6", "@babel/eslint-parser": "^7.23.3", "@babel/node": "^7.22.19", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-transform-flow-strip-types": "^7.23.3", - "@babel/preset-env": "^7.23.5", + "@babel/preset-env": "^7.23.6", "@babel/register": "^7.22.15", "@es-joy/escodegen": "^3.5.1", - "@es-joy/jsdoc-eslint-parser": "^0.20.0", + "@es-joy/jsdoc-eslint-parser": "^0.21.0", "@hkdobrev/run-if-changed": "^0.3.1", "@semantic-release/commit-analyzer": "^11.1.0", - "@semantic-release/github": "^9.2.5", + "@semantic-release/github": "^9.2.6", "@semantic-release/npm": "^11.0.2", "@types/chai": "^4.3.11", "@types/debug": "^4.1.12", - "@types/eslint": "^8.44.8", + "@types/eslint": "^8.56.0", "@types/esquery": "^1.5.3", "@types/estree": "^1.0.5", "@types/json-schema": "^7.0.15", "@types/lodash.defaultsdeep": "^4.6.9", "@types/mocha": "^10.0.6", - "@types/node": "^20.10.4", + "@types/node": "^20.10.5", "@types/semver": "^7.5.6", "@types/spdx-expression-parse": "^3.0.5", - "@typescript-eslint/parser": "^6.13.2", + "@typescript-eslint/parser": "^6.16.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", "chai": "^4.3.10", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "8.55.0", + "eslint": "8.56.0", "eslint-config-canonical": "~42.8.0", "espree": "^9.6.1", "gitdown": "^3.1.5", @@ -63,7 +63,7 @@ "nyc": "^15.1.0", "open-editor": "^3.0.0", "rimraf": "^5.0.5", - "semantic-release": "^22.0.10", + "semantic-release": "^22.0.12", "typescript": "5.3.3" }, "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e4af702b6..bc32521eb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,46 +36,46 @@ dependencies: devDependencies: '@babel/cli': specifier: ^7.23.4 - version: 7.23.4(@babel/core@7.23.5) + version: 7.23.4(@babel/core@7.23.6) '@babel/core': - specifier: ^7.23.5 - version: 7.23.5 + specifier: ^7.23.6 + version: 7.23.6 '@babel/eslint-parser': specifier: ^7.23.3 - version: 7.23.3(@babel/core@7.23.5)(eslint@8.55.0) + version: 7.23.3(@babel/core@7.23.6)(eslint@8.56.0) '@babel/node': specifier: ^7.22.19 - version: 7.22.19(@babel/core@7.23.5) + version: 7.22.19(@babel/core@7.23.6) '@babel/plugin-syntax-class-properties': specifier: ^7.12.13 - version: 7.12.13(@babel/core@7.23.5) + version: 7.12.13(@babel/core@7.23.6) '@babel/plugin-transform-flow-strip-types': specifier: ^7.23.3 - version: 7.23.3(@babel/core@7.23.5) + version: 7.23.3(@babel/core@7.23.6) '@babel/preset-env': - specifier: ^7.23.5 - version: 7.23.5(@babel/core@7.23.5) + specifier: ^7.23.6 + version: 7.23.6(@babel/core@7.23.6) '@babel/register': specifier: ^7.22.15 - version: 7.22.15(@babel/core@7.23.5) + version: 7.22.15(@babel/core@7.23.6) '@es-joy/escodegen': specifier: ^3.5.1 version: 3.5.1 '@es-joy/jsdoc-eslint-parser': - specifier: ^0.20.0 - version: 0.20.0 + specifier: ^0.21.0 + version: 0.21.0 '@hkdobrev/run-if-changed': specifier: ^0.3.1 version: 0.3.1 '@semantic-release/commit-analyzer': specifier: ^11.1.0 - version: 11.1.0(semantic-release@22.0.10) + version: 11.1.0(semantic-release@22.0.12) '@semantic-release/github': - specifier: ^9.2.5 - version: 9.2.5(semantic-release@22.0.10) + specifier: ^9.2.6 + version: 9.2.6(semantic-release@22.0.12) '@semantic-release/npm': specifier: ^11.0.2 - version: 11.0.2(semantic-release@22.0.10) + version: 11.0.2(semantic-release@22.0.12) '@types/chai': specifier: ^4.3.11 version: 4.3.11 @@ -83,8 +83,8 @@ devDependencies: specifier: ^4.1.12 version: 4.1.12 '@types/eslint': - specifier: ^8.44.8 - version: 8.44.8 + specifier: ^8.56.0 + version: 8.56.0 '@types/esquery': specifier: ^1.5.3 version: 1.5.3 @@ -101,8 +101,8 @@ devDependencies: specifier: ^10.0.6 version: 10.0.6 '@types/node': - specifier: ^20.10.4 - version: 20.10.4 + specifier: ^20.10.5 + version: 20.10.5 '@types/semver': specifier: ^7.5.6 version: 7.5.6 @@ -110,8 +110,8 @@ devDependencies: specifier: ^3.0.5 version: 3.0.5 '@typescript-eslint/parser': - specifier: ^6.13.2 - version: 6.13.2(eslint@8.55.0)(typescript@5.3.3) + specifier: ^6.16.0 + version: 6.16.0(eslint@8.56.0)(typescript@5.3.3) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -131,11 +131,11 @@ devDependencies: specifier: ^5.0.1 version: 5.0.1 eslint: - specifier: 8.55.0 - version: 8.55.0 + specifier: 8.56.0 + version: 8.56.0 eslint-config-canonical: specifier: ~42.8.0 - version: 42.8.0(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.8)(@types/node@20.10.4)(eslint@8.55.0)(graphql@16.7.1)(typescript@5.3.3)(vitest@0.34.1) + version: 42.8.0(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.0)(@types/node@20.10.5)(eslint@8.56.0)(graphql@16.8.1)(typescript@5.3.3) espree: specifier: ^9.6.1 version: 9.6.1 @@ -173,8 +173,8 @@ devDependencies: specifier: ^5.0.5 version: 5.0.5 semantic-release: - specifier: ^22.0.10 - version: 22.0.10 + specifier: ^22.0.12 + version: 22.0.12(typescript@5.3.3) typescript: specifier: 5.3.3 version: 5.3.3 @@ -191,27 +191,27 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 + '@jridgewell/trace-mapping': 0.3.20 dev: true /@ardatan/sync-fetch@0.0.1: resolution: {integrity: sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==} engines: {node: '>=14'} dependencies: - node-fetch: 2.6.12 + node-fetch: 2.7.0 transitivePeerDependencies: - encoding dev: true - /@babel/cli@7.23.4(@babel/core@7.23.5): + /@babel/cli@7.23.4(@babel/core@7.23.6): resolution: {integrity: sha512-j3luA9xGKCXVyCa5R7lJvOMM+Kc2JEnAEIgz2ggtjQ/j5YUVgfsg/WsG95bbsgq7YLHuiCOzMnoSasuY16qiCw==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@jridgewell/trace-mapping': 0.3.18 + '@babel/core': 7.23.6 + '@jridgewell/trace-mapping': 0.3.20 commander: 4.1.1 convert-source-map: 2.0.0 fs-readdir-recursive: 1.1.0 @@ -223,14 +223,6 @@ packages: chokidar: 3.5.3 dev: true - /@babel/code-frame@7.22.13: - resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.22.20 - chalk: 2.4.2 - dev: true - /@babel/code-frame@7.23.5: resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} @@ -239,30 +231,25 @@ packages: chalk: 2.4.2 dev: true - /@babel/compat-data@7.23.3: - resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==} - engines: {node: '>=6.9.0'} - dev: true - /@babel/compat-data@7.23.5: resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.23.5: - resolution: {integrity: sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==} + /@babel/core@7.23.6: + resolution: {integrity: sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.5 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) - '@babel/helpers': 7.23.5 - '@babel/parser': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/helpers': 7.23.6 + '@babel/parser': 7.23.6 '@babel/template': 7.22.15 - '@babel/traverse': 7.23.5 - '@babel/types': 7.23.5 + '@babel/traverse': 7.23.6 + '@babel/types': 7.23.6 convert-source-map: 2.0.0 debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 @@ -272,49 +259,39 @@ packages: - supports-color dev: true - /@babel/eslint-parser@7.23.3(@babel/core@7.23.5)(eslint@8.55.0): + /@babel/eslint-parser@7.23.3(@babel/core@7.23.6)(eslint@8.56.0): resolution: {integrity: sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.55.0 + eslint: 8.56.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true - /@babel/eslint-plugin@7.22.10(@babel/eslint-parser@7.23.3)(eslint@8.55.0): - resolution: {integrity: sha512-SRZcvo3fnO5h79B9DZSV6LG2vHH7OWsSNp1huFLHsXKyytRG413byQk9zxW1VcPOhnzfx2VIUz+8aGbiE7fOkA==} + /@babel/eslint-plugin@7.23.5(@babel/eslint-parser@7.23.3)(eslint@8.56.0): + resolution: {integrity: sha512-03+E/58Hoo/ui69gR+beFdGpplpoVK0BSIdke2iw4/Bz7eGN0ssRenNlnU4nmbkowNQOPCStKSwFr8H6DiY49g==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/eslint-parser': 7.23.3(@babel/core@7.23.5)(eslint@8.55.0) - eslint: 8.55.0 + '@babel/eslint-parser': 7.23.3(@babel/core@7.23.6)(eslint@8.56.0) + eslint: 8.56.0 eslint-rule-composer: 0.3.0 dev: true - /@babel/generator@7.23.3: - resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==} + /@babel/generator@7.23.6: + resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.6 '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 - jsesc: 2.5.2 - dev: true - - /@babel/generator@7.23.5: - resolution: {integrity: sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.5 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 + '@jridgewell/trace-mapping': 0.3.20 jsesc: 2.5.2 dev: true @@ -322,64 +299,64 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.6 dev: true /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.6 dev: true - /@babel/helper-compilation-targets@7.22.15: - resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + /@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.23.3 - '@babel/helper-validator-option': 7.22.15 - browserslist: 4.22.1 + '@babel/compat-data': 7.23.5 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.22.2 lru-cache: 5.1.1 semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.5): - resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} + /@babel/helper-create-class-features-plugin@7.23.6(@babel/core@7.23.6): + resolution: {integrity: sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.5) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.5): + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.6): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.5): - resolution: {integrity: sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==} + /@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.6): + resolution: {integrity: sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/core': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4(supports-color@8.1.1) lodash.debounce: 4.0.8 @@ -398,37 +375,37 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 dev: true /@babel/helper-member-expression-to-functions@7.23.0: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.6 dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 dev: true - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.5): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -440,7 +417,7 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.6 dev: true /@babel/helper-plugin-utils@7.22.5: @@ -448,25 +425,25 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.5): + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.6): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 dev: true - /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.5): + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.6): resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 @@ -476,26 +453,21 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.6 dev: true /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.6 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 - dev: true - - /@babel/helper-string-parser@7.22.5: - resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} - engines: {node: '>=6.9.0'} + '@babel/types': 7.23.6 dev: true /@babel/helper-string-parser@7.23.4: @@ -508,11 +480,6 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-option@7.22.15: - resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} - engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-validator-option@7.23.5: resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} @@ -524,29 +491,20 @@ packages: dependencies: '@babel/helper-function-name': 7.23.0 '@babel/template': 7.22.15 - '@babel/types': 7.23.3 + '@babel/types': 7.23.6 dev: true - /@babel/helpers@7.23.5: - resolution: {integrity: sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==} + /@babel/helpers@7.23.6: + resolution: {integrity: sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.23.5 - '@babel/types': 7.23.5 + '@babel/traverse': 7.23.6 + '@babel/types': 7.23.6 transitivePeerDependencies: - supports-color dev: true - /@babel/highlight@7.22.20: - resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: true - /@babel/highlight@7.23.4: resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} engines: {node: '>=6.9.0'} @@ -556,943 +514,928 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/node@7.22.19(@babel/core@7.23.5): + /@babel/node@7.22.19(@babel/core@7.23.6): resolution: {integrity: sha512-VsKSO9aEHdO16NdtqkJfrXZ9Sxlna1BVnBbToWr1KGdI3cyIk6KqOoa8mWvpK280lJDOwJqxvnl994KmLhq1Yw==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/register': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.6 + '@babel/register': 7.22.15(@babel/core@7.23.6) commander: 4.1.1 - core-js: 3.32.0 + core-js: 3.34.0 node-environment-flags: 1.0.6 - regenerator-runtime: 0.14.0 + regenerator-runtime: 0.14.1 v8flags: 3.2.0 dev: true - /@babel/parser@7.22.7: - resolution: {integrity: sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.23.3 - dev: true - - /@babel/parser@7.23.3: - resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} + /@babel/parser@7.23.6: + resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.6 dev: true - /@babel/parser@7.23.5: - resolution: {integrity: sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.23.5 - dev: true - - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.5): + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.5): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.6) dev: true - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.5): + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.5): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.6): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.5): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.6): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.5): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.6): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.5): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.6): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.6): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.6): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.5): + /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.5): + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.5): + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.5): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.6): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.6): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.5): - resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.5): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.6): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.6): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.5): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.6): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.6): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.6): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.6): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.5): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.6): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.5): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.6): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.5): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.6): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-generator-functions@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-async-generator-functions@7.23.4(@babel/core@7.23.6): resolution: {integrity: sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.5) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.6) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) dev: true - /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.5) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.6) dev: true - /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.6): resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.6 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.6): resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.6 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.6) dev: true - /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.5): + /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.6): resolution: {integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.5) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.15 dev: true - /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.6): resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.6) dev: true - /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.6): resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.6) dev: true - /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.6) dev: true - /@babel/plugin-transform-for-of@7.23.3(@babel/core@7.23.5): - resolution: {integrity: sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==} + /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.6): + resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/core': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.6): resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.6) dev: true - /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.6): resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.6) dev: true - /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/core': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/core': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/core': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.5): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.6): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.6): resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) dev: true - /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.6): resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.6) dev: true - /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.6): resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.5 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/core': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.6) dev: true - /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.5) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) dev: true - /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.6): resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) dev: true - /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.6): resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) dev: true - /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.6 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.5): + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.6): resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.6) dev: true - /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.23.5): - resolution: {integrity: sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==} + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.5) - '@babel/types': 7.23.3 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.6) + '@babel/types': 7.23.6 dev: true - /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.23.5(@babel/core@7.23.5): - resolution: {integrity: sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A==} + /@babel/preset-env@7.23.6(@babel/core@7.23.6): + resolution: {integrity: sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.5 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/core': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.5) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.5) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.5) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.5) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.5) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.5) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-async-generator-functions': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.5) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.5) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.5) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.5) - babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.5) - babel-plugin-polyfill-corejs3: 0.8.5(@babel/core@7.23.5) - babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.5) - core-js-compat: 3.33.0 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.6) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.6) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.6) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.6) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.6) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.6) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.6) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.6) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.6) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-async-generator-functions': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.6) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.6) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.6) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.6) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.6) + babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.6) + babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.6) + babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.6) + core-js-compat: 3.34.0 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.5): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.6): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.3 + '@babel/types': 7.23.6 esutils: 2.0.3 dev: true - /@babel/register@7.22.15(@babel/core@7.23.5): + /@babel/register@7.22.15(@babel/core@7.23.6): resolution: {integrity: sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -1504,19 +1447,19 @@ packages: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} dev: true - /@babel/runtime-corejs3@7.22.6: - resolution: {integrity: sha512-M+37LLIRBTEVjktoJjbw4KVhupF0U/3PYUCbBwgAd9k17hoKhRu1n935QiG7Tuxv0LJOMrb2vuKEeYUlv0iyiw==} + /@babel/runtime-corejs3@7.23.6: + resolution: {integrity: sha512-Djs/ZTAnpyj0nyg7p1J6oiE/tZ9G2stqAFlLGZynrW+F3k2w2jGK2mLOBxzYIOcZYA89+c3d3wXKpYLcpwcU6w==} engines: {node: '>=6.9.0'} dependencies: - core-js-pure: 3.32.0 - regenerator-runtime: 0.13.11 + core-js-pure: 3.34.0 + regenerator-runtime: 0.14.1 dev: true - /@babel/runtime@7.22.6: - resolution: {integrity: sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==} + /@babel/runtime@7.23.6: + resolution: {integrity: sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==} engines: {node: '>=6.9.0'} dependencies: - regenerator-runtime: 0.13.11 + regenerator-runtime: 0.14.1 dev: true /@babel/template@7.22.15: @@ -1524,57 +1467,30 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.23.5 - '@babel/parser': 7.23.5 - '@babel/types': 7.23.5 - dev: true - - /@babel/traverse@7.23.3: - resolution: {integrity: sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 - debug: 4.3.4(supports-color@8.1.1) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 dev: true - /@babel/traverse@7.23.5: - resolution: {integrity: sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==} + /@babel/traverse@7.23.6: + resolution: {integrity: sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.5 + '@babel/generator': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.5 - '@babel/types': 7.23.5 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.23.3: - resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.22.5 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - dev: true - - /@babel/types@7.23.5: - resolution: {integrity: sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==} + /@babel/types@7.23.6: + resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.23.4 @@ -1607,30 +1523,21 @@ packages: engines: {node: '>=4.0'} dev: true - /@es-joy/jsdoc-eslint-parser@0.20.0: - resolution: {integrity: sha512-4ywXGd30Frz6AKMPjHi96LmOSAquZEZmzbMmoRgnYTGO+gb0CkfXos9tDYS0PxEkMbj5AOQFHUiZ7Md0FH5gqg==} - engines: {node: '>=12.0.0'} + /@es-joy/jsdoc-eslint-parser@0.21.0: + resolution: {integrity: sha512-h9gNCACJEslhdoWi3V3x8DS8kloJEizO/ZjCYGe0M24UnkdY1OUyP8uQw/pMbYeACMgz9lWtr8S+EthiMfNlHQ==} + engines: {node: '>=18.0.0'} dependencies: - '@babel/core': 7.23.5 - '@babel/eslint-parser': 7.23.3(@babel/core@7.23.5)(eslint@8.55.0) + '@babel/core': 7.23.6 + '@babel/eslint-parser': 7.23.3(@babel/core@7.23.6)(eslint@8.56.0) '@es-joy/jsdoccomment': 0.41.0 - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) - eslint: 8.55.0 + '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 esquery: 1.5.0 typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@es-joy/jsdoccomment@0.40.1: - resolution: {integrity: sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg==} - engines: {node: '>=16'} - dependencies: - comment-parser: 1.4.0 - esquery: 1.5.0 - jsdoc-type-pratt-parser: 4.0.0 - dev: true - /@es-joy/jsdoccomment@0.41.0: resolution: {integrity: sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==} engines: {node: '>=16'} @@ -1639,216 +1546,18 @@ packages: esquery: 1.5.0 jsdoc-type-pratt-parser: 4.0.0 - /@esbuild/android-arm64@0.18.17: - resolution: {integrity: sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm@0.18.17: - resolution: {integrity: sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64@0.18.17: - resolution: {integrity: sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-arm64@0.18.17: - resolution: {integrity: sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64@0.18.17: - resolution: {integrity: sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-arm64@0.18.17: - resolution: {integrity: sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64@0.18.17: - resolution: {integrity: sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm64@0.18.17: - resolution: {integrity: sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm@0.18.17: - resolution: {integrity: sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32@0.18.17: - resolution: {integrity: sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64@0.18.17: - resolution: {integrity: sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-mips64el@0.18.17: - resolution: {integrity: sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64@0.18.17: - resolution: {integrity: sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-riscv64@0.18.17: - resolution: {integrity: sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-s390x@0.18.17: - resolution: {integrity: sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.18.17: - resolution: {integrity: sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/netbsd-x64@0.18.17: - resolution: {integrity: sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64@0.18.17: - resolution: {integrity: sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/sunos-x64@0.18.17: - resolution: {integrity: sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-arm64@0.18.17: - resolution: {integrity: sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-ia32@0.18.17: - resolution: {integrity: sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64@0.18.17: - resolution: {integrity: sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@eslint-community/eslint-utils@4.4.0(eslint@8.55.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.55.0 + eslint: 8.56.0 eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/regexpp@4.6.2: - resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true @@ -1859,8 +1568,8 @@ packages: ajv: 6.12.6 debug: 4.3.4(supports-color@8.1.1) espree: 9.6.1 - globals: 13.20.0 - ignore: 5.2.4 + globals: 13.24.0 + ignore: 5.3.0 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -1869,33 +1578,29 @@ packages: - supports-color dev: true - /@eslint/js@8.55.0: - resolution: {integrity: sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==} + /@eslint/js@8.56.0: + resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@fastify/deepmerge@1.3.0: - resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==} - dev: true - - /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.5)(@types/node@20.10.4)(graphql@16.7.1): + /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.6)(@types/node@20.10.5)(graphql@16.8.1): resolution: {integrity: sha512-RbwVlz1gcYG62sECR1u0XqMh8w5e5XMCCZoMvPQ3nJzEBCTfXLGX727GBoRmSvY1x4gJmqNZ1lsOX7lZY14RIw==} engines: {node: '>=12'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@babel/code-frame': 7.22.13 - '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.23.5)(graphql@16.7.1) - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.5)(graphql@16.7.1) - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) + '@babel/code-frame': 7.23.5 + '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.23.6)(graphql@16.8.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.6)(graphql@16.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) chalk: 4.1.2 debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.3.2 - graphql: 16.7.1 - graphql-config: 4.5.0(@types/node@20.10.4)(graphql@16.7.1) - graphql-depth-limit: 1.1.0(graphql@16.7.1) + graphql: 16.8.1 + graphql-config: 4.5.0(@types/node@20.10.5)(graphql@16.8.1) + graphql-depth-limit: 1.1.0(graphql@16.8.1) lodash.lowercase: 4.3.0 - tslib: 2.6.1 + tslib: 2.6.2 transitivePeerDependencies: - '@babel/core' - '@types/node' @@ -1906,220 +1611,220 @@ packages: - utf-8-validate dev: true - /@graphql-tools/batch-execute@8.5.22(graphql@16.7.1): + /@graphql-tools/batch-execute@8.5.22(graphql@16.8.1): resolution: {integrity: sha512-hcV1JaY6NJQFQEwCKrYhpfLK8frSXDbtNMoTur98u10Cmecy1zrqNKSqhEyGetpgHxaJRqszGzKeI3RuroDN6A==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) dataloader: 2.2.2 - graphql: 16.7.1 - tslib: 2.6.1 + graphql: 16.8.1 + tslib: 2.6.2 value-or-promise: 1.0.12 dev: true - /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.23.5)(graphql@16.7.1): + /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.23.6)(graphql@16.8.1): resolution: {integrity: sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.5)(graphql@16.7.1) - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.6)(graphql@16.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) globby: 11.1.0 - graphql: 16.7.1 - tslib: 2.6.1 + graphql: 16.8.1 + tslib: 2.6.2 unixify: 1.0.0 transitivePeerDependencies: - '@babel/core' - supports-color dev: true - /@graphql-tools/delegate@9.0.35(graphql@16.7.1): + /@graphql-tools/delegate@9.0.35(graphql@16.8.1): resolution: {integrity: sha512-jwPu8NJbzRRMqi4Vp/5QX1vIUeUPpWmlQpOkXQD2r1X45YsVceyUUBnktCrlJlDB4jPRVy7JQGwmYo3KFiOBMA==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/batch-execute': 8.5.22(graphql@16.7.1) - '@graphql-tools/executor': 0.0.20(graphql@16.7.1) - '@graphql-tools/schema': 9.0.19(graphql@16.7.1) - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) + '@graphql-tools/batch-execute': 8.5.22(graphql@16.8.1) + '@graphql-tools/executor': 0.0.20(graphql@16.8.1) + '@graphql-tools/schema': 9.0.19(graphql@16.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) dataloader: 2.2.2 - graphql: 16.7.1 - tslib: 2.6.1 + graphql: 16.8.1 + tslib: 2.6.2 value-or-promise: 1.0.12 dev: true - /@graphql-tools/executor-graphql-ws@0.0.14(graphql@16.7.1): + /@graphql-tools/executor-graphql-ws@0.0.14(graphql@16.8.1): resolution: {integrity: sha512-P2nlkAsPZKLIXImFhj0YTtny5NQVGSsKnhi7PzXiaHSXc6KkzqbWZHKvikD4PObanqg+7IO58rKFpGXP7eeO+w==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) '@repeaterjs/repeater': 3.0.4 - '@types/ws': 8.5.5 - graphql: 16.7.1 - graphql-ws: 5.12.1(graphql@16.7.1) + '@types/ws': 8.5.10 + graphql: 16.8.1 + graphql-ws: 5.12.1(graphql@16.8.1) isomorphic-ws: 5.0.0(ws@8.13.0) - tslib: 2.6.1 + tslib: 2.6.2 ws: 8.13.0 transitivePeerDependencies: - bufferutil - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.10(@types/node@20.10.4)(graphql@16.7.1): + /@graphql-tools/executor-http@0.1.10(@types/node@20.10.5)(graphql@16.8.1): resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) - '@repeaterjs/repeater': 3.0.4 + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + '@repeaterjs/repeater': 3.0.5 '@whatwg-node/fetch': 0.8.8 - dset: 3.1.2 + dset: 3.1.3 extract-files: 11.0.0 - graphql: 16.7.1 - meros: 1.3.0(@types/node@20.10.4) - tslib: 2.6.1 + graphql: 16.8.1 + meros: 1.3.0(@types/node@20.10.5) + tslib: 2.6.2 value-or-promise: 1.0.12 transitivePeerDependencies: - '@types/node' dev: true - /@graphql-tools/executor-legacy-ws@0.0.11(graphql@16.7.1): + /@graphql-tools/executor-legacy-ws@0.0.11(graphql@16.8.1): resolution: {integrity: sha512-4ai+NnxlNfvIQ4c70hWFvOZlSUN8lt7yc+ZsrwtNFbFPH/EroIzFMapAxM9zwyv9bH38AdO3TQxZ5zNxgBdvUw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) - '@types/ws': 8.5.5 - graphql: 16.7.1 + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + '@types/ws': 8.5.10 + graphql: 16.8.1 isomorphic-ws: 5.0.0(ws@8.13.0) - tslib: 2.6.1 + tslib: 2.6.2 ws: 8.13.0 transitivePeerDependencies: - bufferutil - utf-8-validate dev: true - /@graphql-tools/executor@0.0.20(graphql@16.7.1): + /@graphql-tools/executor@0.0.20(graphql@16.8.1): resolution: {integrity: sha512-GdvNc4vszmfeGvUqlcaH1FjBoguvMYzxAfT6tDd4/LgwymepHhinqLNA5otqwVLW+JETcDaK7xGENzFomuE6TA==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) - '@graphql-typed-document-node/core': 3.2.0(graphql@16.7.1) - '@repeaterjs/repeater': 3.0.4 - graphql: 16.7.1 - tslib: 2.6.1 + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) + '@repeaterjs/repeater': 3.0.5 + graphql: 16.8.1 + tslib: 2.6.2 value-or-promise: 1.0.12 dev: true - /@graphql-tools/graphql-file-loader@7.5.17(graphql@16.7.1): + /@graphql-tools/graphql-file-loader@7.5.17(graphql@16.8.1): resolution: {integrity: sha512-hVwwxPf41zOYgm4gdaZILCYnKB9Zap7Ys9OhY1hbwuAuC4MMNY9GpUjoTU3CQc3zUiPoYStyRtUGkHSJZ3HxBw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/import': 6.7.18(graphql@16.7.1) - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) + '@graphql-tools/import': 6.7.18(graphql@16.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) globby: 11.1.0 - graphql: 16.7.1 - tslib: 2.6.1 + graphql: 16.8.1 + tslib: 2.6.2 unixify: 1.0.0 dev: true - /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.23.5)(graphql@16.7.1): + /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.23.6)(graphql@16.8.1): resolution: {integrity: sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@babel/parser': 7.23.3 - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.5) - '@babel/traverse': 7.23.3 - '@babel/types': 7.23.3 - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) - graphql: 16.7.1 - tslib: 2.6.1 + '@babel/parser': 7.23.6 + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.6) + '@babel/traverse': 7.23.6 + '@babel/types': 7.23.6 + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 transitivePeerDependencies: - '@babel/core' - supports-color dev: true - /@graphql-tools/import@6.7.18(graphql@16.7.1): + /@graphql-tools/import@6.7.18(graphql@16.8.1): resolution: {integrity: sha512-XQDdyZTp+FYmT7as3xRWH/x8dx0QZA2WZqfMF5EWb36a0PiH7WwlRQYIdyYXj8YCLpiWkeBXgBRHmMnwEYR8iQ==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) - graphql: 16.7.1 + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + graphql: 16.8.1 resolve-from: 5.0.0 - tslib: 2.6.1 + tslib: 2.6.2 dev: true - /@graphql-tools/json-file-loader@7.4.18(graphql@16.7.1): + /@graphql-tools/json-file-loader@7.4.18(graphql@16.8.1): resolution: {integrity: sha512-AJ1b6Y1wiVgkwsxT5dELXhIVUPs/u3VZ8/0/oOtpcoyO/vAeM5rOvvWegzicOOnQw8G45fgBRMkkRfeuwVt6+w==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) globby: 11.1.0 - graphql: 16.7.1 - tslib: 2.6.1 + graphql: 16.8.1 + tslib: 2.6.2 unixify: 1.0.0 dev: true - /@graphql-tools/load@7.8.14(graphql@16.7.1): + /@graphql-tools/load@7.8.14(graphql@16.8.1): resolution: {integrity: sha512-ASQvP+snHMYm+FhIaLxxFgVdRaM0vrN9wW2BKInQpktwWTXVyk+yP5nQUCEGmn0RTdlPKrffBaigxepkEAJPrg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/schema': 9.0.19(graphql@16.7.1) - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) - graphql: 16.7.1 + '@graphql-tools/schema': 9.0.19(graphql@16.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + graphql: 16.8.1 p-limit: 3.1.0 - tslib: 2.6.1 + tslib: 2.6.2 dev: true - /@graphql-tools/merge@8.4.2(graphql@16.7.1): + /@graphql-tools/merge@8.4.2(graphql@16.8.1): resolution: {integrity: sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) - graphql: 16.7.1 - tslib: 2.6.1 + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 dev: true - /@graphql-tools/schema@9.0.19(graphql@16.7.1): + /@graphql-tools/schema@9.0.19(graphql@16.8.1): resolution: {integrity: sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/merge': 8.4.2(graphql@16.7.1) - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) - graphql: 16.7.1 - tslib: 2.6.1 + '@graphql-tools/merge': 8.4.2(graphql@16.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.10.4)(graphql@16.7.1): + /@graphql-tools/url-loader@7.17.18(@types/node@20.10.5)(graphql@16.8.1): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: '@ardatan/sync-fetch': 0.0.1 - '@graphql-tools/delegate': 9.0.35(graphql@16.7.1) - '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.7.1) - '@graphql-tools/executor-http': 0.1.10(@types/node@20.10.4)(graphql@16.7.1) - '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.7.1) - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) - '@graphql-tools/wrap': 9.4.2(graphql@16.7.1) - '@types/ws': 8.5.5 + '@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.10.5)(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) + '@types/ws': 8.5.10 '@whatwg-node/fetch': 0.8.8 - graphql: 16.7.1 - isomorphic-ws: 5.0.0(ws@8.13.0) - tslib: 2.6.1 + graphql: 16.8.1 + isomorphic-ws: 5.0.0(ws@8.16.0) + tslib: 2.6.2 value-or-promise: 1.0.12 - ws: 8.13.0 + ws: 8.16.0 transitivePeerDependencies: - '@types/node' - bufferutil @@ -2127,35 +1832,35 @@ packages: - utf-8-validate dev: true - /@graphql-tools/utils@9.2.1(graphql@16.7.1): + /@graphql-tools/utils@9.2.1(graphql@16.8.1): resolution: {integrity: sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.7.1) - graphql: 16.7.1 - tslib: 2.6.1 + '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 dev: true - /@graphql-tools/wrap@9.4.2(graphql@16.7.1): + /@graphql-tools/wrap@9.4.2(graphql@16.8.1): resolution: {integrity: sha512-DFcd9r51lmcEKn0JW43CWkkI2D6T9XI1juW/Yo86i04v43O9w2/k4/nx2XTJv4Yv+iXwUw7Ok81PGltwGJSDSA==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/delegate': 9.0.35(graphql@16.7.1) - '@graphql-tools/schema': 9.0.19(graphql@16.7.1) - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) - graphql: 16.7.1 - tslib: 2.6.1 + '@graphql-tools/delegate': 9.0.35(graphql@16.8.1) + '@graphql-tools/schema': 9.0.19(graphql@16.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 value-or-promise: 1.0.12 dev: true - /@graphql-typed-document-node/core@3.2.0(graphql@16.7.1): + /@graphql-typed-document-node/core@3.2.0(graphql@16.8.1): resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - graphql: 16.7.1 + graphql: 16.8.1 dev: true /@hkdobrev/run-if-changed@0.3.1: @@ -2219,24 +1924,17 @@ packages: engines: {node: '>=8'} dev: true - /@jest/schemas@29.6.0: - resolution: {integrity: sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': 0.27.8 - dev: true - /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.18 + '@jridgewell/trace-mapping': 0.3.20 dev: true - /@jridgewell/resolve-uri@3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} dev: true @@ -2245,19 +1943,15 @@ packages: engines: {node: '>=6.0.0'} dev: true - /@jridgewell/sourcemap-codec@1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} - dev: true - /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true - /@jridgewell/trace-mapping@0.3.18: - resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} + /@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 dev: true /@next/eslint-plugin-next@13.5.6: @@ -2296,7 +1990,20 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 + fastq: 1.16.0 + dev: true + + /@npmcli/agent@2.2.0: + resolution: {integrity: sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + agent-base: 7.1.0 + http-proxy-agent: 7.0.0 + https-proxy-agent: 7.0.2 + lru-cache: 10.1.0 + socks-proxy-agent: 8.0.2 + transitivePeerDependencies: + - supports-color dev: true /@npmcli/fs@3.1.0: @@ -2311,133 +2018,121 @@ packages: engines: {node: '>= 18'} dev: true - /@octokit/core@5.0.0: - resolution: {integrity: sha512-YbAtMWIrbZ9FCXbLwT9wWB8TyLjq9mxpKdgB3dUNxQcIVTf9hJ70gRPwAcqGZdY6WdJPZ0I7jLaaNDCiloGN2A==} + /@octokit/core@5.0.2: + resolution: {integrity: sha512-cZUy1gUvd4vttMic7C0lwPed8IYXWYp8kHIMatyhY8t8n3Cpw2ILczkV5pGMPqef7v0bLo0pOHrEHarsau2Ydg==} engines: {node: '>= 18'} dependencies: '@octokit/auth-token': 4.0.0 - '@octokit/graphql': 7.0.1 - '@octokit/request': 8.1.1 - '@octokit/request-error': 5.0.0 - '@octokit/types': 11.1.0 + '@octokit/graphql': 7.0.2 + '@octokit/request': 8.1.6 + '@octokit/request-error': 5.0.1 + '@octokit/types': 12.4.0 before-after-hook: 2.2.3 - universal-user-agent: 6.0.0 + universal-user-agent: 6.0.1 dev: true - /@octokit/endpoint@9.0.0: - resolution: {integrity: sha512-szrQhiqJ88gghWY2Htt8MqUDO6++E/EIXqJ2ZEp5ma3uGS46o7LZAzSLt49myB7rT+Hfw5Y6gO3LmOxGzHijAQ==} + /@octokit/endpoint@9.0.4: + resolution: {integrity: sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==} engines: {node: '>= 18'} dependencies: - '@octokit/types': 11.1.0 - is-plain-object: 5.0.0 - universal-user-agent: 6.0.0 + '@octokit/types': 12.4.0 + universal-user-agent: 6.0.1 dev: true - /@octokit/graphql@7.0.1: - resolution: {integrity: sha512-T5S3oZ1JOE58gom6MIcrgwZXzTaxRnxBso58xhozxHpOqSTgDS6YNeEUvZ/kRvXgPrRz/KHnZhtb7jUMRi9E6w==} + /@octokit/graphql@7.0.2: + resolution: {integrity: sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==} engines: {node: '>= 18'} dependencies: - '@octokit/request': 8.1.1 - '@octokit/types': 11.1.0 - universal-user-agent: 6.0.0 - dev: true - - /@octokit/openapi-types@18.0.0: - resolution: {integrity: sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==} + '@octokit/request': 8.1.6 + '@octokit/types': 12.4.0 + universal-user-agent: 6.0.1 dev: true - /@octokit/openapi-types@19.0.0: - resolution: {integrity: sha512-PclQ6JGMTE9iUStpzMkwLCISFn/wDeRjkZFIKALpvJQNBGwDoYYi2fFvuHwssoQ1rXI5mfh6jgTgWuddeUzfWw==} + /@octokit/openapi-types@19.1.0: + resolution: {integrity: sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==} dev: true - /@octokit/plugin-paginate-rest@9.0.0(@octokit/core@5.0.0): - resolution: {integrity: sha512-oIJzCpttmBTlEhBmRvb+b9rlnGpmFgDtZ0bB6nq39qIod6A5DP+7RkVLMOixIgRCYSHDTeayWqmiJ2SZ6xgfdw==} + /@octokit/plugin-paginate-rest@9.1.5(@octokit/core@5.0.2): + resolution: {integrity: sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=5' dependencies: - '@octokit/core': 5.0.0 - '@octokit/types': 12.0.0 + '@octokit/core': 5.0.2 + '@octokit/types': 12.4.0 dev: true - /@octokit/plugin-retry@6.0.0(@octokit/core@5.0.0): - resolution: {integrity: sha512-a1/A4A+PB1QoAHQfLJxGHhLfSAT03bR1jJz3GgQJZvty2ozawFWs93MiBQXO7SL2YbO7CIq0Goj4qLOBj8JeMQ==} + /@octokit/plugin-retry@6.0.1(@octokit/core@5.0.2): + resolution: {integrity: sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=5' dependencies: - '@octokit/core': 5.0.0 - '@octokit/request-error': 5.0.0 - '@octokit/types': 11.1.0 + '@octokit/core': 5.0.2 + '@octokit/request-error': 5.0.1 + '@octokit/types': 12.4.0 bottleneck: 2.19.5 dev: true - /@octokit/plugin-throttling@8.0.0(@octokit/core@5.0.0): - resolution: {integrity: sha512-OkMbHYUidj81q92YRkPzWmwXkEtsI3KOcSkNm763aqUOh9IEplyX05XjKAdZFANAvaYH0Q4JBZwu4h2VnPVXZA==} + /@octokit/plugin-throttling@8.1.3(@octokit/core@5.0.2): + resolution: {integrity: sha512-pfyqaqpc0EXh5Cn4HX9lWYsZ4gGbjnSmUILeu4u2gnuM50K/wIk9s1Pxt3lVeVwekmITgN/nJdoh43Ka+vye8A==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': ^5.0.0 dependencies: - '@octokit/core': 5.0.0 - '@octokit/types': 12.0.0 + '@octokit/core': 5.0.2 + '@octokit/types': 12.4.0 bottleneck: 2.19.5 dev: true - /@octokit/request-error@5.0.0: - resolution: {integrity: sha512-1ue0DH0Lif5iEqT52+Rf/hf0RmGO9NWFjrzmrkArpG9trFfDM/efx00BJHdLGuro4BR/gECxCU2Twf5OKrRFsQ==} + /@octokit/request-error@5.0.1: + resolution: {integrity: sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==} engines: {node: '>= 18'} dependencies: - '@octokit/types': 11.1.0 + '@octokit/types': 12.4.0 deprecation: 2.3.1 once: 1.4.0 dev: true - /@octokit/request@8.1.1: - resolution: {integrity: sha512-8N+tdUz4aCqQmXl8FpHYfKG9GelDFd7XGVzyN8rc6WxVlYcfpHECnuRkgquzz+WzvHTK62co5di8gSXnzASZPQ==} + /@octokit/request@8.1.6: + resolution: {integrity: sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ==} engines: {node: '>= 18'} dependencies: - '@octokit/endpoint': 9.0.0 - '@octokit/request-error': 5.0.0 - '@octokit/types': 11.1.0 - is-plain-object: 5.0.0 - universal-user-agent: 6.0.0 + '@octokit/endpoint': 9.0.4 + '@octokit/request-error': 5.0.1 + '@octokit/types': 12.4.0 + universal-user-agent: 6.0.1 dev: true - /@octokit/types@11.1.0: - resolution: {integrity: sha512-Fz0+7GyLm/bHt8fwEqgvRBWwIV1S6wRRyq+V6exRKLVWaKGsuy6H9QFYeBVDV7rK6fO3XwHgQOPxv+cLj2zpXQ==} + /@octokit/types@12.4.0: + resolution: {integrity: sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==} dependencies: - '@octokit/openapi-types': 18.0.0 + '@octokit/openapi-types': 19.1.0 dev: true - /@octokit/types@12.0.0: - resolution: {integrity: sha512-EzD434aHTFifGudYAygnFlS1Tl6KhbTynEWELQXIbTY8Msvb5nEqTZIm7sbPEt4mQYLZwu3zPKVdeIrw0g7ovg==} - dependencies: - '@octokit/openapi-types': 19.0.0 - dev: true - - /@peculiar/asn1-schema@2.3.6: - resolution: {integrity: sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA==} + /@peculiar/asn1-schema@2.3.8: + resolution: {integrity: sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA==} dependencies: asn1js: 3.0.5 - pvtsutils: 1.3.2 - tslib: 2.6.1 + pvtsutils: 1.3.5 + tslib: 2.6.2 dev: true /@peculiar/json-schema@1.1.12: resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} engines: {node: '>=8.0.0'} dependencies: - tslib: 2.6.1 + tslib: 2.6.2 dev: true /@peculiar/webcrypto@1.4.3: resolution: {integrity: sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A==} engines: {node: '>=10.12.0'} dependencies: - '@peculiar/asn1-schema': 2.3.6 + '@peculiar/asn1-schema': 2.3.8 '@peculiar/json-schema': 1.1.12 - pvtsutils: 1.3.2 - tslib: 2.6.1 + pvtsutils: 1.3.5 + tslib: 2.6.2 webcrypto-core: 1.7.7 dev: true @@ -2448,16 +2143,9 @@ packages: dev: true optional: true - /@pkgr/utils@2.4.2: - resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} + /@pkgr/core@0.1.0: + resolution: {integrity: sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - dependencies: - cross-spawn: 7.0.3 - fast-glob: 3.3.2 - is-glob: 4.0.3 - open: 9.1.0 - picocolors: 1.0.0 - tslib: 2.6.1 dev: true /@pnpm/config.env-replace@1.1.0: @@ -2485,11 +2173,15 @@ packages: resolution: {integrity: sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==} dev: true - /@rushstack/eslint-patch@1.5.1: - resolution: {integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==} + /@repeaterjs/repeater@3.0.5: + resolution: {integrity: sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA==} dev: true - /@semantic-release/commit-analyzer@11.1.0(semantic-release@22.0.10): + /@rushstack/eslint-patch@1.6.1: + resolution: {integrity: sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw==} + dev: true + + /@semantic-release/commit-analyzer@11.1.0(semantic-release@22.0.12): resolution: {integrity: sha512-cXNTbv3nXR2hlzHjAMgbuiQVtvWHTlwwISt60B+4NZv01y/QRY7p2HcJm8Eh2StzcTJoNnflvKjHH/cjFS7d5g==} engines: {node: ^18.17 || >=20.6.1} peerDependencies: @@ -2499,10 +2191,10 @@ packages: conventional-commits-filter: 4.0.0 conventional-commits-parser: 5.0.0 debug: 4.3.4(supports-color@8.1.1) - import-from-esm: 1.0.3 + import-from-esm: 1.3.3 lodash-es: 4.17.21 micromatch: 4.0.5 - semantic-release: 22.0.10 + semantic-release: 22.0.12(typescript@5.3.3) transitivePeerDependencies: - supports-color dev: true @@ -2512,34 +2204,34 @@ packages: engines: {node: '>=18'} dev: true - /@semantic-release/github@9.2.5(semantic-release@22.0.10): - resolution: {integrity: sha512-XWumFEOHiWllekymZjeVgkQCJ4YnD8020ZspAHYIIBNX8O4d/1ldeU5iNXu6NGkKlOCokyXh13KwVP0UEMm5kw==} + /@semantic-release/github@9.2.6(semantic-release@22.0.12): + resolution: {integrity: sha512-shi+Lrf6exeNZF+sBhK+P011LSbhmIAoUEgEY6SsxF8irJ+J2stwI5jkyDQ+4gzYyDImzV6LCKdYB9FXnQRWKA==} engines: {node: '>=18'} peerDependencies: semantic-release: '>=20.1.0' dependencies: - '@octokit/core': 5.0.0 - '@octokit/plugin-paginate-rest': 9.0.0(@octokit/core@5.0.0) - '@octokit/plugin-retry': 6.0.0(@octokit/core@5.0.0) - '@octokit/plugin-throttling': 8.0.0(@octokit/core@5.0.0) + '@octokit/core': 5.0.2 + '@octokit/plugin-paginate-rest': 9.1.5(@octokit/core@5.0.2) + '@octokit/plugin-retry': 6.0.1(@octokit/core@5.0.2) + '@octokit/plugin-throttling': 8.1.3(@octokit/core@5.0.2) '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 debug: 4.3.4(supports-color@8.1.1) dir-glob: 3.0.1 globby: 14.0.0 http-proxy-agent: 7.0.0 - https-proxy-agent: 7.0.1 + https-proxy-agent: 7.0.2 issue-parser: 6.0.0 lodash-es: 4.17.21 - mime: 4.0.0 - p-filter: 3.0.0 - semantic-release: 22.0.10 + mime: 4.0.1 + p-filter: 4.1.0 + semantic-release: 22.0.12(typescript@5.3.3) url-join: 5.0.0 transitivePeerDependencies: - supports-color dev: true - /@semantic-release/npm@11.0.2(semantic-release@22.0.10): + /@semantic-release/npm@11.0.2(semantic-release@22.0.12): resolution: {integrity: sha512-owtf3RjyPvRE63iUKZ5/xO4uqjRpVQDUB9+nnXj0xwfIeM9pRl+cG+zGDzdftR4m3f2s4Wyf3SexW+kF5DFtWA==} engines: {node: ^18.17 || >=20} peerDependencies: @@ -2548,21 +2240,21 @@ packages: '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 execa: 8.0.1 - fs-extra: 11.1.1 + fs-extra: 11.2.0 lodash-es: 4.17.21 nerf-dart: 1.0.0 normalize-url: 8.0.0 - npm: 10.2.0 + npm: 10.2.5 rc: 1.2.8 - read-pkg: 9.0.0 + read-pkg: 9.0.1 registry-auth-token: 5.0.2 - semantic-release: 22.0.10 + semantic-release: 22.0.12(typescript@5.3.3) semver: 7.5.4 tempy: 3.1.0 dev: true - /@semantic-release/release-notes-generator@12.0.0(semantic-release@22.0.10): - resolution: {integrity: sha512-m7Ds8ComP1KJgA2Lke2xMwE1TOOU40U7AzP4lT8hJ2tUAeicziPz/1GeDFmRkTOkMFlfHvE6kuvMkvU+mIzIDQ==} + /@semantic-release/release-notes-generator@12.1.0(semantic-release@22.0.12): + resolution: {integrity: sha512-g6M9AjUKAZUZnxaJZnouNBeDNTCUrJ5Ltj+VJ60gJeDaRRahcHsry9HW8yKrnKkKNkx5lbWiEP1FPMqVNQz8Kg==} engines: {node: ^18.17 || >=20.6.1} peerDependencies: semantic-release: '>=20.1.0' @@ -2573,21 +2265,17 @@ packages: conventional-commits-parser: 5.0.0 debug: 4.3.4(supports-color@8.1.1) get-stream: 7.0.1 - import-from: 4.0.0 + import-from-esm: 1.3.3 into-stream: 7.0.0 lodash-es: 4.17.21 - read-pkg-up: 10.0.0 - semantic-release: 22.0.10 + read-pkg-up: 11.0.0 + semantic-release: 22.0.12(typescript@5.3.3) transitivePeerDependencies: - supports-color dev: true - /@sinclair/typebox@0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - dev: true - - /@sindresorhus/is@3.1.2: - resolution: {integrity: sha512-JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ==} + /@sindresorhus/is@4.6.0: + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} dev: true @@ -2596,17 +2284,6 @@ packages: engines: {node: '>=18'} dev: true - /@tootallnate/once@2.0.0: - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - dev: true - - /@types/chai-subset@1.3.3: - resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} - dependencies: - '@types/chai': 4.3.11 - dev: true - /@types/chai@4.3.11: resolution: {integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==} dev: true @@ -2614,11 +2291,11 @@ packages: /@types/debug@4.1.12: resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} dependencies: - '@types/ms': 0.7.31 + '@types/ms': 0.7.34 dev: true - /@types/eslint@8.44.8: - resolution: {integrity: sha512-4K8GavROwhrYl2QXDXm0Rv9epkA8GBFu0EI+XrrnnuCl7u8CWBRusX7fXJfanhZTDWSAL24gDI/UqXyUM0Injw==} + /@types/eslint@8.56.0: + resolution: {integrity: sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==} dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 @@ -2645,29 +2322,29 @@ packages: /@types/lodash.defaultsdeep@4.6.9: resolution: {integrity: sha512-pLtCFK0YkHfGtGLYLNMTbFB5/G5+RsmQCIbbHH8GOAXjv+gDkVilY98kILfe8JH2Kev0OCReYxp1AjxEjP8ixA==} dependencies: - '@types/lodash': 4.14.196 + '@types/lodash': 4.14.202 dev: true - /@types/lodash@4.14.196: - resolution: {integrity: sha512-22y3o88f4a94mKljsZcanlNWPzO0uBsBdzLAngf2tp533LzZcQzb6+eZPJ+vCTt+bqF2XnvT9gejTLsAcJAJyQ==} + /@types/lodash@4.14.202: + resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==} dev: true /@types/mocha@10.0.6: resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} dev: true - /@types/ms@0.7.31: - resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} dev: true - /@types/node@20.10.4: - resolution: {integrity: sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==} + /@types/node@20.10.5: + resolution: {integrity: sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==} dependencies: undici-types: 5.26.5 dev: true - /@types/normalize-package-data@2.4.3: - resolution: {integrity: sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==} + /@types/normalize-package-data@2.4.4: + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true /@types/semver@7.5.6: @@ -2678,14 +2355,14 @@ packages: resolution: {integrity: sha512-XrojSCTzVxPAfWeAiw8Hg27OW/4jalE7yiohCHRPprqfPyt2oG+Osy1HstUPMF26cEdno3IeEhv31Pzl0wwsQw==} dev: true - /@types/ws@8.5.5: - resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} + /@types/ws@8.5.10: + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 20.10.4 + '@types/node': 20.10.5 dev: true - /@typescript-eslint/eslint-plugin@6.7.5(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3): - resolution: {integrity: sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==} + /@typescript-eslint/eslint-plugin@6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -2695,39 +2372,39 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.7.5 - '@typescript-eslint/type-utils': 6.7.5(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.7.5(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.7.5 + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.16.0 + '@typescript-eslint/type-utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.16.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.55.0 + eslint: 8.56.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.0 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.3.3) + ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/experimental-utils@5.62.0(eslint@8.55.0)(typescript@5.3.3): + /@typescript-eslint/experimental-utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.55.0)(typescript@5.3.3) - eslint: 8.55.0 + '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3): - resolution: {integrity: sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==} + /@typescript-eslint/parser@6.16.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2736,12 +2413,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.13.2 - '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.13.2 + '@typescript-eslint/scope-manager': 6.16.0 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.16.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.55.0 + eslint: 8.56.0 typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -2755,24 +2432,16 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@6.13.2: - resolution: {integrity: sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==} + /@typescript-eslint/scope-manager@6.16.0: + resolution: {integrity: sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/visitor-keys': 6.13.2 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/visitor-keys': 6.16.0 dev: true - /@typescript-eslint/scope-manager@6.7.5: - resolution: {integrity: sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.7.5 - '@typescript-eslint/visitor-keys': 6.7.5 - dev: true - - /@typescript-eslint/type-utils@6.7.5(eslint@8.55.0)(typescript@5.3.3): - resolution: {integrity: sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==} + /@typescript-eslint/type-utils@6.16.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2781,11 +2450,11 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.3.3) - '@typescript-eslint/utils': 6.7.5(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.55.0 - ts-api-utils: 1.0.1(typescript@5.3.3) + eslint: 8.56.0 + ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -2796,13 +2465,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@6.13.2: - resolution: {integrity: sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true - - /@typescript-eslint/types@6.7.5: - resolution: {integrity: sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==} + /@typescript-eslint/types@6.16.0: + resolution: {integrity: sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -2827,8 +2491,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.13.2(typescript@5.3.3): - resolution: {integrity: sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==} + /@typescript-eslint/typescript-estree@6.16.0(typescript@5.3.3): + resolution: {integrity: sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2836,52 +2500,32 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/visitor-keys': 6.13.2 - debug: 4.3.4(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/typescript-estree@6.7.5(typescript@5.3.3): - resolution: {integrity: sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 6.7.5 - '@typescript-eslint/visitor-keys': 6.7.5 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/visitor-keys': 6.16.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 + minimatch: 9.0.3 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.3.3) + ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.55.0)(typescript@5.3.3): + /@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 '@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: 8.55.0 + eslint: 8.56.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -2889,19 +2533,19 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.7.5(eslint@8.55.0)(typescript@5.3.3): - resolution: {integrity: sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==} + /@typescript-eslint/utils@6.16.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.7.5 - '@typescript-eslint/types': 6.7.5 - '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.3.3) - eslint: 8.55.0 + '@typescript-eslint/scope-manager': 6.16.0 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) + eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -2916,62 +2560,16 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.13.2: - resolution: {integrity: sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.13.2 - eslint-visitor-keys: 3.4.3 - dev: true - - /@typescript-eslint/visitor-keys@6.7.5: - resolution: {integrity: sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==} + /@typescript-eslint/visitor-keys@6.16.0: + resolution: {integrity: sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.7.5 - eslint-visitor-keys: 3.4.3 - dev: true - - /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - dev: true - - /@vitest/expect@0.34.1: - resolution: {integrity: sha512-q2CD8+XIsQ+tHwypnoCk8Mnv5e6afLFvinVGCq3/BOT4kQdVQmY6rRfyKkwcg635lbliLPqbunXZr+L1ssUWiQ==} - dependencies: - '@vitest/spy': 0.34.1 - '@vitest/utils': 0.34.1 - chai: 4.3.10 - dev: true - - /@vitest/runner@0.34.1: - resolution: {integrity: sha512-YfQMpYzDsYB7yqgmlxZ06NI4LurHWfrH7Wy3Pvf/z/vwUSgq1zLAb1lWcItCzQG+NVox+VvzlKQrYEXb47645g==} - dependencies: - '@vitest/utils': 0.34.1 - p-limit: 4.0.0 - pathe: 1.1.1 - dev: true - - /@vitest/snapshot@0.34.1: - resolution: {integrity: sha512-0O9LfLU0114OqdF8lENlrLsnn024Tb1CsS9UwG0YMWY2oGTQfPtkW+B/7ieyv0X9R2Oijhi3caB1xgGgEgclSQ==} - dependencies: - magic-string: 0.30.2 - pathe: 1.1.1 - pretty-format: 29.6.2 - dev: true - - /@vitest/spy@0.34.1: - resolution: {integrity: sha512-UT4WcI3EAPUNO8n6y9QoEqynGGEPmmRxC+cLzneFFXpmacivjHZsNbiKD88KUScv5DCHVDgdBsLD7O7s1enFcQ==} - dependencies: - tinyspy: 2.1.1 + '@typescript-eslint/types': 6.16.0 + eslint-visitor-keys: 3.4.3 dev: true - /@vitest/utils@0.34.1: - resolution: {integrity: sha512-/ql9dsFi4iuEbiNcjNHQWXBum7aL8pyhxvfnD9gNtbjR9fUKAjxhj4AA3yfLXg6gJpMGGecvtF8Au2G9y3q47Q==} - dependencies: - diff-sequences: 29.4.3 - loupe: 2.3.6 - pretty-format: 29.6.2 + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true /@whatwg-node/events@0.0.3: @@ -2995,7 +2593,7 @@ packages: busboy: 1.6.0 fast-querystring: 1.1.2 fast-url-parser: 1.1.3 - tslib: 2.6.1 + tslib: 2.6.2 dev: true /JSONStream@1.3.5: @@ -3006,8 +2604,9 @@ packages: through: 2.3.8 dev: true - /abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + /abbrev@2.0.0: + resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true /acorn-globals@1.0.9: @@ -3016,17 +2615,12 @@ packages: acorn: 2.7.0 dev: true - /acorn-jsx@5.3.2(acorn@8.10.0): + /acorn-jsx@5.3.2(acorn@8.11.2): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.10.0 - dev: true - - /acorn-walk@8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} - engines: {node: '>=0.4.0'} + acorn: 8.11.2 dev: true /acorn@2.7.0: @@ -3035,21 +2629,12 @@ packages: hasBin: true dev: true - /acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + /acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} engines: {node: '>=0.4.0'} hasBin: true dev: true - /agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - dependencies: - debug: 4.3.4(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - dev: true - /agent-base@7.1.0: resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} engines: {node: '>= 14'} @@ -3059,17 +2644,6 @@ packages: - supports-color dev: true - /agentkeepalive@4.3.0: - resolution: {integrity: sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==} - engines: {node: '>= 8.0.0'} - dependencies: - debug: 4.3.4(supports-color@8.1.1) - depd: 2.0.0 - humanize-ms: 1.2.1 - transitivePeerDependencies: - - supports-color - dev: true - /aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} @@ -3078,14 +2652,6 @@ packages: indent-string: 4.0.0 dev: true - /aggregate-error@4.0.1: - resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} - engines: {node: '>=12'} - dependencies: - clean-stack: 4.2.0 - indent-string: 5.0.0 - dev: true - /aggregate-error@5.0.0: resolution: {integrity: sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==} engines: {node: '>=18'} @@ -3094,17 +2660,6 @@ packages: indent-string: 5.0.0 dev: true - /ajv-formats@2.1.1(ajv@8.12.0): - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - dependencies: - ajv: 8.12.0 - dev: true - /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: @@ -3114,15 +2669,6 @@ packages: uri-js: 4.4.1 dev: true - /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - dev: true - /ansi-colors@4.1.1: resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} engines: {node: '>=6'} @@ -3159,11 +2705,6 @@ packages: color-convert: 2.0.1 dev: true - /ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - dev: true - /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} @@ -3189,10 +2730,6 @@ packages: default-require-extensions: 3.0.1 dev: true - /aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - dev: true - /archy@1.0.0: resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} dev: true @@ -3201,14 +2738,6 @@ packages: resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} engines: {node: '>=14'} - /are-we-there-yet@3.0.1: - resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.2 - dev: true - /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: @@ -3247,7 +2776,7 @@ packages: /array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 is-array-buffer: 3.0.2 dev: true @@ -3255,14 +2784,14 @@ packages: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} dev: true - /array-includes@3.1.6: - resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.1 - get-intrinsic: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 is-string: 1.0.7 dev: true @@ -3276,55 +2805,56 @@ packages: engines: {node: '>=0.10.0'} dev: true - /array.prototype.flat@1.3.1: - resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.1 - es-shim-unscopables: 1.0.0 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 dev: true - /array.prototype.flatmap@1.3.1: - resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.1 - es-shim-unscopables: 1.0.0 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 dev: true - /array.prototype.reduce@1.0.5: - resolution: {integrity: sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==} + /array.prototype.reduce@1.0.6: + resolution: {integrity: sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 es-array-method-boxes-properly: 1.0.0 is-string: 1.0.7 dev: true - /array.prototype.tosorted@1.1.1: - resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} + /array.prototype.tosorted@1.1.2: + resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.1 - es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + get-intrinsic: 1.2.2 dev: true - /arraybuffer.prototype.slice@1.0.1: - resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 - call-bind: 1.0.2 - define-properties: 1.2.0 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 dev: true @@ -3344,9 +2874,9 @@ packages: resolution: {integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==} engines: {node: '>=12.0.0'} dependencies: - pvtsutils: 1.3.2 + pvtsutils: 1.3.5 pvutils: 1.1.3 - tslib: 2.6.1 + tslib: 2.6.2 dev: true /assert-plus@1.0.0: @@ -3354,12 +2884,13 @@ packages: engines: {node: '>=0.8'} dev: true - /assert@2.0.0: - resolution: {integrity: sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==} + /assert@2.1.0: + resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} dependencies: - es6-object-assign: 1.1.0 + call-bind: 1.0.5 is-nan: 1.3.2 object-is: 1.1.5 + object.assign: 4.1.5 util: 0.12.5 dev: true @@ -3372,15 +2903,15 @@ packages: engines: {node: '>=0.10.0'} dev: true - /ast-types-flow@0.0.7: - resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} + /ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} dev: true /ast-types@0.16.1: resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} dependencies: - tslib: 2.6.1 + tslib: 2.6.2 dev: true /asynciterator.prototype@1.0.0: @@ -3412,8 +2943,8 @@ packages: resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} dev: true - /axe-core@4.7.2: - resolution: {integrity: sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==} + /axe-core@4.7.0: + resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} engines: {node: '>=4'} dev: true @@ -3440,38 +2971,38 @@ packages: - supports-color dev: true - /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.5): - resolution: {integrity: sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==} + /babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.23.6): + resolution: {integrity: sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.5 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.5) + '@babel/core': 7.23.6 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.8.5(@babel/core@7.23.5): - resolution: {integrity: sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA==} + /babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.6): + resolution: {integrity: sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.5) - core-js-compat: 3.33.0 + '@babel/core': 7.23.6 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) + core-js-compat: 3.34.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.5): - resolution: {integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==} + /babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.23.6): + resolution: {integrity: sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.5) + '@babel/core': 7.23.6 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) transitivePeerDependencies: - supports-color dev: true @@ -3486,7 +3017,7 @@ packages: dependencies: cache-base: 1.0.1 class-utils: 0.3.6 - component-emitter: 1.3.0 + component-emitter: 1.3.1 define-property: 1.0.0 isobject: 3.0.1 mixin-deep: 1.3.2 @@ -3503,11 +3034,6 @@ packages: resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} dev: true - /big-integer@1.6.51: - resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} - engines: {node: '>=0.6'} - dev: true - /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} @@ -3530,13 +3056,6 @@ packages: resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} dev: true - /bplist-parser@0.2.0: - resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} - engines: {node: '>= 5.10.0'} - dependencies: - big-integer: 1.6.51 - dev: true - /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -3584,15 +3103,15 @@ packages: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} dev: true - /browserslist@4.22.1: - resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + /browserslist@4.22.2: + resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001547 - electron-to-chromium: 1.4.550 - node-releases: 2.0.13 - update-browserslist-db: 1.0.13(browserslist@4.22.1) + caniuse-lite: 1.0.30001572 + electron-to-chromium: 1.4.616 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.22.2) dev: true /buffer-from@1.1.2: @@ -3609,13 +3128,6 @@ packages: semver: 7.5.4 dev: true - /bundle-name@3.0.0: - resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} - engines: {node: '>=12'} - dependencies: - run-applescript: 5.0.0 - dev: true - /busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -3623,26 +3135,21 @@ packages: streamsearch: 1.1.0 dev: true - /cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - dev: true - - /cacache@17.1.3: - resolution: {integrity: sha512-jAdjGxmPxZh0IipMdR7fK/4sDSrHMLUV0+GvVUsjwyGNKHsh79kW/otg+GkbXwl6Uzvy9wsvHOX4nUoWldeZMg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + /cacache@18.0.1: + resolution: {integrity: sha512-g4Uf2CFZPaxtJKre6qr4zqLDOOPU7bNVhWjlNhvzc51xaTOx2noMOLhfFkTAqwtrAZAKQUuDfyjitzilpA8WsQ==} + engines: {node: ^16.14.0 || >=18.0.0} dependencies: '@npmcli/fs': 3.1.0 - fs-minipass: 3.0.2 + fs-minipass: 3.0.3 glob: 10.3.10 - lru-cache: 7.18.3 - minipass: 5.0.0 - minipass-collect: 1.0.2 + lru-cache: 10.1.0 + minipass: 7.0.4 + minipass-collect: 2.0.1 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 p-map: 4.0.0 - ssri: 10.0.4 - tar: 6.1.15 + ssri: 10.0.5 + tar: 6.2.0 unique-filename: 3.0.0 dev: true @@ -3651,7 +3158,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: collection-visit: 1.0.0 - component-emitter: 1.3.0 + component-emitter: 1.3.1 get-value: 2.0.6 has-value: 1.0.0 isobject: 3.0.1 @@ -3671,11 +3178,12 @@ packages: write-file-atomic: 3.0.3 dev: true - /call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + /call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.2.1 + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + set-function-length: 1.1.1 dev: true /caller-callsite@2.0.0: @@ -3712,8 +3220,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001547: - resolution: {integrity: sha512-W7CrtIModMAxobGhz8iXmDfuJiiKg1WADMO/9x7/CLNin5cpSbuBjooyoIUVB5eyCc36QuTVlkVa1iB2S5+/eA==} + /caniuse-lite@1.0.30001572: + resolution: {integrity: sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==} dev: true /cardinal@2.1.1: @@ -3736,7 +3244,7 @@ packages: check-error: 1.0.3 deep-eql: 4.1.3 get-func-name: 2.0.2 - loupe: 2.3.6 + loupe: 2.3.7 pathval: 1.1.1 type-detect: 4.0.8 dev: true @@ -3790,7 +3298,7 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /chownr@2.0.0: @@ -3798,8 +3306,8 @@ packages: engines: {node: '>=10'} dev: true - /ci-info@3.8.0: - resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} dev: true @@ -3825,13 +3333,6 @@ packages: engines: {node: '>=6'} dev: true - /clean-stack@4.2.0: - resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} - engines: {node: '>=12'} - dependencies: - escape-string-regexp: 5.0.0 - dev: true - /clean-stack@5.2.0: resolution: {integrity: sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==} engines: {node: '>=14.16'} @@ -3926,11 +3427,6 @@ packages: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true - /color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - dev: true - /colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true @@ -3956,11 +3452,6 @@ packages: engines: {node: '>= 6'} dev: true - /comment-parser@1.4.0: - resolution: {integrity: sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==} - engines: {node: '>= 12.0.0'} - dev: true - /comment-parser@1.4.1: resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} engines: {node: '>= 12.0.0'} @@ -3976,8 +3467,8 @@ packages: dot-prop: 5.3.0 dev: true - /component-emitter@1.3.0: - resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} + /component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} dev: true /concat-map@0.0.1: @@ -3991,10 +3482,6 @@ packages: proto-list: 1.2.4 dev: true - /console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - dev: true - /contents@5.0.0: resolution: {integrity: sha512-wnnGorqo07ZSIzMQmUc4vUv1NEXl7elBtqoz5UcysV+pbSvphZYfI763rXgpFK2H9o5rvjQQ8kZxp7hOOwIe3A==} dependencies: @@ -4051,19 +3538,19 @@ packages: engines: {node: '>=0.10.0'} dev: true - /core-js-compat@3.33.0: - resolution: {integrity: sha512-0w4LcLXsVEuNkIqwjjf9rjCoPhK8uqA4tMRh4Ge26vfLtUutshn+aRJU21I9LCJlh2QQHfisNToLjw1XEJLTWw==} + /core-js-compat@3.34.0: + resolution: {integrity: sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==} dependencies: - browserslist: 4.22.1 + browserslist: 4.22.2 dev: true - /core-js-pure@3.32.0: - resolution: {integrity: sha512-qsev1H+dTNYpDUEURRuOXMvpdtAnNEvQWS/FMJ2Vb5AY8ZP4rAPQldkE27joykZPJTe0+IVgHZYh1P5Xu1/i1g==} + /core-js-pure@3.34.0: + resolution: {integrity: sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg==} requiresBuild: true dev: true - /core-js@3.32.0: - resolution: {integrity: sha512-rd4rYZNlF3WuoYuRIDEmbR/ga9CeuWX9U05umAvgrrZoHY4Z++cp/xwPQMvUpBB4Ag6J8KfD80G0zwCyaSxDww==} + /core-js@3.34.0: + resolution: {integrity: sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==} requiresBuild: true dev: true @@ -4095,14 +3582,20 @@ packages: path-type: 4.0.0 dev: true - /cosmiconfig@8.2.0: - resolution: {integrity: sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==} + /cosmiconfig@8.3.6(typescript@5.3.3): + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 + typescript: 5.3.3 dev: true /create-eslint-index@1.0.0: @@ -4251,24 +3744,6 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /default-browser-id@3.0.0: - resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} - engines: {node: '>=12'} - dependencies: - bplist-parser: 0.2.0 - untildify: 4.0.0 - dev: true - - /default-browser@4.0.0: - resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} - engines: {node: '>=14.16'} - dependencies: - bundle-name: 3.0.0 - default-browser-id: 3.0.0 - execa: 7.2.0 - titleize: 3.0.0 - dev: true - /default-require-extensions@3.0.1: resolution: {integrity: sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==} engines: {node: '>=8'} @@ -4276,34 +3751,21 @@ packages: strip-bom: 4.0.0 dev: true - /define-data-property@1.1.0: - resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} + /define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 gopd: 1.0.1 - has-property-descriptors: 1.0.0 - dev: true - - /define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - dev: true - - /define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} - engines: {node: '>= 0.4'} - dependencies: - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 + has-property-descriptors: 1.0.1 dev: true /define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.0 - has-property-descriptors: 1.0.0 + define-data-property: 1.1.1 + has-property-descriptors: 1.0.1 object-keys: 1.1.1 dev: true @@ -4311,21 +3773,21 @@ packages: resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} engines: {node: '>=0.10.0'} dependencies: - is-descriptor: 0.1.6 + is-descriptor: 0.1.7 dev: true /define-property@1.0.0: resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} engines: {node: '>=0.10.0'} dependencies: - is-descriptor: 1.0.2 + is-descriptor: 1.0.3 dev: true /define-property@2.0.2: resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} engines: {node: '>=0.10.0'} dependencies: - is-descriptor: 1.0.2 + is-descriptor: 1.0.3 isobject: 3.0.1 dev: true @@ -4334,15 +3796,6 @@ packages: engines: {node: '>=0.4.0'} dev: true - /delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - dev: true - - /depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - dev: true - /deprecation@2.3.1: resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} dev: true @@ -4352,11 +3805,6 @@ packages: engines: {node: '>=6'} dev: true - /diff-sequences@29.4.3: - resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - /diff@5.0.0: resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} engines: {node: '>=0.3.1'} @@ -4418,8 +3866,8 @@ packages: is-obj: 2.0.0 dev: true - /dset@3.1.2: - resolution: {integrity: sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==} + /dset@3.1.3: + resolution: {integrity: sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==} engines: {node: '>=4'} dev: true @@ -4440,8 +3888,8 @@ packages: safer-buffer: 2.1.2 dev: true - /electron-to-chromium@1.4.550: - resolution: {integrity: sha512-LfcsAzGj18xBYFM5WetwNQdqA03iLDozfCo0SWpu5G9zA5H1G/2GOiHOVnQdOrqaZ8vI8IiSgS3JMUrq930zsw==} + /electron-to-chromium@1.4.616: + resolution: {integrity: sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==} dev: true /emoji-regex@10.3.0: @@ -4525,26 +3973,26 @@ packages: is-arrayish: 0.2.1 dev: true - /es-abstract@1.22.1: - resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} + /es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.1 + arraybuffer.prototype.slice: 1.0.2 available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - es-set-tostringtag: 2.0.1 + call-bind: 1.0.5 + es-set-tostringtag: 2.0.2 es-to-primitive: 1.2.1 - function.prototype.name: 1.1.5 - get-intrinsic: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.2 get-symbol-description: 1.0.0 globalthis: 1.0.3 gopd: 1.0.1 - has: 1.0.3 - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.1 has-proto: 1.0.1 has-symbols: 1.0.3 - internal-slot: 1.0.5 + hasown: 2.0.0 + internal-slot: 1.0.6 is-array-buffer: 3.0.2 is-callable: 1.2.7 is-negative-zero: 2.0.2 @@ -4553,21 +4001,21 @@ packages: is-string: 1.0.7 is-typed-array: 1.1.12 is-weakref: 1.0.2 - object-inspect: 1.12.3 + object-inspect: 1.13.1 object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.5.0 - safe-array-concat: 1.0.0 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.7 - string.prototype.trimend: 1.0.6 - string.prototype.trimstart: 1.0.6 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 typed-array-buffer: 1.0.0 typed-array-byte-length: 1.0.0 typed-array-byte-offset: 1.0.0 typed-array-length: 1.0.4 unbox-primitive: 1.0.2 - which-typed-array: 1.1.11 + which-typed-array: 1.1.13 dev: true /es-array-method-boxes-properly@1.0.0: @@ -4578,34 +4026,34 @@ packages: resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} dependencies: asynciterator.prototype: 1.0.0 - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.1 - es-set-tostringtag: 2.0.1 - function-bind: 1.1.1 - get-intrinsic: 1.2.1 + es-abstract: 1.22.3 + es-set-tostringtag: 2.0.2 + function-bind: 1.1.2 + get-intrinsic: 1.2.2 globalthis: 1.0.3 - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.1 has-proto: 1.0.1 has-symbols: 1.0.3 - internal-slot: 1.0.5 + internal-slot: 1.0.6 iterator.prototype: 1.1.2 safe-array-concat: 1.0.1 dev: true - /es-set-tostringtag@2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + /es-set-tostringtag@2.0.2: + resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.1 - has: 1.0.3 + get-intrinsic: 1.2.2 has-tostringtag: 1.0.0 + hasown: 2.0.0 dev: true - /es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: - has: 1.0.3 + hasown: 2.0.0 dev: true /es-to-primitive@1.2.1: @@ -4621,40 +4069,6 @@ packages: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} dev: true - /es6-object-assign@1.1.0: - resolution: {integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==} - dev: true - - /esbuild@0.18.17: - resolution: {integrity: sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.18.17 - '@esbuild/android-arm64': 0.18.17 - '@esbuild/android-x64': 0.18.17 - '@esbuild/darwin-arm64': 0.18.17 - '@esbuild/darwin-x64': 0.18.17 - '@esbuild/freebsd-arm64': 0.18.17 - '@esbuild/freebsd-x64': 0.18.17 - '@esbuild/linux-arm': 0.18.17 - '@esbuild/linux-arm64': 0.18.17 - '@esbuild/linux-ia32': 0.18.17 - '@esbuild/linux-loong64': 0.18.17 - '@esbuild/linux-mips64el': 0.18.17 - '@esbuild/linux-ppc64': 0.18.17 - '@esbuild/linux-riscv64': 0.18.17 - '@esbuild/linux-s390x': 0.18.17 - '@esbuild/linux-x64': 0.18.17 - '@esbuild/netbsd-x64': 0.18.17 - '@esbuild/openbsd-x64': 0.18.17 - '@esbuild/sunos-x64': 0.18.17 - '@esbuild/win32-arm64': 0.18.17 - '@esbuild/win32-ia32': 0.18.17 - '@esbuild/win32-x64': 0.18.17 - dev: true - /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -4695,60 +4109,60 @@ packages: lodash.zip: 4.2.0 dev: true - /eslint-compat-utils@0.1.2(eslint@8.55.0): + /eslint-compat-utils@0.1.2(eslint@8.56.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 8.55.0 + eslint: 8.56.0 dev: true - /eslint-config-canonical@42.8.0(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.22.5)(@types/eslint@8.44.8)(@types/node@20.10.4)(eslint@8.55.0)(graphql@16.7.1)(typescript@5.3.3)(vitest@0.34.1): + /eslint-config-canonical@42.8.0(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.0)(@types/node@20.10.5)(eslint@8.56.0)(graphql@16.8.1)(typescript@5.3.3): resolution: {integrity: sha512-Jurs2GnTq9ISNwSt+ryYPy35smrfFQXGSTi9dLJvGqDP3bAI27U9TkUNozCwPNb0hxy8gsvwy2tA4IO8TV1Kcg==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 dependencies: - '@babel/core': 7.23.5 - '@babel/eslint-parser': 7.23.3(@babel/core@7.23.5)(eslint@8.55.0) - '@babel/eslint-plugin': 7.22.10(@babel/eslint-parser@7.23.3)(eslint@8.55.0) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.5) - '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.5)(@types/node@20.10.4)(graphql@16.7.1) + '@babel/core': 7.23.6 + '@babel/eslint-parser': 7.23.3(@babel/core@7.23.6)(eslint@8.56.0) + '@babel/eslint-plugin': 7.23.5(@babel/eslint-parser@7.23.3)(eslint@8.56.0) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.6) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.6)(@types/node@20.10.5)(graphql@16.8.1) '@next/eslint-plugin-next': 13.5.6 - '@rushstack/eslint-patch': 1.5.1 - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) - eslint: 8.55.0 - eslint-config-prettier: 9.0.0(eslint@8.55.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.13.2)(eslint-plugin-i@2.29.0)(eslint@8.55.0) - eslint-plugin-ava: 14.0.0(eslint@8.55.0) - eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@6.13.2)(eslint-plugin-i@2.29.0)(eslint@8.55.0)(typescript@5.3.3) - eslint-plugin-cypress: 2.15.1(eslint@8.55.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.55.0) - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.55.0) - eslint-plugin-fp: 2.3.0(eslint@8.55.0) - eslint-plugin-import: /eslint-plugin-i@2.29.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-typescript@3.6.1)(eslint@8.55.0) - eslint-plugin-jest: 27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.55.0)(typescript@5.3.3) - eslint-plugin-jsdoc: 46.8.2(eslint@8.55.0) - eslint-plugin-jsonc: 2.10.0(eslint@8.55.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@8.55.0) - eslint-plugin-lodash: 7.4.0(eslint@8.55.0) - eslint-plugin-mocha: 10.2.0(eslint@8.55.0) + '@rushstack/eslint-patch': 1.6.1 + '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-prettier: 9.1.0(eslint@8.56.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@8.56.0) + eslint-plugin-ava: 14.0.0(eslint@8.56.0) + eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-cypress: 2.15.1(eslint@8.56.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.56.0) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@8.56.0) + eslint-plugin-fp: 2.3.0(eslint@8.56.0) + eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-jsdoc: 46.9.1(eslint@8.56.0) + eslint-plugin-jsonc: 2.11.2(eslint@8.56.0) + eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0) + eslint-plugin-lodash: 7.4.0(eslint@8.56.0) + eslint-plugin-mocha: 10.2.0(eslint@8.56.0) eslint-plugin-modules-newline: 0.0.6 - eslint-plugin-n: 16.3.1(eslint@8.55.0) - eslint-plugin-prettier: 5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.0.0)(eslint@8.55.0)(prettier@3.0.3) - eslint-plugin-promise: 6.1.1(eslint@8.55.0) - eslint-plugin-react: 7.33.2(eslint@8.55.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.55.0) - eslint-plugin-regexp: 1.15.0(eslint@8.55.0) - eslint-plugin-simple-import-sort: 10.0.0(eslint@8.55.0) - eslint-plugin-typescript-sort-keys: 3.0.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3) - eslint-plugin-unicorn: 48.0.1(eslint@8.55.0) - eslint-plugin-vitest: 0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.55.0)(typescript@5.3.3)(vitest@0.34.1) - eslint-plugin-yml: 1.10.0(eslint@8.55.0) - eslint-plugin-zod: 1.4.0(eslint@8.55.0) - prettier: 3.0.3 + eslint-plugin-n: 16.5.0(eslint@8.56.0) + eslint-plugin-prettier: 5.1.2(@types/eslint@8.56.0)(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + eslint-plugin-react: 7.33.2(eslint@8.56.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0) + eslint-plugin-regexp: 1.15.0(eslint@8.56.0) + eslint-plugin-simple-import-sort: 10.0.0(eslint@8.56.0) + eslint-plugin-typescript-sort-keys: 3.1.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-unicorn: 48.0.1(eslint@8.56.0) + eslint-plugin-vitest: 0.3.20(@typescript-eslint/eslint-plugin@6.16.0)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-yml: 1.11.0(eslint@8.56.0) + eslint-plugin-zod: 1.4.0(eslint@8.56.0) + prettier: 3.1.1 ramda: 0.29.1 yaml-eslint-parser: 1.2.2 transitivePeerDependencies: @@ -4769,26 +4183,26 @@ packages: - vitest dev: true - /eslint-config-prettier@9.0.0(eslint@8.55.0): - resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} + /eslint-config-prettier@9.1.0(eslint@8.56.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.55.0 + eslint: 8.56.0 dev: true /eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 - is-core-module: 2.13.0 + is-core-module: 2.13.1 resolve: 1.22.8 transitivePeerDependencies: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.13.2)(eslint-plugin-i@2.29.0)(eslint@8.55.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@8.56.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4797,12 +4211,12 @@ packages: dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 - eslint: 8.55.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.55.0) - eslint-plugin-import: /eslint-plugin-i@2.29.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-typescript@3.6.1)(eslint@8.55.0) + eslint: 8.56.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) fast-glob: 3.3.2 - get-tsconfig: 4.6.2 - is-core-module: 2.13.0 + get-tsconfig: 4.7.2 + is-core-module: 2.13.1 is-glob: 4.0.3 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -4811,7 +4225,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.55.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4832,24 +4246,24 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 - eslint: 8.55.0 + eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.13.2)(eslint-plugin-i@2.29.0)(eslint@8.55.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@8.56.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-ava@14.0.0(eslint@8.55.0): + /eslint-plugin-ava@14.0.0(eslint@8.56.0): resolution: {integrity: sha512-XmKT6hppaipwwnLVwwvQliSU6AF1QMHiNoLD5JQfzhUhf0jY7CO0O624fQrE+Y/fTb9vbW8r77nKf7M/oHulxw==} engines: {node: '>=14.17 <15 || >=16.4'} peerDependencies: eslint: '>=8.26.0' dependencies: enhance-visitors: 1.0.0 - eslint: 8.55.0 - eslint-utils: 3.0.0(eslint@8.55.0) + eslint: 8.56.0 + eslint-utils: 3.0.0(eslint@8.56.0) espree: 9.6.1 espurify: 2.1.1 import-modules: 2.1.0 @@ -4858,23 +4272,23 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@6.13.2)(eslint-plugin-i@2.29.0)(eslint@8.55.0)(typescript@5.3.3): + /eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-0Egc0FKOnCRdu3bFEJhfHkdkusIgW0UxdemukkowZQnQsnf12FHSJ7K26b+tZ5pKB7cTyECSaqvEpoIJfplX4g==} engines: {node: '>=16.0.0'} dependencies: - '@typescript-eslint/utils': 6.7.5(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) chance: 1.1.11 debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.13.2)(eslint-plugin-i@2.29.0)(eslint@8.55.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.55.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 is-proto-prop: 2.0.0 lodash: 4.17.21 natural-compare: 1.4.0 - recast: 0.23.3 - roarr: 7.15.1 + recast: 0.23.4 + roarr: 7.21.0 ts-unused-exports: 9.0.5(typescript@5.3.3) xregexp: 5.1.1 transitivePeerDependencies: @@ -4887,39 +4301,39 @@ packages: - typescript dev: true - /eslint-plugin-cypress@2.15.1(eslint@8.55.0): + /eslint-plugin-cypress@2.15.1(eslint@8.56.0): resolution: {integrity: sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 8.55.0 - globals: 13.20.0 + eslint: 8.56.0 + globals: 13.24.0 dev: true - /eslint-plugin-es-x@7.4.0(eslint@8.55.0): - resolution: {integrity: sha512-WJa3RhYzBtl8I37ebY9p76s61UhZyi4KaFOnX2A5r32RPazkXj5yoT6PGnD02dhwzEUj0KwsUdqfKDd/OuvGsw==} + /eslint-plugin-es-x@7.5.0(eslint@8.56.0): + resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) - '@eslint-community/regexpp': 4.6.2 - eslint: 8.55.0 - eslint-compat-utils: 0.1.2(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/regexpp': 4.10.0 + eslint: 8.56.0 + eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true - /eslint-plugin-eslint-comments@3.2.0(eslint@8.55.0): + /eslint-plugin-eslint-comments@3.2.0(eslint@8.56.0): resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' dependencies: escape-string-regexp: 1.0.5 - eslint: 8.55.0 - ignore: 5.2.4 + eslint: 8.56.0 + ignore: 5.3.0 dev: true - /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.22.5)(eslint@8.55.0): + /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@8.56.0): resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -4927,41 +4341,40 @@ packages: '@babel/plugin-transform-react-jsx': ^7.14.9 eslint: ^8.1.0 dependencies: - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.23.5) - eslint: 8.55.0 + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.6) + eslint: 8.56.0 lodash: 4.17.21 string-natural-compare: 3.0.1 dev: true - /eslint-plugin-fp@2.3.0(eslint@8.55.0): + /eslint-plugin-fp@2.3.0(eslint@8.56.0): resolution: {integrity: sha512-3n2oHibwoIxAht9/+ZaTldhI6brXORgl8oNXqZd+d9xuAQt2SBJ2/aml0oQRMWvXrgsz2WG6wfC++NjzSG3prA==} engines: {node: '>=4.0.0'} peerDependencies: eslint: '>=3' dependencies: create-eslint-index: 1.0.0 - eslint: 8.55.0 + eslint: 8.56.0 eslint-ast-utils: 1.1.0 lodash: 4.17.21 req-all: 0.1.0 dev: true - /eslint-plugin-i@2.29.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-typescript@3.6.1)(eslint@8.55.0): - resolution: {integrity: sha512-slGeTS3GQzx9267wLJnNYNO8X9EHGsc75AKIAFvnvMYEcTJKotPKL1Ru5PIGVHIVet+2DsugePWp8Oxpx8G22w==} + /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): + resolution: {integrity: sha512-ORizX37MelIWLbMyqI7hi8VJMf7A0CskMmYkB+lkCX3aF4pkGV7kwx5bSEb4qx7Yce2rAf9s34HqDRPjGRZPNQ==} engines: {node: '>=12'} peerDependencies: eslint: ^7.2.0 || ^8 dependencies: - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.55.0 + debug: 4.3.4(supports-color@8.1.1) + doctrine: 3.0.0 + eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.55.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) get-tsconfig: 4.7.2 is-glob: 4.0.3 minimatch: 3.1.2 - resolve: 1.22.8 semver: 7.5.4 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -4970,8 +4383,8 @@ packages: - supports-color dev: true - /eslint-plugin-jest@27.4.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.55.0)(typescript@5.3.3): - resolution: {integrity: sha512-3Nfvv3wbq2+PZlRTf2oaAWXWwbdBejFRBR2O8tAO67o+P8zno+QGbcDYaAXODlreXVg+9gvWhKKmG2rgfb8GEg==} + /eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': ^5.0.0 || ^6.0.0 @@ -4983,90 +4396,92 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/utils': 5.62.0(eslint@8.55.0)(typescript@5.3.3) - eslint: 8.55.0 + '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsdoc@46.8.2(eslint@8.55.0): - resolution: {integrity: sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ==} + /eslint-plugin-jsdoc@46.9.1(eslint@8.56.0): + resolution: {integrity: sha512-11Ox5LCl2wY7gGkp9UOyew70o9qvii1daAH+h/MFobRVRNcy7sVlH+jm0HQdgcvcru6285GvpjpUyoa051j03Q==} engines: {node: '>=16'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@es-joy/jsdoccomment': 0.40.1 + '@es-joy/jsdoccomment': 0.41.0 are-docs-informative: 0.0.2 - comment-parser: 1.4.0 + comment-parser: 1.4.1 debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 8.55.0 + eslint: 8.56.0 esquery: 1.5.0 is-builtin-module: 3.2.1 semver: 7.5.4 - spdx-expression-parse: 3.0.1 + spdx-expression-parse: 4.0.0 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-jsonc@2.10.0(eslint@8.55.0): - resolution: {integrity: sha512-9d//o6Jyh4s1RxC9fNSt1+MMaFN2ruFdXPG9XZcb/mR2KkfjADYiNL/hbU6W0Cyxfg3tS/XSFuhl5LgtMD8hmw==} + /eslint-plugin-jsonc@2.11.2(eslint@8.56.0): + resolution: {integrity: sha512-F6A0MZhIGRBPOswzzn4tJFXXkPLiLwJaMlQwz/Qj1qx+bV5MCn79vBeJh2ynMmtqqHloi54KDCnsT/KWrcCcnQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) - eslint: 8.55.0 - eslint-compat-utils: 0.1.2(eslint@8.55.0) - jsonc-eslint-parser: 2.3.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + eslint: 8.56.0 + eslint-compat-utils: 0.1.2(eslint@8.56.0) + espree: 9.6.1 + graphemer: 1.4.0 + jsonc-eslint-parser: 2.4.0 natural-compare: 1.4.0 dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.55.0): - resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} + /eslint-plugin-jsx-a11y@6.8.0(eslint@8.56.0): + resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} engines: {node: '>=4.0'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.23.6 aria-query: 5.3.0 - array-includes: 3.1.6 - array.prototype.flatmap: 1.3.1 - ast-types-flow: 0.0.7 - axe-core: 4.7.2 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.8 + axe-core: 4.7.0 axobject-query: 3.2.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.55.0 - has: 1.0.3 + es-iterator-helpers: 1.0.15 + eslint: 8.56.0 + hasown: 2.0.0 jsx-ast-utils: 3.3.5 - language-tags: 1.0.5 + language-tags: 1.0.9 minimatch: 3.1.2 - object.entries: 1.1.6 - object.fromentries: 2.0.6 - semver: 6.3.1 + object.entries: 1.1.7 + object.fromentries: 2.0.7 dev: true - /eslint-plugin-lodash@7.4.0(eslint@8.55.0): + /eslint-plugin-lodash@7.4.0(eslint@8.56.0): resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} engines: {node: '>=10'} peerDependencies: eslint: '>=2' dependencies: - eslint: 8.55.0 + eslint: 8.56.0 lodash: 4.17.21 dev: true - /eslint-plugin-mocha@10.2.0(eslint@8.55.0): + /eslint-plugin-mocha@10.2.0(eslint@8.56.0): resolution: {integrity: sha512-ZhdxzSZnd1P9LqDPF0DBcFLpRIGdh1zkF2JHnQklKQOvrQtT73kdP5K9V2mzvbLR+cCAO9OI48NXK/Ax9/ciCQ==} engines: {node: '>=14.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.55.0 - eslint-utils: 3.0.0(eslint@8.55.0) + eslint: 8.56.0 + eslint-utils: 3.0.0(eslint@8.56.0) rambda: 7.5.0 dev: true @@ -5077,27 +4492,27 @@ packages: requireindex: 1.1.0 dev: true - /eslint-plugin-n@16.3.1(eslint@8.55.0): - resolution: {integrity: sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==} + /eslint-plugin-n@16.5.0(eslint@8.56.0): + resolution: {integrity: sha512-Hw02Bj1QrZIlKyj471Tb1jSReTl4ghIMHGuBGiMVmw+s0jOPbI4CBuYpGbZr+tdQ+VAvSK6FDSta3J4ib/SKHQ==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) builtins: 5.0.1 - eslint: 8.55.0 - eslint-plugin-es-x: 7.4.0(eslint@8.55.0) + eslint: 8.56.0 + eslint-plugin-es-x: 7.5.0(eslint@8.56.0) get-tsconfig: 4.7.2 - ignore: 5.2.4 + ignore: 5.3.0 is-builtin-module: 3.2.1 - is-core-module: 2.13.0 + is-core-module: 2.13.1 minimatch: 3.1.2 - resolve: 1.22.3 + resolve: 1.22.8 semver: 7.5.4 dev: true - /eslint-plugin-prettier@5.0.1(@types/eslint@8.44.8)(eslint-config-prettier@9.0.0)(eslint@8.55.0)(prettier@3.0.3): - resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} + /eslint-plugin-prettier@5.1.2(@types/eslint@8.56.0)(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1): + resolution: {integrity: sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -5110,67 +4525,67 @@ packages: eslint-config-prettier: optional: true dependencies: - '@types/eslint': 8.44.8 - eslint: 8.55.0 - eslint-config-prettier: 9.0.0(eslint@8.55.0) - prettier: 3.0.3 + '@types/eslint': 8.56.0 + eslint: 8.56.0 + eslint-config-prettier: 9.1.0(eslint@8.56.0) + prettier: 3.1.1 prettier-linter-helpers: 1.0.0 - synckit: 0.8.5 + synckit: 0.8.8 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.55.0): + /eslint-plugin-promise@6.1.1(eslint@8.56.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.55.0 + eslint: 8.56.0 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.55.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.56.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.55.0 + eslint: 8.56.0 dev: true - /eslint-plugin-react@7.33.2(eslint@8.55.0): + /eslint-plugin-react@7.33.2(eslint@8.56.0): resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - array-includes: 3.1.6 - array.prototype.flatmap: 1.3.1 - array.prototype.tosorted: 1.1.1 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.2 doctrine: 2.1.0 es-iterator-helpers: 1.0.15 - eslint: 8.55.0 + eslint: 8.56.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 - object.entries: 1.1.6 - object.fromentries: 2.0.6 - object.hasown: 1.1.2 - object.values: 1.1.6 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 prop-types: 15.8.1 - resolve: 2.0.0-next.4 + resolve: 2.0.0-next.5 semver: 6.3.1 - string.prototype.matchall: 4.0.8 + string.prototype.matchall: 4.0.10 dev: true - /eslint-plugin-regexp@1.15.0(eslint@8.55.0): + /eslint-plugin-regexp@1.15.0(eslint@8.56.0): resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} engines: {node: ^12 || >=14} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) - '@eslint-community/regexpp': 4.6.2 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/regexpp': 4.10.0 comment-parser: 1.4.1 - eslint: 8.55.0 + eslint: 8.56.0 grapheme-splitter: 1.0.4 jsdoctypeparser: 9.0.0 refa: 0.11.0 @@ -5178,25 +4593,25 @@ packages: scslre: 0.2.0 dev: true - /eslint-plugin-simple-import-sort@10.0.0(eslint@8.55.0): + /eslint-plugin-simple-import-sort@10.0.0(eslint@8.56.0): resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 8.55.0 + eslint: 8.56.0 dev: true - /eslint-plugin-typescript-sort-keys@3.0.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3): - resolution: {integrity: sha512-bMmI4prYlf3l/1O8j8Nsz11m+XfKEHRFk9aJqP91L4Hgy7I38lnitnYElDmPQaznE1oFlGgBcnkEizNT2NLylQ==} + /eslint-plugin-typescript-sort-keys@3.1.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-rgZeYfEguqKni/V7sbmgFu9/94UDAQd7YqNd0J7Qhw7SdLIGd0iBk2KgpjhRhe2ge4rPSLDIdFWwUiDqBOst6Q==} engines: {node: '>= 16'} peerDependencies: '@typescript-eslint/parser': ^6 eslint: ^7 || ^8 typescript: ^3 || ^4 || ^5 dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) - eslint: 8.55.0 + '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 typescript: 5.3.3 @@ -5204,17 +4619,17 @@ packages: - supports-color dev: true - /eslint-plugin-unicorn@48.0.1(eslint@8.55.0): + /eslint-plugin-unicorn@48.0.1(eslint@8.56.0): resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} engines: {node: '>=16'} peerDependencies: eslint: '>=8.44.0' dependencies: '@babel/helper-validator-identifier': 7.22.20 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) - ci-info: 3.8.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + ci-info: 3.9.0 clean-regexp: 1.0.0 - eslint: 8.55.0 + eslint: 8.56.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -5228,9 +4643,9 @@ packages: strip-indent: 3.0.0 dev: true - /eslint-plugin-vitest@0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.55.0)(typescript@5.3.3)(vitest@0.34.1): - resolution: {integrity: sha512-A1P0qJVkqHyfDolwm09h8/gu7SbGFOKbacJSeyZ9IRb8uyddgqLcqv4VrqgQfLA7QmGI9lwj1iV90NyZ1cHp8Q==} - engines: {node: 14.x || >= 16} + /eslint-plugin-vitest@0.3.20(@typescript-eslint/eslint-plugin@6.16.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-O05k4j9TGMOkkghj9dRgpeLDyOSiVIxQWgNDPfhYPm5ioJsehcYV/zkRLekQs+c8+RBCVXucSED3fYOyy2EoWA==} + engines: {node: ^18.0.0 || >= 20.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': '*' eslint: '>=8.0.0' @@ -5238,25 +4653,26 @@ packages: peerDependenciesMeta: '@typescript-eslint/eslint-plugin': optional: true + vitest: + optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.7.5(eslint@8.55.0)(typescript@5.3.3) - eslint: 8.55.0 - vitest: 0.34.1 + '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-yml@1.10.0(eslint@8.55.0): - resolution: {integrity: sha512-53SUwuNDna97lVk38hL/5++WXDuugPM9SUQ1T645R0EHMRCdBIIxGye/oOX2qO3FQ7aImxaUZJU/ju+NMUBrLQ==} + /eslint-plugin-yml@1.11.0(eslint@8.56.0): + resolution: {integrity: sha512-NBZP1NDGy0u38pY5ieix75jxS9GNOJy9xd4gQa0rU4gWbfEsVhKDwuFaQ6RJpDbv6Lq5TtcAZS/YnAc0oeRw0w==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4(supports-color@8.1.1) - eslint: 8.55.0 - eslint-compat-utils: 0.1.2(eslint@8.55.0) + eslint: 8.56.0 + eslint-compat-utils: 0.1.2(eslint@8.56.0) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.2 @@ -5264,13 +4680,13 @@ packages: - supports-color dev: true - /eslint-plugin-zod@1.4.0(eslint@8.55.0): + /eslint-plugin-zod@1.4.0(eslint@8.56.0): resolution: {integrity: sha512-i9WzQGw2X5fQcuQh33mA8DQjZJM/yuyZvs1Fc5EyTidX7Ed/g832+1FEQ4u5gtXy+jZ+DVsB5+oMHj4tIOfeZg==} engines: {node: '>=12'} peerDependencies: eslint: '>=8.1.0' dependencies: - eslint: 8.55.0 + eslint: 8.56.0 dev: true /eslint-rule-composer@0.3.0: @@ -5294,13 +4710,13 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils@3.0.0(eslint@8.55.0): + /eslint-utils@3.0.0(eslint@8.56.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.55.0 + eslint: 8.56.0 eslint-visitor-keys: 2.1.0 dev: true @@ -5309,25 +4725,20 @@ packages: engines: {node: '>=10'} dev: true - /eslint-visitor-keys@3.4.2: - resolution: {integrity: sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - /eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.55.0: - resolution: {integrity: sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==} + /eslint@8.56.0: + resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) - '@eslint-community/regexpp': 4.6.2 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.55.0 + '@eslint/js': 8.56.0 '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -5347,9 +4758,9 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.20.0 + globals: 13.24.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -5370,9 +4781,9 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.2 + acorn: 8.11.2 + acorn-jsx: 5.3.2(acorn@8.11.2) + eslint-visitor-keys: 3.4.3 dev: true /esprima@4.0.1: @@ -5444,21 +4855,6 @@ packages: strip-final-newline: 2.0.0 dev: true - /execa@7.2.0: - resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 4.3.1 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.1.0 - onetime: 6.0.0 - signal-exit: 3.0.7 - strip-final-newline: 3.0.0 - dev: true - /execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} @@ -5468,7 +4864,7 @@ packages: human-signals: 5.0.0 is-stream: 3.0.0 merge-stream: 2.0.0 - npm-run-path: 5.1.0 + npm-run-path: 5.2.0 onetime: 6.0.0 signal-exit: 4.1.0 strip-final-newline: 3.0.0 @@ -5565,17 +4961,6 @@ packages: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true - /fast-json-stringify@5.8.0: - resolution: {integrity: sha512-VVwK8CFMSALIvt14U8AvrSzQAwN/0vaVRiFFUVlpnXSnDGrSkOAO5MtzyN8oQNjLd5AqTW5OZRgyjoNuAuR3jQ==} - dependencies: - '@fastify/deepmerge': 1.3.0 - ajv: 8.12.0 - ajv-formats: 2.1.1(ajv@8.12.0) - fast-deep-equal: 3.1.3 - fast-uri: 2.2.0 - rfdc: 1.3.0 - dev: true - /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true @@ -5593,18 +4978,14 @@ packages: fast-decode-uri-component: 1.0.1 dev: true - /fast-uri@2.2.0: - resolution: {integrity: sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg==} - dev: true - /fast-url-parser@1.1.3: resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} dependencies: punycode: 1.4.1 dev: true - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + /fastq@1.16.0: + resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} dependencies: reusify: 1.0.4 dev: true @@ -5627,7 +5008,7 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flat-cache: 3.0.4 + flat-cache: 3.2.0 dev: true /filesize@6.4.0: @@ -5706,14 +5087,6 @@ packages: path-exists: 4.0.0 dev: true - /find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - locate-path: 7.2.0 - path-exists: 5.0.0 - dev: true - /find-versions@5.1.0: resolution: {integrity: sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==} engines: {node: '>=12'} @@ -5721,11 +5094,12 @@ packages: semver-regex: 4.0.5 dev: true - /flat-cache@3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.7 + flatted: 3.2.9 + keyv: 4.5.4 rimraf: 3.0.2 dev: true @@ -5734,8 +5108,8 @@ packages: hasBin: true dev: true - /flatted@3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} dev: true /for-each@0.3.3: @@ -5796,13 +5170,13 @@ packages: resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==} dev: true - /fs-extra@11.1.1: - resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 - universalify: 2.0.0 + universalify: 2.0.1 dev: true /fs-minipass@2.1.0: @@ -5812,11 +5186,11 @@ packages: minipass: 3.3.6 dev: true - /fs-minipass@3.0.2: - resolution: {integrity: sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==} + /fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - minipass: 5.0.0 + minipass: 7.0.4 dev: true /fs-readdir-recursive@1.1.0: @@ -5827,25 +5201,25 @@ packages: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true dev: true optional: true - /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} dev: true - /function.prototype.name@1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 functions-have-names: 1.2.3 dev: true @@ -5853,20 +5227,6 @@ packages: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true - /gauge@4.0.4: - resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - aproba: 2.0.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - dev: true - /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -5886,13 +5246,13 @@ packages: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} dev: true - /get-intrinsic@1.2.1: - resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + /get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} dependencies: - function-bind: 1.1.1 - has: 1.0.3 + function-bind: 1.1.2 has-proto: 1.0.1 has-symbols: 1.0.3 + hasown: 2.0.0 dev: true /get-package-type@0.1.0: @@ -5931,14 +5291,8 @@ packages: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - dev: true - - /get-tsconfig@4.6.2: - resolution: {integrity: sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg==} - dependencies: - resolve-pkg-maps: 1.0.0 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 dev: true /get-tsconfig@4.7.2: @@ -5976,7 +5330,7 @@ packages: split2: 1.0.0 stream-combiner2: 1.1.1 through2: 2.0.5 - traverse: 0.6.7 + traverse: 0.6.8 dev: true /gitdown@3.1.5: @@ -5994,7 +5348,7 @@ packages: lodash: 4.17.21 markdown-contents: 1.0.11 marked: 2.1.3 - moment: 2.29.4 + moment: 2.30.1 stack-trace: 0.0.10 yargs: 16.2.0 transitivePeerDependencies: @@ -6030,7 +5384,7 @@ packages: foreground-child: 3.1.1 jackspeak: 2.3.6 minimatch: 9.0.3 - minipass: 7.0.2 + minipass: 7.0.4 path-scurry: 1.10.1 dev: true @@ -6072,8 +5426,8 @@ packages: engines: {node: '>=4'} dev: true - /globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -6083,7 +5437,7 @@ packages: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} dependencies: - define-properties: 1.2.0 + define-properties: 1.2.1 dev: true /globby@11.1.0: @@ -6093,7 +5447,7 @@ packages: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.2.4 + ignore: 5.3.0 merge2: 1.4.1 slash: 3.0.0 dev: true @@ -6104,7 +5458,7 @@ packages: dependencies: '@sindresorhus/merge-streams': 1.0.0 fast-glob: 3.3.2 - ignore: 5.2.4 + ignore: 5.3.0 path-type: 5.0.0 slash: 5.1.0 unicorn-magic: 0.1.0 @@ -6113,7 +5467,7 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 dev: true /graceful-fs@4.2.10: @@ -6132,7 +5486,7 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql-config@4.5.0(@types/node@20.10.4)(graphql@16.7.1): + /graphql-config@4.5.0(@types/node@20.10.5)(graphql@16.8.1): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -6142,18 +5496,18 @@ packages: cosmiconfig-toml-loader: optional: true dependencies: - '@graphql-tools/graphql-file-loader': 7.5.17(graphql@16.7.1) - '@graphql-tools/json-file-loader': 7.4.18(graphql@16.7.1) - '@graphql-tools/load': 7.8.14(graphql@16.7.1) - '@graphql-tools/merge': 8.4.2(graphql@16.7.1) - '@graphql-tools/url-loader': 7.17.18(@types/node@20.10.4)(graphql@16.7.1) - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) + '@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.10.5)(graphql@16.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) cosmiconfig: 8.0.0 - graphql: 16.7.1 + graphql: 16.8.1 jiti: 1.17.1 minimatch: 4.2.3 string-env-interpolation: 1.0.1 - tslib: 2.6.1 + tslib: 2.6.2 transitivePeerDependencies: - '@types/node' - bufferutil @@ -6161,27 +5515,27 @@ packages: - utf-8-validate dev: true - /graphql-depth-limit@1.1.0(graphql@16.7.1): + /graphql-depth-limit@1.1.0(graphql@16.8.1): resolution: {integrity: sha512-+3B2BaG8qQ8E18kzk9yiSdAa75i/hnnOwgSeAxVJctGQPvmeiLtqKOYF6HETCyRjiF7Xfsyal0HbLlxCQkgkrw==} engines: {node: '>=6.0.0'} peerDependencies: graphql: '*' dependencies: arrify: 1.0.1 - graphql: 16.7.1 + graphql: 16.8.1 dev: true - /graphql-ws@5.12.1(graphql@16.7.1): + /graphql-ws@5.12.1(graphql@16.8.1): resolution: {integrity: sha512-umt4f5NnMK46ChM2coO36PTFhHouBrK9stWWBczERguwYrGnPNxJ9dimU6IyOBfOkC6Izhkg4H8+F51W/8CYDg==} engines: {node: '>=10'} peerDependencies: graphql: '>=0.11 <=16' dependencies: - graphql: 16.7.1 + graphql: 16.8.1 dev: true - /graphql@16.7.1: - resolution: {integrity: sha512-DRYR9tf+UGU0KOsMcKAlXeFfX89UiiIZ0dRU3mR0yJfu6OjZqUcp68NnFLnqQU5RexygFoDy1EW+ccOYcPfmHg==} + /graphql@16.8.1: + resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} dev: true @@ -6225,10 +5579,10 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - /has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + /has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 dev: true /has-proto@1.0.1: @@ -6248,10 +5602,6 @@ packages: has-symbols: 1.0.3 dev: true - /has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - dev: true - /has-value@0.3.1: resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} engines: {node: '>=0.10.0'} @@ -6283,13 +5633,6 @@ packages: kind-of: 4.0.0 dev: true - /has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.1 - dev: true - /hasha@5.2.2: resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==} engines: {node: '>=8'} @@ -6298,6 +5641,13 @@ packages: type-fest: 0.8.1 dev: true + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + /he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true @@ -6319,18 +5669,11 @@ packages: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true - /hosted-git-info@6.1.1: - resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - lru-cache: 7.18.3 - dev: true - /hosted-git-info@7.0.1: resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: - lru-cache: 10.0.1 + lru-cache: 10.1.0 dev: true /html-escaper@2.0.2: @@ -6352,17 +5695,6 @@ packages: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} dev: true - /http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} - dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 - debug: 4.3.4(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - dev: true - /http-proxy-agent@7.0.0: resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} engines: {node: '>= 14'} @@ -6379,21 +5711,11 @@ packages: dependencies: assert-plus: 1.0.0 jsprim: 1.4.2 - sshpk: 1.17.0 - dev: true - - /https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - dependencies: - agent-base: 6.0.2 - debug: 4.3.4(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color + sshpk: 1.18.0 dev: true - /https-proxy-agent@7.0.1: - resolution: {integrity: sha512-Eun8zV0kcYS1g19r78osiQLEFIRspRUDd9tIfBCTBPBeMieF/EsJNL8VI3xOIdYRDEkjQnqOYPsZ2DsWsVsFwQ==} + /https-proxy-agent@7.0.2: + resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 @@ -6407,22 +5729,11 @@ packages: engines: {node: '>=10.17.0'} dev: true - /human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} - dev: true - /human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} dev: true - /humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - dependencies: - ms: 2.1.3 - dev: true - /husky@8.0.3: resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} engines: {node: '>=14'} @@ -6438,8 +5749,8 @@ packages: dev: true optional: true - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} engines: {node: '>= 4'} dev: true @@ -6459,11 +5770,6 @@ packages: resolve-from: 4.0.0 dev: true - /import-from-esm@1.0.3: - resolution: {integrity: sha512-bncoEU7L4Vi5OoeygZuBUP9IC1AxavLR4UMCwZ9FtujOhDG1PDEo7IpCdfeOxKfrMCGwoK6UXpF9q/cXTA/ejg==} - engines: {node: '>=16.20'} - dev: true - /import-from-esm@1.3.3: resolution: {integrity: sha512-U3Qt/CyfFpTUv6LOP2jRTLYjphH6zg3okMfHbyqRa/W2w6hr8OsJWVggNlR4jxuojQy81TgTJTxgSkyoteRGMQ==} engines: {node: '>=16.20'} @@ -6474,11 +5780,6 @@ packages: - supports-color dev: true - /import-from@4.0.0: - resolution: {integrity: sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==} - engines: {node: '>=12.2'} - dev: true - /import-meta-resolve@4.0.0: resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} dev: true @@ -6503,8 +5804,8 @@ packages: engines: {node: '>=12'} dev: true - /index-to-position@0.1.0: - resolution: {integrity: sha512-I6PLk0E6Jk8t/W212xp9euPed30tIN9mYdslb0Vkd03hG9sd0pByboBdtIRL+Y/103JLp1alP3OuMgxfbIQyFw==} + /index-to-position@0.1.2: + resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==} engines: {node: '>=18'} dev: true @@ -6523,17 +5824,17 @@ packages: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: true - /install-artifact-from-github@1.3.3: - resolution: {integrity: sha512-x79SL0d8WOi1ZjXSTUqqs0GPQZ92YArJAN9O46wgU9wdH2U9ecyyhB9YGDbPe2OLV4ptmt6AZYRQZ2GydQZosQ==} + /install-artifact-from-github@1.3.5: + resolution: {integrity: sha512-gZHC7f/cJgXz7MXlHFBxPVMsvIbev1OQN1uKQYKVJDydGNm9oYf9JstbU4Atnh/eSvk41WtEovoRm+8IF686xg==} hasBin: true dev: true - /internal-slot@1.0.5: - resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + /internal-slot@1.0.6: + resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.1 - has: 1.0.3 + get-intrinsic: 1.2.2 + hasown: 2.0.0 side-channel: 1.0.4 dev: true @@ -6554,33 +5855,26 @@ packages: resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} dev: true - /is-accessor-descriptor@0.1.6: - resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /is-accessor-descriptor@1.0.0: - resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} - engines: {node: '>=0.10.0'} + /is-accessor-descriptor@1.0.1: + resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} + engines: {node: '>= 0.10'} dependencies: - kind-of: 6.0.3 + hasown: 2.0.0 dev: true /is-arguments@1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-tostringtag: 1.0.0 dev: true /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 is-typed-array: 1.1.12 dev: true @@ -6613,7 +5907,7 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-tostringtag: 1.0.0 dev: true @@ -6632,30 +5926,17 @@ packages: engines: {node: '>= 0.4'} dev: true - /is-core-module@2.12.1: - resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} - dependencies: - has: 1.0.3 - dev: true - - /is-core-module@2.13.0: - resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} - dependencies: - has: 1.0.3 - dev: true - - /is-data-descriptor@0.1.4: - resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} - engines: {node: '>=0.10.0'} + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - kind-of: 3.2.2 + hasown: 2.0.0 dev: true - /is-data-descriptor@1.0.0: - resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} - engines: {node: '>=0.10.0'} + /is-data-descriptor@1.0.1: + resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} + engines: {node: '>= 0.4'} dependencies: - kind-of: 6.0.3 + hasown: 2.0.0 dev: true /is-date-object@1.0.5: @@ -6665,22 +5946,20 @@ packages: has-tostringtag: 1.0.0 dev: true - /is-descriptor@0.1.6: - resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} - engines: {node: '>=0.10.0'} + /is-descriptor@0.1.7: + resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} + engines: {node: '>= 0.4'} dependencies: - is-accessor-descriptor: 0.1.6 - is-data-descriptor: 0.1.4 - kind-of: 5.1.0 + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 dev: true - /is-descriptor@1.0.2: - resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} - engines: {node: '>=0.10.0'} + /is-descriptor@1.0.3: + resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} + engines: {node: '>= 0.4'} dependencies: - is-accessor-descriptor: 1.0.0 - is-data-descriptor: 1.0.0 - kind-of: 6.0.3 + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 dev: true /is-directory@0.3.1: @@ -6694,12 +5973,6 @@ packages: hasBin: true dev: true - /is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - dev: true - /is-extendable@0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} @@ -6720,7 +5993,7 @@ packages: /is-finalizationregistry@1.0.2: resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 dev: true /is-fullwidth-code-point@3.0.0: @@ -6761,14 +6034,6 @@ packages: is-extglob: 2.1.1 dev: true - /is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - dependencies: - is-docker: 3.0.0 - dev: true - /is-js-type@2.0.0: resolution: {integrity: sha512-Aj13l47+uyTjlQNHtXBV8Cji3jb037vxwMWCgopRR8h6xocgBGW3qG8qGlIOEmbXQtkKShKuBM9e8AA1OeQ+xw==} dependencies: @@ -6787,7 +6052,7 @@ packages: resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 dev: true @@ -6845,11 +6110,6 @@ packages: isobject: 3.0.1 dev: true - /is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} - dev: true - /is-proto-prop@2.0.0: resolution: {integrity: sha512-jl3NbQ/fGLv5Jhan4uX+Ge9ohnemqyblWVVCpAvtTQzNFvV2xhJq+esnkIbYQ9F1nITXoLfDDQLp7LBw/zzncg==} dependencies: @@ -6861,7 +6121,7 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-tostringtag: 1.0.0 dev: true @@ -6872,7 +6132,7 @@ packages: /is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 dev: true /is-stream@1.1.0: @@ -6915,7 +6175,7 @@ packages: resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} dependencies: - which-typed-array: 1.1.11 + which-typed-array: 1.1.13 dev: true /is-typedarray@1.0.0: @@ -6939,14 +6199,14 @@ packages: /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 dev: true /is-weakset@2.0.2: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 dev: true /is-windows@1.0.2: @@ -6973,6 +6233,11 @@ packages: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true + /isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + dev: true + /isobject@2.1.0: resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} engines: {node: '>=0.10.0'} @@ -6993,6 +6258,14 @@ packages: ws: 8.13.0 dev: true + /isomorphic-ws@5.0.0(ws@8.16.0): + resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} + peerDependencies: + ws: '*' + dependencies: + ws: 8.16.0 + dev: true + /isstream@0.1.2: resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} dev: true @@ -7008,8 +6281,8 @@ packages: lodash.uniqby: 4.7.0 dev: true - /istanbul-lib-coverage@3.2.0: - resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} dev: true @@ -7024,9 +6297,9 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.6 '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -7036,10 +6309,10 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.5 - '@babel/parser': 7.22.7 + '@babel/core': 7.23.6 + '@babel/parser': 7.23.6 '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -7051,7 +6324,7 @@ packages: dependencies: archy: 1.0.0 cross-spawn: 7.0.3 - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 p-map: 3.0.0 rimraf: 3.0.2 uuid: 8.3.2 @@ -7061,7 +6334,7 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} dependencies: - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 dev: true @@ -7071,7 +6344,7 @@ packages: engines: {node: '>=10'} dependencies: debug: 4.3.4(supports-color@8.1.1) - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: - supports-color @@ -7089,7 +6362,7 @@ packages: resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} dependencies: define-properties: 1.2.1 - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 has-symbols: 1.0.3 reflect.getprototypeof: 1.0.4 set-function-name: 2.0.1 @@ -7190,6 +6463,10 @@ packages: hasBin: true dev: true + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + /json-parse-better-errors@1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} dev: true @@ -7198,19 +6475,10 @@ packages: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true - /json-parse-even-better-errors@3.0.0: - resolution: {integrity: sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true - /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: true - /json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} dev: true @@ -7236,24 +6504,20 @@ packages: hasBin: true dev: true - /jsonc-eslint-parser@2.3.0: - resolution: {integrity: sha512-9xZPKVYp9DxnM3sd1yAsh/d59iIaswDkai8oTxbursfKYbg/ibjX0IzFt35+VZ8iEW453TVTXztnRvYUQlAfUQ==} + /jsonc-eslint-parser@2.4.0: + resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.10.0 + acorn: 8.11.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 semver: 7.5.4 dev: true - /jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - dev: true - /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: - universalify: 2.0.0 + universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 dev: true @@ -7277,10 +6541,16 @@ packages: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} dependencies: - array-includes: 3.1.6 - array.prototype.flat: 1.3.1 - object.assign: 4.1.4 - object.values: 1.1.6 + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + object.assign: 4.1.5 + object.values: 1.1.7 + dev: true + + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 dev: true /kind-of@3.2.2: @@ -7297,11 +6567,6 @@ packages: is-buffer: 1.1.6 dev: true - /kind-of@5.1.0: - resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} - engines: {node: '>=0.10.0'} - dev: true - /kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -7311,8 +6576,9 @@ packages: resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} dev: true - /language-tags@1.0.5: - resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} + /language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} dependencies: language-subtag-registry: 0.3.22 dev: true @@ -7349,11 +6615,6 @@ packages: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true - /lines-and-columns@2.0.3: - resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - /lint-staged@15.2.0: resolution: {integrity: sha512-TFZzUEV00f+2YLaVPWBWGAMq7So6yQx+GG8YRMDeOEIf95Zn5RyiLMsEiX4KTNl9vq/w+NqRJkLA1kPIo15ufQ==} engines: {node: '>=18.12.0'} @@ -7395,11 +6656,6 @@ packages: strip-bom: 3.0.0 dev: true - /local-pkg@0.4.3: - resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} - engines: {node: '>=14'} - dev: true - /locate-path@2.0.0: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} @@ -7430,13 +6686,6 @@ packages: p-locate: 5.0.0 dev: true - /locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - p-locate: 6.0.0 - dev: true - /lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} dev: true @@ -7519,8 +6768,8 @@ packages: js-tokens: 4.0.0 dev: true - /loupe@2.3.6: - resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: get-func-name: 2.0.2 dev: true @@ -7530,13 +6779,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /lru-cache@10.0.0: - resolution: {integrity: sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==} - engines: {node: 14 || >=16.14} - dev: true - - /lru-cache@10.0.1: - resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} + /lru-cache@10.1.0: + resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} engines: {node: 14 || >=16.14} dev: true @@ -7552,18 +6796,6 @@ packages: dependencies: yallist: 4.0.0 - /lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} - dev: true - - /magic-string@0.30.2: - resolution: {integrity: sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - /make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -7586,25 +6818,21 @@ packages: semver: 7.5.4 dev: true - /make-fetch-happen@11.1.1: - resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + /make-fetch-happen@13.0.0: + resolution: {integrity: sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==} + engines: {node: ^16.14.0 || >=18.0.0} dependencies: - agentkeepalive: 4.3.0 - cacache: 17.1.3 + '@npmcli/agent': 2.2.0 + cacache: 18.0.1 http-cache-semantics: 4.1.1 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 is-lambda: 1.0.1 - lru-cache: 7.18.3 - minipass: 5.0.0 - minipass-fetch: 3.0.3 + minipass: 7.0.4 + minipass-fetch: 3.0.4 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 negotiator: 0.6.3 promise-retry: 2.0.1 - socks-proxy-agent: 7.0.0 - ssri: 10.0.4 + ssri: 10.0.5 transitivePeerDependencies: - supports-color dev: true @@ -7628,18 +6856,18 @@ packages: lodash: 4.17.21 dev: true - /marked-terminal@6.0.0(marked@9.1.1): - resolution: {integrity: sha512-6rruICvqRfA4N+Mvdc0UyDbLA0A0nI5omtARIlin3P2F+aNc3EbW91Rd9HTuD0v9qWyHmNIu8Bt40gAnPfldsg==} + /marked-terminal@6.2.0(marked@9.1.6): + resolution: {integrity: sha512-ubWhwcBFHnXsjYNsu+Wndpg0zhY4CahSpPlA70PlO0rR9r2sZpkyU+rkCsOWH+KMEkx847UpALON+HWgxowFtw==} engines: {node: '>=16.0.0'} peerDependencies: - marked: '>=1 <10' + marked: '>=1 <12' dependencies: ansi-escapes: 6.2.0 cardinal: 2.1.1 chalk: 5.3.0 cli-table3: 0.6.3 - marked: 9.1.1 - node-emoji: 2.1.0 + marked: 9.1.6 + node-emoji: 2.1.3 supports-hyperlinks: 3.0.0 dev: true @@ -7649,8 +6877,8 @@ packages: hasBin: true dev: true - /marked@9.1.1: - resolution: {integrity: sha512-ZmXkUGH54U4rEy3GL9vYj8+S1PHJx/zz5pc4Frn7UdGiNREKT12fWBJ5a5ffjFtghx9C9912vEg9Zra1Nf7CnA==} + /marked@9.1.6: + resolution: {integrity: sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==} engines: {node: '>= 16'} hasBin: true dev: true @@ -7669,7 +6897,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.3.0(@types/node@20.10.4): + /meros@1.3.0(@types/node@20.10.5): resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} engines: {node: '>=13'} peerDependencies: @@ -7678,7 +6906,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.10.4 + '@types/node': 20.10.5 dev: true /micro-spelling-correcter@1.1.1: @@ -7726,8 +6954,8 @@ packages: mime-db: 1.52.0 dev: true - /mime@4.0.0: - resolution: {integrity: sha512-pzhgdeqU5pJ9t5WK9m4RT4GgGWqYJylxUf62Yb9datXRwdcw5MjiD1BYI5evF8AgTXN9gtKX3CFLvCUL5fAhEA==} + /mime@4.0.1: + resolution: {integrity: sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==} engines: {node: '>=16'} hasBin: true dev: true @@ -7778,18 +7006,18 @@ packages: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true - /minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} - engines: {node: '>= 8'} + /minipass-collect@2.0.1: + resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: - minipass: 3.3.6 + minipass: 7.0.4 dev: true - /minipass-fetch@3.0.3: - resolution: {integrity: sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==} + /minipass-fetch@3.0.4: + resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - minipass: 5.0.0 + minipass: 7.0.4 minipass-sized: 1.0.3 minizlib: 2.1.2 optionalDependencies: @@ -7829,8 +7057,8 @@ packages: engines: {node: '>=8'} dev: true - /minipass@7.0.2: - resolution: {integrity: sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==} + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} dev: true @@ -7856,15 +7084,6 @@ packages: hasBin: true dev: true - /mlly@1.4.0: - resolution: {integrity: sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==} - dependencies: - acorn: 8.10.0 - pathe: 1.1.1 - pkg-types: 1.0.3 - ufo: 1.2.0 - dev: true - /mocha@10.2.0: resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==} engines: {node: '>= 14.0.0'} @@ -7893,8 +7112,8 @@ packages: yargs-unparser: 2.0.0 dev: true - /moment@2.29.4: - resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} + /moment@2.30.1: + resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} dev: true /ms@2.0.0: @@ -7908,8 +7127,8 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /nan@2.17.0: - resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==} + /nan@2.18.0: + resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==} dev: true /nanoid@3.3.3: @@ -7918,12 +7137,6 @@ packages: hasBin: true dev: true - /nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: true - /nanomatch@1.2.13: resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} engines: {node: '>=0.10.0'} @@ -7968,10 +7181,11 @@ packages: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} dev: true - /node-emoji@2.1.0: - resolution: {integrity: sha512-tcsBm9C6FmPN5Wo7OjFi9lgMyJjvkAeirmjR/ax8Ttfqy4N8PoFic26uqFTIgayHPNI5FH4ltUvfh9kHzwcK9A==} + /node-emoji@2.1.3: + resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} + engines: {node: '>=18'} dependencies: - '@sindresorhus/is': 3.1.2 + '@sindresorhus/is': 4.6.0 char-regex: 1.0.2 emojilib: 2.4.0 skin-tone: 2.0.0 @@ -7980,12 +7194,12 @@ packages: /node-environment-flags@1.0.6: resolution: {integrity: sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==} dependencies: - object.getownpropertydescriptors: 2.1.6 + object.getownpropertydescriptors: 2.1.7 semver: 5.7.2 dev: true - /node-fetch@2.6.12: - resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 @@ -7996,22 +7210,21 @@ packages: whatwg-url: 5.0.0 dev: true - /node-gyp@9.4.0: - resolution: {integrity: sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==} - engines: {node: ^12.13 || ^14.13 || >=16} + /node-gyp@10.0.1: + resolution: {integrity: sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==} + engines: {node: ^16.14.0 || >=18.0.0} hasBin: true dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.1 - glob: 7.2.3 + glob: 10.3.10 graceful-fs: 4.2.11 - make-fetch-happen: 11.1.1 - nopt: 6.0.0 - npmlog: 6.0.2 - rimraf: 3.0.2 + make-fetch-happen: 13.0.0 + nopt: 7.2.0 + proc-log: 3.0.0 semver: 7.5.4 - tar: 6.1.15 - which: 2.0.2 + tar: 6.2.0 + which: 4.0.0 transitivePeerDependencies: - supports-color dev: true @@ -8023,16 +7236,16 @@ packages: process-on-spawn: 1.0.0 dev: true - /node-releases@2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} dev: true - /nopt@6.0.0: - resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /nopt@7.2.0: + resolution: {integrity: sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true dependencies: - abbrev: 1.1.1 + abbrev: 2.0.0 dev: true /normalize-package-data@2.5.0: @@ -8044,22 +7257,12 @@ packages: validate-npm-package-license: 3.0.4 dev: true - /normalize-package-data@5.0.0: - resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - hosted-git-info: 6.1.1 - is-core-module: 2.13.0 - semver: 7.5.4 - validate-npm-package-license: 3.0.4 - dev: true - /normalize-package-data@6.0.0: resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: hosted-git-info: 7.0.1 - is-core-module: 2.13.0 + is-core-module: 2.13.1 semver: 7.5.4 validate-npm-package-license: 3.0.4 dev: true @@ -8109,8 +7312,8 @@ packages: path-key: 3.1.1 dev: true - /npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + /npm-run-path@5.2.0: + resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 @@ -8126,8 +7329,8 @@ packages: which: 1.3.1 dev: true - /npm@10.2.0: - resolution: {integrity: sha512-Auyq6d4cfg/SY4URjZE2aePLOPzK4lUD+qyMxY/7HbxAvCnOCKtMlyLPcbLSOq9lhEGBZN800S1o+UmfjA5dTg==} + /npm@10.2.5: + resolution: {integrity: sha512-lXdZ7titEN8CH5YJk9C/aYRU9JeDxQ4d8rwIIDsvH3SMjLjHTukB2CFstMiB30zXs4vCrPN2WH6cDq1yHBeJAw==} engines: {node: ^18.17.0 || >=20.5.0} hasBin: true dev: true @@ -8204,16 +7407,6 @@ packages: - which - write-file-atomic - /npmlog@6.0.2: - resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - are-we-there-yet: 3.0.1 - console-control-strings: 1.1.0 - gauge: 4.0.4 - set-blocking: 2.0.0 - dev: true - /nwmatcher@1.4.4: resolution: {integrity: sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==} dev: true @@ -8233,7 +7426,7 @@ packages: foreground-child: 2.0.0 get-package-type: 0.1.0 glob: 7.2.3 - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 istanbul-lib-hook: 3.0.0 istanbul-lib-instrument: 4.0.3 istanbul-lib-processinfo: 2.0.3 @@ -8277,15 +7470,15 @@ packages: kind-of: 3.2.2 dev: true - /object-inspect@1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} dev: true /object-is@1.1.5: resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 dev: true @@ -8301,50 +7494,50 @@ packages: isobject: 3.0.1 dev: true - /object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 + call-bind: 1.0.5 + define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 dev: true - /object.entries@1.1.6: - resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} + /object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.1 + es-abstract: 1.22.3 dev: true - /object.fromentries@2.0.6: - resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.1 + es-abstract: 1.22.3 dev: true - /object.getownpropertydescriptors@2.1.6: - resolution: {integrity: sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ==} + /object.getownpropertydescriptors@2.1.7: + resolution: {integrity: sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==} engines: {node: '>= 0.8'} dependencies: - array.prototype.reduce: 1.0.5 - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - safe-array-concat: 1.0.0 + array.prototype.reduce: 1.0.6 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + safe-array-concat: 1.0.1 dev: true - /object.hasown@1.1.2: - resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} + /object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} dependencies: define-properties: 1.2.1 - es-abstract: 1.22.1 + es-abstract: 1.22.3 dev: true /object.pick@1.3.0: @@ -8354,13 +7547,13 @@ packages: isobject: 3.0.1 dev: true - /object.values@1.1.6: - resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.1 + es-abstract: 1.22.3 dev: true /once@1.4.0: @@ -8401,16 +7594,6 @@ packages: is-wsl: 2.2.0 dev: true - /open@9.1.0: - resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} - engines: {node: '>=14.16'} - dependencies: - default-browser: 4.0.0 - define-lazy-prop: 3.0.0 - is-inside-container: 1.0.0 - is-wsl: 2.2.0 - dev: true - /optionator@0.8.3: resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} engines: {node: '>= 0.8.0'} @@ -8440,11 +7623,11 @@ packages: engines: {node: '>=12'} dev: true - /p-filter@3.0.0: - resolution: {integrity: sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /p-filter@4.1.0: + resolution: {integrity: sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==} + engines: {node: '>=18'} dependencies: - p-map: 5.5.0 + p-map: 7.0.1 dev: true /p-finally@1.0.0: @@ -8478,13 +7661,6 @@ packages: yocto-queue: 0.1.0 dev: true - /p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - yocto-queue: 1.0.0 - dev: true - /p-locate@2.0.0: resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} engines: {node: '>=4'} @@ -8513,13 +7689,6 @@ packages: p-limit: 3.1.0 dev: true - /p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - p-limit: 4.0.0 - dev: true - /p-map@3.0.0: resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} engines: {node: '>=8'} @@ -8534,11 +7703,9 @@ packages: aggregate-error: 3.1.0 dev: true - /p-map@5.5.0: - resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==} - engines: {node: '>=12'} - dependencies: - aggregate-error: 4.0.1 + /p-map@7.0.1: + resolution: {integrity: sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==} + engines: {node: '>=18'} dev: true /p-reduce@3.0.0: @@ -8585,31 +7752,19 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.22.13 + '@babel/code-frame': 7.23.5 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 dev: true - /parse-json@7.0.0: - resolution: {integrity: sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==} - engines: {node: '>=16'} - dependencies: - '@babel/code-frame': 7.22.13 - error-ex: 1.3.2 - json-parse-even-better-errors: 3.0.0 - lines-and-columns: 2.0.3 - type-fest: 3.13.1 - dev: true - - /parse-json@8.0.0: - resolution: {integrity: sha512-QtWnjHuun44MCLbq9f2rlcX9Bp9FSsPgQS9nuGcIm3J557b3/CvmYUhwChgJJDlMpuNN0sFRAogzQ8xMitD1oQ==} + /parse-json@8.1.0: + resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} engines: {node: '>=18'} dependencies: - '@babel/code-frame': 7.22.13 - index-to-position: 0.1.0 - json-parse-even-better-errors: 3.0.0 - type-fest: 4.6.0 + '@babel/code-frame': 7.23.5 + index-to-position: 0.1.2 + type-fest: 4.9.0 dev: true /parse-passwd@1.0.0: @@ -8636,11 +7791,6 @@ packages: engines: {node: '>=8'} dev: true - /path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} @@ -8669,8 +7819,8 @@ packages: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 10.0.0 - minipass: 7.0.2 + lru-cache: 10.1.0 + minipass: 7.0.4 dev: true /path-type@4.0.0: @@ -8683,10 +7833,6 @@ packages: engines: {node: '>=12'} dev: true - /pathe@1.1.1: - resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} - dev: true - /pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} dev: true @@ -8754,14 +7900,6 @@ packages: find-up: 5.0.0 dev: true - /pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} - dependencies: - jsonc-parser: 3.2.0 - mlly: 1.4.0 - pathe: 1.1.1 - dev: true - /pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} @@ -8772,15 +7910,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.6 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true - /prelude-ls@1.1.2: resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} engines: {node: '>= 0.8.0'} @@ -8798,19 +7927,15 @@ packages: fast-diff: 1.3.0 dev: true - /prettier@3.0.3: - resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} + /prettier@3.1.1: + resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==} engines: {node: '>=14'} hasBin: true dev: true - /pretty-format@29.6.2: - resolution: {integrity: sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.6.0 - ansi-styles: 5.2.0 - react-is: 18.2.0 + /proc-log@3.0.0: + resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true /process-nextick-args@2.0.1: @@ -8864,15 +7989,15 @@ packages: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} dev: true - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} dev: true - /pvtsutils@1.3.2: - resolution: {integrity: sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==} + /pvtsutils@1.3.5: + resolution: {integrity: sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==} dependencies: - tslib: 2.6.1 + tslib: 2.6.2 dev: true /pvutils@1.1.3: @@ -8917,13 +8042,13 @@ packages: strip-json-comments: 2.0.1 dev: true - /re2@1.20.1: - resolution: {integrity: sha512-JbzIoI5adNCqGUK8wHG1dMSyggvPyA4kx2hewt1lma5sP7/iWCfM15XKbCZlX2yvu5k80jSKAOQqJF7KC+2n8Q==} + /re2@1.20.9: + resolution: {integrity: sha512-ZYcPTFr5ha2xq3WQjBDTF9CWPSDK1z28MLh5UFRxc//7X8BNQ3A7yR7ITnP0jO346661ertdKVFqw1qoL3FMEQ==} requiresBuild: true dependencies: - install-artifact-from-github: 1.3.3 - nan: 2.17.0 - node-gyp: 9.4.0 + install-artifact-from-github: 1.3.5 + nan: 2.18.0 + node-gyp: 10.0.1 transitivePeerDependencies: - supports-color dev: true @@ -8932,27 +8057,14 @@ packages: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: true - /react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - dev: true - - /read-pkg-up@10.0.0: - resolution: {integrity: sha512-jgmKiS//w2Zs+YbX039CorlkOp8FIVbSAN8r8GJHDsGlmNPXo+VeHkqAwCiQVTTx5/LwLZTcEw59z3DvcLbr0g==} - engines: {node: '>=16'} - dependencies: - find-up: 6.3.0 - read-pkg: 8.0.0 - type-fest: 3.13.1 - dev: true - /read-pkg-up@11.0.0: resolution: {integrity: sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q==} engines: {node: '>=18'} deprecated: Renamed to read-package-up dependencies: find-up-simple: 1.0.0 - read-pkg: 9.0.0 - type-fest: 4.6.0 + read-pkg: 9.0.1 + type-fest: 4.9.0 dev: true /read-pkg-up@7.0.1: @@ -8968,30 +8080,21 @@ packages: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} dependencies: - '@types/normalize-package-data': 2.4.3 + '@types/normalize-package-data': 2.4.4 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 dev: true - /read-pkg@8.0.0: - resolution: {integrity: sha512-Ajb9oSjxXBw0YyOiwtQ2dKbAA/vMnUPnY63XcCk+mXo0BwIdQEMgZLZiMWGttQHcUhUgbK0mH85ethMPKXxziw==} - engines: {node: '>=16'} - dependencies: - '@types/normalize-package-data': 2.4.3 - normalize-package-data: 5.0.0 - parse-json: 7.0.0 - type-fest: 3.13.1 - dev: true - - /read-pkg@9.0.0: - resolution: {integrity: sha512-SBoBio4xhJmlF4xs9IBliWZGSbDAnrOfQkLGL7xB+RYEUZNAN2LlNkzO45B7gc7c2dLMX987bhHAaJ/LG3efeQ==} + /read-pkg@9.0.1: + resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} engines: {node: '>=18'} dependencies: - '@types/normalize-package-data': 2.4.3 + '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.0 - parse-json: 8.0.0 - type-fest: 4.6.0 + parse-json: 8.1.0 + type-fest: 4.9.0 + unicorn-magic: 0.1.0 dev: true /readable-stream@2.3.8: @@ -9023,15 +8126,15 @@ packages: picomatch: 2.3.1 dev: true - /recast@0.23.3: - resolution: {integrity: sha512-HbCVFh2ANP6a09nzD4lx7XthsxMOJWKX5pIcUwtLrmeEIl3I0DwjCoVXDE0Aobk+7k/mS3H50FK4iuYArpcT6Q==} + /recast@0.23.4: + resolution: {integrity: sha512-qtEDqIZGVcSZCHniWwZWbRy79Dc6Wp3kT/UmDA2RJKBPg7+7k51aQBZirHmUGn5uvHf2rg8DkjizrN26k61ATw==} engines: {node: '>= 4'} dependencies: - assert: 2.0.0 + assert: 2.1.0 ast-types: 0.16.1 esprima: 4.0.1 source-map: 0.6.1 - tslib: 2.6.1 + tslib: 2.6.2 dev: true /redeyed@2.1.1: @@ -9044,23 +8147,23 @@ packages: resolution: {integrity: sha512-486O8/pQXwj9jV0mVvUnTsxq0uknpBnNJ0eCUhkZqJRQ8KutrT1PhzmumdCeM1hSBF2eMlFPmwECRER4IbKXlQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: - '@eslint-community/regexpp': 4.6.2 + '@eslint-community/regexpp': 4.10.0 dev: true /reflect.getprototypeof@1.0.4: resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.1 - get-intrinsic: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 globalthis: 1.0.3 which-builtin-type: 1.1.3 dev: true - /regenerate-unicode-properties@10.1.0: - resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} + /regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} engines: {node: '>=4'} dependencies: regenerate: 1.4.2 @@ -9070,18 +8173,14 @@ packages: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} dev: true - /regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - dev: true - - /regenerator-runtime@0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} dev: true /regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.23.6 dev: true /regex-not@1.0.2: @@ -9096,7 +8195,7 @@ packages: resolution: {integrity: sha512-OLxjyjPkVH+rQlBLb1I/P/VTmamSjGkvN5PTV5BXP432k3uVz727J7H29GA5IFiY0m7e1xBN7049Wn59FY3DEQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: - '@eslint-community/regexpp': 4.6.2 + '@eslint-community/regexpp': 4.10.0 refa: 0.11.0 dev: true @@ -9105,13 +8204,13 @@ packages: hasBin: true dev: true - /regexp.prototype.flags@1.5.0: - resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - functions-have-names: 1.2.3 + call-bind: 1.0.5 + define-properties: 1.2.1 + set-function-name: 2.0.1 dev: true /regexpu-core@5.3.2: @@ -9120,7 +8219,7 @@ packages: dependencies: '@babel/regjsgen': 0.8.0 regenerate: 1.4.2 - regenerate-unicode-properties: 10.1.0 + regenerate-unicode-properties: 10.1.1 regjsparser: 0.9.1 unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.1.0 @@ -9205,11 +8304,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: true - /require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} dev: true @@ -9243,29 +8337,20 @@ packages: deprecated: https://github.com/lydell/resolve-url#deprecated dev: true - /resolve@1.22.3: - resolution: {integrity: sha512-P8ur/gp/AmbEzjr729bZnLjXK5Z+4P0zhIJgBgzqRih7hL7BOukHGtSTA3ACMY467GRFz3duQsi0bDZdR7DKdw==} - hasBin: true - dependencies: - is-core-module: 2.12.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - /resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true dependencies: - is-core-module: 2.13.0 + is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true - /resolve@2.0.0-next.4: - resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} + /resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true dependencies: - is-core-module: 2.13.0 + is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -9312,55 +8397,27 @@ packages: glob: 10.3.10 dev: true - /roarr@7.15.1: - resolution: {integrity: sha512-0ExL9rjOXeQPvQvQo8IcV8SR2GTXmDr1FQFlY2HiAV+gdVQjaVZNOx9d4FI2RqFFsd0sNsiw2TRS/8RU9g0ZfA==} - engines: {node: '>=12.0'} + /roarr@7.21.0: + resolution: {integrity: sha512-d1rPLcHmQID3GsA3p9d5vKSZYlvrTWhjbmeg9DT5DcPoLpH85VzPmkLkGKhQv376+dfkApaHwNbpYEwDB77Ibg==} + engines: {node: '>=18.0'} dependencies: - boolean: 3.2.0 - fast-json-stringify: 5.8.0 fast-printf: 1.6.9 - globalthis: 1.0.3 safe-stable-stringify: 2.4.3 semver-compare: 1.0.0 dev: true - /rollup@3.27.2: - resolution: {integrity: sha512-YGwmHf7h2oUHkVBT248x0yt6vZkYQ3/rvE5iQuVBh3WO8GcJ6BNeOkpoX1yMHIiBm18EMLjBPIoUDkhgnyxGOQ==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /run-applescript@5.0.0: - resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} - engines: {node: '>=12'} - dependencies: - execa: 5.1.1 - dev: true - /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 dev: true - /safe-array-concat@1.0.0: - resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} - engines: {node: '>=0.4'} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - has-symbols: 1.0.3 - isarray: 2.0.5 - dev: true - /safe-array-concat@1.0.1: resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} engines: {node: '>=0.4'} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 has-symbols: 1.0.3 isarray: 2.0.5 dev: true @@ -9376,8 +8433,8 @@ packages: /safe-regex-test@1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 is-regex: 1.1.4 dev: true @@ -9399,23 +8456,23 @@ packages: /scslre@0.2.0: resolution: {integrity: sha512-4hc49fUMmX3jM0XdFUAPBrs1xwEcdHa0KyjEsjFs+Zfc66mpFpq5YmRgDtl+Ffo6AtJIilfei+yKw8fUn3N88w==} dependencies: - '@eslint-community/regexpp': 4.6.2 + '@eslint-community/regexpp': 4.10.0 refa: 0.11.0 regexp-ast-analysis: 0.6.0 dev: true - /semantic-release@22.0.10: - resolution: {integrity: sha512-4ahPaOX+0UYpYlosjc/tfCzB/cqlnjN0/xSKGryEC4bOpuYSkoK+QHw7xDPmAuiMNBBvkFD+m3aVMENUr++CIg==} + /semantic-release@22.0.12(typescript@5.3.3): + resolution: {integrity: sha512-0mhiCR/4sZb00RVFJIUlMuiBkW3NMpVIW2Gse7noqEMoFGkvfPPAImEQbkBV8xga4KOPP4FdTRYuLLy32R1fPw==} engines: {node: ^18.17 || >=20.6.1} hasBin: true dependencies: - '@semantic-release/commit-analyzer': 11.1.0(semantic-release@22.0.10) + '@semantic-release/commit-analyzer': 11.1.0(semantic-release@22.0.12) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 9.2.5(semantic-release@22.0.10) - '@semantic-release/npm': 11.0.2(semantic-release@22.0.10) - '@semantic-release/release-notes-generator': 12.0.0(semantic-release@22.0.10) + '@semantic-release/github': 9.2.6(semantic-release@22.0.12) + '@semantic-release/npm': 11.0.2(semantic-release@22.0.12) + '@semantic-release/release-notes-generator': 12.1.0(semantic-release@22.0.12) aggregate-error: 5.0.0 - cosmiconfig: 8.2.0 + cosmiconfig: 8.3.6(typescript@5.3.3) debug: 4.3.4(supports-color@8.1.1) env-ci: 10.0.0 execa: 8.0.1 @@ -9427,8 +8484,8 @@ packages: hosted-git-info: 7.0.1 import-from-esm: 1.3.3 lodash-es: 4.17.21 - marked: 9.1.1 - marked-terminal: 6.0.0(marked@9.1.1) + marked: 9.1.6 + marked-terminal: 6.2.0(marked@9.1.6) micromatch: 4.0.5 p-each-series: 3.0.0 p-reduce: 3.0.0 @@ -9440,6 +8497,7 @@ packages: yargs: 17.7.2 transitivePeerDependencies: - supports-color + - typescript dev: true /semver-compare@1.0.0: @@ -9485,13 +8543,23 @@ packages: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true + /set-function-length@1.1.1: + resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + dev: true + /set-function-name@2.0.1: resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.0 + define-data-property: 1.1.1 functions-have-names: 1.2.3 - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.1 dev: true /set-value@2.0.1: @@ -9538,13 +8606,9 @@ packages: /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - object-inspect: 1.12.3 - dev: true - - /siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + object-inspect: 1.13.1 dev: true /signal-exit@3.0.7: @@ -9644,11 +8708,11 @@ packages: - supports-color dev: true - /socks-proxy-agent@7.0.0: - resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} - engines: {node: '>= 10'} + /socks-proxy-agent@8.0.2: + resolution: {integrity: sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==} + engines: {node: '>= 14'} dependencies: - agent-base: 6.0.2 + agent-base: 7.1.0 debug: 4.3.4(supports-color@8.1.1) socks: 2.7.1 transitivePeerDependencies: @@ -9663,11 +8727,6 @@ packages: smart-buffer: 4.2.0 dev: true - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - dev: true - /source-map-resolve@0.5.3: resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} deprecated: See https://github.com/lydell/source-map-resolve#deprecated @@ -9728,7 +8787,7 @@ packages: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.13 + spdx-license-ids: 3.0.16 dev: true /spdx-exceptions@2.3.0: @@ -9738,18 +8797,17 @@ packages: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.13 + spdx-license-ids: 3.0.16 dev: true /spdx-expression-parse@4.0.0: resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} dependencies: spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.13 - dev: false + spdx-license-ids: 3.0.16 - /spdx-license-ids@3.0.13: - resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} + /spdx-license-ids@3.0.16: + resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} /split-string@3.1.0: resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} @@ -9773,8 +8831,8 @@ packages: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true - /sshpk@1.17.0: - resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} + /sshpk@1.18.0: + resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} engines: {node: '>=0.10.0'} hasBin: true dependencies: @@ -9789,21 +8847,17 @@ packages: tweetnacl: 0.14.5 dev: true - /ssri@10.0.4: - resolution: {integrity: sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==} + /ssri@10.0.5: + resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - minipass: 5.0.0 + minipass: 7.0.4 dev: true /stack-trace@0.0.10: resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} dev: true - /stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - dev: true - /static-extend@0.1.2: resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} engines: {node: '>=0.10.0'} @@ -9812,10 +8866,6 @@ packages: object-copy: 0.1.0 dev: true - /std-env@3.3.3: - resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} - dev: true - /stream-combiner2@1.1.1: resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} dependencies: @@ -9873,42 +8923,43 @@ packages: strip-ansi: 7.1.0 dev: true - /string.prototype.matchall@4.0.8: - resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} + /string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.1 - get-intrinsic: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 has-symbols: 1.0.3 - internal-slot: 1.0.5 - regexp.prototype.flags: 1.5.0 + internal-slot: 1.0.6 + regexp.prototype.flags: 1.5.1 + set-function-name: 2.0.1 side-channel: 1.0.4 dev: true - /string.prototype.trim@1.2.7: - resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 dev: true - /string.prototype.trimend@1.0.6: - resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 dev: true - /string.prototype.trimstart@1.0.6: - resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 dev: true /string_decoder@1.1.1: @@ -9979,12 +9030,6 @@ packages: engines: {node: '>=8'} dev: true - /strip-literal@1.3.0: - resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} - dependencies: - acorn: 8.10.0 - dev: true - /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -10022,12 +9067,12 @@ packages: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true - /synckit@0.8.5: - resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} + /synckit@0.8.8: + resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} engines: {node: ^14.18.0 || >=16.0.0} dependencies: - '@pkgr/utils': 2.4.2 - tslib: 2.6.1 + '@pkgr/core': 0.1.0 + tslib: 2.6.2 dev: true /tapable@2.2.1: @@ -10035,8 +9080,8 @@ packages: engines: {node: '>=6'} dev: true - /tar@6.1.15: - resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==} + /tar@6.2.0: + resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} engines: {node: '>=10'} dependencies: chownr: 2.0.0 @@ -10091,27 +9136,8 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true - /tinybench@2.5.0: - resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==} - dev: true - - /tinypool@0.7.0: - resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} - engines: {node: '>=14.0.0'} - dev: true - - /tinyspy@2.1.1: - resolution: {integrity: sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==} - engines: {node: '>=14.0.0'} - dev: true - - /titleize@3.0.0: - resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} - engines: {node: '>=12'} - dev: true - - /tlds@1.240.0: - resolution: {integrity: sha512-1OYJQenswGZSOdRw7Bql5Qu7uf75b+F3HFBXbqnG/ifHa0fev1XcG+3pJf3pA/KC6RtHQzfKgIf1vkMlMG7mtQ==} + /tlds@1.248.0: + resolution: {integrity: sha512-noj0KdpWTBhwsKxMOXk0rN9otg4kTgLm4WohERRHbJ9IY+kSDKr3RmjitaQ3JFzny+DyvBOQKlFZhp0G0qNSfg==} hasBin: true dev: true @@ -10158,19 +9184,20 @@ packages: engines: {node: '>=0.8'} dependencies: psl: 1.9.0 - punycode: 2.3.0 + punycode: 2.3.1 dev: true /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true - /traverse@0.6.7: - resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==} + /traverse@0.6.8: + resolution: {integrity: sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==} + engines: {node: '>= 0.4'} dev: true - /ts-api-utils@1.0.1(typescript@5.3.3): - resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} + /ts-api-utils@1.0.3(typescript@5.3.3): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' @@ -10185,12 +9212,12 @@ packages: typescript: '>=3.8.3' dependencies: chalk: 4.1.2 - tsconfig-paths: 3.14.2 + tsconfig-paths: 3.15.0 typescript: 5.3.3 dev: true - /tsconfig-paths@3.14.2: - resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + /tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} dependencies: '@types/json5': 0.0.29 json5: 1.0.2 @@ -10202,8 +9229,8 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib@2.6.1: - resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} dev: true /tsutils@3.21.0(typescript@5.3.3): @@ -10280,8 +9307,8 @@ packages: engines: {node: '>=14.16'} dev: true - /type-fest@4.6.0: - resolution: {integrity: sha512-rLjWJzQFOq4xw7MgJrCZ6T1jIOvvYElXT12r+y0CC6u67hegDHaxcPqb2fZHOGlqxugGQPNB1EnTezjBetkwkw==} + /type-fest@4.9.0: + resolution: {integrity: sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==} engines: {node: '>=16'} dev: true @@ -10289,8 +9316,8 @@ packages: resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 is-typed-array: 1.1.12 dev: true @@ -10298,7 +9325,7 @@ packages: resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 @@ -10309,7 +9336,7 @@ packages: engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 @@ -10318,7 +9345,7 @@ packages: /typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 is-typed-array: 1.1.12 dev: true @@ -10335,10 +9362,6 @@ packages: hasBin: true dev: true - /ufo@1.2.0: - resolution: {integrity: sha512-RsPyTbqORDNDxqAdQPQBpgqhWle1VcTSou/FraClYlHf6TZnQcGslpLcAphNR+sQW4q5lLWLbOsRlh9j24baQg==} - dev: true - /uglify-js@3.17.4: resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} engines: {node: '>=0.8.0'} @@ -10350,7 +9373,7 @@ packages: /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 @@ -10424,12 +9447,12 @@ packages: crypto-random-string: 4.0.0 dev: true - /universal-user-agent@6.0.0: - resolution: {integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==} + /universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} dev: true - /universalify@2.0.0: - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} dev: true @@ -10448,18 +9471,13 @@ packages: isobject: 3.0.1 dev: true - /untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} - engines: {node: '>=8'} - dev: true - - /update-browserslist-db@1.0.13(browserslist@4.22.1): + /update-browserslist-db@1.0.13(browserslist@4.22.2): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.22.1 + browserslist: 4.22.2 escalade: 3.1.1 picocolors: 1.0.0 dev: true @@ -10467,7 +9485,7 @@ packages: /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: - punycode: 2.3.0 + punycode: 2.3.1 dev: true /urix@0.1.0: @@ -10486,8 +9504,8 @@ packages: deprecated: Please upgrade to url-regex-safe@v3.0.0+ AND install re2 as an additional dependency in your project via `npm install re2` or `yarn add re2`. dependencies: ip-regex: 4.3.0 - re2: 1.20.1 - tlds: 1.240.0 + re2: 1.20.9 + tlds: 1.248.0 transitivePeerDependencies: - supports-color dev: true @@ -10516,7 +9534,7 @@ packages: is-arguments: 1.1.1 is-generator-function: 1.0.10 is-typed-array: 1.1.12 - which-typed-array: 1.1.11 + which-typed-array: 1.1.13 dev: true /uuid@3.4.0: @@ -10558,129 +9576,6 @@ packages: extsprintf: 1.3.0 dev: true - /vite-node@0.34.1(@types/node@20.10.4): - resolution: {integrity: sha512-odAZAL9xFMuAg8aWd7nSPT+hU8u2r9gU3LRm9QKjxBEF2rRdWpMuqkrkjvyVQEdNFiBctqr2Gg4uJYizm5Le6w==} - engines: {node: '>=v14.18.0'} - hasBin: true - dependencies: - cac: 6.7.14 - debug: 4.3.4(supports-color@8.1.1) - mlly: 1.4.0 - pathe: 1.1.1 - picocolors: 1.0.0 - vite: 4.4.8(@types/node@20.10.4) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - - /vite@4.4.8(@types/node@20.10.4): - resolution: {integrity: sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - '@types/node': 20.10.4 - esbuild: 0.18.17 - postcss: 8.4.31 - rollup: 3.27.2 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /vitest@0.34.1: - resolution: {integrity: sha512-G1PzuBEq9A75XSU88yO5G4vPT20UovbC/2osB2KEuV/FisSIIsw7m5y2xMdB7RsAGHAfg2lPmp2qKr3KWliVlQ==} - engines: {node: '>=v14.18.0'} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@vitest/browser': '*' - '@vitest/ui': '*' - happy-dom: '*' - jsdom: '*' - playwright: '*' - safaridriver: '*' - webdriverio: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - playwright: - optional: true - safaridriver: - optional: true - webdriverio: - optional: true - dependencies: - '@types/chai': 4.3.11 - '@types/chai-subset': 1.3.3 - '@types/node': 20.10.4 - '@vitest/expect': 0.34.1 - '@vitest/runner': 0.34.1 - '@vitest/snapshot': 0.34.1 - '@vitest/spy': 0.34.1 - '@vitest/utils': 0.34.1 - acorn: 8.10.0 - acorn-walk: 8.2.0 - cac: 6.7.14 - chai: 4.3.10 - debug: 4.3.4(supports-color@8.1.1) - local-pkg: 0.4.3 - magic-string: 0.30.2 - pathe: 1.1.1 - picocolors: 1.0.0 - std-env: 3.3.3 - strip-literal: 1.3.0 - tinybench: 2.5.0 - tinypool: 0.7.0 - vite: 4.4.8(@types/node@20.10.4) - vite-node: 0.34.1(@types/node@20.10.4) - why-is-node-running: 2.2.2 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - /web-streams-polyfill@3.2.1: resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} engines: {node: '>= 8'} @@ -10689,11 +9584,11 @@ packages: /webcrypto-core@1.7.7: resolution: {integrity: sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g==} dependencies: - '@peculiar/asn1-schema': 2.3.6 + '@peculiar/asn1-schema': 2.3.8 '@peculiar/json-schema': 1.1.12 asn1js: 3.0.5 - pvtsutils: 1.3.2 - tslib: 2.6.1 + pvtsutils: 1.3.5 + tslib: 2.6.2 dev: true /webidl-conversions@3.0.1: @@ -10727,7 +9622,7 @@ packages: resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} engines: {node: '>= 0.4'} dependencies: - function.prototype.name: 1.1.5 + function.prototype.name: 1.1.6 has-tostringtag: 1.0.0 is-async-function: 2.0.0 is-date-object: 1.0.5 @@ -10738,7 +9633,7 @@ packages: isarray: 2.0.5 which-boxed-primitive: 1.0.2 which-collection: 1.0.1 - which-typed-array: 1.1.11 + which-typed-array: 1.1.13 dev: true /which-collection@1.0.1: @@ -10754,12 +9649,12 @@ packages: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} dev: true - /which-typed-array@1.1.11: - resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} + /which-typed-array@1.1.13: + resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 @@ -10780,19 +9675,12 @@ packages: isexe: 2.0.0 dev: true - /why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} - engines: {node: '>=8'} + /which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} hasBin: true dependencies: - siginfo: 2.0.0 - stackback: 0.0.2 - dev: true - - /wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - dependencies: - string-width: 4.2.3 + isexe: 3.1.1 dev: true /word-wrap@1.2.5: @@ -10870,6 +9758,19 @@ packages: optional: true dev: true + /ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + /xml-name-validator@2.0.1: resolution: {integrity: sha512-jRKe/iQYMyVJpzPH+3HL97Lgu5HrCfii+qSo+TfjKHtOnvbnvdVfMYrn9Q34YV81M2e5sviJlI6Ko9y+nByzvA==} dev: true @@ -10882,7 +9783,7 @@ packages: /xregexp@5.1.1: resolution: {integrity: sha512-fKXeVorD+CzWvFs7VBuKTYIW63YD1e1osxwQ8caZ6o1jg6pDAbABDG54LCIq0j5cy7PjRvGIq6sef9DYPXpncg==} dependencies: - '@babel/runtime-corejs3': 7.22.6 + '@babel/runtime-corejs3': 7.23.6 dev: true /xtend@4.0.2: @@ -10995,8 +9896,3 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true - - /yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - dev: true From eec9d9532b58a528b7e204f74f23b3d0c46ea329 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 29 Dec 2023 18:33:26 -0700 Subject: [PATCH 150/273] feat: support ESLint 9 Also: - test: switch to flat config --- .eslintrc.json | 46 - .github/workflows/feature.yaml | 2 +- CONTRIBUTING.md | 2 +- eslint.config.mjs | 72 ++ package.json | 19 +- pnpm-lock.yaml | 1116 +++++++++-------- src/iterateJsdoc.js | 6 +- src/rules/noUndefinedTypes.js | 1 + test/.eslintrc.json | 7 - test/iterateJsdoc.js | 2 +- test/rules/assertions/checkAccess.js | 10 +- test/rules/assertions/checkExamples.js | 2 +- test/rules/assertions/checkIndentation.js | 10 +- test/rules/assertions/checkParamNames.js | 110 +- test/rules/assertions/checkPropertyNames.js | 6 - test/rules/assertions/checkTagNames.js | 29 +- test/rules/assertions/flatConfig.js | 5 +- test/rules/assertions/informativeDocs.js | 126 +- test/rules/assertions/matchDescription.js | 30 +- test/rules/assertions/noMissingSyntax.js | 6 +- test/rules/assertions/noMultiAsterisks.js | 6 +- test/rules/assertions/noRestrictedSyntax.js | 51 +- test/rules/assertions/noUndefinedTypes.js | 66 +- test/rules/assertions/requireDescription.js | 14 +- .../requireDescriptionCompleteSentence.js | 2 +- test/rules/assertions/requireJsdoc.js | 549 ++++---- test/rules/assertions/requireParam.js | 149 ++- test/rules/assertions/requireReturns.js | 135 +- test/rules/assertions/requireReturnsCheck.js | 63 +- test/rules/assertions/requireThrows.js | 5 +- test/rules/assertions/requireYields.js | 37 +- test/rules/assertions/requireYieldsCheck.js | 7 +- test/rules/assertions/tagLines.js | 6 +- test/rules/assertions/validTypes.js | 16 +- test/rules/data/.eslintrc.json | 22 - test/rules/data/eslint.config.mjs | 26 + test/rules/index.js | 6 +- tsconfig-prod.json | 1 + tsconfig.json | 1 + 39 files changed, 1625 insertions(+), 1144 deletions(-) delete mode 100644 .eslintrc.json create mode 100644 eslint.config.mjs delete mode 100644 test/.eslintrc.json delete mode 100644 test/rules/data/.eslintrc.json create mode 100644 test/rules/data/eslint.config.mjs diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index feb42684b..000000000 --- a/.eslintrc.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "env": { - "node": true, - "browser": false - }, - "extends": ["canonical", "canonical/jsdoc"], - "overrides": [ - { - "files": ".ncurc.js", - "parserOptions": { - "ecmaFeatures": { - "impliedStrict": false - }, - "sourceType": "script" - }, - "rules": { - "import/no-commonjs": 0, - "strict": [ - "error", - "global" - ] - } - } - ], - "settings": { - "jsdoc": { - "mode": "typescript" - } - }, - "root": true, - "rules": { - "array-element-newline": 0, - "filenames/match-regex": 0, - "import/extensions": 0, - "import/no-useless-path-segments": 0, - "prefer-named-capture-group": 0, - "unicorn/no-array-reduce": 0, - "unicorn/no-unsafe-regex": 0, - "unicorn/prefer-array-some": 0, - "unicorn/prevent-abbreviations": 0, - "unicorn/import-index": 0, - "linebreak-style": 0, - "no-inline-comments": 0, - "no-extra-parens": 0 - } -} diff --git a/.github/workflows/feature.yaml b/.github/workflows/feature.yaml index c2074cb2f..85dd75ae0 100644 --- a/.github/workflows/feature.yaml +++ b/.github/workflows/feature.yaml @@ -15,6 +15,7 @@ jobs: with: node-version: '20' - run: pnpm install + - run: pnpm build - run: pnpm lint timeout-minutes: 10 test: @@ -39,7 +40,6 @@ jobs: fail-fast: false matrix: node_js_version: - - '16' - '18' - '20' build: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3bfd4fb33..a78596308 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -54,7 +54,7 @@ Tests are expected. Each rule file should be in CamelCase (despite the rule name Each rule file should be an ESM default export of an object that has `valid` and `invalid` array properties containing the tests. Tests of each type should be provided. -`parserOptions` will be `ecmaVersion: 6` by default, but tests can override `parserOptions` +`languageOptions` will be `ecmaVersion: 6` by default, but tests can override `languageOptions` with their own. See ESLint's [RuleTester](https://eslint.org/docs/developer-guide/nodejs-api#ruletester) diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 000000000..f1cdfc662 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,72 @@ +import globals from 'globals'; +import jsdoc from './dist/index.js'; +// import canonical from 'eslint-config-canonical'; +// import canonicalJsdoc from 'eslint-config-canonical/jsdoc.js'; + +const common = { + linterOptions: { + reportUnusedDisableDirectives: 0 + }, + plugins: { + jsdoc + } +}; + +export default [ + // canonical, + // canonicalJsdoc, + { + ...common, + files: ['.ncurc.js'], + languageOptions: { + parserOptions: { + ecmaFeatures: { + impliedStrict: false + }, + }, + sourceType: 'script' + }, + rules: { + 'import/no-commonjs': 0, + strict: [ + 'error', + 'global' + ] + } + }, + { + ...common, + files: ['test/**/*.js'], + rules: { + 'no-restricted-syntax': 0, + 'unicorn/prevent-abbreviations': 0 + } + }, + { + ...common, + ignores: ['dist/**/*.js', '.ignore/**/*.js'], + languageOptions: { + globals: globals.node + }, + settings: { + jsdoc: { + mode: 'typescript' + } + }, + rules: { + 'array-element-newline': 0, + 'filenames/match-regex': 0, + 'import/extensions': 0, + 'import/no-useless-path-segments': 0, + 'prefer-named-capture-group': 0, + 'unicorn/no-array-reduce': 0, + 'unicorn/no-unsafe-regex': 0, + 'unicorn/prefer-array-some': 0, + 'unicorn/prevent-abbreviations': 0, + 'unicorn/import-index': 0, + 'linebreak-style': 0, + 'no-inline-comments': 0, + 'no-extra-parens': 0 + } + } +]; diff --git a/package.json b/package.json index 8612b687d..be8b6f101 100644 --- a/package.json +++ b/package.json @@ -18,15 +18,15 @@ "description": "JSDoc linting rules for ESLint.", "devDependencies": { "@babel/cli": "^7.23.4", - "@babel/core": "^7.23.6", + "@babel/core": "^7.23.7", "@babel/eslint-parser": "^7.23.3", "@babel/node": "^7.22.19", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-transform-flow-strip-types": "^7.23.3", - "@babel/preset-env": "^7.23.6", - "@babel/register": "^7.22.15", + "@babel/preset-env": "^7.23.7", + "@babel/register": "^7.23.7", "@es-joy/escodegen": "^3.5.1", - "@es-joy/jsdoc-eslint-parser": "^0.21.0", + "@es-joy/jsdoc-eslint-parser": "^0.21.1", "@hkdobrev/run-if-changed": "^0.3.1", "@semantic-release/commit-analyzer": "^11.1.0", "@semantic-release/github": "^9.2.6", @@ -39,7 +39,7 @@ "@types/json-schema": "^7.0.15", "@types/lodash.defaultsdeep": "^4.6.9", "@types/mocha": "^10.0.6", - "@types/node": "^20.10.5", + "@types/node": "^20.10.6", "@types/semver": "^7.5.6", "@types/spdx-expression-parse": "^3.0.5", "@typescript-eslint/parser": "^6.16.0", @@ -49,11 +49,12 @@ "chai": "^4.3.10", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "8.56.0", + "eslint": "9.0.0-alpha.0", "eslint-config-canonical": "~42.8.0", "espree": "^9.6.1", "gitdown": "^3.1.5", "glob": "^10.3.10", + "globals": "^13.24.0", "husky": "^8.0.3", "jsdoc-type-pratt-parser": "^4.0.0", "json-schema": "^0.4.0", @@ -67,7 +68,7 @@ "typescript": "5.3.3" }, "engines": { - "node": ">=16" + "node": ">=18" }, "keywords": [ "eslint", @@ -113,7 +114,7 @@ "statements": 100 }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" }, "repository": { "type": "git", @@ -132,7 +133,7 @@ "create-options": "node ./src/bin/generateOptions.mjs", "install-offline": "pnpm install --prefer-offline --no-audit", "lint": "npm run lint-arg -- .", - "lint-arg": "eslint --report-unused-disable-directives", + "lint-arg": "eslint --report-unused-disable-directives=false", "lint-fix": "npm run lint-arg -- --fix .", "prepare": "husky install", "test-no-cov": "cross-env BABEL_ENV=test mocha", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bc32521eb..329c23ee2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,34 +36,34 @@ dependencies: devDependencies: '@babel/cli': specifier: ^7.23.4 - version: 7.23.4(@babel/core@7.23.6) + version: 7.23.4(@babel/core@7.23.7) '@babel/core': - specifier: ^7.23.6 - version: 7.23.6 + specifier: ^7.23.7 + version: 7.23.7 '@babel/eslint-parser': specifier: ^7.23.3 - version: 7.23.3(@babel/core@7.23.6)(eslint@8.56.0) + version: 7.23.3(@babel/core@7.23.7)(eslint@9.0.0-alpha.0) '@babel/node': specifier: ^7.22.19 - version: 7.22.19(@babel/core@7.23.6) + version: 7.22.19(@babel/core@7.23.7) '@babel/plugin-syntax-class-properties': specifier: ^7.12.13 - version: 7.12.13(@babel/core@7.23.6) + version: 7.12.13(@babel/core@7.23.7) '@babel/plugin-transform-flow-strip-types': specifier: ^7.23.3 - version: 7.23.3(@babel/core@7.23.6) + version: 7.23.3(@babel/core@7.23.7) '@babel/preset-env': - specifier: ^7.23.6 - version: 7.23.6(@babel/core@7.23.6) + specifier: ^7.23.7 + version: 7.23.7(@babel/core@7.23.7) '@babel/register': - specifier: ^7.22.15 - version: 7.22.15(@babel/core@7.23.6) + specifier: ^7.23.7 + version: 7.23.7(@babel/core@7.23.7) '@es-joy/escodegen': specifier: ^3.5.1 version: 3.5.1 '@es-joy/jsdoc-eslint-parser': - specifier: ^0.21.0 - version: 0.21.0 + specifier: ^0.21.1 + version: 0.21.1 '@hkdobrev/run-if-changed': specifier: ^0.3.1 version: 0.3.1 @@ -101,8 +101,8 @@ devDependencies: specifier: ^10.0.6 version: 10.0.6 '@types/node': - specifier: ^20.10.5 - version: 20.10.5 + specifier: ^20.10.6 + version: 20.10.6 '@types/semver': specifier: ^7.5.6 version: 7.5.6 @@ -111,7 +111,7 @@ devDependencies: version: 3.0.5 '@typescript-eslint/parser': specifier: ^6.16.0 - version: 6.16.0(eslint@8.56.0)(typescript@5.3.3) + version: 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -131,11 +131,11 @@ devDependencies: specifier: ^5.0.1 version: 5.0.1 eslint: - specifier: 8.56.0 - version: 8.56.0 + specifier: 9.0.0-alpha.0 + version: 9.0.0-alpha.0 eslint-config-canonical: specifier: ~42.8.0 - version: 42.8.0(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.0)(@types/node@20.10.5)(eslint@8.56.0)(graphql@16.8.1)(typescript@5.3.3) + version: 42.8.0(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.0)(@types/node@20.10.6)(eslint@9.0.0-alpha.0)(graphql@16.8.1)(typescript@5.3.3) espree: specifier: ^9.6.1 version: 9.6.1 @@ -145,6 +145,9 @@ devDependencies: glob: specifier: ^10.3.10 version: 10.3.10 + globals: + specifier: ^13.24.0 + version: 13.24.0 husky: specifier: ^8.0.3 version: 8.0.3 @@ -203,14 +206,14 @@ packages: - encoding dev: true - /@babel/cli@7.23.4(@babel/core@7.23.6): + /@babel/cli@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-j3luA9xGKCXVyCa5R7lJvOMM+Kc2JEnAEIgz2ggtjQ/j5YUVgfsg/WsG95bbsgq7YLHuiCOzMnoSasuY16qiCw==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@jridgewell/trace-mapping': 0.3.20 commander: 4.1.1 convert-source-map: 2.0.0 @@ -236,19 +239,19 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.23.6: - resolution: {integrity: sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==} + /@babel/core@7.23.7: + resolution: {integrity: sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.23.5 '@babel/generator': 7.23.6 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) - '@babel/helpers': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/helpers': 7.23.7 '@babel/parser': 7.23.6 '@babel/template': 7.22.15 - '@babel/traverse': 7.23.6 + '@babel/traverse': 7.23.7 '@babel/types': 7.23.6 convert-source-map: 2.0.0 debug: 4.3.4(supports-color@8.1.1) @@ -259,29 +262,43 @@ packages: - supports-color dev: true - /@babel/eslint-parser@7.23.3(@babel/core@7.23.6)(eslint@8.56.0): + /@babel/eslint-parser@7.23.3(@babel/core@7.23.7)(eslint@8.56.0): resolution: {integrity: sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 eslint: 8.56.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true - /@babel/eslint-plugin@7.23.5(@babel/eslint-parser@7.23.3)(eslint@8.56.0): + /@babel/eslint-parser@7.23.3(@babel/core@7.23.7)(eslint@9.0.0-alpha.0): + resolution: {integrity: sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==} + engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + peerDependencies: + '@babel/core': ^7.11.0 + eslint: ^7.5.0 || ^8.0.0 + dependencies: + '@babel/core': 7.23.7 + '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 + eslint: 9.0.0-alpha.0 + eslint-visitor-keys: 2.1.0 + semver: 6.3.1 + dev: true + + /@babel/eslint-plugin@7.23.5(@babel/eslint-parser@7.23.3)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-03+E/58Hoo/ui69gR+beFdGpplpoVK0BSIdke2iw4/Bz7eGN0ssRenNlnU4nmbkowNQOPCStKSwFr8H6DiY49g==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/eslint-parser': 7.23.3(@babel/core@7.23.6)(eslint@8.56.0) - eslint: 8.56.0 + '@babel/eslint-parser': 7.23.3(@babel/core@7.23.7)(eslint@9.0.0-alpha.0) + eslint: 9.0.0-alpha.0 eslint-rule-composer: 0.3.0 dev: true @@ -320,42 +337,42 @@ packages: semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.23.6(@babel/core@7.23.6): + /@babel/helper-create-class-features-plugin@7.23.6(@babel/core@7.23.7): resolution: {integrity: sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.6): + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.7): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.6): + /@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.7): resolution: {integrity: sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4(supports-color@8.1.1) @@ -399,13 +416,13 @@ packages: '@babel/types': 7.23.6 dev: true - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.6): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -425,25 +442,25 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.6): + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.7): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 dev: true - /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.6): + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.7): resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 @@ -494,12 +511,12 @@ packages: '@babel/types': 7.23.6 dev: true - /@babel/helpers@7.23.6: - resolution: {integrity: sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==} + /@babel/helpers@7.23.7: + resolution: {integrity: sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.23.6 + '@babel/traverse': 7.23.7 '@babel/types': 7.23.6 transitivePeerDependencies: - supports-color @@ -514,15 +531,15 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/node@7.22.19(@babel/core@7.23.6): + /@babel/node@7.22.19(@babel/core@7.23.7): resolution: {integrity: sha512-VsKSO9aEHdO16NdtqkJfrXZ9Sxlna1BVnBbToWr1KGdI3cyIk6KqOoa8mWvpK280lJDOwJqxvnl994KmLhq1Yw==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/register': 7.22.15(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/register': 7.23.7(@babel/core@7.23.7) commander: 4.1.1 core-js: 3.34.0 node-environment-flags: 1.0.6 @@ -538,904 +555,904 @@ packages: '@babel/types': 7.23.6 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.6): + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.6): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7) dev: true - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.6): - resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==} + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.6): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.7): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.6): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.7): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.6): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.7): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.6): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.7): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.6): + /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.6): + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.6): + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.6): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.7): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.6): + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.6): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.7): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.6): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.7): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.6): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.7): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.6): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.7): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.6): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.7): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-generator-functions@7.23.4(@babel/core@7.23.6): - resolution: {integrity: sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==} + /@babel/plugin-transform-async-generator-functions@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.6) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.6) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.6) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.6): + /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.7): resolution: {integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.15 dev: true - /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.6): + /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.7): resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.6) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.6): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.7): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.6) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.6) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) '@babel/types': 7.23.6 dev: true - /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.23.6(@babel/core@7.23.6): - resolution: {integrity: sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ==} + /@babel/preset-env@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.6) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.6) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.6) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.6) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.6) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.6) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.6) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.6) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.6) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-async-generator-functions': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.6) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.6) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.6) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.6) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.6) - babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.6) - babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.6) - babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.6) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.7) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-async-generator-functions': 7.23.7(@babel/core@7.23.7) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.7) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.7) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.7) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.7) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.7) + babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.7) + babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.7) + babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.7) core-js-compat: 3.34.0 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.6): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.7): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/types': 7.23.6 esutils: 2.0.3 dev: true - /@babel/register@7.22.15(@babel/core@7.23.6): - resolution: {integrity: sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg==} + /@babel/register@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -1489,6 +1506,24 @@ packages: - supports-color dev: true + /@babel/traverse@7.23.7: + resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + debug: 4.3.4(supports-color@8.1.1) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/types@7.23.6: resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} engines: {node: '>=6.9.0'} @@ -1523,12 +1558,12 @@ packages: engines: {node: '>=4.0'} dev: true - /@es-joy/jsdoc-eslint-parser@0.21.0: - resolution: {integrity: sha512-h9gNCACJEslhdoWi3V3x8DS8kloJEizO/ZjCYGe0M24UnkdY1OUyP8uQw/pMbYeACMgz9lWtr8S+EthiMfNlHQ==} + /@es-joy/jsdoc-eslint-parser@0.21.1: + resolution: {integrity: sha512-SZopkdH2PHgdr/tMa32m/74cLzHPXuBqyTqoODA3ExlHC3u47Fy/5wBacoA+6uOnjwVP4tVDi2gtqS4vX+6F7g==} engines: {node: '>=18.0.0'} dependencies: - '@babel/core': 7.23.6 - '@babel/eslint-parser': 7.23.3(@babel/core@7.23.6)(eslint@8.56.0) + '@babel/core': 7.23.7 + '@babel/eslint-parser': 7.23.3(@babel/core@7.23.7)(eslint@8.56.0) '@es-joy/jsdoccomment': 0.41.0 '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 @@ -1556,6 +1591,16 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@eslint-community/eslint-utils@4.4.0(eslint@9.0.0-alpha.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 9.0.0-alpha.0 + eslint-visitor-keys: 3.4.3 + dev: true + /@eslint-community/regexpp@4.10.0: resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -1578,26 +1623,48 @@ packages: - supports-color dev: true + /@eslint/eslintrc@3.0.0: + resolution: {integrity: sha512-R8p3jN1kdWvFRiRfgpUxZ4PMgfJJFt6NuLGDnnqLb7RKmsd5Xa0KqRMjmaqRO7e38ZbG/9zKPgDjeJeqsDofSA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4(supports-color@8.1.1) + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.0 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + /@eslint/js@8.56.0: resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.6)(@types/node@20.10.5)(graphql@16.8.1): + /@eslint/js@9.0.0-alpha.0: + resolution: {integrity: sha512-SsmCfB6P+1D7RbUjWxi206LMt3jmiVXolUHIgR2ZeJGKyXdNtXY6t3yl8mkfO1XuCJM9iGHMKzQm9H52UyuSpQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: true + + /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.7)(@types/node@20.10.6)(graphql@16.8.1): resolution: {integrity: sha512-RbwVlz1gcYG62sECR1u0XqMh8w5e5XMCCZoMvPQ3nJzEBCTfXLGX727GBoRmSvY1x4gJmqNZ1lsOX7lZY14RIw==} engines: {node: '>=12'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: '@babel/code-frame': 7.23.5 - '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.23.6)(graphql@16.8.1) - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.6)(graphql@16.8.1) + '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.23.7)(graphql@16.8.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.7)(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) chalk: 4.1.2 debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.3.2 graphql: 16.8.1 - graphql-config: 4.5.0(@types/node@20.10.5)(graphql@16.8.1) + graphql-config: 4.5.0(@types/node@20.10.6)(graphql@16.8.1) graphql-depth-limit: 1.1.0(graphql@16.8.1) lodash.lowercase: 4.3.0 tslib: 2.6.2 @@ -1623,12 +1690,12 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.23.6)(graphql@16.8.1): + /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.23.7)(graphql@16.8.1): resolution: {integrity: sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.6)(graphql@16.8.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.7)(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) globby: 11.1.0 graphql: 16.8.1 @@ -1672,7 +1739,7 @@ packages: - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.10(@types/node@20.10.5)(graphql@16.8.1): + /@graphql-tools/executor-http@0.1.10(@types/node@20.10.6)(graphql@16.8.1): resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1683,7 +1750,7 @@ packages: dset: 3.1.3 extract-files: 11.0.0 graphql: 16.8.1 - meros: 1.3.0(@types/node@20.10.5) + meros: 1.3.0(@types/node@20.10.6) tslib: 2.6.2 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -1732,13 +1799,13 @@ packages: unixify: 1.0.0 dev: true - /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.23.6)(graphql@16.8.1): + /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.23.7)(graphql@16.8.1): resolution: {integrity: sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: '@babel/parser': 7.23.6 - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.7) '@babel/traverse': 7.23.6 '@babel/types': 7.23.6 '@graphql-tools/utils': 9.2.1(graphql@16.8.1) @@ -1806,7 +1873,7 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.10.5)(graphql@16.8.1): + /@graphql-tools/url-loader@7.17.18(@types/node@20.10.6)(graphql@16.8.1): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1814,7 +1881,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@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.10.5)(graphql@16.8.1) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.10.6)(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) @@ -2337,8 +2404,8 @@ packages: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} dev: true - /@types/node@20.10.5: - resolution: {integrity: sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==} + /@types/node@20.10.6: + resolution: {integrity: sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==} dependencies: undici-types: 5.26.5 dev: true @@ -2358,10 +2425,10 @@ packages: /@types/ws@8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true - /@typescript-eslint/eslint-plugin@6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/eslint-plugin@6.16.0(@typescript-eslint/parser@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2373,13 +2440,13 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': 6.16.0 - '@typescript-eslint/type-utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/type-utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.16.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 graphemer: 1.4.0 ignore: 5.3.0 natural-compare: 1.4.0 @@ -2390,14 +2457,14 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/experimental-utils@5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 + '@typescript-eslint/utils': 5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint: 9.0.0-alpha.0 transitivePeerDependencies: - supports-color - typescript @@ -2424,6 +2491,27 @@ packages: - supports-color dev: true + /@typescript-eslint/parser@6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3): + resolution: {integrity: sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.16.0 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.16.0 + debug: 4.3.4(supports-color@8.1.1) + eslint: 9.0.0-alpha.0 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/scope-manager@5.62.0: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2440,7 +2528,7 @@ packages: '@typescript-eslint/visitor-keys': 6.16.0 dev: true - /@typescript-eslint/type-utils@6.16.0(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/type-utils@6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2451,9 +2539,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: @@ -2513,19 +2601,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/utils@5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-alpha.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 '@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: 8.56.0 + eslint: 9.0.0-alpha.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -2533,19 +2621,19 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.16.0(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/utils@6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-alpha.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 6.16.0 '@typescript-eslint/types': 6.16.0 '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -2971,38 +3059,38 @@ packages: - supports-color dev: true - /babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.23.6): + /babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.23.7): resolution: {integrity: sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.6 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.6): + /babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.7): resolution: {integrity: sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) core-js-compat: 3.34.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.23.6): + /babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.23.7): resolution: {integrity: sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) transitivePeerDependencies: - supports-color dev: true @@ -4109,59 +4197,59 @@ packages: lodash.zip: 4.2.0 dev: true - /eslint-compat-utils@0.1.2(eslint@8.56.0): + /eslint-compat-utils@0.1.2(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 dev: true - /eslint-config-canonical@42.8.0(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.0)(@types/node@20.10.5)(eslint@8.56.0)(graphql@16.8.1)(typescript@5.3.3): + /eslint-config-canonical@42.8.0(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.0)(@types/node@20.10.6)(eslint@9.0.0-alpha.0)(graphql@16.8.1)(typescript@5.3.3): resolution: {integrity: sha512-Jurs2GnTq9ISNwSt+ryYPy35smrfFQXGSTi9dLJvGqDP3bAI27U9TkUNozCwPNb0hxy8gsvwy2tA4IO8TV1Kcg==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 dependencies: - '@babel/core': 7.23.6 - '@babel/eslint-parser': 7.23.3(@babel/core@7.23.6)(eslint@8.56.0) - '@babel/eslint-plugin': 7.23.5(@babel/eslint-parser@7.23.3)(eslint@8.56.0) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.6) - '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.6)(@types/node@20.10.5)(graphql@16.8.1) + '@babel/core': 7.23.7 + '@babel/eslint-parser': 7.23.3(@babel/core@7.23.7)(eslint@9.0.0-alpha.0) + '@babel/eslint-plugin': 7.23.5(@babel/eslint-parser@7.23.3)(eslint@9.0.0-alpha.0) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.7) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.7)(@types/node@20.10.6)(graphql@16.8.1) '@next/eslint-plugin-next': 13.5.6 '@rushstack/eslint-patch': 1.6.1 - '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 - eslint-config-prettier: 9.1.0(eslint@8.56.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@8.56.0) - eslint-plugin-ava: 14.0.0(eslint@8.56.0) - eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@8.56.0)(typescript@5.3.3) - eslint-plugin-cypress: 2.15.1(eslint@8.56.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.56.0) - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@8.56.0) - eslint-plugin-fp: 2.3.0(eslint@8.56.0) - eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) - eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint@8.56.0)(typescript@5.3.3) - eslint-plugin-jsdoc: 46.9.1(eslint@8.56.0) - eslint-plugin-jsonc: 2.11.2(eslint@8.56.0) - eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0) - eslint-plugin-lodash: 7.4.0(eslint@8.56.0) - eslint-plugin-mocha: 10.2.0(eslint@8.56.0) + '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint: 9.0.0-alpha.0 + eslint-config-prettier: 9.1.0(eslint@9.0.0-alpha.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) + eslint-plugin-ava: 14.0.0(eslint@9.0.0-alpha.0) + eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint-plugin-cypress: 2.15.1(eslint@9.0.0-alpha.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@9.0.0-alpha.0) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@9.0.0-alpha.0) + eslint-plugin-fp: 2.3.0(eslint@9.0.0-alpha.0) + eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint-plugin-jsdoc: 46.9.1(eslint@9.0.0-alpha.0) + eslint-plugin-jsonc: 2.11.2(eslint@9.0.0-alpha.0) + eslint-plugin-jsx-a11y: 6.8.0(eslint@9.0.0-alpha.0) + eslint-plugin-lodash: 7.4.0(eslint@9.0.0-alpha.0) + eslint-plugin-mocha: 10.2.0(eslint@9.0.0-alpha.0) eslint-plugin-modules-newline: 0.0.6 - eslint-plugin-n: 16.5.0(eslint@8.56.0) - eslint-plugin-prettier: 5.1.2(@types/eslint@8.56.0)(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1) - eslint-plugin-promise: 6.1.1(eslint@8.56.0) - eslint-plugin-react: 7.33.2(eslint@8.56.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0) - eslint-plugin-regexp: 1.15.0(eslint@8.56.0) - eslint-plugin-simple-import-sort: 10.0.0(eslint@8.56.0) - eslint-plugin-typescript-sort-keys: 3.1.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) - eslint-plugin-unicorn: 48.0.1(eslint@8.56.0) - eslint-plugin-vitest: 0.3.20(@typescript-eslint/eslint-plugin@6.16.0)(eslint@8.56.0)(typescript@5.3.3) - eslint-plugin-yml: 1.11.0(eslint@8.56.0) - eslint-plugin-zod: 1.4.0(eslint@8.56.0) + eslint-plugin-n: 16.5.0(eslint@9.0.0-alpha.0) + eslint-plugin-prettier: 5.1.2(@types/eslint@8.56.0)(eslint-config-prettier@9.1.0)(eslint@9.0.0-alpha.0)(prettier@3.1.1) + eslint-plugin-promise: 6.1.1(eslint@9.0.0-alpha.0) + eslint-plugin-react: 7.33.2(eslint@9.0.0-alpha.0) + eslint-plugin-react-hooks: 4.6.0(eslint@9.0.0-alpha.0) + eslint-plugin-regexp: 1.15.0(eslint@9.0.0-alpha.0) + eslint-plugin-simple-import-sort: 10.0.0(eslint@9.0.0-alpha.0) + eslint-plugin-typescript-sort-keys: 3.1.0(@typescript-eslint/parser@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint-plugin-unicorn: 48.0.1(eslint@9.0.0-alpha.0) + eslint-plugin-vitest: 0.3.20(@typescript-eslint/eslint-plugin@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint-plugin-yml: 1.11.0(eslint@9.0.0-alpha.0) + eslint-plugin-zod: 1.4.0(eslint@9.0.0-alpha.0) prettier: 3.1.1 ramda: 0.29.1 yaml-eslint-parser: 1.2.2 @@ -4183,13 +4271,13 @@ packages: - vitest dev: true - /eslint-config-prettier@9.1.0(eslint@8.56.0): + /eslint-config-prettier@9.1.0(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 dev: true /eslint-import-resolver-node@0.3.9: @@ -4202,7 +4290,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@8.56.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4211,9 +4299,9 @@ packages: dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 - eslint: 8.56.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) - eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint: 9.0.0-alpha.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) fast-glob: 3.3.2 get-tsconfig: 4.7.2 is-core-module: 2.13.1 @@ -4225,7 +4313,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4246,24 +4334,24 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) debug: 3.2.7 - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@8.56.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-ava@14.0.0(eslint@8.56.0): + /eslint-plugin-ava@14.0.0(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-XmKT6hppaipwwnLVwwvQliSU6AF1QMHiNoLD5JQfzhUhf0jY7CO0O624fQrE+Y/fTb9vbW8r77nKf7M/oHulxw==} engines: {node: '>=14.17 <15 || >=16.4'} peerDependencies: eslint: '>=8.26.0' dependencies: enhance-visitors: 1.0.0 - eslint: 8.56.0 - eslint-utils: 3.0.0(eslint@8.56.0) + eslint: 9.0.0-alpha.0 + eslint-utils: 3.0.0(eslint@9.0.0-alpha.0) espree: 9.6.1 espurify: 2.1.1 import-modules: 2.1.0 @@ -4272,15 +4360,15 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@8.56.0)(typescript@5.3.3): + /eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-0Egc0FKOnCRdu3bFEJhfHkdkusIgW0UxdemukkowZQnQsnf12FHSJ7K26b+tZ5pKB7cTyECSaqvEpoIJfplX4g==} engines: {node: '>=16.0.0'} dependencies: - '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) chance: 1.1.11 debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@8.56.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -4301,39 +4389,39 @@ packages: - typescript dev: true - /eslint-plugin-cypress@2.15.1(eslint@8.56.0): + /eslint-plugin-cypress@2.15.1(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 globals: 13.24.0 dev: true - /eslint-plugin-es-x@7.5.0(eslint@8.56.0): + /eslint-plugin-es-x@7.5.0(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-alpha.0) '@eslint-community/regexpp': 4.10.0 - eslint: 8.56.0 - eslint-compat-utils: 0.1.2(eslint@8.56.0) + eslint: 9.0.0-alpha.0 + eslint-compat-utils: 0.1.2(eslint@9.0.0-alpha.0) dev: true - /eslint-plugin-eslint-comments@3.2.0(eslint@8.56.0): + /eslint-plugin-eslint-comments@3.2.0(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' dependencies: escape-string-regexp: 1.0.5 - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 ignore: 5.3.0 dev: true - /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@8.56.0): + /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -4341,27 +4429,27 @@ packages: '@babel/plugin-transform-react-jsx': ^7.14.9 eslint: ^8.1.0 dependencies: - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.6) - eslint: 8.56.0 + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.7) + eslint: 9.0.0-alpha.0 lodash: 4.17.21 string-natural-compare: 3.0.1 dev: true - /eslint-plugin-fp@2.3.0(eslint@8.56.0): + /eslint-plugin-fp@2.3.0(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-3n2oHibwoIxAht9/+ZaTldhI6brXORgl8oNXqZd+d9xuAQt2SBJ2/aml0oQRMWvXrgsz2WG6wfC++NjzSG3prA==} engines: {node: '>=4.0.0'} peerDependencies: eslint: '>=3' dependencies: create-eslint-index: 1.0.0 - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 eslint-ast-utils: 1.1.0 lodash: 4.17.21 req-all: 0.1.0 dev: true - /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): + /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-ORizX37MelIWLbMyqI7hi8VJMf7A0CskMmYkB+lkCX3aF4pkGV7kwx5bSEb4qx7Yce2rAf9s34HqDRPjGRZPNQ==} engines: {node: '>=12'} peerDependencies: @@ -4369,9 +4457,9 @@ packages: dependencies: debug: 4.3.4(supports-color@8.1.1) doctrine: 3.0.0 - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) get-tsconfig: 4.7.2 is-glob: 4.0.3 minimatch: 3.1.2 @@ -4383,7 +4471,7 @@ packages: - supports-color dev: true - /eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint@8.56.0)(typescript@5.3.3): + /eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -4396,15 +4484,15 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 + '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/utils': 5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint: 9.0.0-alpha.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsdoc@46.9.1(eslint@8.56.0): + /eslint-plugin-jsdoc@46.9.1(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-11Ox5LCl2wY7gGkp9UOyew70o9qvii1daAH+h/MFobRVRNcy7sVlH+jm0HQdgcvcru6285GvpjpUyoa051j03Q==} engines: {node: '>=16'} peerDependencies: @@ -4415,7 +4503,7 @@ packages: comment-parser: 1.4.1 debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 esquery: 1.5.0 is-builtin-module: 3.2.1 semver: 7.5.4 @@ -4424,22 +4512,22 @@ packages: - supports-color dev: true - /eslint-plugin-jsonc@2.11.2(eslint@8.56.0): + /eslint-plugin-jsonc@2.11.2(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-F6A0MZhIGRBPOswzzn4tJFXXkPLiLwJaMlQwz/Qj1qx+bV5MCn79vBeJh2ynMmtqqHloi54KDCnsT/KWrcCcnQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - eslint: 8.56.0 - eslint-compat-utils: 0.1.2(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-alpha.0) + eslint: 9.0.0-alpha.0 + eslint-compat-utils: 0.1.2(eslint@9.0.0-alpha.0) espree: 9.6.1 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 natural-compare: 1.4.0 dev: true - /eslint-plugin-jsx-a11y@6.8.0(eslint@8.56.0): + /eslint-plugin-jsx-a11y@6.8.0(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} engines: {node: '>=4.0'} peerDependencies: @@ -4455,7 +4543,7 @@ packages: damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 es-iterator-helpers: 1.0.15 - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 hasown: 2.0.0 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -4464,24 +4552,24 @@ packages: object.fromentries: 2.0.7 dev: true - /eslint-plugin-lodash@7.4.0(eslint@8.56.0): + /eslint-plugin-lodash@7.4.0(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} engines: {node: '>=10'} peerDependencies: eslint: '>=2' dependencies: - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 lodash: 4.17.21 dev: true - /eslint-plugin-mocha@10.2.0(eslint@8.56.0): + /eslint-plugin-mocha@10.2.0(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-ZhdxzSZnd1P9LqDPF0DBcFLpRIGdh1zkF2JHnQklKQOvrQtT73kdP5K9V2mzvbLR+cCAO9OI48NXK/Ax9/ciCQ==} engines: {node: '>=14.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.56.0 - eslint-utils: 3.0.0(eslint@8.56.0) + eslint: 9.0.0-alpha.0 + eslint-utils: 3.0.0(eslint@9.0.0-alpha.0) rambda: 7.5.0 dev: true @@ -4492,16 +4580,16 @@ packages: requireindex: 1.1.0 dev: true - /eslint-plugin-n@16.5.0(eslint@8.56.0): + /eslint-plugin-n@16.5.0(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-Hw02Bj1QrZIlKyj471Tb1jSReTl4ghIMHGuBGiMVmw+s0jOPbI4CBuYpGbZr+tdQ+VAvSK6FDSta3J4ib/SKHQ==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-alpha.0) builtins: 5.0.1 - eslint: 8.56.0 - eslint-plugin-es-x: 7.5.0(eslint@8.56.0) + eslint: 9.0.0-alpha.0 + eslint-plugin-es-x: 7.5.0(eslint@9.0.0-alpha.0) get-tsconfig: 4.7.2 ignore: 5.3.0 is-builtin-module: 3.2.1 @@ -4511,7 +4599,7 @@ packages: semver: 7.5.4 dev: true - /eslint-plugin-prettier@5.1.2(@types/eslint@8.56.0)(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1): + /eslint-plugin-prettier@5.1.2(@types/eslint@8.56.0)(eslint-config-prettier@9.1.0)(eslint@9.0.0-alpha.0)(prettier@3.1.1): resolution: {integrity: sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4526,32 +4614,32 @@ packages: optional: true dependencies: '@types/eslint': 8.56.0 - eslint: 8.56.0 - eslint-config-prettier: 9.1.0(eslint@8.56.0) + eslint: 9.0.0-alpha.0 + eslint-config-prettier: 9.1.0(eslint@9.0.0-alpha.0) prettier: 3.1.1 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.56.0): + /eslint-plugin-promise@6.1.1(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.56.0): + /eslint-plugin-react-hooks@4.6.0(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 dev: true - /eslint-plugin-react@7.33.2(eslint@8.56.0): + /eslint-plugin-react@7.33.2(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} engines: {node: '>=4'} peerDependencies: @@ -4562,7 +4650,7 @@ packages: array.prototype.tosorted: 1.1.2 doctrine: 2.1.0 es-iterator-helpers: 1.0.15 - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 @@ -4576,16 +4664,16 @@ packages: string.prototype.matchall: 4.0.10 dev: true - /eslint-plugin-regexp@1.15.0(eslint@8.56.0): + /eslint-plugin-regexp@1.15.0(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} engines: {node: ^12 || >=14} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-alpha.0) '@eslint-community/regexpp': 4.10.0 comment-parser: 1.4.1 - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 grapheme-splitter: 1.0.4 jsdoctypeparser: 9.0.0 refa: 0.11.0 @@ -4593,15 +4681,15 @@ packages: scslre: 0.2.0 dev: true - /eslint-plugin-simple-import-sort@10.0.0(eslint@8.56.0): + /eslint-plugin-simple-import-sort@10.0.0(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 dev: true - /eslint-plugin-typescript-sort-keys@3.1.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3): + /eslint-plugin-typescript-sort-keys@3.1.0(@typescript-eslint/parser@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-rgZeYfEguqKni/V7sbmgFu9/94UDAQd7YqNd0J7Qhw7SdLIGd0iBk2KgpjhRhe2ge4rPSLDIdFWwUiDqBOst6Q==} engines: {node: '>= 16'} peerDependencies: @@ -4609,9 +4697,9 @@ packages: eslint: ^7 || ^8 typescript: ^3 || ^4 || ^5 dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 + '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint: 9.0.0-alpha.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 typescript: 5.3.3 @@ -4619,17 +4707,17 @@ packages: - supports-color dev: true - /eslint-plugin-unicorn@48.0.1(eslint@8.56.0): + /eslint-plugin-unicorn@48.0.1(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} engines: {node: '>=16'} peerDependencies: eslint: '>=8.44.0' dependencies: '@babel/helper-validator-identifier': 7.22.20 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-alpha.0) ci-info: 3.9.0 clean-regexp: 1.0.0 - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -4643,7 +4731,7 @@ packages: strip-indent: 3.0.0 dev: true - /eslint-plugin-vitest@0.3.20(@typescript-eslint/eslint-plugin@6.16.0)(eslint@8.56.0)(typescript@5.3.3): + /eslint-plugin-vitest@0.3.20(@typescript-eslint/eslint-plugin@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-O05k4j9TGMOkkghj9dRgpeLDyOSiVIxQWgNDPfhYPm5ioJsehcYV/zkRLekQs+c8+RBCVXucSED3fYOyy2EoWA==} engines: {node: ^18.0.0 || >= 20.0.0} peerDependencies: @@ -4656,23 +4744,23 @@ packages: vitest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 + '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint: 9.0.0-alpha.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-yml@1.11.0(eslint@8.56.0): + /eslint-plugin-yml@1.11.0(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-NBZP1NDGy0u38pY5ieix75jxS9GNOJy9xd4gQa0rU4gWbfEsVhKDwuFaQ6RJpDbv6Lq5TtcAZS/YnAc0oeRw0w==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4(supports-color@8.1.1) - eslint: 8.56.0 - eslint-compat-utils: 0.1.2(eslint@8.56.0) + eslint: 9.0.0-alpha.0 + eslint-compat-utils: 0.1.2(eslint@9.0.0-alpha.0) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.2 @@ -4680,13 +4768,13 @@ packages: - supports-color dev: true - /eslint-plugin-zod@1.4.0(eslint@8.56.0): + /eslint-plugin-zod@1.4.0(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-i9WzQGw2X5fQcuQh33mA8DQjZJM/yuyZvs1Fc5EyTidX7Ed/g832+1FEQ4u5gtXy+jZ+DVsB5+oMHj4tIOfeZg==} engines: {node: '>=12'} peerDependencies: eslint: '>=8.1.0' dependencies: - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 dev: true /eslint-rule-composer@0.3.0: @@ -4710,13 +4798,13 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils@3.0.0(eslint@8.56.0): + /eslint-utils@3.0.0(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.56.0 + eslint: 9.0.0-alpha.0 eslint-visitor-keys: 2.1.0 dev: true @@ -4777,6 +4865,50 @@ packages: - supports-color dev: true + /eslint@9.0.0-alpha.0: + resolution: {integrity: sha512-21yCNcPYvXtvn3RrqPQP5+2X3LAqkfuPWSkxdkQyftorCYwUgu0rTNXxWAy8sSeBBDoVpHfeg2UTI15H26wkXQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-alpha.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 3.0.0 + '@eslint/js': 9.0.0-alpha.0 + '@humanwhocodes/config-array': 0.11.13 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4(supports-color@8.1.1) + 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 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5486,7 +5618,7 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql-config@4.5.0(@types/node@20.10.5)(graphql@16.8.1): + /graphql-config@4.5.0(@types/node@20.10.6)(graphql@16.8.1): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -5500,7 +5632,7 @@ packages: '@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.10.5)(graphql@16.8.1) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.10.6)(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) cosmiconfig: 8.0.0 graphql: 16.8.1 @@ -6297,7 +6429,7 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -6309,7 +6441,7 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/parser': 7.23.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -6897,7 +7029,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.3.0(@types/node@20.10.5): + /meros@1.3.0(@types/node@20.10.6): resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} engines: {node: '>=13'} peerDependencies: @@ -6906,7 +7038,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /micro-spelling-correcter@1.1.1: diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index 0dbee3cbd..ecb509824 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -1805,7 +1805,7 @@ const getUtils = ( * @returns {Settings|false} */ const getSettings = (context) => { - /* eslint-disable canonical/sort-keys */ + /* dslint-disable canonical/sort-keys */ const settings = { // All rules ignorePrivate: Boolean(context.settings.jsdoc?.ignorePrivate), @@ -1838,7 +1838,7 @@ const getSettings = (context) => { // Many rules contexts: context.settings.jsdoc?.contexts, }; - /* eslint-enable canonical/sort-keys */ + /* dslint-enable canonical/sort-keys */ jsdocUtils.setTagStructure(settings.mode); try { @@ -2375,7 +2375,7 @@ const checkFile = (iterator, ruleConfig) => { export { getSettings, - // eslint-disable-next-line unicorn/prefer-export-from -- Avoid experimental parser + // dslint-disable-next-line unicorn/prefer-export-from -- Avoid experimental parser parseComment, }; diff --git a/src/rules/noUndefinedTypes.js b/src/rules/noUndefinedTypes.js index e05745e9e..4813fdb0a 100644 --- a/src/rules/noUndefinedTypes.js +++ b/src/rules/noUndefinedTypes.js @@ -179,6 +179,7 @@ export default iterateJsdoc(({ // If the file is a module, concat the variables from the module scope. .concat( + /* istanbul ignore next */ cjsOrESMScope ? globalScope.childScopes.flatMap(({ variables, diff --git a/test/.eslintrc.json b/test/.eslintrc.json deleted file mode 100644 index 2da33cd3f..000000000 --- a/test/.eslintrc.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "canonical/mocha", - "rules": { - "no-restricted-syntax": 0, - "unicorn/prevent-abbreviations": 0 - } -} diff --git a/test/iterateJsdoc.js b/test/iterateJsdoc.js index f26900855..945086ec2 100644 --- a/test/iterateJsdoc.js +++ b/test/iterateJsdoc.js @@ -1,5 +1,5 @@ import { - // eslint-disable-next-line import/no-named-default + // dslint-disable-next-line import/no-named-default default as iterateJsdoc, parseComment, } from '../src/iterateJsdoc.js'; diff --git a/test/rules/assertions/checkAccess.js b/test/rules/assertions/checkAccess.js index 2b12f2279..876dfd04d 100644 --- a/test/rules/assertions/checkAccess.js +++ b/test/rules/assertions/checkAccess.js @@ -1,3 +1,5 @@ +import * as typescriptEslintParser from '@typescript-eslint/parser'; + export default { invalid: [ { @@ -98,7 +100,9 @@ export default { message: 'Missing valid JSDoc @access level.', }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -260,7 +264,9 @@ export default { myClassField = 1 } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` diff --git a/test/rules/assertions/checkExamples.js b/test/rules/assertions/checkExamples.js index efc829d9c..476594557 100644 --- a/test/rules/assertions/checkExamples.js +++ b/test/rules/assertions/checkExamples.js @@ -1179,7 +1179,7 @@ export default { export default {}; `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, diff --git a/test/rules/assertions/checkIndentation.js b/test/rules/assertions/checkIndentation.js index 4cdedf05e..ee2c9630e 100644 --- a/test/rules/assertions/checkIndentation.js +++ b/test/rules/assertions/checkIndentation.js @@ -1,3 +1,5 @@ +import * as typescriptEslintParser from '@typescript-eslint/parser'; + export default { invalid: [ { @@ -323,7 +325,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -339,7 +343,9 @@ export default { return (Base: Function) => {}; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, ], }; diff --git a/test/rules/assertions/checkParamNames.js b/test/rules/assertions/checkParamNames.js index 410e9eebb..a666ff877 100644 --- a/test/rules/assertions/checkParamNames.js +++ b/test/rules/assertions/checkParamNames.js @@ -1,8 +1,5 @@ -// After `importMeta` no longer experimental, we can use this ESM -// approach over `__dirname`? -// import {fileURLToPath} from 'url'; -// import {join, dirname} from 'path'; -// join(dirname(fileURLToPath(import.meta.url)), '@babel/eslint-parser') +import * as typescriptEslintParser from '@typescript-eslint/parser'; +import * as babelEslintParser from '@babel/eslint-parser'; export default { invalid: [ @@ -293,6 +290,9 @@ export default { message: 'Duplicate @param "foo"', }, ], + languageOptions: { + sourceType: 'script', + }, options: [ { enableFixer: true, @@ -544,8 +544,8 @@ export default { message: 'Expected @param names to be "property". Got "prop".', }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -565,8 +565,8 @@ export default { message: 'Missing @param "prop.bar"', }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -603,8 +603,8 @@ export default { message: '@param "prop.bar" does not exist on prop', }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -625,8 +625,8 @@ export default { message: '@param "options.bar" does not exist on options', }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -710,7 +710,7 @@ export default { checkRestProperty: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 2_018, }, }, @@ -737,7 +737,7 @@ export default { checkRestProperty: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 2_018, }, }, @@ -830,7 +830,9 @@ export default { checkRestProperty: true, }, ], - parser: require.resolve('@babel/eslint-parser'), + languageOptions: { + parser: babelEslintParser + }, }, { code: ` @@ -860,7 +862,9 @@ export default { message: '@param "options.four" does not exist on options', }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -993,7 +997,7 @@ export default { useDefaultObjectProperties: false, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1175,7 +1179,9 @@ export default { message: 'Expected @param names to be "bar". Got "barr".', }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, ], valid: [ @@ -1326,8 +1332,8 @@ export default { constructor(private property: string) {} } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -1342,8 +1348,8 @@ export default { constructor(options: { foo: string, bar: string }) {} } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -1358,8 +1364,8 @@ export default { constructor({ foo, bar }: { foo: string, bar: string }) {} } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -1374,8 +1380,8 @@ export default { constructor({ foo, bar }: { foo: string, bar: string }) {} } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -1451,7 +1457,7 @@ export default { function quux ({foo, ...extra}) { } `, - parserOptions: { + languageOptions: { ecmaVersion: 2_018, }, }, @@ -1516,7 +1522,9 @@ export default { } } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1531,7 +1539,9 @@ export default { input; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1546,7 +1556,9 @@ export default { } } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1577,8 +1589,8 @@ export default { } } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -1636,7 +1648,7 @@ export default { }) { } `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1677,7 +1689,7 @@ export default { useDefaultObjectProperties: true, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1714,7 +1726,9 @@ export default { } } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1733,7 +1747,9 @@ export default { */ function foo(this: void, arg1: number): void; `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1744,7 +1760,9 @@ export default { function foo(this: void, arg1: number): void; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1759,7 +1777,9 @@ export default { } `, ignoreReadme: true, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1775,7 +1795,9 @@ export default { } `, ignoreReadme: true, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1793,7 +1815,9 @@ export default { ): Color; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1807,7 +1831,9 @@ export default { return bar; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, ], }; diff --git a/test/rules/assertions/checkPropertyNames.js b/test/rules/assertions/checkPropertyNames.js index 6455b109a..9e1d70d3a 100644 --- a/test/rules/assertions/checkPropertyNames.js +++ b/test/rules/assertions/checkPropertyNames.js @@ -1,9 +1,3 @@ -// After `importMeta` no longer experimental, we can use this ESM -// approach over `__dirname`? -// import {fileURLToPath} from 'url'; -// import {join, dirname} from 'path'; -// join(dirname(fileURLToPath(import.meta.url)), '@babel/eslint-parser') - export default { invalid: [ { diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index 0ab13c5df..33cf4fe48 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -1,3 +1,4 @@ +import * as typescriptEslintParser from '@typescript-eslint/parser'; import { closureTags, jsdocTags, @@ -1069,7 +1070,9 @@ export default { typed: true, }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1082,7 +1085,9 @@ export default { typed: true, }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1107,7 +1112,9 @@ export default { typed: true, }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1120,7 +1127,9 @@ export default { typed: true, }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1135,7 +1144,9 @@ export default { typed: true, }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1391,8 +1402,8 @@ export default { // ... } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -1440,7 +1451,9 @@ export default { ConvertToBase64(): boolean; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` diff --git a/test/rules/assertions/flatConfig.js b/test/rules/assertions/flatConfig.js index 02b876389..986e85eba 100644 --- a/test/rules/assertions/flatConfig.js +++ b/test/rules/assertions/flatConfig.js @@ -15,10 +15,7 @@ export default { `, languageOptions: { parser: tsParser, - parserOptions: { - ecmaVersion: 2_020, - sourceType: 'module', - }, + sourceType: 'module', }, // Need manual setting here until fixing: // https://github.com/eslint/eslint/pull/16944 diff --git a/test/rules/assertions/informativeDocs.js b/test/rules/assertions/informativeDocs.js index 3b33641fe..5dbb8f27e 100644 --- a/test/rules/assertions/informativeDocs.js +++ b/test/rules/assertions/informativeDocs.js @@ -1,3 +1,5 @@ +import * as typescriptEslintParser from '@typescript-eslint/parser'; + export default { invalid: [ { @@ -23,7 +25,9 @@ export default { message: 'This description only repeats the name it describes.', }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -150,8 +154,8 @@ export default { message: 'This description only repeats the name it describes.', }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -168,8 +172,8 @@ export default { message: 'This description only repeats the name it describes.', }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -186,8 +190,8 @@ export default { message: 'This description only repeats the name it describes.', }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -204,8 +208,8 @@ export default { message: 'This description only repeats the name it describes.', }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -222,8 +226,8 @@ export default { message: 'This description only repeats the name it describes.', }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -240,8 +244,8 @@ export default { message: 'This description only repeats the name it describes.', }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -258,8 +262,8 @@ export default { message: 'This description only repeats the name it describes.', }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -276,8 +280,8 @@ export default { message: 'This description only repeats the name it describes.', }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -292,8 +296,8 @@ export default { message: 'This description only repeats the name it describes.', }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -311,8 +315,8 @@ export default { message: 'This description only repeats the name it describes.', }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -327,8 +331,8 @@ export default { message: 'This description only repeats the name it describes.', }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -343,8 +347,8 @@ export default { message: 'This description only repeats the name it describes.', }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -361,8 +365,8 @@ export default { message: 'This description only repeats the name it describes.', }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -377,8 +381,8 @@ export default { message: 'This description only repeats the name it describes.', }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -393,8 +397,8 @@ export default { message: 'This description only repeats the name it describes.', }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -516,7 +520,9 @@ export default { /** Informative info user id. */ let userId: string; `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -584,8 +590,8 @@ export default { def; } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -596,8 +602,8 @@ export default { accessor def; } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -608,8 +614,8 @@ export default { def() {} } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -620,8 +626,8 @@ export default { abstract accessor def; } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -632,8 +638,8 @@ export default { abstract def(); } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -644,8 +650,8 @@ export default { abstract def; } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -654,8 +660,8 @@ export default { /** abc */ namespace Def {} `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -667,8 +673,8 @@ export default { def() {} } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -677,8 +683,8 @@ export default { /** abc */ declare function def(); `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -687,8 +693,8 @@ export default { /** abc */ enum Def {} `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -699,8 +705,8 @@ export default { ghi, } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -709,8 +715,8 @@ export default { /** abc */ interface Def {} `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -719,8 +725,8 @@ export default { /** abc */ type Def = {}; `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, @@ -729,8 +735,8 @@ export default { /** abc */ type Def = {}; `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, ecmaVersion: 2_022, }, }, diff --git a/test/rules/assertions/matchDescription.js b/test/rules/assertions/matchDescription.js index 776dedb62..db3dd406b 100644 --- a/test/rules/assertions/matchDescription.js +++ b/test/rules/assertions/matchDescription.js @@ -1,3 +1,5 @@ +import * as typescriptEslintParser from '@typescript-eslint/parser'; + export default { invalid: [ { @@ -796,7 +798,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -820,7 +824,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -985,7 +991,9 @@ export default { matchDescription: '^\\S[\\s\\S]*\\S$', }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1361,7 +1369,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1379,7 +1389,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1640,7 +1652,9 @@ export default { matchDescription: '^\\S[\\s\\S]*\\S$', }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1661,7 +1675,9 @@ export default { matchDescription: '^\\S[\\s\\S]*\\S$', }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` diff --git a/test/rules/assertions/noMissingSyntax.js b/test/rules/assertions/noMissingSyntax.js index 0caffef09..833082c83 100644 --- a/test/rules/assertions/noMissingSyntax.js +++ b/test/rules/assertions/noMissingSyntax.js @@ -1,3 +1,5 @@ +import * as typescriptEslintParser from '@typescript-eslint/parser'; + export default { invalid: [ { @@ -148,7 +150,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` diff --git a/test/rules/assertions/noMultiAsterisks.js b/test/rules/assertions/noMultiAsterisks.js index a48ee517d..174d17662 100644 --- a/test/rules/assertions/noMultiAsterisks.js +++ b/test/rules/assertions/noMultiAsterisks.js @@ -1,3 +1,5 @@ +import * as typescriptEslintParser from '@typescript-eslint/parser'; + export default { invalid: [ { @@ -447,7 +449,9 @@ export default { // } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` diff --git a/test/rules/assertions/noRestrictedSyntax.js b/test/rules/assertions/noRestrictedSyntax.js index 459d1905e..0f6f3b8d3 100644 --- a/test/rules/assertions/noRestrictedSyntax.js +++ b/test/rules/assertions/noRestrictedSyntax.js @@ -1,3 +1,6 @@ +import * as typescriptEslintParser from '@typescript-eslint/parser'; +import * as jsdocEslintParser from '@es-joy/jsdoc-eslint-parser/typescript.js'; + export default { invalid: [ { @@ -343,7 +346,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -393,7 +398,9 @@ export default { ], }, ], - parser: require.resolve('@es-joy/jsdoc-eslint-parser/typescript.js'), + languageOptions: { + parser: jsdocEslintParser, + } }, { code: ` @@ -570,7 +577,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -596,7 +605,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -622,7 +633,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -650,7 +663,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -826,7 +841,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -861,7 +878,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -978,7 +997,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -998,7 +1019,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1018,7 +1041,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1040,7 +1065,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` diff --git a/test/rules/assertions/noUndefinedTypes.js b/test/rules/assertions/noUndefinedTypes.js index 80f82b1f3..266adfacc 100644 --- a/test/rules/assertions/noUndefinedTypes.js +++ b/test/rules/assertions/noUndefinedTypes.js @@ -1,3 +1,7 @@ +import * as typescriptEslintParser from '@typescript-eslint/parser'; +import * as babelEslintParser from '@babel/eslint-parser'; +import globals from 'globals'; + export default { invalid: [ { @@ -575,8 +579,10 @@ export default { } `, - env: { - es6: true, + languageOptions: { + globals: { + Promise: 'readonly', + }, }, }, { @@ -607,7 +613,7 @@ export default { } `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -622,8 +628,8 @@ export default { } `, - env: { - node: true, + languageOptions: { + globals: globals.node, }, }, { @@ -637,8 +643,8 @@ export default { } `, - env: { - node: false, + languageOptions: { + globals: globals.node, }, }, { @@ -654,7 +660,7 @@ export default { } `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -670,8 +676,10 @@ export default { } `, - globals: { - HisType: true, + languageOptions: { + globals: { + HisType: true, + }, }, }, { @@ -1019,8 +1027,10 @@ export default { } }; `, - env: { - es6: true, + languageOptions: { + globals: { + Promise: 'readonly', + }, }, }, { @@ -1035,8 +1045,10 @@ export default { return Promise.resolve(value); }; `, - env: { - es6: true, + languageOptions: { + globals: { + Promise: 'readonly', + }, }, settings: { jsdoc: { @@ -1053,8 +1065,10 @@ export default { * @typedef {ValueType} ValueFunc */ `, - env: { - es6: true, + languageOptions: { + globals: { + Promise: 'readonly', + }, }, settings: { jsdoc: { @@ -1130,7 +1144,9 @@ export default { } } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1179,9 +1195,11 @@ export default { .once('end', () => resolve(data)); }); }; - `, - env: { - es6: true, + `, + languageOptions: { + globals: { + Promise: 'readonly', + }, }, ignoreReadme: true, }, @@ -1295,7 +1313,9 @@ export default { } } `, - parser: require.resolve('@babel/eslint-parser'), + languageOptions: { + parser: babelEslintParser + }, settings: { jsdoc: { mode: 'typescript', @@ -1370,7 +1390,7 @@ export default { markVariablesAsUsed: false, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1391,7 +1411,7 @@ export default { disableReporting: true, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, diff --git a/test/rules/assertions/requireDescription.js b/test/rules/assertions/requireDescription.js index 004cf45c5..5dfbb67a6 100644 --- a/test/rules/assertions/requireDescription.js +++ b/test/rules/assertions/requireDescription.js @@ -1,3 +1,5 @@ +import * as typescriptEslintParser from '@typescript-eslint/parser'; + export default { invalid: [ { @@ -270,7 +272,9 @@ export default { descriptionStyle: 'tag', }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -911,7 +915,9 @@ export default { descriptionStyle: 'tag', }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -929,7 +935,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` diff --git a/test/rules/assertions/requireDescriptionCompleteSentence.js b/test/rules/assertions/requireDescriptionCompleteSentence.js index cf385b629..3c0ffc7d9 100644 --- a/test/rules/assertions/requireDescriptionCompleteSentence.js +++ b/test/rules/assertions/requireDescriptionCompleteSentence.js @@ -1472,7 +1472,7 @@ export default { foo() } `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, diff --git a/test/rules/assertions/requireJsdoc.js b/test/rules/assertions/requireJsdoc.js index 772f63219..b6fa0af78 100644 --- a/test/rules/assertions/requireJsdoc.js +++ b/test/rules/assertions/requireJsdoc.js @@ -1,6 +1,6 @@ -/** - * @see https://github.com/eslint/eslint/blob/master/tests/lib/rules/require-jsdoc.js - */ +import * as typescriptEslintParser from '@typescript-eslint/parser'; +import * as babelEslintParser from '@babel/eslint-parser'; +import globals from 'globals'; export default { invalid: [ @@ -48,7 +48,9 @@ export default { catchJerry(): boolean; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` @@ -94,7 +96,9 @@ export default { jerry: number; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` @@ -131,7 +135,9 @@ export default { bar(): string; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` @@ -169,7 +175,9 @@ export default { bar: string; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` @@ -217,7 +225,9 @@ export default { meow(): void; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` @@ -388,7 +398,7 @@ function quux (foo) { }; `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -423,7 +433,7 @@ function quux (foo) { } export var test2 = test; `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -456,7 +466,7 @@ function quux (foo) { }; `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -489,7 +499,7 @@ function quux (foo) { }; `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -519,7 +529,7 @@ function quux (foo) { }; `, - parserOptions: { + languageOptions: { sourceType: 'module', }, settings: { @@ -561,7 +571,7 @@ function quux (foo) { }; `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -594,7 +604,7 @@ function quux (foo) { }; `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -627,7 +637,7 @@ function quux (foo) { */ export default function () {} `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -660,7 +670,7 @@ function quux (foo) { */ export default () => {} `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -693,7 +703,7 @@ function quux (foo) { */ export default (function () {}) `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -726,7 +736,7 @@ function quux (foo) { */ export default class {} `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -859,7 +869,7 @@ function quux (foo) { this.a = xs; } }`, - parserOptions: { + languageOptions: { ecmaVersion: 6, }, }, @@ -902,7 +912,7 @@ function quux (foo) { this.a = xs; } }`, - parserOptions: { + languageOptions: { ecmaVersion: 6, }, }, @@ -945,7 +955,7 @@ function quux (foo) { this.a = xs; } }`, - parserOptions: { + languageOptions: { ecmaVersion: 6, }, }, @@ -988,7 +998,7 @@ function quux (foo) { this.a = xs; } }`, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1031,7 +1041,7 @@ function quux (foo) { this.a = xs; } }`, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1059,7 +1069,7 @@ function quux (foo) { */ var myFunction = () => {} `, - parserOptions: { + languageOptions: { ecmaVersion: 6, }, }, @@ -1087,7 +1097,7 @@ function quux (foo) { */ var myFunction = () => () => {} `, - parserOptions: { + languageOptions: { ecmaVersion: 6, }, }, @@ -1140,7 +1150,7 @@ function quux (foo) { */ bar() {}} `, - parserOptions: { + languageOptions: { ecmaVersion: 6, }, }, @@ -1225,8 +1235,8 @@ function quux (foo) { } `, - env: { - node: true, + languageOptions: { + globals: globals.node, }, errors: [ { @@ -1258,8 +1268,8 @@ function quux (foo) { } `, - env: { - node: true, + languageOptions: { + globals: globals.node, }, errors: [ { @@ -1295,8 +1305,8 @@ function quux (foo) { } } `, - env: { - node: true, + languageOptions: { + globals: globals.node, }, errors: [ { @@ -1334,8 +1344,8 @@ function quux (foo) { } } `, - env: { - node: true, + languageOptions: { + globals: globals.node, }, errors: [ { @@ -1375,8 +1385,8 @@ function quux (foo) { } } `, - env: { - node: true, + languageOptions: { + globals: globals.node, }, errors: [ { @@ -1414,8 +1424,8 @@ function quux (foo) { } `, - env: { - node: true, + languageOptions: { + globals: globals.node, }, errors: [ { @@ -1452,8 +1462,8 @@ function quux (foo) { test.prototype.method = function() {} `, - env: { - node: true, + languageOptions: { + globals: globals.node, }, errors: [ { @@ -1493,8 +1503,8 @@ function quux (foo) { test: test } `, - env: { - node: true, + languageOptions: { + globals: globals.node, }, errors: [ { @@ -1532,8 +1542,8 @@ function quux (foo) { test: test } `, - env: { - node: true, + languageOptions: { + globals: globals.node, }, errors: [ { @@ -1571,8 +1581,8 @@ function quux (foo) { } module.exports = Test; `, - env: { - node: true, + languageOptions: { + globals: globals.node, }, errors: [ { @@ -1630,7 +1640,7 @@ function quux (foo) { } `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1665,7 +1675,7 @@ function quux (foo) { } `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1700,7 +1710,7 @@ function quux (foo) { } export default quux; `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1733,7 +1743,7 @@ function quux (foo) { } `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1768,7 +1778,7 @@ function quux (foo) { } `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1804,7 +1814,7 @@ function quux (foo) { var test2 = 2; export { test, test2 } `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1839,7 +1849,7 @@ function quux (foo) { } export { test as test2 } `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1872,7 +1882,7 @@ function quux (foo) { } `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1907,7 +1917,7 @@ function quux (foo) { } `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1942,7 +1952,7 @@ function quux (foo) { } `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1977,7 +1987,7 @@ function quux (foo) { } `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -2009,7 +2019,7 @@ function quux (foo) { } `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -2019,8 +2029,8 @@ function quux (foo) { } `, - env: { - node: true, + languageOptions: { + globals: globals.node, }, errors: [ { @@ -2056,8 +2066,8 @@ function quux (foo) { } `, - env: { - node: true, + languageOptions: { + globals: globals.node, }, errors: [ { @@ -2086,7 +2096,7 @@ function quux (foo) { } `, - parserOptions: { + languageOptions: { ecmaVersion: 6, sourceType: 'module', }, @@ -2097,8 +2107,8 @@ function quux (foo) { } `, - env: { - node: true, + languageOptions: { + globals: globals.node, }, errors: [ { @@ -2127,7 +2137,7 @@ function quux (foo) { } `, - parserOptions: { + languageOptions: { ecmaVersion: 6, sourceType: 'module', }, @@ -2204,7 +2214,9 @@ function quux (foo) { meow(): void; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` @@ -2234,31 +2246,33 @@ function quux (foo) { someProperty: boolean; // Flow type annotation. } `, - parser: require.resolve('@babel/eslint-parser'), - parserOptions: { - babelOptions: { - env: { - test: { - plugins: [ - 'istanbul', - ], + languageOptions: { + parser: babelEslintParser, + parserOptions: { + babelOptions: { + env: { + test: { + plugins: [ + 'istanbul', + ], + }, }, - }, - plugins: [ - '@babel/plugin-transform-flow-strip-types', - '@babel/plugin-syntax-class-properties', - 'add-module-exports', - ], - presets: [ - [ - '@babel/preset-env', - { - targets: { - node: 12, + plugins: [ + '@babel/plugin-transform-flow-strip-types', + '@babel/plugin-syntax-class-properties', + 'add-module-exports', + ], + presets: [ + [ + '@babel/preset-env', + { + targets: { + node: 12, + }, }, - }, + ], ], - ], + }, }, }, }, @@ -2299,7 +2313,7 @@ function quux (foo) { } } `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -2349,8 +2363,8 @@ function quux (foo) { } } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -2423,8 +2437,8 @@ function quux (foo) { } } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -2514,8 +2528,8 @@ function quux (foo) { */ export const loginSuccessAction = (): BaseActionPayload => ({ type: LOGIN_SUCCESSFUL }); `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -2569,7 +2583,9 @@ function quux (foo) { helpers?: { [key in string]: AnyFunction }; }; `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` @@ -2709,7 +2725,9 @@ function quux (foo) { return arg; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` @@ -2765,7 +2783,9 @@ function quux (foo) { return arg; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` @@ -2863,8 +2883,8 @@ function quux (foo) { tail: boolean; } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -2893,8 +2913,8 @@ function quux (foo) { @Entity('users') export class User {} `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -3111,7 +3131,9 @@ function quux (foo) { anotherFunc() {} } `, - parser: require.resolve('@babel/eslint-parser'), + languageOptions: { + parser: babelEslintParser, + } }, { code: ` @@ -3141,8 +3163,8 @@ function quux (foo) { A, B } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -3176,8 +3198,8 @@ function quux (foo) { aVar: string; } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -3205,8 +3227,8 @@ function quux (foo) { */ export type testType = string | number; `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -3256,8 +3278,8 @@ function quux (foo) { quux(): void; } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -3300,7 +3322,9 @@ function quux (foo) { public value = new EventEmitter(); } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` @@ -3560,8 +3584,8 @@ function quux (foo) { public disabled = false; } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -3594,7 +3618,7 @@ function quux (foo) { */ export default (arg) => arg; `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -3639,7 +3663,7 @@ function quux (foo) { inner(); } `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -3684,7 +3708,7 @@ function quux (foo) { inner(); }; `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -3722,8 +3746,8 @@ function quux (foo) { public disabled = false; } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -3762,7 +3786,9 @@ function quux (foo) { public foo?: number; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` @@ -3804,7 +3830,9 @@ function quux (foo) { two: number; }; `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` @@ -3852,7 +3880,9 @@ function quux (foo) { two: number; }; `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` @@ -4079,7 +4109,9 @@ function quux (foo) { } } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` @@ -4123,7 +4155,9 @@ function quux (foo) { // ... } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` @@ -4152,11 +4186,13 @@ function quux (foo) { }, }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { - ecmaFeatures: { - jsx: true, - }, + languageOptions: { + parser: typescriptEslintParser, + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + } }, }, ], @@ -4179,7 +4215,9 @@ function quux (foo) { }, }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` /** This is comment */ @@ -4199,7 +4237,9 @@ function quux (foo) { }, }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` /** This is comment */ @@ -4223,7 +4263,9 @@ function quux (foo) { }, }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` /** This is comment */ @@ -4246,7 +4288,9 @@ function quux (foo) { }, }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` /** This is comment */ @@ -4268,7 +4312,9 @@ function quux (foo) { }, }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` /** @@ -4365,6 +4411,9 @@ function quux (foo) { var object = { name: 'key'}; Object.keys(object).forEach(function() {}) `, + languageOptions: { + sourceType: 'script', + }, }, { code: ` @@ -4477,7 +4526,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 6, }, }, @@ -4503,7 +4552,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 6, }, }, @@ -4529,7 +4578,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 6, sourceType: 'module', }, @@ -4556,7 +4605,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 6, sourceType: 'module', }, @@ -4576,7 +4625,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 6, }, }, @@ -4593,7 +4642,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 6, }, }, @@ -4610,7 +4659,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 6, }, }, @@ -4627,7 +4676,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 6, }, }, @@ -4644,7 +4693,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 6, }, }, @@ -4657,7 +4706,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 6, }, }, @@ -4688,7 +4737,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 6, }, }, @@ -4715,7 +4764,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 6, }, }, @@ -4753,9 +4802,9 @@ function quux (foo) { module.exports = { prop: { prop2: test.method } } - `, - env: { - node: true, + `, + languageOptions: { + globals: globals.node, }, options: [ { @@ -4778,9 +4827,9 @@ function quux (foo) { module.exports = { prop: { prop2: test } } - `, - env: { - node: true, + `, + languageOptions: { + globals: globals.node, }, options: [ { @@ -4803,9 +4852,9 @@ function quux (foo) { module.exports = { prop: { prop2: test } } - `, - env: { - node: true, + `, + languageOptions: { + globals: globals.node, }, options: [ { @@ -4832,9 +4881,9 @@ function quux (foo) { exports.someMethod = { prop: { prop2: test } } - `, - env: { - node: true, + `, + languageOptions: { + globals: globals.node, }, options: [ { @@ -4861,9 +4910,9 @@ function quux (foo) { module.exports = { prop: { prop2: test } } - `, - env: { - node: true, + `, + languageOptions: { + globals: globals.node, }, options: [ { @@ -4882,9 +4931,9 @@ function quux (foo) { module.exports = { prop: { prop2: test } } - `, - env: { - node: true, + `, + languageOptions: { + globals: globals.node, }, options: [ { @@ -4909,9 +4958,9 @@ function quux (foo) { module.exports = { prop: window } - `, - env: { - node: true, + `, + languageOptions: { + globals: globals.node, }, options: [ { @@ -4938,9 +4987,9 @@ function quux (foo) { module.exports = { prop: { prop2: test } } - `, - env: { - node: true, + `, + languageOptions: { + globals: globals.node, }, options: [ { @@ -4962,9 +5011,9 @@ function quux (foo) { module.exports = { prop: { prop2: test } } - `, - env: { - node: true, + `, + languageOptions: { + globals: globals.node, }, options: [ { @@ -4994,9 +5043,9 @@ function quux (foo) { module.exports = { prop: { prop2: test } } - `, - env: { - node: true, + `, + languageOptions: { + globals: globals.node, }, options: [ { @@ -5018,9 +5067,9 @@ function quux (foo) { } } module.exports = Test; - `, - env: { - node: true, + `, + languageOptions: { + globals: globals.node, }, options: [ { @@ -5048,7 +5097,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -5071,7 +5120,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -5093,7 +5142,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -5114,7 +5163,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -5135,7 +5184,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -5158,7 +5207,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -5181,7 +5230,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -5203,7 +5252,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -5226,7 +5275,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -5249,7 +5298,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -5269,7 +5318,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -5311,9 +5360,9 @@ function quux (foo) { export function someMethod() { } - `, - env: { - node: true, + `, + languageOptions: { + globals: globals.node, }, options: [ { @@ -5327,7 +5376,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 6, sourceType: 'module', }, @@ -5336,9 +5385,9 @@ function quux (foo) { export function someMethod() { } - `, - env: { - node: true, + `, + languageOptions: { + globals: globals.node, }, options: [ { @@ -5352,7 +5401,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 6, sourceType: 'module', }, @@ -5361,9 +5410,9 @@ function quux (foo) { exports.someMethod = function() { } - `, - env: { - node: true, + `, + languageOptions: { + globals: globals.node, }, options: [ { @@ -5406,7 +5455,7 @@ function quux (foo) { }, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, { @@ -5428,8 +5477,8 @@ function quux (foo) { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -5452,8 +5501,8 @@ function quux (foo) { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, { @@ -5475,8 +5524,8 @@ function quux (foo) { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -5499,8 +5548,8 @@ function quux (foo) { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, { @@ -5522,8 +5571,8 @@ function quux (foo) { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -5546,8 +5595,8 @@ function quux (foo) { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -5571,12 +5620,14 @@ function quux (foo) { }, }, ], - parser: require.resolve('@babel/eslint-parser'), - parserOptions: { - ecmaFeatures: { - jsx: true, - }, + languageOptions: { ecmaVersion: 2_017, + parser: babelEslintParser, + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + }, sourceType: 'module', }, }, @@ -5598,8 +5649,8 @@ function quux (foo) { }, }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -5621,8 +5672,8 @@ function quux (foo) { publicOnly: true, }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -5650,7 +5701,9 @@ function quux (foo) { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` @@ -5676,8 +5729,8 @@ function quux (foo) { }, }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -5711,8 +5764,8 @@ function quux (foo) { }, }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -5737,8 +5790,8 @@ function quux (foo) { }, }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -5763,8 +5816,8 @@ function quux (foo) { }, }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -5954,7 +6007,9 @@ function quux (foo) { }, }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` @@ -5974,7 +6029,9 @@ function quux (foo) { publicOnly: true, }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` @@ -6019,7 +6076,9 @@ function quux (foo) { }, }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` @@ -6040,8 +6099,8 @@ function quux (foo) { }, }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -6174,7 +6233,9 @@ function quux (foo) { }, }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, { code: ` @@ -6197,8 +6258,8 @@ function quux (foo) { }, }, ], - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -6233,7 +6294,9 @@ function quux (foo) { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser, + } }, ], }; diff --git a/test/rules/assertions/requireParam.js b/test/rules/assertions/requireParam.js index ee72c5644..c8b6968a3 100644 --- a/test/rules/assertions/requireParam.js +++ b/test/rules/assertions/requireParam.js @@ -1,8 +1,5 @@ -// After `importMeta` no longer experimental, we can use this ESM -// approach over `__dirname`? -// import {fileURLToPath} from 'url'; -// import {join, dirname} from 'path'; -// join(dirname(fileURLToPath(import.meta.url)), '@babel/eslint-parser') +import * as typescriptEslintParser from '@typescript-eslint/parser'; +import * as babelEslintParser from '@babel/eslint-parser'; export default { invalid: [ @@ -1040,8 +1037,8 @@ export default { constructor(private property: string, private foo: number) {} } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -1334,7 +1331,9 @@ export default { TestMethod(id: number): void; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1375,7 +1374,9 @@ export default { abstract TestFunction(id); } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1416,7 +1417,9 @@ export default { TestMethod(id); } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1445,7 +1448,9 @@ export default { */ declare let TestFunction: (id) => void; `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1474,7 +1479,9 @@ export default { */ let TestFunction: (id) => void; `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1511,7 +1518,9 @@ export default { return processor(10); } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1546,7 +1555,9 @@ export default { return processor(10); } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1579,7 +1590,9 @@ export default { public Test: (id: number) => string; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1616,7 +1629,9 @@ export default { } } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1649,7 +1664,9 @@ export default { Test: (id: number) => string; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1682,7 +1699,9 @@ export default { TestMethod(): (id: number) => string; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1711,7 +1730,9 @@ export default { */ function test(): (id: number) => string; `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1746,7 +1767,9 @@ export default { return (id) => \`\${id}\`; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1837,7 +1860,9 @@ export default { ) {} } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1903,7 +1928,9 @@ export default { ) {} } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1933,7 +1960,7 @@ export default { function quux ({num, ...extra}) { } `, - parserOptions: { + languageOptions: { ecmaVersion: 2_018, }, }, @@ -1967,7 +1994,7 @@ export default { function quux ({opts: {num, ...extra}}) { } `, - parserOptions: { + languageOptions: { ecmaVersion: 2_018, }, }, @@ -1996,7 +2023,7 @@ export default { // } `, - parserOptions: { + languageOptions: { ecmaVersion: 2_015, }, }, @@ -2024,7 +2051,7 @@ export default { // } `, - parserOptions: { + languageOptions: { ecmaVersion: 2_015, }, }, @@ -2145,7 +2172,9 @@ export default { } }; `, - parser: require.resolve('@babel/eslint-parser'), + languageOptions: { + parser: babelEslintParser, + } }, /* eslint-disable no-tabs */ { @@ -2345,7 +2374,7 @@ export default { export function testFn1 ({ prop = { a: 1, b: 2 } }) { } `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -2406,7 +2435,9 @@ export default { */ export function myPublicFunction(foo: number, bar: number, baz: number) {} `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -2421,7 +2452,7 @@ export default { firstFloor = true, verbose = false, ): void {} - `, + `, errors: [ { message: 'Missing JSDoc @param "verbose" declaration.', @@ -2448,8 +2479,10 @@ export default { firstFloor = true, verbose = false, ): void {} - `, - parser: require.resolve('@typescript-eslint/parser'), + `, + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -2495,7 +2528,9 @@ export default { } } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, ], valid: [ @@ -3062,7 +3097,9 @@ export default { /** @const {boolean} test */ const test = something?.find(_ => _) `, - parser: require.resolve('@babel/eslint-parser'), + languageOptions: { + parser: babelEslintParser, + } }, { code: ` @@ -3111,8 +3148,8 @@ export default { constructor(private property: string) {} } `, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -3160,7 +3197,9 @@ export default { } } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -3198,7 +3237,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -3253,7 +3294,9 @@ export default { } } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -3276,7 +3319,7 @@ export default { function quux ({num, ...extra}) { } `, - parserOptions: { + languageOptions: { ecmaVersion: 2_018, }, }, @@ -3295,7 +3338,7 @@ export default { enableRestElementFixer: false, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 2_015, }, }, @@ -3313,7 +3356,7 @@ export default { enableRestElementFixer: false, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 2_015, }, }, @@ -3356,7 +3399,9 @@ export default { } } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -3484,7 +3529,7 @@ export default { useDefaultObjectProperties: false, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -3510,7 +3555,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -3542,7 +3589,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -3556,7 +3605,9 @@ export default { return bar; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -3569,7 +3620,9 @@ export default { return bar; } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` diff --git a/test/rules/assertions/requireReturns.js b/test/rules/assertions/requireReturns.js index 5388bbfd7..b5ca25de9 100644 --- a/test/rules/assertions/requireReturns.js +++ b/test/rules/assertions/requireReturns.js @@ -1,3 +1,5 @@ +import * as typescriptEslintParser from '@typescript-eslint/parser'; + export default { invalid: [ { @@ -155,7 +157,7 @@ export default { forceRequireReturn: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -177,7 +179,7 @@ export default { forceRequireReturn: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -199,7 +201,7 @@ export default { forceRequireReturn: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -221,7 +223,7 @@ export default { forceRequireReturn: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -347,7 +349,7 @@ export default { forceReturnsWithAsync: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -479,7 +481,7 @@ export default { forceReturnsWithAsync: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -503,7 +505,7 @@ export default { forceReturnsWithAsync: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -527,7 +529,7 @@ export default { checkGetters: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -805,6 +807,9 @@ export default { message: 'Missing JSDoc @returns declaration.', }, ], + languageOptions: { + sourceType: 'script' + } }, { code: ` @@ -1175,7 +1180,7 @@ export default { }, ], ignoreReadme: true, - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -1337,7 +1342,7 @@ export default { }, ], ignoreReadme: true, - parserOptions: { + languageOptions: { ecmaVersion: 2_020, }, }, @@ -1397,7 +1402,7 @@ export default { }, ], ignoreReadme: true, - parserOptions: { + languageOptions: { ecmaVersion: 2_020, }, }, @@ -1429,7 +1434,9 @@ export default { }, ], ignoreReadme: true, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1457,7 +1464,9 @@ export default { }, ], ignoreReadme: true, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1527,7 +1536,7 @@ export default { }, ], ignoreReadme: true, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1572,7 +1581,7 @@ export default { forceReturnsWithAsync: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -1596,7 +1605,7 @@ export default { forceReturnsWithAsync: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -1668,7 +1677,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1684,7 +1695,9 @@ export default { message: 'Missing JSDoc @returns declaration.', }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1701,7 +1714,9 @@ export default { message: 'Missing JSDoc @returns declaration.', }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1716,7 +1731,9 @@ export default { message: 'Missing JSDoc @returns declaration.', }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1736,7 +1753,9 @@ export default { forceRequireReturn: true, }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1756,7 +1775,9 @@ export default { forceRequireReturn: true, }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1773,7 +1794,7 @@ export default { message: 'Missing JSDoc @returns declaration.', }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -1792,7 +1813,7 @@ export default { message: 'Missing JSDoc @returns declaration.', }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, sourceType: 'module', }, @@ -1828,7 +1849,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1875,7 +1898,7 @@ export default { publicOnly: true, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1903,7 +1926,7 @@ export default { }, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1930,7 +1953,7 @@ export default { }, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1957,7 +1980,7 @@ export default { }, }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -2315,7 +2338,7 @@ export default { forceRequireReturn: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -2332,7 +2355,7 @@ export default { forceReturnsWithAsync: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -2343,7 +2366,7 @@ export default { */ async function quux () {} `, - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -2354,7 +2377,7 @@ export default { */ const quux = async function () {} `, - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -2365,7 +2388,7 @@ export default { */ const quux = async () => {} `, - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -2382,7 +2405,7 @@ export default { export default foo; `, - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -2426,7 +2449,7 @@ export default { return; } `, - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -2551,7 +2574,7 @@ export default { checkGetters: false, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -2569,7 +2592,7 @@ export default { checkGetters: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -2587,7 +2610,7 @@ export default { checkGetters: false, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -2772,7 +2795,7 @@ export default { return new Promise(resolve => resolve()); } `, - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -2795,7 +2818,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -2805,7 +2830,9 @@ export default { export const sleep = (ms: number) => new Promise((res) => setTimeout(res, ms)); `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -2816,7 +2843,9 @@ export default { return new Promise((res) => setTimeout(res, ms)); }; `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -2827,7 +2856,9 @@ export default { */ export function readFixture(path: string): Promise; `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -2838,7 +2869,9 @@ export default { */ export function readFixture(path: string): void; `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -2847,7 +2880,9 @@ export default { */ export function readFixture(path: string): void; `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -2856,7 +2891,9 @@ export default { */ export function readFixture(path: string); `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -2883,7 +2920,9 @@ export default { ], }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` diff --git a/test/rules/assertions/requireReturnsCheck.js b/test/rules/assertions/requireReturnsCheck.js index 3a8f5df9b..91d313e59 100755 --- a/test/rules/assertions/requireReturnsCheck.js +++ b/test/rules/assertions/requireReturnsCheck.js @@ -1,3 +1,5 @@ +import * as typescriptEslintParser from '@typescript-eslint/parser'; + export default { invalid: [ { @@ -170,7 +172,7 @@ export default { exemptAsync: false, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -187,7 +189,7 @@ export default { message: 'JSDoc @returns declaration present but return expression not available in function.', }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, settings: { @@ -214,7 +216,7 @@ export default { exemptGenerators: false, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, settings: { @@ -290,7 +292,7 @@ export default { exemptAsync: false, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -316,7 +318,7 @@ export default { reportMissingReturnForUndefinedTypes: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -389,7 +391,9 @@ export default { message: 'JSDoc @returns declaration present but return expression not available in function.', }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -409,7 +413,9 @@ export default { message: 'JSDoc @returns declaration present but return expression not available in function.', }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -450,7 +456,9 @@ export default { message: 'JSDoc @returns declaration present but return expression not available in function.', }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -752,7 +760,7 @@ export default { */ async function quux() {} `, - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -763,7 +771,7 @@ export default { */ const quux = async function () {} `, - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -774,7 +782,7 @@ export default { */ const quux = async () => {} `, - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -1106,6 +1114,9 @@ export default { } } `, + languageOptions: { + sourceType: 'script' + } }, { code: ` @@ -1131,7 +1142,7 @@ export default { return 5; } `, - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -1149,7 +1160,7 @@ export default { exemptAsync: false, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -1187,7 +1198,7 @@ export default { reportMissingReturnForUndefinedTypes: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -1228,7 +1239,7 @@ export default { */ function * quux() {} `, - parserOptions: { + languageOptions: { ecmaVersion: 8, }, settings: { @@ -1249,7 +1260,7 @@ export default { exemptGenerators: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, settings: { @@ -1281,7 +1292,9 @@ export default { */ export function readFixture(path: string): Promise; `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1295,7 +1308,9 @@ export default { */ export function readFixture(path: string): Promise; `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1311,7 +1326,9 @@ export default { return new Promise(() => {}); } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1325,7 +1342,9 @@ export default { */ export function readFixture(path: string); `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1540,7 +1559,9 @@ export default { interface I {} } `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` diff --git a/test/rules/assertions/requireThrows.js b/test/rules/assertions/requireThrows.js index 34944f33e..7164d49a4 100644 --- a/test/rules/assertions/requireThrows.js +++ b/test/rules/assertions/requireThrows.js @@ -192,6 +192,9 @@ export default { message: 'Missing JSDoc @throws declaration.', }, ], + languageOptions: { + sourceType: 'script' + }, }, { code: ` @@ -454,7 +457,7 @@ export default { throw Error("bar"); } `, - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, diff --git a/test/rules/assertions/requireYields.js b/test/rules/assertions/requireYields.js index d389eec79..998ba5156 100644 --- a/test/rules/assertions/requireYields.js +++ b/test/rules/assertions/requireYields.js @@ -238,7 +238,7 @@ export default { forceRequireYields: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -262,7 +262,7 @@ export default { forceRequireYields: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 8, }, }, @@ -286,7 +286,7 @@ export default { forceRequireYields: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 2_018, }, }, @@ -310,7 +310,7 @@ export default { forceRequireYields: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 2_018, }, }, @@ -466,7 +466,7 @@ export default { forceRequireYields: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 2_018, }, }, @@ -490,7 +490,7 @@ export default { forceRequireYields: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 2_018, }, }, @@ -535,7 +535,7 @@ export default { message: 'Missing JSDoc @yields declaration.', }, ], - parserOptions: { + languageOptions: { ecmaVersion: 2_018, }, }, @@ -559,7 +559,7 @@ export default { withGeneratorTag: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 2_018, }, }, @@ -584,7 +584,7 @@ export default { nextWithGeneratorTag: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 2_018, }, }, @@ -911,6 +911,9 @@ export default { message: 'Missing JSDoc @yields declaration.', }, ], + languageOptions: { + sourceType: 'script' + } }, { code: ` @@ -1216,7 +1219,7 @@ export default { }, ], ignoreReadme: true, - parserOptions: { + languageOptions: { ecmaVersion: 2_020, }, }, @@ -1270,7 +1273,7 @@ export default { }, ], ignoreReadme: true, - parserOptions: { + languageOptions: { ecmaVersion: 2_020, }, }, @@ -1297,7 +1300,7 @@ export default { ], }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1326,7 +1329,7 @@ export default { ], }, ], - parserOptions: { + languageOptions: { sourceType: 'module', }, }, @@ -1623,7 +1626,7 @@ export default { forceRequireYields: true, }, ], - parserOptions: { + languageOptions: { ecmaVersion: 2_018, }, }, @@ -1634,7 +1637,7 @@ export default { */ async function * quux () {} `, - parserOptions: { + languageOptions: { ecmaVersion: 2_018, }, }, @@ -1645,7 +1648,7 @@ export default { */ const quux = async function * () {} `, - parserOptions: { + languageOptions: { ecmaVersion: 2_018, }, }, @@ -1675,7 +1678,7 @@ export default { yield; } `, - parserOptions: { + languageOptions: { ecmaVersion: 2_018, }, }, diff --git a/test/rules/assertions/requireYieldsCheck.js b/test/rules/assertions/requireYieldsCheck.js index b9ca7a6cf..72749aeb6 100644 --- a/test/rules/assertions/requireYieldsCheck.js +++ b/test/rules/assertions/requireYieldsCheck.js @@ -290,7 +290,7 @@ export default { message: 'JSDoc @yields declaration present but yield expression not available in function.', }, ], - parserOptions: { + languageOptions: { ecmaVersion: 2_018, }, }, @@ -307,7 +307,7 @@ export default { message: 'JSDoc @yields declaration present but yield expression not available in function.', }, ], - parserOptions: { + languageOptions: { ecmaVersion: 2_018, }, }, @@ -724,6 +724,9 @@ export default { } } `, + languageOptions: { + sourceType: 'script' + } }, { code: ` diff --git a/test/rules/assertions/tagLines.js b/test/rules/assertions/tagLines.js index 15b732974..c8aff20b4 100644 --- a/test/rules/assertions/tagLines.js +++ b/test/rules/assertions/tagLines.js @@ -1,3 +1,5 @@ +import * as typescriptEslintParser from '@typescript-eslint/parser'; + export default { invalid: [ { @@ -1155,7 +1157,9 @@ export default { startLines: 1, }, ], - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, ], }; diff --git a/test/rules/assertions/validTypes.js b/test/rules/assertions/validTypes.js index fe605976b..c201e9486 100644 --- a/test/rules/assertions/validTypes.js +++ b/test/rules/assertions/validTypes.js @@ -1,3 +1,5 @@ +import * as typescriptEslintParser from '@typescript-eslint/parser'; + export default { invalid: [ { @@ -1480,7 +1482,9 @@ export default { */ function foo(bar) {} `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1659,7 +1663,9 @@ export default { */ type ComplicatedType = never `, - parser: require.resolve('@typescript-eslint/parser'), + languageOptions: { + parser: typescriptEslintParser + }, }, { code: ` @@ -1683,8 +1689,8 @@ export default { } `, ignoreReadme: true, - parser: require.resolve('@typescript-eslint/parser'), - parserOptions: { + languageOptions: { + parser: typescriptEslintParser, sourceType: 'module', }, }, @@ -1773,7 +1779,7 @@ export default { } `, ignoreReadme: true, - parserOptions: { + languageOptions: { ecmaVersion: 2_017, }, }, diff --git a/test/rules/data/.eslintrc.json b/test/rules/data/.eslintrc.json deleted file mode 100644 index 400140f30..000000000 --- a/test/rules/data/.eslintrc.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "root": true, - "parserOptions": { - "ecmaVersion": 8 - }, - "overrides": [{ - "files": ["*.md"], - "parser": "@babel/eslint-parser" - }], - "rules": { - "semi": ["error", "always"], - "id-length": [ - 1, - { - "exceptions": [ - "_" - ], - "min": 2 - } - ] - } -} diff --git a/test/rules/data/eslint.config.mjs b/test/rules/data/eslint.config.mjs new file mode 100644 index 000000000..37b5ae603 --- /dev/null +++ b/test/rules/data/eslint.config.mjs @@ -0,0 +1,26 @@ +import babelEslintParser from '@babel/eslint-parser'; + +export default [{ + files: ['*.md'], + languageOptions: { + parser: babelEslintParser + } +}, { + languageOptions: { + parserOptions: { + ecmaVersion: 8 + } + }, + rules: { + semi: ['error', 'always'], + 'id-length': [ + 1, + { + exceptions: [ + '_' + ], + min: 2 + } + ] + } +}]; diff --git a/test/rules/index.js b/test/rules/index.js index ce84976ea..54599466b 100644 --- a/test/rules/index.js +++ b/test/rules/index.js @@ -44,7 +44,7 @@ const main = async () => { config.rules[ruleName] ); - const parserOptions = { + const languageOptions = { ecmaVersion: 6, }; @@ -82,7 +82,7 @@ const main = async () => { let count = 0; assertions.invalid = assertions.invalid.map((assertion) => { Reflect.deleteProperty(assertion, 'ignoreReadme'); - assertion.parserOptions = defaultsDeep(assertion.parserOptions, parserOptions); + assertion.languageOptions = defaultsDeep(assertion.languageOptions, languageOptions); for (const error of /** @type {import('eslint').RuleTester.TestCaseError[]} */ ( assertion.errors || [] )) { @@ -122,7 +122,7 @@ const main = async () => { throw new Error(`Valid assertions for rule ${ruleName} should not have an \`output\` property.`); } - assertion.parserOptions = defaultsDeep(assertion.parserOptions, parserOptions); + assertion.languageOptions = defaultsDeep(assertion.languageOptions, languageOptions); return assertion; }); diff --git a/tsconfig-prod.json b/tsconfig-prod.json index ff919479f..18f0ee592 100644 --- a/tsconfig-prod.json +++ b/tsconfig-prod.json @@ -10,6 +10,7 @@ "declaration": true, "declarationMap": true, "strict": true, + "skipLibCheck": true, "target": "es2017", "outDir": "dist" }, diff --git a/tsconfig.json b/tsconfig.json index a939edb7d..7a3d8d669 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,6 +9,7 @@ "declaration": true, "declarationMap": true, "strict": true, + "skipLibCheck": true, "target": "es2017", "outDir": "dist" }, From 5e6280ffd4ed57ab83a6cfff259febce847e8545 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 30 Dec 2023 06:45:30 -0700 Subject: [PATCH 151/273] fix: revert change to engines for now --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index be8b6f101..417a72c96 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "typescript": "5.3.3" }, "engines": { - "node": ">=18" + "node": ">=16" }, "keywords": [ "eslint", From eb3f4b47e1bf4c4527e06961621eadb701e2ae72 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 31 Dec 2023 07:13:46 -0700 Subject: [PATCH 152/273] chore(linting): add ignores properly and disable directives for now --- eslint.config.mjs | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index f1cdfc662..6bef4b294 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -4,9 +4,6 @@ import jsdoc from './dist/index.js'; // import canonicalJsdoc from 'eslint-config-canonical/jsdoc.js'; const common = { - linterOptions: { - reportUnusedDisableDirectives: 0 - }, plugins: { jsdoc } @@ -15,6 +12,10 @@ const common = { export default [ // canonical, // canonicalJsdoc, + { + // Must be by itself + ignores: ['dist/**/*.js', '.ignore/**/*.js'], + }, { ...common, files: ['.ncurc.js'], @@ -44,7 +45,6 @@ export default [ }, { ...common, - ignores: ['dist/**/*.js', '.ignore/**/*.js'], languageOptions: { globals: globals.node }, diff --git a/package.json b/package.json index 417a72c96..a5478b3c8 100644 --- a/package.json +++ b/package.json @@ -133,7 +133,7 @@ "create-options": "node ./src/bin/generateOptions.mjs", "install-offline": "pnpm install --prefer-offline --no-audit", "lint": "npm run lint-arg -- .", - "lint-arg": "eslint --report-unused-disable-directives=false", + "lint-arg": "eslint --report-unused-disable-directives-severity=off", "lint-fix": "npm run lint-arg -- --fix .", "prepare": "husky install", "test-no-cov": "cross-env BABEL_ENV=test mocha", From dd9e71daa223ff04e508b8abc4692de3172bc7b0 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 31 Dec 2023 11:32:25 -0700 Subject: [PATCH 153/273] feat: expose TS types for index file; fixes #1130 BREAKING CHANGE: Adds types --- .npmignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.npmignore b/.npmignore index e29c3b128..b79170854 100755 --- a/.npmignore +++ b/.npmignore @@ -8,4 +8,6 @@ CONTRIBUTING.md tsconfig*.json *.d.ts *.d.ts.map +!dist/index.d.ts +!dist/index.d.ts.map docs From 47f316160d0ac55b8b5c0b0239b703b44bc383c0 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 31 Dec 2023 12:27:34 -0700 Subject: [PATCH 154/273] fix(TS): make configs explicit --- src/index.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 6ed3d59c8..d3a12f9d3 100644 --- a/src/index.js +++ b/src/index.js @@ -54,10 +54,20 @@ import validTypes from './rules/validTypes.js'; /** * @type {import('eslint').ESLint.Plugin & { - * configs: Record + * configs: Record< + * "recommended"|"recommended-error"|"recommended-typescript"| + * "recommended-typescript-error"|"recommended-typescript-flavor"| + * "recommended-typescript-flavor-error"|"flat/recommended"| + * "flat/recommended-error"|"flat/recommended-typescript"| + * "flat/recommended-typescript-error"| + * "flat/recommended-typescript-flavor"| + * "flat/recommended-typescript-flavor-error", + * import('eslint').ESLint.ConfigData|{} + * > * }} */ const index = { + // @ts-expect-error Ok configs: {}, rules: { 'check-access': checkAccess, From 5f61575951d9f5e794afd9c9977dc35298509698 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 31 Dec 2023 12:38:38 -0700 Subject: [PATCH 155/273] chore(lint): handle disable directives in config --- eslint.config.mjs | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 6bef4b294..722e0ce2a 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -4,6 +4,9 @@ import jsdoc from './dist/index.js'; // import canonicalJsdoc from 'eslint-config-canonical/jsdoc.js'; const common = { + linterOptions: { + reportUnusedDisableDirectives: 'off' + }, plugins: { jsdoc } diff --git a/package.json b/package.json index a5478b3c8..47587860f 100644 --- a/package.json +++ b/package.json @@ -133,7 +133,7 @@ "create-options": "node ./src/bin/generateOptions.mjs", "install-offline": "pnpm install --prefer-offline --no-audit", "lint": "npm run lint-arg -- .", - "lint-arg": "eslint --report-unused-disable-directives-severity=off", + "lint-arg": "eslint", "lint-fix": "npm run lint-arg -- --fix .", "prepare": "husky install", "test-no-cov": "cross-env BABEL_ENV=test mocha", From 3677e43322f74a22d2a91a60ebed5f367e6461af Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 31 Dec 2023 23:04:20 -0700 Subject: [PATCH 156/273] fix(TS): use flat config; fixes #1130 --- src/index.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/index.js b/src/index.js index d3a12f9d3..59ff98670 100644 --- a/src/index.js +++ b/src/index.js @@ -62,7 +62,7 @@ import validTypes from './rules/validTypes.js'; * "flat/recommended-typescript-error"| * "flat/recommended-typescript-flavor"| * "flat/recommended-typescript-flavor-error", - * import('eslint').ESLint.ConfigData|{} + * import('eslint').Linter.FlatConfig * > * }} */ @@ -129,10 +129,11 @@ const index = { /** * @param {"warn"|"error"} warnOrError * @param {boolean} [flat] - * @returns {import('eslint').ESLint.ConfigData | {plugins: {}, rules: {}}} + * @returns {import('eslint').Linter.FlatConfig} */ const createRecommendedRuleset = (warnOrError, flat) => { return { + // @ts-expect-error Ok plugins: flat ? { jsdoc: index, } : [ @@ -199,7 +200,7 @@ const createRecommendedRuleset = (warnOrError, flat) => { /** * @param {"warn"|"error"} warnOrError * @param {boolean} [flat] - * @returns {import('eslint').ESLint.ConfigData|{}} + * @returns {import('eslint').Linter.FlatConfig} */ const createRecommendedTypeScriptRuleset = (warnOrError, flat) => { const ruleset = createRecommendedRuleset(warnOrError, flat); @@ -227,7 +228,7 @@ const createRecommendedTypeScriptRuleset = (warnOrError, flat) => { /** * @param {"warn"|"error"} warnOrError * @param {boolean} [flat] - * @returns {import('eslint').ESLint.ConfigData|{}} + * @returns {import('eslint').Linter.FlatConfig} */ const createRecommendedTypeScriptFlavorRuleset = (warnOrError, flat) => { const ruleset = createRecommendedRuleset(warnOrError, flat); From 6ac811662d11f8a6d6ad9b963d9e257e9ec55cba Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 1 Jan 2024 11:04:49 -0700 Subject: [PATCH 157/273] feat: switch to native ESM and add `exports` BREAKING CHANGE: adds exports; requires Node 18 --- .eslintignore | 6 - .gitignore | 6 +- .husky/pre-push | 2 +- .ncurc.js => .ncurc.cjs | 0 CONTRIBUTING.md | 2 +- eslint.config.mjs => eslint.config.js | 62 ++-- package.json | 28 +- pnpm-lock.yaml | 407 +++++++++----------------- src/WarnSettings.js | 2 +- src/alignTransform.js | 2 +- src/bin/generateDocs.js | 9 +- src/bin/generateRule.js | 18 +- src/exportParser.js | 69 +++-- src/index.js | 2 +- src/iterateJsdoc.js | 30 +- src/jsdocUtils.js | 21 +- src/rules/importsAsDependencies.js | 14 +- src/rules/noUndefinedTypes.js | 4 +- src/rules/requireJsdoc.js | 2 +- src/rules/requireReturns.js | 2 +- src/rules/sortTags.js | 2 +- src/utils/hasReturnValue.js | 29 +- test/rules/assertions/flatConfig.js | 31 -- test/rules/assertions/requireJsdoc.js | 24 +- test/rules/index.js | 35 +-- 25 files changed, 303 insertions(+), 506 deletions(-) delete mode 100644 .eslintignore rename .ncurc.js => .ncurc.cjs (100%) rename eslint.config.mjs => eslint.config.js (87%) delete mode 100644 test/rules/assertions/flatConfig.js diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index b699ea86a..000000000 --- a/.eslintignore +++ /dev/null @@ -1,6 +0,0 @@ -# built files -dist/ -# local developer scratch area -.ignore/ -# root dot javascript files -!.*.js diff --git a/.gitignore b/.gitignore index 131732ae8..769a5972f 100755 --- a/.gitignore +++ b/.gitignore @@ -5,14 +5,12 @@ node_modules .* !.babelrc.json !.editorconfig -!.eslintignore -!.eslintrc.json !.gitattributes !.github !.gitignore !.husky -!.ncurc.js +!.ncurc.cjs !.npmignore !.README !.releaserc -!.vscode \ No newline at end of file +!.vscode diff --git a/.husky/pre-push b/.husky/pre-push index 05340f7e4..f48cbd2e0 100755 --- a/.husky/pre-push +++ b/.husky/pre-push @@ -1,4 +1,4 @@ #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" -npm test && npm run build && npm run check-docs +npm test && npm run build diff --git a/.ncurc.js b/.ncurc.cjs similarity index 100% rename from .ncurc.js rename to .ncurc.cjs diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a78596308..b0744dac2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -64,7 +64,7 @@ for more on the allowable properties (e.g., `code`, `errors` (for invalid rules) Note that besides `pnpm test` there is `pnpm test-cov`, which shows more detailed coverage information. Coverage should be maintained at 100%, and if there are a few guards in place for future use, the code block in question -can be ignored by being preceded by `/* istanbul ignore next */` (including +can be ignored by being preceded by `/* c8 ignore next */` (including for warnings where the block is never passed over (i.e., the block is always entered)). If you want to test without coverage at all, you can use `pnpm test-no-cov`. To only test rules rather than other files, you diff --git a/eslint.config.mjs b/eslint.config.js similarity index 87% rename from eslint.config.mjs rename to eslint.config.js index 722e0ce2a..0022392ea 100644 --- a/eslint.config.mjs +++ b/eslint.config.js @@ -1,5 +1,5 @@ import globals from 'globals'; -import jsdoc from './dist/index.js'; +import jsdoc from './src/index.js'; // import canonical from 'eslint-config-canonical'; // import canonicalJsdoc from 'eslint-config-canonical/jsdoc.js'; @@ -21,7 +21,35 @@ export default [ }, { ...common, - files: ['.ncurc.js'], + languageOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + globals: globals.node + }, + settings: { + jsdoc: { + mode: 'typescript' + } + }, + rules: { + 'array-element-newline': 0, + 'filenames/match-regex': 0, + 'import/extensions': 0, + 'import/no-useless-path-segments': 0, + 'prefer-named-capture-group': 0, + 'unicorn/no-array-reduce': 0, + 'unicorn/no-unsafe-regex': 0, + 'unicorn/prefer-array-some': 0, + 'unicorn/prevent-abbreviations': 0, + 'unicorn/import-index': 0, + 'linebreak-style': 0, + 'no-inline-comments': 0, + 'no-extra-parens': 0 + } + }, + { + ...common, + files: ['.ncurc.cjs'], languageOptions: { parserOptions: { ecmaFeatures: { @@ -41,35 +69,13 @@ export default [ { ...common, files: ['test/**/*.js'], + languageOptions: { + ecmaVersion: 'latest', + sourceType: 'module' + }, rules: { 'no-restricted-syntax': 0, 'unicorn/prevent-abbreviations': 0 } }, - { - ...common, - languageOptions: { - globals: globals.node - }, - settings: { - jsdoc: { - mode: 'typescript' - } - }, - rules: { - 'array-element-newline': 0, - 'filenames/match-regex': 0, - 'import/extensions': 0, - 'import/no-useless-path-segments': 0, - 'prefer-named-capture-group': 0, - 'unicorn/no-array-reduce': 0, - 'unicorn/no-unsafe-regex': 0, - 'unicorn/prefer-array-some': 0, - 'unicorn/prevent-abbreviations': 0, - 'unicorn/import-index': 0, - 'linebreak-style': 0, - 'no-inline-comments': 0, - 'no-extra-parens': 0 - } - } ]; diff --git a/package.json b/package.json index 47587860f..989b2315d 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,6 @@ "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-transform-flow-strip-types": "^7.23.3", "@babel/preset-env": "^7.23.7", - "@babel/register": "^7.23.7", "@es-joy/escodegen": "^3.5.1", "@es-joy/jsdoc-eslint-parser": "^0.21.1", "@hkdobrev/run-if-changed": "^0.3.1", @@ -42,9 +41,10 @@ "@types/node": "^20.10.6", "@types/semver": "^7.5.6", "@types/spdx-expression-parse": "^3.0.5", - "@typescript-eslint/parser": "^6.16.0", + "@typescript-eslint/parser": "^6.17.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", + "c8": "^8.0.1", "camelcase": "^6.3.0", "chai": "^4.3.10", "cross-env": "^7.0.3", @@ -61,14 +61,14 @@ "lint-staged": "^15.2.0", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.2.0", - "nyc": "^15.1.0", "open-editor": "^3.0.0", + "replace": "^1.2.2", "rimraf": "^5.0.5", "semantic-release": "^22.0.12", "typescript": "5.3.3" }, "engines": { - "node": ">=16" + "node": ">=18" }, "keywords": [ "eslint", @@ -83,18 +83,21 @@ ], "*.js": "npm run lint-arg -- --fix" }, + "type": "module", "main": "./dist/index.js", "types": "./dist/index.d.ts", + "exports": { + "types": "./dist/index.d.ts", + "import": "./src/index.js", + "require": "./dist/index.cjs" + }, "name": "eslint-plugin-jsdoc", "mocha": { - "require": [ - "@babel/register" - ], "reporter": "dot", "recursive": true, "timeout": 12000 }, - "nyc": { + "c8": { "branches": 100, "check-coverage": true, "exclude": [ @@ -107,9 +110,6 @@ "instrument": false, "lines": 100, "reporter": "text-summary", - "require": [ - "@babel/register" - ], "sourceMap": false, "statements": 100 }, @@ -126,7 +126,7 @@ "scripts": { "tsc": "tsc", "tsc-build": "tsc -p tsconfig-prod.json", - "build": "rimraf ./dist && cross-env NODE_ENV=production babel ./src --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored && pnpm tsc-build", + "build": "rimraf ./dist && cross-env NODE_ENV=production babel ./src --out-file-extension .cjs --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored && replace 'require\\(\"\\.(.*?)\\.[^.]*?\"\\)' 'require(\".$1.cjs\")' 'dist' -r --include=\"*.cjs\" && pnpm tsc-build", "check-docs": "babel-node ./src/bin/generateDocs.js --check", "create-docs": "npm run create-options && babel-node ./src/bin/generateDocs.js", "create-rule": "babel-node ./src/bin/generateRule.js", @@ -137,8 +137,8 @@ "lint-fix": "npm run lint-arg -- --fix .", "prepare": "husky install", "test-no-cov": "cross-env BABEL_ENV=test mocha", - "test": "nyc npm run test-no-cov", - "test-cov": "cross-env TIMING=1 nyc --reporter text npm run test-no-cov", + "test": "c8 npm run test-no-cov", + "test-cov": "cross-env TIMING=1 c8 --reporter text npm run test-no-cov", "test-index": "npm run test-no-cov -- test/rules/index.js" }, "version": "1.0.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 329c23ee2..2b887980e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -55,9 +55,6 @@ devDependencies: '@babel/preset-env': specifier: ^7.23.7 version: 7.23.7(@babel/core@7.23.7) - '@babel/register': - specifier: ^7.23.7 - version: 7.23.7(@babel/core@7.23.7) '@es-joy/escodegen': specifier: ^3.5.1 version: 3.5.1 @@ -110,14 +107,17 @@ devDependencies: specifier: ^3.0.5 version: 3.0.5 '@typescript-eslint/parser': - specifier: ^6.16.0 - version: 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + specifier: ^6.17.0 + version: 6.17.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 babel-plugin-istanbul: specifier: ^6.1.1 version: 6.1.1 + c8: + specifier: ^8.0.1 + version: 8.0.1 camelcase: specifier: ^6.3.0 version: 6.3.0 @@ -166,12 +166,12 @@ devDependencies: mocha: specifier: ^10.2.0 version: 10.2.0 - nyc: - specifier: ^15.1.0 - version: 15.1.0 open-editor: specifier: ^3.0.0 version: 3.0.0 + replace: + specifier: ^1.2.2 + version: 1.2.2 rimraf: specifier: ^5.0.5 version: 5.0.5 @@ -1533,6 +1533,10 @@ packages: to-fast-properties: 2.0.0 dev: true + /@bcoe/v8-coverage@0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true + /@colors/colors@1.5.0: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -1565,7 +1569,7 @@ packages: '@babel/core': 7.23.7 '@babel/eslint-parser': 7.23.3(@babel/core@7.23.7)(eslint@8.56.0) '@es-joy/jsdoccomment': 0.41.0 - '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.17.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 esquery: 1.5.0 typescript: 5.3.3 @@ -2378,6 +2382,10 @@ packages: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: true + /@types/istanbul-lib-coverage@2.0.6: + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + dev: true + /@types/json-schema@7.0.15: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true @@ -2428,7 +2436,7 @@ packages: '@types/node': 20.10.6 dev: true - /@typescript-eslint/eslint-plugin@6.16.0(@typescript-eslint/parser@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /@typescript-eslint/eslint-plugin@6.16.0(@typescript-eslint/parser@6.17.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2440,7 +2448,7 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.17.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': 6.16.0 '@typescript-eslint/type-utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) @@ -2470,8 +2478,8 @@ packages: - typescript dev: true - /@typescript-eslint/parser@6.16.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw==} + /@typescript-eslint/parser@6.17.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-C4bBaX2orvhK+LlwrY8oWGmSl4WolCfYm513gEccdWZj0CwGadbIADb0FtVEcI+WzUyjyoBj2JRP8g25E6IB8A==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2480,10 +2488,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.16.0 - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/scope-manager': 6.17.0 + '@typescript-eslint/types': 6.17.0 + '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.17.0 debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 typescript: 5.3.3 @@ -2491,8 +2499,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3): - resolution: {integrity: sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw==} + /@typescript-eslint/parser@6.17.0(eslint@9.0.0-alpha.0)(typescript@5.3.3): + resolution: {integrity: sha512-C4bBaX2orvhK+LlwrY8oWGmSl4WolCfYm513gEccdWZj0CwGadbIADb0FtVEcI+WzUyjyoBj2JRP8g25E6IB8A==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2501,10 +2509,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.16.0 - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/scope-manager': 6.17.0 + '@typescript-eslint/types': 6.17.0 + '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.17.0 debug: 4.3.4(supports-color@8.1.1) eslint: 9.0.0-alpha.0 typescript: 5.3.3 @@ -2528,6 +2536,14 @@ packages: '@typescript-eslint/visitor-keys': 6.16.0 dev: true + /@typescript-eslint/scope-manager@6.17.0: + resolution: {integrity: sha512-RX7a8lwgOi7am0k17NUO0+ZmMOX4PpjLtLRgLmT1d3lBYdWH4ssBUbwdmc5pdRX8rXon8v9x8vaoOSpkHfcXGA==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.17.0 + '@typescript-eslint/visitor-keys': 6.17.0 + dev: true + /@typescript-eslint/type-utils@6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg==} engines: {node: ^16.0.0 || >=18.0.0} @@ -2558,6 +2574,11 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true + /@typescript-eslint/types@6.17.0: + resolution: {integrity: sha512-qRKs9tvc3a4RBcL/9PXtKSehI/q8wuU9xYJxe97WFxnzH8NWWtcW3ffNS+EWg8uPvIerhjsEZ+rHtDqOCiH57A==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2601,6 +2622,28 @@ packages: - supports-color dev: true + /@typescript-eslint/typescript-estree@6.17.0(typescript@5.3.3): + resolution: {integrity: sha512-gVQe+SLdNPfjlJn5VNGhlOhrXz4cajwFd5kAgWtZ9dCZf4XJf8xmgCTLIqec7aha3JwgLI2CK6GY1043FRxZwg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.17.0 + '@typescript-eslint/visitor-keys': 6.17.0 + debug: 4.3.4(supports-color@8.1.1) + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/utils@5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2656,6 +2699,14 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@typescript-eslint/visitor-keys@6.17.0: + resolution: {integrity: sha512-H6VwB/k3IuIeQOyYczyyKN8wH6ed8EwliaYHLxOIhyF0dYEIsN8+Bk3GE19qafeMKyZJJHP8+O1HiFhFLUNKSg==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.17.0 + eslint-visitor-keys: 3.4.3 + dev: true + /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true @@ -2811,17 +2862,6 @@ packages: picomatch: 2.3.1 dev: true - /append-transform@2.0.0: - resolution: {integrity: sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==} - engines: {node: '>=8'} - dependencies: - default-require-extensions: 3.0.1 - dev: true - - /archy@1.0.0: - resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} - dev: true - /are-docs-informative@0.0.2: resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} engines: {node: '>=14'} @@ -3223,6 +3263,25 @@ packages: streamsearch: 1.1.0 dev: true + /c8@8.0.1: + resolution: {integrity: sha512-EINpopxZNH1mETuI0DzRA4MZpAUH+IFiRhnmFD3vFr3vdrgxqi3VfE3KL0AIL+zDq8rC9bZqwM/VDmmoe04y7w==} + engines: {node: '>=12'} + hasBin: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@istanbuljs/schema': 0.1.3 + find-up: 5.0.0 + foreground-child: 2.0.0 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-reports: 3.1.6 + rimraf: 3.0.2 + test-exclude: 6.0.0 + v8-to-istanbul: 9.2.0 + yargs: 17.7.2 + yargs-parser: 21.1.1 + dev: true + /cacache@18.0.1: resolution: {integrity: sha512-g4Uf2CFZPaxtJKre6qr4zqLDOOPU7bNVhWjlNhvzc51xaTOx2noMOLhfFkTAqwtrAZAKQUuDfyjitzilpA8WsQ==} engines: {node: ^16.14.0 || >=18.0.0} @@ -3256,16 +3315,6 @@ packages: unset-value: 1.0.0 dev: true - /caching-transform@4.0.0: - resolution: {integrity: sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==} - engines: {node: '>=8'} - dependencies: - hasha: 5.2.2 - make-dir: 3.1.0 - package-hash: 4.0.0 - write-file-atomic: 3.0.3 - dev: true - /call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} dependencies: @@ -3613,10 +3662,6 @@ packages: split2: 4.2.0 dev: true - /convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - dev: true - /convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true @@ -3832,13 +3877,6 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /default-require-extensions@3.0.1: - resolution: {integrity: sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==} - engines: {node: '>=8'} - dependencies: - strip-bom: 4.0.0 - dev: true - /define-data-property@1.1.1: resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} engines: {node: '>= 0.4'} @@ -4153,10 +4191,6 @@ packages: is-symbol: 1.0.4 dev: true - /es6-error@4.1.1: - resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} - dev: true - /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -4219,18 +4253,18 @@ packages: '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.7)(@types/node@20.10.6)(graphql@16.8.1) '@next/eslint-plugin-next': 13.5.6 '@rushstack/eslint-patch': 1.6.1 - '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.17.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.17.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint: 9.0.0-alpha.0 eslint-config-prettier: 9.1.0(eslint@9.0.0-alpha.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.17.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) eslint-plugin-ava: 14.0.0(eslint@9.0.0-alpha.0) - eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@6.17.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint-plugin-cypress: 2.15.1(eslint@9.0.0-alpha.0) eslint-plugin-eslint-comments: 3.2.0(eslint@9.0.0-alpha.0) eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@9.0.0-alpha.0) eslint-plugin-fp: 2.3.0(eslint@9.0.0-alpha.0) - eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint-plugin-jsdoc: 46.9.1(eslint@9.0.0-alpha.0) eslint-plugin-jsonc: 2.11.2(eslint@9.0.0-alpha.0) @@ -4245,7 +4279,7 @@ packages: eslint-plugin-react-hooks: 4.6.0(eslint@9.0.0-alpha.0) eslint-plugin-regexp: 1.15.0(eslint@9.0.0-alpha.0) eslint-plugin-simple-import-sort: 10.0.0(eslint@9.0.0-alpha.0) - eslint-plugin-typescript-sort-keys: 3.1.0(@typescript-eslint/parser@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint-plugin-typescript-sort-keys: 3.1.0(@typescript-eslint/parser@6.17.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint-plugin-unicorn: 48.0.1(eslint@9.0.0-alpha.0) eslint-plugin-vitest: 0.3.20(@typescript-eslint/eslint-plugin@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint-plugin-yml: 1.11.0(eslint@9.0.0-alpha.0) @@ -4290,7 +4324,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.17.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4300,8 +4334,8 @@ packages: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 eslint: 9.0.0-alpha.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) - eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) fast-glob: 3.3.2 get-tsconfig: 4.7.2 is-core-module: 2.13.1 @@ -4313,7 +4347,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4334,11 +4368,11 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.17.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) debug: 3.2.7 eslint: 9.0.0-alpha.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.17.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) transitivePeerDependencies: - supports-color dev: true @@ -4360,15 +4394,15 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@6.17.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-0Egc0FKOnCRdu3bFEJhfHkdkusIgW0UxdemukkowZQnQsnf12FHSJ7K26b+tZ5pKB7cTyECSaqvEpoIJfplX4g==} engines: {node: '>=16.0.0'} dependencies: '@typescript-eslint/utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) chance: 1.1.11 debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.16.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.17.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -4449,7 +4483,7 @@ packages: req-all: 0.1.0 dev: true - /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): + /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-ORizX37MelIWLbMyqI7hi8VJMf7A0CskMmYkB+lkCX3aF4pkGV7kwx5bSEb4qx7Yce2rAf9s34HqDRPjGRZPNQ==} engines: {node: '>=12'} peerDependencies: @@ -4459,7 +4493,7 @@ packages: doctrine: 3.0.0 eslint: 9.0.0-alpha.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) get-tsconfig: 4.7.2 is-glob: 4.0.3 minimatch: 3.1.2 @@ -4484,7 +4518,7 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.17.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) '@typescript-eslint/utils': 5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint: 9.0.0-alpha.0 transitivePeerDependencies: @@ -4689,7 +4723,7 @@ packages: eslint: 9.0.0-alpha.0 dev: true - /eslint-plugin-typescript-sort-keys@3.1.0(@typescript-eslint/parser@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /eslint-plugin-typescript-sort-keys@3.1.0(@typescript-eslint/parser@6.17.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-rgZeYfEguqKni/V7sbmgFu9/94UDAQd7YqNd0J7Qhw7SdLIGd0iBk2KgpjhRhe2ge4rPSLDIdFWwUiDqBOst6Q==} engines: {node: '>= 16'} peerDependencies: @@ -4698,7 +4732,7 @@ packages: typescript: ^3 || ^4 || ^5 dependencies: '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.17.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint: 9.0.0-alpha.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 @@ -4744,7 +4778,7 @@ packages: vitest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.17.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint: 9.0.0-alpha.0 transitivePeerDependencies: @@ -5175,15 +5209,6 @@ packages: pkg-dir: 3.0.0 dev: true - /find-cache-dir@3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} - engines: {node: '>=8'} - dependencies: - commondir: 1.0.1 - make-dir: 3.1.0 - pkg-dir: 4.2.0 - dev: true - /find-up-simple@1.0.0: resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} engines: {node: '>=18'} @@ -5298,10 +5323,6 @@ packages: readable-stream: 2.3.8 dev: true - /fromentries@1.3.2: - resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==} - dev: true - /fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} @@ -5765,14 +5786,6 @@ packages: kind-of: 4.0.0 dev: true - /hasha@5.2.2: - resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==} - engines: {node: '>=8'} - dependencies: - is-stream: 2.0.1 - type-fest: 0.8.1 - dev: true - /hasown@2.0.0: resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} engines: {node: '>= 0.4'} @@ -6418,25 +6431,6 @@ packages: engines: {node: '>=8'} dev: true - /istanbul-lib-hook@3.0.0: - resolution: {integrity: sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==} - engines: {node: '>=8'} - dependencies: - append-transform: 2.0.0 - dev: true - - /istanbul-lib-instrument@4.0.3: - resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} - engines: {node: '>=8'} - dependencies: - '@babel/core': 7.23.7 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - /istanbul-lib-instrument@5.2.1: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} @@ -6450,18 +6444,6 @@ packages: - supports-color dev: true - /istanbul-lib-processinfo@2.0.3: - resolution: {integrity: sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==} - engines: {node: '>=8'} - dependencies: - archy: 1.0.0 - cross-spawn: 7.0.3 - istanbul-lib-coverage: 3.2.2 - p-map: 3.0.0 - rimraf: 3.0.2 - uuid: 8.3.2 - dev: true - /istanbul-lib-report@3.0.1: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} @@ -6471,17 +6453,6 @@ packages: supports-color: 7.2.0 dev: true - /istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} - dependencies: - debug: 4.3.4(supports-color@8.1.1) - istanbul-lib-coverage: 3.2.2 - source-map: 0.6.1 - transitivePeerDependencies: - - supports-color - dev: true - /istanbul-reports@3.1.6: resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} engines: {node: '>=8'} @@ -6838,10 +6809,6 @@ packages: resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} dev: true - /lodash.flattendeep@4.4.0: - resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==} - dev: true - /lodash.get@4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} dev: true @@ -6936,13 +6903,6 @@ packages: semver: 5.7.2 dev: true - /make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - dependencies: - semver: 6.3.1 - dev: true - /make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -7107,6 +7067,12 @@ packages: engines: {node: '>=4'} dev: true + /minimatch@3.0.5: + resolution: {integrity: sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: @@ -7361,13 +7327,6 @@ packages: - supports-color dev: true - /node-preload@0.2.1: - resolution: {integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==} - engines: {node: '>=8'} - dependencies: - process-on-spawn: 1.0.0 - dev: true - /node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} dev: true @@ -7543,42 +7502,6 @@ packages: resolution: {integrity: sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==} dev: true - /nyc@15.1.0: - resolution: {integrity: sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==} - engines: {node: '>=8.9'} - hasBin: true - dependencies: - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - caching-transform: 4.0.0 - convert-source-map: 1.9.0 - decamelize: 1.2.0 - find-cache-dir: 3.3.2 - find-up: 4.1.0 - foreground-child: 2.0.0 - get-package-type: 0.1.0 - glob: 7.2.3 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-hook: 3.0.0 - istanbul-lib-instrument: 4.0.3 - istanbul-lib-processinfo: 2.0.3 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.6 - make-dir: 3.1.0 - node-preload: 0.2.1 - p-map: 3.0.0 - process-on-spawn: 1.0.0 - resolve-from: 5.0.0 - rimraf: 3.0.2 - signal-exit: 3.0.7 - spawn-wrap: 2.0.0 - test-exclude: 6.0.0 - yargs: 15.4.1 - transitivePeerDependencies: - - supports-color - dev: true - /oauth-sign@0.9.0: resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} dev: true @@ -7821,13 +7744,6 @@ packages: p-limit: 3.1.0 dev: true - /p-map@3.0.0: - resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} - engines: {node: '>=8'} - dependencies: - aggregate-error: 3.1.0 - dev: true - /p-map@4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} @@ -7855,16 +7771,6 @@ packages: engines: {node: '>=6'} dev: true - /package-hash@4.0.0: - resolution: {integrity: sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==} - engines: {node: '>=8'} - dependencies: - graceful-fs: 4.2.11 - hasha: 5.2.2 - lodash.flattendeep: 4.4.0 - release-zalgo: 1.0.0 - dev: true - /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -8018,13 +7924,6 @@ packages: find-up: 3.0.0 dev: true - /pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - dev: true - /pkg-dir@5.0.0: resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} engines: {node: '>=10'} @@ -8074,13 +7973,6 @@ packages: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true - /process-on-spawn@1.0.0: - resolution: {integrity: sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==} - engines: {node: '>=8'} - dependencies: - fromentries: 1.3.2 - dev: true - /promise-retry@2.0.1: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} @@ -8378,13 +8270,6 @@ packages: jsesc: 0.5.0 dev: true - /release-zalgo@1.0.0: - resolution: {integrity: sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==} - engines: {node: '>=4'} - dependencies: - es6-error: 4.1.1 - dev: true - /remove-trailing-separator@1.1.0: resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} dev: true @@ -8399,6 +8284,16 @@ packages: engines: {node: '>=0.10'} dev: true + /replace@1.2.2: + resolution: {integrity: sha512-C4EDifm22XZM2b2JOYe6Mhn+lBsLBAvLbK8drfUQLTfD1KYl/n3VaW/CDju0Ny4w3xTtegBpg8YNSpFJPUDSjA==} + engines: {node: '>= 6'} + hasBin: true + dependencies: + chalk: 2.4.2 + minimatch: 3.0.5 + yargs: 15.4.1 + dev: true + /req-all@0.1.0: resolution: {integrity: sha512-ZdvPr8uXy9ujX3KujwE2P1HWkMYgogIhqeAeyb47MqWjSfyxERSm0TNbN/IapCCmWDufXab04AYrRgObaJCJ6Q==} engines: {node: '>=4'} @@ -8903,18 +8798,6 @@ packages: resolution: {integrity: sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==} dev: true - /spawn-wrap@2.0.0: - resolution: {integrity: sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==} - engines: {node: '>=8'} - dependencies: - foreground-child: 2.0.0 - is-windows: 1.0.2 - make-dir: 3.1.0 - rimraf: 3.0.2 - signal-exit: 3.0.7 - which: 2.0.2 - dev: true - /spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: @@ -9125,11 +9008,6 @@ packages: engines: {node: '>=4'} dev: true - /strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - dev: true - /strip-eof@1.0.0: resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} engines: {node: '>=0.10.0'} @@ -9482,12 +9360,6 @@ packages: is-typed-array: 1.1.12 dev: true - /typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - dependencies: - is-typedarray: 1.0.0 - dev: true - /typescript@5.3.3: resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} @@ -9675,9 +9547,13 @@ packages: hasBin: true dev: true - /uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true + /v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} + engines: {node: '>=10.12.0'} + dependencies: + '@jridgewell/trace-mapping': 0.3.20 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 dev: true /v8flags@3.2.0: @@ -9868,15 +9744,6 @@ packages: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - /write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - dev: true - /ws@8.13.0: resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} engines: {node: '>=10.0.0'} diff --git a/src/WarnSettings.js b/src/WarnSettings.js index 9d69fc210..aee7c92bf 100644 --- a/src/WarnSettings.js +++ b/src/WarnSettings.js @@ -21,7 +21,7 @@ const WarnSettings = function () { * @returns {void} */ markSettingAsWarned (context, setting) { - // istanbul ignore else + // c8 ignore else if (!warnedSettings.has(context)) { warnedSettings.set(context, new Set()); } diff --git a/src/alignTransform.js b/src/alignTransform.js index 022761f65..c12cb7eb3 100644 --- a/src/alignTransform.js +++ b/src/alignTransform.js @@ -192,7 +192,7 @@ const alignTransform = ({ nothingAfter.tag = true; tokens.postTag = ''; - /* istanbul ignore next: Never happens because the !intoTags return. But it's here for consistency with the original align transform */ + /* c8 ignore next: Never happens because the !intoTags return. But it's here for consistency with the original align transform */ if (tokens.tag === '') { nothingAfter.delim = true; } diff --git a/src/bin/generateDocs.js b/src/bin/generateDocs.js index 2774cb4f5..1e66ba602 100644 --- a/src/bin/generateDocs.js +++ b/src/bin/generateDocs.js @@ -1,13 +1,16 @@ /** * This script is used to inline assertions into the README.md documents. */ -import decamelize from 'decamelize'; +import path, {dirname} from 'path'; +import {fileURLToPath} from 'url'; import fs from 'fs'; +import decamelize from 'decamelize'; import Gitdown from 'gitdown'; import { glob, } from 'glob'; -import path from 'path'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); /** * @param {string} code @@ -77,7 +80,7 @@ const getAssertions = async () => { * valid: (import('eslint').RuleTester.ValidTestCase & {ignoreReadme?: true})[] * }} */ - const codes = await import(filePath); + const codes = (await import(filePath)).default; const ruleName = decamelize(assertionNames[idx], { separator: '-', diff --git a/src/bin/generateRule.js b/src/bin/generateRule.js index 3da323523..7216f0ebe 100644 --- a/src/bin/generateRule.js +++ b/src/bin/generateRule.js @@ -1,5 +1,14 @@ /* eslint-disable no-console -- CLI */ +import {fileURLToPath} from 'url'; +import { + existsSync, +} from 'fs'; +import fs from 'fs/promises'; +import { + resolve, dirname, +} from 'path'; + /** * @example * @@ -9,14 +18,9 @@ */ import camelCase from 'camelcase'; -import { - existsSync, -} from 'fs'; -import fs from 'fs/promises'; import open from 'open-editor'; -import { - resolve, -} from 'path'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); // Todo: Would ideally have prompts, e.g., to ask for whether // type was problem/layout, etc. diff --git a/src/exportParser.js b/src/exportParser.js index 9ec8e089d..5a748b987 100644 --- a/src/exportParser.js +++ b/src/exportParser.js @@ -39,17 +39,16 @@ const createNode = function () { * @returns {string|null} */ const getSymbolValue = function (symbol) { - /* istanbul ignore if */ + /* c8 ignore next 3 */ if (!symbol) { return null; } - /* istanbul ignore else */ + /* c8 ignore else */ if (symbol.type === 'literal') { return /** @type {ValueObject} */ (symbol.value).value; } - - /* istanbul ignore next */ + /* c8 ignore next */ return null; }; @@ -73,7 +72,7 @@ const getIdentifier = function (node, globals, scope, opts) { return identifierLiteral; } - /* istanbul ignore next */ + /* c8 ignore next */ const block = scope || globals; // As scopes are not currently supported, they are not traversed upwards recursively @@ -82,7 +81,7 @@ const getIdentifier = function (node, globals, scope, opts) { } // Seems this will only be entered once scopes added and entered - /* istanbul ignore next */ + /* c8 ignore next 3 */ if (globals.props[node.name]) { return globals.props[node.name]; } @@ -122,7 +121,7 @@ let createSymbol; // eslint-disable-line prefer-const const getSymbol = function (node, globals, scope, opt) { /* eslint-enable complexity -- Temporary */ const opts = opt || {}; - /* istanbul ignore next */ + /* c8 ignore next */ switch (node.type) { case 'Identifier': { return getIdentifier(node, globals, scope, opts); @@ -147,13 +146,13 @@ const getSymbol = function (node, globals, scope, opt) { ); const propertyValue = getSymbolValue(propertySymbol); - /* istanbul ignore else */ + /* c8 ignore else */ if (obj && propertyValue && obj.props[propertyValue]) { const block = obj.props[propertyValue]; return block; } - + /* c8 ignore next 10 */ /* if (opts.createMissingProps && propertyValue) { obj.props[propertyValue] = createNode(); @@ -161,12 +160,10 @@ const getSymbol = function (node, globals, scope, opt) { return obj.props[propertyValue]; } */ - /* istanbul ignore next */ debug(`MemberExpression: Missing property ${ /** @type {import('estree').PrivateIdentifier} */ (node.property).name }`); - - /* istanbul ignore next */ + /* c8 ignore next 2 */ return null; } @@ -180,11 +177,14 @@ const getSymbol = function (node, globals, scope, opt) { ); } + /* c8 ignore next 7 -- No longer needed? */ // @ts-expect-error TS OK case 'TSTypeAliasDeclaration': // @ts-expect-error TS OK // Fallthrough - case 'TSEnumDeclaration': case 'TSInterfaceDeclaration': + case 'TSEnumDeclaration': + // @ts-expect-error TS OK + case 'TSInterfaceDeclaration': case 'ClassDeclaration': case 'FunctionExpression': case 'FunctionDeclaration': case 'ArrowFunctionExpression': { @@ -266,7 +266,7 @@ const getSymbol = function (node, globals, scope, opt) { scope, opts, ); - /* istanbul ignore if */ + /* c8 ignore next 8 */ if (propVal) { val.props[ /** @type {import('estree').PrivateIdentifier} */ @@ -288,8 +288,7 @@ const getSymbol = function (node, globals, scope, opt) { return val; } } - - /* istanbul ignore next */ + /* c8 ignore next */ return null; }; @@ -311,7 +310,7 @@ const createBlockSymbol = function (block, name, value, globals, isGlobal) { createSymbol = function (node, globals, value, scope, isGlobal) { const block = scope || globals; - /* istanbul ignore if */ + /* c8 ignore next 3 */ if (!node) { return null; } @@ -319,16 +318,16 @@ createSymbol = function (node, globals, value, scope, isGlobal) { let symbol; switch (node.type) { case 'FunctionDeclaration': - /* istanbul ignore next */ + /* c8 ignore next */ // @ts-expect-error TS OK // Fall through case 'TSEnumDeclaration': case 'TSInterfaceDeclaration': - /* istanbul ignore next */ + /* c8 ignore next */ // @ts-expect-error TS OK // Fall through case 'TSTypeAliasDeclaration': case 'ClassDeclaration': { const nde = /** @type {import('estree').ClassDeclaration} */ (node); - /* istanbul ignore else */ + /* c8 ignore else */ if (nde.id && nde.id.type === 'Identifier') { return createSymbol( /** @type {import('eslint').Rule.Node} */ (nde.id), @@ -337,8 +336,7 @@ createSymbol = function (node, globals, value, scope, isGlobal) { globals, ); } - - /* istanbul ignore next */ + /* c8 ignore next 2 */ break; } @@ -346,22 +344,20 @@ createSymbol = function (node, globals, value, scope, isGlobal) { const nde = /** @type {import('estree').Identifier} */ (node); if (value) { const valueSymbol = getSymbol(value, globals, block); - /* istanbul ignore else */ + /* c8 ignore else */ if (valueSymbol) { createBlockSymbol(block, nde.name, valueSymbol, globals, isGlobal); return block.props[nde.name]; } - - /* istanbul ignore next */ + /* c8 ignore next */ debug('Identifier: Missing value symbol for %s', nde.name); } else { createBlockSymbol(block, nde.name, createNode(), globals, isGlobal); return block.props[nde.name]; } - - /* istanbul ignore next */ + /* c8 ignore next 2 */ break; } @@ -482,9 +478,9 @@ const initVariables = function (node, globals, opts) { */ const mapVariables = function (node, globals, opt, isExport) { /* eslint-enable complexity -- Temporary */ - /* istanbul ignore next */ + /* c8 ignore next */ const opts = opt || {}; - /* istanbul ignore next */ + /* c8 ignore next */ switch (node.type) { case 'Program': { if (opts.ancestorsOnly) { @@ -545,7 +541,7 @@ const mapVariables = function (node, globals, opt, isExport) { } case 'FunctionDeclaration': { - /* istanbul ignore if */ + /* c8 ignore next 10 */ if (/** @type {import('estree').Identifier} */ (node.id).type === 'Identifier') { createSymbol( /** @type {import('eslint').Rule.Node} */ @@ -570,6 +566,7 @@ const mapVariables = function (node, globals, opt, isExport) { ); if (symbol) { symbol.exported = true; + /* c8 ignore next 6 */ } else { // if (!node.id) { globals.ANONYMOUS_DEFAULT = /** @type {import('eslint').Rule.Node} */ ( @@ -598,7 +595,7 @@ const mapVariables = function (node, globals, opt, isExport) { /** @type {import('eslint').Rule.Node} */ (node.declaration), ); - /* istanbul ignore if */ + /* c8 ignore next 3 */ if (symbol) { symbol.exported = true; } @@ -624,7 +621,7 @@ const mapVariables = function (node, globals, opt, isExport) { globals, globals, ); - /* istanbul ignore if */ + /* c8 ignore next 3 */ if (symbol) { symbol.exported = true; } @@ -643,7 +640,7 @@ const mapVariables = function (node, globals, opt, isExport) { } default: { - /* istanbul ignore next */ + /* c8 ignore next */ return false; } } @@ -685,7 +682,7 @@ const findNode = function (node, block, cache) { const props = ('props' in block && block.props) || ('body' in block && block.body); for (const propval of Object.values(props || {})) { if (Array.isArray(propval)) { - /* istanbul ignore if */ + /* c8 ignore next 5 */ if (propval.some((val) => { return findNode(node, val, blockCache); })) { @@ -784,7 +781,7 @@ const isExportByAncestor = function (nde) { * @returns {boolean} */ const findExportedNode = function (block, node, cache) { - /* istanbul ignore if */ + /* c8 ignore next 3 */ if (block === null) { return false; } @@ -857,7 +854,7 @@ const parseRecursive = function (node, globalVars, opts) { * @returns {CreatedNode} */ const parse = function (ast, node, opt) { - /* istanbul ignore next */ + /* c8 ignore next 6 */ const opts = opt || { ancestorsOnly: false, esm: true, diff --git a/src/index.js b/src/index.js index 59ff98670..cbbfc917e 100644 --- a/src/index.js +++ b/src/index.js @@ -244,7 +244,7 @@ const createRecommendedTypeScriptFlavorRuleset = (warnOrError, flat) => { }; }; -/* istanbul ignore if -- TS */ +/* c8 ignore next 3 -- TS */ if (!index.configs) { throw new Error('TypeScript guard'); } diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index ecb509824..0c20a3ce5 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -687,18 +687,18 @@ const getUtils = ( ruleConfig, indent, ) => { - /* istanbul ignore next */ const ancestors = /** @type {import('eslint').Rule.Node[]} */ (node ? (sc.getAncestors ? ( sc.getAncestors(node) + /* c8 ignore next 4 */ ) : ( context.getAncestors() )) : []); - // istanbul ignore next -- Fallback to deprecated method + /* c8 ignore next -- Fallback to deprecated method */ const { sourceCode = context.getSourceCode(), } = context; @@ -937,7 +937,7 @@ const getUtils = ( return false; }); - /* istanbul ignore else -- Won't be called if missing */ + /* c8 ignore else -- Won't be called if missing */ if (descLines.length) { jsdoc.source.splice( /** @type {Integer} */ (startIdx), @@ -968,7 +968,7 @@ const getUtils = ( end, }, }, idx) => { - // istanbul ignore if -- Already checked + /* c8 ignore next 3 -- Already checked */ if (idx && (tag || end)) { return true; } @@ -1035,7 +1035,7 @@ const getUtils = ( }) => { return number === srcNumber; }); - // istanbul ignore else + // c8 ignore else if (sourceIndex > -1) { let spliceCount = 1; tagSource.slice(tagIdx + 1).some(({ @@ -1060,7 +1060,6 @@ const getUtils = ( end, } = jsdoc.source[spliceIdx].tokens; - /* istanbul ignore if -- Currently want to clear entirely if removing tags */ if ( spliceIdx === 0 && jsdoc.tags.length >= 2 || !removeEmptyBlock && (end || delimiter === '/**') @@ -1096,8 +1095,7 @@ const getUtils = ( return true; } - - // istanbul ignore next + /* c8 ignore next */ return false; }); for (const [ @@ -1240,7 +1238,7 @@ const getUtils = ( }) => { return number === srcNumber && !end; }); - // istanbul ignore else + // c8 ignore else if (sourceIndex > -1) { const lines = makeLines(); jsdoc.source.splice(sourceIndex + tagSourceOffset, 0, ...lines); @@ -1250,8 +1248,7 @@ const getUtils = ( return true; } - - // istanbul ignore next + /* c8 ignore next */ return false; }); @@ -1295,7 +1292,7 @@ const getUtils = ( postName = ''; } else if (postType) { postType = ''; - } else /* istanbul ignore else -- `comment-parser` prevents empty blocks currently per https://github.com/syavorsky/comment-parser/issues/128 */ if (postTag) { + } else /* c8 ignore else -- `comment-parser` prevents empty blocks currently per https://github.com/syavorsky/comment-parser/issues/128 */ if (postTag) { postTag = ''; } } @@ -1902,7 +1899,6 @@ const makeReport = (context, commentNode) => { }; // Todo: Remove ignore once `check-examples` can be restored for ESLint 8+ - // istanbul ignore if if ('column' in jsdocLoc && typeof jsdocLoc.column === 'number') { const colNumber = /** @type {import('eslint').AST.SourceLocation} */ ( commentNode.loc @@ -2151,7 +2147,7 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext * @returns {void} */ const callIterator = (context, node, jsdocNodes, state, lastCall) => { - // istanbul ignore next -- Fallback to deprecated method + /* c8 ignore next -- Fallback to deprecated method */ const { sourceCode = context.getSourceCode(), } = context; @@ -2265,7 +2261,7 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext return { // @ts-expect-error ESLint accepts create (context) { - // istanbul ignore next -- Fallback to deprecated method + /* c8 ignore next -- Fallback to deprecated method */ const { sourceCode = context.getSourceCode(), } = context; @@ -2344,7 +2340,7 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext const checkFile = (iterator, ruleConfig) => { return { create (context) { - // istanbul ignore next -- Fallback to deprecated method + /* c8 ignore next -- Fallback to deprecated method */ const { sourceCode = context.getSourceCode(), } = context; @@ -2463,7 +2459,7 @@ export default function iterateJsdoc (iterator, ruleConfig) { } } - // istanbul ignore next -- Fallback to deprecated method + /* c8 ignore next -- Fallback to deprecated method */ const { sourceCode = context.getSourceCode(), } = context; diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index 8e6c015d9..4b9c67280 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -389,8 +389,8 @@ const getFunctionParameterNames = ( // The key of an object could also be a string or number case 'Literal': + /* c8 ignore next 2 -- `raw` may not be present in all parsers */ return /** @type {string} */ (param.key.raw || - // istanbul ignore next -- `raw` may not be present in all parsers param.key.value); // case 'MemberExpression': @@ -849,6 +849,7 @@ const getTagStructureForMode = (mode, structuredTags) => { try { overrideTagStructure(structuredTags, tagStruct); + /* c8 ignore next 3 */ } catch { // } @@ -1022,8 +1023,8 @@ const hasNonFunctionYield = (node, checkYieldReturnValue) => { }); } + /* c8 ignore next 2 -- In Babel? */ // @ts-expect-error In Babel? - // istanbul ignore next -- In Babel? case 'OptionalCallExpression': case 'CallExpression': return node.arguments.some((element) => { @@ -1112,24 +1113,24 @@ const hasNonFunctionYield = (node, checkYieldReturnValue) => { return hasNonFunctionYield(property, checkYieldReturnValue); }); - // istanbul ignore next -- In Babel? + /* c8 ignore next -- In Babel? */ case 'PropertyDefinition': /* eslint-disable no-fallthrough */ + /* c8 ignore next 2 -- In Babel? */ // @ts-expect-error In Babel? - // istanbul ignore next -- In Babel? case 'ObjectProperty': + /* c8 ignore next 2 -- In Babel? */ // @ts-expect-error In Babel? - // istanbul ignore next -- In Babel? case 'ClassProperty': case 'Property': /* eslint-enable no-fallthrough */ return node.computed && hasNonFunctionYield(node.key, checkYieldReturnValue) || hasNonFunctionYield(node.value, checkYieldReturnValue); + /* c8 ignore next 2 -- In Babel? */ // @ts-expect-error In Babel? - // istanbul ignore next -- In Babel? case 'ObjectMethod': + /* c8 ignore next 6 -- In Babel? */ // @ts-expect-error In Babel? - // istanbul ignore next -- In Babel? return node.computed && hasNonFunctionYield(node.key, checkYieldReturnValue) || // @ts-expect-error In Babel? node.arguments.some((nde) => { @@ -1143,16 +1144,16 @@ const hasNonFunctionYield = (node, checkYieldReturnValue) => { case 'TaggedTemplateExpression': return hasNonFunctionYield(node.quasi, checkYieldReturnValue); - // @ts-expect-error In Babel? // ?. - // istanbul ignore next -- In Babel? + /* c8 ignore next 2 -- In Babel? */ + // @ts-expect-error In Babel? case 'OptionalMemberExpression': case 'MemberExpression': return hasNonFunctionYield(node.object, checkYieldReturnValue) || hasNonFunctionYield(node.property, checkYieldReturnValue); + /* c8 ignore next 2 -- In Babel? */ // @ts-expect-error In Babel? - // istanbul ignore next -- In Babel? case 'Import': case 'ImportExpression': return hasNonFunctionYield(node.source, checkYieldReturnValue); diff --git a/src/rules/importsAsDependencies.js b/src/rules/importsAsDependencies.js index 435897cf4..75167b52c 100644 --- a/src/rules/importsAsDependencies.js +++ b/src/rules/importsAsDependencies.js @@ -25,19 +25,20 @@ const setDeps = function () { ); deps = new Set([ ...(pkg.dependencies ? + /* c8 ignore next 2 */ Object.keys(pkg.dependencies) : - // istanbul ignore next []), ...(pkg.devDependencies ? + /* c8 ignore next 2 */ Object.keys(pkg.devDependencies) : - // istanbul ignore next []), ]); + /* c8 ignore next -- our package.json exists */ } catch (error) { - // istanbul ignore next -- our package.json exists + /* c8 ignore next -- our package.json exists */ deps = null; + /* c8 ignore next 4 -- our package.json exists */ /* eslint-disable no-console -- Inform user */ - // istanbul ignore next -- our package.json exists console.log(error); /* eslint-enable no-console -- Inform user */ } @@ -50,12 +51,11 @@ export default iterateJsdoc(({ settings, utils, }) => { - // istanbul ignore if if (deps === undefined) { setDeps(); } - // istanbul ignore if -- our package.json exists + /* c8 ignore next 3 -- our package.json exists */ if (deps === null) { return; } @@ -74,7 +74,7 @@ export default iterateJsdoc(({ // eslint-disable-next-line no-loop-func -- Safe traverse(typeAst, (nde) => { - // istanbul ignore if -- TS guard + /* c8 ignore next 3 -- TS guard */ if (deps === null) { return; } diff --git a/src/rules/noUndefinedTypes.js b/src/rules/noUndefinedTypes.js index 4813fdb0a..4ed51f18d 100644 --- a/src/rules/noUndefinedTypes.js +++ b/src/rules/noUndefinedTypes.js @@ -179,7 +179,6 @@ export default iterateJsdoc(({ // If the file is a module, concat the variables from the module scope. .concat( - /* istanbul ignore next */ cjsOrESMScope ? globalScope.childScopes.flatMap(({ variables, @@ -189,6 +188,7 @@ export default iterateJsdoc(({ name, }) => { return name; + /* c8 ignore next */ }) : [], ) .concat(extraTypes) @@ -286,9 +286,9 @@ export default iterateJsdoc(({ report(`The type '${value}' is undefined.`, null, tag); } } else if (markVariablesAsUsed && !extraTypes.includes(value)) { - /* istanbul ignore else */ if (sourceCode.markVariableAsUsed) { sourceCode.markVariableAsUsed(value); + /* c8 ignore next 3 */ } else { context.markVariableAsUsed(value); } diff --git a/src/rules/requireJsdoc.js b/src/rules/requireJsdoc.js index fb74c0e1c..0ebcbb0a9 100644 --- a/src/rules/requireJsdoc.js +++ b/src/rules/requireJsdoc.js @@ -284,7 +284,7 @@ const getOptions = (context, settings) => { /** @type {import('eslint').Rule.RuleModule} */ export default { create (context) { - // istanbul ignore next -- Fallback to deprecated method + /* c8 ignore next -- Fallback to deprecated method */ const { sourceCode = context.getSourceCode(), } = context; diff --git a/src/rules/requireReturns.js b/src/rules/requireReturns.js index 26d04acb5..99fa077c7 100644 --- a/src/rules/requireReturns.js +++ b/src/rules/requireReturns.js @@ -104,7 +104,7 @@ export default iterateJsdoc(({ initModuleExports: Boolean(publicOnly?.cjs ?? true), initWindow: Boolean(publicOnly?.window ?? false), }; - // istanbul ignore next -- Fallback to deprecated method + /* c8 ignore next -- Fallback to deprecated method */ const { sourceCode = context.getSourceCode(), } = context; diff --git a/src/rules/sortTags.js b/src/rules/sortTags.js index 6616e24df..3ce942b13 100644 --- a/src/rules/sortTags.js +++ b/src/rules/sortTags.js @@ -246,7 +246,7 @@ export default iterateJsdoc(({ while (true) { const nextTokens = jsdoc.source[++newIdx]?.tokens; - /* istanbul ignore if -- Guard */ + /* c8 ignore next 3 -- Guard */ if (!nextTokens) { return; } diff --git a/src/utils/hasReturnValue.js b/src/utils/hasReturnValue.js index c5f9abd73..813585476 100644 --- a/src/utils/hasReturnValue.js +++ b/src/utils/hasReturnValue.js @@ -198,12 +198,10 @@ const allBrancheshaveReturnValues = (node, promFilter) => { try { hasReturnValue(node.finalizer, true, promFilter); } catch (error) { - // istanbul ignore else if (/** @type {Error} */ (error).message === 'Null return') { return false; } - - // istanbul ignore next + /* c8 ignore next 2 */ throw error; } @@ -274,8 +272,8 @@ const hasNonEmptyResolverCall = (node, resolverName) => { // Arrow function without block switch (node.type) { + /* c8 ignore next 2 -- In Babel? */ // @ts-expect-error Babel? - // istanbul ignore next -- In Babel? case 'OptionalCallExpression': case 'CallExpression': return /** @type {import('@typescript-eslint/types').TSESTree.Identifier} */ ( @@ -375,8 +373,8 @@ const hasNonEmptyResolverCall = (node, resolverName) => { return node.properties.some((property) => { return hasNonEmptyResolverCall(property, resolverName); }); + /* c8 ignore next 2 -- In Babel? */ // @ts-expect-error Babel? - // istanbul ignore next -- In Babel? case 'ClassMethod': case 'MethodDefinition': return node.decorators && node.decorators.some((decorator) => { @@ -385,24 +383,24 @@ const hasNonEmptyResolverCall = (node, resolverName) => { node.computed && hasNonEmptyResolverCall(node.key, resolverName) || hasNonEmptyResolverCall(node.value, resolverName); + /* c8 ignore next 2 -- In Babel? */ // @ts-expect-error Babel? - // istanbul ignore next -- In Babel? case 'ObjectProperty': /* eslint-disable no-fallthrough */ - // istanbul ignore next -- In Babel? + /* c8 ignore next -- In Babel? */ case 'PropertyDefinition': + /* c8 ignore next 2 -- In Babel? */ // @ts-expect-error Babel? - // istanbul ignore next -- In Babel? case 'ClassProperty': case 'Property': /* eslint-enable no-fallthrough */ return node.computed && hasNonEmptyResolverCall(node.key, resolverName) || hasNonEmptyResolverCall(node.value, resolverName); + /* c8 ignore next 2 -- In Babel? */ // @ts-expect-error Babel? - // istanbul ignore next -- In Babel? case 'ObjectMethod': + /* c8 ignore next 6 -- In Babel? */ // @ts-expect-error - // istanbul ignore next -- In Babel? return node.computed && hasNonEmptyResolverCall(node.key, resolverName) || // @ts-expect-error node.arguments.some((nde) => { @@ -433,16 +431,16 @@ const hasNonEmptyResolverCall = (node, resolverName) => { case 'TaggedTemplateExpression': return hasNonEmptyResolverCall(node.quasi, resolverName); - // @ts-expect-error Babel? // ?. - // istanbul ignore next -- In Babel? + /* c8 ignore next 2 -- In Babel? */ + // @ts-expect-error Babel? case 'OptionalMemberExpression': case 'MemberExpression': return hasNonEmptyResolverCall(node.object, resolverName) || hasNonEmptyResolverCall(node.property, resolverName); + /* c8 ignore next 2 -- In Babel? */ // @ts-expect-error Babel? - // istanbul ignore next -- In Babel? case 'Import': case 'ImportExpression': return hasNonEmptyResolverCall(node.source, resolverName); @@ -488,12 +486,11 @@ const hasValueOrExecutorHasNonEmptyResolveValue = (node, anyPromiseAsReturn, all try { hasReturn = hasReturnValue(nde, true, promiseFilter); } catch (error) { - // istanbul ignore else + // c8 ignore else if (/** @type {Error} */ (error).message === 'Null return') { return false; } - - // istanbul ignore next + /* c8 ignore next 2 */ throw error; } diff --git a/test/rules/assertions/flatConfig.js b/test/rules/assertions/flatConfig.js deleted file mode 100644 index 986e85eba..000000000 --- a/test/rules/assertions/flatConfig.js +++ /dev/null @@ -1,31 +0,0 @@ -import * as tsParser from '@typescript-eslint/parser'; - -export default { - 'valid-types': { - invalid: [], - valid: [ - { - code: ` - /** - * Foo function. - * - * @param {[number, string]} bar - The bar array. - */ - function foo(bar) {} - `, - languageOptions: { - parser: tsParser, - sourceType: 'module', - }, - // Need manual setting here until fixing: - // https://github.com/eslint/eslint/pull/16944 - // https://github.com/typescript-eslint/typescript-eslint/issues/6541 - settings: { - jsdoc: { - mode: 'typescript', - }, - }, - }, - ], - }, -}; diff --git a/test/rules/assertions/requireJsdoc.js b/test/rules/assertions/requireJsdoc.js index b6fa0af78..c8a6ab995 100644 --- a/test/rules/assertions/requireJsdoc.js +++ b/test/rules/assertions/requireJsdoc.js @@ -2068,6 +2068,8 @@ function quux (foo) { `, languageOptions: { globals: globals.node, + ecmaVersion: 6, + sourceType: 'module', }, errors: [ { @@ -2096,10 +2098,6 @@ function quux (foo) { } `, - languageOptions: { - ecmaVersion: 6, - sourceType: 'module', - }, }, { code: ` @@ -2109,6 +2107,8 @@ function quux (foo) { `, languageOptions: { globals: globals.node, + ecmaVersion: 6, + sourceType: 'module', }, errors: [ { @@ -2137,10 +2137,6 @@ function quux (foo) { } `, - languageOptions: { - ecmaVersion: 6, - sourceType: 'module', - }, }, { code: ` @@ -5363,6 +5359,8 @@ function quux (foo) { `, languageOptions: { globals: globals.node, + ecmaVersion: 6, + sourceType: 'module', }, options: [ { @@ -5376,10 +5374,6 @@ function quux (foo) { }, }, ], - languageOptions: { - ecmaVersion: 6, - sourceType: 'module', - }, }, { code: ` export function someMethod() { @@ -5388,6 +5382,8 @@ function quux (foo) { `, languageOptions: { globals: globals.node, + ecmaVersion: 6, + sourceType: 'module', }, options: [ { @@ -5401,10 +5397,6 @@ function quux (foo) { }, }, ], - languageOptions: { - ecmaVersion: 6, - sourceType: 'module', - }, }, { code: ` exports.someMethod = function() { diff --git a/test/rules/index.js b/test/rules/index.js index 54599466b..bfb1d525f 100644 --- a/test/rules/index.js +++ b/test/rules/index.js @@ -1,29 +1,23 @@ import config from '../../src/index.js'; -// import {fileURLToPath} from 'url'; +import {fileURLToPath} from 'url'; import camelCase from 'camelcase'; import { ESLint, RuleTester, } from 'eslint'; -import pkg from 'eslint/use-at-your-own-risk'; import { readFileSync, } from 'fs'; import defaultsDeep from 'lodash.defaultsdeep'; import { - // dirname, + dirname, join, } from 'path'; import semver from 'semver'; -// const __dirname = dirname(fileURLToPath(import.meta.url)); +const __dirname = dirname(fileURLToPath(import.meta.url)); const ruleTester = new RuleTester(); -const { - // Todo: Could submit this to @types/eslint - // @ts-expect-error - FlatRuleTester, -} = pkg; // eslint-disable-next-line complexity -- Temporary const main = async () => { @@ -161,27 +155,6 @@ const main = async () => { process.chdir(cwd); } } - - if (!process.env.npm_config_rule) { - // Catch syntax errors - let flatRuleNames; - try { - flatRuleNames = (await import('./assertions/flatConfig.js')).default; - } catch (error) { - // eslint-disable-next-line no-console -- Reporting back to tester - console.error(error); - return; - } - - const fakeRuleTester = new FlatRuleTester(); - for (const [ - ruleName, - assertions, - ] of Object.entries(flatRuleNames)) { - const rule = config.rules[ruleName]; - fakeRuleTester.run(ruleName, rule, assertions); - } - } }; -main(); +await main(); From d940187557502227af5164f7d3c786570a888e4e Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 1 Jan 2024 11:04:49 -0700 Subject: [PATCH 158/273] fix(ESM): allow src files --- .npmignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.npmignore b/.npmignore index b79170854..4b245ac73 100755 --- a/.npmignore +++ b/.npmignore @@ -1,5 +1,4 @@ coverage -src bin test .* From b60cbb027b03b4f6d509933b0dca8681dbe47206 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 2 Jan 2024 15:08:16 -0700 Subject: [PATCH 159/273] fix: update legacy entry point --- CONTRIBUTING.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b0744dac2..0fc7ccca4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,7 +21,7 @@ pnpm link ../eslint-plugin-jsdoc ## Building the project After running `pnpm install` to get the latest dependencies and devDependencies, -you can run the following command to update the `dist` files, with `dist/index.js` +you can run the following command to update the `dist` files, with `dist/index.cjs` being the `main` entry point from `package.json`: ```shell diff --git a/package.json b/package.json index 989b2315d..d6ba23df8 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "*.js": "npm run lint-arg -- --fix" }, "type": "module", - "main": "./dist/index.js", + "main": "./dist/index.cjs", "types": "./dist/index.d.ts", "exports": { "types": "./dist/index.d.ts", From 67f368517a781701be8b55ff24f67d5ba16e9063 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 13 Jan 2024 11:46:24 -0700 Subject: [PATCH 160/273] chore: update devDeps. --- package.json | 12 +-- pnpm-lock.yaml | 262 ++++++++++++++++++++++++------------------------- 2 files changed, 132 insertions(+), 142 deletions(-) diff --git a/package.json b/package.json index d6ba23df8..31f2b887d 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "@babel/node": "^7.22.19", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-transform-flow-strip-types": "^7.23.3", - "@babel/preset-env": "^7.23.7", + "@babel/preset-env": "^7.23.8", "@es-joy/escodegen": "^3.5.1", "@es-joy/jsdoc-eslint-parser": "^0.21.1", "@hkdobrev/run-if-changed": "^0.3.1", @@ -32,19 +32,19 @@ "@semantic-release/npm": "^11.0.2", "@types/chai": "^4.3.11", "@types/debug": "^4.1.12", - "@types/eslint": "^8.56.0", + "@types/eslint": "^8.56.2", "@types/esquery": "^1.5.3", "@types/estree": "^1.0.5", "@types/json-schema": "^7.0.15", "@types/lodash.defaultsdeep": "^4.6.9", "@types/mocha": "^10.0.6", - "@types/node": "^20.10.6", + "@types/node": "^20.11.0", "@types/semver": "^7.5.6", "@types/spdx-expression-parse": "^3.0.5", - "@typescript-eslint/parser": "^6.17.0", + "@typescript-eslint/parser": "^6.18.1", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", - "c8": "^8.0.1", + "c8": "^9.1.0", "camelcase": "^6.3.0", "chai": "^4.3.10", "cross-env": "^7.0.3", @@ -64,7 +64,7 @@ "open-editor": "^3.0.0", "replace": "^1.2.2", "rimraf": "^5.0.5", - "semantic-release": "^22.0.12", + "semantic-release": "^23.0.0", "typescript": "5.3.3" }, "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2b887980e..cd9517480 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,8 +53,8 @@ devDependencies: specifier: ^7.23.3 version: 7.23.3(@babel/core@7.23.7) '@babel/preset-env': - specifier: ^7.23.7 - version: 7.23.7(@babel/core@7.23.7) + specifier: ^7.23.8 + version: 7.23.8(@babel/core@7.23.7) '@es-joy/escodegen': specifier: ^3.5.1 version: 3.5.1 @@ -66,13 +66,13 @@ devDependencies: version: 0.3.1 '@semantic-release/commit-analyzer': specifier: ^11.1.0 - version: 11.1.0(semantic-release@22.0.12) + version: 11.1.0(semantic-release@23.0.0) '@semantic-release/github': specifier: ^9.2.6 - version: 9.2.6(semantic-release@22.0.12) + version: 9.2.6(semantic-release@23.0.0) '@semantic-release/npm': specifier: ^11.0.2 - version: 11.0.2(semantic-release@22.0.12) + version: 11.0.2(semantic-release@23.0.0) '@types/chai': specifier: ^4.3.11 version: 4.3.11 @@ -80,8 +80,8 @@ devDependencies: specifier: ^4.1.12 version: 4.1.12 '@types/eslint': - specifier: ^8.56.0 - version: 8.56.0 + specifier: ^8.56.2 + version: 8.56.2 '@types/esquery': specifier: ^1.5.3 version: 1.5.3 @@ -98,8 +98,8 @@ devDependencies: specifier: ^10.0.6 version: 10.0.6 '@types/node': - specifier: ^20.10.6 - version: 20.10.6 + specifier: ^20.11.0 + version: 20.11.0 '@types/semver': specifier: ^7.5.6 version: 7.5.6 @@ -107,8 +107,8 @@ devDependencies: specifier: ^3.0.5 version: 3.0.5 '@typescript-eslint/parser': - specifier: ^6.17.0 - version: 6.17.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + specifier: ^6.18.1 + version: 6.18.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -116,8 +116,8 @@ devDependencies: specifier: ^6.1.1 version: 6.1.1 c8: - specifier: ^8.0.1 - version: 8.0.1 + specifier: ^9.1.0 + version: 9.1.0 camelcase: specifier: ^6.3.0 version: 6.3.0 @@ -135,7 +135,7 @@ devDependencies: version: 9.0.0-alpha.0 eslint-config-canonical: specifier: ~42.8.0 - version: 42.8.0(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.0)(@types/node@20.10.6)(eslint@9.0.0-alpha.0)(graphql@16.8.1)(typescript@5.3.3) + version: 42.8.0(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.2)(@types/node@20.11.0)(eslint@9.0.0-alpha.0)(graphql@16.8.1)(typescript@5.3.3) espree: specifier: ^9.6.1 version: 9.6.1 @@ -176,8 +176,8 @@ devDependencies: specifier: ^5.0.5 version: 5.0.5 semantic-release: - specifier: ^22.0.12 - version: 22.0.12(typescript@5.3.3) + specifier: ^23.0.0 + version: 23.0.0(typescript@5.3.3) typescript: specifier: 5.3.3 version: 5.3.3 @@ -864,8 +864,8 @@ packages: '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.7): - resolution: {integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==} + /@babel/plugin-transform-classes@7.23.8(@babel/core@7.23.7): + resolution: {integrity: sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -875,7 +875,6 @@ packages: '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) '@babel/helper-split-export-declaration': 7.22.6 @@ -1344,8 +1343,8 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.23.7(@babel/core@7.23.7): - resolution: {integrity: sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA==} + /@babel/preset-env@7.23.8(@babel/core@7.23.7): + resolution: {integrity: sha512-lFlpmkApLkEP6woIKprO6DO60RImpatTQKtz4sUcDjVcK8M8mQ4sZsuxaTMNOZf0sqAq/ReYW1ZBHnOQwKpLWA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1384,7 +1383,7 @@ packages: '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.7) '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.7) '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.7) + '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.23.7) '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.7) '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.7) '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.7) @@ -1569,7 +1568,7 @@ packages: '@babel/core': 7.23.7 '@babel/eslint-parser': 7.23.3(@babel/core@7.23.7)(eslint@8.56.0) '@es-joy/jsdoccomment': 0.41.0 - '@typescript-eslint/parser': 6.17.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 esquery: 1.5.0 typescript: 5.3.3 @@ -1654,7 +1653,7 @@ packages: engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.7)(@types/node@20.10.6)(graphql@16.8.1): + /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.7)(@types/node@20.11.0)(graphql@16.8.1): resolution: {integrity: sha512-RbwVlz1gcYG62sECR1u0XqMh8w5e5XMCCZoMvPQ3nJzEBCTfXLGX727GBoRmSvY1x4gJmqNZ1lsOX7lZY14RIw==} engines: {node: '>=12'} peerDependencies: @@ -1668,7 +1667,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.3.2 graphql: 16.8.1 - graphql-config: 4.5.0(@types/node@20.10.6)(graphql@16.8.1) + graphql-config: 4.5.0(@types/node@20.11.0)(graphql@16.8.1) graphql-depth-limit: 1.1.0(graphql@16.8.1) lodash.lowercase: 4.3.0 tslib: 2.6.2 @@ -1743,7 +1742,7 @@ packages: - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.10(@types/node@20.10.6)(graphql@16.8.1): + /@graphql-tools/executor-http@0.1.10(@types/node@20.11.0)(graphql@16.8.1): resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1754,7 +1753,7 @@ packages: dset: 3.1.3 extract-files: 11.0.0 graphql: 16.8.1 - meros: 1.3.0(@types/node@20.10.6) + meros: 1.3.0(@types/node@20.11.0) tslib: 2.6.2 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -1877,7 +1876,7 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.10.6)(graphql@16.8.1): + /@graphql-tools/url-loader@7.17.18(@types/node@20.11.0)(graphql@16.8.1): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1885,7 +1884,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@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.10.6)(graphql@16.8.1) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.11.0)(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) @@ -2252,7 +2251,7 @@ packages: resolution: {integrity: sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw==} dev: true - /@semantic-release/commit-analyzer@11.1.0(semantic-release@22.0.12): + /@semantic-release/commit-analyzer@11.1.0(semantic-release@23.0.0): resolution: {integrity: sha512-cXNTbv3nXR2hlzHjAMgbuiQVtvWHTlwwISt60B+4NZv01y/QRY7p2HcJm8Eh2StzcTJoNnflvKjHH/cjFS7d5g==} engines: {node: ^18.17 || >=20.6.1} peerDependencies: @@ -2265,7 +2264,7 @@ packages: import-from-esm: 1.3.3 lodash-es: 4.17.21 micromatch: 4.0.5 - semantic-release: 22.0.12(typescript@5.3.3) + semantic-release: 23.0.0(typescript@5.3.3) transitivePeerDependencies: - supports-color dev: true @@ -2275,7 +2274,7 @@ packages: engines: {node: '>=18'} dev: true - /@semantic-release/github@9.2.6(semantic-release@22.0.12): + /@semantic-release/github@9.2.6(semantic-release@23.0.0): resolution: {integrity: sha512-shi+Lrf6exeNZF+sBhK+P011LSbhmIAoUEgEY6SsxF8irJ+J2stwI5jkyDQ+4gzYyDImzV6LCKdYB9FXnQRWKA==} engines: {node: '>=18'} peerDependencies: @@ -2296,13 +2295,13 @@ packages: lodash-es: 4.17.21 mime: 4.0.1 p-filter: 4.1.0 - semantic-release: 22.0.12(typescript@5.3.3) + semantic-release: 23.0.0(typescript@5.3.3) url-join: 5.0.0 transitivePeerDependencies: - supports-color dev: true - /@semantic-release/npm@11.0.2(semantic-release@22.0.12): + /@semantic-release/npm@11.0.2(semantic-release@23.0.0): resolution: {integrity: sha512-owtf3RjyPvRE63iUKZ5/xO4uqjRpVQDUB9+nnXj0xwfIeM9pRl+cG+zGDzdftR4m3f2s4Wyf3SexW+kF5DFtWA==} engines: {node: ^18.17 || >=20} peerDependencies: @@ -2319,12 +2318,12 @@ packages: rc: 1.2.8 read-pkg: 9.0.1 registry-auth-token: 5.0.2 - semantic-release: 22.0.12(typescript@5.3.3) + semantic-release: 23.0.0(typescript@5.3.3) semver: 7.5.4 tempy: 3.1.0 dev: true - /@semantic-release/release-notes-generator@12.1.0(semantic-release@22.0.12): + /@semantic-release/release-notes-generator@12.1.0(semantic-release@23.0.0): resolution: {integrity: sha512-g6M9AjUKAZUZnxaJZnouNBeDNTCUrJ5Ltj+VJ60gJeDaRRahcHsry9HW8yKrnKkKNkx5lbWiEP1FPMqVNQz8Kg==} engines: {node: ^18.17 || >=20.6.1} peerDependencies: @@ -2340,7 +2339,7 @@ packages: into-stream: 7.0.0 lodash-es: 4.17.21 read-pkg-up: 11.0.0 - semantic-release: 22.0.12(typescript@5.3.3) + semantic-release: 23.0.0(typescript@5.3.3) transitivePeerDependencies: - supports-color dev: true @@ -2365,8 +2364,8 @@ packages: '@types/ms': 0.7.34 dev: true - /@types/eslint@8.56.0: - resolution: {integrity: sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==} + /@types/eslint@8.56.2: + resolution: {integrity: sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==} dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 @@ -2412,8 +2411,8 @@ packages: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} dev: true - /@types/node@20.10.6: - resolution: {integrity: sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==} + /@types/node@20.11.0: + resolution: {integrity: sha512-o9bjXmDNcF7GbM4CNQpmi+TutCgap/K3w1JyKgxAjqx41zp9qlIAVFi0IhCNsJcXolEqLWhbFbEeL0PvYm4pcQ==} dependencies: undici-types: 5.26.5 dev: true @@ -2433,10 +2432,10 @@ packages: /@types/ws@8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.11.0 dev: true - /@typescript-eslint/eslint-plugin@6.16.0(@typescript-eslint/parser@6.17.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /@typescript-eslint/eslint-plugin@6.16.0(@typescript-eslint/parser@6.18.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2448,7 +2447,7 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.17.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': 6.16.0 '@typescript-eslint/type-utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) @@ -2478,8 +2477,8 @@ packages: - typescript dev: true - /@typescript-eslint/parser@6.17.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-C4bBaX2orvhK+LlwrY8oWGmSl4WolCfYm513gEccdWZj0CwGadbIADb0FtVEcI+WzUyjyoBj2JRP8g25E6IB8A==} + /@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2488,10 +2487,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.17.0 - '@typescript-eslint/types': 6.17.0 - '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.17.0 + '@typescript-eslint/scope-manager': 6.18.1 + '@typescript-eslint/types': 6.18.1 + '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.18.1 debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 typescript: 5.3.3 @@ -2499,8 +2498,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.17.0(eslint@9.0.0-alpha.0)(typescript@5.3.3): - resolution: {integrity: sha512-C4bBaX2orvhK+LlwrY8oWGmSl4WolCfYm513gEccdWZj0CwGadbIADb0FtVEcI+WzUyjyoBj2JRP8g25E6IB8A==} + /@typescript-eslint/parser@6.18.1(eslint@9.0.0-alpha.0)(typescript@5.3.3): + resolution: {integrity: sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2509,10 +2508,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.17.0 - '@typescript-eslint/types': 6.17.0 - '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.17.0 + '@typescript-eslint/scope-manager': 6.18.1 + '@typescript-eslint/types': 6.18.1 + '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.18.1 debug: 4.3.4(supports-color@8.1.1) eslint: 9.0.0-alpha.0 typescript: 5.3.3 @@ -2536,12 +2535,12 @@ packages: '@typescript-eslint/visitor-keys': 6.16.0 dev: true - /@typescript-eslint/scope-manager@6.17.0: - resolution: {integrity: sha512-RX7a8lwgOi7am0k17NUO0+ZmMOX4PpjLtLRgLmT1d3lBYdWH4ssBUbwdmc5pdRX8rXon8v9x8vaoOSpkHfcXGA==} + /@typescript-eslint/scope-manager@6.18.1: + resolution: {integrity: sha512-BgdBwXPFmZzaZUuw6wKiHKIovms97a7eTImjkXCZE04TGHysG+0hDQPmygyvgtkoB/aOQwSM/nWv3LzrOIQOBw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.17.0 - '@typescript-eslint/visitor-keys': 6.17.0 + '@typescript-eslint/types': 6.18.1 + '@typescript-eslint/visitor-keys': 6.18.1 dev: true /@typescript-eslint/type-utils@6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3): @@ -2574,8 +2573,8 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@6.17.0: - resolution: {integrity: sha512-qRKs9tvc3a4RBcL/9PXtKSehI/q8wuU9xYJxe97WFxnzH8NWWtcW3ffNS+EWg8uPvIerhjsEZ+rHtDqOCiH57A==} + /@typescript-eslint/types@6.18.1: + resolution: {integrity: sha512-4TuMAe+tc5oA7wwfqMtB0Y5OrREPF1GeJBAjqwgZh1lEMH5PJQgWgHGfYufVB51LtjD+peZylmeyxUXPfENLCw==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -2622,8 +2621,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.17.0(typescript@5.3.3): - resolution: {integrity: sha512-gVQe+SLdNPfjlJn5VNGhlOhrXz4cajwFd5kAgWtZ9dCZf4XJf8xmgCTLIqec7aha3JwgLI2CK6GY1043FRxZwg==} + /@typescript-eslint/typescript-estree@6.18.1(typescript@5.3.3): + resolution: {integrity: sha512-fv9B94UAhywPRhUeeV/v+3SBDvcPiLxRZJw/xZeeGgRLQZ6rLMG+8krrJUyIf6s1ecWTzlsbp0rlw7n9sjufHA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2631,8 +2630,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.17.0 - '@typescript-eslint/visitor-keys': 6.17.0 + '@typescript-eslint/types': 6.18.1 + '@typescript-eslint/visitor-keys': 6.18.1 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 @@ -2699,11 +2698,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.17.0: - resolution: {integrity: sha512-H6VwB/k3IuIeQOyYczyyKN8wH6ed8EwliaYHLxOIhyF0dYEIsN8+Bk3GE19qafeMKyZJJHP8+O1HiFhFLUNKSg==} + /@typescript-eslint/visitor-keys@6.18.1: + resolution: {integrity: sha512-/kvt0C5lRqGoCfsbmm7/CwMqoSkY3zzHLIjdhHZQW3VFrnz7ATecOHR7nb7V+xn4286MBxfnQfQhAmCI0u+bJA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.17.0 + '@typescript-eslint/types': 6.18.1 eslint-visitor-keys: 3.4.3 dev: true @@ -3263,19 +3262,18 @@ packages: streamsearch: 1.1.0 dev: true - /c8@8.0.1: - resolution: {integrity: sha512-EINpopxZNH1mETuI0DzRA4MZpAUH+IFiRhnmFD3vFr3vdrgxqi3VfE3KL0AIL+zDq8rC9bZqwM/VDmmoe04y7w==} - engines: {node: '>=12'} + /c8@9.1.0: + resolution: {integrity: sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==} + engines: {node: '>=14.14.0'} hasBin: true dependencies: '@bcoe/v8-coverage': 0.2.3 '@istanbuljs/schema': 0.1.3 find-up: 5.0.0 - foreground-child: 2.0.0 + foreground-child: 3.1.1 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-reports: 3.1.6 - rimraf: 3.0.2 test-exclude: 6.0.0 v8-to-istanbul: 9.2.0 yargs: 17.7.2 @@ -3715,8 +3713,8 @@ packages: path-type: 4.0.0 dev: true - /cosmiconfig@8.3.6(typescript@5.3.3): - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + /cosmiconfig@9.0.0(typescript@5.3.3): + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} peerDependencies: typescript: '>=4.9.5' @@ -3724,10 +3722,10 @@ packages: typescript: optional: true dependencies: + env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 - path-type: 4.0.0 typescript: 5.3.3 dev: true @@ -4071,8 +4069,8 @@ packages: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} dev: true - /env-ci@10.0.0: - resolution: {integrity: sha512-U4xcd/utDYFgMh0yWj07R1H6L5fwhVbmxBCpnL0DbVSDZVnsC82HONw0wxtxNkIAcua3KtbomQvIk5xFZGAQJw==} + /env-ci@11.0.0: + resolution: {integrity: sha512-apikxMgkipkgTvMdRT9MNqWx5VLOci79F4VBd7Op/7OPjjoanjdAvn6fglMCCEf/1bAh8eOiuEVCUs4V3qP3nQ==} engines: {node: ^18.17 || >=20.6.1} dependencies: execa: 8.0.1 @@ -4240,7 +4238,7 @@ packages: eslint: 9.0.0-alpha.0 dev: true - /eslint-config-canonical@42.8.0(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.0)(@types/node@20.10.6)(eslint@9.0.0-alpha.0)(graphql@16.8.1)(typescript@5.3.3): + /eslint-config-canonical@42.8.0(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.2)(@types/node@20.11.0)(eslint@9.0.0-alpha.0)(graphql@16.8.1)(typescript@5.3.3): resolution: {integrity: sha512-Jurs2GnTq9ISNwSt+ryYPy35smrfFQXGSTi9dLJvGqDP3bAI27U9TkUNozCwPNb0hxy8gsvwy2tA4IO8TV1Kcg==} engines: {node: '>=16.0.0'} peerDependencies: @@ -4250,21 +4248,21 @@ packages: '@babel/eslint-parser': 7.23.3(@babel/core@7.23.7)(eslint@9.0.0-alpha.0) '@babel/eslint-plugin': 7.23.5(@babel/eslint-parser@7.23.3)(eslint@9.0.0-alpha.0) '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.7) - '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.7)(@types/node@20.10.6)(graphql@16.8.1) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.7)(@types/node@20.11.0)(graphql@16.8.1) '@next/eslint-plugin-next': 13.5.6 '@rushstack/eslint-patch': 1.6.1 - '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.17.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.17.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.18.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint: 9.0.0-alpha.0 eslint-config-prettier: 9.1.0(eslint@9.0.0-alpha.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.17.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.18.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) eslint-plugin-ava: 14.0.0(eslint@9.0.0-alpha.0) - eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@6.17.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@6.18.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint-plugin-cypress: 2.15.1(eslint@9.0.0-alpha.0) eslint-plugin-eslint-comments: 3.2.0(eslint@9.0.0-alpha.0) eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@9.0.0-alpha.0) eslint-plugin-fp: 2.3.0(eslint@9.0.0-alpha.0) - eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint-plugin-jsdoc: 46.9.1(eslint@9.0.0-alpha.0) eslint-plugin-jsonc: 2.11.2(eslint@9.0.0-alpha.0) @@ -4273,13 +4271,13 @@ packages: eslint-plugin-mocha: 10.2.0(eslint@9.0.0-alpha.0) eslint-plugin-modules-newline: 0.0.6 eslint-plugin-n: 16.5.0(eslint@9.0.0-alpha.0) - eslint-plugin-prettier: 5.1.2(@types/eslint@8.56.0)(eslint-config-prettier@9.1.0)(eslint@9.0.0-alpha.0)(prettier@3.1.1) + eslint-plugin-prettier: 5.1.2(@types/eslint@8.56.2)(eslint-config-prettier@9.1.0)(eslint@9.0.0-alpha.0)(prettier@3.1.1) eslint-plugin-promise: 6.1.1(eslint@9.0.0-alpha.0) eslint-plugin-react: 7.33.2(eslint@9.0.0-alpha.0) eslint-plugin-react-hooks: 4.6.0(eslint@9.0.0-alpha.0) eslint-plugin-regexp: 1.15.0(eslint@9.0.0-alpha.0) eslint-plugin-simple-import-sort: 10.0.0(eslint@9.0.0-alpha.0) - eslint-plugin-typescript-sort-keys: 3.1.0(@typescript-eslint/parser@6.17.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint-plugin-typescript-sort-keys: 3.1.0(@typescript-eslint/parser@6.18.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint-plugin-unicorn: 48.0.1(eslint@9.0.0-alpha.0) eslint-plugin-vitest: 0.3.20(@typescript-eslint/eslint-plugin@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint-plugin-yml: 1.11.0(eslint@9.0.0-alpha.0) @@ -4324,7 +4322,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.17.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.18.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4334,8 +4332,8 @@ packages: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 eslint: 9.0.0-alpha.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) - eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) fast-glob: 3.3.2 get-tsconfig: 4.7.2 is-core-module: 2.13.1 @@ -4347,7 +4345,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4368,11 +4366,11 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.17.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) debug: 3.2.7 eslint: 9.0.0-alpha.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.17.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.18.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) transitivePeerDependencies: - supports-color dev: true @@ -4394,15 +4392,15 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@6.17.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@6.18.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-0Egc0FKOnCRdu3bFEJhfHkdkusIgW0UxdemukkowZQnQsnf12FHSJ7K26b+tZ5pKB7cTyECSaqvEpoIJfplX4g==} engines: {node: '>=16.0.0'} dependencies: '@typescript-eslint/utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) chance: 1.1.11 debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.17.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.18.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -4483,7 +4481,7 @@ packages: req-all: 0.1.0 dev: true - /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): + /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-ORizX37MelIWLbMyqI7hi8VJMf7A0CskMmYkB+lkCX3aF4pkGV7kwx5bSEb4qx7Yce2rAf9s34HqDRPjGRZPNQ==} engines: {node: '>=12'} peerDependencies: @@ -4493,7 +4491,7 @@ packages: doctrine: 3.0.0 eslint: 9.0.0-alpha.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) get-tsconfig: 4.7.2 is-glob: 4.0.3 minimatch: 3.1.2 @@ -4518,7 +4516,7 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.17.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.18.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) '@typescript-eslint/utils': 5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint: 9.0.0-alpha.0 transitivePeerDependencies: @@ -4633,7 +4631,7 @@ packages: semver: 7.5.4 dev: true - /eslint-plugin-prettier@5.1.2(@types/eslint@8.56.0)(eslint-config-prettier@9.1.0)(eslint@9.0.0-alpha.0)(prettier@3.1.1): + /eslint-plugin-prettier@5.1.2(@types/eslint@8.56.2)(eslint-config-prettier@9.1.0)(eslint@9.0.0-alpha.0)(prettier@3.1.1): resolution: {integrity: sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4647,7 +4645,7 @@ packages: eslint-config-prettier: optional: true dependencies: - '@types/eslint': 8.56.0 + '@types/eslint': 8.56.2 eslint: 9.0.0-alpha.0 eslint-config-prettier: 9.1.0(eslint@9.0.0-alpha.0) prettier: 3.1.1 @@ -4723,7 +4721,7 @@ packages: eslint: 9.0.0-alpha.0 dev: true - /eslint-plugin-typescript-sort-keys@3.1.0(@typescript-eslint/parser@6.17.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /eslint-plugin-typescript-sort-keys@3.1.0(@typescript-eslint/parser@6.18.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-rgZeYfEguqKni/V7sbmgFu9/94UDAQd7YqNd0J7Qhw7SdLIGd0iBk2KgpjhRhe2ge4rPSLDIdFWwUiDqBOst6Q==} engines: {node: '>= 16'} peerDependencies: @@ -4732,7 +4730,7 @@ packages: typescript: ^3 || ^4 || ^5 dependencies: '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.17.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint: 9.0.0-alpha.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 @@ -4778,7 +4776,7 @@ packages: vitest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.17.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.18.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint: 9.0.0-alpha.0 transitivePeerDependencies: @@ -5280,14 +5278,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /foreground-child@2.0.0: - resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} - engines: {node: '>=8.0.0'} - dependencies: - cross-spawn: 7.0.3 - signal-exit: 3.0.7 - dev: true - /foreground-child@3.1.1: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} @@ -5639,7 +5629,7 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql-config@4.5.0(@types/node@20.10.6)(graphql@16.8.1): + /graphql-config@4.5.0(@types/node@20.11.0)(graphql@16.8.1): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -5653,7 +5643,7 @@ packages: '@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.10.6)(graphql@16.8.1) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.11.0)(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) cosmiconfig: 8.0.0 graphql: 16.8.1 @@ -6948,7 +6938,7 @@ packages: lodash: 4.17.21 dev: true - /marked-terminal@6.2.0(marked@9.1.6): + /marked-terminal@6.2.0(marked@11.1.1): resolution: {integrity: sha512-ubWhwcBFHnXsjYNsu+Wndpg0zhY4CahSpPlA70PlO0rR9r2sZpkyU+rkCsOWH+KMEkx847UpALON+HWgxowFtw==} engines: {node: '>=16.0.0'} peerDependencies: @@ -6958,20 +6948,20 @@ packages: cardinal: 2.1.1 chalk: 5.3.0 cli-table3: 0.6.3 - marked: 9.1.6 + marked: 11.1.1 node-emoji: 2.1.3 supports-hyperlinks: 3.0.0 dev: true - /marked@2.1.3: - resolution: {integrity: sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==} - engines: {node: '>= 10'} + /marked@11.1.1: + resolution: {integrity: sha512-EgxRjgK9axsQuUa/oKMx5DEY8oXpKJfk61rT5iY3aRlgU6QJtUcxU5OAymdhCvWvhYcd9FKmO5eQoX8m9VGJXg==} + engines: {node: '>= 18'} hasBin: true dev: true - /marked@9.1.6: - resolution: {integrity: sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==} - engines: {node: '>= 16'} + /marked@2.1.3: + resolution: {integrity: sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==} + engines: {node: '>= 10'} hasBin: true dev: true @@ -6989,7 +6979,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.3.0(@types/node@20.10.6): + /meros@1.3.0(@types/node@20.11.0): resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} engines: {node: '>=13'} peerDependencies: @@ -6998,7 +6988,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.10.6 + '@types/node': 20.11.0 dev: true /micro-spelling-correcter@1.1.1: @@ -8488,20 +8478,20 @@ packages: regexp-ast-analysis: 0.6.0 dev: true - /semantic-release@22.0.12(typescript@5.3.3): - resolution: {integrity: sha512-0mhiCR/4sZb00RVFJIUlMuiBkW3NMpVIW2Gse7noqEMoFGkvfPPAImEQbkBV8xga4KOPP4FdTRYuLLy32R1fPw==} - engines: {node: ^18.17 || >=20.6.1} + /semantic-release@23.0.0(typescript@5.3.3): + resolution: {integrity: sha512-Jz7jEWO2igTtske112gC4PPE2whCMVrsgxUPG3/SZI7VE357suIUZFlJd1Yu0g2I6RPc2HxNEfUg7KhmDTjwqg==} + engines: {node: '>=20.8.1'} hasBin: true dependencies: - '@semantic-release/commit-analyzer': 11.1.0(semantic-release@22.0.12) + '@semantic-release/commit-analyzer': 11.1.0(semantic-release@23.0.0) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 9.2.6(semantic-release@22.0.12) - '@semantic-release/npm': 11.0.2(semantic-release@22.0.12) - '@semantic-release/release-notes-generator': 12.1.0(semantic-release@22.0.12) + '@semantic-release/github': 9.2.6(semantic-release@23.0.0) + '@semantic-release/npm': 11.0.2(semantic-release@23.0.0) + '@semantic-release/release-notes-generator': 12.1.0(semantic-release@23.0.0) aggregate-error: 5.0.0 - cosmiconfig: 8.3.6(typescript@5.3.3) + cosmiconfig: 9.0.0(typescript@5.3.3) debug: 4.3.4(supports-color@8.1.1) - env-ci: 10.0.0 + env-ci: 11.0.0 execa: 8.0.1 figures: 6.0.1 find-versions: 5.1.0 @@ -8511,8 +8501,8 @@ packages: hosted-git-info: 7.0.1 import-from-esm: 1.3.3 lodash-es: 4.17.21 - marked: 9.1.6 - marked-terminal: 6.2.0(marked@9.1.6) + marked: 11.1.1 + marked-terminal: 6.2.0(marked@11.1.1) micromatch: 4.0.5 p-each-series: 3.0.0 p-reduce: 3.0.0 From 3697321ff01b304d6ed825fcc3f8a22624e00840 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 13 Jan 2024 11:46:48 -0700 Subject: [PATCH 161/273] refactor: TS --- tsconfig.json | 3 ++- typings/babel__eslint-parser.d.ts | 1 + {src/bin => typings}/gitdown.d.ts | 0 3 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 typings/babel__eslint-parser.d.ts rename {src/bin => typings}/gitdown.d.ts (100%) diff --git a/tsconfig.json b/tsconfig.json index 7a3d8d669..510f1fdea 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -16,7 +16,8 @@ "include": [ "src/**/*.js", "test/**/*.js", - "src/bin/gitdown.d.ts" + "typings/gitdown.d.ts", + "typings/babel__eslint-parser.d.ts" ], "exclude": ["node_modules"] } diff --git a/typings/babel__eslint-parser.d.ts b/typings/babel__eslint-parser.d.ts new file mode 100644 index 000000000..89b648f85 --- /dev/null +++ b/typings/babel__eslint-parser.d.ts @@ -0,0 +1 @@ +declare module '@babel/eslint-parser'; diff --git a/src/bin/gitdown.d.ts b/typings/gitdown.d.ts similarity index 100% rename from src/bin/gitdown.d.ts rename to typings/gitdown.d.ts From 7461e0182827af0c6355dfeec50315953c6fb3de Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 13 Jan 2024 12:03:57 -0700 Subject: [PATCH 162/273] fix(`require-jsdoc`): ensure children of TS type reference and parameter instantiation can be exports; fixes #1186 --- src/exportParser.js | 2 ++ test/rules/assertions/requireJsdoc.js | 52 +++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/src/exportParser.js b/src/exportParser.js index 5a748b987..590650bd3 100644 --- a/src/exportParser.js +++ b/src/exportParser.js @@ -741,6 +741,8 @@ const canExportChildrenType = new Set([ 'TSInterfaceDeclaration', 'TSTypeLiteral', 'TSTypeAliasDeclaration', + 'TSTypeParameterInstantiation', + 'TSTypeReference', 'ClassDeclaration', 'ClassBody', 'ClassDefinition', diff --git a/test/rules/assertions/requireJsdoc.js b/test/rules/assertions/requireJsdoc.js index c8a6ab995..411d8505a 100644 --- a/test/rules/assertions/requireJsdoc.js +++ b/test/rules/assertions/requireJsdoc.js @@ -4191,6 +4191,58 @@ function quux (foo) { } }, }, + { + code: ` + /** + * Command options for the login command + */ + export type LoginOptions = CmdOptions<{ + username?: string; + password?: string; + }>; + `, + errors: [ + { + line: 6, + message: 'Missing JSDoc comment.', + }, + { + line: 7, + message: 'Missing JSDoc comment.', + }, + ], + options: [ + { + publicOnly: { + ancestorsOnly: true, + }, + contexts: [ + 'TSTypeAliasDeclaration', + 'TSInterfaceDeclaration', + 'TSMethodSignature', + 'TSPropertySignature', + ], + }, + ], + output: ` + /** + * Command options for the login command + */ + export type LoginOptions = CmdOptions<{ + /** + * + */ + username?: string; + /** + * + */ + password?: string; + }>; + `, + languageOptions: { + parser: typescriptEslintParser, + }, + }, ], valid: [ { From 0cd761b504b3f07acd6c5045e2fa9b5a0cb27e2c Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 24 Jan 2024 09:14:11 -0700 Subject: [PATCH 163/273] fix(`require-param`): skip `this` parameter in checks (when followed by destructured content); fixes #1190 --- docs/rules/require-jsdoc.md | 10 ++++++++++ docs/rules/require-param.md | 11 +++++++++++ src/rules/requireParam.js | 6 ++++-- test/rules/assertions/requireParam.js | 17 +++++++++++++++++ 4 files changed, 42 insertions(+), 2 deletions(-) diff --git a/docs/rules/require-jsdoc.md b/docs/rules/require-jsdoc.md index 93b068929..5f120d084 100644 --- a/docs/rules/require-jsdoc.md +++ b/docs/rules/require-jsdoc.md @@ -1016,6 +1016,16 @@ export class MyClass { export const Comp = observer(() => <>Hello); // "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["CallExpression[callee.name=\"observer\"]"],"enableFixer":false,"publicOnly":true,"require":{"ArrowFunctionExpression":true,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":true,"MethodDefinition":true}}] // Message: Missing JSDoc comment. + +/** + * Command options for the login command + */ +export type LoginOptions = CmdOptions<{ + username?: string; + password?: string; +}>; +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"contexts":["TSTypeAliasDeclaration","TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"]}] +// Message: Missing JSDoc comment. ```` diff --git a/docs/rules/require-param.md b/docs/rules/require-param.md index eeb88e5d8..bf4ebfe17 100644 --- a/docs/rules/require-param.md +++ b/docs/rules/require-param.md @@ -1832,5 +1832,16 @@ function foo(this: T, bar: number): number { /** {@link someOtherval} */ function a (b) {} // "jsdoc/require-param": ["error"|"warn", {"contexts":[{"comment":"*:not(JsdocBlock:has(JsdocInlineTag[tag=link]))","context":"FunctionDeclaration"}]}] + +/** + * Returns the sum of two numbers + * @param options Object to destructure + * @param options.a First value + * @param options.b Second value + * @returns Sum of a and b + */ +function sumDestructure(this: unknown, { a, b }: { a: number, b: number }) { + return a + b; +} ```` diff --git a/src/rules/requireParam.js b/src/rules/requireParam.js index 2ab5ba4a0..7be64b952 100644 --- a/src/rules/requireParam.js +++ b/src/rules/requireParam.js @@ -214,14 +214,16 @@ export default iterateJsdoc(({ ...unnamedRootBase, ], autoIncrementBase); + const thisOffset = functionParameterNames[0] === 'this' ? 1 : 0; + for (const [ functionParameterIdx, functionParameterName, ] of functionParameterNames.entries()) { let inc; if (Array.isArray(functionParameterName)) { - const matchedJsdoc = shallowJsdocParameterNames[functionParameterIdx] || - jsdocParameterNames[functionParameterIdx]; + const matchedJsdoc = shallowJsdocParameterNames[functionParameterIdx - thisOffset] || + jsdocParameterNames[functionParameterIdx - thisOffset]; /** @type {string} */ let rootName; diff --git a/test/rules/assertions/requireParam.js b/test/rules/assertions/requireParam.js index c8b6968a3..70c04cb7c 100644 --- a/test/rules/assertions/requireParam.js +++ b/test/rules/assertions/requireParam.js @@ -3640,5 +3640,22 @@ export default { }, ], }, + { + code: ` + /** + * Returns the sum of two numbers + * @param options Object to destructure + * @param options.a First value + * @param options.b Second value + * @returns Sum of a and b + */ + function sumDestructure(this: unknown, { a, b }: { a: number, b: number }) { + return a + b; + } + `, + languageOptions: { + parser: typescriptEslintParser, + }, + }, ], }; From 6b163c82b33e68febabfb88ba346c942176cd593 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 24 Jan 2024 15:35:08 -0700 Subject: [PATCH 164/273] fix: update devDeps. --- package.json | 6 +- pnpm-lock.yaml | 207 +++++++++++++++++++++++++------------------------ 2 files changed, 107 insertions(+), 106 deletions(-) diff --git a/package.json b/package.json index 31f2b887d..a0aea9cf8 100644 --- a/package.json +++ b/package.json @@ -38,10 +38,10 @@ "@types/json-schema": "^7.0.15", "@types/lodash.defaultsdeep": "^4.6.9", "@types/mocha": "^10.0.6", - "@types/node": "^20.11.0", + "@types/node": "^20.11.6", "@types/semver": "^7.5.6", "@types/spdx-expression-parse": "^3.0.5", - "@typescript-eslint/parser": "^6.18.1", + "@typescript-eslint/parser": "^6.19.1", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "c8": "^9.1.0", @@ -50,7 +50,7 @@ "cross-env": "^7.0.3", "decamelize": "^5.0.1", "eslint": "9.0.0-alpha.0", - "eslint-config-canonical": "~42.8.0", + "eslint-config-canonical": "~42.8.1", "espree": "^9.6.1", "gitdown": "^3.1.5", "glob": "^10.3.10", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cd9517480..731cbdb26 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -98,8 +98,8 @@ devDependencies: specifier: ^10.0.6 version: 10.0.6 '@types/node': - specifier: ^20.11.0 - version: 20.11.0 + specifier: ^20.11.6 + version: 20.11.6 '@types/semver': specifier: ^7.5.6 version: 7.5.6 @@ -107,8 +107,8 @@ devDependencies: specifier: ^3.0.5 version: 3.0.5 '@typescript-eslint/parser': - specifier: ^6.18.1 - version: 6.18.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) + specifier: ^6.19.1 + version: 6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -134,8 +134,8 @@ devDependencies: specifier: 9.0.0-alpha.0 version: 9.0.0-alpha.0 eslint-config-canonical: - specifier: ~42.8.0 - version: 42.8.0(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.2)(@types/node@20.11.0)(eslint@9.0.0-alpha.0)(graphql@16.8.1)(typescript@5.3.3) + specifier: ~42.8.1 + version: 42.8.1(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.2)(@types/node@20.11.6)(eslint@9.0.0-alpha.0)(graphql@16.8.1)(typescript@5.3.3) espree: specifier: ^9.6.1 version: 9.6.1 @@ -1487,24 +1487,6 @@ packages: '@babel/types': 7.23.6 dev: true - /@babel/traverse@7.23.6: - resolution: {integrity: sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 - debug: 4.3.4(supports-color@8.1.1) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/traverse@7.23.7: resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==} engines: {node: '>=6.9.0'} @@ -1568,7 +1550,7 @@ packages: '@babel/core': 7.23.7 '@babel/eslint-parser': 7.23.3(@babel/core@7.23.7)(eslint@8.56.0) '@es-joy/jsdoccomment': 0.41.0 - '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.19.1(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 esquery: 1.5.0 typescript: 5.3.3 @@ -1653,7 +1635,7 @@ packages: engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.7)(@types/node@20.11.0)(graphql@16.8.1): + /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.7)(@types/node@20.11.6)(graphql@16.8.1): resolution: {integrity: sha512-RbwVlz1gcYG62sECR1u0XqMh8w5e5XMCCZoMvPQ3nJzEBCTfXLGX727GBoRmSvY1x4gJmqNZ1lsOX7lZY14RIw==} engines: {node: '>=12'} peerDependencies: @@ -1667,7 +1649,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.3.2 graphql: 16.8.1 - graphql-config: 4.5.0(@types/node@20.11.0)(graphql@16.8.1) + graphql-config: 4.5.0(@types/node@20.11.6)(graphql@16.8.1) graphql-depth-limit: 1.1.0(graphql@16.8.1) lodash.lowercase: 4.3.0 tslib: 2.6.2 @@ -1742,7 +1724,7 @@ packages: - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.10(@types/node@20.11.0)(graphql@16.8.1): + /@graphql-tools/executor-http@0.1.10(@types/node@20.11.6)(graphql@16.8.1): resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1753,7 +1735,7 @@ packages: dset: 3.1.3 extract-files: 11.0.0 graphql: 16.8.1 - meros: 1.3.0(@types/node@20.11.0) + meros: 1.3.0(@types/node@20.11.6) tslib: 2.6.2 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -1809,7 +1791,7 @@ packages: dependencies: '@babel/parser': 7.23.6 '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.7) - '@babel/traverse': 7.23.6 + '@babel/traverse': 7.23.7 '@babel/types': 7.23.6 '@graphql-tools/utils': 9.2.1(graphql@16.8.1) graphql: 16.8.1 @@ -1876,7 +1858,7 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.11.0)(graphql@16.8.1): + /@graphql-tools/url-loader@7.17.18(@types/node@20.11.6)(graphql@16.8.1): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1884,7 +1866,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@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.11.0)(graphql@16.8.1) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.11.6)(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) @@ -2411,8 +2393,8 @@ packages: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} dev: true - /@types/node@20.11.0: - resolution: {integrity: sha512-o9bjXmDNcF7GbM4CNQpmi+TutCgap/K3w1JyKgxAjqx41zp9qlIAVFi0IhCNsJcXolEqLWhbFbEeL0PvYm4pcQ==} + /@types/node@20.11.6: + resolution: {integrity: sha512-+EOokTnksGVgip2PbYbr3xnR7kZigh4LbybAfBAw5BpnQ+FqBYUsvCEjYd70IXKlbohQ64mzEYmMtlWUY8q//Q==} dependencies: undici-types: 5.26.5 dev: true @@ -2432,11 +2414,11 @@ packages: /@types/ws@8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 20.11.0 + '@types/node': 20.11.6 dev: true - /@typescript-eslint/eslint-plugin@6.16.0(@typescript-eslint/parser@6.18.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): - resolution: {integrity: sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==} + /@typescript-eslint/eslint-plugin@6.19.1(@typescript-eslint/parser@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + resolution: {integrity: sha512-roQScUGFruWod9CEyoV5KlCYrubC/fvG8/1zXuT0WTcxX87GnMMmnksMwSg99lo1xiKrBzw2icsJPMAw1OtKxg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -2447,11 +2429,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.18.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.16.0 - '@typescript-eslint/type-utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/parser': 6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.19.1 + '@typescript-eslint/type-utils': 6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.19.1 debug: 4.3.4(supports-color@8.1.1) eslint: 9.0.0-alpha.0 graphemer: 1.4.0 @@ -2477,8 +2459,8 @@ packages: - typescript dev: true - /@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==} + /@typescript-eslint/parser@6.19.1(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-WEfX22ziAh6pRE9jnbkkLGp/4RhTpffr2ZK5bJ18M8mIfA8A+k97U9ZyaXCEJRlmMHh7R9MJZWXp/r73DzINVQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2487,10 +2469,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.18.1 - '@typescript-eslint/types': 6.18.1 - '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.18.1 + '@typescript-eslint/scope-manager': 6.19.1 + '@typescript-eslint/types': 6.19.1 + '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.19.1 debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 typescript: 5.3.3 @@ -2498,8 +2480,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.18.1(eslint@9.0.0-alpha.0)(typescript@5.3.3): - resolution: {integrity: sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==} + /@typescript-eslint/parser@6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3): + resolution: {integrity: sha512-WEfX22ziAh6pRE9jnbkkLGp/4RhTpffr2ZK5bJ18M8mIfA8A+k97U9ZyaXCEJRlmMHh7R9MJZWXp/r73DzINVQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2508,10 +2490,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.18.1 - '@typescript-eslint/types': 6.18.1 - '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.18.1 + '@typescript-eslint/scope-manager': 6.19.1 + '@typescript-eslint/types': 6.19.1 + '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.19.1 debug: 4.3.4(supports-color@8.1.1) eslint: 9.0.0-alpha.0 typescript: 5.3.3 @@ -2535,16 +2517,16 @@ packages: '@typescript-eslint/visitor-keys': 6.16.0 dev: true - /@typescript-eslint/scope-manager@6.18.1: - resolution: {integrity: sha512-BgdBwXPFmZzaZUuw6wKiHKIovms97a7eTImjkXCZE04TGHysG+0hDQPmygyvgtkoB/aOQwSM/nWv3LzrOIQOBw==} + /@typescript-eslint/scope-manager@6.19.1: + resolution: {integrity: sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.18.1 - '@typescript-eslint/visitor-keys': 6.18.1 + '@typescript-eslint/types': 6.19.1 + '@typescript-eslint/visitor-keys': 6.19.1 dev: true - /@typescript-eslint/type-utils@6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3): - resolution: {integrity: sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg==} + /@typescript-eslint/type-utils@6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3): + resolution: {integrity: sha512-0vdyld3ecfxJuddDjACUvlAeYNrHP/pDeQk2pWBR2ESeEzQhg52DF53AbI9QCBkYE23lgkhLCZNkHn2hEXXYIg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2553,8 +2535,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) debug: 4.3.4(supports-color@8.1.1) eslint: 9.0.0-alpha.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -2573,8 +2555,8 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@6.18.1: - resolution: {integrity: sha512-4TuMAe+tc5oA7wwfqMtB0Y5OrREPF1GeJBAjqwgZh1lEMH5PJQgWgHGfYufVB51LtjD+peZylmeyxUXPfENLCw==} + /@typescript-eslint/types@6.19.1: + resolution: {integrity: sha512-6+bk6FEtBhvfYvpHsDgAL3uo4BfvnTnoge5LrrCj2eJN8g3IJdLTD4B/jK3Q6vo4Ql/Hoip9I8aB6fF+6RfDqg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -2621,8 +2603,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.18.1(typescript@5.3.3): - resolution: {integrity: sha512-fv9B94UAhywPRhUeeV/v+3SBDvcPiLxRZJw/xZeeGgRLQZ6rLMG+8krrJUyIf6s1ecWTzlsbp0rlw7n9sjufHA==} + /@typescript-eslint/typescript-estree@6.19.1(typescript@5.3.3): + resolution: {integrity: sha512-aFdAxuhzBFRWhy+H20nYu19+Km+gFfwNO4TEqyszkMcgBDYQjmPJ61erHxuT2ESJXhlhrO7I5EFIlZ+qGR8oVA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2630,8 +2612,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.18.1 - '@typescript-eslint/visitor-keys': 6.18.1 + '@typescript-eslint/types': 6.19.1 + '@typescript-eslint/visitor-keys': 6.19.1 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 @@ -2682,6 +2664,25 @@ packages: - typescript dev: true + /@typescript-eslint/utils@6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3): + resolution: {integrity: sha512-JvjfEZuP5WoMqwh9SPAPDSHSg9FBHHGhjPugSRxu5jMfjvBpq5/sGTD+9M9aQ5sh6iJ8AY/Kk/oUYVEMAPwi7w==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-alpha.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.6 + '@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.0.0-alpha.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /@typescript-eslint/visitor-keys@5.62.0: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2698,11 +2699,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.18.1: - resolution: {integrity: sha512-/kvt0C5lRqGoCfsbmm7/CwMqoSkY3zzHLIjdhHZQW3VFrnz7ATecOHR7nb7V+xn4286MBxfnQfQhAmCI0u+bJA==} + /@typescript-eslint/visitor-keys@6.19.1: + resolution: {integrity: sha512-gkdtIO+xSO/SmI0W68DBg4u1KElmIUo3vXzgHyGPs6cxgB0sa3TlptRAAE0hUY1hM6FcDKEv7aIwiTGm76cXfQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.18.1 + '@typescript-eslint/types': 6.19.1 eslint-visitor-keys: 3.4.3 dev: true @@ -4238,8 +4239,8 @@ packages: eslint: 9.0.0-alpha.0 dev: true - /eslint-config-canonical@42.8.0(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.2)(@types/node@20.11.0)(eslint@9.0.0-alpha.0)(graphql@16.8.1)(typescript@5.3.3): - resolution: {integrity: sha512-Jurs2GnTq9ISNwSt+ryYPy35smrfFQXGSTi9dLJvGqDP3bAI27U9TkUNozCwPNb0hxy8gsvwy2tA4IO8TV1Kcg==} + /eslint-config-canonical@42.8.1(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.2)(@types/node@20.11.6)(eslint@9.0.0-alpha.0)(graphql@16.8.1)(typescript@5.3.3): + resolution: {integrity: sha512-OsQD1TQJAVUH/tnLwumPyKFnB+wcZLIwIUJ73rLupvgD9XzinBaDf8ZAz1cPIkG/Fej3SgKvHWiPSFAp2Nd27w==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 @@ -4248,22 +4249,22 @@ packages: '@babel/eslint-parser': 7.23.3(@babel/core@7.23.7)(eslint@9.0.0-alpha.0) '@babel/eslint-plugin': 7.23.5(@babel/eslint-parser@7.23.3)(eslint@9.0.0-alpha.0) '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.7) - '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.7)(@types/node@20.11.0)(graphql@16.8.1) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.7)(@types/node@20.11.6)(graphql@16.8.1) '@next/eslint-plugin-next': 13.5.6 '@rushstack/eslint-patch': 1.6.1 - '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.18.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.18.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint: 9.0.0-alpha.0 eslint-config-prettier: 9.1.0(eslint@9.0.0-alpha.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.18.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.19.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) eslint-plugin-ava: 14.0.0(eslint@9.0.0-alpha.0) - eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@6.18.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@6.19.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint-plugin-cypress: 2.15.1(eslint@9.0.0-alpha.0) eslint-plugin-eslint-comments: 3.2.0(eslint@9.0.0-alpha.0) eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@9.0.0-alpha.0) eslint-plugin-fp: 2.3.0(eslint@9.0.0-alpha.0) - eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) - eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint-plugin-jsdoc: 46.9.1(eslint@9.0.0-alpha.0) eslint-plugin-jsonc: 2.11.2(eslint@9.0.0-alpha.0) eslint-plugin-jsx-a11y: 6.8.0(eslint@9.0.0-alpha.0) @@ -4277,9 +4278,9 @@ packages: eslint-plugin-react-hooks: 4.6.0(eslint@9.0.0-alpha.0) eslint-plugin-regexp: 1.15.0(eslint@9.0.0-alpha.0) eslint-plugin-simple-import-sort: 10.0.0(eslint@9.0.0-alpha.0) - eslint-plugin-typescript-sort-keys: 3.1.0(@typescript-eslint/parser@6.18.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint-plugin-typescript-sort-keys: 3.1.0(@typescript-eslint/parser@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint-plugin-unicorn: 48.0.1(eslint@9.0.0-alpha.0) - eslint-plugin-vitest: 0.3.20(@typescript-eslint/eslint-plugin@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint-plugin-vitest: 0.3.20(@typescript-eslint/eslint-plugin@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint-plugin-yml: 1.11.0(eslint@9.0.0-alpha.0) eslint-plugin-zod: 1.4.0(eslint@9.0.0-alpha.0) prettier: 3.1.1 @@ -4322,7 +4323,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.18.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.19.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4332,8 +4333,8 @@ packages: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 eslint: 9.0.0-alpha.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) - eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) fast-glob: 3.3.2 get-tsconfig: 4.7.2 is-core-module: 2.13.1 @@ -4345,7 +4346,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4366,11 +4367,11 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.18.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) debug: 3.2.7 eslint: 9.0.0-alpha.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.18.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.19.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) transitivePeerDependencies: - supports-color dev: true @@ -4392,15 +4393,15 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@6.18.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@6.19.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-0Egc0FKOnCRdu3bFEJhfHkdkusIgW0UxdemukkowZQnQsnf12FHSJ7K26b+tZ5pKB7cTyECSaqvEpoIJfplX4g==} engines: {node: '>=16.0.0'} dependencies: '@typescript-eslint/utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) chance: 1.1.11 debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.18.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.19.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -4481,7 +4482,7 @@ packages: req-all: 0.1.0 dev: true - /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): + /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-ORizX37MelIWLbMyqI7hi8VJMf7A0CskMmYkB+lkCX3aF4pkGV7kwx5bSEb4qx7Yce2rAf9s34HqDRPjGRZPNQ==} engines: {node: '>=12'} peerDependencies: @@ -4491,7 +4492,7 @@ packages: doctrine: 3.0.0 eslint: 9.0.0-alpha.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) get-tsconfig: 4.7.2 is-glob: 4.0.3 minimatch: 3.1.2 @@ -4503,7 +4504,7 @@ packages: - supports-color dev: true - /eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -4516,7 +4517,7 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.18.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) '@typescript-eslint/utils': 5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint: 9.0.0-alpha.0 transitivePeerDependencies: @@ -4721,7 +4722,7 @@ packages: eslint: 9.0.0-alpha.0 dev: true - /eslint-plugin-typescript-sort-keys@3.1.0(@typescript-eslint/parser@6.18.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /eslint-plugin-typescript-sort-keys@3.1.0(@typescript-eslint/parser@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-rgZeYfEguqKni/V7sbmgFu9/94UDAQd7YqNd0J7Qhw7SdLIGd0iBk2KgpjhRhe2ge4rPSLDIdFWwUiDqBOst6Q==} engines: {node: '>= 16'} peerDependencies: @@ -4730,7 +4731,7 @@ packages: typescript: ^3 || ^4 || ^5 dependencies: '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.18.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint: 9.0.0-alpha.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 @@ -4763,7 +4764,7 @@ packages: strip-indent: 3.0.0 dev: true - /eslint-plugin-vitest@0.3.20(@typescript-eslint/eslint-plugin@6.16.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /eslint-plugin-vitest@0.3.20(@typescript-eslint/eslint-plugin@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-O05k4j9TGMOkkghj9dRgpeLDyOSiVIxQWgNDPfhYPm5ioJsehcYV/zkRLekQs+c8+RBCVXucSED3fYOyy2EoWA==} engines: {node: ^18.0.0 || >= 20.0.0} peerDependencies: @@ -4776,7 +4777,7 @@ packages: vitest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.18.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint: 9.0.0-alpha.0 transitivePeerDependencies: @@ -5629,7 +5630,7 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql-config@4.5.0(@types/node@20.11.0)(graphql@16.8.1): + /graphql-config@4.5.0(@types/node@20.11.6)(graphql@16.8.1): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -5643,7 +5644,7 @@ packages: '@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.11.0)(graphql@16.8.1) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.11.6)(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) cosmiconfig: 8.0.0 graphql: 16.8.1 @@ -6979,7 +6980,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.3.0(@types/node@20.11.0): + /meros@1.3.0(@types/node@20.11.6): resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} engines: {node: '>=13'} peerDependencies: @@ -6988,7 +6989,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.11.0 + '@types/node': 20.11.6 dev: true /micro-spelling-correcter@1.1.1: From c5f203ade7b76a7d8d69735b524dfeda130d508c Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 25 Jan 2024 18:16:44 -0700 Subject: [PATCH 165/273] fix(`require-description-complete-sentence`): capture multiple newlines as "paragraphs"; fixes #1193 --- .../rules/require-description-complete-sentence.md | 11 +++++++++++ src/rules/requireDescriptionCompleteSentence.js | 2 +- .../requireDescriptionCompleteSentence.js | 14 ++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/docs/rules/require-description-complete-sentence.md b/docs/rules/require-description-complete-sentence.md index 4b74c9d71..b1a840017 100644 --- a/docs/rules/require-description-complete-sentence.md +++ b/docs/rules/require-description-complete-sentence.md @@ -818,5 +818,16 @@ function quux () { } /** @param options {@link RequestOptions} specifying path parameters and query parameters. */ + +/** + * A single line for testing. + * + * ```js + * const aCodeExample = true; + * ``` + * + * @param parameter + */ +const code = (parameter) => 123; ```` diff --git a/src/rules/requireDescriptionCompleteSentence.js b/src/rules/requireDescriptionCompleteSentence.js index db67be6bf..e5ba88640 100644 --- a/src/rules/requireDescriptionCompleteSentence.js +++ b/src/rules/requireDescriptionCompleteSentence.js @@ -14,7 +14,7 @@ const otherDescriptiveTags = new Set([ * @returns {string[]} */ const extractParagraphs = (text) => { - return text.split(/(? 123; + `, + }, ], }; From f2aef87e42db465fdc11dc346c88dbac12c8f466 Mon Sep 17 00:00:00 2001 From: Reece Dunham Date: Mon, 5 Feb 2024 20:08:14 +0000 Subject: [PATCH 166/273] fix(informative-docs): Improve wording in rule description --- .README/README.md | 2 +- .README/rules/informative-docs.md | 2 +- README.md | 2 +- docs/rules/informative-docs.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.README/README.md b/.README/README.md index 691fc30b8..dd634b97d 100644 --- a/.README/README.md +++ b/.README/README.md @@ -238,7 +238,7 @@ non-default-recommended fixer). |:heavy_check_mark:||[check-values](./docs/rules/check-values.md#readme)|Checks for expected content within some miscellaneous tags (`@version`, `@since`, `@license`, `@author`)| |:heavy_check_mark:|:wrench:|[empty-tags](./docs/rules/empty-tags.md#readme)|Checks tags that are expected to be empty (e.g., `@abstract` or `@async`), reporting if they have content| |:heavy_check_mark:||[implements-on-classes](./docs/rules/implements-on-classes.md#readme)|Prohibits use of `@implements` on non-constructor functions (to enforce the tag only being used on classes/constructors)| -|||[informative-docs](./docs/rules/informative-docs.md#readme)|Reports on JSDoc texts that serve only to restart their attached name.| +|||[informative-docs](./docs/rules/informative-docs.md#readme)|Reports on JSDoc texts that serve only to restate their attached name.| |||[match-description](./docs/rules/match-description.md#readme)|Defines customizable regular expression rules for your tag descriptions| ||:wrench:|[match-name](./docs/rules/match-name.md#readme)|Reports the name portion of a JSDoc tag if matching or not matching a given regular expression| |:heavy_check_mark:|:wrench:|[multiline-blocks](./docs/rules/multiline-blocks.md#readme)|Controls how and whether jsdoc blocks can be expressed as single or multiple line blocks| diff --git a/.README/rules/informative-docs.md b/.README/rules/informative-docs.md index 5aa44948b..90420a5a4 100644 --- a/.README/rules/informative-docs.md +++ b/.README/rules/informative-docs.md @@ -2,7 +2,7 @@ {"gitdown": "contents", "rootId": "informative-docs"} -Reports on JSDoc texts that serve only to restart their attached name. +Reports on JSDoc texts that serve only to restate their attached name. Devs sometimes write JSDoc descriptions that add no additional information just to fill out the doc: diff --git a/README.md b/README.md index a96bc2e72..5c4192ac2 100644 --- a/README.md +++ b/README.md @@ -265,7 +265,7 @@ non-default-recommended fixer). |:heavy_check_mark:||[check-values](./docs/rules/check-values.md#readme)|Checks for expected content within some miscellaneous tags (`@version`, `@since`, `@license`, `@author`)| |:heavy_check_mark:|:wrench:|[empty-tags](./docs/rules/empty-tags.md#readme)|Checks tags that are expected to be empty (e.g., `@abstract` or `@async`), reporting if they have content| |:heavy_check_mark:||[implements-on-classes](./docs/rules/implements-on-classes.md#readme)|Prohibits use of `@implements` on non-constructor functions (to enforce the tag only being used on classes/constructors)| -|||[informative-docs](./docs/rules/informative-docs.md#readme)|Reports on JSDoc texts that serve only to restart their attached name.| +|||[informative-docs](./docs/rules/informative-docs.md#readme)|Reports on JSDoc texts that serve only to restate their attached name.| |||[match-description](./docs/rules/match-description.md#readme)|Defines customizable regular expression rules for your tag descriptions| ||:wrench:|[match-name](./docs/rules/match-name.md#readme)|Reports the name portion of a JSDoc tag if matching or not matching a given regular expression| |:heavy_check_mark:|:wrench:|[multiline-blocks](./docs/rules/multiline-blocks.md#readme)|Controls how and whether jsdoc blocks can be expressed as single or multiple line blocks| diff --git a/docs/rules/informative-docs.md b/docs/rules/informative-docs.md index bce9290bf..2d597b5df 100644 --- a/docs/rules/informative-docs.md +++ b/docs/rules/informative-docs.md @@ -10,7 +10,7 @@ * [Passing examples](#user-content-informative-docs-passing-examples) -Reports on JSDoc texts that serve only to restart their attached name. +Reports on JSDoc texts that serve only to restate their attached name. Devs sometimes write JSDoc descriptions that add no additional information just to fill out the doc: From 207bc7473d16129a83e3f4489782b6ecdf0357dc Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 5 Feb 2024 08:49:57 -0700 Subject: [PATCH 167/273] chore: update jsdoccomment and devDeps. --- package.json | 22 +- pnpm-lock.yaml | 970 +++++++++++++++++++++++++++---------------------- 2 files changed, 556 insertions(+), 436 deletions(-) diff --git a/package.json b/package.json index a0aea9cf8..23774a3ec 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "url": "http://gajus.com" }, "dependencies": { - "@es-joy/jsdoccomment": "~0.41.0", + "@es-joy/jsdoccomment": "~0.42.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.3.4", @@ -17,13 +17,13 @@ }, "description": "JSDoc linting rules for ESLint.", "devDependencies": { - "@babel/cli": "^7.23.4", - "@babel/core": "^7.23.7", - "@babel/eslint-parser": "^7.23.3", - "@babel/node": "^7.22.19", + "@babel/cli": "^7.23.9", + "@babel/core": "^7.23.9", + "@babel/eslint-parser": "^7.23.10", + "@babel/node": "^7.23.9", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-transform-flow-strip-types": "^7.23.3", - "@babel/preset-env": "^7.23.8", + "@babel/preset-env": "^7.23.9", "@es-joy/escodegen": "^3.5.1", "@es-joy/jsdoc-eslint-parser": "^0.21.1", "@hkdobrev/run-if-changed": "^0.3.1", @@ -38,10 +38,10 @@ "@types/json-schema": "^7.0.15", "@types/lodash.defaultsdeep": "^4.6.9", "@types/mocha": "^10.0.6", - "@types/node": "^20.11.6", + "@types/node": "^20.11.16", "@types/semver": "^7.5.6", "@types/spdx-expression-parse": "^3.0.5", - "@typescript-eslint/parser": "^6.19.1", + "@typescript-eslint/parser": "^6.20.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "c8": "^9.1.0", @@ -51,14 +51,14 @@ "decamelize": "^5.0.1", "eslint": "9.0.0-alpha.0", "eslint-config-canonical": "~42.8.1", - "espree": "^9.6.1", + "espree": "^10.0.0", "gitdown": "^3.1.5", "glob": "^10.3.10", "globals": "^13.24.0", - "husky": "^8.0.3", + "husky": "^9.0.10", "jsdoc-type-pratt-parser": "^4.0.0", "json-schema": "^0.4.0", - "lint-staged": "^15.2.0", + "lint-staged": "^15.2.2", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.2.0", "open-editor": "^3.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 731cbdb26..7283ac40c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,8 +6,8 @@ settings: dependencies: '@es-joy/jsdoccomment': - specifier: ~0.41.0 - version: 0.41.0 + specifier: ~0.42.0 + version: 0.42.0 are-docs-informative: specifier: ^0.0.2 version: 0.0.2 @@ -35,26 +35,26 @@ dependencies: devDependencies: '@babel/cli': - specifier: ^7.23.4 - version: 7.23.4(@babel/core@7.23.7) + specifier: ^7.23.9 + version: 7.23.9(@babel/core@7.23.9) '@babel/core': - specifier: ^7.23.7 - version: 7.23.7 + specifier: ^7.23.9 + version: 7.23.9 '@babel/eslint-parser': - specifier: ^7.23.3 - version: 7.23.3(@babel/core@7.23.7)(eslint@9.0.0-alpha.0) + specifier: ^7.23.10 + version: 7.23.10(@babel/core@7.23.9)(eslint@9.0.0-alpha.0) '@babel/node': - specifier: ^7.22.19 - version: 7.22.19(@babel/core@7.23.7) + specifier: ^7.23.9 + version: 7.23.9(@babel/core@7.23.9) '@babel/plugin-syntax-class-properties': specifier: ^7.12.13 - version: 7.12.13(@babel/core@7.23.7) + version: 7.12.13(@babel/core@7.23.9) '@babel/plugin-transform-flow-strip-types': specifier: ^7.23.3 - version: 7.23.3(@babel/core@7.23.7) + version: 7.23.3(@babel/core@7.23.9) '@babel/preset-env': - specifier: ^7.23.8 - version: 7.23.8(@babel/core@7.23.7) + specifier: ^7.23.9 + version: 7.23.9(@babel/core@7.23.9) '@es-joy/escodegen': specifier: ^3.5.1 version: 3.5.1 @@ -98,8 +98,8 @@ devDependencies: specifier: ^10.0.6 version: 10.0.6 '@types/node': - specifier: ^20.11.6 - version: 20.11.6 + specifier: ^20.11.16 + version: 20.11.16 '@types/semver': specifier: ^7.5.6 version: 7.5.6 @@ -107,8 +107,8 @@ devDependencies: specifier: ^3.0.5 version: 3.0.5 '@typescript-eslint/parser': - specifier: ^6.19.1 - version: 6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) + specifier: ^6.20.0 + version: 6.20.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -135,10 +135,10 @@ devDependencies: version: 9.0.0-alpha.0 eslint-config-canonical: specifier: ~42.8.1 - version: 42.8.1(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.2)(@types/node@20.11.6)(eslint@9.0.0-alpha.0)(graphql@16.8.1)(typescript@5.3.3) + version: 42.8.1(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.2)(@types/node@20.11.16)(eslint@9.0.0-alpha.0)(graphql@16.8.1)(typescript@5.3.3) espree: - specifier: ^9.6.1 - version: 9.6.1 + specifier: ^10.0.0 + version: 10.0.0 gitdown: specifier: ^3.1.5 version: 3.1.5 @@ -149,8 +149,8 @@ devDependencies: specifier: ^13.24.0 version: 13.24.0 husky: - specifier: ^8.0.3 - version: 8.0.3 + specifier: ^9.0.10 + version: 9.0.10 jsdoc-type-pratt-parser: specifier: ^4.0.0 version: 4.0.0 @@ -158,8 +158,8 @@ devDependencies: specifier: ^0.4.0 version: 0.4.0 lint-staged: - specifier: ^15.2.0 - version: 15.2.0 + specifier: ^15.2.2 + version: 15.2.2 lodash.defaultsdeep: specifier: ^4.6.1 version: 4.6.1 @@ -206,14 +206,14 @@ packages: - encoding dev: true - /@babel/cli@7.23.4(@babel/core@7.23.7): - resolution: {integrity: sha512-j3luA9xGKCXVyCa5R7lJvOMM+Kc2JEnAEIgz2ggtjQ/j5YUVgfsg/WsG95bbsgq7YLHuiCOzMnoSasuY16qiCw==} + /@babel/cli@7.23.9(@babel/core@7.23.9): + resolution: {integrity: sha512-vB1UXmGDNEhcf1jNAHKT9IlYk1R+hehVTLFlCLHBi8gfuHQGP6uRjgXVYU0EVlI/qwAWpstqkBdf2aez3/z/5Q==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@jridgewell/trace-mapping': 0.3.20 commander: 4.1.1 convert-source-map: 2.0.0 @@ -239,20 +239,20 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.23.7: - resolution: {integrity: sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==} + /@babel/core@7.23.9: + resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.23.5 '@babel/generator': 7.23.6 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) - '@babel/helpers': 7.23.7 - '@babel/parser': 7.23.6 - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.7 - '@babel/types': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) + '@babel/helpers': 7.23.9 + '@babel/parser': 7.23.9 + '@babel/template': 7.23.9 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 convert-source-map: 2.0.0 debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 @@ -262,42 +262,42 @@ packages: - supports-color dev: true - /@babel/eslint-parser@7.23.3(@babel/core@7.23.7)(eslint@8.56.0): - resolution: {integrity: sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==} + /@babel/eslint-parser@7.23.10(@babel/core@7.23.9)(eslint@8.56.0): + resolution: {integrity: sha512-3wSYDPZVnhseRnxRJH6ZVTNknBz76AEnyC+AYYhasjP3Yy23qz0ERR7Fcd2SHmYuSFJ2kY9gaaDd3vyqU09eSw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 eslint: 8.56.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true - /@babel/eslint-parser@7.23.3(@babel/core@7.23.7)(eslint@9.0.0-alpha.0): - resolution: {integrity: sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==} + /@babel/eslint-parser@7.23.10(@babel/core@7.23.9)(eslint@9.0.0-alpha.0): + resolution: {integrity: sha512-3wSYDPZVnhseRnxRJH6ZVTNknBz76AEnyC+AYYhasjP3Yy23qz0ERR7Fcd2SHmYuSFJ2kY9gaaDd3vyqU09eSw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 eslint: 9.0.0-alpha.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true - /@babel/eslint-plugin@7.23.5(@babel/eslint-parser@7.23.3)(eslint@9.0.0-alpha.0): + /@babel/eslint-plugin@7.23.5(@babel/eslint-parser@7.23.10)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-03+E/58Hoo/ui69gR+beFdGpplpoVK0BSIdke2iw4/Bz7eGN0ssRenNlnU4nmbkowNQOPCStKSwFr8H6DiY49g==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/eslint-parser': 7.23.3(@babel/core@7.23.7)(eslint@9.0.0-alpha.0) + '@babel/eslint-parser': 7.23.10(@babel/core@7.23.9)(eslint@9.0.0-alpha.0) eslint: 9.0.0-alpha.0 eslint-rule-composer: 0.3.0 dev: true @@ -306,7 +306,7 @@ packages: resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.23.9 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 jsesc: 2.5.2 @@ -337,42 +337,42 @@ packages: semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.23.6(@babel/core@7.23.7): + /@babel/helper-create-class-features-plugin@7.23.6(@babel/core@7.23.9): resolution: {integrity: sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.7): + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.9): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.7): - resolution: {integrity: sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==} + /@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.23.9): + resolution: {integrity: sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4(supports-color@8.1.1) @@ -391,15 +391,15 @@ packages: resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.6 + '@babel/template': 7.23.9 + '@babel/types': 7.23.9 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.23.9 dev: true /@babel/helper-member-expression-to-functions@7.23.0: @@ -413,16 +413,16 @@ packages: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.23.9 dev: true - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.7): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -442,25 +442,25 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.7): + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.9): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 dev: true - /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.7): + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.9): resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 @@ -470,7 +470,7 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.23.9 dev: true /@babel/helper-skip-transparent-expression-wrappers@7.22.5: @@ -484,7 +484,7 @@ packages: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.23.9 dev: true /@babel/helper-string-parser@7.23.4: @@ -511,13 +511,13 @@ packages: '@babel/types': 7.23.6 dev: true - /@babel/helpers@7.23.7: - resolution: {integrity: sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==} + /@babel/helpers@7.23.9: + resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.7 - '@babel/types': 7.23.6 + '@babel/template': 7.23.9 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 transitivePeerDependencies: - supports-color dev: true @@ -531,15 +531,15 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/node@7.22.19(@babel/core@7.23.7): - resolution: {integrity: sha512-VsKSO9aEHdO16NdtqkJfrXZ9Sxlna1BVnBbToWr1KGdI3cyIk6KqOoa8mWvpK280lJDOwJqxvnl994KmLhq1Yw==} + /@babel/node@7.23.9(@babel/core@7.23.9): + resolution: {integrity: sha512-/d4ju/POwlGIJlZ+NqWH1qu61wt6ZlTZZZutrK2MOSdaH1JCh726nLw/GSvAjG+LTY6CO9SsB8uWcttnFKm6yg==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/register': 7.23.7(@babel/core@7.23.7) + '@babel/core': 7.23.9 + '@babel/register': 7.23.7(@babel/core@7.23.9) commander: 4.1.1 core-js: 3.34.0 node-environment-flags: 1.0.6 @@ -555,903 +555,911 @@ packages: '@babel/types': 7.23.6 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.7): + /@babel/parser@7.23.9: + resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.7): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.9) dev: true - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.7): + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.9): resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.7): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.7): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.9): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.7): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.9): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.7): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.9): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.7): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.7): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.7): + /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.7): + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.7): + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.7): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.9): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.7): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.7): + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.7): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.9): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.7): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.7): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.9): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.7): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.7): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.7): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.7): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.9): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.7): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.9): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.7): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.9): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-generator-functions@7.23.7(@babel/core@7.23.7): - resolution: {integrity: sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==} + /@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.23.9): + resolution: {integrity: sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.7): + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.7) + '@babel/core': 7.23.9 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.7): + /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.7) + '@babel/core': 7.23.9 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-classes@7.23.8(@babel/core@7.23.7): + /@babel/plugin-transform-classes@7.23.8(@babel/core@7.23.9): resolution: {integrity: sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.15 dev: true - /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.7): + /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.7): + /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.7): + /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.9): resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.7): + /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.7): + /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/core': 7.23.9 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/core': 7.23.9 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} + /@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.23.9): + resolution: {integrity: sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/core': 7.23.9 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.7): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.9): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.7): + /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.7): + /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.7): + /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.7): + /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.7): + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.7) + '@babel/core': 7.23.9 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.7): + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.7) + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.23.7): + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9) '@babel/types': 7.23.6 dev: true - /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.23.8(@babel/core@7.23.7): - resolution: {integrity: sha512-lFlpmkApLkEP6woIKprO6DO60RImpatTQKtz4sUcDjVcK8M8mQ4sZsuxaTMNOZf0sqAq/ReYW1ZBHnOQwKpLWA==} + /@babel/preset-env@7.23.9(@babel/core@7.23.9): + resolution: {integrity: sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.7) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.7) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.7) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.7) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.7) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-async-generator-functions': 7.23.7(@babel/core@7.23.7) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.23.7) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.7) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.7) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.7) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.7) - babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.7) - babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.7) - babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.7) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.9) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.9) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.9) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.9) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-async-generator-functions': 7.23.9(@babel/core@7.23.9) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.23.9) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.9) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-systemjs': 7.23.9(@babel/core@7.23.9) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.9) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.9) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.9) + babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.23.9) + babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.23.9) + babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.23.9) core-js-compat: 3.34.0 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.7): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.9): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 '@babel/types': 7.23.6 esutils: 2.0.3 dev: true - /@babel/register@7.23.7(@babel/core@7.23.7): + /@babel/register@7.23.7(@babel/core@7.23.9): resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -1487,6 +1495,15 @@ packages: '@babel/types': 7.23.6 dev: true + /@babel/template@7.23.9: + resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 + dev: true + /@babel/traverse@7.23.7: resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==} engines: {node: '>=6.9.0'} @@ -1505,6 +1522,24 @@ packages: - supports-color dev: true + /@babel/traverse@7.23.9: + resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 + debug: 4.3.4(supports-color@8.1.1) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/types@7.23.6: resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} engines: {node: '>=6.9.0'} @@ -1514,6 +1549,15 @@ packages: to-fast-properties: 2.0.0 dev: true + /@babel/types@7.23.9: + resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + /@bcoe/v8-coverage@0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true @@ -1547,10 +1591,10 @@ packages: resolution: {integrity: sha512-SZopkdH2PHgdr/tMa32m/74cLzHPXuBqyTqoODA3ExlHC3u47Fy/5wBacoA+6uOnjwVP4tVDi2gtqS4vX+6F7g==} engines: {node: '>=18.0.0'} dependencies: - '@babel/core': 7.23.7 - '@babel/eslint-parser': 7.23.3(@babel/core@7.23.7)(eslint@8.56.0) + '@babel/core': 7.23.9 + '@babel/eslint-parser': 7.23.10(@babel/core@7.23.9)(eslint@8.56.0) '@es-joy/jsdoccomment': 0.41.0 - '@typescript-eslint/parser': 6.19.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 esquery: 1.5.0 typescript: 5.3.3 @@ -1565,6 +1609,16 @@ packages: comment-parser: 1.4.1 esquery: 1.5.0 jsdoc-type-pratt-parser: 4.0.0 + dev: true + + /@es-joy/jsdoccomment@0.42.0: + resolution: {integrity: sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==} + engines: {node: '>=16'} + dependencies: + comment-parser: 1.4.1 + esquery: 1.5.0 + jsdoc-type-pratt-parser: 4.0.0 + dev: false /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} @@ -1635,21 +1689,21 @@ packages: engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.7)(@types/node@20.11.6)(graphql@16.8.1): + /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.9)(@types/node@20.11.16)(graphql@16.8.1): resolution: {integrity: sha512-RbwVlz1gcYG62sECR1u0XqMh8w5e5XMCCZoMvPQ3nJzEBCTfXLGX727GBoRmSvY1x4gJmqNZ1lsOX7lZY14RIw==} engines: {node: '>=12'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: '@babel/code-frame': 7.23.5 - '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.23.7)(graphql@16.8.1) - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.7)(graphql@16.8.1) + '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.23.9)(graphql@16.8.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.9)(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) chalk: 4.1.2 debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.3.2 graphql: 16.8.1 - graphql-config: 4.5.0(@types/node@20.11.6)(graphql@16.8.1) + graphql-config: 4.5.0(@types/node@20.11.16)(graphql@16.8.1) graphql-depth-limit: 1.1.0(graphql@16.8.1) lodash.lowercase: 4.3.0 tslib: 2.6.2 @@ -1675,12 +1729,12 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.23.7)(graphql@16.8.1): + /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.23.9)(graphql@16.8.1): resolution: {integrity: sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.7)(graphql@16.8.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.9)(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) globby: 11.1.0 graphql: 16.8.1 @@ -1724,7 +1778,7 @@ packages: - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.10(@types/node@20.11.6)(graphql@16.8.1): + /@graphql-tools/executor-http@0.1.10(@types/node@20.11.16)(graphql@16.8.1): resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1735,7 +1789,7 @@ packages: dset: 3.1.3 extract-files: 11.0.0 graphql: 16.8.1 - meros: 1.3.0(@types/node@20.11.6) + meros: 1.3.0(@types/node@20.11.16) tslib: 2.6.2 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -1784,13 +1838,13 @@ packages: unixify: 1.0.0 dev: true - /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.23.7)(graphql@16.8.1): + /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.23.9)(graphql@16.8.1): resolution: {integrity: sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: '@babel/parser': 7.23.6 - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.9) '@babel/traverse': 7.23.7 '@babel/types': 7.23.6 '@graphql-tools/utils': 9.2.1(graphql@16.8.1) @@ -1858,7 +1912,7 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.11.6)(graphql@16.8.1): + /@graphql-tools/url-loader@7.17.18(@types/node@20.11.16)(graphql@16.8.1): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1866,7 +1920,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@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.11.6)(graphql@16.8.1) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.11.16)(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) @@ -2393,8 +2447,8 @@ packages: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} dev: true - /@types/node@20.11.6: - resolution: {integrity: sha512-+EOokTnksGVgip2PbYbr3xnR7kZigh4LbybAfBAw5BpnQ+FqBYUsvCEjYd70IXKlbohQ64mzEYmMtlWUY8q//Q==} + /@types/node@20.11.16: + resolution: {integrity: sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==} dependencies: undici-types: 5.26.5 dev: true @@ -2414,10 +2468,10 @@ packages: /@types/ws@8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 20.11.6 + '@types/node': 20.11.16 dev: true - /@typescript-eslint/eslint-plugin@6.19.1(@typescript-eslint/parser@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /@typescript-eslint/eslint-plugin@6.19.1(@typescript-eslint/parser@6.20.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-roQScUGFruWod9CEyoV5KlCYrubC/fvG8/1zXuT0WTcxX87GnMMmnksMwSg99lo1xiKrBzw2icsJPMAw1OtKxg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2429,7 +2483,7 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.20.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': 6.19.1 '@typescript-eslint/type-utils': 6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) @@ -2459,8 +2513,8 @@ packages: - typescript dev: true - /@typescript-eslint/parser@6.19.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-WEfX22ziAh6pRE9jnbkkLGp/4RhTpffr2ZK5bJ18M8mIfA8A+k97U9ZyaXCEJRlmMHh7R9MJZWXp/r73DzINVQ==} + /@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2469,10 +2523,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.19.1 - '@typescript-eslint/types': 6.19.1 - '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.19.1 + '@typescript-eslint/scope-manager': 6.20.0 + '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.20.0 debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 typescript: 5.3.3 @@ -2480,8 +2534,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3): - resolution: {integrity: sha512-WEfX22ziAh6pRE9jnbkkLGp/4RhTpffr2ZK5bJ18M8mIfA8A+k97U9ZyaXCEJRlmMHh7R9MJZWXp/r73DzINVQ==} + /@typescript-eslint/parser@6.20.0(eslint@9.0.0-alpha.0)(typescript@5.3.3): + resolution: {integrity: sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2490,10 +2544,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.19.1 - '@typescript-eslint/types': 6.19.1 - '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.19.1 + '@typescript-eslint/scope-manager': 6.20.0 + '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.20.0 debug: 4.3.4(supports-color@8.1.1) eslint: 9.0.0-alpha.0 typescript: 5.3.3 @@ -2525,6 +2579,14 @@ packages: '@typescript-eslint/visitor-keys': 6.19.1 dev: true + /@typescript-eslint/scope-manager@6.20.0: + resolution: {integrity: sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/visitor-keys': 6.20.0 + dev: true + /@typescript-eslint/type-utils@6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-0vdyld3ecfxJuddDjACUvlAeYNrHP/pDeQk2pWBR2ESeEzQhg52DF53AbI9QCBkYE23lgkhLCZNkHn2hEXXYIg==} engines: {node: ^16.0.0 || >=18.0.0} @@ -2560,6 +2622,11 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true + /@typescript-eslint/types@6.20.0: + resolution: {integrity: sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2625,6 +2692,28 @@ packages: - supports-color dev: true + /@typescript-eslint/typescript-estree@6.20.0(typescript@5.3.3): + resolution: {integrity: sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/visitor-keys': 6.20.0 + debug: 4.3.4(supports-color@8.1.1) + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/utils@5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2707,6 +2796,14 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@typescript-eslint/visitor-keys@6.20.0: + resolution: {integrity: sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.20.0 + eslint-visitor-keys: 3.4.3 + dev: true + /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true @@ -2762,6 +2859,14 @@ packages: acorn: 8.11.2 dev: true + /acorn-jsx@5.3.2(acorn@8.11.3): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.11.3 + dev: true + /acorn@2.7.0: resolution: {integrity: sha512-pXK8ez/pVjqFdAgBkF1YPVRacuLQ9EXBKaKWaeh58WNfMkCmZhOZzu+NtKSPD5PHmCCHheQ5cD29qM1K4QTxIg==} engines: {node: '>=0.4.0'} @@ -2774,6 +2879,12 @@ packages: hasBin: true dev: true + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /agent-base@7.1.0: resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} engines: {node: '>= 14'} @@ -3099,38 +3210,38 @@ packages: - supports-color dev: true - /babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.23.7): - resolution: {integrity: sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==} + /babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.23.9): + resolution: {integrity: sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.7 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) + '@babel/core': 7.23.9 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.7): - resolution: {integrity: sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==} + /babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.23.9): + resolution: {integrity: sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) + '@babel/core': 7.23.9 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) core-js-compat: 3.34.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.23.7): - resolution: {integrity: sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==} + /babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.23.9): + resolution: {integrity: sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) + '@babel/core': 7.23.9 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) transitivePeerDependencies: - supports-color dev: true @@ -4239,31 +4350,31 @@ packages: eslint: 9.0.0-alpha.0 dev: true - /eslint-config-canonical@42.8.1(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.2)(@types/node@20.11.6)(eslint@9.0.0-alpha.0)(graphql@16.8.1)(typescript@5.3.3): + /eslint-config-canonical@42.8.1(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.2)(@types/node@20.11.16)(eslint@9.0.0-alpha.0)(graphql@16.8.1)(typescript@5.3.3): resolution: {integrity: sha512-OsQD1TQJAVUH/tnLwumPyKFnB+wcZLIwIUJ73rLupvgD9XzinBaDf8ZAz1cPIkG/Fej3SgKvHWiPSFAp2Nd27w==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 dependencies: - '@babel/core': 7.23.7 - '@babel/eslint-parser': 7.23.3(@babel/core@7.23.7)(eslint@9.0.0-alpha.0) - '@babel/eslint-plugin': 7.23.5(@babel/eslint-parser@7.23.3)(eslint@9.0.0-alpha.0) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.7) - '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.7)(@types/node@20.11.6)(graphql@16.8.1) + '@babel/core': 7.23.9 + '@babel/eslint-parser': 7.23.10(@babel/core@7.23.9)(eslint@9.0.0-alpha.0) + '@babel/eslint-plugin': 7.23.5(@babel/eslint-parser@7.23.10)(eslint@9.0.0-alpha.0) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.9) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.9)(@types/node@20.11.16)(graphql@16.8.1) '@next/eslint-plugin-next': 13.5.6 '@rushstack/eslint-patch': 1.6.1 - '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.20.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.20.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint: 9.0.0-alpha.0 eslint-config-prettier: 9.1.0(eslint@9.0.0-alpha.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.19.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.20.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) eslint-plugin-ava: 14.0.0(eslint@9.0.0-alpha.0) - eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@6.19.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@6.20.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint-plugin-cypress: 2.15.1(eslint@9.0.0-alpha.0) eslint-plugin-eslint-comments: 3.2.0(eslint@9.0.0-alpha.0) eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@9.0.0-alpha.0) eslint-plugin-fp: 2.3.0(eslint@9.0.0-alpha.0) - eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint-plugin-jsdoc: 46.9.1(eslint@9.0.0-alpha.0) eslint-plugin-jsonc: 2.11.2(eslint@9.0.0-alpha.0) @@ -4278,7 +4389,7 @@ packages: eslint-plugin-react-hooks: 4.6.0(eslint@9.0.0-alpha.0) eslint-plugin-regexp: 1.15.0(eslint@9.0.0-alpha.0) eslint-plugin-simple-import-sort: 10.0.0(eslint@9.0.0-alpha.0) - eslint-plugin-typescript-sort-keys: 3.1.0(@typescript-eslint/parser@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint-plugin-typescript-sort-keys: 3.1.0(@typescript-eslint/parser@6.20.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint-plugin-unicorn: 48.0.1(eslint@9.0.0-alpha.0) eslint-plugin-vitest: 0.3.20(@typescript-eslint/eslint-plugin@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint-plugin-yml: 1.11.0(eslint@9.0.0-alpha.0) @@ -4323,7 +4434,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.19.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.20.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4333,8 +4444,8 @@ packages: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 eslint: 9.0.0-alpha.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) - eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) fast-glob: 3.3.2 get-tsconfig: 4.7.2 is-core-module: 2.13.1 @@ -4346,7 +4457,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4367,11 +4478,11 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.20.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) debug: 3.2.7 eslint: 9.0.0-alpha.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.19.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.20.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) transitivePeerDependencies: - supports-color dev: true @@ -4393,15 +4504,15 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@6.19.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@6.20.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-0Egc0FKOnCRdu3bFEJhfHkdkusIgW0UxdemukkowZQnQsnf12FHSJ7K26b+tZ5pKB7cTyECSaqvEpoIJfplX4g==} engines: {node: '>=16.0.0'} dependencies: '@typescript-eslint/utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) chance: 1.1.11 debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.19.1)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.20.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -4462,8 +4573,8 @@ packages: '@babel/plugin-transform-react-jsx': ^7.14.9 eslint: ^8.1.0 dependencies: - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.9) eslint: 9.0.0-alpha.0 lodash: 4.17.21 string-natural-compare: 3.0.1 @@ -4482,7 +4593,7 @@ packages: req-all: 0.1.0 dev: true - /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): + /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-ORizX37MelIWLbMyqI7hi8VJMf7A0CskMmYkB+lkCX3aF4pkGV7kwx5bSEb4qx7Yce2rAf9s34HqDRPjGRZPNQ==} engines: {node: '>=12'} peerDependencies: @@ -4492,7 +4603,7 @@ packages: doctrine: 3.0.0 eslint: 9.0.0-alpha.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) get-tsconfig: 4.7.2 is-glob: 4.0.3 minimatch: 3.1.2 @@ -4517,7 +4628,7 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.20.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) '@typescript-eslint/utils': 5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint: 9.0.0-alpha.0 transitivePeerDependencies: @@ -4722,7 +4833,7 @@ packages: eslint: 9.0.0-alpha.0 dev: true - /eslint-plugin-typescript-sort-keys@3.1.0(@typescript-eslint/parser@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /eslint-plugin-typescript-sort-keys@3.1.0(@typescript-eslint/parser@6.20.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-rgZeYfEguqKni/V7sbmgFu9/94UDAQd7YqNd0J7Qhw7SdLIGd0iBk2KgpjhRhe2ge4rPSLDIdFWwUiDqBOst6Q==} engines: {node: '>= 16'} peerDependencies: @@ -4731,7 +4842,7 @@ packages: typescript: ^3 || ^4 || ^5 dependencies: '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.20.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint: 9.0.0-alpha.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 @@ -4777,7 +4888,7 @@ packages: vitest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.20.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint: 9.0.0-alpha.0 transitivePeerDependencies: @@ -4942,6 +5053,15 @@ packages: - supports-color dev: true + /espree@10.0.0: + resolution: {integrity: sha512-gdlKrfXQWv/3vubKqeQIiBUoWeknNQVEDpKD7OD3bC53g5EKISTuhcIoA1H1e+zqIuosdKrKuTDMmj8eFfhOnA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dependencies: + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + eslint-visitor-keys: 3.4.3 + dev: true + /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5630,7 +5750,7 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql-config@4.5.0(@types/node@20.11.6)(graphql@16.8.1): + /graphql-config@4.5.0(@types/node@20.11.16)(graphql@16.8.1): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -5644,7 +5764,7 @@ packages: '@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.11.6)(graphql@16.8.1) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.11.16)(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) cosmiconfig: 8.0.0 graphql: 16.8.1 @@ -5870,9 +5990,9 @@ packages: engines: {node: '>=16.17.0'} dev: true - /husky@8.0.3: - resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} - engines: {node: '>=14'} + /husky@9.0.10: + resolution: {integrity: sha512-TQGNknoiy6bURzIO77pPRu+XHi6zI7T93rX+QnJsoYFf3xdjKOur+IlfqzJGMHIK/wXrLg+GsvMs8Op7vI2jVA==} + engines: {node: '>=18'} hasBin: true dev: true @@ -6426,7 +6546,7 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/parser': 7.23.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -6709,8 +6829,8 @@ packages: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true - /lint-staged@15.2.0: - resolution: {integrity: sha512-TFZzUEV00f+2YLaVPWBWGAMq7So6yQx+GG8YRMDeOEIf95Zn5RyiLMsEiX4KTNl9vq/w+NqRJkLA1kPIo15ufQ==} + /lint-staged@15.2.2: + resolution: {integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==} engines: {node: '>=18.12.0'} hasBin: true dependencies: @@ -6719,7 +6839,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) execa: 8.0.1 lilconfig: 3.0.0 - listr2: 8.0.0 + listr2: 8.0.1 micromatch: 4.0.5 pidtree: 0.6.0 string-argv: 0.3.2 @@ -6728,8 +6848,8 @@ packages: - supports-color dev: true - /listr2@8.0.0: - resolution: {integrity: sha512-u8cusxAcyqAiQ2RhYvV7kRKNLgUvtObIbhOX2NCXqvp1UU32xIg5CT22ykS2TPKJXZWJwtK3IKLiqAGlGNE+Zg==} + /listr2@8.0.1: + resolution: {integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==} engines: {node: '>=18.0.0'} dependencies: cli-truncate: 4.0.0 @@ -6980,7 +7100,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.3.0(@types/node@20.11.6): + /meros@1.3.0(@types/node@20.11.16): resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} engines: {node: '>=13'} peerDependencies: @@ -6989,7 +7109,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.11.6 + '@types/node': 20.11.16 dev: true /micro-spelling-correcter@1.1.1: From 5a79d3fc1d4368612d98a567739f19053f0eca3a Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 6 Feb 2024 10:04:42 -0700 Subject: [PATCH 168/273] fix(informative-docs): check named export declarations: fixes #1198 --- docs/rules/informative-docs.md | 9 +++++++++ src/rules/informativeDocs.js | 6 ++++++ test/rules/assertions/informativeDocs.js | 17 +++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/docs/rules/informative-docs.md b/docs/rules/informative-docs.md index 2d597b5df..058ba5414 100644 --- a/docs/rules/informative-docs.md +++ b/docs/rules/informative-docs.md @@ -254,6 +254,15 @@ function takesOne(param) {} let emoji; // "jsdoc/informative-docs": ["error"|"warn", {"aliases":{"emoji":["smiley","winkey"]}}] // Message: This description only repeats the name it describes. + +/** + * package name from path + */ +export function packageNameFromPath(path) { + const base = basename(path); + return /^vd+(.d+)?$/.exec(base) || /^tsd.d/.exec(base) ? basename(dirname(path)) : base; +} +// Message: This description only repeats the name it describes. ```` diff --git a/src/rules/informativeDocs.js b/src/rules/informativeDocs.js index 03bd4c4ca..8dbef5b8b 100644 --- a/src/rules/informativeDocs.js +++ b/src/rules/informativeDocs.js @@ -38,6 +38,12 @@ const getNamesFromNode = (node) => { (node.key), ), ]; + + case 'ExportNamedDeclaration': + return getNamesFromNode( + /** @type {import('@typescript-eslint/types').TSESTree.ExportNamedDeclaration} */ + (node).declaration + ); case 'ClassDeclaration': case 'ClassExpression': case 'FunctionDeclaration': diff --git a/test/rules/assertions/informativeDocs.js b/test/rules/assertions/informativeDocs.js index 5dbb8f27e..3a1ec79f9 100644 --- a/test/rules/assertions/informativeDocs.js +++ b/test/rules/assertions/informativeDocs.js @@ -501,6 +501,23 @@ export default { }, ], }, + { + code: ` + /** + * package name from path + */ + export function packageNameFromPath(path) { + const base = basename(path); + return /^v\d+(\.\d+)?$/.exec(base) || /^ts\d\.\d/.exec(base) ? basename(dirname(path)) : base; + } + `, + errors: [ + { + line: 2, + message: 'This description only repeats the name it describes.', + }, + ], + } ], valid: [ { From 6fcb47fa75278f761ac183d305e98c0221ff647c Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 6 Feb 2024 10:05:39 -0700 Subject: [PATCH 169/273] chore: update semver and devDeps. --- package.json | 4 +- pnpm-lock.yaml | 156 ++++++++++++++++++++++++------------------------- 2 files changed, 80 insertions(+), 80 deletions(-) diff --git a/package.json b/package.json index 23774a3ec..13600b14a 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", "is-builtin-module": "^3.2.1", - "semver": "^7.5.4", + "semver": "^7.6.0", "spdx-expression-parse": "^4.0.0" }, "description": "JSDoc linting rules for ESLint.", @@ -41,7 +41,7 @@ "@types/node": "^20.11.16", "@types/semver": "^7.5.6", "@types/spdx-expression-parse": "^3.0.5", - "@typescript-eslint/parser": "^6.20.0", + "@typescript-eslint/parser": "^6.21.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "c8": "^9.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7283ac40c..29973a040 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,8 +27,8 @@ dependencies: specifier: ^3.2.1 version: 3.2.1 semver: - specifier: ^7.5.4 - version: 7.5.4 + specifier: ^7.6.0 + version: 7.6.0 spdx-expression-parse: specifier: ^4.0.0 version: 4.0.0 @@ -107,8 +107,8 @@ devDependencies: specifier: ^3.0.5 version: 3.0.5 '@typescript-eslint/parser': - specifier: ^6.20.0 - version: 6.20.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + specifier: ^6.21.0 + version: 6.21.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -1233,7 +1233,7 @@ packages: '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9) - '@babel/types': 7.23.6 + '@babel/types': 7.23.9 dev: true /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.9): @@ -1594,7 +1594,7 @@ packages: '@babel/core': 7.23.9 '@babel/eslint-parser': 7.23.10(@babel/core@7.23.9)(eslint@8.56.0) '@es-joy/jsdoccomment': 0.41.0 - '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 esquery: 1.5.0 typescript: 5.3.3 @@ -2116,7 +2116,7 @@ packages: resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - semver: 7.5.4 + semver: 7.6.0 dev: true /@octokit/auth-token@4.0.0: @@ -2355,7 +2355,7 @@ packages: read-pkg: 9.0.1 registry-auth-token: 5.0.2 semantic-release: 23.0.0(typescript@5.3.3) - semver: 7.5.4 + semver: 7.6.0 tempy: 3.1.0 dev: true @@ -2471,7 +2471,7 @@ packages: '@types/node': 20.11.16 dev: true - /@typescript-eslint/eslint-plugin@6.19.1(@typescript-eslint/parser@6.20.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /@typescript-eslint/eslint-plugin@6.19.1(@typescript-eslint/parser@6.21.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-roQScUGFruWod9CEyoV5KlCYrubC/fvG8/1zXuT0WTcxX87GnMMmnksMwSg99lo1xiKrBzw2icsJPMAw1OtKxg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2483,7 +2483,7 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.20.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': 6.19.1 '@typescript-eslint/type-utils': 6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) @@ -2493,7 +2493,7 @@ packages: graphemer: 1.4.0 ignore: 5.3.0 natural-compare: 1.4.0 - semver: 7.5.4 + semver: 7.6.0 ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: @@ -2513,8 +2513,8 @@ packages: - typescript dev: true - /@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==} + /@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2523,10 +2523,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.20.0 + '@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/visitor-keys': 6.21.0 debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 typescript: 5.3.3 @@ -2534,8 +2534,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.20.0(eslint@9.0.0-alpha.0)(typescript@5.3.3): - resolution: {integrity: sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==} + /@typescript-eslint/parser@6.21.0(eslint@9.0.0-alpha.0)(typescript@5.3.3): + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2544,10 +2544,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.20.0 + '@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/visitor-keys': 6.21.0 debug: 4.3.4(supports-color@8.1.1) eslint: 9.0.0-alpha.0 typescript: 5.3.3 @@ -2579,12 +2579,12 @@ packages: '@typescript-eslint/visitor-keys': 6.19.1 dev: true - /@typescript-eslint/scope-manager@6.20.0: - resolution: {integrity: sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==} + /@typescript-eslint/scope-manager@6.21.0: + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 dev: true /@typescript-eslint/type-utils@6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3): @@ -2622,8 +2622,8 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@6.20.0: - resolution: {integrity: sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==} + /@typescript-eslint/types@6.21.0: + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -2641,7 +2641,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.4 + semver: 7.6.0 tsutils: 3.21.0(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: @@ -2663,7 +2663,7 @@ packages: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.5.4 + semver: 7.6.0 ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: @@ -2685,15 +2685,15 @@ packages: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.5.4 + semver: 7.6.0 ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.20.0(typescript@5.3.3): - resolution: {integrity: sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==} + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2701,13 +2701,13 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.5.4 + semver: 7.6.0 ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: @@ -2728,7 +2728,7 @@ packages: '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) eslint: 9.0.0-alpha.0 eslint-scope: 5.1.1 - semver: 7.5.4 + semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript @@ -2747,7 +2747,7 @@ packages: '@typescript-eslint/types': 6.16.0 '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) eslint: 9.0.0-alpha.0 - semver: 7.5.4 + semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript @@ -2766,7 +2766,7 @@ packages: '@typescript-eslint/types': 6.19.1 '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) eslint: 9.0.0-alpha.0 - semver: 7.5.4 + semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript @@ -2796,11 +2796,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.20.0: - resolution: {integrity: sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==} + /@typescript-eslint/visitor-keys@6.21.0: + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 dev: true @@ -3364,7 +3364,7 @@ packages: /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: - semver: 7.5.4 + semver: 7.6.0 dev: true /busboy@1.6.0: @@ -3752,7 +3752,7 @@ packages: handlebars: 4.7.8 json-stringify-safe: 5.0.1 meow: 12.1.1 - semver: 7.5.4 + semver: 7.6.0 split2: 4.2.0 dev: true @@ -4363,18 +4363,18 @@ packages: '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.9)(@types/node@20.11.16)(graphql@16.8.1) '@next/eslint-plugin-next': 13.5.6 '@rushstack/eslint-patch': 1.6.1 - '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.20.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.20.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.21.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint: 9.0.0-alpha.0 eslint-config-prettier: 9.1.0(eslint@9.0.0-alpha.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.20.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) eslint-plugin-ava: 14.0.0(eslint@9.0.0-alpha.0) - eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@6.20.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint-plugin-cypress: 2.15.1(eslint@9.0.0-alpha.0) eslint-plugin-eslint-comments: 3.2.0(eslint@9.0.0-alpha.0) eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@9.0.0-alpha.0) eslint-plugin-fp: 2.3.0(eslint@9.0.0-alpha.0) - eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint-plugin-jsdoc: 46.9.1(eslint@9.0.0-alpha.0) eslint-plugin-jsonc: 2.11.2(eslint@9.0.0-alpha.0) @@ -4389,7 +4389,7 @@ packages: eslint-plugin-react-hooks: 4.6.0(eslint@9.0.0-alpha.0) eslint-plugin-regexp: 1.15.0(eslint@9.0.0-alpha.0) eslint-plugin-simple-import-sort: 10.0.0(eslint@9.0.0-alpha.0) - eslint-plugin-typescript-sort-keys: 3.1.0(@typescript-eslint/parser@6.20.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + eslint-plugin-typescript-sort-keys: 3.1.0(@typescript-eslint/parser@6.21.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint-plugin-unicorn: 48.0.1(eslint@9.0.0-alpha.0) eslint-plugin-vitest: 0.3.20(@typescript-eslint/eslint-plugin@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint-plugin-yml: 1.11.0(eslint@9.0.0-alpha.0) @@ -4434,7 +4434,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.20.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4444,8 +4444,8 @@ packages: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 eslint: 9.0.0-alpha.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) - eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) fast-glob: 3.3.2 get-tsconfig: 4.7.2 is-core-module: 2.13.1 @@ -4457,7 +4457,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4478,11 +4478,11 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.20.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) debug: 3.2.7 eslint: 9.0.0-alpha.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.20.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) transitivePeerDependencies: - supports-color dev: true @@ -4504,15 +4504,15 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@6.20.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-0Egc0FKOnCRdu3bFEJhfHkdkusIgW0UxdemukkowZQnQsnf12FHSJ7K26b+tZ5pKB7cTyECSaqvEpoIJfplX4g==} engines: {node: '>=16.0.0'} dependencies: '@typescript-eslint/utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) chance: 1.1.11 debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.20.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -4593,7 +4593,7 @@ packages: req-all: 0.1.0 dev: true - /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): + /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): resolution: {integrity: sha512-ORizX37MelIWLbMyqI7hi8VJMf7A0CskMmYkB+lkCX3aF4pkGV7kwx5bSEb4qx7Yce2rAf9s34HqDRPjGRZPNQ==} engines: {node: '>=12'} peerDependencies: @@ -4603,11 +4603,11 @@ packages: doctrine: 3.0.0 eslint: 9.0.0-alpha.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) get-tsconfig: 4.7.2 is-glob: 4.0.3 minimatch: 3.1.2 - semver: 7.5.4 + semver: 7.6.0 transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-typescript @@ -4628,7 +4628,7 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.20.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.21.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) '@typescript-eslint/utils': 5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint: 9.0.0-alpha.0 transitivePeerDependencies: @@ -4650,7 +4650,7 @@ packages: eslint: 9.0.0-alpha.0 esquery: 1.5.0 is-builtin-module: 3.2.1 - semver: 7.5.4 + semver: 7.6.0 spdx-expression-parse: 4.0.0 transitivePeerDependencies: - supports-color @@ -4740,7 +4740,7 @@ packages: is-core-module: 2.13.1 minimatch: 3.1.2 resolve: 1.22.8 - semver: 7.5.4 + semver: 7.6.0 dev: true /eslint-plugin-prettier@5.1.2(@types/eslint@8.56.2)(eslint-config-prettier@9.1.0)(eslint@9.0.0-alpha.0)(prettier@3.1.1): @@ -4833,7 +4833,7 @@ packages: eslint: 9.0.0-alpha.0 dev: true - /eslint-plugin-typescript-sort-keys@3.1.0(@typescript-eslint/parser@6.20.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /eslint-plugin-typescript-sort-keys@3.1.0(@typescript-eslint/parser@6.21.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3): resolution: {integrity: sha512-rgZeYfEguqKni/V7sbmgFu9/94UDAQd7YqNd0J7Qhw7SdLIGd0iBk2KgpjhRhe2ge4rPSLDIdFWwUiDqBOst6Q==} engines: {node: '>= 16'} peerDependencies: @@ -4842,7 +4842,7 @@ packages: typescript: ^3 || ^4 || ^5 dependencies: '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.20.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint: 9.0.0-alpha.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 @@ -4871,7 +4871,7 @@ packages: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 regjsparser: 0.10.0 - semver: 7.5.4 + semver: 7.6.0 strip-indent: 3.0.0 dev: true @@ -4888,7 +4888,7 @@ packages: vitest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.20.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.21.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) eslint: 9.0.0-alpha.0 transitivePeerDependencies: @@ -6725,7 +6725,7 @@ packages: acorn: 8.11.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - semver: 7.5.4 + semver: 7.6.0 dev: true /jsonfile@6.1.0: @@ -7018,7 +7018,7 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: - semver: 7.5.4 + semver: 7.6.0 dev: true /make-fetch-happen@13.0.0: @@ -7431,7 +7431,7 @@ packages: make-fetch-happen: 13.0.0 nopt: 7.2.0 proc-log: 3.0.0 - semver: 7.5.4 + semver: 7.6.0 tar: 6.2.0 which: 4.0.0 transitivePeerDependencies: @@ -7465,7 +7465,7 @@ packages: dependencies: hosted-git-info: 7.0.1 is-core-module: 2.13.1 - semver: 7.5.4 + semver: 7.6.0 validate-npm-package-license: 3.0.4 dev: true @@ -8629,7 +8629,7 @@ packages: p-reduce: 3.0.0 read-pkg-up: 11.0.0 resolve-from: 5.0.0 - semver: 7.5.4 + semver: 7.6.0 semver-diff: 4.0.0 signale: 1.4.0 yargs: 17.7.2 @@ -8646,7 +8646,7 @@ packages: resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} engines: {node: '>=12'} dependencies: - semver: 7.5.4 + semver: 7.6.0 dev: true /semver-regex@4.0.5: @@ -8664,8 +8664,8 @@ packages: hasBin: true dev: true - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} engines: {node: '>=10'} hasBin: true dependencies: From e9a9b74ae49d198b2c5afcf304c5928f16867e7a Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 6 Feb 2024 10:22:28 -0700 Subject: [PATCH 170/273] fix(informative-docs): check default named declaration --- docs/rules/informative-docs.md | 9 +++++++++ src/rules/informativeDocs.js | 1 + test/rules/assertions/informativeDocs.js | 17 +++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/docs/rules/informative-docs.md b/docs/rules/informative-docs.md index 058ba5414..027d4e1fa 100644 --- a/docs/rules/informative-docs.md +++ b/docs/rules/informative-docs.md @@ -263,6 +263,15 @@ export function packageNameFromPath(path) { return /^vd+(.d+)?$/.exec(base) || /^tsd.d/.exec(base) ? basename(dirname(path)) : base; } // Message: This description only repeats the name it describes. + +/** + * package name from path + */ +export default function packageNameFromPath(path) { + const base = basename(path); + return /^vd+(.d+)?$/.exec(base) || /^tsd.d/.exec(base) ? basename(dirname(path)) : base; +} +// Message: This description only repeats the name it describes. ```` diff --git a/src/rules/informativeDocs.js b/src/rules/informativeDocs.js index 8dbef5b8b..7ccbff88a 100644 --- a/src/rules/informativeDocs.js +++ b/src/rules/informativeDocs.js @@ -39,6 +39,7 @@ const getNamesFromNode = (node) => { ), ]; + case 'ExportDefaultDeclaration': case 'ExportNamedDeclaration': return getNamesFromNode( /** @type {import('@typescript-eslint/types').TSESTree.ExportNamedDeclaration} */ diff --git a/test/rules/assertions/informativeDocs.js b/test/rules/assertions/informativeDocs.js index 3a1ec79f9..c9fa78a10 100644 --- a/test/rules/assertions/informativeDocs.js +++ b/test/rules/assertions/informativeDocs.js @@ -517,6 +517,23 @@ export default { message: 'This description only repeats the name it describes.', }, ], + }, + { + code: ` + /** + * package name from path + */ + export default function packageNameFromPath(path) { + const base = basename(path); + return /^v\d+(\.\d+)?$/.exec(base) || /^ts\d\.\d/.exec(base) ? basename(dirname(path)) : base; + } + `, + errors: [ + { + line: 2, + message: 'This description only repeats the name it describes.', + }, + ], } ], valid: [ From 37df54dc8535eaed65b4dadaca2dc072e4c7bc4e Mon Sep 17 00:00:00 2001 From: David Murdoch <187813+davidmurdoch@users.noreply.github.com> Date: Tue, 13 Feb 2024 16:32:10 -0500 Subject: [PATCH 171/273] feat(`check-line-alignment`): add `disableWrapIndent`` option --- .README/rules/check-line-alignment.md | 6 +++- docs/rules/check-line-alignment.md | 27 +++++++++++++++- src/alignTransform.js | 8 +++-- src/rules/checkLineAlignment.js | 10 +++++- test/rules/assertions/checkLineAlignment.js | 35 +++++++++++++++++++++ 5 files changed, 80 insertions(+), 6 deletions(-) diff --git a/.README/rules/check-line-alignment.md b/.README/rules/check-line-alignment.md index f5859d0d0..a45c0ce18 100644 --- a/.README/rules/check-line-alignment.md +++ b/.README/rules/check-line-alignment.md @@ -49,12 +49,16 @@ main description. If `false` or unset, will be set to a single space. The indent that will be applied for tag text after the first line. Default to the empty string (no indent). +### `disableWrapIndent` + +Disables `wrapIndent`; existing wrap indentation is preserved without changes. + ## Context and settings ||| |---|---| |Context|everywhere| -|Options|string ("always", "never", "any") followed by object with `customSpacings`, `preserveMainDescriptionPostDelimiter`, `tags`, `wrapIndent`| +|Options|string ("always", "never", "any") followed by object with `customSpacings`, `preserveMainDescriptionPostDelimiter`, `tags`, `wrapIndent`, `disableWrapIndent`| |Tags|`param`, `property`, `returns` and others added by `tags`| |Aliases|`arg`, `argument`, `prop`, `return`| |Recommended|false| diff --git a/docs/rules/check-line-alignment.md b/docs/rules/check-line-alignment.md index 0d55e9a0f..ffdf16f50 100644 --- a/docs/rules/check-line-alignment.md +++ b/docs/rules/check-line-alignment.md @@ -8,6 +8,7 @@ * [`customSpacings`](#user-content-check-line-alignment-options-customspacings) * [`preserveMainDescriptionPostDelimiter`](#user-content-check-line-alignment-options-preservemaindescriptionpostdelimiter) * [`wrapIndent`](#user-content-check-line-alignment-options-wrapindent) + * [`disableWrapIndent`](#user-content-check-line-alignment-options-disablewrapindent) * [Context and settings](#user-content-check-line-alignment-context-and-settings) * [Failing examples](#user-content-check-line-alignment-failing-examples) * [Passing examples](#user-content-check-line-alignment-passing-examples) @@ -72,6 +73,12 @@ main description. If `false` or unset, will be set to a single space. The indent that will be applied for tag text after the first line. Default to the empty string (no indent). + + +### disableWrapIndent + +Disables `wrapIndent`; existing wrap indentation is preserved without changes. + ## Context and settings @@ -79,7 +86,7 @@ Default to the empty string (no indent). ||| |---|---| |Context|everywhere| -|Options|string ("always", "never", "any") followed by object with `customSpacings`, `preserveMainDescriptionPostDelimiter`, `tags`, `wrapIndent`| +|Options|string ("always", "never", "any") followed by object with `customSpacings`, `preserveMainDescriptionPostDelimiter`, `tags`, `wrapIndent`, `disableWrapIndent`| |Tags|`param`, `property`, `returns` and others added by `tags`| |Aliases|`arg`, `argument`, `prop`, `return`| |Recommended|false| @@ -998,5 +1005,23 @@ function quux () {} * @returns {number} -1 if world transform has negative scale, 1 otherwise. */ // "jsdoc/check-line-alignment": ["error"|"warn", "never"] + +/** + * @param {string} lorem Description + * with multiple lines preserving existing indentation when wrapIndent is disabled. + */ +function quux () { +} +// "jsdoc/check-line-alignment": ["error"|"warn", "any",{"disableWrapIndent":true}] + +/** + * Function description with disableWrapIndent true, but wrapIndent defined. + * Preserves existing indentation regardless of wrapIndent value. + * + * @param {string} lorem Description + * with multiple lines. + */ +const fn = ( lorem ) => {} +// "jsdoc/check-line-alignment": ["error"|"warn", "any",{"disableWrapIndent":true,"wrapIndent":" "}] ```` diff --git a/src/alignTransform.js b/src/alignTransform.js index c12cb7eb3..46871e7d5 100644 --- a/src/alignTransform.js +++ b/src/alignTransform.js @@ -151,6 +151,7 @@ const space = (len) => { * indent: string, * preserveMainDescriptionPostDelimiter: boolean, * wrapIndent: string, + * disableWrapIndent: boolean, * }} cfg * @returns {( * block: import('comment-parser').Block @@ -162,6 +163,7 @@ const alignTransform = ({ indent, preserveMainDescriptionPostDelimiter, wrapIndent, + disableWrapIndent, }) => { let intoTags = false; /** @type {Width} */ @@ -314,7 +316,7 @@ const alignTransform = ({ // Not align. if (shouldAlign(tags, index, source)) { alignTokens(tokens, typelessInfo); - if (indentTag) { + if (!disableWrapIndent && indentTag) { tokens.postDelimiter += wrapIndent; } } @@ -340,10 +342,10 @@ const alignTransform = ({ return rewireSource({ ...fields, source: source.map((line, index) => { - const indentTag = tagIndentMode && !line.tokens.tag && line.tokens.description; + const indentTag = !disableWrapIndent && tagIndentMode && !line.tokens.tag && line.tokens.description; const ret = update(line, index, source, typelessInfo, indentTag); - if (line.tokens.tag) { + if (!disableWrapIndent && line.tokens.tag) { tagIndentMode = true; } diff --git a/src/rules/checkLineAlignment.js b/src/rules/checkLineAlignment.js index b592abd6e..1e9f80203 100644 --- a/src/rules/checkLineAlignment.js +++ b/src/rules/checkLineAlignment.js @@ -169,6 +169,7 @@ const checkNotAlignedPerTag = (utils, tag, customSpacings) => { * @param {string[]} cfg.tags * @param {import('../iterateJsdoc.js').Utils} cfg.utils * @param {string} cfg.wrapIndent + * @param {boolean} cfg.disableWrapIndent * @returns {void} */ const checkAlignment = ({ @@ -181,6 +182,7 @@ const checkAlignment = ({ tags, utils, wrapIndent, + disableWrapIndent, }) => { const transform = commentFlow( alignTransform({ @@ -189,6 +191,7 @@ const checkAlignment = ({ preserveMainDescriptionPostDelimiter, tags, wrapIndent, + disableWrapIndent, }), ); const transformedJsdoc = transform(jsdoc); @@ -228,6 +231,7 @@ export default iterateJsdoc(({ preserveMainDescriptionPostDelimiter, customSpacings, wrapIndent = '', + disableWrapIndent = false, } = context.options[1] || {}; if (context.options[0] === 'always') { @@ -253,6 +257,7 @@ export default iterateJsdoc(({ tags: applicableTags, utils, wrapIndent, + disableWrapIndent, }); return; @@ -293,7 +298,7 @@ export default iterateJsdoc(({ } // Don't include a single separating space/tab - if (tokens.postDelimiter.slice(1) !== wrapIndent) { + if (!disableWrapIndent && tokens.postDelimiter.slice(1) !== wrapIndent) { utils.reportJSDoc('Expected wrap indent', { line: tag.source[0].number + idx, }, () => { @@ -355,6 +360,9 @@ export default iterateJsdoc(({ wrapIndent: { type: 'string', }, + disableWrapIndent: { + type: 'boolean', + }, }, type: 'object', }, diff --git a/test/rules/assertions/checkLineAlignment.js b/test/rules/assertions/checkLineAlignment.js index 40adbd9e7..960193cbc 100644 --- a/test/rules/assertions/checkLineAlignment.js +++ b/test/rules/assertions/checkLineAlignment.js @@ -2182,5 +2182,40 @@ export default { 'never', ], }, + { + code: ` + /** + * @param {string} lorem Description + * with multiple lines preserving existing indentation when wrapIndent is disabled. + */ + function quux () { + } + `, + options: [ + 'any', + { + disableWrapIndent: true, + }, + ], + }, + { + code: ` + /** + * Function description with disableWrapIndent true, but wrapIndent defined. + * Preserves existing indentation regardless of wrapIndent value. + * + * @param {string} lorem Description + * with multiple lines. + */ + const fn = ( lorem ) => {} + `, + options: [ + 'any', + { + disableWrapIndent: true, + wrapIndent: ' ', + }, + ], + }, ], }; From ab893bae6aa5f05228390cb3ce4487485360cba8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Feb 2024 00:04:59 +0000 Subject: [PATCH 172/273] build(deps-dev): bump ip from 2.0.0 to 2.0.1 Bumps [ip](https://github.com/indutny/node-ip) from 2.0.0 to 2.0.1. - [Commits](https://github.com/indutny/node-ip/compare/v2.0.0...v2.0.1) --- updated-dependencies: - dependency-name: ip dependency-type: indirect ... Signed-off-by: dependabot[bot] --- pnpm-lock.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 29973a040..738682d5d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6107,8 +6107,8 @@ packages: engines: {node: '>=8'} dev: true - /ip@2.0.0: - resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} + /ip@2.0.1: + resolution: {integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==} dev: true /is-accessor-descriptor@1.0.1: @@ -8861,7 +8861,7 @@ packages: resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} dependencies: - ip: 2.0.0 + ip: 2.0.1 smart-buffer: 4.2.0 dev: true From ba642e4d1ac335aed7566ec5d822a71195e9e75f Mon Sep 17 00:00:00 2001 From: Sean Poulter Date: Thu, 22 Feb 2024 08:44:28 -0500 Subject: [PATCH 173/273] feat(check-param-names): Add `disableMissingParamChecks` option (#1206) --- .README/rules/check-param-names.md | 6 +- docs/rules/check-param-names.md | 8 +- src/rules/checkParamNames.js | 21 +++- test/rules/assertions/checkParamNames.js | 126 +++++++++++++++++++++++ 4 files changed, 157 insertions(+), 4 deletions(-) diff --git a/.README/rules/check-param-names.md b/.README/rules/check-param-names.md index dcea0efa0..7cb8b8296 100644 --- a/.README/rules/check-param-names.md +++ b/.README/rules/check-param-names.md @@ -81,12 +81,16 @@ item at the same level is destructured as destructuring will prevent other access and this option is only intended to permit documenting extra properties that are available and actually used in the function. +### `disableMissingParamChecks` + +Whether to avoid checks for missing `@param` definitions. Defaults to `false`. Change to `true` if you want to be able to omit properties. + ## Context and settings ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| -|Options|`allowExtraTrailingParamDocs`, `checkDestructured`, `checkRestProperty`, `checkTypesPattern`, `disableExtraPropertyReporting`, `enableFixer`, `useDefaultObjectProperties`| +|Options|`allowExtraTrailingParamDocs`, `checkDestructured`, `checkRestProperty`, `checkTypesPattern`, `disableExtraPropertyReporting`, `disableMissingParamChecks`, `enableFixer`, `useDefaultObjectProperties`| |Tags|`param`| |Aliases|`arg`, `argument`| |Recommended|true| diff --git a/docs/rules/check-param-names.md b/docs/rules/check-param-names.md index cca4fbd4b..9182f8baa 100644 --- a/docs/rules/check-param-names.md +++ b/docs/rules/check-param-names.md @@ -116,6 +116,12 @@ item at the same level is destructured as destructuring will prevent other access and this option is only intended to permit documenting extra properties that are available and actually used in the function. + + +### disableMissingParamChecks + +Whether to check for missing `@param` definitions. Defaults to `false`. Change to `true` if you want to be able to omit properties. + ## Context and settings @@ -123,7 +129,7 @@ that are available and actually used in the function. ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| -|Options|`allowExtraTrailingParamDocs`, `checkDestructured`, `checkRestProperty`, `checkTypesPattern`, `disableExtraPropertyReporting`, `enableFixer`, `useDefaultObjectProperties`| +|Options|`allowExtraTrailingParamDocs`, `checkDestructured`, `checkRestProperty`, `checkTypesPattern`, `disableExtraPropertyReporting`, `disableMissingParamChecks`, `enableFixer`, `useDefaultObjectProperties`| |Tags|`param`| |Aliases|`arg`, `argument`| |Recommended|true| diff --git a/src/rules/checkParamNames.js b/src/rules/checkParamNames.js index 7837c6e6d..3569efcd5 100644 --- a/src/rules/checkParamNames.js +++ b/src/rules/checkParamNames.js @@ -7,6 +7,7 @@ import iterateJsdoc from '../iterateJsdoc.js'; * @param {boolean} checkRestProperty * @param {RegExp} checkTypesRegex * @param {boolean} disableExtraPropertyReporting + * @param {boolean} disableMissingParamChecks * @param {boolean} enableFixer * @param {import('../jsdocUtils.js').ParamNameInfo[]} functionParameterNames * @param {import('comment-parser').Block} jsdoc @@ -21,6 +22,7 @@ const validateParameterNames = ( checkRestProperty, checkTypesRegex, disableExtraPropertyReporting, + disableMissingParamChecks, enableFixer, functionParameterNames, jsdoc, utils, report, ) => { @@ -245,10 +247,20 @@ const validateParameterNames = ( return item; }).filter((item) => { return item !== 'this'; - }).join(', '); + }); + + // When disableMissingParamChecks is true tag names can be omitted. + // Report when the tag names do not match the expected names or they are used out of order. + if (disableMissingParamChecks) { + const usedExpectedNames = expectedNames.map(a => a?.toString()).filter(expectedName => expectedName && actualNames.includes(expectedName)); + const usedInOrder = actualNames.every((actualName, idx) => actualName === usedExpectedNames[idx]); + if (usedInOrder) { + return false; + } + } report( - `Expected @${targetTagName} names to be "${expectedNames}". Got "${actualNames.join(', ')}".`, + `Expected @${targetTagName} names to be "${expectedNames.join(', ')}". Got "${actualNames.join(', ')}".`, null, tag, ); @@ -329,6 +341,7 @@ export default iterateJsdoc(({ enableFixer = false, useDefaultObjectProperties = false, disableExtraPropertyReporting = false, + disableMissingParamChecks = false, } = context.options[0] || {}; const checkTypesRegex = utils.getRegexFromString(checkTypesPattern); @@ -349,6 +362,7 @@ export default iterateJsdoc(({ checkRestProperty, checkTypesRegex, disableExtraPropertyReporting, + disableMissingParamChecks, enableFixer, functionParameterNames, jsdoc, @@ -389,6 +403,9 @@ export default iterateJsdoc(({ disableExtraPropertyReporting: { type: 'boolean', }, + disableMissingParamChecks: { + type: 'boolean', + }, enableFixer: { type: 'boolean', }, diff --git a/test/rules/assertions/checkParamNames.js b/test/rules/assertions/checkParamNames.js index a666ff877..0148603d8 100644 --- a/test/rules/assertions/checkParamNames.js +++ b/test/rules/assertions/checkParamNames.js @@ -1183,6 +1183,89 @@ export default { parser: typescriptEslintParser }, }, + { + code: ` + /** + * @param foo + * @param foo.bar + */ + function quux (bar, foo) { + } + `, + options: [ + { + disableMissingParamChecks: false, + }, + ], + errors: [ + { + line: 3, + message: 'Expected @param names to be "bar, foo". Got "foo".', + }, + ], + }, + { + code: ` + /** + * @param foo + */ + function quux (bar, baz) { + } + `, + options: [ + { + disableMissingParamChecks: true, + }, + ], + errors: [ + { + line: 3, + message: 'Expected @param names to be "bar, baz". Got "foo".', + }, + ], + }, + { + code: ` + /** + * @param bar + * @param foo + */ + function quux (foo, bar) { + } + `, + options: [ + { + disableMissingParamChecks: true, + }, + ], + errors: [ + { + line: 3, + message: 'Expected @param names to be "foo, bar". Got "bar, foo".', + }, + ], + }, + { + code: ` + /** + * @param foo + * @param bar + */ + function quux (foo) { + } + `, + options: [ + { + disableMissingParamChecks: true, + }, + ], + errors: [ + { + line: 4, + message: '@param "bar" does not match an existing function parameter.', + }, + ], + }, ], valid: [ { @@ -1835,5 +1918,48 @@ export default { parser: typescriptEslintParser }, }, + { + code: ` + /** + * Documentation + */ + function quux (foo, bar) { + } + `, + options: [ + { + disableMissingParamChecks: true, + }, + ], + }, + { + code: ` + /** + * @param bar + * @param bar.baz + */ + function quux (foo, bar) { + } + `, + options: [ + { + disableMissingParamChecks: true, + }, + ], + }, + { + code: ` + /** + * @param foo + */ + function quux (foo, bar) { + } + `, + options: [ + { + disableMissingParamChecks: true, + }, + ], + }, ], }; From e948bee821e964a92fbabc01574eca226e9e1252 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 22 Feb 2024 06:48:31 -0700 Subject: [PATCH 174/273] docs(`check-param-names`): update docs for `disableMissingParamChecks` --- docs/rules/check-param-names.md | 64 +++++++++++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 3 deletions(-) diff --git a/docs/rules/check-param-names.md b/docs/rules/check-param-names.md index 9182f8baa..f108efa1b 100644 --- a/docs/rules/check-param-names.md +++ b/docs/rules/check-param-names.md @@ -12,6 +12,7 @@ * [`checkDestructured`](#user-content-check-param-names-options-checkdestructured) * [`useDefaultObjectProperties`](#user-content-check-param-names-options-usedefaultobjectproperties) * [`disableExtraPropertyReporting`](#user-content-check-param-names-options-disableextrapropertyreporting) + * [`disableMissingParamChecks`](#user-content-check-param-names-options-disablemissingparamchecks) * [Context and settings](#user-content-check-param-names-context-and-settings) * [Failing examples](#user-content-check-param-names-failing-examples) * [Passing examples](#user-content-check-param-names-passing-examples) @@ -116,11 +117,11 @@ item at the same level is destructured as destructuring will prevent other access and this option is only intended to permit documenting extra properties that are available and actually used in the function. - - + + ### disableMissingParamChecks -Whether to check for missing `@param` definitions. Defaults to `false`. Change to `true` if you want to be able to omit properties. +Whether to avoid checks for missing `@param` definitions. Defaults to `false`. Change to `true` if you want to be able to omit properties. @@ -621,6 +622,41 @@ function quux (foo) { */ declare function foo(bar: number) {} // Message: Expected @param names to be "bar". Got "barr". + +/** + * @param foo + * @param foo.bar + */ +function quux (bar, foo) { +} +// "jsdoc/check-param-names": ["error"|"warn", {"disableMissingParamChecks":false}] +// Message: Expected @param names to be "bar, foo". Got "foo". + +/** + * @param foo + */ +function quux (bar, baz) { +} +// "jsdoc/check-param-names": ["error"|"warn", {"disableMissingParamChecks":true}] +// Message: Expected @param names to be "bar, baz". Got "foo". + +/** + * @param bar + * @param foo + */ +function quux (foo, bar) { +} +// "jsdoc/check-param-names": ["error"|"warn", {"disableMissingParamChecks":true}] +// Message: Expected @param names to be "foo, bar". Got "bar, foo". + +/** + * @param foo + * @param bar + */ +function quux (foo) { +} +// "jsdoc/check-param-names": ["error"|"warn", {"disableMissingParamChecks":true}] +// Message: @param "bar" does not match an existing function parameter. ```` @@ -1037,5 +1073,27 @@ function foo(this: T, bar: number): number { console.log(this.name); return bar; } + +/** + * Documentation + */ +function quux (foo, bar) { +} +// "jsdoc/check-param-names": ["error"|"warn", {"disableMissingParamChecks":true}] + +/** + * @param bar + * @param bar.baz + */ +function quux (foo, bar) { +} +// "jsdoc/check-param-names": ["error"|"warn", {"disableMissingParamChecks":true}] + +/** + * @param foo + */ +function quux (foo, bar) { +} +// "jsdoc/check-param-names": ["error"|"warn", {"disableMissingParamChecks":true}] ```` From 783b4e96eef457715a0bce234730da7bb5ec1a3b Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 7 Mar 2024 02:47:56 -0700 Subject: [PATCH 175/273] fix(`require-jsdoc`): avoid erring on #-marked private methods; fixes #1212 --- docs/rules/require-jsdoc.md | 7 +++++++ src/exportParser.js | 15 ++++++++++----- test/rules/assertions/requireJsdoc.js | 21 +++++++++++++++++++++ 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/docs/rules/require-jsdoc.md b/docs/rules/require-jsdoc.md index 5f120d084..8447bfd74 100644 --- a/docs/rules/require-jsdoc.md +++ b/docs/rules/require-jsdoc.md @@ -1898,5 +1898,12 @@ export default { } }; // "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["ExportDefaultDeclaration > ObjectExpression > Property[key.name!=/^(created|beforeUpdate)$/] > FunctionExpression","ExportDefaultDeclaration > ObjectExpression > Property[key.name!=/^(watch|computed|methods)$/] > ObjectExpression > Property > FunctionExpression"]}] + +export class MyClass { + #myPrivateMethod(): void { } + + #myPrivateProp = 5; +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"contexts":["PropertyDefinition"],"require":{"MethodDefinition":true}}] ```` diff --git a/src/exportParser.js b/src/exportParser.js index 590650bd3..fe74c197e 100644 --- a/src/exportParser.js +++ b/src/exportParser.js @@ -899,9 +899,14 @@ const accessibilityNodes = new Set([ * @param {import('eslint').Rule.Node} node * @returns {boolean} */ -const hasAccessibility = (node) => { - return accessibilityNodes.has(node.type) && 'accessibility' in node && - node.accessibility !== 'public' && node.accessibility !== undefined; +const isPrivate = (node) => { + return accessibilityNodes.has(node.type) && + ( + 'accessibility' in node && + node.accessibility !== 'public' && node.accessibility !== undefined + ) || + 'key' in node && + node.key.type === 'PrivateIdentifier'; }; /** @@ -916,8 +921,8 @@ const isUncommentedExport = function (node, sourceCode, opt, settings) { // console.log({node}); // Optimize with ancestor check for esm if (opt.esm) { - if (hasAccessibility(node) || - node.parent && hasAccessibility(node.parent)) { + if (isPrivate(node) || + node.parent && isPrivate(node.parent)) { return false; } diff --git a/test/rules/assertions/requireJsdoc.js b/test/rules/assertions/requireJsdoc.js index 411d8505a..71f0903eb 100644 --- a/test/rules/assertions/requireJsdoc.js +++ b/test/rules/assertions/requireJsdoc.js @@ -6342,5 +6342,26 @@ function quux (foo) { parser: typescriptEslintParser, } }, + { + code: ` + export class MyClass { + #myPrivateMethod(): void { } + + #myPrivateProp = 5; + } + `, + languageOptions: { + parser: typescriptEslintParser, + }, + options: [ + { + publicOnly: true, + contexts: ['PropertyDefinition'], + require: { + MethodDefinition: true, + }, + }, + ], + }, ], }; From 3e88f9a5b871b5a431ccbe8a631037f40ffef1fa Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Mon, 25 Mar 2024 11:04:43 -0400 Subject: [PATCH 176/273] docs: mention excludedTags in informative-docs docs --- .README/rules/informative-docs.md | 14 ++++++++++++++ docs/rules/informative-docs.md | 16 ++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/.README/rules/informative-docs.md b/.README/rules/informative-docs.md index 90420a5a4..1c9234425 100644 --- a/.README/rules/informative-docs.md +++ b/.README/rules/informative-docs.md @@ -35,6 +35,20 @@ The default `aliases` option is: } ``` +### `excludedTags` + +Tags that should not be checked for valid contents. + +For example, with `{ excludedTags: ["category"] }`, the following comment would not be considered uninformative: + +```js +/** @category Types */ +function computeTypes(node) { + // ... +} + +No tags are excluded by default. + ### `uselessWords` Words that are ignored when searching for one that adds meaning. diff --git a/docs/rules/informative-docs.md b/docs/rules/informative-docs.md index 027d4e1fa..60eaf3204 100644 --- a/docs/rules/informative-docs.md +++ b/docs/rules/informative-docs.md @@ -47,6 +47,22 @@ The default `aliases` option is: } ``` + + +### excludedTags + +Tags that should not be checked for valid contents. + +For example, with `{ excludedTags: ["category"] }`, the following comment would not be considered uninformative: + +```js +/** @category Types */ +function computeTypes(node) { + // ... +} + +No tags are excluded by default. + ### uselessWords From 9e9fed5000fd3f3d55ad2677817af1a7b1ee3115 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 27 Mar 2024 20:22:02 -0700 Subject: [PATCH 177/273] fix: add TS `import` tag; fixes #1218 --- .README/rules/informative-docs.md | 1 + .README/rules/sort-tags.md | 1 + docs/rules/check-tag-names.md | 2 ++ docs/rules/informative-docs.md | 2 ++ docs/rules/sort-tags.md | 19 ++++++++++--------- src/defaultTagOrder.js | 1 + src/tagNames.js | 3 +++ test/rules/assertions/checkTagNames.js | 4 ++++ 8 files changed, 24 insertions(+), 9 deletions(-) diff --git a/.README/rules/informative-docs.md b/.README/rules/informative-docs.md index 1c9234425..48afdda95 100644 --- a/.README/rules/informative-docs.md +++ b/.README/rules/informative-docs.md @@ -46,6 +46,7 @@ For example, with `{ excludedTags: ["category"] }`, the following comment would function computeTypes(node) { // ... } +``` No tags are excluded by default. diff --git a/.README/rules/sort-tags.md b/.README/rules/sort-tags.md index 14544a517..e192e259c 100644 --- a/.README/rules/sort-tags.md +++ b/.README/rules/sort-tags.md @@ -63,6 +63,7 @@ a fixed order that doesn't change into the future, supply your own 'file', 'fileoverview', 'overview', + 'import', // Identifying (name, type) 'typedef', diff --git a/docs/rules/check-tag-names.md b/docs/rules/check-tag-names.md index d37eb6ba0..5aef2ab34 100644 --- a/docs/rules/check-tag-names.md +++ b/docs/rules/check-tag-names.md @@ -714,6 +714,7 @@ function quux (foo) {} * @variation * @version * @yields + * @import * @internal * @overload * @satisfies @@ -1028,6 +1029,7 @@ function quux (foo) {} * @variation * @version * @yields + * @import * @internal * @overload * @satisfies diff --git a/docs/rules/informative-docs.md b/docs/rules/informative-docs.md index 60eaf3204..e90cd3309 100644 --- a/docs/rules/informative-docs.md +++ b/docs/rules/informative-docs.md @@ -4,6 +4,7 @@ * [Options](#user-content-informative-docs-options) * [`aliases`](#user-content-informative-docs-options-aliases) + * [`excludedTags`](#user-content-informative-docs-options-excludedtags) * [`uselessWords`](#user-content-informative-docs-options-uselesswords) * [Context and settings](#user-content-informative-docs-context-and-settings) * [Failing examples](#user-content-informative-docs-failing-examples) @@ -60,6 +61,7 @@ For example, with `{ excludedTags: ["category"] }`, the following comment would function computeTypes(node) { // ... } +``` No tags are excluded by default. diff --git a/docs/rules/sort-tags.md b/docs/rules/sort-tags.md index 084c1191e..95212e0c7 100644 --- a/docs/rules/sort-tags.md +++ b/docs/rules/sort-tags.md @@ -81,6 +81,7 @@ a fixed order that doesn't change into the future, supply your own 'file', 'fileoverview', 'overview', + 'import', // Identifying (name, type) 'typedef', @@ -287,7 +288,7 @@ The following patterns are considered problems: * @param a */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * Some description @@ -296,7 +297,7 @@ function quux () {} * @param a */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @returns {string} @@ -305,7 +306,7 @@ function quux () {} * @param a */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * Some description @@ -315,7 +316,7 @@ function quux () {} * @param a */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @param b A long @@ -324,7 +325,7 @@ function quux () {} * @param a */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @def @@ -333,7 +334,7 @@ function quux () {} */ function quux () {} // "jsdoc/sort-tags": ["error"|"warn", {"alphabetizeExtras":true}] -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @xyz @@ -362,7 +363,7 @@ function quux () {} * @module */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @xyz @@ -373,7 +374,7 @@ function quux () {} */ function quux () {} // "jsdoc/sort-tags": ["error"|"warn", {"alphabetizeExtras":true}] -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @param b A long @@ -381,7 +382,7 @@ function quux () {} * @module */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @def diff --git a/src/defaultTagOrder.js b/src/defaultTagOrder.js index 15a463d60..6bcf0e8eb 100644 --- a/src/defaultTagOrder.js +++ b/src/defaultTagOrder.js @@ -11,6 +11,7 @@ const defaultTagOrder = [ 'file', 'fileoverview', 'overview', + 'import', // Identifying (name, type) 'typedef', diff --git a/src/tagNames.js b/src/tagNames.js index b1ba3d25e..60a609dd7 100644 --- a/src/tagNames.js +++ b/src/tagNames.js @@ -136,6 +136,9 @@ const jsdocTags = { const typeScriptTags = { ...jsdocTags, + // https://github.com/microsoft/TypeScript/issues/22160 + import: [], + // https://www.typescriptlang.org/tsconfig/#stripInternal internal: [], diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index 33cf4fe48..0696d4501 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -856,6 +856,10 @@ export default { { code: `${ALL_TYPESCRIPT_TAGS_COMMENT}\nfunction quux (foo) {}`, errors: [ + { + line: lineCount(ALL_TYPESCRIPT_TAGS_COMMENT) - 4, + message: 'Invalid JSDoc tag name "import".', + }, { line: lineCount(ALL_TYPESCRIPT_TAGS_COMMENT) - 3, message: 'Invalid JSDoc tag name "internal".', From ab5624be6278836241955b2b336bf3b0803ab33d Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 4 Apr 2024 16:24:00 -0700 Subject: [PATCH 178/273] fix(`valid-types`): whitelist pratt parser keywords; fixes #1221 --- docs/rules/check-tag-names.md | 2 +- docs/rules/valid-types.md | 10 ++++++++++ src/rules/validTypes.js | 12 +++++++++++- test/rules/assertions/validTypes.js | 13 +++++++++++++ 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/docs/rules/check-tag-names.md b/docs/rules/check-tag-names.md index 5aef2ab34..192404234 100644 --- a/docs/rules/check-tag-names.md +++ b/docs/rules/check-tag-names.md @@ -722,7 +722,7 @@ function quux (foo) {} */ function quux (foo) {} // Settings: {"jsdoc":{"mode":"jsdoc"}} -// Message: Invalid JSDoc tag name "internal". +// Message: Invalid JSDoc tag name "import". /** * @externs diff --git a/docs/rules/valid-types.md b/docs/rules/valid-types.md index 5b0f61cfa..19bcf6c99 100644 --- a/docs/rules/valid-types.md +++ b/docs/rules/valid-types.md @@ -877,5 +877,15 @@ function quux() { /** * An inline {@link text} tag with content. */ + +/** + * @param typeof + * @param readonly + * @param import + * @param is + */ +function quux() { + +} ```` diff --git a/src/rules/validTypes.js b/src/rules/validTypes.js index f8620da42..2930ed1d3 100644 --- a/src/rules/validTypes.js +++ b/src/rules/validTypes.js @@ -10,6 +10,13 @@ const inlineTags = new Set([ 'tutorial', ]); +const jsdocTypePrattKeywords = new Set([ + 'typeof', + 'readonly', + 'import', + 'is', +]); + const asExpression = /as\s+/u; const suppressTypes = new Set([ @@ -107,7 +114,10 @@ export default iterateJsdoc(({ * @returns {boolean} */ const validNamepathParsing = function (namepath, tagName) { - if (tryParsePathIgnoreError(namepath)) { + if ( + tryParsePathIgnoreError(namepath) || + jsdocTypePrattKeywords.has(namepath) + ) { return true; } diff --git a/test/rules/assertions/validTypes.js b/test/rules/assertions/validTypes.js index c201e9486..11bf9a131 100644 --- a/test/rules/assertions/validTypes.js +++ b/test/rules/assertions/validTypes.js @@ -1856,5 +1856,18 @@ export default { */ `, }, + { + code: ` + /** + * @param typeof + * @param readonly + * @param import + * @param is + */ + function quux() { + + } + ` + }, ], }; From e343ab5b1efaa59b07c600138aee070b4083857e Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 5 Apr 2024 17:05:46 -0700 Subject: [PATCH 179/273] chore: update jsdoccomment and devDeps. Also: - chore: remove test dupes and fix output=null --- docs/rules/check-line-alignment.md | 10 - docs/rules/check-param-names.md | 14 +- docs/rules/check-tag-names.md | 9 - docs/rules/check-types.md | 9 - docs/rules/match-description.md | 6 - docs/rules/no-undefined-types.md | 9 - docs/rules/require-description.md | 18 - docs/rules/require-jsdoc.md | 11 - docs/rules/require-param.md | 50 - docs/rules/require-returns-check.md | 57 - docs/rules/require-returns.md | 13 - docs/rules/require-yields-check.md | 8 - docs/rules/require-yields.md | 23 - docs/rules/tag-lines.md | 8 - docs/rules/valid-types.md | 7 - package.json | 42 +- pnpm-lock.yaml | 2155 ++++++++++-------- src/iterateJsdoc.js | 2 +- src/rules/requireReturnsCheck.js | 6 +- test/rules/assertions/checkLineAlignment.js | 30 - test/rules/assertions/checkParamNames.js | 28 +- test/rules/assertions/checkPropertyNames.js | 8 +- test/rules/assertions/checkTagNames.js | 34 - test/rules/assertions/checkTypes.js | 44 +- test/rules/assertions/matchDescription.js | 20 - test/rules/assertions/noUndefinedTypes.js | 15 - test/rules/assertions/requireDescription.js | 48 - test/rules/assertions/requireExample.js | 9 +- test/rules/assertions/requireJsdoc.js | 74 +- test/rules/assertions/requireParam.js | 113 +- test/rules/assertions/requireReturns.js | 42 - test/rules/assertions/requireReturnsCheck.js | 77 - test/rules/assertions/requireYields.js | 54 - test/rules/assertions/requireYieldsCheck.js | 11 - test/rules/assertions/tagLines.js | 32 - test/rules/assertions/validTypes.js | 16 - 36 files changed, 1287 insertions(+), 1825 deletions(-) diff --git a/docs/rules/check-line-alignment.md b/docs/rules/check-line-alignment.md index ffdf16f50..1293f6474 100644 --- a/docs/rules/check-line-alignment.md +++ b/docs/rules/check-line-alignment.md @@ -128,16 +128,6 @@ const fn = ( lorem, sit ) => {} // "jsdoc/check-line-alignment": ["error"|"warn", "always"] // Message: Expected JSDoc block lines to be aligned. -/** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ -const fn = ( lorem, sit ) => {} -// "jsdoc/check-line-alignment": ["error"|"warn", "always"] -// Message: Expected JSDoc block lines to be aligned. - /** * Function description. * diff --git a/docs/rules/check-param-names.md b/docs/rules/check-param-names.md index f108efa1b..61ef59a39 100644 --- a/docs/rules/check-param-names.md +++ b/docs/rules/check-param-names.md @@ -864,17 +864,9 @@ function quux (foo, bar, ...extra) { } /** -* Converts an SVGRect into an object. -* @param {SVGRect} bbox - a SVGRect -*/ -const bboxToObj = function ({x, y, width, height}) { - return {x, y, width, height}; -}; - -/** -* Converts an SVGRect into an object. -* @param {SVGRect} bbox - a SVGRect -*/ + * Converts an SVGRect into an object. + * @param {SVGRect} bbox - a SVGRect + */ const bboxToObj = function ({x, y, width, height}) { return {x, y, width, height}; }; diff --git a/docs/rules/check-tag-names.md b/docs/rules/check-tag-names.md index 192404234..ab45c968d 100644 --- a/docs/rules/check-tag-names.md +++ b/docs/rules/check-tag-names.md @@ -517,15 +517,6 @@ function quux () { */ function quux () { -} -// Settings: {"jsdoc":{"tagNamePreference":{"todo":{"message":"Please use x-todo instead of todo","replacement":"x-todo"}}}} -// Message: Please use x-todo instead of todo - -/** - * @todo - */ -function quux () { - } // Settings: {"jsdoc":{"tagNamePreference":{"todo":55}}} // Message: Invalid `settings.jsdoc.tagNamePreference`. Values must be falsy, a string, or an object. diff --git a/docs/rules/check-types.md b/docs/rules/check-types.md index bc5fb4d8e..5e3224cf8 100644 --- a/docs/rules/check-types.md +++ b/docs/rules/check-types.md @@ -352,15 +352,6 @@ function qux(baz) { // Settings: {"jsdoc":{"preferredTypes":{"*":"aaa","abc":"Abc","string":"Str"}}} // Message: Invalid JSDoc @param "baz" type "*"; prefer: "aaa". -/** - * @param {abc} foo - * @param {Number} bar - */ -function qux(foo, bar) { -} -// Settings: {"jsdoc":{"preferredTypes":{"abc":"Abc","string":"Str"}}} -// Message: Invalid JSDoc @param "foo" type "abc"; prefer: "Abc". - /** * @param {Array} foo */ diff --git a/docs/rules/match-description.md b/docs/rules/match-description.md index ebbd9beaa..3f2f797a3 100644 --- a/docs/rules/match-description.md +++ b/docs/rules/match-description.md @@ -241,12 +241,6 @@ const q = class { // "jsdoc/match-description": ["error"|"warn", {"contexts":["any"]}] // Message: JSDoc description does not satisfy the regex pattern. -/** - * foo. - */ -// "jsdoc/match-description": ["error"|"warn", {"contexts":["any"]}] -// Message: JSDoc description does not satisfy the regex pattern. - /** * foo. */ diff --git a/docs/rules/no-undefined-types.md b/docs/rules/no-undefined-types.md index 70f3ca070..c902b69bb 100644 --- a/docs/rules/no-undefined-types.md +++ b/docs/rules/no-undefined-types.md @@ -361,15 +361,6 @@ const MyType = require('my-library').MyType; } -const MyType = require('my-library').MyType; - -/** - * @param {MyType} foo - Bar. - */ - function quux(foo) { - -} - import {MyType} from 'my-library'; /** diff --git a/docs/rules/require-description.md b/docs/rules/require-description.md index 17a414e9c..aec75da22 100644 --- a/docs/rules/require-description.md +++ b/docs/rules/require-description.md @@ -133,24 +133,6 @@ class quux { // "jsdoc/require-description": ["error"|"warn", {"contexts":["any"],"descriptionStyle":"tag"}] // Message: Missing JSDoc @description declaration. -/** - * - */ -class quux { - -} -// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. - -/** - * - */ -class quux { - -} -// "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"],"descriptionStyle":"tag"}] -// Message: Missing JSDoc @description declaration. - /** * @description */ diff --git a/docs/rules/require-jsdoc.md b/docs/rules/require-jsdoc.md index 8447bfd74..fcdced178 100644 --- a/docs/rules/require-jsdoc.md +++ b/docs/rules/require-jsdoc.md @@ -600,12 +600,6 @@ export function someMethod() { // "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"FunctionDeclaration":true}}] // Message: Missing JSDoc comment. -export function someMethod() { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"FunctionDeclaration":true}}] -// Message: Missing JSDoc comment. - const myObject = { myProp: true }; @@ -1566,11 +1560,6 @@ export function someMethod() { } // "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":true,"esm":false,"window":false},"require":{"FunctionDeclaration":true}}] -export function someMethod() { - -} -// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"cjs":true,"esm":false,"window":false},"require":{"FunctionDeclaration":true}}] - exports.someMethod = function() { } diff --git a/docs/rules/require-param.md b/docs/rules/require-param.md index bf4ebfe17..61560370c 100644 --- a/docs/rules/require-param.md +++ b/docs/rules/require-param.md @@ -627,14 +627,6 @@ function quux (foo) { // Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}} // Message: Missing JSDoc @arg "foo" declaration. -/** - * @param foo - */ -function quux (foo, bar) { - -} -// Message: Missing JSDoc @param "bar" declaration. - /** * @override */ @@ -1351,22 +1343,6 @@ function quux (foo) { } -/** - * @augments - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} - -/** - * @extends - */ -function quux (foo) { - -} -// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} - /** * @override */ @@ -1480,32 +1456,6 @@ class A { } } -/** - * @augments - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} - -/** - * @extends - */ -class A { - /** - * - */ - quux (foo) { - - } -} -// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}} - /** * @internal */ diff --git a/docs/rules/require-returns-check.md b/docs/rules/require-returns-check.md index c692ddfe5..8b3f3d631 100644 --- a/docs/rules/require-returns-check.md +++ b/docs/rules/require-returns-check.md @@ -368,20 +368,6 @@ function foo() { }; // Message: JSDoc @returns declaration present but return expression not available in function. -/** - * @returns {SomeType} Baz. - */ -function foo() { - switch (true) { - default: - switch (false) { - default: return; - } - return "baz"; - } -}; -// Message: JSDoc @returns declaration present but return expression not available in function. - /** * @returns {number} */ @@ -422,14 +408,6 @@ function quux () { return foo; } -/** - * @returns {string} Foo. - */ -function quux () { - - return foo; -} - /** * */ @@ -580,17 +558,6 @@ function quux () { return true; } -/** - * @returns {true} - */ -function quux () { - try { - return true; - } catch (err) { - } - return true; -} - /** * @returns {true} */ @@ -614,17 +581,6 @@ function quux () { return true; } -/** - * @returns {true} - */ -function quux () { - switch (true) { - case 'abc': - return true; - } - return true; -} - /** * @returns {true} */ @@ -1016,19 +972,6 @@ function foo() { } }; -/** - * @returns Baz. - */ -function foo() { - switch (true) { - default: - switch (false) { - default: return; - } - return "baz"; - } -}; - /** * @returns */ diff --git a/docs/rules/require-returns.md b/docs/rules/require-returns.md index b620d90d8..6e65be6ef 100644 --- a/docs/rules/require-returns.md +++ b/docs/rules/require-returns.md @@ -864,12 +864,6 @@ const quux = () => { } -/** - * - */ -function quux () { -} - /** * */ @@ -924,13 +918,6 @@ function quux () { return; } -/** - * @returns {void} - */ -function quux () { -} -// "jsdoc/require-returns": ["error"|"warn", {"forceRequireReturn":true}] - /** * @returns {void} */ diff --git a/docs/rules/require-yields-check.md b/docs/rules/require-yields-check.md index 39f909467..243639c36 100644 --- a/docs/rules/require-yields-check.md +++ b/docs/rules/require-yields-check.md @@ -238,14 +238,6 @@ function * quux () { yield foo; } -/** - * @yields {string} Foo. - */ -function * quux () { - - yield foo; -} - /** * */ diff --git a/docs/rules/require-yields.md b/docs/rules/require-yields.md index dc0b0b7eb..7d48bc284 100644 --- a/docs/rules/require-yields.md +++ b/docs/rules/require-yields.md @@ -443,17 +443,6 @@ function * quux () { } // Message: Missing JSDoc @yields declaration. -/** - * - */ -function * quux () { - if (true) { - yield; - } - yield true; -} -// Message: Missing JSDoc @yields declaration. - /** * */ @@ -586,12 +575,6 @@ function * quux (foo) { yield foo; } -/** - * @constructor - */ -function * quux (foo) { -} - /** * @yields {object} */ @@ -612,12 +595,6 @@ function * quux () { function * quux () { } -/** - * - */ -function * quux () { -} - /** * @yields {void} */ diff --git a/docs/rules/tag-lines.md b/docs/rules/tag-lines.md index d1f270e0c..b9c8fbd49 100644 --- a/docs/rules/tag-lines.md +++ b/docs/rules/tag-lines.md @@ -173,14 +173,6 @@ The following patterns are considered problems: // "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"param":{"lines":"always"}}}] // Message: Expected 1 line between tags but found 0 -/** - * Some description - * @param {string} a - * @param {number} b - */ -// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"param":{"lines":"always"}}}] -// Message: Expected 1 line between tags but found 0 - /** * Some description * @param {string} a diff --git a/docs/rules/valid-types.md b/docs/rules/valid-types.md index 19bcf6c99..2c436fe95 100644 --- a/docs/rules/valid-types.md +++ b/docs/rules/valid-types.md @@ -453,13 +453,6 @@ function quux () {} function quux () {} // Message: Invalid name: empty name -/** - * @param {Object[]} employees - * @param {string} [] - The name of an employee. - */ -function quux () {} -// Message: Invalid name: empty name - /** * @param {string} [name=] - The name of an employee. */ diff --git a/package.json b/package.json index 13600b14a..7bc14fbea 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "url": "http://gajus.com" }, "dependencies": { - "@es-joy/jsdoccomment": "~0.42.0", + "@es-joy/jsdoccomment": "~0.43.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.3.4", @@ -17,31 +17,31 @@ }, "description": "JSDoc linting rules for ESLint.", "devDependencies": { - "@babel/cli": "^7.23.9", - "@babel/core": "^7.23.9", - "@babel/eslint-parser": "^7.23.10", + "@babel/cli": "^7.24.1", + "@babel/core": "^7.24.4", + "@babel/eslint-parser": "^7.24.1", "@babel/node": "^7.23.9", "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-transform-flow-strip-types": "^7.23.3", - "@babel/preset-env": "^7.23.9", + "@babel/plugin-transform-flow-strip-types": "^7.24.1", + "@babel/preset-env": "^7.24.4", "@es-joy/escodegen": "^3.5.1", "@es-joy/jsdoc-eslint-parser": "^0.21.1", "@hkdobrev/run-if-changed": "^0.3.1", - "@semantic-release/commit-analyzer": "^11.1.0", - "@semantic-release/github": "^9.2.6", - "@semantic-release/npm": "^11.0.2", - "@types/chai": "^4.3.11", + "@semantic-release/commit-analyzer": "^12.0.0", + "@semantic-release/github": "^10.0.2", + "@semantic-release/npm": "^12.0.0", + "@types/chai": "^4.3.14", "@types/debug": "^4.1.12", - "@types/eslint": "^8.56.2", + "@types/eslint": "^8.56.7", "@types/esquery": "^1.5.3", "@types/estree": "^1.0.5", "@types/json-schema": "^7.0.15", "@types/lodash.defaultsdeep": "^4.6.9", "@types/mocha": "^10.0.6", - "@types/node": "^20.11.16", - "@types/semver": "^7.5.6", + "@types/node": "^20.12.5", + "@types/semver": "^7.5.8", "@types/spdx-expression-parse": "^3.0.5", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/parser": "^7.5.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "c8": "^9.1.0", @@ -49,22 +49,22 @@ "chai": "^4.3.10", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "9.0.0-alpha.0", + "eslint": "9.0.0", "eslint-config-canonical": "~42.8.1", - "espree": "^10.0.0", + "espree": "^10.0.1", "gitdown": "^3.1.5", - "glob": "^10.3.10", - "globals": "^13.24.0", - "husky": "^9.0.10", + "glob": "^10.3.12", + "globals": "^15.0.0", + "husky": "^9.0.11", "jsdoc-type-pratt-parser": "^4.0.0", "json-schema": "^0.4.0", "lint-staged": "^15.2.2", "lodash.defaultsdeep": "^4.6.1", - "mocha": "^10.2.0", + "mocha": "^10.4.0", "open-editor": "^3.0.0", "replace": "^1.2.2", "rimraf": "^5.0.5", - "semantic-release": "^23.0.0", + "semantic-release": "^23.0.7", "typescript": "5.3.3" }, "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 738682d5d..fcd82302c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,8 +6,8 @@ settings: dependencies: '@es-joy/jsdoccomment': - specifier: ~0.42.0 - version: 0.42.0 + specifier: ~0.43.0 + version: 0.43.0 are-docs-informative: specifier: ^0.0.2 version: 0.0.2 @@ -35,26 +35,26 @@ dependencies: devDependencies: '@babel/cli': - specifier: ^7.23.9 - version: 7.23.9(@babel/core@7.23.9) + specifier: ^7.24.1 + version: 7.24.1(@babel/core@7.24.4) '@babel/core': - specifier: ^7.23.9 - version: 7.23.9 + specifier: ^7.24.4 + version: 7.24.4 '@babel/eslint-parser': - specifier: ^7.23.10 - version: 7.23.10(@babel/core@7.23.9)(eslint@9.0.0-alpha.0) + specifier: ^7.24.1 + version: 7.24.1(@babel/core@7.24.4)(eslint@9.0.0) '@babel/node': specifier: ^7.23.9 - version: 7.23.9(@babel/core@7.23.9) + version: 7.23.9(@babel/core@7.24.4) '@babel/plugin-syntax-class-properties': specifier: ^7.12.13 - version: 7.12.13(@babel/core@7.23.9) + version: 7.12.13(@babel/core@7.24.4) '@babel/plugin-transform-flow-strip-types': - specifier: ^7.23.3 - version: 7.23.3(@babel/core@7.23.9) + specifier: ^7.24.1 + version: 7.24.1(@babel/core@7.24.4) '@babel/preset-env': - specifier: ^7.23.9 - version: 7.23.9(@babel/core@7.23.9) + specifier: ^7.24.4 + version: 7.24.4(@babel/core@7.24.4) '@es-joy/escodegen': specifier: ^3.5.1 version: 3.5.1 @@ -65,23 +65,23 @@ devDependencies: specifier: ^0.3.1 version: 0.3.1 '@semantic-release/commit-analyzer': - specifier: ^11.1.0 - version: 11.1.0(semantic-release@23.0.0) + specifier: ^12.0.0 + version: 12.0.0(semantic-release@23.0.7) '@semantic-release/github': - specifier: ^9.2.6 - version: 9.2.6(semantic-release@23.0.0) + specifier: ^10.0.2 + version: 10.0.2(semantic-release@23.0.7) '@semantic-release/npm': - specifier: ^11.0.2 - version: 11.0.2(semantic-release@23.0.0) + specifier: ^12.0.0 + version: 12.0.0(semantic-release@23.0.7) '@types/chai': - specifier: ^4.3.11 - version: 4.3.11 + specifier: ^4.3.14 + version: 4.3.14 '@types/debug': specifier: ^4.1.12 version: 4.1.12 '@types/eslint': - specifier: ^8.56.2 - version: 8.56.2 + specifier: ^8.56.7 + version: 8.56.7 '@types/esquery': specifier: ^1.5.3 version: 1.5.3 @@ -98,17 +98,17 @@ devDependencies: specifier: ^10.0.6 version: 10.0.6 '@types/node': - specifier: ^20.11.16 - version: 20.11.16 + specifier: ^20.12.5 + version: 20.12.5 '@types/semver': - specifier: ^7.5.6 - version: 7.5.6 + specifier: ^7.5.8 + version: 7.5.8 '@types/spdx-expression-parse': specifier: ^3.0.5 version: 3.0.5 '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + specifier: ^7.5.0 + version: 7.5.0(eslint@9.0.0)(typescript@5.3.3) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -131,26 +131,26 @@ devDependencies: specifier: ^5.0.1 version: 5.0.1 eslint: - specifier: 9.0.0-alpha.0 - version: 9.0.0-alpha.0 + specifier: 9.0.0 + version: 9.0.0 eslint-config-canonical: specifier: ~42.8.1 - version: 42.8.1(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.2)(@types/node@20.11.16)(eslint@9.0.0-alpha.0)(graphql@16.8.1)(typescript@5.3.3) + version: 42.8.1(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.7)(@types/node@20.12.5)(eslint@9.0.0)(graphql@16.8.1)(typescript@5.3.3) espree: - specifier: ^10.0.0 - version: 10.0.0 + specifier: ^10.0.1 + version: 10.0.1 gitdown: specifier: ^3.1.5 version: 3.1.5 glob: - specifier: ^10.3.10 - version: 10.3.10 + specifier: ^10.3.12 + version: 10.3.12 globals: - specifier: ^13.24.0 - version: 13.24.0 + specifier: ^15.0.0 + version: 15.0.0 husky: - specifier: ^9.0.10 - version: 9.0.10 + specifier: ^9.0.11 + version: 9.0.11 jsdoc-type-pratt-parser: specifier: ^4.0.0 version: 4.0.0 @@ -164,8 +164,8 @@ devDependencies: specifier: ^4.6.1 version: 4.6.1 mocha: - specifier: ^10.2.0 - version: 10.2.0 + specifier: ^10.4.0 + version: 10.4.0 open-editor: specifier: ^3.0.0 version: 3.0.0 @@ -176,8 +176,8 @@ devDependencies: specifier: ^5.0.5 version: 5.0.5 semantic-release: - specifier: ^23.0.0 - version: 23.0.0(typescript@5.3.3) + specifier: ^23.0.7 + version: 23.0.7(typescript@5.3.3) typescript: specifier: 5.3.3 version: 5.3.3 @@ -206,15 +206,15 @@ packages: - encoding dev: true - /@babel/cli@7.23.9(@babel/core@7.23.9): - resolution: {integrity: sha512-vB1UXmGDNEhcf1jNAHKT9IlYk1R+hehVTLFlCLHBi8gfuHQGP6uRjgXVYU0EVlI/qwAWpstqkBdf2aez3/z/5Q==} + /@babel/cli@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-HbmrtxyFUr34LwAlV9jS+sSIjUp4FpdtIMGwgufY3AsxrIfsh/HxlMTywsONAZsU0RMYbZtbZFpUCrSGs7o0EA==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@jridgewell/trace-mapping': 0.3.20 + '@babel/core': 7.24.4 + '@jridgewell/trace-mapping': 0.3.25 commander: 4.1.1 convert-source-map: 2.0.0 fs-readdir-recursive: 1.1.0 @@ -234,25 +234,38 @@ packages: chalk: 2.4.2 dev: true + /@babel/code-frame@7.24.2: + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.24.2 + picocolors: 1.0.0 + dev: true + /@babel/compat-data@7.23.5: resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.23.9: - resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==} + /@babel/compat-data@7.24.4: + resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.24.4: + resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.4 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helpers': 7.23.9 - '@babel/parser': 7.23.9 - '@babel/template': 7.23.9 - '@babel/traverse': 7.23.9 - '@babel/types': 7.23.9 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helpers': 7.24.4 + '@babel/parser': 7.24.4 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 convert-source-map: 2.0.0 debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 @@ -262,43 +275,43 @@ packages: - supports-color dev: true - /@babel/eslint-parser@7.23.10(@babel/core@7.23.9)(eslint@8.56.0): - resolution: {integrity: sha512-3wSYDPZVnhseRnxRJH6ZVTNknBz76AEnyC+AYYhasjP3Yy23qz0ERR7Fcd2SHmYuSFJ2kY9gaaDd3vyqU09eSw==} + /@babel/eslint-parser@7.24.1(@babel/core@7.24.4)(eslint@8.56.0): + resolution: {integrity: sha512-d5guuzMlPeDfZIbpQ8+g1NaCNuAGBBGNECh0HVqz1sjOeVLh2CEaifuOysCH18URW6R7pqXINvf5PaR/dC6jLQ==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 eslint: 8.56.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true - /@babel/eslint-parser@7.23.10(@babel/core@7.23.9)(eslint@9.0.0-alpha.0): - resolution: {integrity: sha512-3wSYDPZVnhseRnxRJH6ZVTNknBz76AEnyC+AYYhasjP3Yy23qz0ERR7Fcd2SHmYuSFJ2kY9gaaDd3vyqU09eSw==} + /@babel/eslint-parser@7.24.1(@babel/core@7.24.4)(eslint@9.0.0): + resolution: {integrity: sha512-d5guuzMlPeDfZIbpQ8+g1NaCNuAGBBGNECh0HVqz1sjOeVLh2CEaifuOysCH18URW6R7pqXINvf5PaR/dC6jLQ==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true - /@babel/eslint-plugin@7.23.5(@babel/eslint-parser@7.23.10)(eslint@9.0.0-alpha.0): + /@babel/eslint-plugin@7.23.5(@babel/eslint-parser@7.24.1)(eslint@9.0.0): resolution: {integrity: sha512-03+E/58Hoo/ui69gR+beFdGpplpoVK0BSIdke2iw4/Bz7eGN0ssRenNlnU4nmbkowNQOPCStKSwFr8H6DiY49g==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/eslint-parser': 7.23.10(@babel/core@7.23.9)(eslint@9.0.0-alpha.0) - eslint: 9.0.0-alpha.0 + '@babel/eslint-parser': 7.24.1(@babel/core@7.24.4)(eslint@9.0.0) + eslint: 9.0.0 eslint-rule-composer: 0.3.0 dev: true @@ -312,18 +325,28 @@ packages: jsesc: 2.5.2 dev: true + /@babel/generator@7.24.4: + resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + dev: true + /@babel/helper-annotate-as-pure@7.22.5: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.23.9 dev: true /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.23.9 dev: true /@babel/helper-compilation-targets@7.23.6: @@ -337,44 +360,44 @@ packages: semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.23.6(@babel/core@7.23.9): - resolution: {integrity: sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==} + /@babel/helper-create-class-features-plugin@7.24.4(@babel/core@7.24.4): + resolution: {integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.9): + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.4): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.23.9): - resolution: {integrity: sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==} + /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.4): + resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 debug: 4.3.4(supports-color@8.1.1) lodash.debounce: 4.0.8 resolve: 1.22.8 @@ -391,38 +414,45 @@ packages: resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.23.9 - '@babel/types': 7.23.9 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.0 dev: true /@babel/helper-member-expression-to-functions@7.23.0: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.23.9 dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.0 + dev: true + + /@babel/helper-module-imports@7.24.3: + resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 dev: true - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -434,7 +464,7 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.23.9 dev: true /@babel/helper-plugin-utils@7.22.5: @@ -442,25 +472,30 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.9): + /@babel/helper-plugin-utils@7.24.0: + resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.4): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 dev: true - /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.9): - resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} + /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 @@ -470,21 +505,21 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.0 dev: true /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.23.9 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.0 dev: true /@babel/helper-string-parser@7.23.4: @@ -507,17 +542,17 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.22.15 - '@babel/types': 7.23.6 + '@babel/template': 7.23.9 + '@babel/types': 7.23.9 dev: true - /@babel/helpers@7.23.9: - resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==} + /@babel/helpers@7.24.4: + resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.23.9 - '@babel/traverse': 7.23.9 - '@babel/types': 7.23.9 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 transitivePeerDependencies: - supports-color dev: true @@ -531,15 +566,25 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/node@7.23.9(@babel/core@7.23.9): + /@babel/highlight@7.24.2: + resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.0 + dev: true + + /@babel/node@7.23.9(@babel/core@7.24.4): resolution: {integrity: sha512-/d4ju/POwlGIJlZ+NqWH1qu61wt6ZlTZZZutrK2MOSdaH1JCh726nLw/GSvAjG+LTY6CO9SsB8uWcttnFKm6yg==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/register': 7.23.7(@babel/core@7.23.9) + '@babel/core': 7.24.4 + '@babel/register': 7.23.7(@babel/core@7.24.4) commander: 4.1.1 core-js: 3.34.0 node-environment-flags: 1.0.6 @@ -552,7 +597,7 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.23.9 dev: true /@babel/parser@7.23.9: @@ -563,903 +608,932 @@ packages: '@babel/types': 7.23.9 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} + /@babel/parser@7.24.4: + resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.24.0 + dev: true + + /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.4(@babel/core@7.24.4): + resolution: {integrity: sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.4) dev: true - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.9): - resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==} + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.9): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.4): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.9): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.4): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.9): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.4): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.9): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.9): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==} + /@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.9): + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.24.4): resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} + /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.9): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.4): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.9): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.9): + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.4): resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.9): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.4): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.9): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.9): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.4): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.9): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.9): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.9): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.9): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.4): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.9): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.4): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.9): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.4): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} + /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.23.9): - resolution: {integrity: sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==} + /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.4): + resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) dev: true - /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} + /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) + '@babel/core': 7.24.4 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4) dev: true - /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} + /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} + /@babel/plugin-transform-block-scoping@7.24.4(@babel/core@7.24.4): + resolution: {integrity: sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} + /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} + /@babel/plugin-transform-class-static-block@7.24.4(@babel/core@7.24.4): + resolution: {integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9) + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) dev: true - /@babel/plugin-transform-classes@7.23.8(@babel/core@7.23.9): - resolution: {integrity: sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==} + /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} + /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/template': 7.22.15 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/template': 7.24.0 dev: true - /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} + /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} + /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} + /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} + /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) dev: true - /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} + /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} + /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9) + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) dev: true - /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==} + /@babel/plugin-transform-flow-strip-types@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.9) + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.4) dev: true - /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.9): - resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} + /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} + /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} + /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) dev: true - /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} + /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} + /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) dev: true - /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} + /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} + /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} + /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.23.9): - resolution: {integrity: sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==} + /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} + /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.9): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.4): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} + /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} + /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) dev: true - /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} + /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) dev: true - /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} + /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4) dev: true - /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} + /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) dev: true - /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} + /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) dev: true - /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} + /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) dev: true - /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} + /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} + /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} + /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) dev: true - /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} + /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.23.9): + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.4): resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9) - '@babel/types': 7.23.9 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.4) + '@babel/types': 7.24.0 dev: true - /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} + /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} + /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} + /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} + /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} + /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} + /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} + /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} + /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} + /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} + /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} + /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/preset-env@7.23.9(@babel/core@7.23.9): - resolution: {integrity: sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==} + /@babel/preset-env@7.24.4(@babel/core@7.24.4): + resolution: {integrity: sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.9 + '@babel/compat-data': 7.24.4 + '@babel/core': 7.24.4 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.9) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.9) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.9) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.9) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.9) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-async-generator-functions': 7.23.9(@babel/core@7.23.9) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.23.9) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.9) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-modules-systemjs': 7.23.9(@babel/core@7.23.9) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.9) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.9) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.9) - babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.23.9) - babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.23.9) - babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.23.9) + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.4(@babel/core@7.24.4) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.4) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.4) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.24.4) + '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoping': 7.24.4(@babel/core@7.24.4) + '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-class-static-block': 7.24.4(@babel/core@7.24.4) + '@babel/plugin-transform-classes': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-destructuring': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.4) + '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-object-rest-spread': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-private-property-in-object': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-typeof-symbol': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.24.4) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.4) + babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.4) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.4) + babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.4) core-js-compat: 3.34.0 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.9): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.4): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.6 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/types': 7.23.9 esutils: 2.0.3 dev: true - /@babel/register@7.23.7(@babel/core@7.23.9): + /@babel/register@7.23.7(@babel/core@7.24.4): resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -1486,15 +1560,6 @@ packages: regenerator-runtime: 0.14.1 dev: true - /@babel/template@7.22.15: - resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.23.5 - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 - dev: true - /@babel/template@7.23.9: resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==} engines: {node: '>=6.9.0'} @@ -1504,8 +1569,17 @@ packages: '@babel/types': 7.23.9 dev: true - /@babel/traverse@7.23.7: - resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==} + /@babel/template@7.24.0: + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + dev: true + + /@babel/traverse@7.23.9: + resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.23.5 @@ -1514,34 +1588,34 @@ packages: '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/traverse@7.23.9: - resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==} + /@babel/traverse@7.24.1: + resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.4 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.9 - '@babel/types': 7.23.9 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.23.6: - resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} + /@babel/types@7.23.9: + resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.23.4 @@ -1549,8 +1623,8 @@ packages: to-fast-properties: 2.0.0 dev: true - /@babel/types@7.23.9: - resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} + /@babel/types@7.24.0: + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.23.4 @@ -1591,8 +1665,8 @@ packages: resolution: {integrity: sha512-SZopkdH2PHgdr/tMa32m/74cLzHPXuBqyTqoODA3ExlHC3u47Fy/5wBacoA+6uOnjwVP4tVDi2gtqS4vX+6F7g==} engines: {node: '>=18.0.0'} dependencies: - '@babel/core': 7.23.9 - '@babel/eslint-parser': 7.23.10(@babel/core@7.23.9)(eslint@8.56.0) + '@babel/core': 7.24.4 + '@babel/eslint-parser': 7.24.1(@babel/core@7.24.4)(eslint@8.56.0) '@es-joy/jsdoccomment': 0.41.0 '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 @@ -1611,10 +1685,13 @@ packages: jsdoc-type-pratt-parser: 4.0.0 dev: true - /@es-joy/jsdoccomment@0.42.0: - resolution: {integrity: sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==} + /@es-joy/jsdoccomment@0.43.0: + resolution: {integrity: sha512-Q1CnsQrytI3TlCB1IVWXWeqUIPGVEKGaE7IbVdt13Nq/3i0JESAkQQERrfiQkmlpijl+++qyqPgaS31Bvc1jRQ==} engines: {node: '>=16'} dependencies: + '@types/eslint': 8.56.7 + '@types/estree': 1.0.5 + '@typescript-eslint/types': 7.5.0 comment-parser: 1.4.1 esquery: 1.5.0 jsdoc-type-pratt-parser: 4.0.0 @@ -1630,13 +1707,13 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/eslint-utils@4.4.0(eslint@9.0.0-alpha.0): + /@eslint-community/eslint-utils@4.4.0(eslint@9.0.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1662,14 +1739,14 @@ packages: - supports-color dev: true - /@eslint/eslintrc@3.0.0: - resolution: {integrity: sha512-R8p3jN1kdWvFRiRfgpUxZ4PMgfJJFt6NuLGDnnqLb7RKmsd5Xa0KqRMjmaqRO7e38ZbG/9zKPgDjeJeqsDofSA==} + /@eslint/eslintrc@3.0.2: + resolution: {integrity: sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: ajv: 6.12.6 debug: 4.3.4(supports-color@8.1.1) - espree: 9.6.1 - globals: 13.24.0 + espree: 10.0.1 + globals: 14.0.0 ignore: 5.3.0 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -1684,26 +1761,26 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@eslint/js@9.0.0-alpha.0: - resolution: {integrity: sha512-SsmCfB6P+1D7RbUjWxi206LMt3jmiVXolUHIgR2ZeJGKyXdNtXY6t3yl8mkfO1XuCJM9iGHMKzQm9H52UyuSpQ==} + /@eslint/js@9.0.0: + resolution: {integrity: sha512-RThY/MnKrhubF6+s1JflwUjPEsnCEmYCWwqa/aRISKWNXGZ9epUwft4bUMM35SdKF9xvBrLydAM1RDHd1Z//ZQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.23.9)(@types/node@20.11.16)(graphql@16.8.1): + /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.24.4)(@types/node@20.12.5)(graphql@16.8.1): resolution: {integrity: sha512-RbwVlz1gcYG62sECR1u0XqMh8w5e5XMCCZoMvPQ3nJzEBCTfXLGX727GBoRmSvY1x4gJmqNZ1lsOX7lZY14RIw==} engines: {node: '>=12'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: '@babel/code-frame': 7.23.5 - '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.23.9)(graphql@16.8.1) - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.9)(graphql@16.8.1) + '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.24.4)(graphql@16.8.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.24.4)(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) chalk: 4.1.2 debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.3.2 graphql: 16.8.1 - graphql-config: 4.5.0(@types/node@20.11.16)(graphql@16.8.1) + graphql-config: 4.5.0(@types/node@20.12.5)(graphql@16.8.1) graphql-depth-limit: 1.1.0(graphql@16.8.1) lodash.lowercase: 4.3.0 tslib: 2.6.2 @@ -1729,12 +1806,12 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.23.9)(graphql@16.8.1): + /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.24.4)(graphql@16.8.1): resolution: {integrity: sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.23.9)(graphql@16.8.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.24.4)(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) globby: 11.1.0 graphql: 16.8.1 @@ -1778,7 +1855,7 @@ packages: - utf-8-validate dev: true - /@graphql-tools/executor-http@0.1.10(@types/node@20.11.16)(graphql@16.8.1): + /@graphql-tools/executor-http@0.1.10(@types/node@20.12.5)(graphql@16.8.1): resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1789,7 +1866,7 @@ packages: dset: 3.1.3 extract-files: 11.0.0 graphql: 16.8.1 - meros: 1.3.0(@types/node@20.11.16) + meros: 1.3.0(@types/node@20.12.5) tslib: 2.6.2 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -1838,15 +1915,15 @@ packages: unixify: 1.0.0 dev: true - /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.23.9)(graphql@16.8.1): + /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.24.4)(graphql@16.8.1): resolution: {integrity: sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@babel/parser': 7.23.6 - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.9) - '@babel/traverse': 7.23.7 - '@babel/types': 7.23.6 + '@babel/parser': 7.23.9 + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.24.4) + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 '@graphql-tools/utils': 9.2.1(graphql@16.8.1) graphql: 16.8.1 tslib: 2.6.2 @@ -1912,7 +1989,7 @@ packages: value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.11.16)(graphql@16.8.1): + /@graphql-tools/url-loader@7.17.18(@types/node@20.12.5)(graphql@16.8.1): resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1920,7 +1997,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@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.11.16)(graphql@16.8.1) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.12.5)(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) @@ -1993,6 +2070,17 @@ packages: - supports-color dev: true + /@humanwhocodes/config-array@0.12.3: + resolution: {integrity: sha512-jsNnTBlMWuTpDkeE3on7+dWJi0D6fdDfeANj/w7MpS8ztROCoLvIO2nG0CcFj+E4k8j4QrSTh4Oryi3i2G669g==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.4(supports-color@8.1.1) + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + /@humanwhocodes/module-importer@1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} @@ -2002,6 +2090,10 @@ packages: resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} dev: true + /@humanwhocodes/object-schema@2.0.3: + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + dev: true + /@isaacs/cliui@8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -2039,6 +2131,15 @@ packages: '@jridgewell/trace-mapping': 0.3.20 dev: true + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + dev: true + /@jridgewell/resolve-uri@3.1.1: resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} @@ -2049,6 +2150,11 @@ packages: engines: {node: '>=6.0.0'} dev: true + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + dev: true + /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true @@ -2060,6 +2166,13 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + /@next/eslint-plugin-next@13.5.6: resolution: {integrity: sha512-ng7pU/DDsxPgT6ZPvuprxrkeew3XaRf4LAT4FabaEO/hAbvVx4P7wqnqdbTdDn1kgTvsI4tpIgT4Awn/m0bGbg==} dependencies: @@ -2119,95 +2232,101 @@ packages: semver: 7.6.0 dev: true - /@octokit/auth-token@4.0.0: - resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} + /@octokit/auth-token@5.1.0: + resolution: {integrity: sha512-JH+5PhVMjpbBuKlykiseCHa2uZdEd8Qm/N9Kpqncx4o/wkGF38gqVjIP2gZqfaP3nxFZPpg0FwGClKzBi6nS2g==} engines: {node: '>= 18'} dev: true - /@octokit/core@5.0.2: - resolution: {integrity: sha512-cZUy1gUvd4vttMic7C0lwPed8IYXWYp8kHIMatyhY8t8n3Cpw2ILczkV5pGMPqef7v0bLo0pOHrEHarsau2Ydg==} + /@octokit/core@6.1.1: + resolution: {integrity: sha512-uVypPdnZV7YoEa69Ky2kTSw3neFLGT0PZ54OwUMDph7w6TmhF0ZnoVcvb/kYnjDHCFo2mfoeRDYifLKhLNasUg==} engines: {node: '>= 18'} dependencies: - '@octokit/auth-token': 4.0.0 - '@octokit/graphql': 7.0.2 - '@octokit/request': 8.1.6 - '@octokit/request-error': 5.0.1 - '@octokit/types': 12.4.0 - before-after-hook: 2.2.3 - universal-user-agent: 6.0.1 + '@octokit/auth-token': 5.1.0 + '@octokit/graphql': 8.1.0 + '@octokit/request': 9.0.1 + '@octokit/request-error': 6.1.0 + '@octokit/types': 13.1.0 + before-after-hook: 3.0.2 + universal-user-agent: 7.0.2 dev: true - /@octokit/endpoint@9.0.4: - resolution: {integrity: sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==} + /@octokit/endpoint@10.1.0: + resolution: {integrity: sha512-ogZ5uLMeGBZUzS32fNt9j+dNw3kkEn5CSw4CVkN1EvCNdFYWrQ5diQR6Hh52VrPR0oayIoYTqQFL/l8RqkV0qw==} engines: {node: '>= 18'} dependencies: - '@octokit/types': 12.4.0 - universal-user-agent: 6.0.1 + '@octokit/types': 13.1.0 + universal-user-agent: 7.0.2 dev: true - /@octokit/graphql@7.0.2: - resolution: {integrity: sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==} + /@octokit/graphql@8.1.0: + resolution: {integrity: sha512-XDvj6GcUnQYgbCLXElt3vZDzNIPGvGiwxQO2XzsvfVUjebGh0E5eCD/1My9zUGSNKaGVZitVuO8LMziGmoFryg==} engines: {node: '>= 18'} dependencies: - '@octokit/request': 8.1.6 - '@octokit/types': 12.4.0 - universal-user-agent: 6.0.1 + '@octokit/request': 9.0.1 + '@octokit/types': 13.1.0 + universal-user-agent: 7.0.2 dev: true /@octokit/openapi-types@19.1.0: resolution: {integrity: sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==} dev: true - /@octokit/plugin-paginate-rest@9.1.5(@octokit/core@5.0.2): - resolution: {integrity: sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==} + /@octokit/openapi-types@20.0.0: + resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==} + dev: true + + /@octokit/openapi-types@21.2.0: + resolution: {integrity: sha512-xx+Xd6I7rYvul/hgUDqv6TeGX0IOGnhSg9IOeYgd/uI7IAqUy6DE2B6Ipv2M4mWoxaMcWjIzgTIcv8pMO3F3vw==} + dev: true + + /@octokit/plugin-paginate-rest@10.1.0(@octokit/core@6.1.1): + resolution: {integrity: sha512-G8RdudUQr532C+LAOT58MznwFFu+wkJJjbTJF1xBxPr8XbzCg1NI0nYm6EPcuLWXLI3T6wzFm2fbXqDkfdC7Ow==} engines: {node: '>= 18'} peerDependencies: - '@octokit/core': '>=5' + '@octokit/core': '>=6' dependencies: - '@octokit/core': 5.0.2 - '@octokit/types': 12.4.0 + '@octokit/core': 6.1.1 + '@octokit/types': 12.6.0 dev: true - /@octokit/plugin-retry@6.0.1(@octokit/core@5.0.2): - resolution: {integrity: sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==} + /@octokit/plugin-retry@7.1.0(@octokit/core@6.1.1): + resolution: {integrity: sha512-6mc4xNtT6eoDBGrJJn0sFALUmIba2f7Wx+G8XV9GkBLcyX5PogBdx2mDMW5yPPqSD/y23tYagkjOLX9sT7O6jA==} engines: {node: '>= 18'} peerDependencies: - '@octokit/core': '>=5' + '@octokit/core': '>=6' dependencies: - '@octokit/core': 5.0.2 - '@octokit/request-error': 5.0.1 - '@octokit/types': 12.4.0 + '@octokit/core': 6.1.1 + '@octokit/request-error': 6.1.0 + '@octokit/types': 13.1.0 bottleneck: 2.19.5 dev: true - /@octokit/plugin-throttling@8.1.3(@octokit/core@5.0.2): - resolution: {integrity: sha512-pfyqaqpc0EXh5Cn4HX9lWYsZ4gGbjnSmUILeu4u2gnuM50K/wIk9s1Pxt3lVeVwekmITgN/nJdoh43Ka+vye8A==} + /@octokit/plugin-throttling@9.1.0(@octokit/core@6.1.1): + resolution: {integrity: sha512-16lDMMhChavhvXKr2zRK7sD+hTpuVm697xZNf1a0C/MFRZU8CFkrNJEYX7Fqo2dc44lISp7V5Vm0sgJIx2bRkw==} engines: {node: '>= 18'} peerDependencies: - '@octokit/core': ^5.0.0 + '@octokit/core': ^6.0.0 dependencies: - '@octokit/core': 5.0.2 - '@octokit/types': 12.4.0 + '@octokit/core': 6.1.1 + '@octokit/types': 13.1.0 bottleneck: 2.19.5 dev: true - /@octokit/request-error@5.0.1: - resolution: {integrity: sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==} + /@octokit/request-error@6.1.0: + resolution: {integrity: sha512-xcLJv4IgfWIOEEVZwfhUN3yHNWJL0AMw1J1Ba8BofM9RdDTbapg6MO4zNxlPS4XXX9aAIsbDRa47K57EhgeVAw==} engines: {node: '>= 18'} dependencies: - '@octokit/types': 12.4.0 - deprecation: 2.3.1 - once: 1.4.0 + '@octokit/types': 13.1.0 dev: true - /@octokit/request@8.1.6: - resolution: {integrity: sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ==} + /@octokit/request@9.0.1: + resolution: {integrity: sha512-kL+cAcbSl3dctYLuJmLfx6Iku2MXXy0jszhaEIjQNaCp4zjHXrhVAHeuaRdNvJjW9qjl3u1MJ72+OuBP0YW/pg==} engines: {node: '>= 18'} dependencies: - '@octokit/endpoint': 9.0.4 - '@octokit/request-error': 5.0.1 + '@octokit/endpoint': 10.1.0 + '@octokit/request-error': 6.1.0 '@octokit/types': 12.4.0 - universal-user-agent: 6.0.1 + universal-user-agent: 7.0.2 dev: true /@octokit/types@12.4.0: @@ -2216,6 +2335,18 @@ packages: '@octokit/openapi-types': 19.1.0 dev: true + /@octokit/types@12.6.0: + resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} + dependencies: + '@octokit/openapi-types': 20.0.0 + dev: true + + /@octokit/types@13.1.0: + resolution: {integrity: sha512-nBwAFOYqVUUJ2AZFK4ZzESQptaAVqdTDKk8gE0Xr0o99WuPDSrhUC38x0F40xD9OUxXhOOuZKWNNVVLPSHQDvQ==} + dependencies: + '@octokit/openapi-types': 21.2.0 + dev: true + /@peculiar/asn1-schema@2.3.8: resolution: {integrity: sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA==} dependencies: @@ -2287,9 +2418,9 @@ packages: resolution: {integrity: sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw==} dev: true - /@semantic-release/commit-analyzer@11.1.0(semantic-release@23.0.0): - resolution: {integrity: sha512-cXNTbv3nXR2hlzHjAMgbuiQVtvWHTlwwISt60B+4NZv01y/QRY7p2HcJm8Eh2StzcTJoNnflvKjHH/cjFS7d5g==} - engines: {node: ^18.17 || >=20.6.1} + /@semantic-release/commit-analyzer@12.0.0(semantic-release@23.0.7): + resolution: {integrity: sha512-qG+md5gdes+xa8zP7lIo1fWE17zRdO8yMCaxh9lyL65TQleoSv8WHHOqRURfghTytUh+NpkSyBprQ5hrkxOKVQ==} + engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=20.1.0' dependencies: @@ -2300,7 +2431,7 @@ packages: import-from-esm: 1.3.3 lodash-es: 4.17.21 micromatch: 4.0.5 - semantic-release: 23.0.0(typescript@5.3.3) + semantic-release: 23.0.7(typescript@5.3.3) transitivePeerDependencies: - supports-color dev: true @@ -2310,16 +2441,16 @@ packages: engines: {node: '>=18'} dev: true - /@semantic-release/github@9.2.6(semantic-release@23.0.0): - resolution: {integrity: sha512-shi+Lrf6exeNZF+sBhK+P011LSbhmIAoUEgEY6SsxF8irJ+J2stwI5jkyDQ+4gzYyDImzV6LCKdYB9FXnQRWKA==} - engines: {node: '>=18'} + /@semantic-release/github@10.0.2(semantic-release@23.0.7): + resolution: {integrity: sha512-SP5ihhv/uQa8vPuWKmbJrrzfv8lRUkDFC6qwgaWoorrflN1DEW0IGCa9w/PxUp8Ad3dbvXZPmpXdGiP3eyTzhg==} + engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=20.1.0' dependencies: - '@octokit/core': 5.0.2 - '@octokit/plugin-paginate-rest': 9.1.5(@octokit/core@5.0.2) - '@octokit/plugin-retry': 6.0.1(@octokit/core@5.0.2) - '@octokit/plugin-throttling': 8.1.3(@octokit/core@5.0.2) + '@octokit/core': 6.1.1 + '@octokit/plugin-paginate-rest': 10.1.0(@octokit/core@6.1.1) + '@octokit/plugin-retry': 7.1.0(@octokit/core@6.1.1) + '@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.4(supports-color@8.1.1) @@ -2327,19 +2458,19 @@ packages: globby: 14.0.0 http-proxy-agent: 7.0.0 https-proxy-agent: 7.0.2 - issue-parser: 6.0.0 + issue-parser: 7.0.0 lodash-es: 4.17.21 mime: 4.0.1 p-filter: 4.1.0 - semantic-release: 23.0.0(typescript@5.3.3) + semantic-release: 23.0.7(typescript@5.3.3) url-join: 5.0.0 transitivePeerDependencies: - supports-color dev: true - /@semantic-release/npm@11.0.2(semantic-release@23.0.0): - resolution: {integrity: sha512-owtf3RjyPvRE63iUKZ5/xO4uqjRpVQDUB9+nnXj0xwfIeM9pRl+cG+zGDzdftR4m3f2s4Wyf3SexW+kF5DFtWA==} - engines: {node: ^18.17 || >=20} + /@semantic-release/npm@12.0.0(semantic-release@23.0.7): + resolution: {integrity: sha512-72TVYQCH9NvVsO/y13eF8vE4bNnfls518+4KcFwJUKi7AtA/ZXoNgSg9gTTfw5eMZMkiH0izUrpGXgZE/cSQhA==} + engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=20.1.0' dependencies: @@ -2350,18 +2481,18 @@ packages: lodash-es: 4.17.21 nerf-dart: 1.0.0 normalize-url: 8.0.0 - npm: 10.2.5 + npm: 10.5.1 rc: 1.2.8 read-pkg: 9.0.1 registry-auth-token: 5.0.2 - semantic-release: 23.0.0(typescript@5.3.3) + semantic-release: 23.0.7(typescript@5.3.3) semver: 7.6.0 tempy: 3.1.0 dev: true - /@semantic-release/release-notes-generator@12.1.0(semantic-release@23.0.0): - resolution: {integrity: sha512-g6M9AjUKAZUZnxaJZnouNBeDNTCUrJ5Ltj+VJ60gJeDaRRahcHsry9HW8yKrnKkKNkx5lbWiEP1FPMqVNQz8Kg==} - engines: {node: ^18.17 || >=20.6.1} + /@semantic-release/release-notes-generator@13.0.0(semantic-release@23.0.7): + resolution: {integrity: sha512-LEeZWb340keMYuREMyxrODPXJJ0JOL8D/mCl74B4LdzbxhtXV2LrPN2QBEcGJrlQhoqLO0RhxQb6masHytKw+A==} + engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=20.1.0' dependencies: @@ -2375,7 +2506,7 @@ packages: into-stream: 7.0.0 lodash-es: 4.17.21 read-pkg-up: 11.0.0 - semantic-release: 23.0.0(typescript@5.3.3) + semantic-release: 23.0.7(typescript@5.3.3) transitivePeerDependencies: - supports-color dev: true @@ -2390,8 +2521,8 @@ packages: engines: {node: '>=18'} dev: true - /@types/chai@4.3.11: - resolution: {integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==} + /@types/chai@4.3.14: + resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==} dev: true /@types/debug@4.1.12: @@ -2400,12 +2531,11 @@ packages: '@types/ms': 0.7.34 dev: true - /@types/eslint@8.56.2: - resolution: {integrity: sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==} + /@types/eslint@8.56.7: + resolution: {integrity: sha512-SjDvI/x3zsZnOkYZ3lCt9lOZWZLB2jIlNKz+LBgCtDurK0JZcwucxYHn1w2BJkD34dgX9Tjnak0txtq4WTggEA==} dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 - dev: true /@types/esquery@1.5.3: resolution: {integrity: sha512-c55hQOcoPkWDfuEN9EdP1YyNH4D909U40gUEpY0nB5PWHExWHEPxcx3sx0fJ1Gzf4j1OpWktmIgciIlpgHtfDg==} @@ -2415,7 +2545,6 @@ packages: /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - dev: true /@types/istanbul-lib-coverage@2.0.6: resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} @@ -2423,7 +2552,6 @@ packages: /@types/json-schema@7.0.15: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - dev: true /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} @@ -2447,8 +2575,8 @@ packages: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} dev: true - /@types/node@20.11.16: - resolution: {integrity: sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==} + /@types/node@20.12.5: + resolution: {integrity: sha512-BD+BjQ9LS/D8ST9p5uqBxghlN+S42iuNxjsUGjeZobe/ciXzk2qb1B6IXc6AnRLS+yFJRpN2IPEHMzwspfDJNw==} dependencies: undici-types: 5.26.5 dev: true @@ -2457,8 +2585,8 @@ packages: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true - /@types/semver@7.5.6: - resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} dev: true /@types/spdx-expression-parse@3.0.5: @@ -2468,10 +2596,10 @@ packages: /@types/ws@8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 20.11.16 + '@types/node': 20.12.5 dev: true - /@typescript-eslint/eslint-plugin@6.19.1(@typescript-eslint/parser@6.21.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /@typescript-eslint/eslint-plugin@6.19.1(@typescript-eslint/parser@6.21.0)(eslint@9.0.0)(typescript@5.3.3): resolution: {integrity: sha512-roQScUGFruWod9CEyoV5KlCYrubC/fvG8/1zXuT0WTcxX87GnMMmnksMwSg99lo1xiKrBzw2icsJPMAw1OtKxg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2483,13 +2611,13 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.21.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@9.0.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': 6.19.1 - '@typescript-eslint/type-utils': 6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/type-utils': 6.19.1(eslint@9.0.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.1(eslint@9.0.0)(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.19.1 debug: 4.3.4(supports-color@8.1.1) - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 graphemer: 1.4.0 ignore: 5.3.0 natural-compare: 1.4.0 @@ -2500,14 +2628,14 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils@5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /@typescript-eslint/experimental-utils@5.62.0(eslint@9.0.0)(typescript@5.3.3): resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) - eslint: 9.0.0-alpha.0 + '@typescript-eslint/utils': 5.62.0(eslint@9.0.0)(typescript@5.3.3) + eslint: 9.0.0 transitivePeerDependencies: - supports-color - typescript @@ -2534,7 +2662,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.21.0(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /@typescript-eslint/parser@6.21.0(eslint@9.0.0)(typescript@5.3.3): resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2549,7 +2677,28 @@ packages: '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@7.5.0(eslint@9.0.0)(typescript@5.3.3): + resolution: {integrity: sha512-cj+XGhNujfD2/wzR1tabNsidnYRaFfEkcULdcIyVBYcXjBvBKOes+mpMBP7hMpOyk+gBcfXsrg4NBGAStQyxjQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 7.5.0 + '@typescript-eslint/types': 7.5.0 + '@typescript-eslint/typescript-estree': 7.5.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.5.0 + debug: 4.3.4(supports-color@8.1.1) + eslint: 9.0.0 typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -2587,7 +2736,15 @@ packages: '@typescript-eslint/visitor-keys': 6.21.0 dev: true - /@typescript-eslint/type-utils@6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /@typescript-eslint/scope-manager@7.5.0: + resolution: {integrity: sha512-Z1r7uJY0MDeUlql9XJ6kRVgk/sP11sr3HKXn268HZyqL7i4cEfrdFuSSY/0tUqT37l5zT0tJOsuDP16kio85iA==} + engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.5.0 + '@typescript-eslint/visitor-keys': 7.5.0 + dev: true + + /@typescript-eslint/type-utils@6.19.1(eslint@9.0.0)(typescript@5.3.3): resolution: {integrity: sha512-0vdyld3ecfxJuddDjACUvlAeYNrHP/pDeQk2pWBR2ESeEzQhg52DF53AbI9QCBkYE23lgkhLCZNkHn2hEXXYIg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2598,9 +2755,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) - '@typescript-eslint/utils': 6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.1(eslint@9.0.0)(typescript@5.3.3) debug: 4.3.4(supports-color@8.1.1) - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: @@ -2627,6 +2784,10 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true + /@typescript-eslint/types@7.5.0: + resolution: {integrity: sha512-tv5B4IHeAdhR7uS4+bf8Ov3k793VEVHd45viRRkehIUZxm0WF82VPiLgHzA/Xl4TGPg1ZD49vfxBKFPecD5/mg==} + engines: {node: ^18.18.0 || >=20.0.0} + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2714,19 +2875,41 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /@typescript-eslint/typescript-estree@7.5.0(typescript@5.3.3): + resolution: {integrity: sha512-YklQQfe0Rv2PZEueLTUffiQGKQneiIEKKnfIqPIOxgM9lKSZFCjT5Ad4VqRKj/U4+kQE3fa8YQpskViL7WjdPQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 7.5.0 + '@typescript-eslint/visitor-keys': 7.5.0 + debug: 4.3.4(supports-color@8.1.1) + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.6.0 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@5.62.0(eslint@9.0.0)(typescript@5.3.3): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-alpha.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.6 + '@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.0.0-alpha.0 + eslint: 9.0.0 eslint-scope: 5.1.1 semver: 7.6.0 transitivePeerDependencies: @@ -2734,38 +2917,38 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /@typescript-eslint/utils@6.16.0(eslint@9.0.0)(typescript@5.3.3): resolution: {integrity: sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-alpha.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.6 + '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 6.16.0 '@typescript-eslint/types': 6.16.0 '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/utils@6.19.1(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /@typescript-eslint/utils@6.19.1(eslint@9.0.0)(typescript@5.3.3): resolution: {integrity: sha512-JvjfEZuP5WoMqwh9SPAPDSHSg9FBHHGhjPugSRxu5jMfjvBpq5/sGTD+9M9aQ5sh6iJ8AY/Kk/oUYVEMAPwi7w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-alpha.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.6 + '@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.0.0-alpha.0 + eslint: 9.0.0 semver: 7.6.0 transitivePeerDependencies: - supports-color @@ -2804,6 +2987,14 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@typescript-eslint/visitor-keys@7.5.0: + resolution: {integrity: sha512-mcuHM/QircmA6O7fy6nn2w/3ditQkj+SgtOc8DW3uQ10Yfj42amm2i+6F2K4YAOPNNTmE6iM1ynM6lrSwdendA==} + engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.5.0 + eslint-visitor-keys: 3.4.3 + dev: true + /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true @@ -2851,14 +3042,6 @@ packages: acorn: 2.7.0 dev: true - /acorn-jsx@5.3.2(acorn@8.11.2): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.11.2 - dev: true - /acorn-jsx@5.3.2(acorn@8.11.3): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -2873,12 +3056,6 @@ packages: hasBin: true dev: true - /acorn@8.11.2: - resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - /acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} @@ -2960,8 +3137,8 @@ packages: engines: {node: '>=12'} dev: true - /ansicolors@0.3.2: - resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==} + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} dev: true /anymatch@3.1.3: @@ -3210,38 +3387,38 @@ packages: - supports-color dev: true - /babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.23.9): - resolution: {integrity: sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==} + /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.4): + resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.9 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) + '@babel/compat-data': 7.24.4 + '@babel/core': 7.24.4 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.4) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.23.9): - resolution: {integrity: sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==} + /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.4): + resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) - core-js-compat: 3.34.0 + '@babel/core': 7.24.4 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.4) + core-js-compat: 3.36.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.23.9): - resolution: {integrity: sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==} + /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.4): + resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) + '@babel/core': 7.24.4 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.4) transitivePeerDependencies: - supports-color dev: true @@ -3269,8 +3446,8 @@ packages: tweetnacl: 0.14.5 dev: true - /before-after-hook@2.2.3: - resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + /before-after-hook@3.0.2: + resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==} dev: true /binary-extensions@2.2.0: @@ -3353,6 +3530,17 @@ packages: update-browserslist-db: 1.0.13(browserslist@4.22.2) dev: true + /browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001606 + electron-to-chromium: 1.4.729 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.23.0) + dev: true + /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true @@ -3398,7 +3586,7 @@ packages: dependencies: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.3 - glob: 10.3.10 + glob: 10.3.12 lru-cache: 10.1.0 minipass: 7.0.4 minipass-collect: 2.0.1 @@ -3471,12 +3659,8 @@ packages: resolution: {integrity: sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==} dev: true - /cardinal@2.1.1: - resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==} - hasBin: true - dependencies: - ansicolors: 0.3.2 - redeyed: 2.1.1 + /caniuse-lite@1.0.30001606: + resolution: {integrity: sha512-LPbwnW4vfpJId225pwjZJOgX1m9sGfbw/RKJvw/t0QhYOOaTXHvkjVGFGPpvwEzufrjvTlsULnVTxdy4/6cqkg==} dev: true /caseless@0.12.0: @@ -3594,6 +3778,19 @@ packages: restore-cursor: 4.0.0 dev: true + /cli-highlight@2.1.11: + resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} + engines: {node: '>=8.0.0', npm: '>=5.0.0'} + hasBin: true + dependencies: + chalk: 4.1.2 + highlight.js: 10.7.3 + mz: 2.7.0 + parse5: 5.1.1 + parse5-htmlparser2-tree-adapter: 6.0.1 + yargs: 16.2.0 + dev: true + /cli-table3@0.6.3: resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} engines: {node: 10.* || >= 12.*} @@ -3772,6 +3969,11 @@ packages: split2: 4.2.0 dev: true + /convert-hrtime@5.0.0: + resolution: {integrity: sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==} + engines: {node: '>=12'} + dev: true + /convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true @@ -3787,6 +3989,12 @@ packages: browserslist: 4.22.2 dev: true + /core-js-compat@3.36.1: + resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} + dependencies: + browserslist: 4.23.0 + dev: true + /core-js-pure@3.34.0: resolution: {integrity: sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg==} requiresBuild: true @@ -4032,10 +4240,6 @@ packages: engines: {node: '>=0.4.0'} dev: true - /deprecation@2.3.1: - resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} - dev: true - /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -4128,6 +4332,10 @@ packages: resolution: {integrity: sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==} dev: true + /electron-to-chromium@1.4.729: + resolution: {integrity: sha512-bx7+5Saea/qu14kmPTDHQxkp2UnziG3iajUQu3BxFvCOnpAJdDbMV4rSl+EqFDkkpNNVUFlR1kDfpL59xfy1HA==} + dev: true + /emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} dev: true @@ -4341,59 +4549,59 @@ packages: lodash.zip: 4.2.0 dev: true - /eslint-compat-utils@0.1.2(eslint@9.0.0-alpha.0): + /eslint-compat-utils@0.1.2(eslint@9.0.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 dev: true - /eslint-config-canonical@42.8.1(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.2)(@types/node@20.11.16)(eslint@9.0.0-alpha.0)(graphql@16.8.1)(typescript@5.3.3): + /eslint-config-canonical@42.8.1(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.7)(@types/node@20.12.5)(eslint@9.0.0)(graphql@16.8.1)(typescript@5.3.3): resolution: {integrity: sha512-OsQD1TQJAVUH/tnLwumPyKFnB+wcZLIwIUJ73rLupvgD9XzinBaDf8ZAz1cPIkG/Fej3SgKvHWiPSFAp2Nd27w==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 dependencies: - '@babel/core': 7.23.9 - '@babel/eslint-parser': 7.23.10(@babel/core@7.23.9)(eslint@9.0.0-alpha.0) - '@babel/eslint-plugin': 7.23.5(@babel/eslint-parser@7.23.10)(eslint@9.0.0-alpha.0) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.9) - '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.23.9)(@types/node@20.11.16)(graphql@16.8.1) + '@babel/core': 7.24.4 + '@babel/eslint-parser': 7.24.1(@babel/core@7.24.4)(eslint@9.0.0) + '@babel/eslint-plugin': 7.23.5(@babel/eslint-parser@7.24.1)(eslint@9.0.0) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.24.4) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.24.4)(@types/node@20.12.5)(graphql@16.8.1) '@next/eslint-plugin-next': 13.5.6 '@rushstack/eslint-patch': 1.6.1 - '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.21.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.21.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) - eslint: 9.0.0-alpha.0 - eslint-config-prettier: 9.1.0(eslint@9.0.0-alpha.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) - eslint-plugin-ava: 14.0.0(eslint@9.0.0-alpha.0) - eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) - eslint-plugin-cypress: 2.15.1(eslint@9.0.0-alpha.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@9.0.0-alpha.0) - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@9.0.0-alpha.0) - eslint-plugin-fp: 2.3.0(eslint@9.0.0-alpha.0) - eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) - eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) - eslint-plugin-jsdoc: 46.9.1(eslint@9.0.0-alpha.0) - eslint-plugin-jsonc: 2.11.2(eslint@9.0.0-alpha.0) - eslint-plugin-jsx-a11y: 6.8.0(eslint@9.0.0-alpha.0) - eslint-plugin-lodash: 7.4.0(eslint@9.0.0-alpha.0) - eslint-plugin-mocha: 10.2.0(eslint@9.0.0-alpha.0) + '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.21.0)(eslint@9.0.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@9.0.0)(typescript@5.3.3) + eslint: 9.0.0 + eslint-config-prettier: 9.1.0(eslint@9.0.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0) + eslint-plugin-ava: 14.0.0(eslint@9.0.0) + eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0)(typescript@5.3.3) + eslint-plugin-cypress: 2.15.1(eslint@9.0.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@9.0.0) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@9.0.0) + eslint-plugin-fp: 2.3.0(eslint@9.0.0) + eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0) + eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.19.1)(eslint@9.0.0)(typescript@5.3.3) + eslint-plugin-jsdoc: 46.9.1(eslint@9.0.0) + eslint-plugin-jsonc: 2.11.2(eslint@9.0.0) + eslint-plugin-jsx-a11y: 6.8.0(eslint@9.0.0) + eslint-plugin-lodash: 7.4.0(eslint@9.0.0) + eslint-plugin-mocha: 10.2.0(eslint@9.0.0) eslint-plugin-modules-newline: 0.0.6 - eslint-plugin-n: 16.5.0(eslint@9.0.0-alpha.0) - eslint-plugin-prettier: 5.1.2(@types/eslint@8.56.2)(eslint-config-prettier@9.1.0)(eslint@9.0.0-alpha.0)(prettier@3.1.1) - eslint-plugin-promise: 6.1.1(eslint@9.0.0-alpha.0) - eslint-plugin-react: 7.33.2(eslint@9.0.0-alpha.0) - eslint-plugin-react-hooks: 4.6.0(eslint@9.0.0-alpha.0) - eslint-plugin-regexp: 1.15.0(eslint@9.0.0-alpha.0) - eslint-plugin-simple-import-sort: 10.0.0(eslint@9.0.0-alpha.0) - eslint-plugin-typescript-sort-keys: 3.1.0(@typescript-eslint/parser@6.21.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) - eslint-plugin-unicorn: 48.0.1(eslint@9.0.0-alpha.0) - eslint-plugin-vitest: 0.3.20(@typescript-eslint/eslint-plugin@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3) - eslint-plugin-yml: 1.11.0(eslint@9.0.0-alpha.0) - eslint-plugin-zod: 1.4.0(eslint@9.0.0-alpha.0) + eslint-plugin-n: 16.5.0(eslint@9.0.0) + eslint-plugin-prettier: 5.1.2(@types/eslint@8.56.7)(eslint-config-prettier@9.1.0)(eslint@9.0.0)(prettier@3.1.1) + eslint-plugin-promise: 6.1.1(eslint@9.0.0) + eslint-plugin-react: 7.33.2(eslint@9.0.0) + eslint-plugin-react-hooks: 4.6.0(eslint@9.0.0) + eslint-plugin-regexp: 1.15.0(eslint@9.0.0) + eslint-plugin-simple-import-sort: 10.0.0(eslint@9.0.0) + eslint-plugin-typescript-sort-keys: 3.1.0(@typescript-eslint/parser@6.21.0)(eslint@9.0.0)(typescript@5.3.3) + eslint-plugin-unicorn: 48.0.1(eslint@9.0.0) + eslint-plugin-vitest: 0.3.20(@typescript-eslint/eslint-plugin@6.19.1)(eslint@9.0.0)(typescript@5.3.3) + eslint-plugin-yml: 1.11.0(eslint@9.0.0) + eslint-plugin-zod: 1.4.0(eslint@9.0.0) prettier: 3.1.1 ramda: 0.29.1 yaml-eslint-parser: 1.2.2 @@ -4415,13 +4623,13 @@ packages: - vitest dev: true - /eslint-config-prettier@9.1.0(eslint@9.0.0-alpha.0): + /eslint-config-prettier@9.1.0(eslint@9.0.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 dev: true /eslint-import-resolver-node@0.3.9: @@ -4434,7 +4642,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4443,9 +4651,9 @@ packages: dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 - eslint: 9.0.0-alpha.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) - eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint: 9.0.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0) + eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0) fast-glob: 3.3.2 get-tsconfig: 4.7.2 is-core-module: 2.13.1 @@ -4457,7 +4665,37 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 6.21.0(eslint@9.0.0)(typescript@5.3.3) + debug: 3.2.7 + eslint: 9.0.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0) + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.5.0)(eslint-import-resolver-node@0.3.9)(eslint@9.0.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4478,24 +4716,23 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.21.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.5.0(eslint@9.0.0)(typescript@5.3.3) debug: 3.2.7 - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-ava@14.0.0(eslint@9.0.0-alpha.0): + /eslint-plugin-ava@14.0.0(eslint@9.0.0): resolution: {integrity: sha512-XmKT6hppaipwwnLVwwvQliSU6AF1QMHiNoLD5JQfzhUhf0jY7CO0O624fQrE+Y/fTb9vbW8r77nKf7M/oHulxw==} engines: {node: '>=14.17 <15 || >=16.4'} peerDependencies: eslint: '>=8.26.0' dependencies: enhance-visitors: 1.0.0 - eslint: 9.0.0-alpha.0 - eslint-utils: 3.0.0(eslint@9.0.0-alpha.0) + eslint: 9.0.0 + eslint-utils: 3.0.0(eslint@9.0.0) espree: 9.6.1 espurify: 2.1.1 import-modules: 2.1.0 @@ -4504,15 +4741,15 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0)(typescript@5.3.3): resolution: {integrity: sha512-0Egc0FKOnCRdu3bFEJhfHkdkusIgW0UxdemukkowZQnQsnf12FHSJ7K26b+tZ5pKB7cTyECSaqvEpoIJfplX4g==} engines: {node: '>=16.0.0'} dependencies: - '@typescript-eslint/utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.16.0(eslint@9.0.0)(typescript@5.3.3) chance: 1.1.11 debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0-alpha.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -4533,39 +4770,39 @@ packages: - typescript dev: true - /eslint-plugin-cypress@2.15.1(eslint@9.0.0-alpha.0): + /eslint-plugin-cypress@2.15.1(eslint@9.0.0): resolution: {integrity: sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 globals: 13.24.0 dev: true - /eslint-plugin-es-x@7.5.0(eslint@9.0.0-alpha.0): + /eslint-plugin-es-x@7.5.0(eslint@9.0.0): resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-alpha.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) '@eslint-community/regexpp': 4.10.0 - eslint: 9.0.0-alpha.0 - eslint-compat-utils: 0.1.2(eslint@9.0.0-alpha.0) + eslint: 9.0.0 + eslint-compat-utils: 0.1.2(eslint@9.0.0) dev: true - /eslint-plugin-eslint-comments@3.2.0(eslint@9.0.0-alpha.0): + /eslint-plugin-eslint-comments@3.2.0(eslint@9.0.0): resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' dependencies: escape-string-regexp: 1.0.5 - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 ignore: 5.3.0 dev: true - /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@9.0.0-alpha.0): + /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@9.0.0): resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -4573,27 +4810,27 @@ packages: '@babel/plugin-transform-react-jsx': ^7.14.9 eslint: ^8.1.0 dependencies: - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.9) - eslint: 9.0.0-alpha.0 + '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.4) + eslint: 9.0.0 lodash: 4.17.21 string-natural-compare: 3.0.1 dev: true - /eslint-plugin-fp@2.3.0(eslint@9.0.0-alpha.0): + /eslint-plugin-fp@2.3.0(eslint@9.0.0): resolution: {integrity: sha512-3n2oHibwoIxAht9/+ZaTldhI6brXORgl8oNXqZd+d9xuAQt2SBJ2/aml0oQRMWvXrgsz2WG6wfC++NjzSG3prA==} engines: {node: '>=4.0.0'} peerDependencies: eslint: '>=3' dependencies: create-eslint-index: 1.0.0 - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 eslint-ast-utils: 1.1.0 lodash: 4.17.21 req-all: 0.1.0 dev: true - /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0): + /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0): resolution: {integrity: sha512-ORizX37MelIWLbMyqI7hi8VJMf7A0CskMmYkB+lkCX3aF4pkGV7kwx5bSEb4qx7Yce2rAf9s34HqDRPjGRZPNQ==} engines: {node: '>=12'} peerDependencies: @@ -4601,9 +4838,9 @@ packages: dependencies: debug: 4.3.4(supports-color@8.1.1) doctrine: 3.0.0 - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0-alpha.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.5.0)(eslint-import-resolver-node@0.3.9)(eslint@9.0.0) get-tsconfig: 4.7.2 is-glob: 4.0.3 minimatch: 3.1.2 @@ -4615,7 +4852,7 @@ packages: - supports-color dev: true - /eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.19.1)(eslint@9.0.0)(typescript@5.3.3): resolution: {integrity: sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -4628,15 +4865,15 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.21.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) - '@typescript-eslint/utils': 5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) - eslint: 9.0.0-alpha.0 + '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.21.0)(eslint@9.0.0)(typescript@5.3.3) + '@typescript-eslint/utils': 5.62.0(eslint@9.0.0)(typescript@5.3.3) + eslint: 9.0.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsdoc@46.9.1(eslint@9.0.0-alpha.0): + /eslint-plugin-jsdoc@46.9.1(eslint@9.0.0): resolution: {integrity: sha512-11Ox5LCl2wY7gGkp9UOyew70o9qvii1daAH+h/MFobRVRNcy7sVlH+jm0HQdgcvcru6285GvpjpUyoa051j03Q==} engines: {node: '>=16'} peerDependencies: @@ -4647,7 +4884,7 @@ packages: comment-parser: 1.4.1 debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 esquery: 1.5.0 is-builtin-module: 3.2.1 semver: 7.6.0 @@ -4656,22 +4893,22 @@ packages: - supports-color dev: true - /eslint-plugin-jsonc@2.11.2(eslint@9.0.0-alpha.0): + /eslint-plugin-jsonc@2.11.2(eslint@9.0.0): resolution: {integrity: sha512-F6A0MZhIGRBPOswzzn4tJFXXkPLiLwJaMlQwz/Qj1qx+bV5MCn79vBeJh2ynMmtqqHloi54KDCnsT/KWrcCcnQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-alpha.0) - eslint: 9.0.0-alpha.0 - eslint-compat-utils: 0.1.2(eslint@9.0.0-alpha.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) + eslint: 9.0.0 + eslint-compat-utils: 0.1.2(eslint@9.0.0) espree: 9.6.1 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 natural-compare: 1.4.0 dev: true - /eslint-plugin-jsx-a11y@6.8.0(eslint@9.0.0-alpha.0): + /eslint-plugin-jsx-a11y@6.8.0(eslint@9.0.0): resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} engines: {node: '>=4.0'} peerDependencies: @@ -4687,7 +4924,7 @@ packages: damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 es-iterator-helpers: 1.0.15 - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 hasown: 2.0.0 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -4696,24 +4933,24 @@ packages: object.fromentries: 2.0.7 dev: true - /eslint-plugin-lodash@7.4.0(eslint@9.0.0-alpha.0): + /eslint-plugin-lodash@7.4.0(eslint@9.0.0): resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} engines: {node: '>=10'} peerDependencies: eslint: '>=2' dependencies: - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 lodash: 4.17.21 dev: true - /eslint-plugin-mocha@10.2.0(eslint@9.0.0-alpha.0): + /eslint-plugin-mocha@10.2.0(eslint@9.0.0): resolution: {integrity: sha512-ZhdxzSZnd1P9LqDPF0DBcFLpRIGdh1zkF2JHnQklKQOvrQtT73kdP5K9V2mzvbLR+cCAO9OI48NXK/Ax9/ciCQ==} engines: {node: '>=14.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 9.0.0-alpha.0 - eslint-utils: 3.0.0(eslint@9.0.0-alpha.0) + eslint: 9.0.0 + eslint-utils: 3.0.0(eslint@9.0.0) rambda: 7.5.0 dev: true @@ -4724,16 +4961,16 @@ packages: requireindex: 1.1.0 dev: true - /eslint-plugin-n@16.5.0(eslint@9.0.0-alpha.0): + /eslint-plugin-n@16.5.0(eslint@9.0.0): resolution: {integrity: sha512-Hw02Bj1QrZIlKyj471Tb1jSReTl4ghIMHGuBGiMVmw+s0jOPbI4CBuYpGbZr+tdQ+VAvSK6FDSta3J4ib/SKHQ==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-alpha.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) builtins: 5.0.1 - eslint: 9.0.0-alpha.0 - eslint-plugin-es-x: 7.5.0(eslint@9.0.0-alpha.0) + eslint: 9.0.0 + eslint-plugin-es-x: 7.5.0(eslint@9.0.0) get-tsconfig: 4.7.2 ignore: 5.3.0 is-builtin-module: 3.2.1 @@ -4743,7 +4980,7 @@ packages: semver: 7.6.0 dev: true - /eslint-plugin-prettier@5.1.2(@types/eslint@8.56.2)(eslint-config-prettier@9.1.0)(eslint@9.0.0-alpha.0)(prettier@3.1.1): + /eslint-plugin-prettier@5.1.2(@types/eslint@8.56.7)(eslint-config-prettier@9.1.0)(eslint@9.0.0)(prettier@3.1.1): resolution: {integrity: sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4757,33 +4994,33 @@ packages: eslint-config-prettier: optional: true dependencies: - '@types/eslint': 8.56.2 - eslint: 9.0.0-alpha.0 - eslint-config-prettier: 9.1.0(eslint@9.0.0-alpha.0) + '@types/eslint': 8.56.7 + eslint: 9.0.0 + eslint-config-prettier: 9.1.0(eslint@9.0.0) prettier: 3.1.1 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 dev: true - /eslint-plugin-promise@6.1.1(eslint@9.0.0-alpha.0): + /eslint-plugin-promise@6.1.1(eslint@9.0.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@9.0.0-alpha.0): + /eslint-plugin-react-hooks@4.6.0(eslint@9.0.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 dev: true - /eslint-plugin-react@7.33.2(eslint@9.0.0-alpha.0): + /eslint-plugin-react@7.33.2(eslint@9.0.0): resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} engines: {node: '>=4'} peerDependencies: @@ -4794,7 +5031,7 @@ packages: array.prototype.tosorted: 1.1.2 doctrine: 2.1.0 es-iterator-helpers: 1.0.15 - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 @@ -4808,16 +5045,16 @@ packages: string.prototype.matchall: 4.0.10 dev: true - /eslint-plugin-regexp@1.15.0(eslint@9.0.0-alpha.0): + /eslint-plugin-regexp@1.15.0(eslint@9.0.0): resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} engines: {node: ^12 || >=14} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-alpha.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) '@eslint-community/regexpp': 4.10.0 comment-parser: 1.4.1 - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 grapheme-splitter: 1.0.4 jsdoctypeparser: 9.0.0 refa: 0.11.0 @@ -4825,15 +5062,15 @@ packages: scslre: 0.2.0 dev: true - /eslint-plugin-simple-import-sort@10.0.0(eslint@9.0.0-alpha.0): + /eslint-plugin-simple-import-sort@10.0.0(eslint@9.0.0): resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 dev: true - /eslint-plugin-typescript-sort-keys@3.1.0(@typescript-eslint/parser@6.21.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /eslint-plugin-typescript-sort-keys@3.1.0(@typescript-eslint/parser@6.21.0)(eslint@9.0.0)(typescript@5.3.3): resolution: {integrity: sha512-rgZeYfEguqKni/V7sbmgFu9/94UDAQd7YqNd0J7Qhw7SdLIGd0iBk2KgpjhRhe2ge4rPSLDIdFWwUiDqBOst6Q==} engines: {node: '>= 16'} peerDependencies: @@ -4841,9 +5078,9 @@ packages: eslint: ^7 || ^8 typescript: ^3 || ^4 || ^5 dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.21.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) - eslint: 9.0.0-alpha.0 + '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.0.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@9.0.0)(typescript@5.3.3) + eslint: 9.0.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 typescript: 5.3.3 @@ -4851,17 +5088,17 @@ packages: - supports-color dev: true - /eslint-plugin-unicorn@48.0.1(eslint@9.0.0-alpha.0): + /eslint-plugin-unicorn@48.0.1(eslint@9.0.0): resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} engines: {node: '>=16'} peerDependencies: eslint: '>=8.44.0' dependencies: '@babel/helper-validator-identifier': 7.22.20 - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-alpha.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) ci-info: 3.9.0 clean-regexp: 1.0.0 - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -4875,7 +5112,7 @@ packages: strip-indent: 3.0.0 dev: true - /eslint-plugin-vitest@0.3.20(@typescript-eslint/eslint-plugin@6.19.1)(eslint@9.0.0-alpha.0)(typescript@5.3.3): + /eslint-plugin-vitest@0.3.20(@typescript-eslint/eslint-plugin@6.19.1)(eslint@9.0.0)(typescript@5.3.3): resolution: {integrity: sha512-O05k4j9TGMOkkghj9dRgpeLDyOSiVIxQWgNDPfhYPm5ioJsehcYV/zkRLekQs+c8+RBCVXucSED3fYOyy2EoWA==} engines: {node: ^18.0.0 || >= 20.0.0} peerDependencies: @@ -4888,23 +5125,23 @@ packages: vitest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.21.0)(eslint@9.0.0-alpha.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.16.0(eslint@9.0.0-alpha.0)(typescript@5.3.3) - eslint: 9.0.0-alpha.0 + '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.21.0)(eslint@9.0.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.16.0(eslint@9.0.0)(typescript@5.3.3) + eslint: 9.0.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-yml@1.11.0(eslint@9.0.0-alpha.0): + /eslint-plugin-yml@1.11.0(eslint@9.0.0): resolution: {integrity: sha512-NBZP1NDGy0u38pY5ieix75jxS9GNOJy9xd4gQa0rU4gWbfEsVhKDwuFaQ6RJpDbv6Lq5TtcAZS/YnAc0oeRw0w==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4(supports-color@8.1.1) - eslint: 9.0.0-alpha.0 - eslint-compat-utils: 0.1.2(eslint@9.0.0-alpha.0) + eslint: 9.0.0 + eslint-compat-utils: 0.1.2(eslint@9.0.0) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.2 @@ -4912,13 +5149,13 @@ packages: - supports-color dev: true - /eslint-plugin-zod@1.4.0(eslint@9.0.0-alpha.0): + /eslint-plugin-zod@1.4.0(eslint@9.0.0): resolution: {integrity: sha512-i9WzQGw2X5fQcuQh33mA8DQjZJM/yuyZvs1Fc5EyTidX7Ed/g832+1FEQ4u5gtXy+jZ+DVsB5+oMHj4tIOfeZg==} engines: {node: '>=12'} peerDependencies: eslint: '>=8.1.0' dependencies: - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 dev: true /eslint-rule-composer@0.3.0: @@ -4942,13 +5179,21 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils@3.0.0(eslint@9.0.0-alpha.0): + /eslint-scope@8.0.1: + resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-utils@3.0.0(eslint@9.0.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 9.0.0-alpha.0 + eslint: 9.0.0 eslint-visitor-keys: 2.1.0 dev: true @@ -4962,6 +5207,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /eslint-visitor-keys@4.0.0: + resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: true + /eslint@8.56.0: resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5009,16 +5259,16 @@ packages: - supports-color dev: true - /eslint@9.0.0-alpha.0: - resolution: {integrity: sha512-21yCNcPYvXtvn3RrqPQP5+2X3LAqkfuPWSkxdkQyftorCYwUgu0rTNXxWAy8sSeBBDoVpHfeg2UTI15H26wkXQ==} + /eslint@9.0.0: + resolution: {integrity: sha512-IMryZ5SudxzQvuod6rUdIUz29qFItWx281VhtFVc2Psy/ZhlCeD/5DT6lBIJ4H3G+iamGJoTln1v+QSuPw0p7Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-alpha.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 3.0.0 - '@eslint/js': 9.0.0-alpha.0 - '@humanwhocodes/config-array': 0.11.13 + '@eslint/eslintrc': 3.0.2 + '@eslint/js': 9.0.0 + '@humanwhocodes/config-array': 0.12.3 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 @@ -5026,16 +5276,15 @@ packages: cross-spawn: 7.0.3 debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.0.1 + eslint-visitor-keys: 4.0.0 + espree: 10.0.1 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 graphemer: 1.4.0 ignore: 5.3.0 imurmurhash: 0.1.4 @@ -5053,21 +5302,21 @@ packages: - supports-color dev: true - /espree@10.0.0: - resolution: {integrity: sha512-gdlKrfXQWv/3vubKqeQIiBUoWeknNQVEDpKD7OD3bC53g5EKISTuhcIoA1H1e+zqIuosdKrKuTDMmj8eFfhOnA==} + /espree@10.0.1: + resolution: {integrity: sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) - eslint-visitor-keys: 3.4.3 + eslint-visitor-keys: 4.0.0 dev: true /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.11.2 - acorn-jsx: 5.3.2(acorn@8.11.2) + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 dev: true @@ -5296,6 +5545,13 @@ packages: flat-cache: 3.2.0 dev: true + /file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + dependencies: + flat-cache: 4.0.1 + dev: true + /filesize@6.4.0: resolution: {integrity: sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==} engines: {node: '>= 0.4.0'} @@ -5363,11 +5619,12 @@ packages: path-exists: 4.0.0 dev: true - /find-versions@5.1.0: - resolution: {integrity: sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==} - engines: {node: '>=12'} + /find-versions@6.0.0: + resolution: {integrity: sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==} + engines: {node: '>=18'} dependencies: semver-regex: 4.0.5 + super-regex: 1.0.0 dev: true /flat-cache@3.2.0: @@ -5379,6 +5636,14 @@ packages: rimraf: 3.0.2 dev: true + /flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + dependencies: + flatted: 3.2.9 + keyv: 4.5.4 + dev: true + /flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true @@ -5477,6 +5742,11 @@ packages: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} dev: true + /function-timeout@1.0.1: + resolution: {integrity: sha512-6yPMImFFuaMPNaTMTBuolA8EanHJWF5Vju0NHpObRURT105J6x1Mf2a7J4P7Sqk2xDxv24N5L0RatEhTBhNmdA==} + engines: {node: '>=18'} + dev: true + /function.prototype.name@1.1.6: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} @@ -5640,8 +5910,8 @@ packages: is-glob: 4.0.3 dev: true - /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + /glob@10.3.12: + resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: @@ -5649,7 +5919,7 @@ packages: jackspeak: 2.3.6 minimatch: 9.0.3 minipass: 7.0.4 - path-scurry: 1.10.1 + path-scurry: 1.10.2 dev: true /glob@7.1.7: @@ -5663,8 +5933,8 @@ packages: path-is-absolute: 1.0.1 dev: true - /glob@7.2.0: - resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -5674,15 +5944,15 @@ packages: path-is-absolute: 1.0.1 dev: true - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + /glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.1.2 + minimatch: 5.0.1 once: 1.4.0 - path-is-absolute: 1.0.1 dev: true /globals@11.12.0: @@ -5697,6 +5967,16 @@ packages: type-fest: 0.20.2 dev: true + /globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + dev: true + + /globals@15.0.0: + resolution: {integrity: sha512-m/C/yR4mjO6pXDTm9/R/SpYTAIyaUB4EOzcaaMEl7mds7Mshct9GfejiJNQGjHHbdMPey13Kpu4TMbYi9ex1pw==} + engines: {node: '>=18'} + dev: true + /globalthis@1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} @@ -5750,7 +6030,7 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql-config@4.5.0(@types/node@20.11.16)(graphql@16.8.1): + /graphql-config@4.5.0(@types/node@20.12.5)(graphql@16.8.1): resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -5764,7 +6044,7 @@ packages: '@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.11.16)(graphql@16.8.1) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.12.5)(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) cosmiconfig: 8.0.0 graphql: 16.8.1 @@ -5909,6 +6189,10 @@ packages: hasBin: true dev: true + /highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + dev: true + /homedir-polyfill@1.0.3: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} @@ -5990,8 +6274,8 @@ packages: engines: {node: '>=16.17.0'} dev: true - /husky@9.0.10: - resolution: {integrity: sha512-TQGNknoiy6bURzIO77pPRu+XHi6zI7T93rX+QnJsoYFf3xdjKOur+IlfqzJGMHIK/wXrLg+GsvMs8Op7vI2jVA==} + /husky@9.0.11: + resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} engines: {node: '>=18'} hasBin: true dev: true @@ -6526,9 +6810,9 @@ packages: resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} dev: true - /issue-parser@6.0.0: - resolution: {integrity: sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==} - engines: {node: '>=10.13'} + /issue-parser@7.0.0: + resolution: {integrity: sha512-jgAw78HO3gs9UrKqJNQvfDj9Ouy8Mhu40fbEJ8yXff4MW8+/Fcn9iFjyWUQ6SKbX8ipPk3X5A3AyfYHRu6uVLw==} + engines: {node: ^18.17 || >=20.6.1} dependencies: lodash.capitalize: 4.2.1 lodash.escaperegexp: 4.1.2 @@ -6546,7 +6830,7 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.4 '@babel/parser': 7.23.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -6722,7 +7006,7 @@ packages: resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.11.2 + acorn: 8.11.3 eslint-visitor-keys: 3.4.3 espree: 9.6.1 semver: 7.6.0 @@ -6994,6 +7278,11 @@ packages: engines: {node: 14 || >=16.14} dev: true + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} + dev: true + /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: @@ -7059,23 +7348,23 @@ packages: lodash: 4.17.21 dev: true - /marked-terminal@6.2.0(marked@11.1.1): - resolution: {integrity: sha512-ubWhwcBFHnXsjYNsu+Wndpg0zhY4CahSpPlA70PlO0rR9r2sZpkyU+rkCsOWH+KMEkx847UpALON+HWgxowFtw==} + /marked-terminal@7.0.0(marked@12.0.1): + resolution: {integrity: sha512-sNEx8nn9Ktcm6pL0TnRz8tnXq/mSS0Q1FRSwJOAqw4lAB4l49UeDf85Gm1n9RPFm5qurCPjwi1StAQT2XExhZw==} engines: {node: '>=16.0.0'} peerDependencies: - marked: '>=1 <12' + marked: '>=1 <13' dependencies: ansi-escapes: 6.2.0 - cardinal: 2.1.1 chalk: 5.3.0 + cli-highlight: 2.1.11 cli-table3: 0.6.3 - marked: 11.1.1 + marked: 12.0.1 node-emoji: 2.1.3 supports-hyperlinks: 3.0.0 dev: true - /marked@11.1.1: - resolution: {integrity: sha512-EgxRjgK9axsQuUa/oKMx5DEY8oXpKJfk61rT5iY3aRlgU6QJtUcxU5OAymdhCvWvhYcd9FKmO5eQoX8m9VGJXg==} + /marked@12.0.1: + resolution: {integrity: sha512-Y1/V2yafOcOdWQCX0XpAKXzDakPOpn6U0YLxTJs3cww6VxOzZV1BTOOYWLvH3gX38cq+iLwljHHTnMtlDfg01Q==} engines: {node: '>= 18'} hasBin: true dev: true @@ -7100,7 +7389,7 @@ packages: engines: {node: '>= 8'} dev: true - /meros@1.3.0(@types/node@20.11.16): + /meros@1.3.0(@types/node@20.12.5): resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} engines: {node: '>=13'} peerDependencies: @@ -7109,7 +7398,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.11.16 + '@types/node': 20.12.5 dev: true /micro-spelling-correcter@1.1.1: @@ -7293,8 +7582,8 @@ packages: hasBin: true dev: true - /mocha@10.2.0: - resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==} + /mocha@10.4.0: + resolution: {integrity: sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==} engines: {node: '>= 14.0.0'} hasBin: true dependencies: @@ -7305,13 +7594,12 @@ packages: diff: 5.0.0 escape-string-regexp: 4.0.0 find-up: 5.0.0 - glob: 7.2.0 + glob: 8.1.0 he: 1.2.0 js-yaml: 4.1.0 log-symbols: 4.1.0 minimatch: 5.0.1 ms: 2.1.3 - nanoid: 3.3.3 serialize-javascript: 6.0.0 strip-json-comments: 3.1.1 supports-color: 8.1.1 @@ -7336,14 +7624,16 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /nan@2.18.0: - resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==} + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 dev: true - /nanoid@3.3.3: - resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + /nan@2.18.0: + resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==} dev: true /nanomatch@1.2.13: @@ -7426,7 +7716,7 @@ packages: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.1 - glob: 10.3.10 + glob: 10.3.12 graceful-fs: 4.2.11 make-fetch-happen: 13.0.0 nopt: 7.2.0 @@ -7531,8 +7821,8 @@ packages: which: 1.3.1 dev: true - /npm@10.2.5: - resolution: {integrity: sha512-lXdZ7titEN8CH5YJk9C/aYRU9JeDxQ4d8rwIIDsvH3SMjLjHTukB2CFstMiB30zXs4vCrPN2WH6cDq1yHBeJAw==} + /npm@10.5.1: + resolution: {integrity: sha512-RozZuGuWbbhDM2sRhOSLIRb3DLyof6TREi0TW5b3xUEBropDhDqEHv0iAjA1zsIwXKgfIkR8GvQMd4oeKKg9eQ==} engines: {node: ^18.17.0 || >=20.5.0} hasBin: true dev: true @@ -7544,6 +7834,7 @@ packages: - '@npmcli/map-workspaces' - '@npmcli/package-json' - '@npmcli/promise-spawn' + - '@npmcli/redact' - '@npmcli/run-script' - '@sigstore/tuf' - abbrev @@ -7599,7 +7890,6 @@ packages: - semver - spdx-expression-parse - ssri - - strip-ansi - supports-color - tar - text-table @@ -7921,10 +8211,24 @@ packages: engines: {node: '>=0.10.0'} dev: true + /parse5-htmlparser2-tree-adapter@6.0.1: + resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + dependencies: + parse5: 6.0.1 + dev: true + /parse5@1.5.1: resolution: {integrity: sha512-w2jx/0tJzvgKwZa58sj2vAYq/S/K1QJfIB3cWYea/Iu1scFPDQQ3IQiVZTHWtRBwAjv2Yd7S/xeZf3XqLDb3bA==} dev: true + /parse5@5.1.1: + resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} + dev: true + + /parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + dev: true + /pascalcase@0.1.1: resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} engines: {node: '>=0.10.0'} @@ -7964,11 +8268,11 @@ packages: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true - /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + /path-scurry@1.10.2: + resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 10.1.0 + lru-cache: 10.2.0 minipass: 7.0.4 dev: true @@ -8272,12 +8576,6 @@ packages: tslib: 2.6.2 dev: true - /redeyed@2.1.1: - resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==} - dependencies: - esprima: 4.0.1 - dev: true - /refa@0.11.0: resolution: {integrity: sha512-486O8/pQXwj9jV0mVvUnTsxq0uknpBnNJ0eCUhkZqJRQ8KutrT1PhzmumdCeM1hSBF2eMlFPmwECRER4IbKXlQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -8532,7 +8830,7 @@ packages: engines: {node: '>=14'} hasBin: true dependencies: - glob: 10.3.10 + glob: 10.3.12 dev: true /roarr@7.21.0: @@ -8599,31 +8897,31 @@ packages: regexp-ast-analysis: 0.6.0 dev: true - /semantic-release@23.0.0(typescript@5.3.3): - resolution: {integrity: sha512-Jz7jEWO2igTtske112gC4PPE2whCMVrsgxUPG3/SZI7VE357suIUZFlJd1Yu0g2I6RPc2HxNEfUg7KhmDTjwqg==} + /semantic-release@23.0.7(typescript@5.3.3): + resolution: {integrity: sha512-PFxXQE57zrYiCbWKkdsVUF08s0SifEw3WhDhrN47ZEUWQiLl21FI9Dg/H8g7i/lPx0IkF6u7PjJbgxPceXKBeg==} engines: {node: '>=20.8.1'} hasBin: true dependencies: - '@semantic-release/commit-analyzer': 11.1.0(semantic-release@23.0.0) + '@semantic-release/commit-analyzer': 12.0.0(semantic-release@23.0.7) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 9.2.6(semantic-release@23.0.0) - '@semantic-release/npm': 11.0.2(semantic-release@23.0.0) - '@semantic-release/release-notes-generator': 12.1.0(semantic-release@23.0.0) + '@semantic-release/github': 10.0.2(semantic-release@23.0.7) + '@semantic-release/npm': 12.0.0(semantic-release@23.0.7) + '@semantic-release/release-notes-generator': 13.0.0(semantic-release@23.0.7) aggregate-error: 5.0.0 cosmiconfig: 9.0.0(typescript@5.3.3) debug: 4.3.4(supports-color@8.1.1) env-ci: 11.0.0 execa: 8.0.1 figures: 6.0.1 - find-versions: 5.1.0 + find-versions: 6.0.0 get-stream: 6.0.1 git-log-parser: 1.2.0 hook-std: 3.0.0 hosted-git-info: 7.0.1 import-from-esm: 1.3.3 lodash-es: 4.17.21 - marked: 11.1.1 - marked-terminal: 6.2.0(marked@11.1.1) + marked: 12.0.1 + marked-terminal: 7.0.0(marked@12.0.1) micromatch: 4.0.5 p-each-series: 3.0.0 p-reduce: 3.0.0 @@ -9151,6 +9449,14 @@ packages: engines: {node: '>=8'} dev: true + /super-regex@1.0.0: + resolution: {integrity: sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==} + engines: {node: '>=18'} + dependencies: + function-timeout: 1.0.1 + time-span: 5.1.0 + dev: true + /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -9246,6 +9552,19 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: true + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: true + /through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} dependencies: @@ -9257,6 +9576,13 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true + /time-span@5.1.0: + resolution: {integrity: sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==} + engines: {node: '>=12'} + dependencies: + convert-hrtime: 5.0.0 + dev: true + /tlds@1.248.0: resolution: {integrity: sha512-noj0KdpWTBhwsKxMOXk0rN9otg4kTgLm4WohERRHbJ9IY+kSDKr3RmjitaQ3JFzny+DyvBOQKlFZhp0G0qNSfg==} hasBin: true @@ -9562,8 +9888,8 @@ packages: crypto-random-string: 4.0.0 dev: true - /universal-user-agent@6.0.1: - resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + /universal-user-agent@7.0.2: + resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==} dev: true /universalify@2.0.1: @@ -9597,6 +9923,17 @@ packages: picocolors: 1.0.0 dev: true + /update-browserslist-db@1.0.13(browserslist@4.23.0): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.23.0 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index 0c20a3ce5..ff9a2761c 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -1614,7 +1614,7 @@ const getUtils = ( /** @type {IsAsync} */ utils.isAsync = () => { - return 'async' in /** @type {Node} */ (node) && node.async; + return Boolean(node && 'async' in node && node.async); }; /** @type {GetTags} */ diff --git a/src/rules/requireReturnsCheck.js b/src/rules/requireReturnsCheck.js index 9c9fa35fb..a8963ceeb 100755 --- a/src/rules/requireReturnsCheck.js +++ b/src/rules/requireReturnsCheck.js @@ -107,7 +107,11 @@ export default iterateJsdoc(({ exemptAsync, true, )) && - (!exemptGenerators || !('generator' in /** @type {import('../iterateJsdoc.js').Node} */ (node)) || !node.generator) + Boolean( + !exemptGenerators || !node || + !('generator' in /** @type {import('../iterateJsdoc.js').Node} */ (node)) || + !(/** @type {import('@typescript-eslint/types').TSESTree.FunctionDeclaration} */ (node)).generator + ) ) { report(`JSDoc @${tagName} declaration present but return expression not available in function.`); } diff --git a/test/rules/assertions/checkLineAlignment.js b/test/rules/assertions/checkLineAlignment.js index 960193cbc..93530d13c 100644 --- a/test/rules/assertions/checkLineAlignment.js +++ b/test/rules/assertions/checkLineAlignment.js @@ -92,36 +92,6 @@ export default { const fn = ( lorem, sit ) => {} `, }, - { - code: ` - /** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ - const fn = ( lorem, sit ) => {} - `, - errors: [ - { - line: 2, - message: 'Expected JSDoc block lines to be aligned.', - type: 'Block', - }, - ], - options: [ - 'always', - ], - output: ` - /** - * Function description. - * - * @param {string} lorem Description. - * @param {int} sit Description multi words. - */ - const fn = ( lorem, sit ) => {} - `, - }, { code: ` /** diff --git a/test/rules/assertions/checkParamNames.js b/test/rules/assertions/checkParamNames.js index 0148603d8..44101afa3 100644 --- a/test/rules/assertions/checkParamNames.js +++ b/test/rules/assertions/checkParamNames.js @@ -356,16 +356,7 @@ export default { message: 'Duplicate @param "cfg.foo"', }, ], - output: ` - /** - * @param cfg - * @param cfg.foo - * @param cfg.foo - */ - function quux ({foo}) { - - } - `, + output: null, }, { code: ` @@ -1558,20 +1549,9 @@ export default { { code: ` /** - * Converts an SVGRect into an object. - * @param {SVGRect} bbox - a SVGRect - */ - const bboxToObj = function ({x, y, width, height}) { - return {x, y, width, height}; - }; - `, - }, - { - code: ` - /** - * Converts an SVGRect into an object. - * @param {SVGRect} bbox - a SVGRect - */ + * Converts an SVGRect into an object. + * @param {SVGRect} bbox - a SVGRect + */ const bboxToObj = function ({x, y, width, height}) { return {x, y, width, height}; }; diff --git a/test/rules/assertions/checkPropertyNames.js b/test/rules/assertions/checkPropertyNames.js index 9e1d70d3a..625d60264 100644 --- a/test/rules/assertions/checkPropertyNames.js +++ b/test/rules/assertions/checkPropertyNames.js @@ -113,13 +113,7 @@ export default { message: 'Duplicate @property "foo"', }, ], - output: ` - /** - * @typedef (SomeType) SomeTypedef - * @property foo - * @property foo - */ - `, + output: null, }, { code: ` diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index 0696d4501..a3ce841fb 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -655,40 +655,6 @@ export default { } `, - errors: [ - { - line: 3, - message: 'Please use x-todo instead of todo', - }, - ], - output: ` - /** - * @x-todo - */ - function quux () { - - } - `, - settings: { - jsdoc: { - tagNamePreference: { - todo: { - message: 'Please use x-todo instead of todo', - replacement: 'x-todo', - }, - }, - }, - }, - }, - { - code: ` - /** - * @todo - */ - function quux () { - - } - `, errors: [ { line: 1, diff --git a/test/rules/assertions/checkTypes.js b/test/rules/assertions/checkTypes.js index f4cb968ac..3b5261c22 100644 --- a/test/rules/assertions/checkTypes.js +++ b/test/rules/assertions/checkTypes.js @@ -537,13 +537,7 @@ export default { message: 'Invalid JSDoc @param "baz" type "*".', }, ], - output: ` - /** - * @param {*} baz - */ - function qux(baz) { - } - `, + output: null, settings: { jsdoc: { preferredTypes: { @@ -585,42 +579,6 @@ export default { }, }, }, - { - code: ` - /** - * @param {abc} foo - * @param {Number} bar - */ - function qux(foo, bar) { - } - `, - errors: [ - { - line: 3, - message: 'Invalid JSDoc @param "foo" type "abc"; prefer: "Abc".', - }, - { - line: 4, - message: 'Invalid JSDoc @param "bar" type "Number"; prefer: "number".', - }, - ], - output: ` - /** - * @param {Abc} foo - * @param {Number} bar - */ - function qux(foo, bar) { - } - `, - settings: { - jsdoc: { - preferredTypes: { - abc: 'Abc', - string: 'Str', - }, - }, - }, - }, { code: ` /** diff --git a/test/rules/assertions/matchDescription.js b/test/rules/assertions/matchDescription.js index db3dd406b..7f79a2cd2 100644 --- a/test/rules/assertions/matchDescription.js +++ b/test/rules/assertions/matchDescription.js @@ -69,26 +69,6 @@ export default { }, ], }, - { - code: ` - /** - * foo. - */ - `, - errors: [ - { - line: 3, - message: 'JSDoc description does not satisfy the regex pattern.', - }, - ], - options: [ - { - contexts: [ - 'any', - ], - }, - ], - }, { code: ` /** diff --git a/test/rules/assertions/noUndefinedTypes.js b/test/rules/assertions/noUndefinedTypes.js index 266adfacc..efcfeb2cf 100644 --- a/test/rules/assertions/noUndefinedTypes.js +++ b/test/rules/assertions/noUndefinedTypes.js @@ -632,21 +632,6 @@ export default { globals: globals.node, }, }, - { - code: ` - const MyType = require('my-library').MyType; - - /** - * @param {MyType} foo - Bar. - */ - function quux(foo) { - - } - `, - languageOptions: { - globals: globals.node, - }, - }, { code: ` import {MyType} from 'my-library'; diff --git a/test/rules/assertions/requireDescription.js b/test/rules/assertions/requireDescription.js index 5dfbb67a6..0431fe3d9 100644 --- a/test/rules/assertions/requireDescription.js +++ b/test/rules/assertions/requireDescription.js @@ -180,54 +180,6 @@ export default { }, ], }, - { - code: ` - /** - * - */ - class quux { - - } - `, - errors: [ - { - line: 2, - message: 'Missing JSDoc @description declaration.', - }, - ], - options: [ - { - contexts: [ - 'ClassDeclaration', - ], - descriptionStyle: 'tag', - }, - ], - }, - { - code: ` - /** - * - */ - class quux { - - } - `, - errors: [ - { - line: 2, - message: 'Missing JSDoc @description declaration.', - }, - ], - options: [ - { - contexts: [ - 'ClassDeclaration', - ], - descriptionStyle: 'tag', - }, - ], - }, { code: ` /** diff --git a/test/rules/assertions/requireExample.js b/test/rules/assertions/requireExample.js index 9bbe13c84..ab38f96d2 100644 --- a/test/rules/assertions/requireExample.js +++ b/test/rules/assertions/requireExample.js @@ -376,14 +376,7 @@ function quux () { enableFixer: false, }, ], - output: ` - /** - * - */ - function quux (someParam) { - - } - `, + output: null, }, ], valid: [ diff --git a/test/rules/assertions/requireJsdoc.js b/test/rules/assertions/requireJsdoc.js index 71f0903eb..d2b174c3d 100644 --- a/test/rules/assertions/requireJsdoc.js +++ b/test/rules/assertions/requireJsdoc.js @@ -363,11 +363,7 @@ function quux (foo) { enableFixer: false, }, ], - output: ` - function myFunction() { - - } - `, + output: null, }, { code: ` @@ -2099,45 +2095,6 @@ function quux (foo) { } `, }, - { - code: ` - export function someMethod() { - - } - `, - languageOptions: { - globals: globals.node, - ecmaVersion: 6, - sourceType: 'module', - }, - errors: [ - { - line: 2, - message: 'Missing JSDoc comment.', - type: 'FunctionDeclaration', - }, - ], - options: [ - { - publicOnly: { - cjs: false, - esm: true, - window: false, - }, - require: { - FunctionDeclaration: true, - }, - }, - ], - output: ` - /** - * - */ - export function someMethod() { - - } - `, - }, { code: ` const myObject = { @@ -3546,11 +3503,7 @@ function quux (foo) { fixerMessage: ' TODO: add comment', }, ], - output: ` - function comment () { - return "comment"; - } - `, + output: null, }, { code: ` @@ -5407,29 +5360,6 @@ function quux (foo) { code: ` export function someMethod() { - } - `, - languageOptions: { - globals: globals.node, - ecmaVersion: 6, - sourceType: 'module', - }, - options: [ - { - publicOnly: { - cjs: true, - esm: false, - window: false, - }, - require: { - FunctionDeclaration: true, - }, - }, - ], - }, { - code: ` - export function someMethod() { - } `, languageOptions: { diff --git a/test/rules/assertions/requireParam.js b/test/rules/assertions/requireParam.js index 70c04cb7c..4acdc56bf 100644 --- a/test/rules/assertions/requireParam.js +++ b/test/rules/assertions/requireParam.js @@ -179,14 +179,7 @@ export default { enableFixer: false, }, ], - output: ` - /** - * - */ - function quux ({foo}) { - - } - `, + output: null, }, { code: ` @@ -658,31 +651,6 @@ export default { }, }, }, - { - code: ` - /** - * @param foo - */ - function quux (foo, bar) { - - } - `, - errors: [ - { - line: 2, - message: 'Missing JSDoc @param "bar" declaration.', - }, - ], - output: ` - /** - * @param foo - * @param bar - */ - function quux (foo, bar) { - - } - `, - }, { code: ` /** @@ -1884,14 +1852,7 @@ export default { enableFixer: false, }, ], - output: ` - /** - * - */ - function quux (foo) { - - } - `, + output: null, }, { code: ` @@ -2816,36 +2777,6 @@ export default { } `, }, - { - code: ` - /** - * @augments - */ - function quux (foo) { - - } - `, - settings: { - jsdoc: { - augmentsExtendsReplacesDocs: true, - }, - }, - }, - { - code: ` - /** - * @extends - */ - function quux (foo) { - - } - `, - settings: { - jsdoc: { - augmentsExtendsReplacesDocs: true, - }, - }, - }, { code: ` /** @@ -3006,46 +2937,6 @@ export default { } `, }, - { - code: ` - /** - * @augments - */ - class A { - /** - * - */ - quux (foo) { - - } - } - `, - settings: { - jsdoc: { - augmentsExtendsReplacesDocs: true, - }, - }, - }, - { - code: ` - /** - * @extends - */ - class A { - /** - * - */ - quux (foo) { - - } - } - `, - settings: { - jsdoc: { - augmentsExtendsReplacesDocs: true, - }, - }, - }, { code: ` /** diff --git a/test/rules/assertions/requireReturns.js b/test/rules/assertions/requireReturns.js index b5ca25de9..f68178c9e 100644 --- a/test/rules/assertions/requireReturns.js +++ b/test/rules/assertions/requireReturns.js @@ -1305,25 +1305,6 @@ export default { ], ignoreReadme: true, }, - { - code: ` - /** - * - */ - function quux () { - return new Promise((resolve, reject) => { - a.b[resolve(true)].c; - }); - } - `, - errors: [ - { - line: 2, - message: 'Missing JSDoc @returns declaration.', - }, - ], - ignoreReadme: true, - }, { code: ` /** @@ -2192,15 +2173,6 @@ export default { } `, }, - { - code: ` - /** - * - */ - function quux () { - } - `, - }, { code: ` /** @@ -2288,20 +2260,6 @@ export default { } `, }, - { - code: ` - /** - * @returns {void} - */ - function quux () { - } - `, - options: [ - { - forceRequireReturn: true, - }, - ], - }, { code: ` /** diff --git a/test/rules/assertions/requireReturnsCheck.js b/test/rules/assertions/requireReturnsCheck.js index 91d313e59..cd6e180e6 100755 --- a/test/rules/assertions/requireReturnsCheck.js +++ b/test/rules/assertions/requireReturnsCheck.js @@ -640,28 +640,6 @@ export default { }, ], }, - { - code: ` - /** - * @returns {SomeType} Baz. - */ - function foo() { - switch (true) { - default: - switch (false) { - default: return; - } - return "baz"; - } - }; - `, - errors: [ - { - line: 2, - message: 'JSDoc @returns declaration present but return expression not available in function.', - }, - ], - }, { code: ` /** @@ -709,17 +687,6 @@ export default { } `, }, - { - code: ` - /** - * @returns {string} Foo. - */ - function quux () { - - return foo; - } - `, - }, { code: ` /** @@ -946,20 +913,6 @@ export default { } `, }, - { - code: ` - /** - * @returns {true} - */ - function quux () { - try { - return true; - } catch (err) { - } - return true; - } - `, - }, { code: ` /** @@ -989,20 +942,6 @@ export default { } `, }, - { - code: ` - /** - * @returns {true} - */ - function quux () { - switch (true) { - case 'abc': - return true; - } - return true; - } - `, - }, { code: ` /** @@ -1592,22 +1531,6 @@ export default { }; `, }, - { - code: ` - /** - * @returns Baz. - */ - function foo() { - switch (true) { - default: - switch (false) { - default: return; - } - return "baz"; - } - }; - `, - }, { code: ` /** diff --git a/test/rules/assertions/requireYields.js b/test/rules/assertions/requireYields.js index 998ba5156..5e5721837 100644 --- a/test/rules/assertions/requireYields.js +++ b/test/rules/assertions/requireYields.js @@ -856,25 +856,6 @@ export default { }, ], }, - { - code: ` - /** - * - */ - function * quux () { - if (true) { - yield; - } - yield true; - } - `, - errors: [ - { - line: 2, - message: 'Missing JSDoc @yields declaration.', - }, - ], - }, { code: ` /** @@ -1186,23 +1167,6 @@ export default { ], ignoreReadme: true, }, - { - code: ` - /** - * - */ - function * quux () { - a.b[yield true].c; - } - `, - errors: [ - { - line: 2, - message: 'Missing JSDoc @yields declaration.', - }, - ], - ignoreReadme: true, - }, { code: ` /** @@ -1465,15 +1429,6 @@ export default { } `, }, - { - code: ` - /** - * @constructor - */ - function * quux (foo) { - } - `, - }, { code: ` /** @@ -1503,15 +1458,6 @@ export default { } `, }, - { - code: ` - /** - * - */ - function * quux () { - } - `, - }, { code: ` /** diff --git a/test/rules/assertions/requireYieldsCheck.js b/test/rules/assertions/requireYieldsCheck.js index 72749aeb6..cb668bf29 100644 --- a/test/rules/assertions/requireYieldsCheck.js +++ b/test/rules/assertions/requireYieldsCheck.js @@ -372,17 +372,6 @@ export default { } `, }, - { - code: ` - /** - * @yields {string} Foo. - */ - function * quux () { - - yield foo; - } - `, - }, { code: ` /** diff --git a/test/rules/assertions/tagLines.js b/test/rules/assertions/tagLines.js index c8aff20b4..b53b4aae4 100644 --- a/test/rules/assertions/tagLines.js +++ b/test/rules/assertions/tagLines.js @@ -231,38 +231,6 @@ export default { */ `, }, - { - code: ` - /** - * Some description - * @param {string} a - * @param {number} b - */ - `, - errors: [ - { - line: 4, - message: 'Expected 1 line between tags but found 0', - }, - ], - options: [ - 'never', { - tags: { - param: { - lines: 'always', - }, - }, - }, - ], - output: ` - /** - * Some description - * @param {string} a - * - * @param {number} b - */ - `, - }, { code: ` /** diff --git a/test/rules/assertions/validTypes.js b/test/rules/assertions/validTypes.js index 11bf9a131..ec1cc494b 100644 --- a/test/rules/assertions/validTypes.js +++ b/test/rules/assertions/validTypes.js @@ -1018,22 +1018,6 @@ export default { }, ], }, - { - code: ` - /** - * @param {Object[]} employees - * @param {string} [] - The name of an employee. - */ - function quux () {} - - `, - errors: [ - { - line: 4, - message: 'Invalid name: empty name', - }, - ], - }, { code: ` /** From 4da4aebf35f49b607e32dcfb3142dba812e6d705 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 9 May 2024 07:09:11 -0700 Subject: [PATCH 180/273] fix(`valid-types`): disable checking of types/names within `import` tags; fixes #1226 --- docs/rules/valid-types.md | 4 ++++ src/rules/validTypes.js | 6 ++++++ test/rules/assertions/validTypes.js | 7 +++++++ 3 files changed, 17 insertions(+) diff --git a/docs/rules/valid-types.md b/docs/rules/valid-types.md index 2c436fe95..2f89e0d96 100644 --- a/docs/rules/valid-types.md +++ b/docs/rules/valid-types.md @@ -880,5 +880,9 @@ function quux() { function quux() { } + +/** + * @import { TestOne, TestTwo } from "./types" + */ ```` diff --git a/src/rules/validTypes.js b/src/rules/validTypes.js index 2930ed1d3..8c1839bf3 100644 --- a/src/rules/validTypes.js +++ b/src/rules/validTypes.js @@ -212,6 +212,12 @@ export default iterateJsdoc(({ continue; } + if (tag.tag === 'import') { + // A named import will look like a type, but not be valid; we also don't + // need to check the name/namepath + continue; + } + if (tag.tag === 'borrows') { const thisNamepath = /** @type {string} */ ( utils.getTagDescription(tag) diff --git a/test/rules/assertions/validTypes.js b/test/rules/assertions/validTypes.js index ec1cc494b..fb3710bb2 100644 --- a/test/rules/assertions/validTypes.js +++ b/test/rules/assertions/validTypes.js @@ -1853,5 +1853,12 @@ export default { } ` }, + { + code: ` + /** + * @import { TestOne, TestTwo } from "./types" + */ + `, + } ], }; From 98990e8e714b3ddf19c782960260e1b3f83b9211 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 9 May 2024 07:28:04 -0700 Subject: [PATCH 181/273] chore: update semver and devDeps. --- .ncurc.cjs | 1 + package.json | 32 +- pnpm-lock.yaml | 13222 ++++++++++++++++++++++++++--------------------- 3 files changed, 7209 insertions(+), 6046 deletions(-) diff --git a/.ncurc.cjs b/.ncurc.cjs index fc63f4815..9194a9c77 100644 --- a/.ncurc.cjs +++ b/.ncurc.cjs @@ -7,6 +7,7 @@ module.exports = { 'chai', 'decamelize', 'escape-string-regexp', + 'is-builtin-module', 'open-editor', ], }; diff --git a/package.json b/package.json index 7bc14fbea..f16e6f3b9 100644 --- a/package.json +++ b/package.json @@ -12,36 +12,36 @@ "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", "is-builtin-module": "^3.2.1", - "semver": "^7.6.0", + "semver": "^7.6.1", "spdx-expression-parse": "^4.0.0" }, "description": "JSDoc linting rules for ESLint.", "devDependencies": { - "@babel/cli": "^7.24.1", - "@babel/core": "^7.24.4", - "@babel/eslint-parser": "^7.24.1", + "@babel/cli": "^7.24.5", + "@babel/core": "^7.24.5", + "@babel/eslint-parser": "^7.24.5", "@babel/node": "^7.23.9", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-transform-flow-strip-types": "^7.24.1", - "@babel/preset-env": "^7.24.4", + "@babel/preset-env": "^7.24.5", "@es-joy/escodegen": "^3.5.1", "@es-joy/jsdoc-eslint-parser": "^0.21.1", "@hkdobrev/run-if-changed": "^0.3.1", "@semantic-release/commit-analyzer": "^12.0.0", - "@semantic-release/github": "^10.0.2", + "@semantic-release/github": "^10.0.3", "@semantic-release/npm": "^12.0.0", - "@types/chai": "^4.3.14", + "@types/chai": "^4.3.16", "@types/debug": "^4.1.12", - "@types/eslint": "^8.56.7", + "@types/eslint": "^8.56.10", "@types/esquery": "^1.5.3", "@types/estree": "^1.0.5", "@types/json-schema": "^7.0.15", "@types/lodash.defaultsdeep": "^4.6.9", "@types/mocha": "^10.0.6", - "@types/node": "^20.12.5", + "@types/node": "^20.12.11", "@types/semver": "^7.5.8", "@types/spdx-expression-parse": "^3.0.5", - "@typescript-eslint/parser": "^7.5.0", + "@typescript-eslint/parser": "^7.8.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "c8": "^9.1.0", @@ -49,12 +49,12 @@ "chai": "^4.3.10", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "9.0.0", - "eslint-config-canonical": "~42.8.1", + "eslint": "9.2.0", + "eslint-config-canonical": "~42.8.2", "espree": "^10.0.1", "gitdown": "^3.1.5", - "glob": "^10.3.12", - "globals": "^15.0.0", + "glob": "^10.3.13", + "globals": "^15.2.0", "husky": "^9.0.11", "jsdoc-type-pratt-parser": "^4.0.0", "json-schema": "^0.4.0", @@ -64,8 +64,8 @@ "open-editor": "^3.0.0", "replace": "^1.2.2", "rimraf": "^5.0.5", - "semantic-release": "^23.0.7", - "typescript": "5.3.3" + "semantic-release": "^23.0.8", + "typescript": "5.3.x" }, "engines": { "node": ">=18" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fcd82302c..6f57b82d5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,1831 +1,6444 @@ -lockfileVersion: '6.0' +lockfileVersion: '9.0' settings: autoInstallPeers: true excludeLinksFromLockfile: false -dependencies: - '@es-joy/jsdoccomment': - specifier: ~0.43.0 - version: 0.43.0 - are-docs-informative: - specifier: ^0.0.2 - version: 0.0.2 - comment-parser: - specifier: 1.4.1 - version: 1.4.1 - debug: - specifier: ^4.3.4 - version: 4.3.4(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 - is-builtin-module: - specifier: ^3.2.1 - version: 3.2.1 - semver: - specifier: ^7.6.0 - version: 7.6.0 - spdx-expression-parse: - specifier: ^4.0.0 - version: 4.0.0 - -devDependencies: - '@babel/cli': - specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.4) - '@babel/core': - specifier: ^7.24.4 - version: 7.24.4 - '@babel/eslint-parser': - specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.4)(eslint@9.0.0) - '@babel/node': - specifier: ^7.23.9 - version: 7.23.9(@babel/core@7.24.4) - '@babel/plugin-syntax-class-properties': - specifier: ^7.12.13 - version: 7.12.13(@babel/core@7.24.4) - '@babel/plugin-transform-flow-strip-types': - specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.4) - '@babel/preset-env': - specifier: ^7.24.4 - version: 7.24.4(@babel/core@7.24.4) - '@es-joy/escodegen': - specifier: ^3.5.1 - version: 3.5.1 - '@es-joy/jsdoc-eslint-parser': - specifier: ^0.21.1 - version: 0.21.1 - '@hkdobrev/run-if-changed': - specifier: ^0.3.1 - version: 0.3.1 - '@semantic-release/commit-analyzer': - specifier: ^12.0.0 - version: 12.0.0(semantic-release@23.0.7) - '@semantic-release/github': - specifier: ^10.0.2 - version: 10.0.2(semantic-release@23.0.7) - '@semantic-release/npm': - specifier: ^12.0.0 - version: 12.0.0(semantic-release@23.0.7) - '@types/chai': - specifier: ^4.3.14 - version: 4.3.14 - '@types/debug': - specifier: ^4.1.12 - version: 4.1.12 - '@types/eslint': - specifier: ^8.56.7 - version: 8.56.7 - '@types/esquery': - specifier: ^1.5.3 - version: 1.5.3 - '@types/estree': - specifier: ^1.0.5 - version: 1.0.5 - '@types/json-schema': - specifier: ^7.0.15 - version: 7.0.15 - '@types/lodash.defaultsdeep': - specifier: ^4.6.9 - version: 4.6.9 - '@types/mocha': - specifier: ^10.0.6 - version: 10.0.6 - '@types/node': - specifier: ^20.12.5 - version: 20.12.5 - '@types/semver': - specifier: ^7.5.8 - version: 7.5.8 - '@types/spdx-expression-parse': - specifier: ^3.0.5 - version: 3.0.5 - '@typescript-eslint/parser': - specifier: ^7.5.0 - version: 7.5.0(eslint@9.0.0)(typescript@5.3.3) - babel-plugin-add-module-exports: - specifier: ^1.0.4 - version: 1.0.4 - babel-plugin-istanbul: - specifier: ^6.1.1 - version: 6.1.1 - c8: - specifier: ^9.1.0 - version: 9.1.0 - camelcase: - specifier: ^6.3.0 - version: 6.3.0 - chai: - specifier: ^4.3.10 - version: 4.3.10 - cross-env: - specifier: ^7.0.3 - version: 7.0.3 - decamelize: - specifier: ^5.0.1 - version: 5.0.1 - eslint: - specifier: 9.0.0 - version: 9.0.0 - eslint-config-canonical: - specifier: ~42.8.1 - version: 42.8.1(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.7)(@types/node@20.12.5)(eslint@9.0.0)(graphql@16.8.1)(typescript@5.3.3) - espree: - specifier: ^10.0.1 - version: 10.0.1 - gitdown: - specifier: ^3.1.5 - version: 3.1.5 - glob: - specifier: ^10.3.12 - version: 10.3.12 - globals: - specifier: ^15.0.0 - version: 15.0.0 - husky: - specifier: ^9.0.11 - version: 9.0.11 - jsdoc-type-pratt-parser: - specifier: ^4.0.0 - version: 4.0.0 - json-schema: - specifier: ^0.4.0 - version: 0.4.0 - lint-staged: - specifier: ^15.2.2 - version: 15.2.2 - lodash.defaultsdeep: - specifier: ^4.6.1 - version: 4.6.1 - mocha: - specifier: ^10.4.0 - version: 10.4.0 - open-editor: - specifier: ^3.0.0 - version: 3.0.0 - replace: - specifier: ^1.2.2 - version: 1.2.2 - rimraf: - specifier: ^5.0.5 - version: 5.0.5 - semantic-release: - specifier: ^23.0.7 - version: 23.0.7(typescript@5.3.3) - typescript: - specifier: 5.3.3 - version: 5.3.3 +importers: + + .: + dependencies: + '@es-joy/jsdoccomment': + specifier: ~0.43.0 + version: 0.43.0 + are-docs-informative: + specifier: ^0.0.2 + version: 0.0.2 + comment-parser: + specifier: 1.4.1 + version: 1.4.1 + debug: + specifier: ^4.3.4 + version: 4.3.4(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 + is-builtin-module: + specifier: ^3.2.1 + version: 3.2.1 + semver: + specifier: ^7.6.1 + version: 7.6.1 + spdx-expression-parse: + specifier: ^4.0.0 + version: 4.0.0 + devDependencies: + '@babel/cli': + specifier: ^7.24.5 + version: 7.24.5(@babel/core@7.24.5) + '@babel/core': + specifier: ^7.24.5 + version: 7.24.5 + '@babel/eslint-parser': + specifier: ^7.24.5 + version: 7.24.5(@babel/core@7.24.5)(eslint@9.2.0) + '@babel/node': + specifier: ^7.23.9 + version: 7.23.9(@babel/core@7.24.5) + '@babel/plugin-syntax-class-properties': + specifier: ^7.12.13 + version: 7.12.13(@babel/core@7.24.5) + '@babel/plugin-transform-flow-strip-types': + specifier: ^7.24.1 + version: 7.24.1(@babel/core@7.24.5) + '@babel/preset-env': + specifier: ^7.24.5 + version: 7.24.5(@babel/core@7.24.5) + '@es-joy/escodegen': + specifier: ^3.5.1 + version: 3.5.1 + '@es-joy/jsdoc-eslint-parser': + specifier: ^0.21.1 + version: 0.21.1 + '@hkdobrev/run-if-changed': + specifier: ^0.3.1 + version: 0.3.1 + '@semantic-release/commit-analyzer': + specifier: ^12.0.0 + version: 12.0.0(semantic-release@23.0.8(typescript@5.3.3)) + '@semantic-release/github': + specifier: ^10.0.3 + version: 10.0.3(semantic-release@23.0.8(typescript@5.3.3)) + '@semantic-release/npm': + specifier: ^12.0.0 + version: 12.0.0(semantic-release@23.0.8(typescript@5.3.3)) + '@types/chai': + specifier: ^4.3.16 + version: 4.3.16 + '@types/debug': + specifier: ^4.1.12 + version: 4.1.12 + '@types/eslint': + specifier: ^8.56.10 + version: 8.56.10 + '@types/esquery': + specifier: ^1.5.3 + version: 1.5.3 + '@types/estree': + specifier: ^1.0.5 + version: 1.0.5 + '@types/json-schema': + specifier: ^7.0.15 + version: 7.0.15 + '@types/lodash.defaultsdeep': + specifier: ^4.6.9 + version: 4.6.9 + '@types/mocha': + specifier: ^10.0.6 + version: 10.0.6 + '@types/node': + specifier: ^20.12.11 + version: 20.12.11 + '@types/semver': + specifier: ^7.5.8 + version: 7.5.8 + '@types/spdx-expression-parse': + specifier: ^3.0.5 + version: 3.0.5 + '@typescript-eslint/parser': + specifier: ^7.8.0 + version: 7.8.0(eslint@9.2.0)(typescript@5.3.3) + babel-plugin-add-module-exports: + specifier: ^1.0.4 + version: 1.0.4 + babel-plugin-istanbul: + specifier: ^6.1.1 + version: 6.1.1 + c8: + specifier: ^9.1.0 + version: 9.1.0 + camelcase: + specifier: ^6.3.0 + version: 6.3.0 + chai: + specifier: ^4.3.10 + version: 4.3.10 + cross-env: + specifier: ^7.0.3 + version: 7.0.3 + decamelize: + specifier: ^5.0.1 + version: 5.0.1 + eslint: + specifier: 9.2.0 + version: 9.2.0 + eslint-config-canonical: + specifier: ~42.8.2 + version: 42.8.2(@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.5))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.5))(@types/eslint@8.56.10)(@types/node@20.12.11)(encoding@0.1.13)(eslint@9.2.0)(graphql@16.8.1)(typescript@5.3.3) + espree: + specifier: ^10.0.1 + version: 10.0.1 + gitdown: + specifier: ^3.1.5 + version: 3.1.5 + glob: + specifier: ^10.3.13 + version: 10.3.13 + globals: + specifier: ^15.2.0 + version: 15.2.0 + husky: + specifier: ^9.0.11 + version: 9.0.11 + jsdoc-type-pratt-parser: + specifier: ^4.0.0 + version: 4.0.0 + json-schema: + specifier: ^0.4.0 + version: 0.4.0 + lint-staged: + specifier: ^15.2.2 + version: 15.2.2 + lodash.defaultsdeep: + specifier: ^4.6.1 + version: 4.6.1 + mocha: + specifier: ^10.4.0 + version: 10.4.0 + open-editor: + specifier: ^3.0.0 + version: 3.0.0 + replace: + specifier: ^1.2.2 + version: 1.2.2 + rimraf: + specifier: ^5.0.5 + version: 5.0.5 + semantic-release: + specifier: ^23.0.8 + version: 23.0.8(typescript@5.3.3) + typescript: + specifier: 5.3.x + version: 5.3.3 packages: - /@aashutoshrathi/word-wrap@1.2.6: + '@aashutoshrathi/word-wrap@1.2.6': resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} - dev: true - /@ampproject/remapping@2.2.1: + '@ampproject/remapping@2.2.1': resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 - dev: true - /@ardatan/sync-fetch@0.0.1: + '@ardatan/sync-fetch@0.0.1': resolution: {integrity: sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==} engines: {node: '>=14'} - dependencies: - node-fetch: 2.7.0 - transitivePeerDependencies: - - encoding - dev: true - /@babel/cli@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-HbmrtxyFUr34LwAlV9jS+sSIjUp4FpdtIMGwgufY3AsxrIfsh/HxlMTywsONAZsU0RMYbZtbZFpUCrSGs7o0EA==} + '@babel/cli@7.24.5': + resolution: {integrity: sha512-2qg1mYtJRsOOWF6IUwLP5jI42P8Cc0hQ5TmnjLrik/4DKouO8dFJN80HEz81VmVeUs97yuuf3vQ/9j7Elrcjlg==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@jridgewell/trace-mapping': 0.3.25 - commander: 4.1.1 - convert-source-map: 2.0.0 - fs-readdir-recursive: 1.1.0 - glob: 7.2.3 - make-dir: 2.1.0 - slash: 2.0.0 - optionalDependencies: - '@nicolo-ribaudo/chokidar-2': 2.1.8-no-fsevents.3 - chokidar: 3.5.3 - dev: true - - /@babel/code-frame@7.23.5: - resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.23.4 - chalk: 2.4.2 - dev: true - /@babel/code-frame@7.24.2: + '@babel/code-frame@7.24.2': resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.24.2 - picocolors: 1.0.0 - dev: true - - /@babel/compat-data@7.23.5: - resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} - engines: {node: '>=6.9.0'} - dev: true - /@babel/compat-data@7.24.4: + '@babel/compat-data@7.24.4': resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} engines: {node: '>=6.9.0'} - dev: true - /@babel/core@7.24.4: - resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} + '@babel/core@7.24.5': + resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==} engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.4 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helpers': 7.24.4 - '@babel/parser': 7.24.4 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 - convert-source-map: 2.0.0 - debug: 4.3.4(supports-color@8.1.1) - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/eslint-parser@7.24.1(@babel/core@7.24.4)(eslint@8.56.0): - resolution: {integrity: sha512-d5guuzMlPeDfZIbpQ8+g1NaCNuAGBBGNECh0HVqz1sjOeVLh2CEaifuOysCH18URW6R7pqXINvf5PaR/dC6jLQ==} - engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} - peerDependencies: - '@babel/core': ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 - dependencies: - '@babel/core': 7.24.4 - '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.56.0 - eslint-visitor-keys: 2.1.0 - semver: 6.3.1 - dev: true - /@babel/eslint-parser@7.24.1(@babel/core@7.24.4)(eslint@9.0.0): - resolution: {integrity: sha512-d5guuzMlPeDfZIbpQ8+g1NaCNuAGBBGNECh0HVqz1sjOeVLh2CEaifuOysCH18URW6R7pqXINvf5PaR/dC6jLQ==} + '@babel/eslint-parser@7.24.5': + resolution: {integrity: sha512-gsUcqS/fPlgAw1kOtpss7uhY6E9SFFANQ6EFX5GTvzUwaV0+sGaZWk6xq22MOdeT9wfxyokW3ceCUvOiRtZciQ==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 - dependencies: - '@babel/core': 7.24.4 - '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 9.0.0 - eslint-visitor-keys: 2.1.0 - semver: 6.3.1 - dev: true + eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - /@babel/eslint-plugin@7.23.5(@babel/eslint-parser@7.24.1)(eslint@9.0.0): + '@babel/eslint-plugin@7.23.5': resolution: {integrity: sha512-03+E/58Hoo/ui69gR+beFdGpplpoVK0BSIdke2iw4/Bz7eGN0ssRenNlnU4nmbkowNQOPCStKSwFr8H6DiY49g==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 - dependencies: - '@babel/eslint-parser': 7.24.1(@babel/core@7.24.4)(eslint@9.0.0) - eslint: 9.0.0 - eslint-rule-composer: 0.3.0 - dev: true - /@babel/generator@7.23.6: - resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} + '@babel/generator@7.24.4': + resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.9 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 - jsesc: 2.5.2 - dev: true - /@babel/generator@7.24.4: - resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} + '@babel/generator@7.24.5': + resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - dev: true - /@babel/helper-annotate-as-pure@7.22.5: + '@babel/helper-annotate-as-pure@7.22.5': resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.9 - dev: true - /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: + '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.9 - dev: true - /@babel/helper-compilation-targets@7.23.6: + '@babel/helper-compilation-targets@7.23.6': resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.22.2 - lru-cache: 5.1.1 - semver: 6.3.1 - dev: true - /@babel/helper-create-class-features-plugin@7.24.4(@babel/core@7.24.4): + '@babel/helper-create-class-features-plugin@7.24.4': resolution: {integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - semver: 6.3.1 - dev: true - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.4): + '@babel/helper-create-class-features-plugin@7.24.5': + resolution: {integrity: sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-create-regexp-features-plugin@7.22.15': resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - regexpu-core: 5.3.2 - semver: 6.3.1 - dev: true - /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.4): + '@babel/helper-define-polyfill-provider@0.6.1': resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 - debug: 4.3.4(supports-color@8.1.1) - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/helper-environment-visitor@7.22.20: + '@babel/helper-environment-visitor@7.22.20': resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-function-name@7.23.0: + '@babel/helper-function-name@7.23.0': resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 - dev: true - /@babel/helper-hoist-variables@7.22.5: + '@babel/helper-hoist-variables@7.22.5': resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 - dev: true - /@babel/helper-member-expression-to-functions@7.23.0: + '@babel/helper-member-expression-to-functions@7.23.0': resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.9 - dev: true - /@babel/helper-module-imports@7.22.15: - resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + '@babel/helper-member-expression-to-functions@7.24.5': + resolution: {integrity: sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 - dev: true - /@babel/helper-module-imports@7.24.3: + '@babel/helper-module-imports@7.24.3': resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 - dev: true - /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4): + '@babel/helper-module-transforms@7.23.3': resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 - dev: true - /@babel/helper-optimise-call-expression@7.22.5: + '@babel/helper-module-transforms@7.24.5': + resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.22.5': resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.9 - dev: true - /@babel/helper-plugin-utils@7.22.5: + '@babel/helper-plugin-utils@7.22.5': resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-plugin-utils@7.24.0: + '@babel/helper-plugin-utils@7.24.0': resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.4): + '@babel/helper-plugin-utils@7.24.5': + resolution: {integrity: sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-remap-async-to-generator@7.22.20': resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.22.20 - dev: true - /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.4): + '@babel/helper-replace-supers@7.24.1': resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - dev: true - /@babel/helper-simple-access@7.22.5: + '@babel/helper-simple-access@7.22.5': resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 - dev: true - /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + '@babel/helper-simple-access@7.24.5': + resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-skip-transparent-expression-wrappers@7.22.5': resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.9 - dev: true - /@babel/helper-split-export-declaration@7.22.6: + '@babel/helper-split-export-declaration@7.22.6': resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 - dev: true - /@babel/helper-string-parser@7.23.4: + '@babel/helper-split-export-declaration@7.24.5': + resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.23.4': resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-validator-identifier@7.22.20: + '@babel/helper-string-parser@7.24.1': + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.22.20': resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-validator-option@7.23.5: - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + '@babel/helper-validator-identifier@7.24.5': + resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-wrap-function@7.22.20: - resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + '@babel/helper-validator-option@7.23.5': + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.23.9 - '@babel/types': 7.23.9 - dev: true - /@babel/helpers@7.24.4: - resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} + '@babel/helper-wrap-function@7.22.20': + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/highlight@7.23.4: - resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + '@babel/helpers@7.24.5': + resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: true - /@babel/highlight@7.24.2: + '@babel/highlight@7.24.2': resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.0 - dev: true - /@babel/node@7.23.9(@babel/core@7.24.4): + '@babel/node@7.23.9': resolution: {integrity: sha512-/d4ju/POwlGIJlZ+NqWH1qu61wt6ZlTZZZutrK2MOSdaH1JCh726nLw/GSvAjG+LTY6CO9SsB8uWcttnFKm6yg==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/register': 7.23.7(@babel/core@7.24.4) - commander: 4.1.1 - core-js: 3.34.0 - node-environment-flags: 1.0.6 - regenerator-runtime: 0.14.1 - v8flags: 3.2.0 - dev: true - /@babel/parser@7.23.6: + '@babel/parser@7.23.6': resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} engines: {node: '>=6.0.0'} hasBin: true - dependencies: - '@babel/types': 7.23.9 - dev: true - /@babel/parser@7.23.9: - resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} + '@babel/parser@7.24.4': + resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} engines: {node: '>=6.0.0'} hasBin: true - dependencies: - '@babel/types': 7.23.9 - dev: true - /@babel/parser@7.24.4: - resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} + '@babel/parser@7.24.5': + resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} engines: {node: '>=6.0.0'} hasBin: true - dependencies: - '@babel/types': 7.24.0 - dev: true - /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.4(@babel/core@7.24.4): - resolution: {integrity: sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==} + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.5': + resolution: {integrity: sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.4): + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1': resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.4): + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1': resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.4) - dev: true - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.4): + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1': resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4): + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.4): + '@babel/plugin-syntax-async-generators@7.8.4': resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.4): + '@babel/plugin-syntax-class-properties@7.12.13': resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.4): + '@babel/plugin-syntax-class-static-block@7.14.5': resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.4): + '@babel/plugin-syntax-dynamic-import@7.8.3': resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.4): + '@babel/plugin-syntax-export-namespace-from@7.8.3': resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.4): + '@babel/plugin-syntax-flow@7.24.1': resolution: {integrity: sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.24.4): - resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.4): + '@babel/plugin-syntax-import-assertions@7.24.1': resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.4): + '@babel/plugin-syntax-import-attributes@7.24.1': resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.4): + '@babel/plugin-syntax-import-meta@7.10.4': resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.4): + '@babel/plugin-syntax-json-strings@7.8.3': resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.4): + '@babel/plugin-syntax-jsx@7.23.3': resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.4): + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.4): + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.4): + '@babel/plugin-syntax-numeric-separator@7.10.4': resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.4): + '@babel/plugin-syntax-object-rest-spread@7.8.3': resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.4): + '@babel/plugin-syntax-optional-catch-binding@7.8.3': resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.4): + '@babel/plugin-syntax-optional-chaining@7.8.3': resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.4): + '@babel/plugin-syntax-private-property-in-object@7.14.5': resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.4): + '@babel/plugin-syntax-top-level-await@7.14.5': resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.4): + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-arrow-functions@7.24.1': resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.4): + '@babel/plugin-transform-async-generator-functions@7.24.3': resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-async-to-generator@7.24.1': resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-block-scoped-functions@7.24.1': resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-block-scoping@7.24.4(@babel/core@7.24.4): - resolution: {integrity: sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==} + '@babel/plugin-transform-block-scoping@7.24.5': + resolution: {integrity: sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-class-properties@7.24.1': resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-class-static-block@7.24.4(@babel/core@7.24.4): + '@babel/plugin-transform-class-static-block@7.24.4': resolution: {integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} + '@babel/plugin-transform-classes@7.24.5': + resolution: {integrity: sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) - '@babel/helper-split-export-declaration': 7.22.6 - globals: 11.12.0 - dev: true - /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-computed-properties@7.24.1': resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/template': 7.24.0 - dev: true - /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} + '@babel/plugin-transform-destructuring@7.24.5': + resolution: {integrity: sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-dotall-regex@7.24.1': resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-duplicate-keys@7.24.1': resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-dynamic-import@7.24.1': resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-exponentiation-operator@7.24.1': resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-export-namespace-from@7.24.1': resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-flow-strip-types@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-flow-strip-types@7.24.1': resolution: {integrity: sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-for-of@7.24.1': resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - dev: true - /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-function-name@7.24.1': resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-json-strings@7.24.1': resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-literals@7.24.1': resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-logical-assignment-operators@7.24.1': resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-member-expression-literals@7.24.1': resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-modules-amd@7.24.1': resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-modules-commonjs@7.24.1': resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-simple-access': 7.22.5 - dev: true - /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-modules-systemjs@7.24.1': resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-identifier': 7.22.20 - dev: true - /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-modules-umd@7.24.1': resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.4): + '@babel/plugin-transform-named-capturing-groups-regex@7.22.5': resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-new-target@7.24.1': resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-nullish-coalescing-operator@7.24.1': resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-numeric-separator@7.24.1': resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} + '@babel/plugin-transform-object-rest-spread@7.24.5': + resolution: {integrity: sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-object-super@7.24.1': resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-optional-catch-binding@7.24.1': resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} + '@babel/plugin-transform-optional-chaining@7.24.5': + resolution: {integrity: sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} + '@babel/plugin-transform-parameters@7.24.5': + resolution: {integrity: sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-private-methods@7.24.1': resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} + '@babel/plugin-transform-private-property-in-object@7.24.5': + resolution: {integrity: sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-property-literals@7.24.1': resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.4): + '@babel/plugin-transform-react-jsx@7.23.4': resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.4) - '@babel/types': 7.24.0 - dev: true - /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-regenerator@7.24.1': resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - regenerator-transform: 0.15.2 - dev: true - /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-reserved-words@7.24.1': resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-shorthand-properties@7.24.1': resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-spread@7.24.1': resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - dev: true - /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-sticky-regex@7.24.1': resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-template-literals@7.24.1': resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} + '@babel/plugin-transform-typeof-symbol@7.24.5': + resolution: {integrity: sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-unicode-escapes@7.24.1': resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-unicode-property-regex@7.24.1': resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-unicode-regex@7.24.1': resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.4): + '@babel/plugin-transform-unicode-sets-regex@7.24.1': resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - dev: true - /@babel/preset-env@7.24.4(@babel/core@7.24.4): - resolution: {integrity: sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==} + '@babel/preset-env@7.24.5': + resolution: {integrity: sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.24.4 - '@babel/core': 7.24.4 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.4(@babel/core@7.24.4) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.4) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.4) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.4) - '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.24.4) - '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-block-scoping': 7.24.4(@babel/core@7.24.4) - '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-class-static-block': 7.24.4(@babel/core@7.24.4) - '@babel/plugin-transform-classes': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-destructuring': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.4) - '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-object-rest-spread': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-private-property-in-object': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-typeof-symbol': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.24.4) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.4) - babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.4) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.4) - babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.4) - core-js-compat: 3.34.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.4): + '@babel/preset-modules@0.1.6-no-external-plugins': resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/types': 7.23.9 - esutils: 2.0.3 - dev: true - /@babel/register@7.23.7(@babel/core@7.24.4): + '@babel/register@7.23.7': resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - clone-deep: 4.0.1 - find-cache-dir: 2.1.0 - make-dir: 2.1.0 - pirates: 4.0.6 - source-map-support: 0.5.21 - dev: true - /@babel/regjsgen@0.8.0: + '@babel/regjsgen@0.8.0': resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - dev: true - /@babel/runtime-corejs3@7.23.6: + '@babel/runtime-corejs3@7.23.6': resolution: {integrity: sha512-Djs/ZTAnpyj0nyg7p1J6oiE/tZ9G2stqAFlLGZynrW+F3k2w2jGK2mLOBxzYIOcZYA89+c3d3wXKpYLcpwcU6w==} engines: {node: '>=6.9.0'} - dependencies: - core-js-pure: 3.34.0 - regenerator-runtime: 0.14.1 - dev: true - /@babel/runtime@7.23.6: + '@babel/runtime@7.23.6': resolution: {integrity: sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==} engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.14.1 - dev: true - - /@babel/template@7.23.9: - resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.23.5 - '@babel/parser': 7.23.9 - '@babel/types': 7.23.9 - dev: true - /@babel/template@7.24.0: + '@babel/template@7.24.0': resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.24.2 - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 - dev: true - - /@babel/traverse@7.23.9: - resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.9 - '@babel/types': 7.23.9 - debug: 4.3.4(supports-color@8.1.1) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/traverse@7.24.1: + '@babel/traverse@7.24.1': resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 - debug: 4.3.4(supports-color@8.1.1) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/types@7.23.9: - resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} + '@babel/traverse@7.24.5': + resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.23.4 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - dev: true - /@babel/types@7.24.0: + '@babel/types@7.24.0': resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.23.4 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - dev: true - /@bcoe/v8-coverage@0.2.3: + '@babel/types@7.24.5': + resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} + engines: {node: '>=6.9.0'} + + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - dev: true - /@colors/colors@1.5.0: + '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} - requiresBuild: true - dev: true - optional: true - /@es-joy/escodegen@3.5.1: + '@es-joy/escodegen@3.5.1': resolution: {integrity: sha512-+ZFIB5hRBEwmbVc6LLb9zIgR5aNkluUHsqg2VfDLYf3aeDmF8uA7q614zKhwc7n0nh9Qh9XnYfzYgJNoyWSveg==} engines: {node: '>=6.0'} hasBin: true - dependencies: - '@es-joy/estraverse': 6.0.0 - esprima: 4.0.1 - esutils: 2.0.3 - optionator: 0.9.3 - optionalDependencies: - source-map: 0.7.4 - dev: true - /@es-joy/estraverse@6.0.0: + '@es-joy/estraverse@6.0.0': resolution: {integrity: sha512-lk61BuRPDm3KCm2x8Y629+szoRuChn83kG8ll+CniQM07u5dRVzQRkBFnn/hCdL+Urdsj4/6qeOJWr+QRRkKgw==} engines: {node: '>=4.0'} - dev: true - /@es-joy/jsdoc-eslint-parser@0.21.1: + '@es-joy/jsdoc-eslint-parser@0.21.1': resolution: {integrity: sha512-SZopkdH2PHgdr/tMa32m/74cLzHPXuBqyTqoODA3ExlHC3u47Fy/5wBacoA+6uOnjwVP4tVDi2gtqS4vX+6F7g==} engines: {node: '>=18.0.0'} - dependencies: - '@babel/core': 7.24.4 - '@babel/eslint-parser': 7.24.1(@babel/core@7.24.4)(eslint@8.56.0) - '@es-joy/jsdoccomment': 0.41.0 - '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 - esquery: 1.5.0 - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - /@es-joy/jsdoccomment@0.41.0: + '@es-joy/jsdoccomment@0.41.0': resolution: {integrity: sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==} engines: {node: '>=16'} - dependencies: - comment-parser: 1.4.1 - esquery: 1.5.0 - jsdoc-type-pratt-parser: 4.0.0 - dev: true - /@es-joy/jsdoccomment@0.43.0: + '@es-joy/jsdoccomment@0.43.0': resolution: {integrity: sha512-Q1CnsQrytI3TlCB1IVWXWeqUIPGVEKGaE7IbVdt13Nq/3i0JESAkQQERrfiQkmlpijl+++qyqPgaS31Bvc1jRQ==} engines: {node: '>=16'} - dependencies: - '@types/eslint': 8.56.7 - '@types/estree': 1.0.5 - '@typescript-eslint/types': 7.5.0 - comment-parser: 1.4.1 - esquery: 1.5.0 - jsdoc-type-pratt-parser: 4.0.0 - dev: false - - /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.56.0 - eslint-visitor-keys: 3.4.3 - dev: true - /@eslint-community/eslint-utils@4.4.0(eslint@9.0.0): + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 9.0.0 - eslint-visitor-keys: 3.4.3 - dev: true - /@eslint-community/regexpp@4.10.0: + '@eslint-community/regexpp@4.10.0': resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: true - /@eslint/eslintrc@2.1.4: + '@eslint/eslintrc@2.1.4': resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4(supports-color@8.1.1) - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.0 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /@eslint/eslintrc@3.0.2: + '@eslint/eslintrc@3.0.2': resolution: {integrity: sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4(supports-color@8.1.1) - espree: 10.0.1 - globals: 14.0.0 - ignore: 5.3.0 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /@eslint/js@8.56.0: + '@eslint/js@8.56.0': resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - /@eslint/js@9.0.0: - resolution: {integrity: sha512-RThY/MnKrhubF6+s1JflwUjPEsnCEmYCWwqa/aRISKWNXGZ9epUwft4bUMM35SdKF9xvBrLydAM1RDHd1Z//ZQ==} + '@eslint/js@9.2.0': + resolution: {integrity: sha512-ESiIudvhoYni+MdsI8oD7skpprZ89qKocwRM2KEvhhBJ9nl5MRh7BXU5GTod7Mdygq+AUl+QzId6iWJKR/wABA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dev: true - /@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.24.4)(@types/node@20.12.5)(graphql@16.8.1): + '@graphql-eslint/eslint-plugin@3.20.1': resolution: {integrity: sha512-RbwVlz1gcYG62sECR1u0XqMh8w5e5XMCCZoMvPQ3nJzEBCTfXLGX727GBoRmSvY1x4gJmqNZ1lsOX7lZY14RIw==} engines: {node: '>=12'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@babel/code-frame': 7.23.5 - '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.24.4)(graphql@16.8.1) - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.24.4)(graphql@16.8.1) - '@graphql-tools/utils': 9.2.1(graphql@16.8.1) - chalk: 4.1.2 - debug: 4.3.4(supports-color@8.1.1) - fast-glob: 3.3.2 - graphql: 16.8.1 - graphql-config: 4.5.0(@types/node@20.12.5)(graphql@16.8.1) - graphql-depth-limit: 1.1.0(graphql@16.8.1) - lodash.lowercase: 4.3.0 - tslib: 2.6.2 - transitivePeerDependencies: - - '@babel/core' - - '@types/node' - - bufferutil - - cosmiconfig-toml-loader - - encoding - - supports-color - - utf-8-validate - dev: true - /@graphql-tools/batch-execute@8.5.22(graphql@16.8.1): + '@graphql-tools/batch-execute@8.5.22': resolution: {integrity: sha512-hcV1JaY6NJQFQEwCKrYhpfLK8frSXDbtNMoTur98u10Cmecy1zrqNKSqhEyGetpgHxaJRqszGzKeI3RuroDN6A==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.8.1) - dataloader: 2.2.2 - graphql: 16.8.1 - tslib: 2.6.2 - value-or-promise: 1.0.12 - dev: true - /@graphql-tools/code-file-loader@7.3.23(@babel/core@7.24.4)(graphql@16.8.1): + '@graphql-tools/code-file-loader@7.3.23': resolution: {integrity: sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - dependencies: - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.24.4)(graphql@16.8.1) - '@graphql-tools/utils': 9.2.1(graphql@16.8.1) - globby: 11.1.0 - graphql: 16.8.1 - tslib: 2.6.2 - unixify: 1.0.0 + + '@graphql-tools/delegate@9.0.35': + resolution: {integrity: sha512-jwPu8NJbzRRMqi4Vp/5QX1vIUeUPpWmlQpOkXQD2r1X45YsVceyUUBnktCrlJlDB4jPRVy7JQGwmYo3KFiOBMA==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/executor-graphql-ws@0.0.14': + resolution: {integrity: sha512-P2nlkAsPZKLIXImFhj0YTtny5NQVGSsKnhi7PzXiaHSXc6KkzqbWZHKvikD4PObanqg+7IO58rKFpGXP7eeO+w==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/executor-http@0.1.10': + resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/executor-legacy-ws@0.0.11': + resolution: {integrity: sha512-4ai+NnxlNfvIQ4c70hWFvOZlSUN8lt7yc+ZsrwtNFbFPH/EroIzFMapAxM9zwyv9bH38AdO3TQxZ5zNxgBdvUw==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/executor@0.0.20': + resolution: {integrity: sha512-GdvNc4vszmfeGvUqlcaH1FjBoguvMYzxAfT6tDd4/LgwymepHhinqLNA5otqwVLW+JETcDaK7xGENzFomuE6TA==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/graphql-file-loader@7.5.17': + resolution: {integrity: sha512-hVwwxPf41zOYgm4gdaZILCYnKB9Zap7Ys9OhY1hbwuAuC4MMNY9GpUjoTU3CQc3zUiPoYStyRtUGkHSJZ3HxBw==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/graphql-tag-pluck@7.5.2': + resolution: {integrity: sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/import@6.7.18': + resolution: {integrity: sha512-XQDdyZTp+FYmT7as3xRWH/x8dx0QZA2WZqfMF5EWb36a0PiH7WwlRQYIdyYXj8YCLpiWkeBXgBRHmMnwEYR8iQ==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/json-file-loader@7.4.18': + resolution: {integrity: sha512-AJ1b6Y1wiVgkwsxT5dELXhIVUPs/u3VZ8/0/oOtpcoyO/vAeM5rOvvWegzicOOnQw8G45fgBRMkkRfeuwVt6+w==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/load@7.8.14': + resolution: {integrity: sha512-ASQvP+snHMYm+FhIaLxxFgVdRaM0vrN9wW2BKInQpktwWTXVyk+yP5nQUCEGmn0RTdlPKrffBaigxepkEAJPrg==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/merge@8.4.2': + resolution: {integrity: sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/schema@9.0.19': + resolution: {integrity: sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/url-loader@7.17.18': + resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/utils@9.2.1': + resolution: {integrity: sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/wrap@9.4.2': + resolution: {integrity: sha512-DFcd9r51lmcEKn0JW43CWkkI2D6T9XI1juW/Yo86i04v43O9w2/k4/nx2XTJv4Yv+iXwUw7Ok81PGltwGJSDSA==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-typed-document-node/core@3.2.0': + resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@hkdobrev/run-if-changed@0.3.1': + resolution: {integrity: sha512-kxu18zdSoTwYpTuwIw4Zsc/cWa+1c/HayXA290TSD97WKBzodntiqm6pPCoXhGDZu2F6/yg5VChJNSjrfMiTSA==} + hasBin: true + + '@humanwhocodes/config-array@0.11.13': + resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} + engines: {node: '>=10.10.0'} + + '@humanwhocodes/config-array@0.13.0': + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} + engines: {node: '>=10.10.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + + '@humanwhocodes/retry@0.2.4': + resolution: {integrity: sha512-Ttl/jHpxfS3st5sxwICYfk4pOH0WrLI1SpW283GgQL7sCWU7EHIOhX4b4fkIxr3tkfzwg8+FNojtzsIEE7Ecgg==} + engines: {node: '>=18.18'} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@istanbuljs/load-nyc-config@1.1.0': + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.1': + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.4.15': + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + '@jridgewell/trace-mapping@0.3.20': + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@next/eslint-plugin-next@13.5.6': + resolution: {integrity: sha512-ng7pU/DDsxPgT6ZPvuprxrkeew3XaRf4LAT4FabaEO/hAbvVx4P7wqnqdbTdDn1kgTvsI4tpIgT4Awn/m0bGbg==} + + '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': + resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==} + + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': + resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@npmcli/agent@2.2.0': + resolution: {integrity: sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/fs@3.1.0': + resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@octokit/auth-token@5.1.0': + resolution: {integrity: sha512-JH+5PhVMjpbBuKlykiseCHa2uZdEd8Qm/N9Kpqncx4o/wkGF38gqVjIP2gZqfaP3nxFZPpg0FwGClKzBi6nS2g==} + engines: {node: '>= 18'} + + '@octokit/core@6.1.1': + resolution: {integrity: sha512-uVypPdnZV7YoEa69Ky2kTSw3neFLGT0PZ54OwUMDph7w6TmhF0ZnoVcvb/kYnjDHCFo2mfoeRDYifLKhLNasUg==} + engines: {node: '>= 18'} + + '@octokit/endpoint@10.1.0': + resolution: {integrity: sha512-ogZ5uLMeGBZUzS32fNt9j+dNw3kkEn5CSw4CVkN1EvCNdFYWrQ5diQR6Hh52VrPR0oayIoYTqQFL/l8RqkV0qw==} + engines: {node: '>= 18'} + + '@octokit/graphql@8.1.0': + resolution: {integrity: sha512-XDvj6GcUnQYgbCLXElt3vZDzNIPGvGiwxQO2XzsvfVUjebGh0E5eCD/1My9zUGSNKaGVZitVuO8LMziGmoFryg==} + engines: {node: '>= 18'} + + '@octokit/openapi-types@20.0.0': + resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==} + + '@octokit/openapi-types@21.2.0': + resolution: {integrity: sha512-xx+Xd6I7rYvul/hgUDqv6TeGX0IOGnhSg9IOeYgd/uI7IAqUy6DE2B6Ipv2M4mWoxaMcWjIzgTIcv8pMO3F3vw==} + + '@octokit/openapi-types@22.2.0': + resolution: {integrity: sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==} + + '@octokit/plugin-paginate-rest@11.3.0': + resolution: {integrity: sha512-n4znWfRinnUQF6TPyxs7EctSAA3yVSP4qlJP2YgI3g9d4Ae2n5F3XDOjbUluKRxPU3rfsgpOboI4O4VtPc6Ilg==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '>=6' + + '@octokit/plugin-retry@7.1.0': + resolution: {integrity: sha512-6mc4xNtT6eoDBGrJJn0sFALUmIba2f7Wx+G8XV9GkBLcyX5PogBdx2mDMW5yPPqSD/y23tYagkjOLX9sT7O6jA==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '>=6' + + '@octokit/plugin-throttling@9.1.0': + resolution: {integrity: sha512-16lDMMhChavhvXKr2zRK7sD+hTpuVm697xZNf1a0C/MFRZU8CFkrNJEYX7Fqo2dc44lISp7V5Vm0sgJIx2bRkw==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': ^6.0.0 + + '@octokit/request-error@6.1.0': + resolution: {integrity: sha512-xcLJv4IgfWIOEEVZwfhUN3yHNWJL0AMw1J1Ba8BofM9RdDTbapg6MO4zNxlPS4XXX9aAIsbDRa47K57EhgeVAw==} + engines: {node: '>= 18'} + + '@octokit/request@9.0.1': + resolution: {integrity: sha512-kL+cAcbSl3dctYLuJmLfx6Iku2MXXy0jszhaEIjQNaCp4zjHXrhVAHeuaRdNvJjW9qjl3u1MJ72+OuBP0YW/pg==} + engines: {node: '>= 18'} + + '@octokit/types@12.6.0': + resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} + + '@octokit/types@13.1.0': + resolution: {integrity: sha512-nBwAFOYqVUUJ2AZFK4ZzESQptaAVqdTDKk8gE0Xr0o99WuPDSrhUC38x0F40xD9OUxXhOOuZKWNNVVLPSHQDvQ==} + + '@octokit/types@13.5.0': + resolution: {integrity: sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==} + + '@peculiar/asn1-schema@2.3.8': + resolution: {integrity: sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA==} + + '@peculiar/json-schema@1.1.12': + resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} + engines: {node: '>=8.0.0'} + + '@peculiar/webcrypto@1.4.3': + resolution: {integrity: sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A==} + engines: {node: '>=10.12.0'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pkgr/core@0.1.0': + resolution: {integrity: sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@pnpm/config.env-replace@1.1.0': + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} + + '@pnpm/network.ca-file@1.0.2': + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} + + '@pnpm/npm-conf@2.2.2': + resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} + engines: {node: '>=12'} + + '@repeaterjs/repeater@3.0.4': + resolution: {integrity: sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==} + + '@repeaterjs/repeater@3.0.5': + resolution: {integrity: sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA==} + + '@rushstack/eslint-patch@1.6.1': + resolution: {integrity: sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw==} + + '@semantic-release/commit-analyzer@12.0.0': + resolution: {integrity: sha512-qG+md5gdes+xa8zP7lIo1fWE17zRdO8yMCaxh9lyL65TQleoSv8WHHOqRURfghTytUh+NpkSyBprQ5hrkxOKVQ==} + engines: {node: '>=20.8.1'} + peerDependencies: + semantic-release: '>=20.1.0' + + '@semantic-release/error@4.0.0': + resolution: {integrity: sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==} + engines: {node: '>=18'} + + '@semantic-release/github@10.0.3': + resolution: {integrity: sha512-nSJQboKrG4xBn7hHpRMrK8lt5DgqJg50ZMz9UbrsfTxuRk55XVoQEadbGZ2L9M0xZAC6hkuwkDhQJKqfPU35Fw==} + engines: {node: '>=20.8.1'} + peerDependencies: + semantic-release: '>=20.1.0' + + '@semantic-release/npm@12.0.0': + resolution: {integrity: sha512-72TVYQCH9NvVsO/y13eF8vE4bNnfls518+4KcFwJUKi7AtA/ZXoNgSg9gTTfw5eMZMkiH0izUrpGXgZE/cSQhA==} + engines: {node: '>=20.8.1'} + peerDependencies: + semantic-release: '>=20.1.0' + + '@semantic-release/release-notes-generator@13.0.0': + resolution: {integrity: sha512-LEeZWb340keMYuREMyxrODPXJJ0JOL8D/mCl74B4LdzbxhtXV2LrPN2QBEcGJrlQhoqLO0RhxQb6masHytKw+A==} + engines: {node: '>=20.8.1'} + peerDependencies: + semantic-release: '>=20.1.0' + + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + '@sindresorhus/merge-streams@1.0.0': + resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==} + engines: {node: '>=18'} + + '@types/chai@4.3.16': + resolution: {integrity: sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/eslint@8.56.10': + resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} + + '@types/esquery@1.5.3': + resolution: {integrity: sha512-c55hQOcoPkWDfuEN9EdP1YyNH4D909U40gUEpY0nB5PWHExWHEPxcx3sx0fJ1Gzf4j1OpWktmIgciIlpgHtfDg==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/lodash.defaultsdeep@4.6.9': + resolution: {integrity: sha512-pLtCFK0YkHfGtGLYLNMTbFB5/G5+RsmQCIbbHH8GOAXjv+gDkVilY98kILfe8JH2Kev0OCReYxp1AjxEjP8ixA==} + + '@types/lodash@4.14.202': + resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==} + + '@types/mocha@10.0.6': + resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} + + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + + '@types/node@20.12.11': + resolution: {integrity: sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==} + + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + + '@types/semver@7.5.8': + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + + '@types/spdx-expression-parse@3.0.5': + resolution: {integrity: sha512-XrojSCTzVxPAfWeAiw8Hg27OW/4jalE7yiohCHRPprqfPyt2oG+Osy1HstUPMF26cEdno3IeEhv31Pzl0wwsQw==} + + '@types/ws@8.5.10': + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + + '@typescript-eslint/eslint-plugin@7.8.0': + resolution: {integrity: sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/experimental-utils@5.62.0': + resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + + '@typescript-eslint/parser@6.21.0': + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@7.8.0': + resolution: {integrity: sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@5.62.0': + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@typescript-eslint/scope-manager@6.19.1': + resolution: {integrity: sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/scope-manager@6.21.0': + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/scope-manager@7.8.0': + resolution: {integrity: sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/type-utils@7.8.0': + resolution: {integrity: sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@5.62.0': + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@typescript-eslint/types@6.19.1': + resolution: {integrity: sha512-6+bk6FEtBhvfYvpHsDgAL3uo4BfvnTnoge5LrrCj2eJN8g3IJdLTD4B/jK3Q6vo4Ql/Hoip9I8aB6fF+6RfDqg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/types@6.21.0': + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/types@7.5.0': + resolution: {integrity: sha512-tv5B4IHeAdhR7uS4+bf8Ov3k793VEVHd45viRRkehIUZxm0WF82VPiLgHzA/Xl4TGPg1ZD49vfxBKFPecD5/mg==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/types@7.8.0': + resolution: {integrity: sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/typescript-estree@5.62.0': + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@6.19.1': + resolution: {integrity: sha512-aFdAxuhzBFRWhy+H20nYu19+Km+gFfwNO4TEqyszkMcgBDYQjmPJ61erHxuT2ESJXhlhrO7I5EFIlZ+qGR8oVA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@6.21.0': + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@7.8.0': + resolution: {integrity: sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@5.62.0': + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + + '@typescript-eslint/utils@6.19.1': + resolution: {integrity: sha512-JvjfEZuP5WoMqwh9SPAPDSHSg9FBHHGhjPugSRxu5jMfjvBpq5/sGTD+9M9aQ5sh6iJ8AY/Kk/oUYVEMAPwi7w==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + + '@typescript-eslint/utils@7.8.0': + resolution: {integrity: sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + + '@typescript-eslint/visitor-keys@5.62.0': + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@typescript-eslint/visitor-keys@6.19.1': + resolution: {integrity: sha512-gkdtIO+xSO/SmI0W68DBg4u1KElmIUo3vXzgHyGPs6cxgB0sa3TlptRAAE0hUY1hM6FcDKEv7aIwiTGm76cXfQ==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/visitor-keys@6.21.0': + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/visitor-keys@7.8.0': + resolution: {integrity: sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + '@whatwg-node/events@0.0.3': + resolution: {integrity: sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA==} + + '@whatwg-node/fetch@0.8.8': + resolution: {integrity: sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg==} + + '@whatwg-node/node-fetch@0.3.6': + resolution: {integrity: sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA==} + + JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + + abbrev@2.0.0: + resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + acorn-globals@1.0.9: + resolution: {integrity: sha512-j3/4pkfih8W4NK22gxVSXcEonTpAHOHh0hu5BoZrKcOsW/4oBPxTi4Yk3SAj+FhC1f3+bRTkXdm4019gw1vg9g==} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@2.7.0: + resolution: {integrity: sha512-pXK8ez/pVjqFdAgBkF1YPVRacuLQ9EXBKaKWaeh58WNfMkCmZhOZzu+NtKSPD5PHmCCHheQ5cD29qM1K4QTxIg==} + engines: {node: '>=0.4.0'} + hasBin: true + + acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@7.1.0: + resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} + engines: {node: '>= 14'} + + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + + aggregate-error@5.0.0: + resolution: {integrity: sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==} + engines: {node: '>=18'} + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-colors@4.1.1: + resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + engines: {node: '>=6'} + + ansi-escapes@6.2.0: + resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} + engines: {node: '>=14.16'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + are-docs-informative@0.0.2: + resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} + engines: {node: '>=14'} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + argv-formatter@1.0.0: + resolution: {integrity: sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==} + + aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + + arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + + arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} + + arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + + array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + + array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + + array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + engines: {node: '>= 0.4'} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} + + array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + + array.prototype.reduce@1.0.6: + resolution: {integrity: sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==} + engines: {node: '>= 0.4'} + + array.prototype.tosorted@1.1.2: + resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} + + arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} + + arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + + asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + + asn1js@3.0.5: + resolution: {integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==} + engines: {node: '>=12.0.0'} + + assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + + assert@2.1.0: + resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} + + assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + + assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + + ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + + ast-types@0.16.1: + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} + engines: {node: '>=4'} + + asynciterator.prototype@1.0.0: + resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + + available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + + aws-sign2@0.7.0: + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + + aws4@1.12.0: + resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} + + axe-core@4.7.0: + resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} + engines: {node: '>=4'} + + axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + + 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-polyfill-corejs2@0.4.10: + resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-corejs3@0.10.4: + resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-regenerator@0.6.1: + resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} + + bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + + before-after-hook@3.0.2: + resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==} + + binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + + bluebird@2.11.0: + resolution: {integrity: sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==} + + bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + + boolean@3.2.0: + resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + + bottleneck@2.19.5: + resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@2.3.2: + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} + + braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + + browser-request@0.3.3: + resolution: {integrity: sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg==} + engines: {'0': node} + + browser-stdout@1.3.1: + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + + browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + + builtins@5.0.1: + resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} + + busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + + c8@9.1.0: + resolution: {integrity: sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==} + engines: {node: '>=14.14.0'} + hasBin: true + + cacache@18.0.1: + resolution: {integrity: sha512-g4Uf2CFZPaxtJKre6qr4zqLDOOPU7bNVhWjlNhvzc51xaTOx2noMOLhfFkTAqwtrAZAKQUuDfyjitzilpA8WsQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} + + call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + + caller-callsite@2.0.0: + resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} + engines: {node: '>=4'} + + caller-path@2.0.0: + resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==} + engines: {node: '>=4'} + + callsites@2.0.0: + resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==} + engines: {node: '>=4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001606: + resolution: {integrity: sha512-LPbwnW4vfpJId225pwjZJOgX1m9sGfbw/RKJvw/t0QhYOOaTXHvkjVGFGPpvwEzufrjvTlsULnVTxdy4/6cqkg==} + + caseless@0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + + chai@4.3.10: + resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} + engines: {node: '>=4'} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + chance@1.1.11: + resolution: {integrity: sha512-kqTg3WWywappJPqtgrdvbA380VoXO2eu9VCV895JgbyHsaErXdyHK9LOZ911OvAk6L0obK7kDk9CGs8+oBawVA==} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + + check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + + chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} + + clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + clean-stack@5.2.0: + resolution: {integrity: sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==} + engines: {node: '>=14.16'} + + cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + cli-highlight@2.1.11: + resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} + engines: {node: '>=8.0.0', npm: '>=5.0.0'} + hasBin: true + + cli-table3@0.6.3: + resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} + engines: {node: 10.* || >= 12.*} + + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} + + cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + + collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + comment-parser@1.4.1: + resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} + engines: {node: '>= 12.0.0'} + + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + + component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + + concat-map@0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + + config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + + contents@5.0.0: + resolution: {integrity: sha512-wnnGorqo07ZSIzMQmUc4vUv1NEXl7elBtqoz5UcysV+pbSvphZYfI763rXgpFK2H9o5rvjQQ8kZxp7hOOwIe3A==} + + conventional-changelog-angular@7.0.0: + resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} + engines: {node: '>=16'} + + conventional-changelog-writer@7.0.1: + resolution: {integrity: sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==} + engines: {node: '>=16'} + hasBin: true + + conventional-commits-filter@4.0.0: + resolution: {integrity: sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==} + engines: {node: '>=16'} + + conventional-commits-parser@5.0.0: + resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} + engines: {node: '>=16'} + hasBin: true + + convert-hrtime@5.0.0: + resolution: {integrity: sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==} + engines: {node: '>=12'} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} + + core-js-compat@3.36.1: + resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} + + core-js-pure@3.34.0: + resolution: {integrity: sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg==} + + core-js@3.34.0: + resolution: {integrity: sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==} + + core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cosmiconfig@5.2.1: + resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==} + engines: {node: '>=4'} + + cosmiconfig@8.0.0: + resolution: {integrity: sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==} + engines: {node: '>=14'} + + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + create-eslint-index@1.0.0: + resolution: {integrity: sha512-nXvJjnfDytOOaPOonX0h0a1ggMoqrhdekGeZkD6hkcWYvlCWhU719tKFVh8eU04CnMwu3uwe1JjwuUF2C3k2qg==} + engines: {node: '>=4.0.0'} + + cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + + cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + crypto-random-string@4.0.0: + resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} + engines: {node: '>=12'} + + cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + + cssstyle@0.2.37: + resolution: {integrity: sha512-FUpKc+1FNBsHUr9IsfSGCovr8VuGOiiuzlgCyppKBjJi2jYTOFLN3oiiNRMIvYqbFzF38mqKj4BgcevzU5/kIA==} + + damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + + dashdash@1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} + + dataloader@2.2.2: + resolution: {integrity: sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==} + + deadlink@1.1.3: + resolution: {integrity: sha512-m1h/xFi5eqcByMT7AGBt0BCygIifVyUw6CtEh1NpS/x0yeyS709+nCY5ByK255J/5hiRb9O/8dx6mmx3t6qSIQ==} + engines: {node: '>=4'} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + 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 + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + decamelize@4.0.0: + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + engines: {node: '>=10'} + + decamelize@5.0.1: + resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} + engines: {node: '>=10'} + + decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + + deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} + + define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + + define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + diff@5.0.0: + resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} + engines: {node: '>=0.3.1'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dom-serializer@0.2.2: + resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} + + domelementtype@1.3.1: + resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@2.4.2: + resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} + + domutils@1.7.0: + resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} + + dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + + dset@3.1.3: + resolution: {integrity: sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==} + engines: {node: '>=4'} + + duplexer2@0.1.4: + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ecc-jsbn@0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + + electron-to-chromium@1.4.729: + resolution: {integrity: sha512-bx7+5Saea/qu14kmPTDHQxkp2UnziG3iajUQu3BxFvCOnpAJdDbMV4rSl+EqFDkkpNNVUFlR1kDfpL59xfy1HA==} + + emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + emojilib@2.4.0: + resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} + + encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + enhance-visitors@1.0.0: + resolution: {integrity: sha512-+29eJLiUixTEDRaZ35Vu8jP3gPLNcQQkQkOQjLp2X+6cZGGPDD/uasbFzvLsJKnGZnvmyZ0srxudwOtskHeIDA==} + engines: {node: '>=4.0.0'} + + enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + engines: {node: '>=10.13.0'} + + entities@1.1.2: + resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} + + entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + + env-ci@11.0.0: + resolution: {integrity: sha512-apikxMgkipkgTvMdRT9MNqWx5VLOci79F4VBd7Op/7OPjjoanjdAvn6fglMCCEf/1bAh8eOiuEVCUs4V3qP3nQ==} + engines: {node: ^18.17 || >=20.6.1} + + env-editor@0.4.2: + resolution: {integrity: sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==} + engines: {node: '>=8'} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} + engines: {node: '>= 0.4'} + + es-array-method-boxes-properly@1.0.0: + resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} + + es-iterator-helpers@1.0.15: + resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + + es-set-tostringtag@2.0.2: + resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + + es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + + escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + escodegen@1.14.3: + resolution: {integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==} + engines: {node: '>=4.0'} + hasBin: true + + eslint-ast-utils@1.1.0: + resolution: {integrity: sha512-otzzTim2/1+lVrlH19EfQQJEhVJSu0zOb9ygb3iapN6UlyaDtyRq4b5U1FuW0v1lRa9Fp/GJyHkSwm6NqABgCA==} + engines: {node: '>=4'} + + eslint-compat-utils@0.1.2: + resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + + eslint-config-canonical@42.8.2: + resolution: {integrity: sha512-kkidsl+3qCwoy2MESNRMEV7jcTFaLbyYSWYubOznFGtMR1eZMhV6j920EllEoWZU66VLSEDtZNnHfwMW4cNC0Q==} + engines: {node: '>=16.0.0'} + peerDependencies: + eslint: ^8.30.0 + + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-import-resolver-typescript@3.6.1: + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + + eslint-module-utils@2.8.0: + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-ava@14.0.0: + resolution: {integrity: sha512-XmKT6hppaipwwnLVwwvQliSU6AF1QMHiNoLD5JQfzhUhf0jY7CO0O624fQrE+Y/fTb9vbW8r77nKf7M/oHulxw==} + engines: {node: '>=14.17 <15 || >=16.4'} + peerDependencies: + eslint: '>=8.26.0' + + eslint-plugin-canonical@4.18.0: + resolution: {integrity: sha512-0Egc0FKOnCRdu3bFEJhfHkdkusIgW0UxdemukkowZQnQsnf12FHSJ7K26b+tZ5pKB7cTyECSaqvEpoIJfplX4g==} + engines: {node: '>=16.0.0'} + + eslint-plugin-cypress@2.15.1: + resolution: {integrity: sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==} + peerDependencies: + eslint: '>= 3.2.1' + + eslint-plugin-es-x@7.5.0: + resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '>=8' + + eslint-plugin-eslint-comments@3.2.0: + resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} + engines: {node: '>=6.5.0'} + peerDependencies: + eslint: '>=4.19.1' + + eslint-plugin-flowtype@8.0.3: + resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@babel/plugin-syntax-flow': ^7.14.5 + '@babel/plugin-transform-react-jsx': ^7.14.9 + eslint: ^8.1.0 + + eslint-plugin-fp@2.3.0: + resolution: {integrity: sha512-3n2oHibwoIxAht9/+ZaTldhI6brXORgl8oNXqZd+d9xuAQt2SBJ2/aml0oQRMWvXrgsz2WG6wfC++NjzSG3prA==} + engines: {node: '>=4.0.0'} + peerDependencies: + eslint: '>=3' + + eslint-plugin-i@2.29.1: + resolution: {integrity: sha512-ORizX37MelIWLbMyqI7hi8VJMf7A0CskMmYkB+lkCX3aF4pkGV7kwx5bSEb4qx7Yce2rAf9s34HqDRPjGRZPNQ==} + engines: {node: '>=12'} + peerDependencies: + eslint: ^7.2.0 || ^8 + + eslint-plugin-jest@28.5.0: + resolution: {integrity: sha512-6np6DGdmNq/eBbA7HOUNV8fkfL86PYwBfwyb8n23FXgJNTR8+ot3smRHjza9LGsBBZRypK3qyF79vMjohIL8eQ==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^6.0.0 || ^7.0.0 + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + jest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + jest: + optional: true + + eslint-plugin-jsdoc@46.9.1: + resolution: {integrity: sha512-11Ox5LCl2wY7gGkp9UOyew70o9qvii1daAH+h/MFobRVRNcy7sVlH+jm0HQdgcvcru6285GvpjpUyoa051j03Q==} + engines: {node: '>=16'} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + + eslint-plugin-jsonc@2.11.2: + resolution: {integrity: sha512-F6A0MZhIGRBPOswzzn4tJFXXkPLiLwJaMlQwz/Qj1qx+bV5MCn79vBeJh2ynMmtqqHloi54KDCnsT/KWrcCcnQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-plugin-jsx-a11y@6.8.0: + resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + + eslint-plugin-lodash@7.4.0: + resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} + engines: {node: '>=10'} + peerDependencies: + eslint: '>=2' + + eslint-plugin-mocha@10.2.0: + resolution: {integrity: sha512-ZhdxzSZnd1P9LqDPF0DBcFLpRIGdh1zkF2JHnQklKQOvrQtT73kdP5K9V2mzvbLR+cCAO9OI48NXK/Ax9/ciCQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-modules-newline@0.0.6: + resolution: {integrity: sha512-69NpBr68U6pmXL+y+KHl/64PwRarceC3/sCNUVxRbe0gPI32SIw8AtdpkqNiJYCa2yMd4lRrkrnU09Yio7KVzA==} + engines: {node: '>=0.10.0'} + + eslint-plugin-n@16.5.0: + resolution: {integrity: sha512-Hw02Bj1QrZIlKyj471Tb1jSReTl4ghIMHGuBGiMVmw+s0jOPbI4CBuYpGbZr+tdQ+VAvSK6FDSta3J4ib/SKHQ==} + engines: {node: '>=16.0.0'} + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-prettier@5.1.2: + resolution: {integrity: sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + + eslint-plugin-promise@6.1.1: + resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + + eslint-plugin-react-hooks@4.6.0: + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + + eslint-plugin-react@7.33.2: + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + + eslint-plugin-regexp@1.15.0: + resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} + engines: {node: ^12 || >=14} + peerDependencies: + eslint: '>=6.0.0' + + eslint-plugin-simple-import-sort@10.0.0: + resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} + peerDependencies: + eslint: '>=5.0.0' + + eslint-plugin-typescript-sort-keys@3.2.0: + resolution: {integrity: sha512-GutszvriaVtwmn7pQjuj9/9o0iXhD7XZs0/424+zsozdRr/fdg5e8206t478Vnqnqi1GjuxcAolj1kf74KnhPA==} + engines: {node: '>= 16'} + peerDependencies: + '@typescript-eslint/parser': ^6 || ^7 + eslint: ^7 || ^8 + typescript: ^3 || ^4 || ^5 + + eslint-plugin-unicorn@48.0.1: + resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} + engines: {node: '>=16'} + peerDependencies: + eslint: '>=8.44.0' + + eslint-plugin-vitest@0.3.20: + resolution: {integrity: sha512-O05k4j9TGMOkkghj9dRgpeLDyOSiVIxQWgNDPfhYPm5ioJsehcYV/zkRLekQs+c8+RBCVXucSED3fYOyy2EoWA==} + engines: {node: ^18.0.0 || >= 20.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': '*' + eslint: '>=8.0.0' + vitest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + vitest: + optional: true + + eslint-plugin-yml@1.11.0: + resolution: {integrity: sha512-NBZP1NDGy0u38pY5ieix75jxS9GNOJy9xd4gQa0rU4gWbfEsVhKDwuFaQ6RJpDbv6Lq5TtcAZS/YnAc0oeRw0w==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-plugin-zod@1.4.0: + resolution: {integrity: sha512-i9WzQGw2X5fQcuQh33mA8DQjZJM/yuyZvs1Fc5EyTidX7Ed/g832+1FEQ4u5gtXy+jZ+DVsB5+oMHj4tIOfeZg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=8.1.0' + + eslint-rule-composer@0.3.0: + resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} + engines: {node: '>=4.0.0'} + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-scope@8.0.1: + resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-utils@3.0.0: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + + eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.0.0: + resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@8.56.0: + resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + + eslint@9.2.0: + resolution: {integrity: sha512-0n/I88vZpCOzO+PQpt0lbsqmn9AsnsJAQseIqhZFI8ibQT0U1AkEKRxA3EVMos0BoHSXDQvCXY25TUjB5tr8Og==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + + espree@10.0.1: + resolution: {integrity: sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + espurify@2.1.1: + resolution: {integrity: sha512-zttWvnkhcDyGOhSH4vO2qCBILpdCMv/MX8lp4cqgRkQoDRGK2oZxi2GfWhlP2dIXmk7BaKeOTuzbHhyC68o8XQ==} + + esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + execa@1.0.0: + resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} + engines: {node: '>=6'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + expand-brackets@2.1.4: + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} + + exponential-backoff@3.1.1: + resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} + + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + extglob@2.0.4: + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} + + extract-files@11.0.0: + resolution: {integrity: sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==} + engines: {node: ^12.20 || >= 14.13} + + extsprintf@1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} + + fast-decode-uri-component@1.0.1: + resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-printf@1.6.9: + resolution: {integrity: sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==} + engines: {node: '>=10.0'} + + fast-querystring@1.1.2: + resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} + + fast-url-parser@1.1.3: + resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} + + fastq@1.16.0: + resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} + + figures@2.0.0: + resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} + engines: {node: '>=4'} + + figures@6.0.1: + resolution: {integrity: sha512-0oY/olScYD4IhQ8u//gCPA4F3mlTn2dacYmiDm/mbDQvpmLjV4uH+zhsQ5IyXRyvqkvtUkXkNdGvg5OFJTCsuQ==} + engines: {node: '>=18'} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + filesize@6.4.0: + resolution: {integrity: sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==} + engines: {node: '>= 0.4.0'} + + fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} + engines: {node: '>=0.10.0'} + + fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + + find-cache-dir@2.1.0: + resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} + engines: {node: '>=6'} + + find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} + + find-up@2.1.0: + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} + engines: {node: '>=4'} + + find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + find-versions@6.0.0: + resolution: {integrity: sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==} + engines: {node: '>=18'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + + for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + + foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + + forever-agent@0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + + form-data@2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} + + fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} + + from2@2.3.0: + resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} + + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + fs-readdir-recursive@1.1.0: + resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function-timeout@1.0.1: + resolution: {integrity: sha512-6yPMImFFuaMPNaTMTBuolA8EanHJWF5Vju0NHpObRURT105J6x1Mf2a7J4P7Sqk2xDxv24N5L0RatEhTBhNmdA==} + engines: {node: '>=18'} + + function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + + get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + + get-set-props@0.1.0: + resolution: {integrity: sha512-7oKuKzAGKj0ag+eWZwcGw2fjiZ78tXnXQoBgY0aU7ZOxTu4bB7hSuQSDgtKy978EDH062P5FmD2EWiDpQS9K9Q==} + engines: {node: '>=0.10.0'} + + get-stream@4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-stream@7.0.1: + resolution: {integrity: sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==} + engines: {node: '>=16'} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.7.2: + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + + get-urls@10.0.1: + resolution: {integrity: sha512-5usUMF4FE0cTS7yUuRvBsB4tSs5u8KFn7v01+IDGL/18tuoADu5ehthqw+y2EHnJsWhsp1443K5P+C/XWZQ04g==} + engines: {node: '>=10.12.0'} + + get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + + getpass@0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + + git-log-parser@1.2.0: + resolution: {integrity: sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==} + + gitdown@3.1.5: + resolution: {integrity: sha512-nvdK4qp8yQdzbdHgnEUuC0ubfAvv27fHNpsX9/0FLJvAJk687zGkptRNvls4U5UNYMKdunIL84QR+qQKyHMDaw==} + engines: {node: '>=10'} + hasBin: true + + gitinfo@2.4.0: + resolution: {integrity: sha512-cQU3oInRu7+LaPwFNlppP0NmJa1SBdZtNCUoo+XT/nGRbmwlhssbjkN7gQmfQZAuMxphghx0ACfbIQmMBmPT2w==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.3.13: + resolution: {integrity: sha512-CQ9K7FRtaP//lXUKJVVYFxvozIz3HR4Brk+yB5VSkmWiHVILwd7NqQ2+UH6Ab5/NzCLib+j1REVV+FSZ+ZHOvg==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.2.0: + resolution: {integrity: sha512-FQ5YwCHZM3nCmtb5FzEWwdUc9K5d3V/w9mzcz8iGD1gC/aOTHc6PouYu0kkKipNJqHAT7m51sqzQjEjIP+cK0A==} + engines: {node: '>=18'} + + globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + globby@14.0.0: + resolution: {integrity: sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==} + engines: {node: '>=18'} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + graphql-config@4.5.0: + resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} + engines: {node: '>= 10.0.0'} + peerDependencies: + cosmiconfig-toml-loader: ^1.0.0 + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + cosmiconfig-toml-loader: + optional: true + + graphql-depth-limit@1.1.0: + resolution: {integrity: sha512-+3B2BaG8qQ8E18kzk9yiSdAa75i/hnnOwgSeAxVJctGQPvmeiLtqKOYF6HETCyRjiF7Xfsyal0HbLlxCQkgkrw==} + engines: {node: '>=6.0.0'} + peerDependencies: + graphql: '*' + + graphql-ws@5.12.1: + resolution: {integrity: sha512-umt4f5NnMK46ChM2coO36PTFhHouBrK9stWWBczERguwYrGnPNxJ9dimU6IyOBfOkC6Izhkg4H8+F51W/8CYDg==} + engines: {node: '>=10'} + peerDependencies: + graphql: '>=0.11 <=16' + + graphql@16.8.1: + resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + + har-schema@2.0.0: + resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} + engines: {node: '>=4'} + + har-validator@5.1.5: + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} + engines: {node: '>=6'} + deprecated: this library is no longer supported + + has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + + has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + + has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} + + has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} + + has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} + + has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} + + hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + + homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + + hook-std@3.0.0: + resolution: {integrity: sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + hosted-git-info@7.0.1: + resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} + engines: {node: ^16.14.0 || >=18.0.0} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + htmlparser2@3.10.1: + resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} + + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + http-proxy-agent@7.0.0: + resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} + engines: {node: '>= 14'} + + http-signature@1.2.0: + resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} + engines: {node: '>=0.8', npm: '>=1.3.7'} + + https-proxy-agent@7.0.2: + resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} + engines: {node: '>= 14'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + husky@9.0.11: + resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} + engines: {node: '>=18'} + hasBin: true + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + engines: {node: '>= 4'} + + ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + + import-fresh@2.0.0: + resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} + engines: {node: '>=4'} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + import-from-esm@1.3.3: + resolution: {integrity: sha512-U3Qt/CyfFpTUv6LOP2jRTLYjphH6zg3okMfHbyqRa/W2w6hr8OsJWVggNlR4jxuojQy81TgTJTxgSkyoteRGMQ==} + engines: {node: '>=16.20'} + + import-meta-resolve@4.0.0: + resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} + + import-modules@2.1.0: + resolution: {integrity: sha512-8HEWcnkbGpovH9yInoisxaSoIg9Brbul+Ju3Kqe2UsYDUBJD/iQjSgEj0zPcTDPKfPp2fs5xlv1i+JSye/m1/A==} + engines: {node: '>=8'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + + index-to-position@0.1.2: + resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==} + engines: {node: '>=18'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + install-artifact-from-github@1.3.5: + resolution: {integrity: sha512-gZHC7f/cJgXz7MXlHFBxPVMsvIbev1OQN1uKQYKVJDydGNm9oYf9JstbU4Atnh/eSvk41WtEovoRm+8IF686xg==} + hasBin: true + + internal-slot@1.0.6: + resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} + engines: {node: '>= 0.4'} + + into-stream@7.0.0: + resolution: {integrity: sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==} + engines: {node: '>=12'} + + ip-regex@4.3.0: + resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==} + engines: {node: '>=8'} + + ip@2.0.1: + resolution: {integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==} + + is-accessor-descriptor@1.0.1: + resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} + engines: {node: '>= 0.10'} + + is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + + is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + + is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + + is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + + is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + + is-data-descriptor@1.0.1: + resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} + engines: {node: '>= 0.4'} + + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + + is-descriptor@0.1.7: + resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} + engines: {node: '>= 0.4'} + + is-descriptor@1.0.3: + resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} + engines: {node: '>= 0.4'} + + is-directory@0.3.1: + resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} + engines: {node: '>=0.10.0'} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + + is-get-set-prop@1.0.0: + resolution: {integrity: sha512-DvAYZ1ZgGUz4lzxKMPYlt08qAUqyG9ckSg2pIjfvcQ7+pkVNUHk8yVLXOnCLe5WKXhLop8oorWFBJHpwWQpszQ==} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-js-type@2.0.0: + resolution: {integrity: sha512-Aj13l47+uyTjlQNHtXBV8Cji3jb037vxwMWCgopRR8h6xocgBGW3qG8qGlIOEmbXQtkKShKuBM9e8AA1OeQ+xw==} + + is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + + is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + + is-nan@1.3.2: + resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} + engines: {node: '>= 0.4'} + + is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + + is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + + is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-obj-prop@1.0.0: + resolution: {integrity: sha512-5Idb61slRlJlsAzi0Wsfwbp+zZY+9LXKUAZpvT/1ySw+NxKLRWfa0Bzj+wXI3fX5O9hiddm5c3DAaRSNP/yl2w==} + + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + + is-proto-prop@2.0.0: + resolution: {integrity: sha512-jl3NbQ/fGLv5Jhan4uX+Ge9ohnemqyblWVVCpAvtTQzNFvV2xhJq+esnkIbYQ9F1nITXoLfDDQLp7LBw/zzncg==} + + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + + is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + + is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + + is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + + is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + + is-text-path@2.0.0: + resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} + engines: {node: '>=8'} + + is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + + is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + is-unicode-supported@2.0.0: + resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} + engines: {node: '>=18'} + + is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + + is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + + is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + + isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + isomorphic-ws@5.0.0: + resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} + peerDependencies: + ws: '*' + + isstream@0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + + issue-parser@7.0.0: + resolution: {integrity: sha512-jgAw78HO3gs9UrKqJNQvfDj9Ouy8Mhu40fbEJ8yXff4MW8+/Fcn9iFjyWUQ6SKbX8ipPk3X5A3AyfYHRu6uVLw==} + engines: {node: ^18.17 || >=20.6.1} + + istanbul-lib-coverage@3.2.2: + 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-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-reports@3.1.6: + resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} + engines: {node: '>=8'} + + iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + + jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + + java-properties@1.0.2: + resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==} + engines: {node: '>= 0.6.0'} + + jiti@1.17.1: + resolution: {integrity: sha512-NZIITw8uZQFuzQimqjUxIrIcEdxYDFIe/0xYfIlVXTkiBjjyBEvgasj5bb0/cHtPRD/NziPbT312sFrkI5ALpw==} + hasBin: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-types@1.0.0: + resolution: {integrity: sha512-bfwqBW9cC/Lp7xcRpug7YrXm0IVw+T9e3g4mCYnv0Pjr3zIzU9PCQElYU9oSGAWzXlbdl9X5SAMPejO9sxkeUw==} + engines: {node: '>=0.10.0'} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsbn@0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + + jsdoc-type-pratt-parser@4.0.0: + resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} + engines: {node: '>=12.0.0'} + + jsdoctypeparser@9.0.0: + resolution: {integrity: sha512-jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==} + engines: {node: '>=10'} + hasBin: true + + jsdom@6.5.1: + resolution: {integrity: sha512-KeCN3yqR+MmjAZDnVZgIaL2tP9BxSFlsYZw9Z+zy64+jJzHc1m8ruccb83Qe8AG0xKUjpo2kxEGFCMtiF4MmAg==} + + jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonc-eslint-parser@2.4.0: + resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + jsprim@1.4.2: + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} + engines: {node: '>=0.6.0'} + + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + + kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + language-subtag-registry@0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + + language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + + levn@0.3.0: + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} + engines: {node: '>= 0.8.0'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lilconfig@3.0.0: + resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + engines: {node: '>=14'} + + line-column-path@2.0.0: + resolution: {integrity: sha512-nz3A+vi4bElhwd62E9+Qk/f9BDYLSzD/4Hy1rir0I4GnMxSTezSymzANyph5N1PgRZ3sSbA+yR5hOuXxc71a0Q==} + engines: {node: '>=8'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + lint-staged@15.2.2: + resolution: {integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==} + engines: {node: '>=18.12.0'} + hasBin: true + + listr2@8.0.1: + resolution: {integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==} + engines: {node: '>=18.0.0'} + + load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} + engines: {node: '>=4'} + + locate-path@2.0.0: + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} + engines: {node: '>=4'} + + locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + + lodash.capitalize@4.2.1: + resolution: {integrity: sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash.defaultsdeep@4.6.1: + resolution: {integrity: sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==} + + lodash.escaperegexp@4.1.2: + resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + + lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + + lodash.lowercase@4.3.0: + resolution: {integrity: sha512-UcvP1IZYyDKyEL64mmrwoA1AbFu5ahojhTtkOUr1K9dbuxzS9ev8i4TxMMGCqRC9TE8uDaSoufNAXxRPNTseVA==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.uniqby@4.7.0: + resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} + + lodash.zip@4.2.0: + resolution: {integrity: sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + log-update@6.0.0: + resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} + engines: {node: '>=18'} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + + lowercase-keys@1.0.1: + resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} + engines: {node: '>=0.10.0'} + + lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + make-fetch-happen@13.0.0: + resolution: {integrity: sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==} + engines: {node: ^16.14.0 || >=18.0.0} + + map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + + map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} + + markdown-contents@1.0.11: + resolution: {integrity: sha512-6o8It0JhmoN398ATp8zOWHAniTB3/tEXUVTCP00gTqwZNc465DIoHTTaspyEkaov93QLhrqirxizJ29E/i8/0Q==} + + marked-terminal@7.0.0: + resolution: {integrity: sha512-sNEx8nn9Ktcm6pL0TnRz8tnXq/mSS0Q1FRSwJOAqw4lAB4l49UeDf85Gm1n9RPFm5qurCPjwi1StAQT2XExhZw==} + engines: {node: '>=16.0.0'} + peerDependencies: + marked: '>=1 <13' + + marked@12.0.1: + resolution: {integrity: sha512-Y1/V2yafOcOdWQCX0XpAKXzDakPOpn6U0YLxTJs3cww6VxOzZV1BTOOYWLvH3gX38cq+iLwljHHTnMtlDfg01Q==} + engines: {node: '>= 18'} + hasBin: true + + marked@2.1.3: + resolution: {integrity: sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==} + engines: {node: '>= 10'} + hasBin: true + + meow@12.1.1: + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} + engines: {node: '>=16.10'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + meros@1.3.0: + resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} + engines: {node: '>=13'} + peerDependencies: + '@types/node': '>=13' + peerDependenciesMeta: + '@types/node': + optional: true + + micro-spelling-correcter@1.1.1: + resolution: {integrity: sha512-lkJ3Rj/mtjlRcHk6YyCbvZhyWTOzdBvTHsxMmZSk5jxN1YyVSQ+JETAom55mdzfcyDrY/49Z7UCW760BK30crg==} + + micromatch@3.1.10: + resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} + engines: {node: '>=0.10.0'} + + micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@4.0.1: + resolution: {integrity: sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==} + engines: {node: '>=16'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + minimatch@3.0.5: + resolution: {integrity: sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@4.2.3: + resolution: {integrity: sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng==} + engines: {node: '>=10'} + + minimatch@5.0.1: + resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} + engines: {node: '>=10'} + + minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass-collect@2.0.1: + resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass-fetch@3.0.4: + resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + + minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + + minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mocha@10.4.0: + resolution: {integrity: sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==} + engines: {node: '>= 14.0.0'} + hasBin: true + + moment@2.30.1: + resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nan@2.18.0: + resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==} + + nanomatch@1.2.13: + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} + + natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + nerf-dart@1.0.0: + resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} + + nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + + node-emoji@2.1.3: + resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} + engines: {node: '>=18'} + + node-environment-flags@1.0.6: + resolution: {integrity: sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-gyp@10.0.1: + resolution: {integrity: sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==} + engines: {node: ^16.14.0 || >=18.0.0} + hasBin: true + + node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + + nopt@7.2.0: + resolution: {integrity: sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-package-data@6.0.0: + resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==} + engines: {node: ^16.14.0 || >=18.0.0} + + normalize-path@2.1.1: + resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} + engines: {node: '>=0.10.0'} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-url@5.3.1: + resolution: {integrity: sha512-K1c7+vaAP+Yh5bOGmA10PGPpp+6h7WZrl7GwqKhUflBc9flU9pzG27DDeB9+iuhZkE3BJZOcgN1P/2sS5pqrWw==} + engines: {node: '>=10'} + + normalize-url@8.0.0: + resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==} + engines: {node: '>=14.16'} + + npm-path@2.0.4: + resolution: {integrity: sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==} + engines: {node: '>=0.8'} + hasBin: true + + npm-run-path@2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} + engines: {node: '>=4'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + npm-run-path@5.2.0: + resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + npm-which@3.0.1: + resolution: {integrity: sha512-CM8vMpeFQ7MAPin0U3wzDhSGV0hMHNwHU0wjo402IVizPDrs45jSfSuoC+wThevY88LQti8VvaAnqYAeVy3I1A==} + engines: {node: '>=4.2.0'} + hasBin: true + + npm@10.5.1: + resolution: {integrity: sha512-RozZuGuWbbhDM2sRhOSLIRb3DLyof6TREi0TW5b3xUEBropDhDqEHv0iAjA1zsIwXKgfIkR8GvQMd4oeKKg9eQ==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + bundledDependencies: + - '@isaacs/string-locale-compare' + - '@npmcli/arborist' + - '@npmcli/config' + - '@npmcli/fs' + - '@npmcli/map-workspaces' + - '@npmcli/package-json' + - '@npmcli/promise-spawn' + - '@npmcli/redact' + - '@npmcli/run-script' + - '@sigstore/tuf' + - abbrev + - archy + - cacache + - chalk + - ci-info + - cli-columns + - cli-table3 + - columnify + - fastest-levenshtein + - fs-minipass + - glob + - graceful-fs + - hosted-git-info + - ini + - init-package-json + - is-cidr + - json-parse-even-better-errors + - libnpmaccess + - libnpmdiff + - libnpmexec + - libnpmfund + - libnpmhook + - libnpmorg + - libnpmpack + - libnpmpublish + - libnpmsearch + - libnpmteam + - libnpmversion + - make-fetch-happen + - minimatch + - minipass + - minipass-pipeline + - ms + - node-gyp + - nopt + - normalize-package-data + - npm-audit-report + - npm-install-checks + - npm-package-arg + - npm-pick-manifest + - npm-profile + - npm-registry-fetch + - npm-user-validate + - npmlog + - p-map + - pacote + - parse-conflict-json + - proc-log + - qrcode-terminal + - read + - semver + - spdx-expression-parse + - ssri + - supports-color + - tar + - text-table + - tiny-relative-date + - treeverse + - validate-npm-package-name + - which + - write-file-atomic + + nwmatcher@1.4.4: + resolution: {integrity: sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==} + + oauth-sign@0.9.0: + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + + obj-props@1.4.0: + resolution: {integrity: sha512-p7p/7ltzPDiBs6DqxOrIbtRdwxxVRBj5ROukeNb9RgA+fawhrz5n2hpNz8DDmYR//tviJSj7nUnlppGmONkjiQ==} + engines: {node: '>=0.10.0'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + + object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} + + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + + object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + engines: {node: '>= 0.4'} + + object.getownpropertydescriptors@2.1.7: + resolution: {integrity: sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==} + engines: {node: '>= 0.8'} + + object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + + object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + + object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + open-editor@3.0.0: + resolution: {integrity: sha512-00Nqoa7k8F4AK1oSFMIIhYku+essXiCljR2L2kV+bl5j90ANgbQgzEeTdZu23LsikDoz+KfhyRHpGLAwpQhugA==} + engines: {node: '>=10'} + + open@7.4.2: + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} + engines: {node: '>=8'} + + optionator@0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + engines: {node: '>= 0.8.0'} + + optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + + p-each-series@3.0.0: + resolution: {integrity: sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==} + engines: {node: '>=12'} + + p-filter@4.1.0: + resolution: {integrity: sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==} + engines: {node: '>=18'} + + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + + p-is-promise@3.0.0: + resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} + engines: {node: '>=8'} + + p-limit@1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} + + p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + + p-map@7.0.1: + resolution: {integrity: sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==} + engines: {node: '>=18'} + + p-reduce@3.0.0: + resolution: {integrity: sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==} + engines: {node: '>=12'} + + p-try@1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} + engines: {node: '>=4'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-json@8.1.0: + resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} + engines: {node: '>=18'} + + parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + + parse5-htmlparser2-tree-adapter@6.0.1: + resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + + parse5@1.5.1: + resolution: {integrity: sha512-w2jx/0tJzvgKwZa58sj2vAYq/S/K1QJfIB3cWYea/Iu1scFPDQQ3IQiVZTHWtRBwAjv2Yd7S/xeZf3XqLDb3bA==} + + parse5@5.1.1: + resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} + + parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + + pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} + + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.10.2: + resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} + engines: {node: '>=16 || 14 >=14.17'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + + pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + + performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + + picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + + pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + pkg-conf@2.1.0: + resolution: {integrity: sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==} + engines: {node: '>=4'} + + pkg-dir@3.0.0: + resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} + engines: {node: '>=6'} + + pkg-dir@5.0.0: + resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} + engines: {node: '>=10'} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + + prelude-ls@1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + engines: {node: '>= 0.8.0'} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + + prettier@3.1.1: + resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==} + engines: {node: '>=14'} + hasBin: true + + proc-log@3.0.0: + resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + + proto-props@2.0.0: + resolution: {integrity: sha512-2yma2tog9VaRZY2mn3Wq51uiSW4NcPYT1cQdBagwyrznrilKSZwIZ0UG3ZPL/mx+axEns0hE35T5ufOYZXEnBQ==} + engines: {node: '>=4'} + + psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + + pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + + punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + pvtsutils@1.3.5: + resolution: {integrity: sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==} + + pvutils@1.1.3: + resolution: {integrity: sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==} + engines: {node: '>=6.0.0'} + + qs@6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + rambda@7.5.0: + resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==} + + ramda@0.26.1: + resolution: {integrity: sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==} + + ramda@0.29.1: + resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + re2@1.20.9: + resolution: {integrity: sha512-ZYcPTFr5ha2xq3WQjBDTF9CWPSDK1z28MLh5UFRxc//7X8BNQ3A7yR7ITnP0jO346661ertdKVFqw1qoL3FMEQ==} + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + read-package-up@11.0.0: + resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==} + engines: {node: '>=18'} + + read-pkg-up@11.0.0: + resolution: {integrity: sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q==} + engines: {node: '>=18'} + deprecated: Renamed to read-package-up + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + read-pkg@9.0.1: + resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} + engines: {node: '>=18'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + recast@0.23.4: + resolution: {integrity: sha512-qtEDqIZGVcSZCHniWwZWbRy79Dc6Wp3kT/UmDA2RJKBPg7+7k51aQBZirHmUGn5uvHf2rg8DkjizrN26k61ATw==} + engines: {node: '>= 4'} + + refa@0.11.0: + resolution: {integrity: sha512-486O8/pQXwj9jV0mVvUnTsxq0uknpBnNJ0eCUhkZqJRQ8KutrT1PhzmumdCeM1hSBF2eMlFPmwECRER4IbKXlQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + reflect.getprototypeof@1.0.4: + resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} + engines: {node: '>= 0.4'} + + regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + engines: {node: '>=4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + + regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + + regexp-ast-analysis@0.6.0: + resolution: {integrity: sha512-OLxjyjPkVH+rQlBLb1I/P/VTmamSjGkvN5PTV5BXP432k3uVz727J7H29GA5IFiY0m7e1xBN7049Wn59FY3DEQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + + regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} + + regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} + + registry-auth-token@5.0.2: + resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} + engines: {node: '>=14'} + + regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true + + regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + + remove-trailing-separator@1.1.0: + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + + repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} + + repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + + replace@1.2.2: + resolution: {integrity: sha512-C4EDifm22XZM2b2JOYe6Mhn+lBsLBAvLbK8drfUQLTfD1KYl/n3VaW/CDju0Ny4w3xTtegBpg8YNSpFJPUDSjA==} + engines: {node: '>= 6'} + hasBin: true + + req-all@0.1.0: + resolution: {integrity: sha512-ZdvPr8uXy9ujX3KujwE2P1HWkMYgogIhqeAeyb47MqWjSfyxERSm0TNbN/IapCCmWDufXab04AYrRgObaJCJ6Q==} + engines: {node: '>=4'} + + request@2.88.2: + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} + engines: {node: '>= 6'} + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + + requireindex@1.1.0: + resolution: {integrity: sha512-LBnkqsDE7BZKvqylbmn7lTIVdpx4K/QCduRATpO5R+wtPmky/a8pN1bO2D6wXppn1497AJF9mNjqAXr6bdl9jg==} + engines: {node: '>=0.10.5'} + + resolve-from@3.0.0: + resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} + engines: {node: '>=4'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + deprecated: https://github.com/lydell/resolve-url#deprecated + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + + restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + + rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} + engines: {node: '>=14'} + hasBin: true + + roarr@7.21.0: + resolution: {integrity: sha512-d1rPLcHmQID3GsA3p9d5vKSZYlvrTWhjbmeg9DT5DcPoLpH85VzPmkLkGKhQv376+dfkApaHwNbpYEwDB77Ibg==} + engines: {node: '>=18.0'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + + safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + + safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + scslre@0.2.0: + resolution: {integrity: sha512-4hc49fUMmX3jM0XdFUAPBrs1xwEcdHa0KyjEsjFs+Zfc66mpFpq5YmRgDtl+Ffo6AtJIilfei+yKw8fUn3N88w==} + + semantic-release@23.0.8: + resolution: {integrity: sha512-yZkuWcTTfh5h/DrR4Q4QvJSARJdb6wjwn/sN0qKMYEkvwaVFek8YWfrgtL8oWaRdl0fLte0Y1wWMzLbwoaII1g==} + engines: {node: '>=20.8.1'} + hasBin: true + + semver-compare@1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + + semver-diff@4.0.0: + resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} + engines: {node: '>=12'} + + semver-regex@4.0.5: + resolution: {integrity: sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==} + engines: {node: '>=12'} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.1: + resolution: {integrity: sha512-f/vbBsu+fOiYt+lmwZV0rVwJScl46HppnOA1ZvIuBWKOTlllpyJ3bfVax76/OrhCH38dyxoDIA8K7uB963IYgA==} + engines: {node: '>=10'} + hasBin: true + + serialize-javascript@6.0.0: + resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + set-function-length@1.1.1: + resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + + set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + + shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + + shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + signale@1.4.0: + resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==} + engines: {node: '>=6'} + + sister@3.0.2: + resolution: {integrity: sha512-p19rtTs+NksBRKW9qn0UhZ8/TUI9BPw9lmtHny+Y3TinWlOa9jWh9xB0AtPSdmOy49NJJJSSe0Ey4C7h0TrcYA==} + + skin-tone@2.0.0: + resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + engines: {node: '>=8'} + + slash@2.0.0: + resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} + engines: {node: '>=6'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} + + snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} + + snapdragon@0.8.2: + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} + + socks-proxy-agent@8.0.2: + resolution: {integrity: sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==} + engines: {node: '>= 14'} + + socks@2.7.1: + resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} + engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + + source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + spawn-error-forwarder@1.0.0: + resolution: {integrity: sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-expression-parse@4.0.0: + resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + + spdx-license-ids@3.0.16: + resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + + split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + + split2@1.0.0: + resolution: {integrity: sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==} + + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + sshpk@1.18.0: + resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + ssri@10.0.5: + resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + stack-trace@0.0.10: + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + + static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} + + stream-combiner2@1.1.1: + resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} + + streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + + string-argv@0.1.2: + resolution: {integrity: sha512-mBqPGEOMNJKXRo7z0keX0wlAhbBAjilUdPW13nN0PecVryZxdHIeM7TqbsSUA7VYuS00HGC6mojP7DlQzfa9ZA==} + engines: {node: '>=0.6.19'} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-env-interpolation@1.0.1: + resolution: {integrity: sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==} + + string-natural-compare@3.0.1: + resolution: {integrity: sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string-width@7.0.0: + resolution: {integrity: sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==} + engines: {node: '>=18'} + + string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + + string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + + string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-eof@1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + engines: {node: '>=0.10.0'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + super-regex@1.0.0: + resolution: {integrity: sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==} + engines: {node: '>=18'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-hyperlinks@3.0.0: + resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} + engines: {node: '>=14.18'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + + synckit@0.8.8: + resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} + engines: {node: ^14.18.0 || >=16.0.0} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + tar@6.2.0: + resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} + engines: {node: '>=10'} + + temp-dir@3.0.0: + resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} + engines: {node: '>=14.16'} + + tempy@3.1.0: + resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==} + engines: {node: '>=14.16'} + + test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + + text-extensions@2.4.0: + resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} + engines: {node: '>=8'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + time-span@5.1.0: + resolution: {integrity: sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==} + engines: {node: '>=12'} + + tlds@1.248.0: + resolution: {integrity: sha512-noj0KdpWTBhwsKxMOXk0rN9otg4kTgLm4WohERRHbJ9IY+kSDKr3RmjitaQ3JFzny+DyvBOQKlFZhp0G0qNSfg==} + hasBin: true + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} + + to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} + engines: {node: '>=0.10.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + + tough-cookie@2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} + engines: {node: '>=0.8'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + traverse@0.6.8: + resolution: {integrity: sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==} + engines: {node: '>= 0.4'} + + ts-api-utils@1.0.3: + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-unused-exports@9.0.5: + resolution: {integrity: sha512-1XAXaH2i4Al/aZO06pWDn9MUgTN0KQi+fvWudiWfHUTHAav45gzrx7Xq6JAsu6+LoMlVoyGvNvZSPW3KTjDncA==} + hasBin: true + peerDependencies: + typescript: '>=3.8.3' + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + tsutils@3.21.0: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + + tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + + type-check@0.3.2: + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} + engines: {node: '>= 0.8.0'} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.4.1: + resolution: {integrity: sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==} + engines: {node: '>=6'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + + type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} + + type-fest@4.9.0: + resolution: {integrity: sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==} + engines: {node: '>=16'} + + typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + + typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} + hasBin: true + + uglify-js@3.17.4: + resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + engines: {node: '>=0.8.0'} + hasBin: true + + unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + + unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + + unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + + unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + + unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + + union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + + unique-filename@3.0.0: + resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + unique-slug@4.0.0: + resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + unique-string@3.0.0: + resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + engines: {node: '>=12'} + + universal-user-agent@7.0.2: + resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unixify@1.0.0: + resolution: {integrity: sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==} + engines: {node: '>=0.10.0'} + + unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} + + update-browserslist-db@1.0.13: + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + deprecated: Please see https://github.com/lydell/urix#deprecated + + url-join@5.0.0: + resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + url-regex-safe@2.1.0: + resolution: {integrity: sha512-nfrmOb62+kN4JJRkY/w9QzZeuc63/ddIFfqS9ntok0UYsJW3C5J/jGvYZecwk8V68og2zWA7fcVn4GUXIi5qbg==} + engines: {node: '>= 10.12.0'} + deprecated: Please upgrade to url-regex-safe@v3.0.0+ AND install re2 as an additional dependency in your project via `npm install re2` or `yarn add re2`. + + url-regexp@1.0.2: + resolution: {integrity: sha512-Tt0N/yu3iNSCqZ7wJ6AxTtF/QSemtfzLH+astikB0CR/u/7X132VaBdiNEXbiAGiU+LXsIpyB2Hqz8OY4zw8MA==} + + urlpattern-polyfill@8.0.2: + resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} + + use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + + uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + + v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} + engines: {node: '>=10.12.0'} + + v8flags@3.2.0: + resolution: {integrity: sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==} + engines: {node: '>= 0.10'} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + value-or-promise@1.0.12: + resolution: {integrity: sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==} + engines: {node: '>=12'} + + verror@1.10.0: + resolution: {integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=} + engines: {'0': node >=0.6.0} + + web-streams-polyfill@3.2.1: + resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} + engines: {node: '>= 8'} + + webcrypto-core@1.7.7: + resolution: {integrity: sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + whatwg-url-compat@0.6.5: + resolution: {integrity: sha512-vbg5+JVNwGtHRI3GheZGWrcUlxF9BXHbA80dLa+2XqJjlV/BK6upoi2j8dIRW9FGPUUyaMm7Hf1pTexHnsk85g==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + + which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + + which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + + which-typed-array@1.1.13: + resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} + engines: {node: '>= 0.4'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + + workerpool@6.2.1: + resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@8.13.0: + resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xml-name-validator@2.0.1: + resolution: {integrity: sha512-jRKe/iQYMyVJpzPH+3HL97Lgu5HrCfii+qSo+TfjKHtOnvbnvdVfMYrn9Q34YV81M2e5sviJlI6Ko9y+nByzvA==} + + xmlhttprequest@1.8.0: + resolution: {integrity: sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==} + engines: {node: '>=0.4.0'} + + xregexp@5.1.1: + resolution: {integrity: sha512-fKXeVorD+CzWvFs7VBuKTYIW63YD1e1osxwQ8caZ6o1jg6pDAbABDG54LCIq0j5cy7PjRvGIq6sef9DYPXpncg==} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml-eslint-parser@1.2.2: + resolution: {integrity: sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==} + engines: {node: ^14.17.0 || >=16.0.0} + + yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + engines: {node: '>= 14'} + + yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + + yargs-parser@20.2.4: + resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} + + yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + +snapshots: + + '@aashutoshrathi/word-wrap@1.2.6': {} + + '@ampproject/remapping@2.2.1': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@ardatan/sync-fetch@0.0.1(encoding@0.1.13)': + dependencies: + node-fetch: 2.7.0(encoding@0.1.13) + transitivePeerDependencies: + - encoding + + '@babel/cli@7.24.5(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@jridgewell/trace-mapping': 0.3.25 + commander: 4.1.1 + convert-source-map: 2.0.0 + fs-readdir-recursive: 1.1.0 + glob: 7.2.3 + make-dir: 2.1.0 + slash: 2.0.0 + optionalDependencies: + '@nicolo-ribaudo/chokidar-2': 2.1.8-no-fsevents.3 + chokidar: 3.5.3 + + '@babel/code-frame@7.24.2': + dependencies: + '@babel/highlight': 7.24.2 + picocolors: 1.0.0 + + '@babel/compat-data@7.24.4': {} + + '@babel/core@7.24.5': + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) + '@babel/helpers': 7.24.5 + '@babel/parser': 7.24.5 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 + convert-source-map: 2.0.0 + debug: 4.3.4(supports-color@8.1.1) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/eslint-parser@7.24.5(@babel/core@7.24.5)(eslint@8.56.0)': + dependencies: + '@babel/core': 7.24.5 + '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 + eslint: 8.56.0 + eslint-visitor-keys: 2.1.0 + semver: 6.3.1 + + '@babel/eslint-parser@7.24.5(@babel/core@7.24.5)(eslint@9.2.0)': + dependencies: + '@babel/core': 7.24.5 + '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 + eslint: 9.2.0 + eslint-visitor-keys: 2.1.0 + semver: 6.3.1 + + '@babel/eslint-plugin@7.23.5(@babel/eslint-parser@7.24.5(@babel/core@7.24.5)(eslint@9.2.0))(eslint@9.2.0)': + dependencies: + '@babel/eslint-parser': 7.24.5(@babel/core@7.24.5)(eslint@9.2.0) + eslint: 9.2.0 + eslint-rule-composer: 0.3.0 + + '@babel/generator@7.24.4': + dependencies: + '@babel/types': 7.24.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + + '@babel/generator@7.24.5': + dependencies: + '@babel/types': 7.24.5 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + + '@babel/helper-annotate-as-pure@7.22.5': + dependencies: + '@babel/types': 7.24.0 + + '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': + dependencies: + '@babel/types': 7.24.0 + + '@babel/helper-compilation-targets@7.23.6': + dependencies: + '@babel/compat-data': 7.24.4 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.23.0 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.24.4(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.24.5(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.24.5 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.24.5 + semver: 6.3.1 + + '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 + + '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.5 + debug: 4.3.4(supports-color@8.1.1) + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-environment-visitor@7.22.20': {} + + '@babel/helper-function-name@7.23.0': + dependencies: + '@babel/template': 7.24.0 + '@babel/types': 7.24.5 + + '@babel/helper-hoist-variables@7.22.5': + dependencies: + '@babel/types': 7.24.5 + + '@babel/helper-member-expression-to-functions@7.23.0': + dependencies: + '@babel/types': 7.24.0 + + '@babel/helper-member-expression-to-functions@7.24.5': + dependencies: + '@babel/types': 7.24.5 + + '@babel/helper-module-imports@7.24.3': + dependencies: + '@babel/types': 7.24.5 + + '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + + '@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-simple-access': 7.24.5 + '@babel/helper-split-export-declaration': 7.24.5 + '@babel/helper-validator-identifier': 7.24.5 + + '@babel/helper-optimise-call-expression@7.22.5': + dependencies: + '@babel/types': 7.24.0 + + '@babel/helper-plugin-utils@7.22.5': {} + + '@babel/helper-plugin-utils@7.24.0': {} + + '@babel/helper-plugin-utils@7.24.5': {} + + '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.22.20 + + '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + + '@babel/helper-simple-access@7.22.5': + dependencies: + '@babel/types': 7.24.0 + + '@babel/helper-simple-access@7.24.5': + dependencies: + '@babel/types': 7.24.5 + + '@babel/helper-skip-transparent-expression-wrappers@7.22.5': + dependencies: + '@babel/types': 7.24.0 + + '@babel/helper-split-export-declaration@7.22.6': + dependencies: + '@babel/types': 7.24.0 + + '@babel/helper-split-export-declaration@7.24.5': + dependencies: + '@babel/types': 7.24.5 + + '@babel/helper-string-parser@7.23.4': {} + + '@babel/helper-string-parser@7.24.1': {} + + '@babel/helper-validator-identifier@7.22.20': {} + + '@babel/helper-validator-identifier@7.24.5': {} + + '@babel/helper-validator-option@7.23.5': {} + + '@babel/helper-wrap-function@7.22.20': + dependencies: + '@babel/helper-function-name': 7.23.0 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 + + '@babel/helpers@7.24.5': + dependencies: + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 + transitivePeerDependencies: + - supports-color + + '@babel/highlight@7.24.2': + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.0 + + '@babel/node@7.23.9(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/register': 7.23.7(@babel/core@7.24.5) + commander: 4.1.1 + core-js: 3.34.0 + node-environment-flags: 1.0.6 + regenerator-runtime: 0.14.1 + v8flags: 3.2.0 + + '@babel/parser@7.23.6': + dependencies: + '@babel/types': 7.24.0 + + '@babel/parser@7.24.4': + dependencies: + '@babel/types': 7.24.0 + + '@babel/parser@7.24.5': + dependencies: + '@babel/types': 7.24.5 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.5(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.24.5) + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5) + + '@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5) + + '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-block-scoping@7.24.5(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-class-static-block@7.24.4(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.5) + + '@babel/plugin-transform-classes@7.24.5(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) + '@babel/helper-split-export-declaration': 7.24.5 + globals: 11.12.0 + + '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/template': 7.24.0 + + '@babel/plugin-transform-destructuring@7.24.5(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.5) + + '@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.5) + + '@babel/plugin-transform-flow-strip-types@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.5) + + '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + + '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.5) + + '@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5) + + '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-simple-access': 7.22.5 + + '@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-validator-identifier': 7.22.20 + + '@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5) + + '@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5) + + '@babel/plugin-transform-object-rest-spread@7.24.5(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.24.5) + + '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) + + '@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5) + + '@babel/plugin-transform-optional-chaining@7.24.5(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) + + '@babel/plugin-transform-parameters@7.24.5(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-private-property-in-object@7.24.5(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.5) + + '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.5) + '@babel/types': 7.24.5 + + '@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + regenerator-transform: 0.15.2 + + '@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + + '@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-typeof-symbol@7.24.5(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/preset-env@7.24.5(@babel/core@7.24.5)': + dependencies: + '@babel/compat-data': 7.24.4 + '@babel/core': 7.24.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.5) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.5) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.5) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.5) + '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.24.5) + '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-block-scoping': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-class-static-block': 7.24.4(@babel/core@7.24.5) + '@babel/plugin-transform-classes': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-destructuring': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.5) + '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-object-rest-spread': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-private-property-in-object': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-typeof-symbol': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.24.5) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.5) + babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.5) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.5) + babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.5) + core-js-compat: 3.36.1 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/types': 7.24.0 + esutils: 2.0.3 + + '@babel/register@7.23.7(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + clone-deep: 4.0.1 + find-cache-dir: 2.1.0 + make-dir: 2.1.0 + pirates: 4.0.6 + source-map-support: 0.5.21 + + '@babel/regjsgen@0.8.0': {} + + '@babel/runtime-corejs3@7.23.6': + dependencies: + core-js-pure: 3.34.0 + regenerator-runtime: 0.14.1 + + '@babel/runtime@7.23.6': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/template@7.24.0': + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/parser': 7.24.5 + '@babel/types': 7.24.5 + + '@babel/traverse@7.24.1': + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + debug: 4.3.4(supports-color@8.1.1) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/traverse@7.24.5': + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.24.5 + '@babel/parser': 7.24.5 + '@babel/types': 7.24.5 + debug: 4.3.4(supports-color@8.1.1) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.24.0': + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + + '@babel/types@7.24.5': + dependencies: + '@babel/helper-string-parser': 7.24.1 + '@babel/helper-validator-identifier': 7.24.5 + to-fast-properties: 2.0.0 + + '@bcoe/v8-coverage@0.2.3': {} + + '@colors/colors@1.5.0': + optional: true + + '@es-joy/escodegen@3.5.1': + dependencies: + '@es-joy/estraverse': 6.0.0 + esprima: 4.0.1 + esutils: 2.0.3 + optionator: 0.9.3 + optionalDependencies: + source-map: 0.7.4 + + '@es-joy/estraverse@6.0.0': {} + + '@es-joy/jsdoc-eslint-parser@0.21.1': + dependencies: + '@babel/core': 7.24.5 + '@babel/eslint-parser': 7.24.5(@babel/core@7.24.5)(eslint@8.56.0) + '@es-joy/jsdoccomment': 0.41.0 + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + esquery: 1.5.0 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + + '@es-joy/jsdoccomment@0.41.0': + dependencies: + comment-parser: 1.4.1 + esquery: 1.5.0 + jsdoc-type-pratt-parser: 4.0.0 + + '@es-joy/jsdoccomment@0.43.0': + dependencies: + '@types/eslint': 8.56.10 + '@types/estree': 1.0.5 + '@typescript-eslint/types': 7.5.0 + comment-parser: 1.4.1 + esquery: 1.5.0 + jsdoc-type-pratt-parser: 4.0.0 + + '@eslint-community/eslint-utils@4.4.0(eslint@8.56.0)': + dependencies: + eslint: 8.56.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/eslint-utils@4.4.0(eslint@9.2.0)': + dependencies: + eslint: 9.2.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.10.0': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.3.4(supports-color@8.1.1) + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.0 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/eslintrc@3.0.2': + dependencies: + ajv: 6.12.6 + debug: 4.3.4(supports-color@8.1.1) + espree: 10.0.1 + globals: 14.0.0 + ignore: 5.3.0 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.56.0': {} + + '@eslint/js@9.2.0': {} + + '@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.24.5)(@types/node@20.12.11)(encoding@0.1.13)(graphql@16.8.1)': + dependencies: + '@babel/code-frame': 7.24.2 + '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.24.5)(graphql@16.8.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.24.5)(graphql@16.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + chalk: 4.1.2 + debug: 4.3.4(supports-color@8.1.1) + fast-glob: 3.3.2 + graphql: 16.8.1 + graphql-config: 4.5.0(@types/node@20.12.11)(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 transitivePeerDependencies: - '@babel/core' + - '@types/node' + - bufferutil + - cosmiconfig-toml-loader + - encoding - supports-color - dev: true + - utf-8-validate - /@graphql-tools/delegate@9.0.35(graphql@16.8.1): - resolution: {integrity: sha512-jwPu8NJbzRRMqi4Vp/5QX1vIUeUPpWmlQpOkXQD2r1X45YsVceyUUBnktCrlJlDB4jPRVy7JQGwmYo3KFiOBMA==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/batch-execute@8.5.22(graphql@16.8.1)': + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + dataloader: 2.2.2 + graphql: 16.8.1 + tslib: 2.6.2 + value-or-promise: 1.0.12 + + '@graphql-tools/code-file-loader@7.3.23(@babel/core@7.24.5)(graphql@16.8.1)': + dependencies: + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.24.5)(graphql@16.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + globby: 11.1.0 + graphql: 16.8.1 + tslib: 2.6.2 + unixify: 1.0.0 + transitivePeerDependencies: + - '@babel/core' + - supports-color + + '@graphql-tools/delegate@9.0.35(graphql@16.8.1)': dependencies: '@graphql-tools/batch-execute': 8.5.22(graphql@16.8.1) '@graphql-tools/executor': 0.0.20(graphql@16.8.1) @@ -1835,12 +6448,8 @@ packages: graphql: 16.8.1 tslib: 2.6.2 value-or-promise: 1.0.12 - dev: true - /@graphql-tools/executor-graphql-ws@0.0.14(graphql@16.8.1): - resolution: {integrity: sha512-P2nlkAsPZKLIXImFhj0YTtny5NQVGSsKnhi7PzXiaHSXc6KkzqbWZHKvikD4PObanqg+7IO58rKFpGXP7eeO+w==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/executor-graphql-ws@0.0.14(graphql@16.8.1)': dependencies: '@graphql-tools/utils': 9.2.1(graphql@16.8.1) '@repeaterjs/repeater': 3.0.4 @@ -1853,12 +6462,8 @@ packages: transitivePeerDependencies: - bufferutil - utf-8-validate - dev: true - /@graphql-tools/executor-http@0.1.10(@types/node@20.12.5)(graphql@16.8.1): - resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/executor-http@0.1.10(@types/node@20.12.11)(graphql@16.8.1)': dependencies: '@graphql-tools/utils': 9.2.1(graphql@16.8.1) '@repeaterjs/repeater': 3.0.5 @@ -1866,17 +6471,13 @@ packages: dset: 3.1.3 extract-files: 11.0.0 graphql: 16.8.1 - meros: 1.3.0(@types/node@20.12.5) + meros: 1.3.0(@types/node@20.12.11) tslib: 2.6.2 value-or-promise: 1.0.12 transitivePeerDependencies: - '@types/node' - dev: true - /@graphql-tools/executor-legacy-ws@0.0.11(graphql@16.8.1): - resolution: {integrity: sha512-4ai+NnxlNfvIQ4c70hWFvOZlSUN8lt7yc+ZsrwtNFbFPH/EroIzFMapAxM9zwyv9bH38AdO3TQxZ5zNxgBdvUw==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/executor-legacy-ws@0.0.11(graphql@16.8.1)': dependencies: '@graphql-tools/utils': 9.2.1(graphql@16.8.1) '@types/ws': 8.5.10 @@ -1887,12 +6488,8 @@ packages: transitivePeerDependencies: - bufferutil - utf-8-validate - dev: true - /@graphql-tools/executor@0.0.20(graphql@16.8.1): - resolution: {integrity: sha512-GdvNc4vszmfeGvUqlcaH1FjBoguvMYzxAfT6tDd4/LgwymepHhinqLNA5otqwVLW+JETcDaK7xGENzFomuE6TA==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/executor@0.0.20(graphql@16.8.1)': dependencies: '@graphql-tools/utils': 9.2.1(graphql@16.8.1) '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) @@ -1900,12 +6497,8 @@ packages: graphql: 16.8.1 tslib: 2.6.2 value-or-promise: 1.0.12 - dev: true - /@graphql-tools/graphql-file-loader@7.5.17(graphql@16.8.1): - resolution: {integrity: sha512-hVwwxPf41zOYgm4gdaZILCYnKB9Zap7Ys9OhY1hbwuAuC4MMNY9GpUjoTU3CQc3zUiPoYStyRtUGkHSJZ3HxBw==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/graphql-file-loader@7.5.17(graphql@16.8.1)': dependencies: '@graphql-tools/import': 6.7.18(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) @@ -1913,91 +6506,63 @@ packages: graphql: 16.8.1 tslib: 2.6.2 unixify: 1.0.0 - dev: true - /@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.24.4)(graphql@16.8.1): - resolution: {integrity: sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.24.5)(graphql@16.8.1)': dependencies: - '@babel/parser': 7.23.9 - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.24.4) - '@babel/traverse': 7.23.9 - '@babel/types': 7.23.9 + '@babel/parser': 7.24.4 + '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.5) + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 '@graphql-tools/utils': 9.2.1(graphql@16.8.1) graphql: 16.8.1 tslib: 2.6.2 transitivePeerDependencies: - '@babel/core' - supports-color - dev: true - /@graphql-tools/import@6.7.18(graphql@16.8.1): - resolution: {integrity: sha512-XQDdyZTp+FYmT7as3xRWH/x8dx0QZA2WZqfMF5EWb36a0PiH7WwlRQYIdyYXj8YCLpiWkeBXgBRHmMnwEYR8iQ==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/import@6.7.18(graphql@16.8.1)': dependencies: '@graphql-tools/utils': 9.2.1(graphql@16.8.1) graphql: 16.8.1 resolve-from: 5.0.0 tslib: 2.6.2 - dev: true - /@graphql-tools/json-file-loader@7.4.18(graphql@16.8.1): - resolution: {integrity: sha512-AJ1b6Y1wiVgkwsxT5dELXhIVUPs/u3VZ8/0/oOtpcoyO/vAeM5rOvvWegzicOOnQw8G45fgBRMkkRfeuwVt6+w==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/json-file-loader@7.4.18(graphql@16.8.1)': dependencies: '@graphql-tools/utils': 9.2.1(graphql@16.8.1) globby: 11.1.0 graphql: 16.8.1 tslib: 2.6.2 unixify: 1.0.0 - dev: true - /@graphql-tools/load@7.8.14(graphql@16.8.1): - resolution: {integrity: sha512-ASQvP+snHMYm+FhIaLxxFgVdRaM0vrN9wW2BKInQpktwWTXVyk+yP5nQUCEGmn0RTdlPKrffBaigxepkEAJPrg==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/load@7.8.14(graphql@16.8.1)': dependencies: '@graphql-tools/schema': 9.0.19(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) graphql: 16.8.1 p-limit: 3.1.0 tslib: 2.6.2 - dev: true - /@graphql-tools/merge@8.4.2(graphql@16.8.1): - resolution: {integrity: sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/merge@8.4.2(graphql@16.8.1)': dependencies: '@graphql-tools/utils': 9.2.1(graphql@16.8.1) graphql: 16.8.1 tslib: 2.6.2 - dev: true - /@graphql-tools/schema@9.0.19(graphql@16.8.1): - resolution: {integrity: sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/schema@9.0.19(graphql@16.8.1)': dependencies: '@graphql-tools/merge': 8.4.2(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) graphql: 16.8.1 tslib: 2.6.2 value-or-promise: 1.0.12 - dev: true - /@graphql-tools/url-loader@7.17.18(@types/node@20.12.5)(graphql@16.8.1): - resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/url-loader@7.17.18(@types/node@20.12.11)(encoding@0.1.13)(graphql@16.8.1)': dependencies: - '@ardatan/sync-fetch': 0.0.1 + '@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.12.5)(graphql@16.8.1) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.12.11)(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) @@ -2013,22 +6578,14 @@ packages: - bufferutil - encoding - utf-8-validate - dev: true - /@graphql-tools/utils@9.2.1(graphql@16.8.1): - resolution: {integrity: sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/utils@9.2.1(graphql@16.8.1)': dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) graphql: 16.8.1 tslib: 2.6.2 - dev: true - /@graphql-tools/wrap@9.4.2(graphql@16.8.1): - resolution: {integrity: sha512-DFcd9r51lmcEKn0JW43CWkkI2D6T9XI1juW/Yo86i04v43O9w2/k4/nx2XTJv4Yv+iXwUw7Ok81PGltwGJSDSA==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/wrap@9.4.2(graphql@16.8.1)': dependencies: '@graphql-tools/delegate': 9.0.35(graphql@16.8.1) '@graphql-tools/schema': 9.0.19(graphql@16.8.1) @@ -2036,19 +6593,12 @@ packages: graphql: 16.8.1 tslib: 2.6.2 value-or-promise: 1.0.12 - dev: true - /@graphql-typed-document-node/core@3.2.0(graphql@16.8.1): - resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-typed-document-node/core@3.2.0(graphql@16.8.1)': dependencies: graphql: 16.8.1 - dev: true - /@hkdobrev/run-if-changed@0.3.1: - resolution: {integrity: sha512-kxu18zdSoTwYpTuwIw4Zsc/cWa+1c/HayXA290TSD97WKBzodntiqm6pPCoXhGDZu2F6/yg5VChJNSjrfMiTSA==} - hasBin: true + '@hkdobrev/run-if-changed@0.3.1': dependencies: cosmiconfig: 5.2.1 execa: 1.0.0 @@ -2057,189 +6607,110 @@ packages: string-argv: 0.1.2 transitivePeerDependencies: - supports-color - dev: true - /@humanwhocodes/config-array@0.11.13: - resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} - engines: {node: '>=10.10.0'} + '@humanwhocodes/config-array@0.11.13': dependencies: - '@humanwhocodes/object-schema': 2.0.1 + '@humanwhocodes/object-schema': 2.0.3 debug: 4.3.4(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color - dev: true - /@humanwhocodes/config-array@0.12.3: - resolution: {integrity: sha512-jsNnTBlMWuTpDkeE3on7+dWJi0D6fdDfeANj/w7MpS8ztROCoLvIO2nG0CcFj+E4k8j4QrSTh4Oryi3i2G669g==} - engines: {node: '>=10.10.0'} + '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 debug: 4.3.4(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color - dev: true - /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - dev: true + '@humanwhocodes/module-importer@1.0.1': {} - /@humanwhocodes/object-schema@2.0.1: - resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} - dev: true + '@humanwhocodes/object-schema@2.0.3': {} - /@humanwhocodes/object-schema@2.0.3: - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - dev: true + '@humanwhocodes/retry@0.2.4': {} - /@isaacs/cliui@8.0.2: - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 - string-width-cjs: /string-width@4.2.3 + string-width-cjs: string-width@4.2.3 strip-ansi: 7.1.0 - strip-ansi-cjs: /strip-ansi@6.0.1 + strip-ansi-cjs: strip-ansi@6.0.1 wrap-ansi: 8.1.0 - wrap-ansi-cjs: /wrap-ansi@7.0.0 - dev: true + wrap-ansi-cjs: wrap-ansi@7.0.0 - /@istanbuljs/load-nyc-config@1.1.0: - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} + '@istanbuljs/load-nyc-config@1.1.0': dependencies: camelcase: 5.3.1 find-up: 4.1.0 get-package-type: 0.1.0 js-yaml: 3.14.1 resolve-from: 5.0.0 - dev: true - - /@istanbuljs/schema@0.1.3: - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - dev: true - /@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.20 - dev: true + '@istanbuljs/schema@0.1.3': {} - /@jridgewell/gen-mapping@0.3.5: - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} + '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 - dev: true - - /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} - engines: {node: '>=6.0.0'} - dev: true - /@jridgewell/set-array@1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} - engines: {node: '>=6.0.0'} - dev: true + '@jridgewell/resolve-uri@3.1.1': {} - /@jridgewell/set-array@1.2.1: - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - dev: true + '@jridgewell/set-array@1.2.1': {} - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true + '@jridgewell/sourcemap-codec@1.4.15': {} - /@jridgewell/trace-mapping@0.3.20: - resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + '@jridgewell/trace-mapping@0.3.20': dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - /@jridgewell/trace-mapping@0.3.25: - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - /@next/eslint-plugin-next@13.5.6: - resolution: {integrity: sha512-ng7pU/DDsxPgT6ZPvuprxrkeew3XaRf4LAT4FabaEO/hAbvVx4P7wqnqdbTdDn1kgTvsI4tpIgT4Awn/m0bGbg==} + '@next/eslint-plugin-next@13.5.6': dependencies: glob: 7.1.7 - dev: true - /@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3: - resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==} - requiresBuild: true - dev: true + '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': optional: true - /@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1: - resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': dependencies: eslint-scope: 5.1.1 - dev: true - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 - dev: true - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - dev: true + '@nodelib/fs.stat@2.0.5': {} - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.16.0 - dev: true - /@npmcli/agent@2.2.0: - resolution: {integrity: sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==} - engines: {node: ^16.14.0 || >=18.0.0} + '@npmcli/agent@2.2.0': dependencies: agent-base: 7.1.0 http-proxy-agent: 7.0.0 https-proxy-agent: 7.0.2 - lru-cache: 10.1.0 + lru-cache: 10.2.0 socks-proxy-agent: 8.0.2 transitivePeerDependencies: - supports-color - dev: true - /@npmcli/fs@3.1.0: - resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/fs@3.1.0': dependencies: - semver: 7.6.0 - dev: true + semver: 7.6.1 - /@octokit/auth-token@5.1.0: - resolution: {integrity: sha512-JH+5PhVMjpbBuKlykiseCHa2uZdEd8Qm/N9Kpqncx4o/wkGF38gqVjIP2gZqfaP3nxFZPpg0FwGClKzBi6nS2g==} - engines: {node: '>= 18'} - dev: true + '@octokit/auth-token@5.1.0': {} - /@octokit/core@6.1.1: - resolution: {integrity: sha512-uVypPdnZV7YoEa69Ky2kTSw3neFLGT0PZ54OwUMDph7w6TmhF0ZnoVcvb/kYnjDHCFo2mfoeRDYifLKhLNasUg==} - engines: {node: '>= 18'} + '@octokit/core@6.1.1': dependencies: '@octokit/auth-token': 5.1.0 '@octokit/graphql': 8.1.0 @@ -2248,181 +6719,107 @@ packages: '@octokit/types': 13.1.0 before-after-hook: 3.0.2 universal-user-agent: 7.0.2 - dev: true - /@octokit/endpoint@10.1.0: - resolution: {integrity: sha512-ogZ5uLMeGBZUzS32fNt9j+dNw3kkEn5CSw4CVkN1EvCNdFYWrQ5diQR6Hh52VrPR0oayIoYTqQFL/l8RqkV0qw==} - engines: {node: '>= 18'} + '@octokit/endpoint@10.1.0': dependencies: '@octokit/types': 13.1.0 universal-user-agent: 7.0.2 - dev: true - /@octokit/graphql@8.1.0: - resolution: {integrity: sha512-XDvj6GcUnQYgbCLXElt3vZDzNIPGvGiwxQO2XzsvfVUjebGh0E5eCD/1My9zUGSNKaGVZitVuO8LMziGmoFryg==} - engines: {node: '>= 18'} + '@octokit/graphql@8.1.0': dependencies: '@octokit/request': 9.0.1 '@octokit/types': 13.1.0 universal-user-agent: 7.0.2 - dev: true - /@octokit/openapi-types@19.1.0: - resolution: {integrity: sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==} - dev: true + '@octokit/openapi-types@20.0.0': {} - /@octokit/openapi-types@20.0.0: - resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==} - dev: true + '@octokit/openapi-types@21.2.0': {} - /@octokit/openapi-types@21.2.0: - resolution: {integrity: sha512-xx+Xd6I7rYvul/hgUDqv6TeGX0IOGnhSg9IOeYgd/uI7IAqUy6DE2B6Ipv2M4mWoxaMcWjIzgTIcv8pMO3F3vw==} - dev: true + '@octokit/openapi-types@22.2.0': {} - /@octokit/plugin-paginate-rest@10.1.0(@octokit/core@6.1.1): - resolution: {integrity: sha512-G8RdudUQr532C+LAOT58MznwFFu+wkJJjbTJF1xBxPr8XbzCg1NI0nYm6EPcuLWXLI3T6wzFm2fbXqDkfdC7Ow==} - engines: {node: '>= 18'} - peerDependencies: - '@octokit/core': '>=6' + '@octokit/plugin-paginate-rest@11.3.0(@octokit/core@6.1.1)': dependencies: '@octokit/core': 6.1.1 - '@octokit/types': 12.6.0 - dev: true + '@octokit/types': 13.5.0 - /@octokit/plugin-retry@7.1.0(@octokit/core@6.1.1): - resolution: {integrity: sha512-6mc4xNtT6eoDBGrJJn0sFALUmIba2f7Wx+G8XV9GkBLcyX5PogBdx2mDMW5yPPqSD/y23tYagkjOLX9sT7O6jA==} - engines: {node: '>= 18'} - peerDependencies: - '@octokit/core': '>=6' + '@octokit/plugin-retry@7.1.0(@octokit/core@6.1.1)': dependencies: '@octokit/core': 6.1.1 '@octokit/request-error': 6.1.0 '@octokit/types': 13.1.0 bottleneck: 2.19.5 - dev: true - /@octokit/plugin-throttling@9.1.0(@octokit/core@6.1.1): - resolution: {integrity: sha512-16lDMMhChavhvXKr2zRK7sD+hTpuVm697xZNf1a0C/MFRZU8CFkrNJEYX7Fqo2dc44lISp7V5Vm0sgJIx2bRkw==} - engines: {node: '>= 18'} - peerDependencies: - '@octokit/core': ^6.0.0 + '@octokit/plugin-throttling@9.1.0(@octokit/core@6.1.1)': dependencies: '@octokit/core': 6.1.1 '@octokit/types': 13.1.0 bottleneck: 2.19.5 - dev: true - /@octokit/request-error@6.1.0: - resolution: {integrity: sha512-xcLJv4IgfWIOEEVZwfhUN3yHNWJL0AMw1J1Ba8BofM9RdDTbapg6MO4zNxlPS4XXX9aAIsbDRa47K57EhgeVAw==} - engines: {node: '>= 18'} + '@octokit/request-error@6.1.0': dependencies: '@octokit/types': 13.1.0 - dev: true - /@octokit/request@9.0.1: - resolution: {integrity: sha512-kL+cAcbSl3dctYLuJmLfx6Iku2MXXy0jszhaEIjQNaCp4zjHXrhVAHeuaRdNvJjW9qjl3u1MJ72+OuBP0YW/pg==} - engines: {node: '>= 18'} + '@octokit/request@9.0.1': dependencies: '@octokit/endpoint': 10.1.0 '@octokit/request-error': 6.1.0 - '@octokit/types': 12.4.0 + '@octokit/types': 12.6.0 universal-user-agent: 7.0.2 - dev: true - - /@octokit/types@12.4.0: - resolution: {integrity: sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==} - dependencies: - '@octokit/openapi-types': 19.1.0 - dev: true - /@octokit/types@12.6.0: - resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} + '@octokit/types@12.6.0': dependencies: '@octokit/openapi-types': 20.0.0 - dev: true - /@octokit/types@13.1.0: - resolution: {integrity: sha512-nBwAFOYqVUUJ2AZFK4ZzESQptaAVqdTDKk8gE0Xr0o99WuPDSrhUC38x0F40xD9OUxXhOOuZKWNNVVLPSHQDvQ==} + '@octokit/types@13.1.0': dependencies: '@octokit/openapi-types': 21.2.0 - dev: true - /@peculiar/asn1-schema@2.3.8: - resolution: {integrity: sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA==} + '@octokit/types@13.5.0': + dependencies: + '@octokit/openapi-types': 22.2.0 + + '@peculiar/asn1-schema@2.3.8': dependencies: asn1js: 3.0.5 pvtsutils: 1.3.5 tslib: 2.6.2 - dev: true - /@peculiar/json-schema@1.1.12: - resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} - engines: {node: '>=8.0.0'} + '@peculiar/json-schema@1.1.12': dependencies: tslib: 2.6.2 - dev: true - /@peculiar/webcrypto@1.4.3: - resolution: {integrity: sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A==} - engines: {node: '>=10.12.0'} + '@peculiar/webcrypto@1.4.3': dependencies: '@peculiar/asn1-schema': 2.3.8 '@peculiar/json-schema': 1.1.12 pvtsutils: 1.3.5 tslib: 2.6.2 webcrypto-core: 1.7.7 - dev: true - /@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - requiresBuild: true - dev: true + '@pkgjs/parseargs@0.11.0': optional: true - /@pkgr/core@0.1.0: - resolution: {integrity: sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - dev: true + '@pkgr/core@0.1.0': {} - /@pnpm/config.env-replace@1.1.0: - resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} - engines: {node: '>=12.22.0'} - dev: true + '@pnpm/config.env-replace@1.1.0': {} - /@pnpm/network.ca-file@1.0.2: - resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} - engines: {node: '>=12.22.0'} + '@pnpm/network.ca-file@1.0.2': dependencies: graceful-fs: 4.2.10 - dev: true - /@pnpm/npm-conf@2.2.2: - resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} - engines: {node: '>=12'} + '@pnpm/npm-conf@2.2.2': dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - dev: true - /@repeaterjs/repeater@3.0.4: - resolution: {integrity: sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==} - dev: true + '@repeaterjs/repeater@3.0.4': {} - /@repeaterjs/repeater@3.0.5: - resolution: {integrity: sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA==} - dev: true + '@repeaterjs/repeater@3.0.5': {} - /@rushstack/eslint-patch@1.6.1: - resolution: {integrity: sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw==} - dev: true + '@rushstack/eslint-patch@1.6.1': {} - /@semantic-release/commit-analyzer@12.0.0(semantic-release@23.0.7): - resolution: {integrity: sha512-qG+md5gdes+xa8zP7lIo1fWE17zRdO8yMCaxh9lyL65TQleoSv8WHHOqRURfghTytUh+NpkSyBprQ5hrkxOKVQ==} - engines: {node: '>=20.8.1'} - peerDependencies: - semantic-release: '>=20.1.0' + '@semantic-release/commit-analyzer@12.0.0(semantic-release@23.0.8(typescript@5.3.3))': dependencies: conventional-changelog-angular: 7.0.0 conventional-commits-filter: 4.0.0 @@ -2431,24 +6828,16 @@ packages: import-from-esm: 1.3.3 lodash-es: 4.17.21 micromatch: 4.0.5 - semantic-release: 23.0.7(typescript@5.3.3) + semantic-release: 23.0.8(typescript@5.3.3) transitivePeerDependencies: - supports-color - dev: true - /@semantic-release/error@4.0.0: - resolution: {integrity: sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==} - engines: {node: '>=18'} - dev: true + '@semantic-release/error@4.0.0': {} - /@semantic-release/github@10.0.2(semantic-release@23.0.7): - resolution: {integrity: sha512-SP5ihhv/uQa8vPuWKmbJrrzfv8lRUkDFC6qwgaWoorrflN1DEW0IGCa9w/PxUp8Ad3dbvXZPmpXdGiP3eyTzhg==} - engines: {node: '>=20.8.1'} - peerDependencies: - semantic-release: '>=20.1.0' + '@semantic-release/github@10.0.3(semantic-release@23.0.8(typescript@5.3.3))': dependencies: '@octokit/core': 6.1.1 - '@octokit/plugin-paginate-rest': 10.1.0(@octokit/core@6.1.1) + '@octokit/plugin-paginate-rest': 11.3.0(@octokit/core@6.1.1) '@octokit/plugin-retry': 7.1.0(@octokit/core@6.1.1) '@octokit/plugin-throttling': 9.1.0(@octokit/core@6.1.1) '@semantic-release/error': 4.0.0 @@ -2462,17 +6851,12 @@ packages: lodash-es: 4.17.21 mime: 4.0.1 p-filter: 4.1.0 - semantic-release: 23.0.7(typescript@5.3.3) + semantic-release: 23.0.8(typescript@5.3.3) url-join: 5.0.0 transitivePeerDependencies: - supports-color - dev: true - /@semantic-release/npm@12.0.0(semantic-release@23.0.7): - resolution: {integrity: sha512-72TVYQCH9NvVsO/y13eF8vE4bNnfls518+4KcFwJUKi7AtA/ZXoNgSg9gTTfw5eMZMkiH0izUrpGXgZE/cSQhA==} - engines: {node: '>=20.8.1'} - peerDependencies: - semantic-release: '>=20.1.0' + '@semantic-release/npm@12.0.0(semantic-release@23.0.8(typescript@5.3.3))': dependencies: '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 @@ -2485,16 +6869,11 @@ packages: rc: 1.2.8 read-pkg: 9.0.1 registry-auth-token: 5.0.2 - semantic-release: 23.0.7(typescript@5.3.3) - semver: 7.6.0 + semantic-release: 23.0.8(typescript@5.3.3) + semver: 7.6.1 tempy: 3.1.0 - dev: true - /@semantic-release/release-notes-generator@13.0.0(semantic-release@23.0.7): - resolution: {integrity: sha512-LEeZWb340keMYuREMyxrODPXJJ0JOL8D/mCl74B4LdzbxhtXV2LrPN2QBEcGJrlQhoqLO0RhxQb6masHytKw+A==} - engines: {node: '>=20.8.1'} - peerDependencies: - semantic-release: '>=20.1.0' + '@semantic-release/release-notes-generator@13.0.0(semantic-release@23.0.8(typescript@5.3.3))': dependencies: conventional-changelog-angular: 7.0.0 conventional-changelog-writer: 7.0.1 @@ -2506,150 +6885,90 @@ packages: into-stream: 7.0.0 lodash-es: 4.17.21 read-pkg-up: 11.0.0 - semantic-release: 23.0.7(typescript@5.3.3) + semantic-release: 23.0.8(typescript@5.3.3) transitivePeerDependencies: - supports-color - dev: true - /@sindresorhus/is@4.6.0: - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - dev: true + '@sindresorhus/is@4.6.0': {} - /@sindresorhus/merge-streams@1.0.0: - resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==} - engines: {node: '>=18'} - dev: true + '@sindresorhus/merge-streams@1.0.0': {} - /@types/chai@4.3.14: - resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==} - dev: true + '@types/chai@4.3.16': {} - /@types/debug@4.1.12: - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/debug@4.1.12': dependencies: '@types/ms': 0.7.34 - dev: true - /@types/eslint@8.56.7: - resolution: {integrity: sha512-SjDvI/x3zsZnOkYZ3lCt9lOZWZLB2jIlNKz+LBgCtDurK0JZcwucxYHn1w2BJkD34dgX9Tjnak0txtq4WTggEA==} + '@types/eslint@8.56.10': dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 - /@types/esquery@1.5.3: - resolution: {integrity: sha512-c55hQOcoPkWDfuEN9EdP1YyNH4D909U40gUEpY0nB5PWHExWHEPxcx3sx0fJ1Gzf4j1OpWktmIgciIlpgHtfDg==} + '@types/esquery@1.5.3': dependencies: '@types/estree': 1.0.5 - dev: true - /@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/estree@1.0.5': {} - /@types/istanbul-lib-coverage@2.0.6: - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - dev: true + '@types/istanbul-lib-coverage@2.0.6': {} - /@types/json-schema@7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/json-schema@7.0.15': {} - /@types/json5@0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - dev: true + '@types/json5@0.0.29': {} - /@types/lodash.defaultsdeep@4.6.9: - resolution: {integrity: sha512-pLtCFK0YkHfGtGLYLNMTbFB5/G5+RsmQCIbbHH8GOAXjv+gDkVilY98kILfe8JH2Kev0OCReYxp1AjxEjP8ixA==} + '@types/lodash.defaultsdeep@4.6.9': dependencies: '@types/lodash': 4.14.202 - dev: true - /@types/lodash@4.14.202: - resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==} - dev: true + '@types/lodash@4.14.202': {} - /@types/mocha@10.0.6: - resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} - dev: true + '@types/mocha@10.0.6': {} - /@types/ms@0.7.34: - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - dev: true + '@types/ms@0.7.34': {} - /@types/node@20.12.5: - resolution: {integrity: sha512-BD+BjQ9LS/D8ST9p5uqBxghlN+S42iuNxjsUGjeZobe/ciXzk2qb1B6IXc6AnRLS+yFJRpN2IPEHMzwspfDJNw==} + '@types/node@20.12.11': dependencies: undici-types: 5.26.5 - dev: true - /@types/normalize-package-data@2.4.4: - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - dev: true + '@types/normalize-package-data@2.4.4': {} - /@types/semver@7.5.8: - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - dev: true + '@types/semver@7.5.8': {} - /@types/spdx-expression-parse@3.0.5: - resolution: {integrity: sha512-XrojSCTzVxPAfWeAiw8Hg27OW/4jalE7yiohCHRPprqfPyt2oG+Osy1HstUPMF26cEdno3IeEhv31Pzl0wwsQw==} - dev: true + '@types/spdx-expression-parse@3.0.5': {} - /@types/ws@8.5.10: - resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + '@types/ws@8.5.10': dependencies: - '@types/node': 20.12.5 - dev: true + '@types/node': 20.12.11 - /@typescript-eslint/eslint-plugin@6.19.1(@typescript-eslint/parser@6.21.0)(eslint@9.0.0)(typescript@5.3.3): - resolution: {integrity: sha512-roQScUGFruWod9CEyoV5KlCYrubC/fvG8/1zXuT0WTcxX87GnMMmnksMwSg99lo1xiKrBzw2icsJPMAw1OtKxg==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.21.0(eslint@9.0.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.19.1 - '@typescript-eslint/type-utils': 6.19.1(eslint@9.0.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.19.1(eslint@9.0.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.19.1 + '@typescript-eslint/parser': 7.8.0(eslint@9.2.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/type-utils': 7.8.0(eslint@9.2.0)(typescript@5.3.3) + '@typescript-eslint/utils': 7.8.0(eslint@9.2.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.8.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 9.0.0 + eslint: 9.2.0 graphemer: 1.4.0 - ignore: 5.3.0 + ignore: 5.3.1 natural-compare: 1.4.0 - semver: 7.6.0 - ts-api-utils: 1.0.3(typescript@5.3.3) + semver: 7.6.1 + ts-api-utils: 1.3.0(typescript@5.3.3) + optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/experimental-utils@5.62.0(eslint@9.0.0)(typescript@5.3.3): - resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/experimental-utils@5.62.0(eslint@9.2.0)(typescript@5.3.3)': dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@9.0.0)(typescript@5.3.3) - eslint: 9.0.0 + '@typescript-eslint/utils': 5.62.0(eslint@9.2.0)(typescript@5.3.3) + eslint: 9.2.0 transitivePeerDependencies: - supports-color - typescript - dev: true - /@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3)': dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 @@ -2657,188 +6976,81 @@ packages: '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 + optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color - dev: true - - /@typescript-eslint/parser@6.21.0(eslint@9.0.0)(typescript@5.3.3): - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - 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/visitor-keys': 6.21.0 - debug: 4.3.4(supports-color@8.1.1) - eslint: 9.0.0 - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/parser@7.5.0(eslint@9.0.0)(typescript@5.3.3): - resolution: {integrity: sha512-cj+XGhNujfD2/wzR1tabNsidnYRaFfEkcULdcIyVBYcXjBvBKOes+mpMBP7hMpOyk+gBcfXsrg4NBGAStQyxjQ==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3)': dependencies: - '@typescript-eslint/scope-manager': 7.5.0 - '@typescript-eslint/types': 7.5.0 - '@typescript-eslint/typescript-estree': 7.5.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.5.0 + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.8.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 9.0.0 + eslint: 9.2.0 + optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/scope-manager@5.62.0: - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/scope-manager@5.62.0': dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - dev: true - - /@typescript-eslint/scope-manager@6.16.0: - resolution: {integrity: sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/visitor-keys': 6.16.0 - dev: true - /@typescript-eslint/scope-manager@6.19.1: - resolution: {integrity: sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/scope-manager@6.19.1': dependencies: '@typescript-eslint/types': 6.19.1 '@typescript-eslint/visitor-keys': 6.19.1 - dev: true - /@typescript-eslint/scope-manager@6.21.0: - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/scope-manager@6.21.0': dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - dev: true - /@typescript-eslint/scope-manager@7.5.0: - resolution: {integrity: sha512-Z1r7uJY0MDeUlql9XJ6kRVgk/sP11sr3HKXn268HZyqL7i4cEfrdFuSSY/0tUqT37l5zT0tJOsuDP16kio85iA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@7.8.0': dependencies: - '@typescript-eslint/types': 7.5.0 - '@typescript-eslint/visitor-keys': 7.5.0 - dev: true + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/visitor-keys': 7.8.0 - /@typescript-eslint/type-utils@6.19.1(eslint@9.0.0)(typescript@5.3.3): - resolution: {integrity: sha512-0vdyld3ecfxJuddDjACUvlAeYNrHP/pDeQk2pWBR2ESeEzQhg52DF53AbI9QCBkYE23lgkhLCZNkHn2hEXXYIg==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/type-utils@7.8.0(eslint@9.2.0)(typescript@5.3.3)': dependencies: - '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) - '@typescript-eslint/utils': 6.19.1(eslint@9.0.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.3.3) + '@typescript-eslint/utils': 7.8.0(eslint@9.2.0)(typescript@5.3.3) debug: 4.3.4(supports-color@8.1.1) - eslint: 9.0.0 - ts-api-utils: 1.0.3(typescript@5.3.3) + eslint: 9.2.0 + ts-api-utils: 1.3.0(typescript@5.3.3) + optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/types@5.62.0: - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true + '@typescript-eslint/types@5.62.0': {} - /@typescript-eslint/types@6.16.0: - resolution: {integrity: sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true + '@typescript-eslint/types@6.19.1': {} - /@typescript-eslint/types@6.19.1: - resolution: {integrity: sha512-6+bk6FEtBhvfYvpHsDgAL3uo4BfvnTnoge5LrrCj2eJN8g3IJdLTD4B/jK3Q6vo4Ql/Hoip9I8aB6fF+6RfDqg==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true + '@typescript-eslint/types@6.21.0': {} - /@typescript-eslint/types@6.21.0: - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true + '@typescript-eslint/types@7.5.0': {} - /@typescript-eslint/types@7.5.0: - resolution: {integrity: sha512-tv5B4IHeAdhR7uS4+bf8Ov3k793VEVHd45viRRkehIUZxm0WF82VPiLgHzA/Xl4TGPg1ZD49vfxBKFPecD5/mg==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/types@7.8.0': {} - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3)': dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.6.0 + semver: 7.6.1 tsutils: 3.21.0(typescript@5.3.3) + optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color - dev: true - - /@typescript-eslint/typescript-estree@6.16.0(typescript@5.3.3): - resolution: {integrity: sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/visitor-keys': 6.16.0 - debug: 4.3.4(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.0 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/typescript-estree@6.19.1(typescript@5.3.3): - resolution: {integrity: sha512-aFdAxuhzBFRWhy+H20nYu19+Km+gFfwNO4TEqyszkMcgBDYQjmPJ61erHxuT2ESJXhlhrO7I5EFIlZ+qGR8oVA==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/typescript-estree@6.19.1(typescript@5.3.3)': dependencies: '@typescript-eslint/types': 6.19.1 '@typescript-eslint/visitor-keys': 6.19.1 @@ -2846,21 +7058,14 @@ packages: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.6.0 + semver: 7.6.1 ts-api-utils: 1.0.3(typescript@5.3.3) + optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3)': dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 @@ -2868,403 +7073,250 @@ packages: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.6.0 + semver: 7.6.1 ts-api-utils: 1.0.3(typescript@5.3.3) + optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/typescript-estree@7.5.0(typescript@5.3.3): - resolution: {integrity: sha512-YklQQfe0Rv2PZEueLTUffiQGKQneiIEKKnfIqPIOxgM9lKSZFCjT5Ad4VqRKj/U4+kQE3fa8YQpskViL7WjdPQ==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/typescript-estree@7.8.0(typescript@5.3.3)': dependencies: - '@typescript-eslint/types': 7.5.0 - '@typescript-eslint/visitor-keys': 7.5.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/visitor-keys': 7.8.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.0 - ts-api-utils: 1.0.3(typescript@5.3.3) + minimatch: 9.0.4 + semver: 7.6.1 + ts-api-utils: 1.3.0(typescript@5.3.3) + optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/utils@5.62.0(eslint@9.0.0)(typescript@5.3.3): - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/utils@5.62.0(eslint@9.2.0)(typescript@5.3.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.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.0.0 + eslint: 9.2.0 eslint-scope: 5.1.1 - semver: 7.6.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/utils@6.16.0(eslint@9.0.0)(typescript@5.3.3): - resolution: {integrity: sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 6.16.0 - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) - eslint: 9.0.0 - semver: 7.6.0 + semver: 7.6.1 transitivePeerDependencies: - supports-color - typescript - dev: true - /@typescript-eslint/utils@6.19.1(eslint@9.0.0)(typescript@5.3.3): - resolution: {integrity: sha512-JvjfEZuP5WoMqwh9SPAPDSHSg9FBHHGhjPugSRxu5jMfjvBpq5/sGTD+9M9aQ5sh6iJ8AY/Kk/oUYVEMAPwi7w==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + '@typescript-eslint/utils@6.19.1(eslint@9.2.0)(typescript@5.3.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.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.0.0 - semver: 7.6.0 + eslint: 9.2.0 + semver: 7.6.1 transitivePeerDependencies: - supports-color - typescript - dev: true - /@typescript-eslint/visitor-keys@5.62.0: - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/utils@7.8.0(eslint@9.2.0)(typescript@5.3.3)': dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 - dev: true + '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.3.3) + eslint: 9.2.0 + semver: 7.6.1 + transitivePeerDependencies: + - supports-color + - typescript - /@typescript-eslint/visitor-keys@6.16.0: - resolution: {integrity: sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/visitor-keys@5.62.0': dependencies: - '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 - dev: true - /@typescript-eslint/visitor-keys@6.19.1: - resolution: {integrity: sha512-gkdtIO+xSO/SmI0W68DBg4u1KElmIUo3vXzgHyGPs6cxgB0sa3TlptRAAE0hUY1hM6FcDKEv7aIwiTGm76cXfQ==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/visitor-keys@6.19.1': dependencies: '@typescript-eslint/types': 6.19.1 eslint-visitor-keys: 3.4.3 - dev: true - /@typescript-eslint/visitor-keys@6.21.0: - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/visitor-keys@6.21.0': dependencies: '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 - dev: true - /@typescript-eslint/visitor-keys@7.5.0: - resolution: {integrity: sha512-mcuHM/QircmA6O7fy6nn2w/3ditQkj+SgtOc8DW3uQ10Yfj42amm2i+6F2K4YAOPNNTmE6iM1ynM6lrSwdendA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@7.8.0': dependencies: - '@typescript-eslint/types': 7.5.0 + '@typescript-eslint/types': 7.8.0 eslint-visitor-keys: 3.4.3 - dev: true - /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - dev: true + '@ungap/structured-clone@1.2.0': {} - /@whatwg-node/events@0.0.3: - resolution: {integrity: sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA==} - dev: true + '@whatwg-node/events@0.0.3': {} - /@whatwg-node/fetch@0.8.8: - resolution: {integrity: sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg==} + '@whatwg-node/fetch@0.8.8': dependencies: '@peculiar/webcrypto': 1.4.3 '@whatwg-node/node-fetch': 0.3.6 busboy: 1.6.0 urlpattern-polyfill: 8.0.2 web-streams-polyfill: 3.2.1 - dev: true - /@whatwg-node/node-fetch@0.3.6: - resolution: {integrity: sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA==} + '@whatwg-node/node-fetch@0.3.6': dependencies: '@whatwg-node/events': 0.0.3 busboy: 1.6.0 fast-querystring: 1.1.2 fast-url-parser: 1.1.3 tslib: 2.6.2 - dev: true - /JSONStream@1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} - hasBin: true + JSONStream@1.3.5: dependencies: jsonparse: 1.3.1 through: 2.3.8 - dev: true - /abbrev@2.0.0: - resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true + abbrev@2.0.0: {} - /acorn-globals@1.0.9: - resolution: {integrity: sha512-j3/4pkfih8W4NK22gxVSXcEonTpAHOHh0hu5BoZrKcOsW/4oBPxTi4Yk3SAj+FhC1f3+bRTkXdm4019gw1vg9g==} + acorn-globals@1.0.9: dependencies: acorn: 2.7.0 - dev: true - /acorn-jsx@5.3.2(acorn@8.11.3): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn-jsx@5.3.2(acorn@8.11.3): dependencies: acorn: 8.11.3 - dev: true - /acorn@2.7.0: - resolution: {integrity: sha512-pXK8ez/pVjqFdAgBkF1YPVRacuLQ9EXBKaKWaeh58WNfMkCmZhOZzu+NtKSPD5PHmCCHheQ5cD29qM1K4QTxIg==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true + acorn@2.7.0: {} - /acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true + acorn@8.11.3: {} - /agent-base@7.1.0: - resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} - engines: {node: '>= 14'} + agent-base@7.1.0: dependencies: debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - dev: true - /aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} + aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 - dev: true - /aggregate-error@5.0.0: - resolution: {integrity: sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==} - engines: {node: '>=18'} + aggregate-error@5.0.0: dependencies: clean-stack: 5.2.0 indent-string: 5.0.0 - dev: true - /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - dev: true - /ansi-colors@4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} - engines: {node: '>=6'} - dev: true + ansi-colors@4.1.1: {} - /ansi-escapes@6.2.0: - resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} - engines: {node: '>=14.16'} + ansi-escapes@6.2.0: dependencies: type-fest: 3.13.1 - dev: true - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - dev: true + ansi-regex@5.0.1: {} - /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - dev: true + ansi-regex@6.0.1: {} - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 - dev: true - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 - dev: true - /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - dev: true + ansi-styles@6.2.1: {} - /any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: true + any-promise@1.3.0: {} - /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - requiresBuild: true + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - dev: true - /are-docs-informative@0.0.2: - resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} - engines: {node: '>=14'} + are-docs-informative@0.0.2: {} - /argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 - dev: true - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - dev: true + argparse@2.0.1: {} - /argv-formatter@1.0.0: - resolution: {integrity: sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==} - dev: true + argv-formatter@1.0.0: {} - /aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + aria-query@5.3.0: dependencies: dequal: 2.0.3 - dev: true - /arr-diff@4.0.0: - resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} - engines: {node: '>=0.10.0'} - dev: true + arr-diff@4.0.0: {} - /arr-flatten@1.1.0: - resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} - engines: {node: '>=0.10.0'} - dev: true + arr-flatten@1.1.0: {} - /arr-union@3.1.0: - resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} - engines: {node: '>=0.10.0'} - dev: true + arr-union@3.1.0: {} - /array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + array-buffer-byte-length@1.0.0: dependencies: call-bind: 1.0.5 is-array-buffer: 3.0.2 - dev: true - /array-ify@1.0.0: - resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - dev: true + array-ify@1.0.0: {} - /array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} - engines: {node: '>= 0.4'} + array-includes@3.1.7: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 get-intrinsic: 1.2.2 is-string: 1.0.7 - dev: true - /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - dev: true + array-union@2.1.0: {} - /array-unique@0.3.2: - resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} - engines: {node: '>=0.10.0'} - dev: true + array-unique@0.3.2: {} - /array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} + array.prototype.flat@1.3.2: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} + array.prototype.flatmap@1.3.2: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.reduce@1.0.6: - resolution: {integrity: sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==} - engines: {node: '>= 0.4'} + array.prototype.reduce@1.0.6: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 es-array-method-boxes-properly: 1.0.0 is-string: 1.0.7 - dev: true - /array.prototype.tosorted@1.1.2: - resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} + array.prototype.tosorted@1.1.2: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 es-shim-unscopables: 1.0.2 get-intrinsic: 1.2.2 - dev: true - /arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} - engines: {node: '>= 0.4'} + arraybuffer.prototype.slice@1.0.2: dependencies: array-buffer-byte-length: 1.0.0 call-bind: 1.0.5 @@ -3273,110 +7325,62 @@ packages: get-intrinsic: 1.2.2 is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 - dev: true - /arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - dev: true + arrify@1.0.1: {} - /asn1@0.2.6: - resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + asn1@0.2.6: dependencies: safer-buffer: 2.1.2 - dev: true - /asn1js@3.0.5: - resolution: {integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==} - engines: {node: '>=12.0.0'} + asn1js@3.0.5: dependencies: pvtsutils: 1.3.5 pvutils: 1.1.3 tslib: 2.6.2 - dev: true - /assert-plus@1.0.0: - resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} - engines: {node: '>=0.8'} - dev: true + assert-plus@1.0.0: {} - /assert@2.1.0: - resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} + assert@2.1.0: dependencies: call-bind: 1.0.5 is-nan: 1.3.2 object-is: 1.1.5 object.assign: 4.1.5 util: 0.12.5 - dev: true - /assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - dev: true + assertion-error@1.1.0: {} - /assign-symbols@1.0.0: - resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} - engines: {node: '>=0.10.0'} - dev: true + assign-symbols@1.0.0: {} - /ast-types-flow@0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - dev: true + ast-types-flow@0.0.8: {} - /ast-types@0.16.1: - resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} - engines: {node: '>=4'} + ast-types@0.16.1: dependencies: tslib: 2.6.2 - dev: true - /asynciterator.prototype@1.0.0: - resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} + asynciterator.prototype@1.0.0: dependencies: has-symbols: 1.0.3 - dev: true - /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: true + asynckit@0.4.0: {} - /atob@2.1.2: - resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} - engines: {node: '>= 4.5.0'} - hasBin: true - dev: true + atob@2.1.2: {} - /available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} - engines: {node: '>= 0.4'} - dev: true + available-typed-arrays@1.0.5: {} - /aws-sign2@0.7.0: - resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} - dev: true + aws-sign2@0.7.0: {} - /aws4@1.12.0: - resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} - dev: true + aws4@1.12.0: {} - /axe-core@4.7.0: - resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} - engines: {node: '>=4'} - dev: true + axe-core@4.7.0: {} - /axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + axobject-query@3.2.1: dependencies: dequal: 2.0.3 - dev: true - /babel-plugin-add-module-exports@1.0.4: - resolution: {integrity: sha512-g+8yxHUZ60RcyaUpfNzy56OtWW+x9cyEe9j+CranqLiqbju2yf/Cy6ZtYK40EZxtrdHllzlVZgLmcOUCTlJ7Jg==} - dev: true + babel-plugin-add-module-exports@1.0.4: {} - /babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} + babel-plugin-istanbul@6.1.1: dependencies: '@babel/helper-plugin-utils': 7.22.5 '@istanbuljs/load-nyc-config': 1.1.0 @@ -3385,51 +7389,34 @@ packages: test-exclude: 6.0.0 transitivePeerDependencies: - supports-color - dev: true - /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.4): - resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.5): dependencies: '@babel/compat-data': 7.24.4 - '@babel/core': 7.24.4 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.4) + '@babel/core': 7.24.5 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.5) semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: true - /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.4): - resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.5): dependencies: - '@babel/core': 7.24.4 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.4) + '@babel/core': 7.24.5 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.5) core-js-compat: 3.36.1 transitivePeerDependencies: - supports-color - dev: true - /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.4): - resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.5): dependencies: - '@babel/core': 7.24.4 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.4) + '@babel/core': 7.24.5 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.5) transitivePeerDependencies: - supports-color - dev: true - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true + balanced-match@1.0.2: {} - /base@0.11.2: - resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} - engines: {node: '>=0.10.0'} + base@0.11.2: dependencies: cache-base: 1.0.1 class-utils: 0.3.6 @@ -3438,56 +7425,33 @@ packages: isobject: 3.0.1 mixin-deep: 1.3.2 pascalcase: 0.1.1 - dev: true - /bcrypt-pbkdf@1.0.2: - resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + bcrypt-pbkdf@1.0.2: dependencies: tweetnacl: 0.14.5 - dev: true - /before-after-hook@3.0.2: - resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==} - dev: true + before-after-hook@3.0.2: {} - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - requiresBuild: true - dev: true + binary-extensions@2.2.0: {} - /bluebird@2.11.0: - resolution: {integrity: sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==} - dev: true + bluebird@2.11.0: {} - /bluebird@3.7.2: - resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - dev: true + bluebird@3.7.2: {} - /boolean@3.2.0: - resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} - dev: true + boolean@3.2.0: {} - /bottleneck@2.19.5: - resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} - dev: true + bottleneck@2.19.5: {} - /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - dev: true - /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.1: dependencies: balanced-match: 1.0.2 - dev: true - /braces@2.3.2: - resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} - engines: {node: '>=0.10.0'} + braces@2.3.2: dependencies: arr-flatten: 1.1.0 array-unique: 0.3.2 @@ -3501,71 +7465,35 @@ packages: to-regex: 3.0.2 transitivePeerDependencies: - supports-color - dev: true - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} + braces@3.0.2: dependencies: fill-range: 7.0.1 - dev: true - - /browser-request@0.3.3: - resolution: {integrity: sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg==} - engines: {'0': node} - dev: true - /browser-stdout@1.3.1: - resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - dev: true + browser-request@0.3.3: {} - /browserslist@4.22.2: - resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001572 - electron-to-chromium: 1.4.616 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.22.2) - dev: true + browser-stdout@1.3.1: {} - /browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true + browserslist@4.23.0: dependencies: caniuse-lite: 1.0.30001606 electron-to-chromium: 1.4.729 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) - dev: true - /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - dev: true + buffer-from@1.1.2: {} - /builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} + builtin-modules@3.3.0: {} - /builtins@5.0.1: - resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} + builtins@5.0.1: dependencies: - semver: 7.6.0 - dev: true + semver: 7.6.1 - /busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} + busboy@1.6.0: dependencies: streamsearch: 1.1.0 - dev: true - /c8@9.1.0: - resolution: {integrity: sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==} - engines: {node: '>=14.14.0'} - hasBin: true + c8@9.1.0: dependencies: '@bcoe/v8-coverage': 0.2.3 '@istanbuljs/schema': 0.1.3 @@ -3578,16 +7506,13 @@ packages: v8-to-istanbul: 9.2.0 yargs: 17.7.2 yargs-parser: 21.1.1 - dev: true - /cacache@18.0.1: - resolution: {integrity: sha512-g4Uf2CFZPaxtJKre6qr4zqLDOOPU7bNVhWjlNhvzc51xaTOx2noMOLhfFkTAqwtrAZAKQUuDfyjitzilpA8WsQ==} - engines: {node: ^16.14.0 || >=18.0.0} + cacache@18.0.1: dependencies: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.3 - glob: 10.3.12 - lru-cache: 10.1.0 + glob: 10.3.13 + lru-cache: 10.2.0 minipass: 7.0.4 minipass-collect: 2.0.1 minipass-flush: 1.0.5 @@ -3596,11 +7521,8 @@ packages: ssri: 10.0.5 tar: 6.2.0 unique-filename: 3.0.0 - dev: true - /cache-base@1.0.1: - resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} - engines: {node: '>=0.10.0'} + cache-base@1.0.1: dependencies: collection-visit: 1.0.0 component-emitter: 1.3.1 @@ -3611,65 +7533,34 @@ packages: to-object-path: 0.3.0 union-value: 1.0.1 unset-value: 1.0.0 - dev: true - /call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + call-bind@1.0.5: dependencies: function-bind: 1.1.2 get-intrinsic: 1.2.2 set-function-length: 1.1.1 - dev: true - /caller-callsite@2.0.0: - resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} - engines: {node: '>=4'} + caller-callsite@2.0.0: dependencies: callsites: 2.0.0 - dev: true - /caller-path@2.0.0: - resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==} - engines: {node: '>=4'} + caller-path@2.0.0: dependencies: caller-callsite: 2.0.0 - dev: true - - /callsites@2.0.0: - resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==} - engines: {node: '>=4'} - dev: true - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - dev: true + callsites@2.0.0: {} - /camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - dev: true + callsites@3.1.0: {} - /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - dev: true + camelcase@5.3.1: {} - /caniuse-lite@1.0.30001572: - resolution: {integrity: sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==} - dev: true + camelcase@6.3.0: {} - /caniuse-lite@1.0.30001606: - resolution: {integrity: sha512-LPbwnW4vfpJId225pwjZJOgX1m9sGfbw/RKJvw/t0QhYOOaTXHvkjVGFGPpvwEzufrjvTlsULnVTxdy4/6cqkg==} - dev: true + caniuse-lite@1.0.30001606: {} - /caseless@0.12.0: - resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} - dev: true + caseless@0.12.0: {} - /chai@4.3.10: - resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} - engines: {node: '>=4'} + chai@4.3.10: dependencies: assertion-error: 1.1.0 check-error: 1.0.3 @@ -3678,48 +7569,29 @@ packages: loupe: 2.3.7 pathval: 1.1.1 type-detect: 4.0.8 - dev: true - /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - dev: true - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - dev: true - /chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - dev: true + chalk@5.3.0: {} - /chance@1.1.11: - resolution: {integrity: sha512-kqTg3WWywappJPqtgrdvbA380VoXO2eu9VCV895JgbyHsaErXdyHK9LOZ911OvAk6L0obK7kDk9CGs8+oBawVA==} - dev: true + chance@1.1.11: {} - /char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - dev: true + char-regex@1.0.2: {} - /check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + check-error@1.0.3: dependencies: get-func-name: 2.0.2 - dev: true - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} + chokidar@3.5.3: dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -3730,58 +7602,33 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 - dev: true - /chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - dev: true + chownr@2.0.0: {} - /ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - dev: true + ci-info@3.9.0: {} - /class-utils@0.3.6: - resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} - engines: {node: '>=0.10.0'} + class-utils@0.3.6: dependencies: arr-union: 3.1.0 define-property: 0.2.5 isobject: 3.0.1 static-extend: 0.1.2 - dev: true - /clean-regexp@1.0.0: - resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} - engines: {node: '>=4'} + clean-regexp@1.0.0: dependencies: escape-string-regexp: 1.0.5 - dev: true - /clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - dev: true + clean-stack@2.2.0: {} - /clean-stack@5.2.0: - resolution: {integrity: sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==} - engines: {node: '>=14.16'} + clean-stack@5.2.0: dependencies: escape-string-regexp: 5.0.0 - dev: true - /cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + cli-cursor@4.0.0: dependencies: restore-cursor: 4.0.0 - dev: true - /cli-highlight@2.1.11: - resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} - engines: {node: '>=8.0.0', npm: '>=5.0.0'} - hasBin: true + cli-highlight@2.1.11: dependencies: chalk: 4.1.2 highlight.js: 10.7.3 @@ -3789,637 +7636,359 @@ packages: parse5: 5.1.1 parse5-htmlparser2-tree-adapter: 6.0.1 yargs: 16.2.0 - dev: true - /cli-table3@0.6.3: - resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} - engines: {node: 10.* || >= 12.*} + cli-table3@0.6.3: dependencies: string-width: 4.2.3 optionalDependencies: '@colors/colors': 1.5.0 - dev: true - /cli-truncate@4.0.0: - resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} - engines: {node: '>=18'} + cli-truncate@4.0.0: dependencies: slice-ansi: 5.0.0 string-width: 7.0.0 - dev: true - /cliui@6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + cliui@6.0.0: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 6.2.0 - dev: true - /cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + cliui@7.0.4: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true - /cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true - /clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} + clone-deep@4.0.1: dependencies: is-plain-object: 2.0.4 kind-of: 6.0.3 shallow-clone: 3.0.1 - dev: true - /collection-visit@1.0.0: - resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} - engines: {node: '>=0.10.0'} + collection-visit@1.0.0: dependencies: map-visit: 1.0.0 object-visit: 1.0.1 - dev: true - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + color-convert@1.9.3: dependencies: color-name: 1.1.3 - dev: true - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + color-convert@2.0.1: dependencies: color-name: 1.1.4 - dev: true - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: true + color-name@1.1.3: {} - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true + color-name@1.1.4: {} - /colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - dev: true + colorette@2.0.20: {} - /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 - dev: true - /commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} - dev: true + commander@11.1.0: {} - /commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - dev: true + commander@2.20.3: {} - /commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - dev: true + commander@4.1.1: {} - /comment-parser@1.4.1: - resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} - engines: {node: '>= 12.0.0'} + comment-parser@1.4.1: {} - /commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - dev: true + commondir@1.0.1: {} - /compare-func@2.0.0: - resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + compare-func@2.0.0: dependencies: array-ify: 1.0.0 dot-prop: 5.3.0 - dev: true - /component-emitter@1.3.1: - resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} - dev: true + component-emitter@1.3.1: {} - /concat-map@0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} - dev: true + concat-map@0.0.1: {} - /config-chain@1.1.13: - resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + config-chain@1.1.13: dependencies: ini: 1.3.8 proto-list: 1.2.4 - dev: true - /contents@5.0.0: - resolution: {integrity: sha512-wnnGorqo07ZSIzMQmUc4vUv1NEXl7elBtqoz5UcysV+pbSvphZYfI763rXgpFK2H9o5rvjQQ8kZxp7hOOwIe3A==} + contents@5.0.0: dependencies: lodash: 4.17.21 sister: 3.0.2 - dev: true - /conventional-changelog-angular@7.0.0: - resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} - engines: {node: '>=16'} + conventional-changelog-angular@7.0.0: dependencies: compare-func: 2.0.0 - dev: true - /conventional-changelog-writer@7.0.1: - resolution: {integrity: sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==} - engines: {node: '>=16'} - hasBin: true + conventional-changelog-writer@7.0.1: dependencies: conventional-commits-filter: 4.0.0 handlebars: 4.7.8 json-stringify-safe: 5.0.1 meow: 12.1.1 - semver: 7.6.0 + semver: 7.6.1 split2: 4.2.0 - dev: true - /conventional-commits-filter@4.0.0: - resolution: {integrity: sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==} - engines: {node: '>=16'} - dev: true + conventional-commits-filter@4.0.0: {} - /conventional-commits-parser@5.0.0: - resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} - engines: {node: '>=16'} - hasBin: true + conventional-commits-parser@5.0.0: dependencies: JSONStream: 1.3.5 is-text-path: 2.0.0 meow: 12.1.1 split2: 4.2.0 - dev: true - /convert-hrtime@5.0.0: - resolution: {integrity: sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==} - engines: {node: '>=12'} - dev: true - - /convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - dev: true + convert-hrtime@5.0.0: {} - /copy-descriptor@0.1.1: - resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} - engines: {node: '>=0.10.0'} - dev: true + convert-source-map@2.0.0: {} - /core-js-compat@3.34.0: - resolution: {integrity: sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==} - dependencies: - browserslist: 4.22.2 - dev: true + copy-descriptor@0.1.1: {} - /core-js-compat@3.36.1: - resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} + core-js-compat@3.36.1: dependencies: browserslist: 4.23.0 - dev: true - /core-js-pure@3.34.0: - resolution: {integrity: sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg==} - requiresBuild: true - dev: true + core-js-pure@3.34.0: {} - /core-js@3.34.0: - resolution: {integrity: sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==} - requiresBuild: true - dev: true + core-js@3.34.0: {} - /core-util-is@1.0.2: - resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} - dev: true + core-util-is@1.0.2: {} - /core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - dev: true + core-util-is@1.0.3: {} - /cosmiconfig@5.2.1: - resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==} - engines: {node: '>=4'} + cosmiconfig@5.2.1: dependencies: import-fresh: 2.0.0 is-directory: 0.3.1 js-yaml: 3.14.1 parse-json: 4.0.0 - dev: true - /cosmiconfig@8.0.0: - resolution: {integrity: sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==} - engines: {node: '>=14'} + cosmiconfig@8.0.0: dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 - dev: true - /cosmiconfig@9.0.0(typescript@5.3.3): - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true + cosmiconfig@9.0.0(typescript@5.3.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 - dev: true - /create-eslint-index@1.0.0: - resolution: {integrity: sha512-nXvJjnfDytOOaPOonX0h0a1ggMoqrhdekGeZkD6hkcWYvlCWhU719tKFVh8eU04CnMwu3uwe1JjwuUF2C3k2qg==} - engines: {node: '>=4.0.0'} + create-eslint-index@1.0.0: dependencies: lodash.get: 4.4.2 - dev: true - /cross-env@7.0.3: - resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} - engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} - hasBin: true + cross-env@7.0.3: dependencies: cross-spawn: 7.0.3 - dev: true - /cross-spawn@6.0.5: - resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} - engines: {node: '>=4.8'} + cross-spawn@6.0.5: dependencies: nice-try: 1.0.5 path-key: 2.0.1 semver: 5.7.2 shebang-command: 1.2.0 which: 1.3.1 - dev: true - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} + cross-spawn@7.0.3: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - dev: true - /crypto-random-string@4.0.0: - resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} - engines: {node: '>=12'} + crypto-random-string@4.0.0: dependencies: type-fest: 1.4.0 - dev: true - /cssom@0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - dev: true + cssom@0.3.8: {} - /cssstyle@0.2.37: - resolution: {integrity: sha512-FUpKc+1FNBsHUr9IsfSGCovr8VuGOiiuzlgCyppKBjJi2jYTOFLN3oiiNRMIvYqbFzF38mqKj4BgcevzU5/kIA==} + cssstyle@0.2.37: dependencies: cssom: 0.3.8 - dev: true - /damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - dev: true + damerau-levenshtein@1.0.8: {} - /dashdash@1.14.1: - resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} - engines: {node: '>=0.10'} + dashdash@1.14.1: dependencies: assert-plus: 1.0.0 - dev: true - /dataloader@2.2.2: - resolution: {integrity: sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==} - dev: true + dataloader@2.2.2: {} - /deadlink@1.1.3: - resolution: {integrity: sha512-m1h/xFi5eqcByMT7AGBt0BCygIifVyUw6CtEh1NpS/x0yeyS709+nCY5ByK255J/5hiRb9O/8dx6mmx3t6qSIQ==} - engines: {node: '>=4'} + deadlink@1.1.3: dependencies: bluebird: 2.11.0 jsdom: 6.5.1 url-regexp: 1.0.2 - dev: true - /debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@2.6.9: dependencies: ms: 2.0.0 - dev: true - /debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@3.2.7: dependencies: ms: 2.1.3 - dev: true - /debug@4.3.4(supports-color@8.1.1): - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@4.3.4(supports-color@8.1.1): dependencies: ms: 2.1.2 + optionalDependencies: supports-color: 8.1.1 - /decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: true + decamelize@1.2.0: {} - /decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} - engines: {node: '>=10'} - dev: true + decamelize@4.0.0: {} - /decamelize@5.0.1: - resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} - engines: {node: '>=10'} - dev: true + decamelize@5.0.1: {} - /decode-uri-component@0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} - engines: {node: '>=0.10'} - dev: true + decode-uri-component@0.2.2: {} - /deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} - engines: {node: '>=6'} + deep-eql@4.1.3: dependencies: type-detect: 4.0.8 - dev: true - /deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - dev: true + deep-extend@0.6.0: {} - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: true + deep-is@0.1.4: {} - /define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} - engines: {node: '>= 0.4'} + define-data-property@1.1.1: dependencies: get-intrinsic: 1.2.2 gopd: 1.0.1 has-property-descriptors: 1.0.1 - dev: true - /define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} + define-properties@1.2.1: dependencies: define-data-property: 1.1.1 has-property-descriptors: 1.0.1 object-keys: 1.1.1 - dev: true - /define-property@0.2.5: - resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} - engines: {node: '>=0.10.0'} + define-property@0.2.5: dependencies: is-descriptor: 0.1.7 - dev: true - /define-property@1.0.0: - resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} - engines: {node: '>=0.10.0'} + define-property@1.0.0: dependencies: is-descriptor: 1.0.3 - dev: true - /define-property@2.0.2: - resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} - engines: {node: '>=0.10.0'} + define-property@2.0.2: dependencies: is-descriptor: 1.0.3 isobject: 3.0.1 - dev: true - /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - dev: true + delayed-stream@1.0.0: {} - /dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - dev: true + dequal@2.0.3: {} - /diff@5.0.0: - resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} - engines: {node: '>=0.3.1'} - dev: true + diff@5.0.0: {} - /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + dir-glob@3.0.1: dependencies: path-type: 4.0.0 - dev: true - /doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} + doctrine@2.1.0: dependencies: esutils: 2.0.3 - dev: true - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} + doctrine@3.0.0: dependencies: esutils: 2.0.3 - dev: true - /dom-serializer@0.2.2: - resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} + dom-serializer@0.2.2: dependencies: domelementtype: 2.3.0 entities: 2.2.0 - dev: true - /domelementtype@1.3.1: - resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} - dev: true + domelementtype@1.3.1: {} - /domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - dev: true + domelementtype@2.3.0: {} - /domhandler@2.4.2: - resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} + domhandler@2.4.2: dependencies: domelementtype: 1.3.1 - dev: true - /domutils@1.7.0: - resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} + domutils@1.7.0: dependencies: dom-serializer: 0.2.2 domelementtype: 1.3.1 - dev: true - /dot-prop@5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} + dot-prop@5.3.0: dependencies: is-obj: 2.0.0 - dev: true - /dset@3.1.3: - resolution: {integrity: sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==} - engines: {node: '>=4'} - dev: true + dset@3.1.3: {} - /duplexer2@0.1.4: - resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + duplexer2@0.1.4: dependencies: readable-stream: 2.3.8 - dev: true - /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true + eastasianwidth@0.2.0: {} - /ecc-jsbn@0.1.2: - resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + ecc-jsbn@0.1.2: dependencies: jsbn: 0.1.1 safer-buffer: 2.1.2 - dev: true - /electron-to-chromium@1.4.616: - resolution: {integrity: sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==} - dev: true - - /electron-to-chromium@1.4.729: - resolution: {integrity: sha512-bx7+5Saea/qu14kmPTDHQxkp2UnziG3iajUQu3BxFvCOnpAJdDbMV4rSl+EqFDkkpNNVUFlR1kDfpL59xfy1HA==} - dev: true + electron-to-chromium@1.4.729: {} - /emoji-regex@10.3.0: - resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} - dev: true + emoji-regex@10.3.0: {} - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true + emoji-regex@8.0.0: {} - /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true + emoji-regex@9.2.2: {} - /emojilib@2.4.0: - resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} - dev: true + emojilib@2.4.0: {} - /encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - requiresBuild: true + encoding@0.1.13: dependencies: iconv-lite: 0.6.3 - dev: true optional: true - /end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + end-of-stream@1.4.4: dependencies: once: 1.4.0 - dev: true - /enhance-visitors@1.0.0: - resolution: {integrity: sha512-+29eJLiUixTEDRaZ35Vu8jP3gPLNcQQkQkOQjLp2X+6cZGGPDD/uasbFzvLsJKnGZnvmyZ0srxudwOtskHeIDA==} - engines: {node: '>=4.0.0'} + enhance-visitors@1.0.0: dependencies: lodash: 4.17.21 - dev: true - /enhanced-resolve@5.15.0: - resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} - engines: {node: '>=10.13.0'} + enhanced-resolve@5.15.0: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 - dev: true - /entities@1.1.2: - resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} - dev: true + entities@1.1.2: {} - /entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - dev: true + entities@2.2.0: {} - /env-ci@11.0.0: - resolution: {integrity: sha512-apikxMgkipkgTvMdRT9MNqWx5VLOci79F4VBd7Op/7OPjjoanjdAvn6fglMCCEf/1bAh8eOiuEVCUs4V3qP3nQ==} - engines: {node: ^18.17 || >=20.6.1} + env-ci@11.0.0: dependencies: execa: 8.0.1 java-properties: 1.0.2 - dev: true - /env-editor@0.4.2: - resolution: {integrity: sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==} - engines: {node: '>=8'} - dev: true + env-editor@0.4.2: {} - /env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - dev: true + env-paths@2.2.1: {} - /err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - dev: true + err-code@2.0.3: {} - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 - dev: true - /es-abstract@1.22.3: - resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} - engines: {node: '>= 0.4'} + es-abstract@1.22.3: dependencies: array-buffer-byte-length: 1.0.0 arraybuffer.prototype.slice: 1.0.2 @@ -4460,14 +8029,10 @@ packages: typed-array-length: 1.0.4 unbox-primitive: 1.0.2 which-typed-array: 1.1.13 - dev: true - /es-array-method-boxes-properly@1.0.0: - resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} - dev: true + es-array-method-boxes-properly@1.0.0: {} - /es-iterator-helpers@1.0.15: - resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + es-iterator-helpers@1.0.15: dependencies: asynciterator.prototype: 1.0.0 call-bind: 1.0.5 @@ -4483,55 +8048,32 @@ packages: internal-slot: 1.0.6 iterator.prototype: 1.1.2 safe-array-concat: 1.0.1 - dev: true - /es-set-tostringtag@2.0.2: - resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} - engines: {node: '>= 0.4'} + es-set-tostringtag@2.0.2: dependencies: get-intrinsic: 1.2.2 has-tostringtag: 1.0.0 hasown: 2.0.0 - dev: true - /es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + es-shim-unscopables@1.0.2: dependencies: hasown: 2.0.0 - dev: true - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} + es-to-primitive@1.2.1: dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 - dev: true - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - dev: true + escalade@3.1.1: {} - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - dev: true + escape-string-regexp@1.0.5: {} - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} + escape-string-regexp@4.0.0: {} - /escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - dev: true + escape-string-regexp@5.0.0: {} - /escodegen@1.14.3: - resolution: {integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==} - engines: {node: '>=4.0'} - hasBin: true + escodegen@1.14.3: dependencies: esprima: 4.0.1 estraverse: 4.3.0 @@ -4539,69 +8081,56 @@ packages: optionator: 0.8.3 optionalDependencies: source-map: 0.6.1 - dev: true - /eslint-ast-utils@1.1.0: - resolution: {integrity: sha512-otzzTim2/1+lVrlH19EfQQJEhVJSu0zOb9ygb3iapN6UlyaDtyRq4b5U1FuW0v1lRa9Fp/GJyHkSwm6NqABgCA==} - engines: {node: '>=4'} + eslint-ast-utils@1.1.0: dependencies: lodash.get: 4.4.2 lodash.zip: 4.2.0 - dev: true - /eslint-compat-utils@0.1.2(eslint@9.0.0): - resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' + eslint-compat-utils@0.1.2(eslint@9.2.0): dependencies: - eslint: 9.0.0 - dev: true + eslint: 9.2.0 - /eslint-config-canonical@42.8.1(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(@types/eslint@8.56.7)(@types/node@20.12.5)(eslint@9.0.0)(graphql@16.8.1)(typescript@5.3.3): - resolution: {integrity: sha512-OsQD1TQJAVUH/tnLwumPyKFnB+wcZLIwIUJ73rLupvgD9XzinBaDf8ZAz1cPIkG/Fej3SgKvHWiPSFAp2Nd27w==} - engines: {node: '>=16.0.0'} - peerDependencies: - eslint: ^8.30.0 + eslint-config-canonical@42.8.2(@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.5))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.5))(@types/eslint@8.56.10)(@types/node@20.12.11)(encoding@0.1.13)(eslint@9.2.0)(graphql@16.8.1)(typescript@5.3.3): dependencies: - '@babel/core': 7.24.4 - '@babel/eslint-parser': 7.24.1(@babel/core@7.24.4)(eslint@9.0.0) - '@babel/eslint-plugin': 7.23.5(@babel/eslint-parser@7.24.1)(eslint@9.0.0) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.24.4) - '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.24.4)(@types/node@20.12.5)(graphql@16.8.1) + '@babel/core': 7.24.5 + '@babel/eslint-parser': 7.24.5(@babel/core@7.24.5)(eslint@9.2.0) + '@babel/eslint-plugin': 7.23.5(@babel/eslint-parser@7.24.5(@babel/core@7.24.5)(eslint@9.2.0))(eslint@9.2.0) + '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.5) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.24.5)(@types/node@20.12.11)(encoding@0.1.13)(graphql@16.8.1) '@next/eslint-plugin-next': 13.5.6 '@rushstack/eslint-patch': 1.6.1 - '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.21.0)(eslint@9.0.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.21.0(eslint@9.0.0)(typescript@5.3.3) - eslint: 9.0.0 - eslint-config-prettier: 9.1.0(eslint@9.0.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0) - eslint-plugin-ava: 14.0.0(eslint@9.0.0) - eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0)(typescript@5.3.3) - eslint-plugin-cypress: 2.15.1(eslint@9.0.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@9.0.0) - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@9.0.0) - eslint-plugin-fp: 2.3.0(eslint@9.0.0) - eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0) - eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.19.1)(eslint@9.0.0)(typescript@5.3.3) - eslint-plugin-jsdoc: 46.9.1(eslint@9.0.0) - eslint-plugin-jsonc: 2.11.2(eslint@9.0.0) - eslint-plugin-jsx-a11y: 6.8.0(eslint@9.0.0) - eslint-plugin-lodash: 7.4.0(eslint@9.0.0) - eslint-plugin-mocha: 10.2.0(eslint@9.0.0) + '@typescript-eslint/eslint-plugin': 7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.8.0(eslint@9.2.0)(typescript@5.3.3) + eslint: 9.2.0 + eslint-config-prettier: 9.1.0(eslint@9.2.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.2.0) + eslint-plugin-ava: 14.0.0(eslint@9.2.0) + eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0)(typescript@5.3.3) + eslint-plugin-cypress: 2.15.1(eslint@9.2.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@9.2.0) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.5))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.5))(eslint@9.2.0) + eslint-plugin-fp: 2.3.0(eslint@9.2.0) + eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0) + eslint-plugin-jest: 28.5.0(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3) + eslint-plugin-jsdoc: 46.9.1(eslint@9.2.0) + eslint-plugin-jsonc: 2.11.2(eslint@9.2.0) + eslint-plugin-jsx-a11y: 6.8.0(eslint@9.2.0) + eslint-plugin-lodash: 7.4.0(eslint@9.2.0) + eslint-plugin-mocha: 10.2.0(eslint@9.2.0) eslint-plugin-modules-newline: 0.0.6 - eslint-plugin-n: 16.5.0(eslint@9.0.0) - eslint-plugin-prettier: 5.1.2(@types/eslint@8.56.7)(eslint-config-prettier@9.1.0)(eslint@9.0.0)(prettier@3.1.1) - eslint-plugin-promise: 6.1.1(eslint@9.0.0) - eslint-plugin-react: 7.33.2(eslint@9.0.0) - eslint-plugin-react-hooks: 4.6.0(eslint@9.0.0) - eslint-plugin-regexp: 1.15.0(eslint@9.0.0) - eslint-plugin-simple-import-sort: 10.0.0(eslint@9.0.0) - eslint-plugin-typescript-sort-keys: 3.1.0(@typescript-eslint/parser@6.21.0)(eslint@9.0.0)(typescript@5.3.3) - eslint-plugin-unicorn: 48.0.1(eslint@9.0.0) - eslint-plugin-vitest: 0.3.20(@typescript-eslint/eslint-plugin@6.19.1)(eslint@9.0.0)(typescript@5.3.3) - eslint-plugin-yml: 1.11.0(eslint@9.0.0) - eslint-plugin-zod: 1.4.0(eslint@9.0.0) + eslint-plugin-n: 16.5.0(eslint@9.2.0) + eslint-plugin-prettier: 5.1.2(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.2.0))(eslint@9.2.0)(prettier@3.1.1) + eslint-plugin-promise: 6.1.1(eslint@9.2.0) + eslint-plugin-react: 7.33.2(eslint@9.2.0) + eslint-plugin-react-hooks: 4.6.0(eslint@9.2.0) + eslint-plugin-regexp: 1.15.0(eslint@9.2.0) + eslint-plugin-simple-import-sort: 10.0.0(eslint@9.2.0) + eslint-plugin-typescript-sort-keys: 3.2.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3) + eslint-plugin-unicorn: 48.0.1(eslint@9.2.0) + eslint-plugin-vitest: 0.3.20(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3) + eslint-plugin-yml: 1.11.0(eslint@9.2.0) + eslint-plugin-zod: 1.4.0(eslint@9.2.0) prettier: 3.1.1 ramda: 0.29.1 yaml-eslint-parser: 1.2.2 @@ -4621,39 +8150,26 @@ packages: - typescript - utf-8-validate - vitest - dev: true - /eslint-config-prettier@9.1.0(eslint@9.0.0): - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' + eslint-config-prettier@9.1.0(eslint@9.2.0): dependencies: - eslint: 9.0.0 - dev: true + eslint: 9.2.0 - /eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 is-core-module: 2.13.1 resolve: 1.22.8 transitivePeerDependencies: - supports-color - dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0): - resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.2.0): dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 - eslint: 9.0.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0) - eslint-plugin-import: /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0) + eslint: 9.2.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.2.0))(eslint@9.2.0) + eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0) fast-glob: 3.3.2 get-tsconfig: 4.7.2 is-core-module: 2.13.1 @@ -4663,93 +8179,37 @@ packages: - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - dev: true - - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0): - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - dependencies: - '@typescript-eslint/parser': 6.21.0(eslint@9.0.0)(typescript@5.3.3) - debug: 3.2.7 - eslint: 9.0.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0) - transitivePeerDependencies: - - supports-color - dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.5.0)(eslint-import-resolver-node@0.3.9)(eslint@9.0.0): - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true + eslint-module-utils@2.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.2.0))(eslint@9.2.0): dependencies: - '@typescript-eslint/parser': 7.5.0(eslint@9.0.0)(typescript@5.3.3) debug: 3.2.7 - eslint: 9.0.0 + optionalDependencies: + '@typescript-eslint/parser': 7.8.0(eslint@9.2.0)(typescript@5.3.3) + eslint: 9.2.0 eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.2.0) transitivePeerDependencies: - supports-color - dev: true - /eslint-plugin-ava@14.0.0(eslint@9.0.0): - resolution: {integrity: sha512-XmKT6hppaipwwnLVwwvQliSU6AF1QMHiNoLD5JQfzhUhf0jY7CO0O624fQrE+Y/fTb9vbW8r77nKf7M/oHulxw==} - engines: {node: '>=14.17 <15 || >=16.4'} - peerDependencies: - eslint: '>=8.26.0' + eslint-plugin-ava@14.0.0(eslint@9.2.0): dependencies: enhance-visitors: 1.0.0 - eslint: 9.0.0 - eslint-utils: 3.0.0(eslint@9.0.0) + eslint: 9.2.0 + eslint-utils: 3.0.0(eslint@9.2.0) espree: 9.6.1 espurify: 2.1.1 import-modules: 2.1.0 micro-spelling-correcter: 1.1.1 pkg-dir: 5.0.0 resolve-from: 5.0.0 - dev: true - /eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0)(typescript@5.3.3): - resolution: {integrity: sha512-0Egc0FKOnCRdu3bFEJhfHkdkusIgW0UxdemukkowZQnQsnf12FHSJ7K26b+tZ5pKB7cTyECSaqvEpoIJfplX4g==} - engines: {node: '>=16.0.0'} + eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0)(typescript@5.3.3): dependencies: - '@typescript-eslint/utils': 6.16.0(eslint@9.0.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.1(eslint@9.2.0)(typescript@5.3.3) chance: 1.1.11 debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-i@2.29.1)(eslint@9.0.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.2.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.2.0))(eslint@9.2.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -4768,151 +8228,94 @@ packages: - eslint-plugin-import - supports-color - typescript - dev: true - /eslint-plugin-cypress@2.15.1(eslint@9.0.0): - resolution: {integrity: sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==} - peerDependencies: - eslint: '>= 3.2.1' + eslint-plugin-cypress@2.15.1(eslint@9.2.0): dependencies: - eslint: 9.0.0 + eslint: 9.2.0 globals: 13.24.0 - dev: true - /eslint-plugin-es-x@7.5.0(eslint@9.0.0): - resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '>=8' + eslint-plugin-es-x@7.5.0(eslint@9.2.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) '@eslint-community/regexpp': 4.10.0 - eslint: 9.0.0 - eslint-compat-utils: 0.1.2(eslint@9.0.0) - dev: true + eslint: 9.2.0 + eslint-compat-utils: 0.1.2(eslint@9.2.0) - /eslint-plugin-eslint-comments@3.2.0(eslint@9.0.0): - resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} - engines: {node: '>=6.5.0'} - peerDependencies: - eslint: '>=4.19.1' + eslint-plugin-eslint-comments@3.2.0(eslint@9.2.0): dependencies: escape-string-regexp: 1.0.5 - eslint: 9.0.0 + eslint: 9.2.0 ignore: 5.3.0 - dev: true - /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@9.0.0): - resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@babel/plugin-syntax-flow': ^7.14.5 - '@babel/plugin-transform-react-jsx': ^7.14.9 - eslint: ^8.1.0 + eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.5))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.5))(eslint@9.2.0): dependencies: - '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.4) - eslint: 9.0.0 + '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.5) + eslint: 9.2.0 lodash: 4.17.21 string-natural-compare: 3.0.1 - dev: true - /eslint-plugin-fp@2.3.0(eslint@9.0.0): - resolution: {integrity: sha512-3n2oHibwoIxAht9/+ZaTldhI6brXORgl8oNXqZd+d9xuAQt2SBJ2/aml0oQRMWvXrgsz2WG6wfC++NjzSG3prA==} - engines: {node: '>=4.0.0'} - peerDependencies: - eslint: '>=3' + eslint-plugin-fp@2.3.0(eslint@9.2.0): dependencies: create-eslint-index: 1.0.0 - eslint: 9.0.0 + eslint: 9.2.0 eslint-ast-utils: 1.1.0 lodash: 4.17.21 req-all: 0.1.0 - dev: true - /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@9.0.0): - resolution: {integrity: sha512-ORizX37MelIWLbMyqI7hi8VJMf7A0CskMmYkB+lkCX3aF4pkGV7kwx5bSEb4qx7Yce2rAf9s34HqDRPjGRZPNQ==} - engines: {node: '>=12'} - peerDependencies: - eslint: ^7.2.0 || ^8 + eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0): dependencies: debug: 4.3.4(supports-color@8.1.1) doctrine: 3.0.0 - eslint: 9.0.0 + eslint: 9.2.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.5.0)(eslint-import-resolver-node@0.3.9)(eslint@9.0.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.2.0))(eslint@9.2.0) get-tsconfig: 4.7.2 is-glob: 4.0.3 minimatch: 3.1.2 - semver: 7.6.0 + semver: 7.6.1 transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - dev: true - /eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.19.1)(eslint@9.0.0)(typescript@5.3.3): - resolution: {integrity: sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^5.0.0 || ^6.0.0 - eslint: ^7.0.0 || ^8.0.0 - jest: '*' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - jest: - optional: true + eslint-plugin-jest@28.5.0(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3): dependencies: - '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.21.0)(eslint@9.0.0)(typescript@5.3.3) - '@typescript-eslint/utils': 5.62.0(eslint@9.0.0)(typescript@5.3.3) - eslint: 9.0.0 + '@typescript-eslint/utils': 6.19.1(eslint@9.2.0)(typescript@5.3.3) + eslint: 9.2.0 + optionalDependencies: + '@typescript-eslint/eslint-plugin': 7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3) transitivePeerDependencies: - supports-color - typescript - dev: true - /eslint-plugin-jsdoc@46.9.1(eslint@9.0.0): - resolution: {integrity: sha512-11Ox5LCl2wY7gGkp9UOyew70o9qvii1daAH+h/MFobRVRNcy7sVlH+jm0HQdgcvcru6285GvpjpUyoa051j03Q==} - engines: {node: '>=16'} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint-plugin-jsdoc@46.9.1(eslint@9.2.0): dependencies: '@es-joy/jsdoccomment': 0.41.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 9.0.0 + eslint: 9.2.0 esquery: 1.5.0 is-builtin-module: 3.2.1 - semver: 7.6.0 + semver: 7.6.1 spdx-expression-parse: 4.0.0 transitivePeerDependencies: - supports-color - dev: true - /eslint-plugin-jsonc@2.11.2(eslint@9.0.0): - resolution: {integrity: sha512-F6A0MZhIGRBPOswzzn4tJFXXkPLiLwJaMlQwz/Qj1qx+bV5MCn79vBeJh2ynMmtqqHloi54KDCnsT/KWrcCcnQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '>=6.0.0' + eslint-plugin-jsonc@2.11.2(eslint@9.2.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) - eslint: 9.0.0 - eslint-compat-utils: 0.1.2(eslint@9.0.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) + eslint: 9.2.0 + eslint-compat-utils: 0.1.2(eslint@9.2.0) espree: 9.6.1 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 natural-compare: 1.4.0 - dev: true - /eslint-plugin-jsx-a11y@6.8.0(eslint@9.0.0): - resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint-plugin-jsx-a11y@6.8.0(eslint@9.2.0): dependencies: '@babel/runtime': 7.23.6 aria-query: 5.3.0 @@ -4924,114 +8327,69 @@ packages: damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 es-iterator-helpers: 1.0.15 - eslint: 9.0.0 + eslint: 9.2.0 hasown: 2.0.0 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 minimatch: 3.1.2 object.entries: 1.1.7 object.fromentries: 2.0.7 - dev: true - /eslint-plugin-lodash@7.4.0(eslint@9.0.0): - resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} - engines: {node: '>=10'} - peerDependencies: - eslint: '>=2' + eslint-plugin-lodash@7.4.0(eslint@9.2.0): dependencies: - eslint: 9.0.0 + eslint: 9.2.0 lodash: 4.17.21 - dev: true - /eslint-plugin-mocha@10.2.0(eslint@9.0.0): - resolution: {integrity: sha512-ZhdxzSZnd1P9LqDPF0DBcFLpRIGdh1zkF2JHnQklKQOvrQtT73kdP5K9V2mzvbLR+cCAO9OI48NXK/Ax9/ciCQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - eslint: '>=7.0.0' + eslint-plugin-mocha@10.2.0(eslint@9.2.0): dependencies: - eslint: 9.0.0 - eslint-utils: 3.0.0(eslint@9.0.0) + eslint: 9.2.0 + eslint-utils: 3.0.0(eslint@9.2.0) rambda: 7.5.0 - dev: true - /eslint-plugin-modules-newline@0.0.6: - resolution: {integrity: sha512-69NpBr68U6pmXL+y+KHl/64PwRarceC3/sCNUVxRbe0gPI32SIw8AtdpkqNiJYCa2yMd4lRrkrnU09Yio7KVzA==} - engines: {node: '>=0.10.0'} + eslint-plugin-modules-newline@0.0.6: dependencies: requireindex: 1.1.0 - dev: true - /eslint-plugin-n@16.5.0(eslint@9.0.0): - resolution: {integrity: sha512-Hw02Bj1QrZIlKyj471Tb1jSReTl4ghIMHGuBGiMVmw+s0jOPbI4CBuYpGbZr+tdQ+VAvSK6FDSta3J4ib/SKHQ==} - engines: {node: '>=16.0.0'} - peerDependencies: - eslint: '>=7.0.0' + eslint-plugin-n@16.5.0(eslint@9.2.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) builtins: 5.0.1 - eslint: 9.0.0 - eslint-plugin-es-x: 7.5.0(eslint@9.0.0) + eslint: 9.2.0 + eslint-plugin-es-x: 7.5.0(eslint@9.2.0) get-tsconfig: 4.7.2 ignore: 5.3.0 is-builtin-module: 3.2.1 is-core-module: 2.13.1 minimatch: 3.1.2 resolve: 1.22.8 - semver: 7.6.0 - dev: true + semver: 7.6.1 - /eslint-plugin-prettier@5.1.2(@types/eslint@8.56.7)(eslint-config-prettier@9.1.0)(eslint@9.0.0)(prettier@3.1.1): - resolution: {integrity: sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '*' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true + eslint-plugin-prettier@5.1.2(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.2.0))(eslint@9.2.0)(prettier@3.1.1): dependencies: - '@types/eslint': 8.56.7 - eslint: 9.0.0 - eslint-config-prettier: 9.1.0(eslint@9.0.0) + eslint: 9.2.0 prettier: 3.1.1 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 - dev: true + optionalDependencies: + '@types/eslint': 8.56.10 + eslint-config-prettier: 9.1.0(eslint@9.2.0) - /eslint-plugin-promise@6.1.1(eslint@9.0.0): - resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint-plugin-promise@6.1.1(eslint@9.2.0): dependencies: - eslint: 9.0.0 - dev: true + eslint: 9.2.0 - /eslint-plugin-react-hooks@4.6.0(eslint@9.0.0): - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + eslint-plugin-react-hooks@4.6.0(eslint@9.2.0): dependencies: - eslint: 9.0.0 - dev: true + eslint: 9.2.0 - /eslint-plugin-react@7.33.2(eslint@9.0.0): - resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint-plugin-react@7.33.2(eslint@9.2.0): dependencies: array-includes: 3.1.7 array.prototype.flatmap: 1.3.2 array.prototype.tosorted: 1.1.2 doctrine: 2.1.0 es-iterator-helpers: 1.0.15 - eslint: 9.0.0 + eslint: 9.2.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 @@ -5043,62 +8401,41 @@ packages: resolve: 2.0.0-next.5 semver: 6.3.1 string.prototype.matchall: 4.0.10 - dev: true - /eslint-plugin-regexp@1.15.0(eslint@9.0.0): - resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} - engines: {node: ^12 || >=14} - peerDependencies: - eslint: '>=6.0.0' + eslint-plugin-regexp@1.15.0(eslint@9.2.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) '@eslint-community/regexpp': 4.10.0 comment-parser: 1.4.1 - eslint: 9.0.0 + eslint: 9.2.0 grapheme-splitter: 1.0.4 jsdoctypeparser: 9.0.0 refa: 0.11.0 regexp-ast-analysis: 0.6.0 scslre: 0.2.0 - dev: true - /eslint-plugin-simple-import-sort@10.0.0(eslint@9.0.0): - resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} - peerDependencies: - eslint: '>=5.0.0' + eslint-plugin-simple-import-sort@10.0.0(eslint@9.2.0): dependencies: - eslint: 9.0.0 - dev: true + eslint: 9.2.0 - /eslint-plugin-typescript-sort-keys@3.1.0(@typescript-eslint/parser@6.21.0)(eslint@9.0.0)(typescript@5.3.3): - resolution: {integrity: sha512-rgZeYfEguqKni/V7sbmgFu9/94UDAQd7YqNd0J7Qhw7SdLIGd0iBk2KgpjhRhe2ge4rPSLDIdFWwUiDqBOst6Q==} - engines: {node: '>= 16'} - peerDependencies: - '@typescript-eslint/parser': ^6 - eslint: ^7 || ^8 - typescript: ^3 || ^4 || ^5 + eslint-plugin-typescript-sort-keys@3.2.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3): dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.0.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.21.0(eslint@9.0.0)(typescript@5.3.3) - eslint: 9.0.0 + '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.2.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.8.0(eslint@9.2.0)(typescript@5.3.3) + eslint: 9.2.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 typescript: 5.3.3 transitivePeerDependencies: - supports-color - dev: true - /eslint-plugin-unicorn@48.0.1(eslint@9.0.0): - resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} - engines: {node: '>=16'} - peerDependencies: - eslint: '>=8.44.0' + eslint-plugin-unicorn@48.0.1(eslint@9.2.0): dependencies: '@babel/helper-validator-identifier': 7.22.20 - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) ci-info: 3.9.0 clean-regexp: 1.0.0 - eslint: 9.0.0 + eslint: 9.2.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -5108,114 +8445,63 @@ packages: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 regjsparser: 0.10.0 - semver: 7.6.0 + semver: 7.6.1 strip-indent: 3.0.0 - dev: true - /eslint-plugin-vitest@0.3.20(@typescript-eslint/eslint-plugin@6.19.1)(eslint@9.0.0)(typescript@5.3.3): - resolution: {integrity: sha512-O05k4j9TGMOkkghj9dRgpeLDyOSiVIxQWgNDPfhYPm5ioJsehcYV/zkRLekQs+c8+RBCVXucSED3fYOyy2EoWA==} - engines: {node: ^18.0.0 || >= 20.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': '*' - eslint: '>=8.0.0' - vitest: '*' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - vitest: - optional: true + eslint-plugin-vitest@0.3.20(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3): dependencies: - '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.21.0)(eslint@9.0.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.16.0(eslint@9.0.0)(typescript@5.3.3) - eslint: 9.0.0 + '@typescript-eslint/utils': 6.19.1(eslint@9.2.0)(typescript@5.3.3) + eslint: 9.2.0 + optionalDependencies: + '@typescript-eslint/eslint-plugin': 7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3) transitivePeerDependencies: - supports-color - typescript - dev: true - /eslint-plugin-yml@1.11.0(eslint@9.0.0): - resolution: {integrity: sha512-NBZP1NDGy0u38pY5ieix75jxS9GNOJy9xd4gQa0rU4gWbfEsVhKDwuFaQ6RJpDbv6Lq5TtcAZS/YnAc0oeRw0w==} - engines: {node: ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '>=6.0.0' + eslint-plugin-yml@1.11.0(eslint@9.2.0): dependencies: debug: 4.3.4(supports-color@8.1.1) - eslint: 9.0.0 - eslint-compat-utils: 0.1.2(eslint@9.0.0) + eslint: 9.2.0 + eslint-compat-utils: 0.1.2(eslint@9.2.0) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.2 transitivePeerDependencies: - supports-color - dev: true - /eslint-plugin-zod@1.4.0(eslint@9.0.0): - resolution: {integrity: sha512-i9WzQGw2X5fQcuQh33mA8DQjZJM/yuyZvs1Fc5EyTidX7Ed/g832+1FEQ4u5gtXy+jZ+DVsB5+oMHj4tIOfeZg==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=8.1.0' + eslint-plugin-zod@1.4.0(eslint@9.2.0): dependencies: - eslint: 9.0.0 - dev: true + eslint: 9.2.0 - /eslint-rule-composer@0.3.0: - resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} - engines: {node: '>=4.0.0'} - dev: true + eslint-rule-composer@0.3.0: {} - /eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} + eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 - dev: true - /eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@7.2.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - dev: true - /eslint-scope@8.0.1: - resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-scope@8.0.1: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - dev: true - /eslint-utils@3.0.0(eslint@9.0.0): - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' + eslint-utils@3.0.0(eslint@9.2.0): dependencies: - eslint: 9.0.0 + eslint: 9.2.0 eslint-visitor-keys: 2.1.0 - dev: true - /eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - dev: true + eslint-visitor-keys@2.1.0: {} - /eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true + eslint-visitor-keys@3.4.3: {} - /eslint-visitor-keys@4.0.0: - resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dev: true + eslint-visitor-keys@4.0.0: {} - /eslint@8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true + eslint@8.56.0: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@eslint-community/regexpp': 4.10.0 @@ -5257,19 +8543,16 @@ packages: text-table: 0.2.0 transitivePeerDependencies: - supports-color - dev: true - /eslint@9.0.0: - resolution: {integrity: sha512-IMryZ5SudxzQvuod6rUdIUz29qFItWx281VhtFVc2Psy/ZhlCeD/5DT6lBIJ4H3G+iamGJoTln1v+QSuPw0p7Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true + eslint@9.2.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 3.0.2 - '@eslint/js': 9.0.0 - '@humanwhocodes/config-array': 0.12.3 + '@eslint/js': 9.2.0 + '@humanwhocodes/config-array': 0.13.0 '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.2.4 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 @@ -5285,7 +8568,6 @@ packages: file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - graphemer: 1.4.0 ignore: 5.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 @@ -5300,70 +8582,40 @@ packages: text-table: 0.2.0 transitivePeerDependencies: - supports-color - dev: true - /espree@10.0.1: - resolution: {integrity: sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@10.0.1: dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 4.0.0 - dev: true - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + espree@9.6.1: dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 - dev: true - /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - dev: true + esprima@4.0.1: {} - /espurify@2.1.1: - resolution: {integrity: sha512-zttWvnkhcDyGOhSH4vO2qCBILpdCMv/MX8lp4cqgRkQoDRGK2oZxi2GfWhlP2dIXmk7BaKeOTuzbHhyC68o8XQ==} - dev: true + espurify@2.1.1: {} - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} + esquery@1.5.0: dependencies: estraverse: 5.3.0 - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 - dev: true - /estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - dev: true + estraverse@4.3.0: {} - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + estraverse@5.3.0: {} - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - dev: true + esutils@2.0.3: {} - /eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - dev: true + eventemitter3@5.0.1: {} - /execa@1.0.0: - resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} - engines: {node: '>=6'} + execa@1.0.0: dependencies: cross-spawn: 6.0.5 get-stream: 4.1.0 @@ -5372,11 +8624,8 @@ packages: p-finally: 1.0.0 signal-exit: 3.0.7 strip-eof: 1.0.0 - dev: true - /execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} + execa@5.1.1: dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -5387,11 +8636,8 @@ packages: onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 - dev: true - /execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} + execa@8.0.1: dependencies: cross-spawn: 7.0.3 get-stream: 8.0.1 @@ -5402,11 +8648,8 @@ packages: onetime: 6.0.0 signal-exit: 4.1.0 strip-final-newline: 3.0.0 - dev: true - /expand-brackets@2.1.4: - resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} - engines: {node: '>=0.10.0'} + expand-brackets@2.1.4: dependencies: debug: 2.6.9 define-property: 0.2.5 @@ -5417,34 +8660,21 @@ packages: to-regex: 3.0.2 transitivePeerDependencies: - supports-color - dev: true - /exponential-backoff@3.1.1: - resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} - dev: true + exponential-backoff@3.1.1: {} - /extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} + extend-shallow@2.0.1: dependencies: is-extendable: 0.1.1 - dev: true - /extend-shallow@3.0.2: - resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} - engines: {node: '>=0.10.0'} + extend-shallow@3.0.2: dependencies: assign-symbols: 1.0.0 is-extendable: 1.0.1 - dev: true - /extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - dev: true + extend@3.0.2: {} - /extglob@2.0.4: - resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} - engines: {node: '>=0.10.0'} + extglob@2.0.4: dependencies: array-unique: 0.3.2 define-property: 1.0.0 @@ -5456,408 +8686,234 @@ packages: to-regex: 3.0.2 transitivePeerDependencies: - supports-color - dev: true - /extract-files@11.0.0: - resolution: {integrity: sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==} - engines: {node: ^12.20 || >= 14.13} - dev: true + extract-files@11.0.0: {} - /extsprintf@1.3.0: - resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} - engines: {'0': node >=0.6.0} - dev: true + extsprintf@1.3.0: {} - /fast-decode-uri-component@1.0.1: - resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} - dev: true + fast-decode-uri-component@1.0.1: {} - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true + fast-deep-equal@3.1.3: {} - /fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - dev: true + fast-diff@1.3.0: {} - /fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} + fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 - dev: true - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true + fast-json-stable-stringify@2.1.0: {} - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - dev: true + fast-levenshtein@2.0.6: {} - /fast-printf@1.6.9: - resolution: {integrity: sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==} - engines: {node: '>=10.0'} + fast-printf@1.6.9: dependencies: boolean: 3.2.0 - dev: true - /fast-querystring@1.1.2: - resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} + fast-querystring@1.1.2: dependencies: fast-decode-uri-component: 1.0.1 - dev: true - /fast-url-parser@1.1.3: - resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} + fast-url-parser@1.1.3: dependencies: punycode: 1.4.1 - dev: true - /fastq@1.16.0: - resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} + fastq@1.16.0: dependencies: reusify: 1.0.4 - dev: true - /figures@2.0.0: - resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} - engines: {node: '>=4'} + figures@2.0.0: dependencies: escape-string-regexp: 1.0.5 - dev: true - /figures@6.0.1: - resolution: {integrity: sha512-0oY/olScYD4IhQ8u//gCPA4F3mlTn2dacYmiDm/mbDQvpmLjV4uH+zhsQ5IyXRyvqkvtUkXkNdGvg5OFJTCsuQ==} - engines: {node: '>=18'} + figures@6.0.1: dependencies: is-unicode-supported: 2.0.0 - dev: true - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 - dev: true - /file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} + file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 - dev: true - /filesize@6.4.0: - resolution: {integrity: sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==} - engines: {node: '>= 0.4.0'} - dev: true + filesize@6.4.0: {} - /fill-range@4.0.0: - resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} - engines: {node: '>=0.10.0'} + fill-range@4.0.0: dependencies: extend-shallow: 2.0.1 is-number: 3.0.0 repeat-string: 1.6.1 to-regex-range: 2.1.1 - dev: true - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - requiresBuild: true + fill-range@7.0.1: dependencies: to-regex-range: 5.0.1 - dev: true - /find-cache-dir@2.1.0: - resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} - engines: {node: '>=6'} + find-cache-dir@2.1.0: dependencies: commondir: 1.0.1 make-dir: 2.1.0 pkg-dir: 3.0.0 - dev: true - /find-up-simple@1.0.0: - resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} - engines: {node: '>=18'} - dev: true + find-up-simple@1.0.0: {} - /find-up@2.1.0: - resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} - engines: {node: '>=4'} + find-up@2.1.0: dependencies: locate-path: 2.0.0 - dev: true - /find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} + find-up@3.0.0: dependencies: locate-path: 3.0.0 - dev: true - /find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + find-up@4.1.0: dependencies: locate-path: 5.0.0 path-exists: 4.0.0 - dev: true - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + find-up@5.0.0: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - dev: true - /find-versions@6.0.0: - resolution: {integrity: sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==} - engines: {node: '>=18'} + find-versions@6.0.0: dependencies: semver-regex: 4.0.5 super-regex: 1.0.0 - dev: true - /flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@3.2.0: dependencies: flatted: 3.2.9 keyv: 4.5.4 rimraf: 3.0.2 - dev: true - /flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} + flat-cache@4.0.1: dependencies: flatted: 3.2.9 keyv: 4.5.4 - dev: true - /flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - dev: true + flat@5.0.2: {} - /flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} - dev: true + flatted@3.2.9: {} - /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + for-each@0.3.3: dependencies: is-callable: 1.2.7 - dev: true - /for-in@1.0.2: - resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} - engines: {node: '>=0.10.0'} - dev: true + for-in@1.0.2: {} - /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} + foreground-child@3.1.1: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 - dev: true - /forever-agent@0.6.1: - resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} - dev: true + forever-agent@0.6.1: {} - /form-data@2.3.3: - resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} - engines: {node: '>= 0.12'} + form-data@2.3.3: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 - dev: true - /fragment-cache@0.2.1: - resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} - engines: {node: '>=0.10.0'} + fragment-cache@0.2.1: dependencies: map-cache: 0.2.2 - dev: true - /from2@2.3.0: - resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} + from2@2.3.0: dependencies: inherits: 2.0.4 readable-stream: 2.3.8 - dev: true - /fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} + fs-extra@11.2.0: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 - dev: true - /fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} + fs-minipass@2.1.0: dependencies: minipass: 3.3.6 - dev: true - /fs-minipass@3.0.3: - resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + fs-minipass@3.0.3: dependencies: minipass: 7.0.4 - dev: true - /fs-readdir-recursive@1.1.0: - resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==} - dev: true + fs-readdir-recursive@1.1.0: {} - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: true + fs.realpath@1.0.0: {} - /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true + fsevents@2.3.3: optional: true - /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - dev: true + function-bind@1.1.2: {} - /function-timeout@1.0.1: - resolution: {integrity: sha512-6yPMImFFuaMPNaTMTBuolA8EanHJWF5Vju0NHpObRURT105J6x1Mf2a7J4P7Sqk2xDxv24N5L0RatEhTBhNmdA==} - engines: {node: '>=18'} - dev: true + function-timeout@1.0.1: {} - /function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} + function.prototype.name@1.1.6: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 functions-have-names: 1.2.3 - dev: true - /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true + functions-have-names@1.2.3: {} - /gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - dev: true + gensync@1.0.0-beta.2: {} - /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - dev: true + get-caller-file@2.0.5: {} - /get-east-asian-width@1.2.0: - resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} - engines: {node: '>=18'} - dev: true + get-east-asian-width@1.2.0: {} - /get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - dev: true + get-func-name@2.0.2: {} - /get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + get-intrinsic@1.2.2: dependencies: function-bind: 1.1.2 has-proto: 1.0.1 has-symbols: 1.0.3 hasown: 2.0.0 - dev: true - /get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - dev: true + get-package-type@0.1.0: {} - /get-set-props@0.1.0: - resolution: {integrity: sha512-7oKuKzAGKj0ag+eWZwcGw2fjiZ78tXnXQoBgY0aU7ZOxTu4bB7hSuQSDgtKy978EDH062P5FmD2EWiDpQS9K9Q==} - engines: {node: '>=0.10.0'} - dev: true + get-set-props@0.1.0: {} - /get-stream@4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} - engines: {node: '>=6'} + get-stream@4.1.0: dependencies: pump: 3.0.0 - dev: true - /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - dev: true + get-stream@6.0.1: {} - /get-stream@7.0.1: - resolution: {integrity: sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==} - engines: {node: '>=16'} - dev: true + get-stream@7.0.1: {} - /get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - dev: true + get-stream@8.0.1: {} - /get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} + get-symbol-description@1.0.0: dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 - dev: true - /get-tsconfig@4.7.2: - resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + get-tsconfig@4.7.2: dependencies: resolve-pkg-maps: 1.0.0 - dev: true - /get-urls@10.0.1: - resolution: {integrity: sha512-5usUMF4FE0cTS7yUuRvBsB4tSs5u8KFn7v01+IDGL/18tuoADu5ehthqw+y2EHnJsWhsp1443K5P+C/XWZQ04g==} - engines: {node: '>=10.12.0'} + get-urls@10.0.1: dependencies: normalize-url: 5.3.1 url-regex-safe: 2.1.0 transitivePeerDependencies: - supports-color - dev: true - /get-value@2.0.6: - resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} - engines: {node: '>=0.10.0'} - dev: true + get-value@2.0.6: {} - /getpass@0.1.7: - resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + getpass@0.1.7: dependencies: assert-plus: 1.0.0 - dev: true - /git-log-parser@1.2.0: - resolution: {integrity: sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==} + git-log-parser@1.2.0: dependencies: argv-formatter: 1.0.0 spawn-error-forwarder: 1.0.0 @@ -5865,12 +8921,8 @@ packages: stream-combiner2: 1.1.1 through2: 2.0.5 traverse: 0.6.8 - dev: true - /gitdown@3.1.5: - resolution: {integrity: sha512-nvdK4qp8yQdzbdHgnEUuC0ubfAvv27fHNpsX9/0FLJvAJk687zGkptRNvls4U5UNYMKdunIL84QR+qQKyHMDaw==} - engines: {node: '>=10'} - hasBin: true + gitdown@3.1.5: dependencies: bluebird: 3.7.2 deadlink: 1.1.3 @@ -5887,43 +8939,29 @@ packages: yargs: 16.2.0 transitivePeerDependencies: - supports-color - dev: true - /gitinfo@2.4.0: - resolution: {integrity: sha512-cQU3oInRu7+LaPwFNlppP0NmJa1SBdZtNCUoo+XT/nGRbmwlhssbjkN7gQmfQZAuMxphghx0ACfbIQmMBmPT2w==} + gitinfo@2.4.0: dependencies: ini: 1.3.8 ramda: 0.26.1 - dev: true - - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 - dev: true - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + glob-parent@6.0.2: dependencies: is-glob: 4.0.3 - dev: true - /glob@10.3.12: - resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true + glob@10.3.13: dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 minimatch: 9.0.3 minipass: 7.0.4 path-scurry: 1.10.2 - dev: true - /glob@7.1.7: - resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + glob@7.1.7: dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -5931,10 +8969,8 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: true - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + glob@7.2.3: dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -5942,51 +8978,30 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: true - /glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} + glob@8.1.0: dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 minimatch: 5.0.1 once: 1.4.0 - dev: true - /globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - dev: true + globals@11.12.0: {} - /globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} + globals@13.24.0: dependencies: type-fest: 0.20.2 - dev: true - /globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} - dev: true + globals@14.0.0: {} - /globals@15.0.0: - resolution: {integrity: sha512-m/C/yR4mjO6pXDTm9/R/SpYTAIyaUB4EOzcaaMEl7mds7Mshct9GfejiJNQGjHHbdMPey13Kpu4TMbYi9ex1pw==} - engines: {node: '>=18'} - dev: true + globals@15.2.0: {} - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} + globalthis@1.0.3: dependencies: define-properties: 1.2.1 - dev: true - /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + globby@11.1.0: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -5994,11 +9009,8 @@ packages: ignore: 5.3.0 merge2: 1.4.1 slash: 3.0.0 - dev: true - /globby@14.0.0: - resolution: {integrity: sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==} - engines: {node: '>=18'} + globby@14.0.0: dependencies: '@sindresorhus/merge-streams': 1.0.0 fast-glob: 3.3.2 @@ -6006,45 +9018,26 @@ packages: path-type: 5.0.0 slash: 5.1.0 unicorn-magic: 0.1.0 - dev: true - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.0.1: dependencies: get-intrinsic: 1.2.2 - dev: true - /graceful-fs@4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - dev: true + graceful-fs@4.2.10: {} - /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: true + graceful-fs@4.2.11: {} - /grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - dev: true + grapheme-splitter@1.0.4: {} - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - dev: true + graphemer@1.4.0: {} - /graphql-config@4.5.0(@types/node@20.12.5)(graphql@16.8.1): - resolution: {integrity: sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==} - engines: {node: '>= 10.0.0'} - peerDependencies: - cosmiconfig-toml-loader: ^1.0.0 - graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - peerDependenciesMeta: - cosmiconfig-toml-loader: - optional: true + graphql-config@4.5.0(@types/node@20.12.11)(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.12.5)(graphql@16.8.1) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.12.11)(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 @@ -6057,36 +9050,19 @@ packages: - bufferutil - encoding - utf-8-validate - dev: true - /graphql-depth-limit@1.1.0(graphql@16.8.1): - resolution: {integrity: sha512-+3B2BaG8qQ8E18kzk9yiSdAa75i/hnnOwgSeAxVJctGQPvmeiLtqKOYF6HETCyRjiF7Xfsyal0HbLlxCQkgkrw==} - engines: {node: '>=6.0.0'} - peerDependencies: - graphql: '*' + graphql-depth-limit@1.1.0(graphql@16.8.1): dependencies: arrify: 1.0.1 graphql: 16.8.1 - dev: true - /graphql-ws@5.12.1(graphql@16.8.1): - resolution: {integrity: sha512-umt4f5NnMK46ChM2coO36PTFhHouBrK9stWWBczERguwYrGnPNxJ9dimU6IyOBfOkC6Izhkg4H8+F51W/8CYDg==} - engines: {node: '>=10'} - peerDependencies: - graphql: '>=0.11 <=16' + graphql-ws@5.12.1(graphql@16.8.1): dependencies: graphql: 16.8.1 - dev: true - /graphql@16.8.1: - resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} - engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} - dev: true + graphql@16.8.1: {} - /handlebars@4.7.8: - resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} - engines: {node: '>=0.4.7'} - hasBin: true + handlebars@4.7.8: dependencies: minimist: 1.2.8 neo-async: 2.6.2 @@ -6094,134 +9070,74 @@ packages: wordwrap: 1.0.0 optionalDependencies: uglify-js: 3.17.4 - dev: true - /har-schema@2.0.0: - resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} - engines: {node: '>=4'} - dev: true + har-schema@2.0.0: {} - /har-validator@5.1.5: - resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} - engines: {node: '>=6'} - deprecated: this library is no longer supported + har-validator@5.1.5: dependencies: ajv: 6.12.6 har-schema: 2.0.0 - dev: true - /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true + has-bigints@1.0.2: {} - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - dev: true + has-flag@3.0.0: {} - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + has-flag@4.0.0: {} - /has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + has-property-descriptors@1.0.1: dependencies: get-intrinsic: 1.2.2 - dev: true - /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} - dev: true + has-proto@1.0.1: {} - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - dev: true + has-symbols@1.0.3: {} - /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} + has-tostringtag@1.0.0: dependencies: has-symbols: 1.0.3 - dev: true - /has-value@0.3.1: - resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} - engines: {node: '>=0.10.0'} + has-value@0.3.1: dependencies: get-value: 2.0.6 has-values: 0.1.4 isobject: 2.1.0 - dev: true - /has-value@1.0.0: - resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} - engines: {node: '>=0.10.0'} + has-value@1.0.0: dependencies: get-value: 2.0.6 has-values: 1.0.0 isobject: 3.0.1 - dev: true - /has-values@0.1.4: - resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} - engines: {node: '>=0.10.0'} - dev: true + has-values@0.1.4: {} - /has-values@1.0.0: - resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} - engines: {node: '>=0.10.0'} + has-values@1.0.0: dependencies: is-number: 3.0.0 kind-of: 4.0.0 - dev: true - /hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} - engines: {node: '>= 0.4'} + hasown@2.0.0: dependencies: function-bind: 1.1.2 - dev: true - /he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - dev: true + he@1.2.0: {} - /highlight.js@10.7.3: - resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} - dev: true + highlight.js@10.7.3: {} - /homedir-polyfill@1.0.3: - resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} - engines: {node: '>=0.10.0'} + homedir-polyfill@1.0.3: dependencies: parse-passwd: 1.0.0 - dev: true - /hook-std@3.0.0: - resolution: {integrity: sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true + hook-std@3.0.0: {} - /hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - dev: true + hosted-git-info@2.8.9: {} - /hosted-git-info@7.0.1: - resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} - engines: {node: ^16.14.0 || >=18.0.0} + hosted-git-info@7.0.1: dependencies: - lru-cache: 10.1.0 - dev: true + lru-cache: 10.2.0 - /html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - dev: true + html-escaper@2.0.2: {} - /htmlparser2@3.10.1: - resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} + htmlparser2@3.10.1: dependencies: domelementtype: 1.3.1 domhandler: 2.4.2 @@ -6229,702 +9145,394 @@ packages: entities: 1.1.2 inherits: 2.0.4 readable-stream: 3.6.2 - dev: true - /http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - dev: true + http-cache-semantics@4.1.1: {} - /http-proxy-agent@7.0.0: - resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} - engines: {node: '>= 14'} + http-proxy-agent@7.0.0: dependencies: agent-base: 7.1.0 debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - dev: true - /http-signature@1.2.0: - resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} - engines: {node: '>=0.8', npm: '>=1.3.7'} + http-signature@1.2.0: dependencies: assert-plus: 1.0.0 jsprim: 1.4.2 sshpk: 1.18.0 - dev: true - /https-proxy-agent@7.0.2: - resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} - engines: {node: '>= 14'} + https-proxy-agent@7.0.2: dependencies: agent-base: 7.1.0 debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - dev: true - /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - dev: true + human-signals@2.1.0: {} - /human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - dev: true + human-signals@5.0.0: {} - /husky@9.0.11: - resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} - engines: {node: '>=18'} - hasBin: true - dev: true + husky@9.0.11: {} - /iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - requiresBuild: true + iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 - dev: true optional: true - /ignore@5.3.0: - resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} - engines: {node: '>= 4'} - dev: true + ignore@5.3.0: {} - /import-fresh@2.0.0: - resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} - engines: {node: '>=4'} + ignore@5.3.1: {} + + import-fresh@2.0.0: dependencies: caller-path: 2.0.0 resolve-from: 3.0.0 - dev: true - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + import-fresh@3.3.0: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - dev: true - /import-from-esm@1.3.3: - resolution: {integrity: sha512-U3Qt/CyfFpTUv6LOP2jRTLYjphH6zg3okMfHbyqRa/W2w6hr8OsJWVggNlR4jxuojQy81TgTJTxgSkyoteRGMQ==} - engines: {node: '>=16.20'} + import-from-esm@1.3.3: dependencies: debug: 4.3.4(supports-color@8.1.1) import-meta-resolve: 4.0.0 transitivePeerDependencies: - supports-color - dev: true - /import-meta-resolve@4.0.0: - resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} - dev: true + import-meta-resolve@4.0.0: {} - /import-modules@2.1.0: - resolution: {integrity: sha512-8HEWcnkbGpovH9yInoisxaSoIg9Brbul+Ju3Kqe2UsYDUBJD/iQjSgEj0zPcTDPKfPp2fs5xlv1i+JSye/m1/A==} - engines: {node: '>=8'} - dev: true + import-modules@2.1.0: {} - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - dev: true + imurmurhash@0.1.4: {} - /indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - dev: true + indent-string@4.0.0: {} - /indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - dev: true + indent-string@5.0.0: {} - /index-to-position@0.1.2: - resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==} - engines: {node: '>=18'} - dev: true + index-to-position@0.1.2: {} - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + inflight@1.0.6: dependencies: once: 1.4.0 wrappy: 1.0.2 - dev: true - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true + inherits@2.0.4: {} - /ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: true + ini@1.3.8: {} - /install-artifact-from-github@1.3.5: - resolution: {integrity: sha512-gZHC7f/cJgXz7MXlHFBxPVMsvIbev1OQN1uKQYKVJDydGNm9oYf9JstbU4Atnh/eSvk41WtEovoRm+8IF686xg==} - hasBin: true - dev: true + install-artifact-from-github@1.3.5: {} - /internal-slot@1.0.6: - resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} - engines: {node: '>= 0.4'} + internal-slot@1.0.6: dependencies: get-intrinsic: 1.2.2 hasown: 2.0.0 side-channel: 1.0.4 - dev: true - /into-stream@7.0.0: - resolution: {integrity: sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==} - engines: {node: '>=12'} + into-stream@7.0.0: dependencies: from2: 2.3.0 p-is-promise: 3.0.0 - dev: true - /ip-regex@4.3.0: - resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==} - engines: {node: '>=8'} - dev: true + ip-regex@4.3.0: {} - /ip@2.0.1: - resolution: {integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==} - dev: true + ip@2.0.1: {} - /is-accessor-descriptor@1.0.1: - resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} - engines: {node: '>= 0.10'} + is-accessor-descriptor@1.0.1: dependencies: hasown: 2.0.0 - dev: true - /is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} + is-arguments@1.1.1: dependencies: call-bind: 1.0.5 has-tostringtag: 1.0.0 - dev: true - /is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + is-array-buffer@3.0.2: dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 is-typed-array: 1.1.12 - dev: true - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: true + is-arrayish@0.2.1: {} - /is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} - engines: {node: '>= 0.4'} + is-async-function@2.0.0: dependencies: has-tostringtag: 1.0.0 - dev: true - /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + is-bigint@1.0.4: dependencies: has-bigints: 1.0.2 - dev: true - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - requiresBuild: true + is-binary-path@2.1.0: dependencies: binary-extensions: 2.2.0 - dev: true - /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} + is-boolean-object@1.1.2: dependencies: call-bind: 1.0.5 has-tostringtag: 1.0.0 - dev: true - /is-buffer@1.1.6: - resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} - dev: true + is-buffer@1.1.6: {} - /is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} + is-builtin-module@3.2.1: dependencies: builtin-modules: 3.3.0 - /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - dev: true + is-callable@1.2.7: {} - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + is-core-module@2.13.1: dependencies: hasown: 2.0.0 - dev: true - /is-data-descriptor@1.0.1: - resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} - engines: {node: '>= 0.4'} + is-data-descriptor@1.0.1: dependencies: hasown: 2.0.0 - dev: true - /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} + is-date-object@1.0.5: dependencies: has-tostringtag: 1.0.0 - dev: true - /is-descriptor@0.1.7: - resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} - engines: {node: '>= 0.4'} + is-descriptor@0.1.7: dependencies: is-accessor-descriptor: 1.0.1 is-data-descriptor: 1.0.1 - dev: true - /is-descriptor@1.0.3: - resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} - engines: {node: '>= 0.4'} + is-descriptor@1.0.3: dependencies: is-accessor-descriptor: 1.0.1 is-data-descriptor: 1.0.1 - dev: true - /is-directory@0.3.1: - resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} - engines: {node: '>=0.10.0'} - dev: true + is-directory@0.3.1: {} - /is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - dev: true + is-docker@2.2.1: {} - /is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - dev: true + is-extendable@0.1.1: {} - /is-extendable@1.0.1: - resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} - engines: {node: '>=0.10.0'} + is-extendable@1.0.1: dependencies: is-plain-object: 2.0.4 - dev: true - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - dev: true + is-extglob@2.1.1: {} - /is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + is-finalizationregistry@1.0.2: dependencies: call-bind: 1.0.5 - dev: true - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - dev: true + is-fullwidth-code-point@3.0.0: {} - /is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} - dev: true + is-fullwidth-code-point@4.0.0: {} - /is-fullwidth-code-point@5.0.0: - resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} - engines: {node: '>=18'} + is-fullwidth-code-point@5.0.0: dependencies: get-east-asian-width: 1.2.0 - dev: true - /is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} + is-generator-function@1.0.10: dependencies: has-tostringtag: 1.0.0 - dev: true - /is-get-set-prop@1.0.0: - resolution: {integrity: sha512-DvAYZ1ZgGUz4lzxKMPYlt08qAUqyG9ckSg2pIjfvcQ7+pkVNUHk8yVLXOnCLe5WKXhLop8oorWFBJHpwWQpszQ==} + is-get-set-prop@1.0.0: dependencies: get-set-props: 0.1.0 lowercase-keys: 1.0.1 - dev: true - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 - dev: true - /is-js-type@2.0.0: - resolution: {integrity: sha512-Aj13l47+uyTjlQNHtXBV8Cji3jb037vxwMWCgopRR8h6xocgBGW3qG8qGlIOEmbXQtkKShKuBM9e8AA1OeQ+xw==} + is-js-type@2.0.0: dependencies: js-types: 1.0.0 - dev: true - /is-lambda@1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - dev: true + is-lambda@1.0.1: {} - /is-map@2.0.2: - resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} - dev: true + is-map@2.0.2: {} - /is-nan@1.3.2: - resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} - engines: {node: '>= 0.4'} + is-nan@1.3.2: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 - dev: true - /is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} - dev: true + is-negative-zero@2.0.2: {} - /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} + is-number-object@1.0.7: dependencies: has-tostringtag: 1.0.0 - dev: true - /is-number@3.0.0: - resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} - engines: {node: '>=0.10.0'} + is-number@3.0.0: dependencies: kind-of: 3.2.2 - dev: true - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - requiresBuild: true - dev: true + is-number@7.0.0: {} - /is-obj-prop@1.0.0: - resolution: {integrity: sha512-5Idb61slRlJlsAzi0Wsfwbp+zZY+9LXKUAZpvT/1ySw+NxKLRWfa0Bzj+wXI3fX5O9hiddm5c3DAaRSNP/yl2w==} + is-obj-prop@1.0.0: dependencies: lowercase-keys: 1.0.1 obj-props: 1.4.0 - dev: true - /is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - dev: true + is-obj@2.0.0: {} - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - dev: true + is-path-inside@3.0.3: {} - /is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - dev: true + is-plain-obj@2.1.0: {} - /is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} + is-plain-object@2.0.4: dependencies: isobject: 3.0.1 - dev: true - /is-proto-prop@2.0.0: - resolution: {integrity: sha512-jl3NbQ/fGLv5Jhan4uX+Ge9ohnemqyblWVVCpAvtTQzNFvV2xhJq+esnkIbYQ9F1nITXoLfDDQLp7LBw/zzncg==} + is-proto-prop@2.0.0: dependencies: lowercase-keys: 1.0.1 proto-props: 2.0.0 - dev: true - /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} + is-regex@1.1.4: dependencies: call-bind: 1.0.5 has-tostringtag: 1.0.0 - dev: true - /is-set@2.0.2: - resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} - dev: true + is-set@2.0.2: {} - /is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + is-shared-array-buffer@1.0.2: dependencies: call-bind: 1.0.5 - dev: true - /is-stream@1.1.0: - resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} - engines: {node: '>=0.10.0'} - dev: true + is-stream@1.1.0: {} - /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - dev: true + is-stream@2.0.1: {} - /is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true + is-stream@3.0.0: {} - /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} + is-string@1.0.7: dependencies: has-tostringtag: 1.0.0 - dev: true - /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} + is-symbol@1.0.4: dependencies: has-symbols: 1.0.3 - dev: true - /is-text-path@2.0.0: - resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} - engines: {node: '>=8'} + is-text-path@2.0.0: dependencies: text-extensions: 2.4.0 - dev: true - /is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} - engines: {node: '>= 0.4'} + is-typed-array@1.1.12: dependencies: which-typed-array: 1.1.13 - dev: true - /is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - dev: true + is-typedarray@1.0.0: {} - /is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - dev: true + is-unicode-supported@0.1.0: {} - /is-unicode-supported@2.0.0: - resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} - engines: {node: '>=18'} - dev: true + is-unicode-supported@2.0.0: {} - /is-weakmap@2.0.1: - resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} - dev: true + is-weakmap@2.0.1: {} - /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + is-weakref@1.0.2: dependencies: call-bind: 1.0.5 - dev: true - /is-weakset@2.0.2: - resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + is-weakset@2.0.2: dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 - dev: true - /is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - dev: true + is-windows@1.0.2: {} - /is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} + is-wsl@2.2.0: dependencies: is-docker: 2.2.1 - dev: true - /isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: true + isarray@1.0.0: {} - /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true + isarray@2.0.5: {} - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true + isexe@2.0.0: {} - /isexe@3.1.1: - resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} - engines: {node: '>=16'} - dev: true + isexe@3.1.1: {} - /isobject@2.1.0: - resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} - engines: {node: '>=0.10.0'} + isobject@2.1.0: dependencies: isarray: 1.0.0 - dev: true - /isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - dev: true + isobject@3.0.1: {} - /isomorphic-ws@5.0.0(ws@8.13.0): - resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} - peerDependencies: - ws: '*' + isomorphic-ws@5.0.0(ws@8.13.0): dependencies: - ws: 8.13.0 - dev: true - - /isomorphic-ws@5.0.0(ws@8.16.0): - resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} - peerDependencies: - ws: '*' + ws: 8.13.0 + + isomorphic-ws@5.0.0(ws@8.16.0): dependencies: ws: 8.16.0 - dev: true - /isstream@0.1.2: - resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} - dev: true + isstream@0.1.2: {} - /issue-parser@7.0.0: - resolution: {integrity: sha512-jgAw78HO3gs9UrKqJNQvfDj9Ouy8Mhu40fbEJ8yXff4MW8+/Fcn9iFjyWUQ6SKbX8ipPk3X5A3AyfYHRu6uVLw==} - engines: {node: ^18.17 || >=20.6.1} + issue-parser@7.0.0: dependencies: lodash.capitalize: 4.2.1 lodash.escaperegexp: 4.1.2 lodash.isplainobject: 4.0.6 lodash.isstring: 4.0.1 lodash.uniqby: 4.7.0 - dev: true - /istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - dev: true + istanbul-lib-coverage@3.2.2: {} - /istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} + istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/parser': 7.23.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: true - /istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} + istanbul-lib-report@3.0.1: dependencies: istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 - dev: true - /istanbul-reports@3.1.6: - resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} - engines: {node: '>=8'} + istanbul-reports@3.1.6: dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - dev: true - /iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + iterator.prototype@1.1.2: dependencies: define-properties: 1.2.1 get-intrinsic: 1.2.2 has-symbols: 1.0.3 reflect.getprototypeof: 1.0.4 set-function-name: 2.0.1 - dev: true - /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} + jackspeak@2.3.6: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - dev: true - /java-properties@1.0.2: - resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==} - engines: {node: '>= 0.6.0'} - dev: true + java-properties@1.0.2: {} - /jiti@1.17.1: - resolution: {integrity: sha512-NZIITw8uZQFuzQimqjUxIrIcEdxYDFIe/0xYfIlVXTkiBjjyBEvgasj5bb0/cHtPRD/NziPbT312sFrkI5ALpw==} - hasBin: true - dev: true + jiti@1.17.1: {} - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: true + js-tokens@4.0.0: {} - /js-types@1.0.0: - resolution: {integrity: sha512-bfwqBW9cC/Lp7xcRpug7YrXm0IVw+T9e3g4mCYnv0Pjr3zIzU9PCQElYU9oSGAWzXlbdl9X5SAMPejO9sxkeUw==} - engines: {node: '>=0.10.0'} - dev: true + js-types@1.0.0: {} - /js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true + js-yaml@3.14.1: dependencies: argparse: 1.0.10 esprima: 4.0.1 - dev: true - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true + js-yaml@4.1.0: dependencies: argparse: 2.0.1 - dev: true - /jsbn@0.1.1: - resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} - dev: true + jsbn@0.1.1: {} - /jsdoc-type-pratt-parser@4.0.0: - resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} - engines: {node: '>=12.0.0'} + jsdoc-type-pratt-parser@4.0.0: {} - /jsdoctypeparser@9.0.0: - resolution: {integrity: sha512-jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==} - engines: {node: '>=10'} - hasBin: true - dev: true + jsdoctypeparser@9.0.0: {} - /jsdom@6.5.1: - resolution: {integrity: sha512-KeCN3yqR+MmjAZDnVZgIaL2tP9BxSFlsYZw9Z+zy64+jJzHc1m8ruccb83Qe8AG0xKUjpo2kxEGFCMtiF4MmAg==} + jsdom@6.5.1: dependencies: acorn: 2.7.0 acorn-globals: 1.0.9 @@ -6942,181 +9550,101 @@ packages: xml-name-validator: 2.0.1 xmlhttprequest: 1.8.0 xtend: 4.0.2 - dev: true - /jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - dev: true + jsesc@0.5.0: {} - /jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - dev: true + jsesc@2.5.2: {} - /jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - dev: true + jsesc@3.0.2: {} - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: true + json-buffer@3.0.1: {} - /json-parse-better-errors@1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - dev: true + json-parse-better-errors@1.0.2: {} - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true + json-parse-even-better-errors@2.3.1: {} - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true + json-schema-traverse@0.4.1: {} - /json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - dev: true + json-schema@0.4.0: {} - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - dev: true + json-stable-stringify-without-jsonify@1.0.1: {} - /json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - dev: true + json-stringify-safe@5.0.1: {} - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true + json5@1.0.2: dependencies: minimist: 1.2.8 - dev: true - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - dev: true + json5@2.2.3: {} - /jsonc-eslint-parser@2.4.0: - resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + jsonc-eslint-parser@2.4.0: dependencies: acorn: 8.11.3 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - semver: 7.6.0 - dev: true + semver: 7.6.1 - /jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsonfile@6.1.0: dependencies: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 - dev: true - /jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} - dev: true + jsonparse@1.3.1: {} - /jsprim@1.4.2: - resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} - engines: {node: '>=0.6.0'} + jsprim@1.4.2: dependencies: assert-plus: 1.0.0 extsprintf: 1.3.0 json-schema: 0.4.0 verror: 1.10.0 - dev: true - /jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} + jsx-ast-utils@3.3.5: dependencies: array-includes: 3.1.7 array.prototype.flat: 1.3.2 object.assign: 4.1.5 object.values: 1.1.7 - dev: true - /keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + keyv@4.5.4: dependencies: json-buffer: 3.0.1 - dev: true - /kind-of@3.2.2: - resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} - engines: {node: '>=0.10.0'} + kind-of@3.2.2: dependencies: is-buffer: 1.1.6 - dev: true - /kind-of@4.0.0: - resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} - engines: {node: '>=0.10.0'} + kind-of@4.0.0: dependencies: is-buffer: 1.1.6 - dev: true - /kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - dev: true + kind-of@6.0.3: {} - /language-subtag-registry@0.3.22: - resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} - dev: true + language-subtag-registry@0.3.22: {} - /language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} + language-tags@1.0.9: dependencies: language-subtag-registry: 0.3.22 - dev: true - /levn@0.3.0: - resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} - engines: {node: '>= 0.8.0'} + levn@0.3.0: dependencies: prelude-ls: 1.1.2 type-check: 0.3.2 - dev: true - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - dev: true - /lilconfig@3.0.0: - resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} - engines: {node: '>=14'} - dev: true + lilconfig@3.0.0: {} - /line-column-path@2.0.0: - resolution: {integrity: sha512-nz3A+vi4bElhwd62E9+Qk/f9BDYLSzD/4Hy1rir0I4GnMxSTezSymzANyph5N1PgRZ3sSbA+yR5hOuXxc71a0Q==} - engines: {node: '>=8'} + line-column-path@2.0.0: dependencies: type-fest: 0.4.1 - dev: true - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true + lines-and-columns@1.2.4: {} - /lint-staged@15.2.2: - resolution: {integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==} - engines: {node: '>=18.12.0'} - hasBin: true + lint-staged@15.2.2: dependencies: chalk: 5.3.0 commander: 11.1.0 @@ -7130,11 +9658,8 @@ packages: yaml: 2.3.4 transitivePeerDependencies: - supports-color - dev: true - /listr2@8.0.1: - resolution: {integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==} - engines: {node: '>=18.0.0'} + listr2@8.0.1: dependencies: cli-truncate: 4.0.0 colorette: 2.0.20 @@ -7142,177 +9667,97 @@ packages: log-update: 6.0.0 rfdc: 1.3.0 wrap-ansi: 9.0.0 - dev: true - /load-json-file@4.0.0: - resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} - engines: {node: '>=4'} + load-json-file@4.0.0: dependencies: graceful-fs: 4.2.11 parse-json: 4.0.0 pify: 3.0.0 strip-bom: 3.0.0 - dev: true - /locate-path@2.0.0: - resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} - engines: {node: '>=4'} + locate-path@2.0.0: dependencies: p-locate: 2.0.0 path-exists: 3.0.0 - dev: true - /locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} + locate-path@3.0.0: dependencies: p-locate: 3.0.0 path-exists: 3.0.0 - dev: true - /locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + locate-path@5.0.0: dependencies: p-locate: 4.1.0 - dev: true - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + locate-path@6.0.0: dependencies: p-locate: 5.0.0 - dev: true - /lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - dev: true + lodash-es@4.17.21: {} - /lodash.capitalize@4.2.1: - resolution: {integrity: sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==} - dev: true + lodash.capitalize@4.2.1: {} - /lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - dev: true + lodash.debounce@4.0.8: {} - /lodash.defaultsdeep@4.6.1: - resolution: {integrity: sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==} - dev: true + lodash.defaultsdeep@4.6.1: {} - /lodash.escaperegexp@4.1.2: - resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} - dev: true + lodash.escaperegexp@4.1.2: {} - /lodash.get@4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - dev: true + lodash.get@4.4.2: {} - /lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - dev: true + lodash.isplainobject@4.0.6: {} - /lodash.isstring@4.0.1: - resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} - dev: true + lodash.isstring@4.0.1: {} - /lodash.lowercase@4.3.0: - resolution: {integrity: sha512-UcvP1IZYyDKyEL64mmrwoA1AbFu5ahojhTtkOUr1K9dbuxzS9ev8i4TxMMGCqRC9TE8uDaSoufNAXxRPNTseVA==} - dev: true + lodash.lowercase@4.3.0: {} - /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true + lodash.merge@4.6.2: {} - /lodash.uniqby@4.7.0: - resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} - dev: true + lodash.uniqby@4.7.0: {} - /lodash.zip@4.2.0: - resolution: {integrity: sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==} - dev: true + lodash.zip@4.2.0: {} - /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true + lodash@4.17.21: {} - /log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} + log-symbols@4.1.0: dependencies: chalk: 4.1.2 is-unicode-supported: 0.1.0 - dev: true - /log-update@6.0.0: - resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} - engines: {node: '>=18'} + log-update@6.0.0: dependencies: ansi-escapes: 6.2.0 cli-cursor: 4.0.0 slice-ansi: 7.1.0 strip-ansi: 7.1.0 wrap-ansi: 9.0.0 - dev: true - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 - dev: true - /loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + loupe@2.3.7: dependencies: get-func-name: 2.0.2 - dev: true - - /lowercase-keys@1.0.1: - resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} - engines: {node: '>=0.10.0'} - dev: true - /lru-cache@10.1.0: - resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} - engines: {node: 14 || >=16.14} - dev: true + lowercase-keys@1.0.1: {} - /lru-cache@10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} - engines: {node: 14 || >=16.14} - dev: true + lru-cache@10.2.0: {} - /lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 - dev: true - - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - /make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} + make-dir@2.1.0: dependencies: pify: 4.0.1 semver: 5.7.2 - dev: true - /make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} + make-dir@4.0.0: dependencies: - semver: 7.6.0 - dev: true + semver: 7.6.1 - /make-fetch-happen@13.0.0: - resolution: {integrity: sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==} - engines: {node: ^16.14.0 || >=18.0.0} + make-fetch-happen@13.0.0: dependencies: '@npmcli/agent': 2.2.0 cacache: 18.0.1 @@ -7327,32 +9772,19 @@ packages: ssri: 10.0.5 transitivePeerDependencies: - supports-color - dev: true - /map-cache@0.2.2: - resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} - engines: {node: '>=0.10.0'} - dev: true + map-cache@0.2.2: {} - /map-visit@1.0.0: - resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} - engines: {node: '>=0.10.0'} + map-visit@1.0.0: dependencies: object-visit: 1.0.1 - dev: true - /markdown-contents@1.0.11: - resolution: {integrity: sha512-6o8It0JhmoN398ATp8zOWHAniTB3/tEXUVTCP00gTqwZNc465DIoHTTaspyEkaov93QLhrqirxizJ29E/i8/0Q==} + markdown-contents@1.0.11: dependencies: contents: 5.0.0 lodash: 4.17.21 - dev: true - /marked-terminal@7.0.0(marked@12.0.1): - resolution: {integrity: sha512-sNEx8nn9Ktcm6pL0TnRz8tnXq/mSS0Q1FRSwJOAqw4lAB4l49UeDf85Gm1n9RPFm5qurCPjwi1StAQT2XExhZw==} - engines: {node: '>=16.0.0'} - peerDependencies: - marked: '>=1 <13' + marked-terminal@7.0.0(marked@12.0.1): dependencies: ansi-escapes: 6.2.0 chalk: 5.3.0 @@ -7361,53 +9793,24 @@ packages: marked: 12.0.1 node-emoji: 2.1.3 supports-hyperlinks: 3.0.0 - dev: true - /marked@12.0.1: - resolution: {integrity: sha512-Y1/V2yafOcOdWQCX0XpAKXzDakPOpn6U0YLxTJs3cww6VxOzZV1BTOOYWLvH3gX38cq+iLwljHHTnMtlDfg01Q==} - engines: {node: '>= 18'} - hasBin: true - dev: true + marked@12.0.1: {} - /marked@2.1.3: - resolution: {integrity: sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==} - engines: {node: '>= 10'} - hasBin: true - dev: true + marked@2.1.3: {} - /meow@12.1.1: - resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} - engines: {node: '>=16.10'} - dev: true + meow@12.1.1: {} - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true + merge-stream@2.0.0: {} - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: true + merge2@1.4.1: {} - /meros@1.3.0(@types/node@20.12.5): - resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} - engines: {node: '>=13'} - peerDependencies: - '@types/node': '>=13' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@types/node': 20.12.5 - dev: true + meros@1.3.0(@types/node@20.12.11): + optionalDependencies: + '@types/node': 20.12.11 - /micro-spelling-correcter@1.1.1: - resolution: {integrity: sha512-lkJ3Rj/mtjlRcHk6YyCbvZhyWTOzdBvTHsxMmZSk5jxN1YyVSQ+JETAom55mdzfcyDrY/49Z7UCW760BK30crg==} - dev: true + micro-spelling-correcter@1.1.1: {} - /micromatch@3.1.10: - resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} - engines: {node: '>=0.10.0'} + micromatch@3.1.10: dependencies: arr-diff: 4.0.0 array-unique: 0.3.2 @@ -7424,168 +9827,97 @@ packages: to-regex: 3.0.2 transitivePeerDependencies: - supports-color - dev: true - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} + micromatch@4.0.5: dependencies: braces: 3.0.2 picomatch: 2.3.1 - dev: true - /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - dev: true + mime-db@1.52.0: {} - /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 - dev: true - /mime@4.0.1: - resolution: {integrity: sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==} - engines: {node: '>=16'} - hasBin: true - dev: true + mime@4.0.1: {} - /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - dev: true + mimic-fn@2.1.0: {} - /mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - dev: true + mimic-fn@4.0.0: {} - /min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - dev: true + min-indent@1.0.1: {} - /minimatch@3.0.5: - resolution: {integrity: sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==} + minimatch@3.0.5: dependencies: brace-expansion: 1.1.11 - dev: true - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 - dev: true - /minimatch@4.2.3: - resolution: {integrity: sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng==} - engines: {node: '>=10'} + minimatch@4.2.3: dependencies: brace-expansion: 1.1.11 - dev: true - /minimatch@5.0.1: - resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} - engines: {node: '>=10'} + minimatch@5.0.1: dependencies: brace-expansion: 2.0.1 - dev: true - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.3: dependencies: brace-expansion: 2.0.1 - dev: true - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true + minimatch@9.0.4: + dependencies: + brace-expansion: 2.0.1 - /minipass-collect@2.0.1: - resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} - engines: {node: '>=16 || 14 >=14.17'} + minimist@1.2.8: {} + + minipass-collect@2.0.1: dependencies: minipass: 7.0.4 - dev: true - /minipass-fetch@3.0.4: - resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + minipass-fetch@3.0.4: dependencies: minipass: 7.0.4 minipass-sized: 1.0.3 minizlib: 2.1.2 optionalDependencies: encoding: 0.1.13 - dev: true - /minipass-flush@1.0.5: - resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} - engines: {node: '>= 8'} + minipass-flush@1.0.5: dependencies: minipass: 3.3.6 - dev: true - /minipass-pipeline@1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} - engines: {node: '>=8'} + minipass-pipeline@1.2.4: dependencies: minipass: 3.3.6 - dev: true - /minipass-sized@1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} - engines: {node: '>=8'} + minipass-sized@1.0.3: dependencies: minipass: 3.3.6 - dev: true - /minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} + minipass@3.3.6: dependencies: yallist: 4.0.0 - dev: true - /minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - dev: true + minipass@5.0.0: {} - /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} - dev: true + minipass@7.0.4: {} - /minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} + minizlib@2.1.2: dependencies: minipass: 3.3.6 yallist: 4.0.0 - dev: true - /mixin-deep@1.3.2: - resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} - engines: {node: '>=0.10.0'} + mixin-deep@1.3.2: dependencies: for-in: 1.0.2 is-extendable: 1.0.1 - dev: true - /mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - dev: true + mkdirp@1.0.4: {} - /mocha@10.4.0: - resolution: {integrity: sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==} - engines: {node: '>= 14.0.0'} - hasBin: true + mocha@10.4.0: dependencies: ansi-colors: 4.1.1 browser-stdout: 1.3.1 @@ -7607,38 +9939,24 @@ packages: yargs: 16.2.0 yargs-parser: 20.2.4 yargs-unparser: 2.0.0 - dev: true - /moment@2.30.1: - resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} - dev: true + moment@2.30.1: {} - /ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - dev: true + ms@2.0.0: {} - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + ms@2.1.2: {} - /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - dev: true + ms@2.1.3: {} - /mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + mz@2.7.0: dependencies: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 - dev: true - /nan@2.18.0: - resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==} - dev: true + nan@2.18.0: {} - /nanomatch@1.2.13: - resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} - engines: {node: '>=0.10.0'} + nanomatch@1.2.13: dependencies: arr-diff: 4.0.0 array-unique: 0.3.2 @@ -7653,406 +9971,200 @@ packages: to-regex: 3.0.2 transitivePeerDependencies: - supports-color - dev: true - /natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - dev: true + natural-compare-lite@1.4.0: {} - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - dev: true + natural-compare@1.4.0: {} - /negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - dev: true + negotiator@0.6.3: {} - /neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - dev: true + neo-async@2.6.2: {} - /nerf-dart@1.0.0: - resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} - dev: true + nerf-dart@1.0.0: {} - /nice-try@1.0.5: - resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} - dev: true + nice-try@1.0.5: {} - /node-emoji@2.1.3: - resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} - engines: {node: '>=18'} + node-emoji@2.1.3: dependencies: '@sindresorhus/is': 4.6.0 char-regex: 1.0.2 emojilib: 2.4.0 skin-tone: 2.0.0 - dev: true - /node-environment-flags@1.0.6: - resolution: {integrity: sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==} + node-environment-flags@1.0.6: dependencies: object.getownpropertydescriptors: 2.1.7 semver: 5.7.2 - dev: true - /node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true + node-fetch@2.7.0(encoding@0.1.13): dependencies: whatwg-url: 5.0.0 - dev: true + optionalDependencies: + encoding: 0.1.13 - /node-gyp@10.0.1: - resolution: {integrity: sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==} - engines: {node: ^16.14.0 || >=18.0.0} - hasBin: true + node-gyp@10.0.1: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.1 - glob: 10.3.12 + glob: 10.3.13 graceful-fs: 4.2.11 make-fetch-happen: 13.0.0 nopt: 7.2.0 proc-log: 3.0.0 - semver: 7.6.0 + semver: 7.6.1 tar: 6.2.0 which: 4.0.0 transitivePeerDependencies: - supports-color - dev: true - /node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - dev: true + node-releases@2.0.14: {} - /nopt@7.2.0: - resolution: {integrity: sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true + nopt@7.2.0: dependencies: abbrev: 2.0.0 - dev: true - /normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 resolve: 1.22.8 semver: 5.7.2 validate-npm-package-license: 3.0.4 - dev: true - /normalize-package-data@6.0.0: - resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==} - engines: {node: ^16.14.0 || >=18.0.0} + normalize-package-data@6.0.0: dependencies: hosted-git-info: 7.0.1 is-core-module: 2.13.1 - semver: 7.6.0 + semver: 7.6.1 validate-npm-package-license: 3.0.4 - dev: true - /normalize-path@2.1.1: - resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} - engines: {node: '>=0.10.0'} + normalize-path@2.1.1: dependencies: remove-trailing-separator: 1.1.0 - dev: true - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true + normalize-path@3.0.0: {} - /normalize-url@5.3.1: - resolution: {integrity: sha512-K1c7+vaAP+Yh5bOGmA10PGPpp+6h7WZrl7GwqKhUflBc9flU9pzG27DDeB9+iuhZkE3BJZOcgN1P/2sS5pqrWw==} - engines: {node: '>=10'} - dev: true + normalize-url@5.3.1: {} - /normalize-url@8.0.0: - resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==} - engines: {node: '>=14.16'} - dev: true + normalize-url@8.0.0: {} - /npm-path@2.0.4: - resolution: {integrity: sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==} - engines: {node: '>=0.8'} - hasBin: true + npm-path@2.0.4: dependencies: which: 1.3.1 - dev: true - /npm-run-path@2.0.2: - resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} - engines: {node: '>=4'} + npm-run-path@2.0.2: dependencies: path-key: 2.0.1 - dev: true - /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 - dev: true - /npm-run-path@5.2.0: - resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + npm-run-path@5.2.0: dependencies: path-key: 4.0.0 - dev: true - /npm-which@3.0.1: - resolution: {integrity: sha512-CM8vMpeFQ7MAPin0U3wzDhSGV0hMHNwHU0wjo402IVizPDrs45jSfSuoC+wThevY88LQti8VvaAnqYAeVy3I1A==} - engines: {node: '>=4.2.0'} - hasBin: true + npm-which@3.0.1: dependencies: commander: 2.20.3 npm-path: 2.0.4 which: 1.3.1 - dev: true - /npm@10.5.1: - resolution: {integrity: sha512-RozZuGuWbbhDM2sRhOSLIRb3DLyof6TREi0TW5b3xUEBropDhDqEHv0iAjA1zsIwXKgfIkR8GvQMd4oeKKg9eQ==} - engines: {node: ^18.17.0 || >=20.5.0} - hasBin: true - dev: true - bundledDependencies: - - '@isaacs/string-locale-compare' - - '@npmcli/arborist' - - '@npmcli/config' - - '@npmcli/fs' - - '@npmcli/map-workspaces' - - '@npmcli/package-json' - - '@npmcli/promise-spawn' - - '@npmcli/redact' - - '@npmcli/run-script' - - '@sigstore/tuf' - - abbrev - - archy - - cacache - - chalk - - ci-info - - cli-columns - - cli-table3 - - columnify - - fastest-levenshtein - - fs-minipass - - glob - - graceful-fs - - hosted-git-info - - ini - - init-package-json - - is-cidr - - json-parse-even-better-errors - - libnpmaccess - - libnpmdiff - - libnpmexec - - libnpmfund - - libnpmhook - - libnpmorg - - libnpmpack - - libnpmpublish - - libnpmsearch - - libnpmteam - - libnpmversion - - make-fetch-happen - - minimatch - - minipass - - minipass-pipeline - - ms - - node-gyp - - nopt - - normalize-package-data - - npm-audit-report - - npm-install-checks - - npm-package-arg - - npm-pick-manifest - - npm-profile - - npm-registry-fetch - - npm-user-validate - - npmlog - - p-map - - pacote - - parse-conflict-json - - proc-log - - qrcode-terminal - - read - - semver - - spdx-expression-parse - - ssri - - supports-color - - tar - - text-table - - tiny-relative-date - - treeverse - - validate-npm-package-name - - which - - write-file-atomic + npm@10.5.1: {} - /nwmatcher@1.4.4: - resolution: {integrity: sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==} - dev: true + nwmatcher@1.4.4: {} - /oauth-sign@0.9.0: - resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} - dev: true + oauth-sign@0.9.0: {} - /obj-props@1.4.0: - resolution: {integrity: sha512-p7p/7ltzPDiBs6DqxOrIbtRdwxxVRBj5ROukeNb9RgA+fawhrz5n2hpNz8DDmYR//tviJSj7nUnlppGmONkjiQ==} - engines: {node: '>=0.10.0'} - dev: true + obj-props@1.4.0: {} - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - dev: true + object-assign@4.1.1: {} - /object-copy@0.1.0: - resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} - engines: {node: '>=0.10.0'} + object-copy@0.1.0: dependencies: copy-descriptor: 0.1.1 define-property: 0.2.5 kind-of: 3.2.2 - dev: true - /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - dev: true + object-inspect@1.13.1: {} - /object-is@1.1.5: - resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} - engines: {node: '>= 0.4'} + object-is@1.1.5: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 - dev: true - /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - dev: true + object-keys@1.1.1: {} - /object-visit@1.0.1: - resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} - engines: {node: '>=0.10.0'} + object-visit@1.0.1: dependencies: isobject: 3.0.1 - dev: true - /object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} + object.assign@4.1.5: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 - dev: true - /object.entries@1.1.7: - resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} - engines: {node: '>= 0.4'} + object.entries@1.1.7: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - dev: true - /object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} - engines: {node: '>= 0.4'} + object.fromentries@2.0.7: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - dev: true - /object.getownpropertydescriptors@2.1.7: - resolution: {integrity: sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==} - engines: {node: '>= 0.8'} + object.getownpropertydescriptors@2.1.7: dependencies: array.prototype.reduce: 1.0.6 call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 safe-array-concat: 1.0.1 - dev: true - /object.hasown@1.1.3: - resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + object.hasown@1.1.3: dependencies: define-properties: 1.2.1 es-abstract: 1.22.3 - dev: true - /object.pick@1.3.0: - resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} - engines: {node: '>=0.10.0'} + object.pick@1.3.0: dependencies: isobject: 3.0.1 - dev: true - /object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} - engines: {node: '>= 0.4'} + object.values@1.1.7: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - dev: true - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + once@1.4.0: dependencies: wrappy: 1.0.2 - dev: true - /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} + onetime@5.1.2: dependencies: mimic-fn: 2.1.0 - dev: true - /onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} + onetime@6.0.0: dependencies: mimic-fn: 4.0.0 - dev: true - /open-editor@3.0.0: - resolution: {integrity: sha512-00Nqoa7k8F4AK1oSFMIIhYku+essXiCljR2L2kV+bl5j90ANgbQgzEeTdZu23LsikDoz+KfhyRHpGLAwpQhugA==} - engines: {node: '>=10'} + open-editor@3.0.0: dependencies: env-editor: 0.4.2 execa: 5.1.1 line-column-path: 2.0.0 open: 7.4.2 - dev: true - /open@7.4.2: - resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} - engines: {node: '>=8'} + open@7.4.2: dependencies: is-docker: 2.2.1 is-wsl: 2.2.0 - dev: true - /optionator@0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} - engines: {node: '>= 0.8.0'} + optionator@0.8.3: dependencies: deep-is: 0.1.4 fast-levenshtein: 2.0.6 @@ -8060,11 +10172,8 @@ packages: prelude-ls: 1.1.2 type-check: 0.3.2 word-wrap: 1.2.5 - dev: true - /optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} + optionator@0.9.3: dependencies: '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 @@ -8072,472 +10181,260 @@ packages: levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - dev: true - /p-each-series@3.0.0: - resolution: {integrity: sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==} - engines: {node: '>=12'} - dev: true + p-each-series@3.0.0: {} - /p-filter@4.1.0: - resolution: {integrity: sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==} - engines: {node: '>=18'} + p-filter@4.1.0: dependencies: p-map: 7.0.1 - dev: true - /p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - dev: true + p-finally@1.0.0: {} - /p-is-promise@3.0.0: - resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} - engines: {node: '>=8'} - dev: true + p-is-promise@3.0.0: {} - /p-limit@1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} - engines: {node: '>=4'} + p-limit@1.3.0: dependencies: p-try: 1.0.0 - dev: true - /p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + p-limit@2.3.0: dependencies: p-try: 2.2.0 - dev: true - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 - dev: true - /p-locate@2.0.0: - resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} - engines: {node: '>=4'} + p-locate@2.0.0: dependencies: p-limit: 1.3.0 - dev: true - /p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} + p-locate@3.0.0: dependencies: p-limit: 2.3.0 - dev: true - /p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + p-locate@4.1.0: dependencies: p-limit: 2.3.0 - dev: true - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + p-locate@5.0.0: dependencies: p-limit: 3.1.0 - dev: true - /p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} + p-map@4.0.0: dependencies: aggregate-error: 3.1.0 - dev: true - /p-map@7.0.1: - resolution: {integrity: sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==} - engines: {node: '>=18'} - dev: true + p-map@7.0.1: {} - /p-reduce@3.0.0: - resolution: {integrity: sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==} - engines: {node: '>=12'} - dev: true + p-reduce@3.0.0: {} - /p-try@1.0.0: - resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} - engines: {node: '>=4'} - dev: true + p-try@1.0.0: {} - /p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - dev: true + p-try@2.2.0: {} - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + parent-module@1.0.1: dependencies: callsites: 3.1.0 - dev: true - /parse-json@4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} + parse-json@4.0.0: dependencies: error-ex: 1.3.2 json-parse-better-errors: 1.0.2 - dev: true - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.24.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - dev: true - /parse-json@8.1.0: - resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} - engines: {node: '>=18'} + parse-json@8.1.0: dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.24.2 index-to-position: 0.1.2 type-fest: 4.9.0 - dev: true - /parse-passwd@1.0.0: - resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} - engines: {node: '>=0.10.0'} - dev: true + parse-passwd@1.0.0: {} - /parse5-htmlparser2-tree-adapter@6.0.1: - resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + parse5-htmlparser2-tree-adapter@6.0.1: dependencies: parse5: 6.0.1 - dev: true - /parse5@1.5.1: - resolution: {integrity: sha512-w2jx/0tJzvgKwZa58sj2vAYq/S/K1QJfIB3cWYea/Iu1scFPDQQ3IQiVZTHWtRBwAjv2Yd7S/xeZf3XqLDb3bA==} - dev: true + parse5@1.5.1: {} - /parse5@5.1.1: - resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} - dev: true + parse5@5.1.1: {} - /parse5@6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - dev: true + parse5@6.0.1: {} - /pascalcase@0.1.1: - resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} - engines: {node: '>=0.10.0'} - dev: true + pascalcase@0.1.1: {} - /path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - dev: true + path-exists@3.0.0: {} - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - dev: true + path-exists@4.0.0: {} - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - dev: true + path-is-absolute@1.0.1: {} - /path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} - engines: {node: '>=4'} - dev: true + path-key@2.0.1: {} - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: true + path-key@3.1.1: {} - /path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - dev: true + path-key@4.0.0: {} - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true + path-parse@1.0.7: {} - /path-scurry@1.10.2: - resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} - engines: {node: '>=16 || 14 >=14.17'} + path-scurry@1.10.2: dependencies: lru-cache: 10.2.0 minipass: 7.0.4 - dev: true - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: true + path-type@4.0.0: {} - /path-type@5.0.0: - resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} - engines: {node: '>=12'} - dev: true + path-type@5.0.0: {} - /pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - dev: true + pathval@1.1.1: {} - /performance-now@2.1.0: - resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} - dev: true + performance-now@2.1.0: {} - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true + picocolors@1.0.0: {} - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - dev: true + picomatch@2.3.1: {} - /pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} - hasBin: true - dev: true + pidtree@0.6.0: {} - /pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} - dev: true + pify@3.0.0: {} - /pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - dev: true + pify@4.0.1: {} - /pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - dev: true + pirates@4.0.6: {} - /pkg-conf@2.1.0: - resolution: {integrity: sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==} - engines: {node: '>=4'} + pkg-conf@2.1.0: dependencies: find-up: 2.1.0 load-json-file: 4.0.0 - dev: true - /pkg-dir@3.0.0: - resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} - engines: {node: '>=6'} + pkg-dir@3.0.0: dependencies: find-up: 3.0.0 - dev: true - /pkg-dir@5.0.0: - resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} - engines: {node: '>=10'} + pkg-dir@5.0.0: dependencies: find-up: 5.0.0 - dev: true - /pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} - dev: true + pluralize@8.0.0: {} - /posix-character-classes@0.1.1: - resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} - engines: {node: '>=0.10.0'} - dev: true + posix-character-classes@0.1.1: {} - /prelude-ls@1.1.2: - resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} - engines: {node: '>= 0.8.0'} - dev: true + prelude-ls@1.1.2: {} - /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - dev: true + prelude-ls@1.2.1: {} - /prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} + prettier-linter-helpers@1.0.0: dependencies: fast-diff: 1.3.0 - dev: true - /prettier@3.1.1: - resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==} - engines: {node: '>=14'} - hasBin: true - dev: true + prettier@3.1.1: {} - /proc-log@3.0.0: - resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true + proc-log@3.0.0: {} - /process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: true + process-nextick-args@2.0.1: {} - /promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} - engines: {node: '>=10'} + promise-retry@2.0.1: dependencies: err-code: 2.0.3 retry: 0.12.0 - dev: true - /prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + prop-types@15.8.1: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 - dev: true - /proto-list@1.2.4: - resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - dev: true + proto-list@1.2.4: {} - /proto-props@2.0.0: - resolution: {integrity: sha512-2yma2tog9VaRZY2mn3Wq51uiSW4NcPYT1cQdBagwyrznrilKSZwIZ0UG3ZPL/mx+axEns0hE35T5ufOYZXEnBQ==} - engines: {node: '>=4'} - dev: true + proto-props@2.0.0: {} - /psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - dev: true + psl@1.9.0: {} - /pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + pump@3.0.0: dependencies: end-of-stream: 1.4.4 once: 1.4.0 - dev: true - /punycode@1.4.1: - resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} - dev: true + punycode@1.4.1: {} - /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - dev: true + punycode@2.3.1: {} - /pvtsutils@1.3.5: - resolution: {integrity: sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==} + pvtsutils@1.3.5: dependencies: tslib: 2.6.2 - dev: true - - /pvutils@1.1.3: - resolution: {integrity: sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==} - engines: {node: '>=6.0.0'} - dev: true - /qs@6.5.3: - resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} - engines: {node: '>=0.6'} - dev: true + pvutils@1.1.3: {} - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true + qs@6.5.3: {} - /rambda@7.5.0: - resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==} - dev: true + queue-microtask@1.2.3: {} - /ramda@0.26.1: - resolution: {integrity: sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==} - dev: true + rambda@7.5.0: {} - /ramda@0.29.1: - resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==} - dev: true + ramda@0.26.1: {} - /randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + ramda@0.29.1: {} + + randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 - dev: true - /rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true + rc@1.2.8: dependencies: deep-extend: 0.6.0 ini: 1.3.8 minimist: 1.2.8 strip-json-comments: 2.0.1 - dev: true - /re2@1.20.9: - resolution: {integrity: sha512-ZYcPTFr5ha2xq3WQjBDTF9CWPSDK1z28MLh5UFRxc//7X8BNQ3A7yR7ITnP0jO346661ertdKVFqw1qoL3FMEQ==} - requiresBuild: true + re2@1.20.9: dependencies: install-artifact-from-github: 1.3.5 nan: 2.18.0 node-gyp: 10.0.1 transitivePeerDependencies: - supports-color - dev: true - /react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - dev: true + react-is@16.13.1: {} - /read-pkg-up@11.0.0: - resolution: {integrity: sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q==} - engines: {node: '>=18'} - deprecated: Renamed to read-package-up + read-package-up@11.0.0: dependencies: find-up-simple: 1.0.0 read-pkg: 9.0.1 type-fest: 4.9.0 - dev: true - /read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} + read-pkg-up@11.0.0: + dependencies: + find-up-simple: 1.0.0 + read-pkg: 9.0.1 + type-fest: 4.9.0 + + read-pkg-up@7.0.1: dependencies: find-up: 4.1.0 read-pkg: 5.2.0 type-fest: 0.8.1 - dev: true - /read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} + read-pkg@5.2.0: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 - dev: true - /read-pkg@9.0.1: - resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} - engines: {node: '>=18'} + read-pkg@9.0.1: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.0 parse-json: 8.1.0 type-fest: 4.9.0 unicorn-magic: 0.1.0 - dev: true - /readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -8546,46 +10443,30 @@ packages: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 - dev: true - /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + readable-stream@3.6.2: dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - dev: true - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - requiresBuild: true + readdirp@3.6.0: dependencies: picomatch: 2.3.1 - dev: true - /recast@0.23.4: - resolution: {integrity: sha512-qtEDqIZGVcSZCHniWwZWbRy79Dc6Wp3kT/UmDA2RJKBPg7+7k51aQBZirHmUGn5uvHf2rg8DkjizrN26k61ATw==} - engines: {node: '>= 4'} + recast@0.23.4: dependencies: assert: 2.1.0 ast-types: 0.16.1 esprima: 4.0.1 source-map: 0.6.1 tslib: 2.6.2 - dev: true - /refa@0.11.0: - resolution: {integrity: sha512-486O8/pQXwj9jV0mVvUnTsxq0uknpBnNJ0eCUhkZqJRQ8KutrT1PhzmumdCeM1hSBF2eMlFPmwECRER4IbKXlQ==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + refa@0.11.0: dependencies: '@eslint-community/regexpp': 4.10.0 - dev: true - /reflect.getprototypeof@1.0.4: - resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} - engines: {node: '>= 0.4'} + reflect.getprototypeof@1.0.4: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -8593,62 +10474,38 @@ packages: get-intrinsic: 1.2.2 globalthis: 1.0.3 which-builtin-type: 1.1.3 - dev: true - /regenerate-unicode-properties@10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} - engines: {node: '>=4'} + regenerate-unicode-properties@10.1.1: dependencies: regenerate: 1.4.2 - dev: true - /regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - dev: true + regenerate@1.4.2: {} - /regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - dev: true + regenerator-runtime@0.14.1: {} - /regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + regenerator-transform@0.15.2: dependencies: '@babel/runtime': 7.23.6 - dev: true - /regex-not@1.0.2: - resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} - engines: {node: '>=0.10.0'} + regex-not@1.0.2: dependencies: extend-shallow: 3.0.2 safe-regex: 1.1.0 - dev: true - /regexp-ast-analysis@0.6.0: - resolution: {integrity: sha512-OLxjyjPkVH+rQlBLb1I/P/VTmamSjGkvN5PTV5BXP432k3uVz727J7H29GA5IFiY0m7e1xBN7049Wn59FY3DEQ==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + regexp-ast-analysis@0.6.0: dependencies: '@eslint-community/regexpp': 4.10.0 refa: 0.11.0 - dev: true - /regexp-tree@0.1.27: - resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} - hasBin: true - dev: true + regexp-tree@0.1.27: {} - /regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} - engines: {node: '>= 0.4'} + regexp.prototype.flags@1.5.1: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 set-function-name: 2.0.1 - dev: true - /regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} + regexpu-core@5.3.2: dependencies: '@babel/regjsgen': 0.8.0 regenerate: 1.4.2 @@ -8656,62 +10513,34 @@ packages: regjsparser: 0.9.1 unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.1.0 - dev: true - /registry-auth-token@5.0.2: - resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} - engines: {node: '>=14'} + registry-auth-token@5.0.2: dependencies: '@pnpm/npm-conf': 2.2.2 - dev: true - /regjsparser@0.10.0: - resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} - hasBin: true + regjsparser@0.10.0: dependencies: jsesc: 0.5.0 - dev: true - /regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true + regjsparser@0.9.1: dependencies: jsesc: 0.5.0 - dev: true - /remove-trailing-separator@1.1.0: - resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} - dev: true + remove-trailing-separator@1.1.0: {} - /repeat-element@1.1.4: - resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} - engines: {node: '>=0.10.0'} - dev: true + repeat-element@1.1.4: {} - /repeat-string@1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} - dev: true + repeat-string@1.6.1: {} - /replace@1.2.2: - resolution: {integrity: sha512-C4EDifm22XZM2b2JOYe6Mhn+lBsLBAvLbK8drfUQLTfD1KYl/n3VaW/CDju0Ny4w3xTtegBpg8YNSpFJPUDSjA==} - engines: {node: '>= 6'} - hasBin: true + replace@1.2.2: dependencies: chalk: 2.4.2 minimatch: 3.0.5 yargs: 15.4.1 - dev: true - /req-all@0.1.0: - resolution: {integrity: sha512-ZdvPr8uXy9ujX3KujwE2P1HWkMYgogIhqeAeyb47MqWjSfyxERSm0TNbN/IapCCmWDufXab04AYrRgObaJCJ6Q==} - engines: {node: '>=4'} - dev: true + req-all@0.1.0: {} - /request@2.88.2: - resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} - engines: {node: '>= 6'} - deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + request@2.88.2: dependencies: aws-sign2: 0.7.0 aws4: 1.12.0 @@ -8733,180 +10562,104 @@ packages: tough-cookie: 2.5.0 tunnel-agent: 0.6.0 uuid: 3.4.0 - dev: true - /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - dev: true + require-directory@2.1.1: {} - /require-main-filename@2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - dev: true + require-main-filename@2.0.0: {} - /requireindex@1.1.0: - resolution: {integrity: sha512-LBnkqsDE7BZKvqylbmn7lTIVdpx4K/QCduRATpO5R+wtPmky/a8pN1bO2D6wXppn1497AJF9mNjqAXr6bdl9jg==} - engines: {node: '>=0.10.5'} - dev: true + requireindex@1.1.0: {} - /resolve-from@3.0.0: - resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} - engines: {node: '>=4'} - dev: true + resolve-from@3.0.0: {} - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - dev: true + resolve-from@4.0.0: {} - /resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: true + resolve-from@5.0.0: {} - /resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - dev: true + resolve-pkg-maps@1.0.0: {} - /resolve-url@0.2.1: - resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} - deprecated: https://github.com/lydell/resolve-url#deprecated - dev: true + resolve-url@0.2.1: {} - /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true + resolve@1.22.8: dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true - /resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true + resolve@2.0.0-next.5: dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true - /restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + restore-cursor@4.0.0: dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - dev: true - /ret@0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} - dev: true + ret@0.1.15: {} - /retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} - engines: {node: '>= 4'} - dev: true + retry@0.12.0: {} - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true + reusify@1.0.4: {} - /rfdc@1.3.0: - resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} - dev: true + rfdc@1.3.0: {} - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true + rimraf@3.0.2: dependencies: glob: 7.2.3 - dev: true - /rimraf@5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} - engines: {node: '>=14'} - hasBin: true + rimraf@5.0.5: dependencies: - glob: 10.3.12 - dev: true + glob: 10.3.13 - /roarr@7.21.0: - resolution: {integrity: sha512-d1rPLcHmQID3GsA3p9d5vKSZYlvrTWhjbmeg9DT5DcPoLpH85VzPmkLkGKhQv376+dfkApaHwNbpYEwDB77Ibg==} - engines: {node: '>=18.0'} + roarr@7.21.0: dependencies: fast-printf: 1.6.9 safe-stable-stringify: 2.4.3 semver-compare: 1.0.0 - dev: true - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - dev: true - /safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} - engines: {node: '>=0.4'} + safe-array-concat@1.0.1: dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 has-symbols: 1.0.3 isarray: 2.0.5 - dev: true - /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: true + safe-buffer@5.1.2: {} - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: true + safe-buffer@5.2.1: {} - /safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + safe-regex-test@1.0.0: dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 is-regex: 1.1.4 - dev: true - /safe-regex@1.1.0: - resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + safe-regex@1.1.0: dependencies: ret: 0.1.15 - dev: true - /safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} - engines: {node: '>=10'} - dev: true + safe-stable-stringify@2.4.3: {} - /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: true + safer-buffer@2.1.2: {} - /scslre@0.2.0: - resolution: {integrity: sha512-4hc49fUMmX3jM0XdFUAPBrs1xwEcdHa0KyjEsjFs+Zfc66mpFpq5YmRgDtl+Ffo6AtJIilfei+yKw8fUn3N88w==} + scslre@0.2.0: dependencies: '@eslint-community/regexpp': 4.10.0 refa: 0.11.0 regexp-ast-analysis: 0.6.0 - dev: true - /semantic-release@23.0.7(typescript@5.3.3): - resolution: {integrity: sha512-PFxXQE57zrYiCbWKkdsVUF08s0SifEw3WhDhrN47ZEUWQiLl21FI9Dg/H8g7i/lPx0IkF6u7PjJbgxPceXKBeg==} - engines: {node: '>=20.8.1'} - hasBin: true + semantic-release@23.0.8(typescript@5.3.3): dependencies: - '@semantic-release/commit-analyzer': 12.0.0(semantic-release@23.0.7) + '@semantic-release/commit-analyzer': 12.0.0(semantic-release@23.0.8(typescript@5.3.3)) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 10.0.2(semantic-release@23.0.7) - '@semantic-release/npm': 12.0.0(semantic-release@23.0.7) - '@semantic-release/release-notes-generator': 13.0.0(semantic-release@23.0.7) + '@semantic-release/github': 10.0.3(semantic-release@23.0.8(typescript@5.3.3)) + '@semantic-release/npm': 12.0.0(semantic-release@23.0.8(typescript@5.3.3)) + '@semantic-release/release-notes-generator': 13.0.0(semantic-release@23.0.8(typescript@5.3.3)) aggregate-error: 5.0.0 cosmiconfig: 9.0.0(typescript@5.3.3) debug: 4.3.4(supports-color@8.1.1) @@ -8925,212 +10678,123 @@ packages: micromatch: 4.0.5 p-each-series: 3.0.0 p-reduce: 3.0.0 - read-pkg-up: 11.0.0 + read-package-up: 11.0.0 resolve-from: 5.0.0 - semver: 7.6.0 + semver: 7.6.1 semver-diff: 4.0.0 signale: 1.4.0 yargs: 17.7.2 transitivePeerDependencies: - supports-color - typescript - dev: true - /semver-compare@1.0.0: - resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} - dev: true + semver-compare@1.0.0: {} - /semver-diff@4.0.0: - resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} - engines: {node: '>=12'} + semver-diff@4.0.0: dependencies: - semver: 7.6.0 - dev: true + semver: 7.6.1 - /semver-regex@4.0.5: - resolution: {integrity: sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==} - engines: {node: '>=12'} - dev: true + semver-regex@4.0.5: {} - /semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - dev: true + semver@5.7.2: {} - /semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - dev: true + semver@6.3.1: {} - /semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 + semver@7.6.1: {} - /serialize-javascript@6.0.0: - resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + serialize-javascript@6.0.0: dependencies: randombytes: 2.1.0 - dev: true - /set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - dev: true + set-blocking@2.0.0: {} - /set-function-length@1.1.1: - resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} - engines: {node: '>= 0.4'} + set-function-length@1.1.1: dependencies: define-data-property: 1.1.1 get-intrinsic: 1.2.2 gopd: 1.0.1 has-property-descriptors: 1.0.1 - dev: true - /set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} - engines: {node: '>= 0.4'} + set-function-name@2.0.1: dependencies: define-data-property: 1.1.1 functions-have-names: 1.2.3 has-property-descriptors: 1.0.1 - dev: true - /set-value@2.0.1: - resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} - engines: {node: '>=0.10.0'} + set-value@2.0.1: dependencies: extend-shallow: 2.0.1 is-extendable: 0.1.1 is-plain-object: 2.0.4 split-string: 3.1.0 - dev: true - /shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} + shallow-clone@3.0.1: dependencies: kind-of: 6.0.3 - dev: true - /shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} + shebang-command@1.2.0: dependencies: shebang-regex: 1.0.0 - dev: true - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 - dev: true - /shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} - dev: true + shebang-regex@1.0.0: {} - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: true + shebang-regex@3.0.0: {} - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + side-channel@1.0.4: dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 object-inspect: 1.13.1 - dev: true - /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: true + signal-exit@3.0.7: {} - /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - dev: true + signal-exit@4.1.0: {} - /signale@1.4.0: - resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==} - engines: {node: '>=6'} + signale@1.4.0: dependencies: chalk: 2.4.2 figures: 2.0.0 pkg-conf: 2.1.0 - dev: true - /sister@3.0.2: - resolution: {integrity: sha512-p19rtTs+NksBRKW9qn0UhZ8/TUI9BPw9lmtHny+Y3TinWlOa9jWh9xB0AtPSdmOy49NJJJSSe0Ey4C7h0TrcYA==} - dev: true + sister@3.0.2: {} - /skin-tone@2.0.0: - resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} - engines: {node: '>=8'} + skin-tone@2.0.0: dependencies: unicode-emoji-modifier-base: 1.0.0 - dev: true - /slash@2.0.0: - resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} - engines: {node: '>=6'} - dev: true + slash@2.0.0: {} - /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - dev: true + slash@3.0.0: {} - /slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} - engines: {node: '>=14.16'} - dev: true + slash@5.1.0: {} - /slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} + slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.1 is-fullwidth-code-point: 4.0.0 - dev: true - /slice-ansi@7.1.0: - resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} - engines: {node: '>=18'} + slice-ansi@7.1.0: dependencies: ansi-styles: 6.2.1 is-fullwidth-code-point: 5.0.0 - dev: true - /smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - dev: true + smart-buffer@4.2.0: {} - /snapdragon-node@2.1.1: - resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} - engines: {node: '>=0.10.0'} + snapdragon-node@2.1.1: dependencies: define-property: 1.0.0 isobject: 3.0.1 snapdragon-util: 3.0.1 - dev: true - /snapdragon-util@3.0.1: - resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} - engines: {node: '>=0.10.0'} + snapdragon-util@3.0.1: dependencies: kind-of: 3.2.2 - dev: true - /snapdragon@0.8.2: - resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} - engines: {node: '>=0.10.0'} + snapdragon@0.8.2: dependencies: base: 0.11.2 debug: 2.6.9 @@ -9142,123 +10806,76 @@ packages: use: 3.1.1 transitivePeerDependencies: - supports-color - dev: true - /socks-proxy-agent@8.0.2: - resolution: {integrity: sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==} - engines: {node: '>= 14'} + socks-proxy-agent@8.0.2: dependencies: agent-base: 7.1.0 debug: 4.3.4(supports-color@8.1.1) socks: 2.7.1 transitivePeerDependencies: - supports-color - dev: true - /socks@2.7.1: - resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} - engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + socks@2.7.1: dependencies: ip: 2.0.1 smart-buffer: 4.2.0 - dev: true - /source-map-resolve@0.5.3: - resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} - deprecated: See https://github.com/lydell/source-map-resolve#deprecated + source-map-resolve@0.5.3: dependencies: atob: 2.1.2 decode-uri-component: 0.2.2 resolve-url: 0.2.1 source-map-url: 0.4.1 urix: 0.1.0 - dev: true - /source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - dev: true - /source-map-url@0.4.1: - resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} - deprecated: See https://github.com/lydell/source-map-url#deprecated - dev: true + source-map-url@0.4.1: {} - /source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} - dev: true + source-map@0.5.7: {} - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - dev: true + source-map@0.6.1: {} - /source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - requiresBuild: true - dev: true + source-map@0.7.4: optional: true - /spawn-error-forwarder@1.0.0: - resolution: {integrity: sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==} - dev: true + spawn-error-forwarder@1.0.0: {} - /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.16 - dev: true - /spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + spdx-exceptions@2.3.0: {} - /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.3.0 spdx-license-ids: 3.0.16 - dev: true - /spdx-expression-parse@4.0.0: - resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + spdx-expression-parse@4.0.0: dependencies: spdx-exceptions: 2.3.0 spdx-license-ids: 3.0.16 - /spdx-license-ids@3.0.16: - resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + spdx-license-ids@3.0.16: {} - /split-string@3.1.0: - resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} - engines: {node: '>=0.10.0'} + split-string@3.1.0: dependencies: extend-shallow: 3.0.2 - dev: true - /split2@1.0.0: - resolution: {integrity: sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==} + split2@1.0.0: dependencies: through2: 2.0.5 - dev: true - /split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - dev: true + split2@4.2.0: {} - /sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - dev: true + sprintf-js@1.0.3: {} - /sshpk@1.18.0: - resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} - engines: {node: '>=0.10.0'} - hasBin: true + sshpk@1.18.0: dependencies: asn1: 0.2.6 assert-plus: 1.0.0 @@ -9269,86 +10886,52 @@ packages: jsbn: 0.1.1 safer-buffer: 2.1.2 tweetnacl: 0.14.5 - dev: true - /ssri@10.0.5: - resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ssri@10.0.5: dependencies: minipass: 7.0.4 - dev: true - /stack-trace@0.0.10: - resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} - dev: true + stack-trace@0.0.10: {} - /static-extend@0.1.2: - resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} - engines: {node: '>=0.10.0'} + static-extend@0.1.2: dependencies: define-property: 0.2.5 object-copy: 0.1.0 - dev: true - /stream-combiner2@1.1.1: - resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} + stream-combiner2@1.1.1: dependencies: duplexer2: 0.1.4 readable-stream: 2.3.8 - dev: true - /streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} - dev: true + streamsearch@1.1.0: {} - /string-argv@0.1.2: - resolution: {integrity: sha512-mBqPGEOMNJKXRo7z0keX0wlAhbBAjilUdPW13nN0PecVryZxdHIeM7TqbsSUA7VYuS00HGC6mojP7DlQzfa9ZA==} - engines: {node: '>=0.6.19'} - dev: true + string-argv@0.1.2: {} - /string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} - dev: true + string-argv@0.3.2: {} - /string-env-interpolation@1.0.1: - resolution: {integrity: sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==} - dev: true + string-env-interpolation@1.0.1: {} - /string-natural-compare@3.0.1: - resolution: {integrity: sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==} - dev: true + string-natural-compare@3.0.1: {} - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - dev: true - /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + string-width@5.1.2: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 - dev: true - /string-width@7.0.0: - resolution: {integrity: sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==} - engines: {node: '>=18'} + string-width@7.0.0: dependencies: emoji-regex: 10.3.0 get-east-asian-width: 1.2.0 strip-ansi: 7.1.0 - dev: true - /string.prototype.matchall@4.0.10: - resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + string.prototype.matchall@4.0.10: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -9359,157 +10942,91 @@ packages: regexp.prototype.flags: 1.5.1 set-function-name: 2.0.1 side-channel: 1.0.4 - dev: true - /string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} - engines: {node: '>= 0.4'} + string.prototype.trim@1.2.8: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - dev: true - /string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + string.prototype.trimend@1.0.7: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - dev: true - /string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + string.prototype.trimstart@1.0.7: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - dev: true - /string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 - dev: true - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 - dev: true - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - dev: true - /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} + strip-ansi@7.1.0: dependencies: ansi-regex: 6.0.1 - dev: true - /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: true + strip-bom@3.0.0: {} - /strip-eof@1.0.0: - resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} - engines: {node: '>=0.10.0'} - dev: true + strip-eof@1.0.0: {} - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: true + strip-final-newline@2.0.0: {} - /strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - dev: true + strip-final-newline@3.0.0: {} - /strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} + strip-indent@3.0.0: dependencies: min-indent: 1.0.1 - dev: true - /strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - dev: true + strip-json-comments@2.0.1: {} - /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - dev: true + strip-json-comments@3.1.1: {} - /super-regex@1.0.0: - resolution: {integrity: sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==} - engines: {node: '>=18'} + super-regex@1.0.0: dependencies: function-timeout: 1.0.1 time-span: 5.1.0 - dev: true - - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + + supports-color@5.5.0: dependencies: has-flag: 3.0.0 - dev: true - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 - dev: true - /supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} + supports-color@8.1.1: dependencies: has-flag: 4.0.0 - /supports-hyperlinks@3.0.0: - resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} - engines: {node: '>=14.18'} + supports-hyperlinks@3.0.0: dependencies: has-flag: 4.0.0 supports-color: 7.2.0 - dev: true - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: true + supports-preserve-symlinks-flag@1.0.0: {} - /symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - dev: true + symbol-tree@3.2.4: {} - /synckit@0.8.8: - resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} - engines: {node: ^14.18.0 || >=16.0.0} + synckit@0.8.8: dependencies: '@pkgr/core': 0.1.0 tslib: 2.6.2 - dev: true - /tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - dev: true + tapable@2.2.1: {} - /tar@6.2.0: - resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} - engines: {node: '>=10'} + tar@6.2.0: dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 @@ -9517,566 +11034,321 @@ packages: minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 - dev: true - /temp-dir@3.0.0: - resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} - engines: {node: '>=14.16'} - dev: true + temp-dir@3.0.0: {} - /tempy@3.1.0: - resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==} - engines: {node: '>=14.16'} + tempy@3.1.0: dependencies: is-stream: 3.0.0 temp-dir: 3.0.0 type-fest: 2.19.0 unique-string: 3.0.0 - dev: true - /test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} + test-exclude@6.0.0: dependencies: '@istanbuljs/schema': 0.1.3 glob: 7.2.3 minimatch: 3.1.2 - dev: true - /text-extensions@2.4.0: - resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} - engines: {node: '>=8'} - dev: true + text-extensions@2.4.0: {} - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: true + text-table@0.2.0: {} - /thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} + thenify-all@1.6.0: dependencies: thenify: 3.3.1 - dev: true - /thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + thenify@3.3.1: dependencies: any-promise: 1.3.0 - dev: true - /through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + through2@2.0.5: dependencies: readable-stream: 2.3.8 xtend: 4.0.2 - dev: true - /through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true + through@2.3.8: {} - /time-span@5.1.0: - resolution: {integrity: sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==} - engines: {node: '>=12'} + time-span@5.1.0: dependencies: convert-hrtime: 5.0.0 - dev: true - /tlds@1.248.0: - resolution: {integrity: sha512-noj0KdpWTBhwsKxMOXk0rN9otg4kTgLm4WohERRHbJ9IY+kSDKr3RmjitaQ3JFzny+DyvBOQKlFZhp0G0qNSfg==} - hasBin: true - dev: true + tlds@1.248.0: {} - /to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - dev: true + to-fast-properties@2.0.0: {} - /to-object-path@0.3.0: - resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} - engines: {node: '>=0.10.0'} + to-object-path@0.3.0: dependencies: kind-of: 3.2.2 - dev: true - /to-regex-range@2.1.1: - resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} - engines: {node: '>=0.10.0'} + to-regex-range@2.1.1: dependencies: is-number: 3.0.0 repeat-string: 1.6.1 - dev: true - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - requiresBuild: true + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - dev: true - /to-regex@3.0.2: - resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} - engines: {node: '>=0.10.0'} + to-regex@3.0.2: dependencies: define-property: 2.0.2 extend-shallow: 3.0.2 regex-not: 1.0.2 safe-regex: 1.1.0 - dev: true - /tough-cookie@2.5.0: - resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} - engines: {node: '>=0.8'} + tough-cookie@2.5.0: dependencies: psl: 1.9.0 punycode: 2.3.1 - dev: true - /tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - dev: true + tr46@0.0.3: {} - /traverse@0.6.8: - resolution: {integrity: sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==} - engines: {node: '>= 0.4'} - dev: true + traverse@0.6.8: {} - /ts-api-utils@1.0.3(typescript@5.3.3): - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} - peerDependencies: - typescript: '>=4.2.0' + ts-api-utils@1.0.3(typescript@5.3.3): dependencies: typescript: 5.3.3 - dev: true - /ts-unused-exports@9.0.5(typescript@5.3.3): - resolution: {integrity: sha512-1XAXaH2i4Al/aZO06pWDn9MUgTN0KQi+fvWudiWfHUTHAav45gzrx7Xq6JAsu6+LoMlVoyGvNvZSPW3KTjDncA==} - hasBin: true - peerDependencies: - typescript: '>=3.8.3' + ts-api-utils@1.3.0(typescript@5.3.3): + dependencies: + typescript: 5.3.3 + + ts-unused-exports@9.0.5(typescript@5.3.3): dependencies: chalk: 4.1.2 tsconfig-paths: 3.15.0 typescript: 5.3.3 - dev: true - /tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 - dev: true - /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: true + tslib@1.14.1: {} - /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - dev: true + tslib@2.6.2: {} - /tsutils@3.21.0(typescript@5.3.3): - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + tsutils@3.21.0(typescript@5.3.3): dependencies: tslib: 1.14.1 typescript: 5.3.3 - dev: true - /tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + tunnel-agent@0.6.0: dependencies: safe-buffer: 5.2.1 - dev: true - /tweetnacl@0.14.5: - resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} - dev: true + tweetnacl@0.14.5: {} - /type-check@0.3.2: - resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} - engines: {node: '>= 0.8.0'} + type-check@0.3.2: dependencies: prelude-ls: 1.1.2 - dev: true - /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - dev: true - /type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - dev: true + type-detect@4.0.8: {} - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: true + type-fest@0.20.2: {} - /type-fest@0.4.1: - resolution: {integrity: sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==} - engines: {node: '>=6'} - dev: true + type-fest@0.4.1: {} - /type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - dev: true + type-fest@0.6.0: {} - /type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - dev: true + type-fest@0.8.1: {} - /type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} - dev: true + type-fest@1.4.0: {} - /type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - dev: true + type-fest@2.19.0: {} - /type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} - dev: true + type-fest@3.13.1: {} - /type-fest@4.9.0: - resolution: {integrity: sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==} - engines: {node: '>=16'} - dev: true + type-fest@4.9.0: {} - /typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} - engines: {node: '>= 0.4'} + typed-array-buffer@1.0.0: dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 is-typed-array: 1.1.12 - dev: true - /typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} - engines: {node: '>= 0.4'} + typed-array-byte-length@1.0.0: dependencies: call-bind: 1.0.5 for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 - dev: true - /typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} - engines: {node: '>= 0.4'} + typed-array-byte-offset@1.0.0: dependencies: available-typed-arrays: 1.0.5 call-bind: 1.0.5 for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 - dev: true - /typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + typed-array-length@1.0.4: dependencies: call-bind: 1.0.5 for-each: 0.3.3 is-typed-array: 1.1.12 - dev: true - /typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} - engines: {node: '>=14.17'} - hasBin: true - dev: true + typescript@5.3.3: {} - /uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} - engines: {node: '>=0.8.0'} - hasBin: true - requiresBuild: true - dev: true + uglify-js@3.17.4: optional: true - /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unbox-primitive@1.0.2: dependencies: call-bind: 1.0.5 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - dev: true - /undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - dev: true + undici-types@5.26.5: {} - /unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} - dev: true + unicode-canonical-property-names-ecmascript@2.0.0: {} - /unicode-emoji-modifier-base@1.0.0: - resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} - engines: {node: '>=4'} - dev: true + unicode-emoji-modifier-base@1.0.0: {} - /unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} + unicode-match-property-ecmascript@2.0.0: dependencies: unicode-canonical-property-names-ecmascript: 2.0.0 unicode-property-aliases-ecmascript: 2.1.0 - dev: true - /unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} - dev: true + unicode-match-property-value-ecmascript@2.1.0: {} - /unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} - dev: true + unicode-property-aliases-ecmascript@2.1.0: {} - /unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} - engines: {node: '>=18'} - dev: true + unicorn-magic@0.1.0: {} - /union-value@1.0.1: - resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} - engines: {node: '>=0.10.0'} + union-value@1.0.1: dependencies: arr-union: 3.1.0 get-value: 2.0.6 is-extendable: 0.1.1 set-value: 2.0.1 - dev: true - /unique-filename@3.0.0: - resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + unique-filename@3.0.0: dependencies: unique-slug: 4.0.0 - dev: true - /unique-slug@4.0.0: - resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + unique-slug@4.0.0: dependencies: imurmurhash: 0.1.4 - dev: true - /unique-string@3.0.0: - resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} - engines: {node: '>=12'} + unique-string@3.0.0: dependencies: crypto-random-string: 4.0.0 - dev: true - /universal-user-agent@7.0.2: - resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==} - dev: true + universal-user-agent@7.0.2: {} - /universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - dev: true + universalify@2.0.1: {} - /unixify@1.0.0: - resolution: {integrity: sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==} - engines: {node: '>=0.10.0'} + unixify@1.0.0: dependencies: normalize-path: 2.1.1 - dev: true - /unset-value@1.0.0: - resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} - engines: {node: '>=0.10.0'} + unset-value@1.0.0: dependencies: has-value: 0.3.1 isobject: 3.0.1 - dev: true - - /update-browserslist-db@1.0.13(browserslist@4.22.2): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.22.2 - escalade: 3.1.1 - picocolors: 1.0.0 - dev: true - /update-browserslist-db@1.0.13(browserslist@4.23.0): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' + update-browserslist-db@1.0.13(browserslist@4.23.0): dependencies: browserslist: 4.23.0 escalade: 3.1.1 picocolors: 1.0.0 - dev: true - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + uri-js@4.4.1: dependencies: punycode: 2.3.1 - dev: true - /urix@0.1.0: - resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} - deprecated: Please see https://github.com/lydell/urix#deprecated - dev: true + urix@0.1.0: {} - /url-join@5.0.0: - resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true + url-join@5.0.0: {} - /url-regex-safe@2.1.0: - resolution: {integrity: sha512-nfrmOb62+kN4JJRkY/w9QzZeuc63/ddIFfqS9ntok0UYsJW3C5J/jGvYZecwk8V68og2zWA7fcVn4GUXIi5qbg==} - engines: {node: '>= 10.12.0'} - deprecated: Please upgrade to url-regex-safe@v3.0.0+ AND install re2 as an additional dependency in your project via `npm install re2` or `yarn add re2`. + url-regex-safe@2.1.0: dependencies: ip-regex: 4.3.0 re2: 1.20.9 tlds: 1.248.0 transitivePeerDependencies: - supports-color - dev: true - /url-regexp@1.0.2: - resolution: {integrity: sha512-Tt0N/yu3iNSCqZ7wJ6AxTtF/QSemtfzLH+astikB0CR/u/7X132VaBdiNEXbiAGiU+LXsIpyB2Hqz8OY4zw8MA==} - dev: true + url-regexp@1.0.2: {} - /urlpattern-polyfill@8.0.2: - resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} - dev: true + urlpattern-polyfill@8.0.2: {} - /use@3.1.1: - resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} - engines: {node: '>=0.10.0'} - dev: true + use@3.1.1: {} - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true + util-deprecate@1.0.2: {} - /util@0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + util@0.12.5: dependencies: inherits: 2.0.4 is-arguments: 1.1.1 is-generator-function: 1.0.10 is-typed-array: 1.1.12 which-typed-array: 1.1.13 - dev: true - /uuid@3.4.0: - resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. - hasBin: true - dev: true + uuid@3.4.0: {} - /v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} - engines: {node: '>=10.12.0'} + v8-to-istanbul@9.2.0: dependencies: '@jridgewell/trace-mapping': 0.3.20 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 - dev: true - /v8flags@3.2.0: - resolution: {integrity: sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==} - engines: {node: '>= 0.10'} + v8flags@3.2.0: dependencies: homedir-polyfill: 1.0.3 - dev: true - /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - dev: true - /value-or-promise@1.0.12: - resolution: {integrity: sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==} - engines: {node: '>=12'} - dev: true + value-or-promise@1.0.12: {} - /verror@1.10.0: - resolution: {integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=} - engines: {'0': node >=0.6.0} + verror@1.10.0: dependencies: assert-plus: 1.0.0 core-util-is: 1.0.2 extsprintf: 1.3.0 - dev: true - /web-streams-polyfill@3.2.1: - resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} - engines: {node: '>= 8'} - dev: true + web-streams-polyfill@3.2.1: {} - /webcrypto-core@1.7.7: - resolution: {integrity: sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g==} + webcrypto-core@1.7.7: dependencies: '@peculiar/asn1-schema': 2.3.8 '@peculiar/json-schema': 1.1.12 asn1js: 3.0.5 pvtsutils: 1.3.5 tslib: 2.6.2 - dev: true - /webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - dev: true + webidl-conversions@3.0.1: {} - /whatwg-url-compat@0.6.5: - resolution: {integrity: sha512-vbg5+JVNwGtHRI3GheZGWrcUlxF9BXHbA80dLa+2XqJjlV/BK6upoi2j8dIRW9FGPUUyaMm7Hf1pTexHnsk85g==} + whatwg-url-compat@0.6.5: dependencies: tr46: 0.0.3 - dev: true - /whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - dev: true - /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + which-boxed-primitive@1.0.2: dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 - dev: true - /which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} - engines: {node: '>= 0.4'} + which-builtin-type@1.1.3: dependencies: function.prototype.name: 1.1.6 has-tostringtag: 1.0.0 @@ -10090,215 +11362,115 @@ packages: which-boxed-primitive: 1.0.2 which-collection: 1.0.1 which-typed-array: 1.1.13 - dev: true - /which-collection@1.0.1: - resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + which-collection@1.0.1: dependencies: is-map: 2.0.2 is-set: 2.0.2 is-weakmap: 2.0.1 is-weakset: 2.0.2 - dev: true - /which-module@2.0.1: - resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - dev: true + which-module@2.0.1: {} - /which-typed-array@1.1.13: - resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} - engines: {node: '>= 0.4'} + which-typed-array@1.1.13: dependencies: available-typed-arrays: 1.0.5 call-bind: 1.0.5 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - dev: true - /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true + which@1.3.1: dependencies: isexe: 2.0.0 - dev: true - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true + which@2.0.2: dependencies: isexe: 2.0.0 - dev: true - /which@4.0.0: - resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} - engines: {node: ^16.13.0 || >=18.0.0} - hasBin: true + which@4.0.0: dependencies: isexe: 3.1.1 - dev: true - /word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - dev: true + word-wrap@1.2.5: {} - /wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - dev: true + wordwrap@1.0.0: {} - /workerpool@6.2.1: - resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} - dev: true + workerpool@6.2.1: {} - /wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} + wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true - /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + wrap-ansi@8.1.0: dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 - dev: true - /wrap-ansi@9.0.0: - resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} - engines: {node: '>=18'} + wrap-ansi@9.0.0: dependencies: ansi-styles: 6.2.1 string-width: 7.0.0 strip-ansi: 7.1.0 - dev: true - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: true + wrappy@1.0.2: {} - /ws@8.13.0: - resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: true + ws@8.13.0: {} - /ws@8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: true + ws@8.16.0: {} - /xml-name-validator@2.0.1: - resolution: {integrity: sha512-jRKe/iQYMyVJpzPH+3HL97Lgu5HrCfii+qSo+TfjKHtOnvbnvdVfMYrn9Q34YV81M2e5sviJlI6Ko9y+nByzvA==} - dev: true + xml-name-validator@2.0.1: {} - /xmlhttprequest@1.8.0: - resolution: {integrity: sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==} - engines: {node: '>=0.4.0'} - dev: true + xmlhttprequest@1.8.0: {} - /xregexp@5.1.1: - resolution: {integrity: sha512-fKXeVorD+CzWvFs7VBuKTYIW63YD1e1osxwQ8caZ6o1jg6pDAbABDG54LCIq0j5cy7PjRvGIq6sef9DYPXpncg==} + xregexp@5.1.1: dependencies: '@babel/runtime-corejs3': 7.23.6 - dev: true - /xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: true + xtend@4.0.2: {} - /y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - dev: true + y18n@4.0.3: {} - /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: true + y18n@5.0.8: {} - /yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - dev: true + yallist@3.1.1: {} - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yallist@4.0.0: {} - /yaml-eslint-parser@1.2.2: - resolution: {integrity: sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==} - engines: {node: ^14.17.0 || >=16.0.0} + yaml-eslint-parser@1.2.2: dependencies: eslint-visitor-keys: 3.4.3 lodash: 4.17.21 yaml: 2.3.4 - dev: true - /yaml@2.3.4: - resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} - engines: {node: '>= 14'} - dev: true + yaml@2.3.4: {} - /yargs-parser@18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} - engines: {node: '>=6'} + yargs-parser@18.1.3: dependencies: camelcase: 5.3.1 decamelize: 1.2.0 - dev: true - /yargs-parser@20.2.4: - resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} - engines: {node: '>=10'} - dev: true + yargs-parser@20.2.4: {} - /yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - dev: true + yargs-parser@21.1.1: {} - /yargs-unparser@2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} - engines: {node: '>=10'} + yargs-unparser@2.0.0: dependencies: camelcase: 6.3.0 decamelize: 4.0.0 flat: 5.0.2 is-plain-obj: 2.1.0 - dev: true - /yargs@15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} - engines: {node: '>=8'} + yargs@15.4.1: dependencies: cliui: 6.0.0 decamelize: 1.2.0 @@ -10311,11 +11483,8 @@ packages: which-module: 2.0.1 y18n: 4.0.3 yargs-parser: 18.1.3 - dev: true - /yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} + yargs@16.2.0: dependencies: cliui: 7.0.4 escalade: 3.1.1 @@ -10324,11 +11493,8 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 20.2.4 - dev: true - /yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + yargs@17.7.2: dependencies: cliui: 8.0.1 escalade: 3.1.1 @@ -10337,9 +11503,5 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 - dev: true - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - dev: true + yocto-queue@0.1.0: {} From d417d05d946dbcb61402b94813ead1bfcee8eab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrija=20Vu=C4=8Dini=C4=87?= Date: Wed, 15 May 2024 18:40:23 +0200 Subject: [PATCH 182/273] fix: handle deprecated `typeParameters` (#1229) https://typescript-eslint.io/troubleshooting/#the-key-property-is-deprecated-on-type-nodes-use-key-instead-warnings `typeParameters` are deprecated, and should use `typeArguments` instead. Allow fallback to `typeParameters` to maintain backward compatibility. --- src/utils/hasReturnValue.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/utils/hasReturnValue.js b/src/utils/hasReturnValue.js index 813585476..9f103f68c 100644 --- a/src/utils/hasReturnValue.js +++ b/src/utils/hasReturnValue.js @@ -19,9 +19,8 @@ const isNewPromiseExpression = (node) => { * @returns {boolean} */ const isVoidPromise = (node) => { - return /** @type {import('@typescript-eslint/types').TSESTree.TSTypeReference} */ ( - node - )?.typeParameters?.params?.[0]?.type === 'TSVoidKeyword'; + return /** @type {import('@typescript-eslint/types').TSESTree.TSTypeReference} */ (node)?.typeArguments?.params?.[0]?.type === 'TSVoidKeyword' + || /** @type {import('@typescript-eslint/types').TSESTree.TSTypeReference} */ (node)?.typeParameters?.params?.[0]?.type === 'TSVoidKeyword'; }; const undefinedKeywords = new Set([ From 244116e52fc3cedd1d16dd91d8ab218e40f6cfc6 Mon Sep 17 00:00:00 2001 From: 43081j <43081j@users.noreply.github.com> Date: Wed, 15 May 2024 18:28:57 +0100 Subject: [PATCH 183/273] chore: remove is-builtin-module Removes `is-builtin-module` and uses the built in function provided by node itself (via `node:module`). --- .ncurc.cjs | 1 - package.json | 1 - pnpm-lock.yaml | 19 ++++++++----------- src/rules/importsAsDependencies.js | 2 +- 4 files changed, 9 insertions(+), 14 deletions(-) diff --git a/.ncurc.cjs b/.ncurc.cjs index 9194a9c77..fc63f4815 100644 --- a/.ncurc.cjs +++ b/.ncurc.cjs @@ -7,7 +7,6 @@ module.exports = { 'chai', 'decamelize', 'escape-string-regexp', - 'is-builtin-module', 'open-editor', ], }; diff --git a/package.json b/package.json index f16e6f3b9..9740bd123 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,6 @@ "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", - "is-builtin-module": "^3.2.1", "semver": "^7.6.1", "spdx-expression-parse": "^4.0.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6f57b82d5..8e80a1529 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,9 +26,6 @@ importers: esquery: specifier: ^1.5.0 version: 1.5.0 - is-builtin-module: - specifier: ^3.2.1 - version: 3.2.1 semver: specifier: ^7.6.1 version: 7.6.1 @@ -8104,7 +8101,7 @@ snapshots: '@typescript-eslint/parser': 7.8.0(eslint@9.2.0)(typescript@5.3.3) eslint: 9.2.0 eslint-config-prettier: 9.1.0(eslint@9.2.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.2.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0) eslint-plugin-ava: 14.0.0(eslint@9.2.0) eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0)(typescript@5.3.3) eslint-plugin-cypress: 2.15.1(eslint@9.2.0) @@ -8163,12 +8160,12 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.2.0): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0): dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 eslint: 9.2.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.2.0))(eslint@9.2.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0))(eslint@9.2.0) eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0) fast-glob: 3.3.2 get-tsconfig: 4.7.2 @@ -8180,14 +8177,14 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.2.0))(eslint@9.2.0): + eslint-module-utils@2.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0))(eslint@9.2.0): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 7.8.0(eslint@9.2.0)(typescript@5.3.3) eslint: 9.2.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.2.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0) transitivePeerDependencies: - supports-color @@ -8208,8 +8205,8 @@ snapshots: '@typescript-eslint/utils': 6.19.1(eslint@9.2.0)(typescript@5.3.3) chance: 1.1.11 debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.2.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.2.0))(eslint@9.2.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0))(eslint@9.2.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -8269,7 +8266,7 @@ snapshots: doctrine: 3.0.0 eslint: 9.2.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.2.0))(eslint@9.2.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0))(eslint@9.2.0) get-tsconfig: 4.7.2 is-glob: 4.0.3 minimatch: 3.1.2 diff --git a/src/rules/importsAsDependencies.js b/src/rules/importsAsDependencies.js index 75167b52c..d21a4a378 100644 --- a/src/rules/importsAsDependencies.js +++ b/src/rules/importsAsDependencies.js @@ -7,7 +7,7 @@ import { import { readFileSync, } from 'fs'; -import isBuiltinModule from 'is-builtin-module'; +import {isBuiltin as isBuiltinModule} from 'node:module'; import { join, } from 'path'; From 93a94158585802b1ef92bb703b06599cf19c507b Mon Sep 17 00:00:00 2001 From: Will Harney Date: Thu, 23 May 2024 12:33:04 -0400 Subject: [PATCH 184/273] fix(`require-yields`): avoid error when `ExportNamedDeclaration` has no `declaration` prop --- src/iterateJsdoc.js | 2 +- test/rules/assertions/requireYields.js | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index ff9a2761c..9eeddf9b0 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -1353,7 +1353,7 @@ const getUtils = ( * @type {import('estree').ExportNamedDeclaration| * import('estree').ExportDefaultDeclaration} */ (node).declaration - ).generator, + )?.generator, ); }; diff --git a/test/rules/assertions/requireYields.js b/test/rules/assertions/requireYields.js index 5e5721837..0d915397f 100644 --- a/test/rules/assertions/requireYields.js +++ b/test/rules/assertions/requireYields.js @@ -1884,5 +1884,18 @@ export default { } `, }, + { + code: ` + /** + * + */ + export { foo } from "bar" + `, + options: [ + { + contexts: ['ExportNamedDeclaration'] + } + ] + } ], }; From fb3e0e6cd2535af323286b56e37bccf519d56920 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 29 May 2024 08:59:52 -0700 Subject: [PATCH 185/273] fix: bump jsdoccomment and semver; fixes #1233 Also: - chore: bump devDeps. --- package.json | 40 +- pnpm-lock.yaml | 3297 +++++++++++++++++----------- test/rules/assertions/matchName.js | 16 + 3 files changed, 2071 insertions(+), 1282 deletions(-) diff --git a/package.json b/package.json index 9740bd123..2a47cd052 100644 --- a/package.json +++ b/package.json @@ -5,42 +5,42 @@ "url": "http://gajus.com" }, "dependencies": { - "@es-joy/jsdoccomment": "~0.43.0", + "@es-joy/jsdoccomment": "~0.43.1", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", - "semver": "^7.6.1", + "semver": "^7.6.2", "spdx-expression-parse": "^4.0.0" }, "description": "JSDoc linting rules for ESLint.", "devDependencies": { - "@babel/cli": "^7.24.5", - "@babel/core": "^7.24.5", - "@babel/eslint-parser": "^7.24.5", - "@babel/node": "^7.23.9", + "@babel/cli": "^7.24.6", + "@babel/core": "^7.24.6", + "@babel/eslint-parser": "^7.24.6", + "@babel/node": "^7.24.6", "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-transform-flow-strip-types": "^7.24.1", - "@babel/preset-env": "^7.24.5", + "@babel/plugin-transform-flow-strip-types": "^7.24.6", + "@babel/preset-env": "^7.24.6", "@es-joy/escodegen": "^3.5.1", "@es-joy/jsdoc-eslint-parser": "^0.21.1", "@hkdobrev/run-if-changed": "^0.3.1", "@semantic-release/commit-analyzer": "^12.0.0", - "@semantic-release/github": "^10.0.3", - "@semantic-release/npm": "^12.0.0", + "@semantic-release/github": "^10.0.5", + "@semantic-release/npm": "^12.0.1", "@types/chai": "^4.3.16", "@types/debug": "^4.1.12", "@types/eslint": "^8.56.10", - "@types/esquery": "^1.5.3", + "@types/esquery": "^1.5.4", "@types/estree": "^1.0.5", "@types/json-schema": "^7.0.15", "@types/lodash.defaultsdeep": "^4.6.9", "@types/mocha": "^10.0.6", - "@types/node": "^20.12.11", + "@types/node": "^20.12.12", "@types/semver": "^7.5.8", "@types/spdx-expression-parse": "^3.0.5", - "@typescript-eslint/parser": "^7.8.0", + "@typescript-eslint/parser": "^7.11.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "c8": "^9.1.0", @@ -48,22 +48,22 @@ "chai": "^4.3.10", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "9.2.0", - "eslint-config-canonical": "~42.8.2", + "eslint": "9.3.0", + "eslint-config-canonical": "~43.0.12", "espree": "^10.0.1", "gitdown": "^3.1.5", - "glob": "^10.3.13", - "globals": "^15.2.0", + "glob": "^10.4.1", + "globals": "^15.3.0", "husky": "^9.0.11", "jsdoc-type-pratt-parser": "^4.0.0", "json-schema": "^0.4.0", - "lint-staged": "^15.2.2", + "lint-staged": "^15.2.5", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.4.0", "open-editor": "^3.0.0", "replace": "^1.2.2", - "rimraf": "^5.0.5", - "semantic-release": "^23.0.8", + "rimraf": "^5.0.7", + "semantic-release": "^23.1.1", "typescript": "5.3.x" }, "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8e80a1529..28bf266b2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@es-joy/jsdoccomment': - specifier: ~0.43.0 - version: 0.43.0 + specifier: ~0.43.1 + version: 0.43.1 are-docs-informative: specifier: ^0.0.2 version: 0.0.2 @@ -27,33 +27,33 @@ importers: specifier: ^1.5.0 version: 1.5.0 semver: - specifier: ^7.6.1 - version: 7.6.1 + specifier: ^7.6.2 + version: 7.6.2 spdx-expression-parse: specifier: ^4.0.0 version: 4.0.0 devDependencies: '@babel/cli': - specifier: ^7.24.5 - version: 7.24.5(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@babel/core': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@babel/eslint-parser': - specifier: ^7.24.5 - version: 7.24.5(@babel/core@7.24.5)(eslint@9.2.0) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6)(eslint@9.3.0) '@babel/node': - specifier: ^7.23.9 - version: 7.23.9(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@babel/plugin-syntax-class-properties': specifier: ^7.12.13 - version: 7.12.13(@babel/core@7.24.5) + version: 7.12.13(@babel/core@7.24.6) '@babel/plugin-transform-flow-strip-types': - specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@babel/preset-env': - specifier: ^7.24.5 - version: 7.24.5(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@es-joy/escodegen': specifier: ^3.5.1 version: 3.5.1 @@ -65,13 +65,13 @@ importers: version: 0.3.1 '@semantic-release/commit-analyzer': specifier: ^12.0.0 - version: 12.0.0(semantic-release@23.0.8(typescript@5.3.3)) + version: 12.0.0(semantic-release@23.1.1(typescript@5.3.3)) '@semantic-release/github': - specifier: ^10.0.3 - version: 10.0.3(semantic-release@23.0.8(typescript@5.3.3)) + specifier: ^10.0.5 + version: 10.0.5(semantic-release@23.1.1(typescript@5.3.3)) '@semantic-release/npm': - specifier: ^12.0.0 - version: 12.0.0(semantic-release@23.0.8(typescript@5.3.3)) + specifier: ^12.0.1 + version: 12.0.1(semantic-release@23.1.1(typescript@5.3.3)) '@types/chai': specifier: ^4.3.16 version: 4.3.16 @@ -82,8 +82,8 @@ importers: specifier: ^8.56.10 version: 8.56.10 '@types/esquery': - specifier: ^1.5.3 - version: 1.5.3 + specifier: ^1.5.4 + version: 1.5.4 '@types/estree': specifier: ^1.0.5 version: 1.0.5 @@ -97,8 +97,8 @@ importers: specifier: ^10.0.6 version: 10.0.6 '@types/node': - specifier: ^20.12.11 - version: 20.12.11 + specifier: ^20.12.12 + version: 20.12.12 '@types/semver': specifier: ^7.5.8 version: 7.5.8 @@ -106,8 +106,8 @@ importers: specifier: ^3.0.5 version: 3.0.5 '@typescript-eslint/parser': - specifier: ^7.8.0 - version: 7.8.0(eslint@9.2.0)(typescript@5.3.3) + specifier: ^7.11.0 + version: 7.11.0(eslint@9.3.0)(typescript@5.3.3) babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -130,11 +130,11 @@ importers: specifier: ^5.0.1 version: 5.0.1 eslint: - specifier: 9.2.0 - version: 9.2.0 + specifier: 9.3.0 + version: 9.3.0 eslint-config-canonical: - specifier: ~42.8.2 - version: 42.8.2(@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.5))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.5))(@types/eslint@8.56.10)(@types/node@20.12.11)(encoding@0.1.13)(eslint@9.2.0)(graphql@16.8.1)(typescript@5.3.3) + specifier: ~43.0.12 + version: 43.0.12(@babel/plugin-syntax-flow@7.24.6(@babel/core@7.24.6))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.6))(@types/eslint@8.56.10)(@types/node@20.12.12)(encoding@0.1.13)(eslint@9.3.0)(typescript@5.3.3) espree: specifier: ^10.0.1 version: 10.0.1 @@ -142,11 +142,11 @@ importers: specifier: ^3.1.5 version: 3.1.5 glob: - specifier: ^10.3.13 - version: 10.3.13 + specifier: ^10.4.1 + version: 10.4.1 globals: - specifier: ^15.2.0 - version: 15.2.0 + specifier: ^15.3.0 + version: 15.3.0 husky: specifier: ^9.0.11 version: 9.0.11 @@ -157,8 +157,8 @@ importers: specifier: ^0.4.0 version: 0.4.0 lint-staged: - specifier: ^15.2.2 - version: 15.2.2 + specifier: ^15.2.5 + version: 15.2.5 lodash.defaultsdeep: specifier: ^4.6.1 version: 4.6.1 @@ -172,11 +172,11 @@ importers: specifier: ^1.2.2 version: 1.2.2 rimraf: - specifier: ^5.0.5 - version: 5.0.5 + specifier: ^5.0.7 + version: 5.0.7 semantic-release: - specifier: ^23.0.8 - version: 23.0.8(typescript@5.3.3) + specifier: ^23.1.1 + version: 23.1.1(typescript@5.3.3) typescript: specifier: 5.3.x version: 5.3.3 @@ -195,8 +195,8 @@ packages: resolution: {integrity: sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==} engines: {node: '>=14'} - '@babel/cli@7.24.5': - resolution: {integrity: sha512-2qg1mYtJRsOOWF6IUwLP5jI42P8Cc0hQ5TmnjLrik/4DKouO8dFJN80HEz81VmVeUs97yuuf3vQ/9j7Elrcjlg==} + '@babel/cli@7.24.6': + resolution: {integrity: sha512-Sm/YhG/0REw9SKByFHDf4hkk7PYsjcsOyZgHGz1nvab4tUTQ9N4XVv+ykK0Y+VCJ3OshA/7EDyxnwCd8NEP/mQ==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: @@ -206,56 +206,58 @@ packages: resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.24.4': - resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} + '@babel/code-frame@7.24.6': + resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.24.6': + resolution: {integrity: sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==} engines: {node: '>=6.9.0'} - '@babel/core@7.24.5': - resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==} + '@babel/core@7.24.6': + resolution: {integrity: sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==} engines: {node: '>=6.9.0'} - '@babel/eslint-parser@7.24.5': - resolution: {integrity: sha512-gsUcqS/fPlgAw1kOtpss7uhY6E9SFFANQ6EFX5GTvzUwaV0+sGaZWk6xq22MOdeT9wfxyokW3ceCUvOiRtZciQ==} + '@babel/eslint-parser@7.24.6': + resolution: {integrity: sha512-Q1BfQX42zXHx732PLW0w4+Y3wJjoZKEMaatFUEAmQ7Z+jCXxinzeqX9bvv2Q8xNPes/H6F0I23oGkcgjaItmLw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - '@babel/eslint-plugin@7.23.5': - resolution: {integrity: sha512-03+E/58Hoo/ui69gR+beFdGpplpoVK0BSIdke2iw4/Bz7eGN0ssRenNlnU4nmbkowNQOPCStKSwFr8H6DiY49g==} + '@babel/eslint-plugin@7.24.6': + resolution: {integrity: sha512-sUDNpeOID2Am4cBXEmyhRaSvwwXIHVaG7trk7HO1Ri5VrEIBPYXg4ulTvZm2Lo0Y7u7Tw8QLe6JygchdOOto6w==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 - - '@babel/generator@7.24.4': - resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} - engines: {node: '>=6.9.0'} + eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 '@babel/generator@7.24.5': resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==} engines: {node: '>=6.9.0'} + '@babel/generator@7.24.6': + resolution: {integrity: sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.22.5': resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} - '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': - resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} + '@babel/helper-annotate-as-pure@7.24.6': + resolution: {integrity: sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.23.6': - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + '@babel/helper-builder-binary-assignment-operator-visitor@7.24.6': + resolution: {integrity: sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.24.4': - resolution: {integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==} + '@babel/helper-compilation-targets@7.24.6': + resolution: {integrity: sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-create-class-features-plugin@7.24.5': - resolution: {integrity: sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==} + '@babel/helper-create-class-features-plugin@7.24.6': + resolution: {integrity: sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -266,6 +268,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-create-regexp-features-plugin@7.24.6': + resolution: {integrity: sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-define-polyfill-provider@0.6.1': resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} peerDependencies: @@ -275,120 +283,122 @@ packages: resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} + '@babel/helper-environment-visitor@7.24.6': + resolution: {integrity: sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==} + engines: {node: '>=6.9.0'} + '@babel/helper-function-name@7.23.0': resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} - '@babel/helper-hoist-variables@7.22.5': - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + '@babel/helper-function-name@7.24.6': + resolution: {integrity: sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.23.0': - resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + '@babel/helper-hoist-variables@7.22.5': + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.24.5': - resolution: {integrity: sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==} + '@babel/helper-hoist-variables@7.24.6': + resolution: {integrity: sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.24.3': - resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} + '@babel/helper-member-expression-to-functions@7.24.6': + resolution: {integrity: sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.23.3': - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + '@babel/helper-module-imports@7.24.6': + resolution: {integrity: sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-module-transforms@7.24.5': - resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} + '@babel/helper-module-transforms@7.24.6': + resolution: {integrity: sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.22.5': - resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + '@babel/helper-optimise-call-expression@7.24.6': + resolution: {integrity: sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==} engines: {node: '>=6.9.0'} '@babel/helper-plugin-utils@7.22.5': resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.24.0': - resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} - engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.24.5': resolution: {integrity: sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==} engines: {node: '>=6.9.0'} - '@babel/helper-remap-async-to-generator@7.22.20': - resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + '@babel/helper-plugin-utils@7.24.6': + resolution: {integrity: sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.24.1': - resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} + '@babel/helper-remap-async-to-generator@7.24.6': + resolution: {integrity: sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-simple-access@7.22.5': - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-simple-access@7.24.5': - resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==} + '@babel/helper-replace-supers@7.24.6': + resolution: {integrity: sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - '@babel/helper-skip-transparent-expression-wrappers@7.22.5': - resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + '@babel/helper-simple-access@7.24.6': + resolution: {integrity: sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==} engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.22.6': - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + '@babel/helper-skip-transparent-expression-wrappers@7.24.6': + resolution: {integrity: sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==} engines: {node: '>=6.9.0'} '@babel/helper-split-export-declaration@7.24.5': resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.23.4': - resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + '@babel/helper-split-export-declaration@7.24.6': + resolution: {integrity: sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==} engines: {node: '>=6.9.0'} '@babel/helper-string-parser@7.24.1': resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.22.20': - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + '@babel/helper-string-parser@7.24.6': + resolution: {integrity: sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==} engines: {node: '>=6.9.0'} '@babel/helper-validator-identifier@7.24.5': resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.23.5': - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + '@babel/helper-validator-identifier@7.24.6': + resolution: {integrity: sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.24.6': + resolution: {integrity: sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.22.20': - resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + '@babel/helper-wrap-function@7.24.6': + resolution: {integrity: sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.5': - resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==} + '@babel/helpers@7.24.6': + resolution: {integrity: sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==} engines: {node: '>=6.9.0'} '@babel/highlight@7.24.2': resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} - '@babel/node@7.23.9': - resolution: {integrity: sha512-/d4ju/POwlGIJlZ+NqWH1qu61wt6ZlTZZZutrK2MOSdaH1JCh726nLw/GSvAjG+LTY6CO9SsB8uWcttnFKm6yg==} + '@babel/highlight@7.24.6': + resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==} + engines: {node: '>=6.9.0'} + + '@babel/node@7.24.6': + resolution: {integrity: sha512-63bD/Kbh1Vl6HapTZLSsyaGlQhhpF1/GpyS1oJotroJKoamOgKKEEKk3iHZAkicjcr+n4V4zdB0V+8siv6AZ5Q==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: @@ -399,36 +409,36 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.24.4': - resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} + '@babel/parser@7.24.5': + resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.24.5': - resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} + '@babel/parser@7.24.6': + resolution: {integrity: sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.5': - resolution: {integrity: sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==} + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.6': + resolution: {integrity: sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1': - resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.6': + resolution: {integrity: sha512-iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1': - resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.6': + resolution: {integrity: sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1': - resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.6': + resolution: {integrity: sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -465,8 +475,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-flow@7.24.1': - resolution: {integrity: sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==} + '@babel/plugin-syntax-flow@7.24.6': + resolution: {integrity: sha512-gNkksSdV8RbsCoHF9sjVYrHfYACMl/8U32UfUhJ9+84/ASXw8dlx+eHyyF0m6ncQJ9IBSxfuCkB36GJqYdXTOA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -477,8 +487,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.24.1': - resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} + '@babel/plugin-syntax-import-assertions@7.24.6': + resolution: {integrity: sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.24.6': + resolution: {integrity: sha512-D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -547,230 +563,230 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-arrow-functions@7.24.1': - resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} + '@babel/plugin-transform-arrow-functions@7.24.6': + resolution: {integrity: sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.24.3': - resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} + '@babel/plugin-transform-async-generator-functions@7.24.6': + resolution: {integrity: sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-to-generator@7.24.1': - resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} + '@babel/plugin-transform-async-to-generator@7.24.6': + resolution: {integrity: sha512-NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoped-functions@7.24.1': - resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} + '@babel/plugin-transform-block-scoped-functions@7.24.6': + resolution: {integrity: sha512-XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.24.5': - resolution: {integrity: sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==} + '@babel/plugin-transform-block-scoping@7.24.6': + resolution: {integrity: sha512-S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.24.1': - resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} + '@babel/plugin-transform-class-properties@7.24.6': + resolution: {integrity: sha512-j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-static-block@7.24.4': - resolution: {integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==} + '@babel/plugin-transform-class-static-block@7.24.6': + resolution: {integrity: sha512-1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 - '@babel/plugin-transform-classes@7.24.5': - resolution: {integrity: sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==} + '@babel/plugin-transform-classes@7.24.6': + resolution: {integrity: sha512-+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-computed-properties@7.24.1': - resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} + '@babel/plugin-transform-computed-properties@7.24.6': + resolution: {integrity: sha512-cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.24.5': - resolution: {integrity: sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==} + '@babel/plugin-transform-destructuring@7.24.6': + resolution: {integrity: sha512-YLW6AE5LQpk5npNXL7i/O+U9CE4XsBCuRPgyjl1EICZYKmcitV+ayuuUGMJm2lC1WWjXYszeTnIxF/dq/GhIZQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dotall-regex@7.24.1': - resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} + '@babel/plugin-transform-dotall-regex@7.24.6': + resolution: {integrity: sha512-rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-keys@7.24.1': - resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} + '@babel/plugin-transform-duplicate-keys@7.24.6': + resolution: {integrity: sha512-/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dynamic-import@7.24.1': - resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} + '@babel/plugin-transform-dynamic-import@7.24.6': + resolution: {integrity: sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-exponentiation-operator@7.24.1': - resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} + '@babel/plugin-transform-exponentiation-operator@7.24.6': + resolution: {integrity: sha512-EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-export-namespace-from@7.24.1': - resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} + '@babel/plugin-transform-export-namespace-from@7.24.6': + resolution: {integrity: sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-flow-strip-types@7.24.1': - resolution: {integrity: sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==} + '@babel/plugin-transform-flow-strip-types@7.24.6': + resolution: {integrity: sha512-1l8b24NoCpaQ13Vi6FtLG1nv6kNoi8PWvQb1AYO7GHZDpFfBYc3lbXArx1lP2KRt8b4pej1eWc/zrRmsQTfOdQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-for-of@7.24.1': - resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} + '@babel/plugin-transform-for-of@7.24.6': + resolution: {integrity: sha512-n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-function-name@7.24.1': - resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} + '@babel/plugin-transform-function-name@7.24.6': + resolution: {integrity: sha512-sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-json-strings@7.24.1': - resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} + '@babel/plugin-transform-json-strings@7.24.6': + resolution: {integrity: sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-literals@7.24.1': - resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} + '@babel/plugin-transform-literals@7.24.6': + resolution: {integrity: sha512-f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-logical-assignment-operators@7.24.1': - resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} + '@babel/plugin-transform-logical-assignment-operators@7.24.6': + resolution: {integrity: sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-member-expression-literals@7.24.1': - resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} + '@babel/plugin-transform-member-expression-literals@7.24.6': + resolution: {integrity: sha512-9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-amd@7.24.1': - resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} + '@babel/plugin-transform-modules-amd@7.24.6': + resolution: {integrity: sha512-eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.24.1': - resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} + '@babel/plugin-transform-modules-commonjs@7.24.6': + resolution: {integrity: sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.24.1': - resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} + '@babel/plugin-transform-modules-systemjs@7.24.6': + resolution: {integrity: sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-umd@7.24.1': - resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} + '@babel/plugin-transform-modules-umd@7.24.6': + resolution: {integrity: sha512-esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-named-capturing-groups-regex@7.22.5': - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + '@babel/plugin-transform-named-capturing-groups-regex@7.24.6': + resolution: {integrity: sha512-6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-new-target@7.24.1': - resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} + '@babel/plugin-transform-new-target@7.24.6': + resolution: {integrity: sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.1': - resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} + '@babel/plugin-transform-nullish-coalescing-operator@7.24.6': + resolution: {integrity: sha512-+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-numeric-separator@7.24.1': - resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} + '@babel/plugin-transform-numeric-separator@7.24.6': + resolution: {integrity: sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-rest-spread@7.24.5': - resolution: {integrity: sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==} + '@babel/plugin-transform-object-rest-spread@7.24.6': + resolution: {integrity: sha512-OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-super@7.24.1': - resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} + '@babel/plugin-transform-object-super@7.24.6': + resolution: {integrity: sha512-N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-catch-binding@7.24.1': - resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} + '@babel/plugin-transform-optional-catch-binding@7.24.6': + resolution: {integrity: sha512-L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.24.5': - resolution: {integrity: sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==} + '@babel/plugin-transform-optional-chaining@7.24.6': + resolution: {integrity: sha512-cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-parameters@7.24.5': - resolution: {integrity: sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==} + '@babel/plugin-transform-parameters@7.24.6': + resolution: {integrity: sha512-ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.24.1': - resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} + '@babel/plugin-transform-private-methods@7.24.6': + resolution: {integrity: sha512-T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-property-in-object@7.24.5': - resolution: {integrity: sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==} + '@babel/plugin-transform-private-property-in-object@7.24.6': + resolution: {integrity: sha512-Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-property-literals@7.24.1': - resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} + '@babel/plugin-transform-property-literals@7.24.6': + resolution: {integrity: sha512-oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -781,74 +797,74 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.24.1': - resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} + '@babel/plugin-transform-regenerator@7.24.6': + resolution: {integrity: sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-reserved-words@7.24.1': - resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} + '@babel/plugin-transform-reserved-words@7.24.6': + resolution: {integrity: sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-shorthand-properties@7.24.1': - resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} + '@babel/plugin-transform-shorthand-properties@7.24.6': + resolution: {integrity: sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-spread@7.24.1': - resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} + '@babel/plugin-transform-spread@7.24.6': + resolution: {integrity: sha512-h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-sticky-regex@7.24.1': - resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} + '@babel/plugin-transform-sticky-regex@7.24.6': + resolution: {integrity: sha512-fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-template-literals@7.24.1': - resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} + '@babel/plugin-transform-template-literals@7.24.6': + resolution: {integrity: sha512-BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typeof-symbol@7.24.5': - resolution: {integrity: sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==} + '@babel/plugin-transform-typeof-symbol@7.24.6': + resolution: {integrity: sha512-IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-escapes@7.24.1': - resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} + '@babel/plugin-transform-unicode-escapes@7.24.6': + resolution: {integrity: sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-property-regex@7.24.1': - resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} + '@babel/plugin-transform-unicode-property-regex@7.24.6': + resolution: {integrity: sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-regex@7.24.1': - resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} + '@babel/plugin-transform-unicode-regex@7.24.6': + resolution: {integrity: sha512-pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-sets-regex@7.24.1': - resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} + '@babel/plugin-transform-unicode-sets-regex@7.24.6': + resolution: {integrity: sha512-quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.24.5': - resolution: {integrity: sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==} + '@babel/preset-env@7.24.6': + resolution: {integrity: sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -858,8 +874,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/register@7.23.7': - resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} + '@babel/register@7.24.6': + resolution: {integrity: sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -879,22 +895,26 @@ packages: resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.24.1': - resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} + '@babel/template@7.24.6': + resolution: {integrity: sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==} engines: {node: '>=6.9.0'} '@babel/traverse@7.24.5': resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==} engines: {node: '>=6.9.0'} - '@babel/types@7.24.0': - resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + '@babel/traverse@7.24.6': + resolution: {integrity: sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==} engines: {node: '>=6.9.0'} '@babel/types@7.24.5': resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} engines: {node: '>=6.9.0'} + '@babel/types@7.24.6': + resolution: {integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==} + engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -919,8 +939,8 @@ packages: resolution: {integrity: sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==} engines: {node: '>=16'} - '@es-joy/jsdoccomment@0.43.0': - resolution: {integrity: sha512-Q1CnsQrytI3TlCB1IVWXWeqUIPGVEKGaE7IbVdt13Nq/3i0JESAkQQERrfiQkmlpijl+++qyqPgaS31Bvc1jRQ==} + '@es-joy/jsdoccomment@0.43.1': + resolution: {integrity: sha512-I238eDtOolvCuvtxrnqtlBaw0BwdQuYqK7eA6XIonicMdOOOb75mqdIzkGDUbS04+1Di007rgm9snFRNeVrOog==} engines: {node: '>=16'} '@eslint-community/eslint-utils@4.4.0': @@ -941,12 +961,16 @@ packages: resolution: {integrity: sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@3.1.0': + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@8.56.0': resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@9.2.0': - resolution: {integrity: sha512-ESiIudvhoYni+MdsI8oD7skpprZ89qKocwRM2KEvhhBJ9nl5MRh7BXU5GTod7Mdygq+AUl+QzId6iWJKR/wABA==} + '@eslint/js@9.3.0': + resolution: {integrity: sha512-niBqk8iwv96+yuTwjM6bWg8ovzAPF9qkICsGtcoa5/dmqcEMfdwNAX7+/OHcJHc7wj7XqPxH98oAHytFYlw6Sw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@graphql-eslint/eslint-plugin@3.20.1': @@ -1064,8 +1088,8 @@ packages: '@humanwhocodes/object-schema@2.0.3': resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - '@humanwhocodes/retry@0.2.4': - resolution: {integrity: sha512-Ttl/jHpxfS3st5sxwICYfk4pOH0WrLI1SpW283GgQL7sCWU7EHIOhX4b4fkIxr3tkfzwg8+FNojtzsIEE7Ecgg==} + '@humanwhocodes/retry@0.3.0': + resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} engines: {node: '>=18.18'} '@isaacs/cliui@8.0.2': @@ -1101,8 +1125,8 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@next/eslint-plugin-next@13.5.6': - resolution: {integrity: sha512-ng7pU/DDsxPgT6ZPvuprxrkeew3XaRf4LAT4FabaEO/hAbvVx4P7wqnqdbTdDn1kgTvsI4tpIgT4Awn/m0bGbg==} + '@next/eslint-plugin-next@14.2.3': + resolution: {integrity: sha512-L3oDricIIjgj1AVnRdRor21gI7mShlSwU/1ZGHmqM3LzHhXXhdkrfeNY5zif25Bi5Dd7fiJHsbhoZCHfXYvlAw==} '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==} @@ -1149,9 +1173,6 @@ packages: '@octokit/openapi-types@20.0.0': resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==} - '@octokit/openapi-types@21.2.0': - resolution: {integrity: sha512-xx+Xd6I7rYvul/hgUDqv6TeGX0IOGnhSg9IOeYgd/uI7IAqUy6DE2B6Ipv2M4mWoxaMcWjIzgTIcv8pMO3F3vw==} - '@octokit/openapi-types@22.2.0': resolution: {integrity: sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==} @@ -1184,9 +1205,6 @@ packages: '@octokit/types@12.6.0': resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} - '@octokit/types@13.1.0': - resolution: {integrity: sha512-nBwAFOYqVUUJ2AZFK4ZzESQptaAVqdTDKk8gE0Xr0o99WuPDSrhUC38x0F40xD9OUxXhOOuZKWNNVVLPSHQDvQ==} - '@octokit/types@13.5.0': resolution: {integrity: sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==} @@ -1227,8 +1245,8 @@ packages: '@repeaterjs/repeater@3.0.5': resolution: {integrity: sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA==} - '@rushstack/eslint-patch@1.6.1': - resolution: {integrity: sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw==} + '@sec-ant/readable-stream@0.4.1': + resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} '@semantic-release/commit-analyzer@12.0.0': resolution: {integrity: sha512-qG+md5gdes+xa8zP7lIo1fWE17zRdO8yMCaxh9lyL65TQleoSv8WHHOqRURfghTytUh+NpkSyBprQ5hrkxOKVQ==} @@ -1240,14 +1258,14 @@ packages: resolution: {integrity: sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==} engines: {node: '>=18'} - '@semantic-release/github@10.0.3': - resolution: {integrity: sha512-nSJQboKrG4xBn7hHpRMrK8lt5DgqJg50ZMz9UbrsfTxuRk55XVoQEadbGZ2L9M0xZAC6hkuwkDhQJKqfPU35Fw==} + '@semantic-release/github@10.0.5': + resolution: {integrity: sha512-hmuCDkfru/Uc9+ZBNOSremAupu6BCslvOVDiG0wYcL8TQodCycp6uvwDyeym1H0M4l3ob9c0s0xMBiZjjXQ2yA==} engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=20.1.0' - '@semantic-release/npm@12.0.0': - resolution: {integrity: sha512-72TVYQCH9NvVsO/y13eF8vE4bNnfls518+4KcFwJUKi7AtA/ZXoNgSg9gTTfw5eMZMkiH0izUrpGXgZE/cSQhA==} + '@semantic-release/npm@12.0.1': + resolution: {integrity: sha512-/6nntGSUGK2aTOI0rHPwY3ZjgY9FkXmEHbW9Kr+62NVOsyqpKKeP0lrCH+tphv+EsNdJNmqqwijTEnVWUMQ2Nw==} engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=20.1.0' @@ -1266,6 +1284,10 @@ packages: resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==} engines: {node: '>=18'} + '@sindresorhus/merge-streams@4.0.0': + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} + engines: {node: '>=18'} + '@types/chai@4.3.16': resolution: {integrity: sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ==} @@ -1275,8 +1297,8 @@ packages: '@types/eslint@8.56.10': resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} - '@types/esquery@1.5.3': - resolution: {integrity: sha512-c55hQOcoPkWDfuEN9EdP1YyNH4D909U40gUEpY0nB5PWHExWHEPxcx3sx0fJ1Gzf4j1OpWktmIgciIlpgHtfDg==} + '@types/esquery@1.5.4': + resolution: {integrity: sha512-yYO4Q8H+KJHKW1rEeSzHxcZi90durqYgWVfnh5K6ZADVBjBv2e1NEveYX5yT2bffgN7RqzH3k9930m+i2yBoMA==} '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} @@ -1302,8 +1324,8 @@ packages: '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/node@20.12.11': - resolution: {integrity: sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==} + '@types/node@20.12.12': + resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1317,8 +1339,8 @@ packages: '@types/ws@8.5.10': resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} - '@typescript-eslint/eslint-plugin@7.8.0': - resolution: {integrity: sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==} + '@typescript-eslint/eslint-plugin@7.11.0': + resolution: {integrity: sha512-P+qEahbgeHW4JQ/87FuItjBj8O3MYv5gELDzr8QaQ7fsll1gSMTYb6j87MYyxwf3DtD7uGFB9ShwgmCJB5KmaQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -1344,8 +1366,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@7.8.0': - resolution: {integrity: sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==} + '@typescript-eslint/parser@7.11.0': + resolution: {integrity: sha512-yimw99teuaXVWsBcPO1Ais02kwJ1jmNA1KxE7ng0aT7ndr1pT1wqj0OJnsYVGKKlc4QJai86l/025L6z8CljOg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1366,12 +1388,16 @@ packages: resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/scope-manager@7.11.0': + resolution: {integrity: sha512-27tGdVEiutD4POirLZX4YzT180vevUURJl4wJGmm6TrQoiYwuxTIY98PBp6L2oN+JQxzE0URvYlzJaBHIekXAw==} + engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@7.8.0': resolution: {integrity: sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/type-utils@7.8.0': - resolution: {integrity: sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==} + '@typescript-eslint/type-utils@7.11.0': + resolution: {integrity: sha512-WmppUEgYy+y1NTseNMJ6mCFxt03/7jTOy08bcg7bxJJdsM4nuhnchyBbE8vryveaJUf62noH7LodPSo5Z0WUCg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1392,8 +1418,8 @@ packages: resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/types@7.5.0': - resolution: {integrity: sha512-tv5B4IHeAdhR7uS4+bf8Ov3k793VEVHd45viRRkehIUZxm0WF82VPiLgHzA/Xl4TGPg1ZD49vfxBKFPecD5/mg==} + '@typescript-eslint/types@7.11.0': + resolution: {integrity: sha512-MPEsDRZTyCiXkD4vd3zywDCifi7tatc4K37KqTprCvaXptP7Xlpdw0NR2hRJTetG5TxbWDB79Ys4kLmHliEo/w==} engines: {node: ^18.18.0 || >=20.0.0} '@typescript-eslint/types@7.8.0': @@ -1427,6 +1453,15 @@ packages: typescript: optional: true + '@typescript-eslint/typescript-estree@7.11.0': + resolution: {integrity: sha512-cxkhZ2C/iyi3/6U9EPc5y+a6csqHItndvN/CzbNXTNrsC3/ASoYQZEt9uMaEp+xFNjasqQyszp5TumAVKKvJeQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/typescript-estree@7.8.0': resolution: {integrity: sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1448,6 +1483,12 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 + '@typescript-eslint/utils@7.11.0': + resolution: {integrity: sha512-xlAWwPleNRHwF37AhrZurOxA1wyXowW4PqVXZVUNCLjB48CqdPJoJWkrpH2nij9Q3Lb7rtWindtoXwxjxlKKCA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + '@typescript-eslint/utils@7.8.0': resolution: {integrity: sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1466,6 +1507,10 @@ packages: resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/visitor-keys@7.11.0': + resolution: {integrity: sha512-7syYk4MzjxTEk0g/w3iqtgxnFQspDJfn6QKD36xMuuhTzjcxY7F8EmBLnALjVyaOF1/bVocu3bS/2/F7rXrveQ==} + engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@7.8.0': resolution: {integrity: sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1589,6 +1634,10 @@ packages: array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} @@ -1596,6 +1645,10 @@ packages: resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} engines: {node: '>= 0.4'} + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -1604,6 +1657,10 @@ packages: resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} engines: {node: '>=0.10.0'} + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} @@ -1616,13 +1673,20 @@ packages: resolution: {integrity: sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==} engines: {node: '>= 0.4'} - array.prototype.tosorted@1.1.2: - resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} + array.prototype.toreversed@1.1.2: + resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} + + array.prototype.tosorted@1.1.3: + resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} arraybuffer.prototype.slice@1.0.2: resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} engines: {node: '>= 0.4'} + arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + arrify@1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} @@ -1670,6 +1734,10 @@ packages: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + aws-sign2@0.7.0: resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} @@ -1748,6 +1816,10 @@ packages: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + browser-request@0.3.3: resolution: {integrity: sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg==} engines: {'0': node} @@ -1767,9 +1839,6 @@ packages: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} - builtins@5.0.1: - resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} - busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -1790,6 +1859,10 @@ packages: call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + caller-callsite@2.0.0: resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} engines: {node: '>=4'} @@ -1854,8 +1927,8 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} engines: {node: '>=8'} class-utils@0.3.6: @@ -1929,15 +2002,15 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} - commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + commander@6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} engines: {node: '>= 6'} comment-parser@1.4.1: @@ -1994,6 +2067,9 @@ packages: core-js-compat@3.36.1: resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} + core-js-compat@3.37.1: + resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} + core-js-pure@3.34.0: resolution: {integrity: sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg==} @@ -2057,6 +2133,18 @@ packages: resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} engines: {node: '>=0.10'} + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + dataloader@2.2.2: resolution: {integrity: sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==} @@ -2120,6 +2208,10 @@ packages: resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} engines: {node: '>= 0.4'} + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -2249,16 +2341,40 @@ packages: resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} engines: {node: '>= 0.4'} + es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} + es-array-method-boxes-properly@1.0.0: resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + es-iterator-helpers@1.0.15: resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + es-iterator-helpers@1.0.19: + resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + es-set-tostringtag@2.0.2: resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} engines: {node: '>= 0.4'} + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} @@ -2297,8 +2413,14 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-config-canonical@42.8.2: - resolution: {integrity: sha512-kkidsl+3qCwoy2MESNRMEV7jcTFaLbyYSWYubOznFGtMR1eZMhV6j920EllEoWZU66VLSEDtZNnHfwMW4cNC0Q==} + eslint-compat-utils@0.5.0: + resolution: {integrity: sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + + eslint-config-canonical@43.0.12: + resolution: {integrity: sha512-eqAuO2lVt88soxIlMU4jGXS0eT/W6rquCtjSWaMWn5KlPENChcUbx8DZ02Q7oOAOGtX0sKbR8sxdVna7DZeTjg==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 @@ -2340,20 +2462,20 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-ava@14.0.0: - resolution: {integrity: sha512-XmKT6hppaipwwnLVwwvQliSU6AF1QMHiNoLD5JQfzhUhf0jY7CO0O624fQrE+Y/fTb9vbW8r77nKf7M/oHulxw==} - engines: {node: '>=14.17 <15 || >=16.4'} + eslint-plugin-ava@15.0.1: + resolution: {integrity: sha512-eRX7mLFPvalGDWztJ4zm+anez2X6J/88r9CqLFfPAIMvFlGyJ+dUoFppoohgUQZLV09mIBNz5guP07zFJOLF8g==} + engines: {node: ^18.18 || >=20} peerDependencies: - eslint: '>=8.26.0' + eslint: '>=9' eslint-plugin-canonical@4.18.0: resolution: {integrity: sha512-0Egc0FKOnCRdu3bFEJhfHkdkusIgW0UxdemukkowZQnQsnf12FHSJ7K26b+tZ5pKB7cTyECSaqvEpoIJfplX4g==} engines: {node: '>=16.0.0'} - eslint-plugin-cypress@2.15.1: - resolution: {integrity: sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==} + eslint-plugin-cypress@3.3.0: + resolution: {integrity: sha512-HPHMPzYBIshzJM8wqgKSKHG2p/8R0Gbg4Pb3tcdC9WrmkuqxiKxSKbjunUrajhV5l7gCIFrh1P7C7GuBqH6YuQ==} peerDependencies: - eslint: '>= 3.2.1' + eslint: '>=7' eslint-plugin-es-x@7.5.0: resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} @@ -2400,14 +2522,14 @@ packages: jest: optional: true - eslint-plugin-jsdoc@46.9.1: - resolution: {integrity: sha512-11Ox5LCl2wY7gGkp9UOyew70o9qvii1daAH+h/MFobRVRNcy7sVlH+jm0HQdgcvcru6285GvpjpUyoa051j03Q==} - engines: {node: '>=16'} + eslint-plugin-jsdoc@48.2.6: + resolution: {integrity: sha512-GNk9jtpYmoEVeD/U6yYYmd6T8vSOoPs7CL8ZeX85iD8P3qifDdLQGze6+cw9boobDthmYnnxvIoHrhuSffj09g==} + engines: {node: '>=18'} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-plugin-jsonc@2.11.2: - resolution: {integrity: sha512-F6A0MZhIGRBPOswzzn4tJFXXkPLiLwJaMlQwz/Qj1qx+bV5MCn79vBeJh2ynMmtqqHloi54KDCnsT/KWrcCcnQ==} + eslint-plugin-jsonc@2.16.0: + resolution: {integrity: sha512-Af/ZL5mgfb8FFNleH6KlO4/VdmDuTqmM+SPnWcdoWywTetv7kq+vQe99UyQb9XO3b0OWLVuTH7H0d/PXYCMdSg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' @@ -2418,14 +2540,14 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - eslint-plugin-lodash@7.4.0: - resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} + eslint-plugin-lodash@8.0.0: + resolution: {integrity: sha512-7DA8485FolmWRzh+8t4S8Pzin2TTuWfb0ZW3j/2fYElgk82ZanFz8vDcvc4BBPceYdX1p/za+tkbO68maDBGGw==} engines: {node: '>=10'} peerDependencies: - eslint: '>=2' + eslint: '>=9.0.0' - eslint-plugin-mocha@10.2.0: - resolution: {integrity: sha512-ZhdxzSZnd1P9LqDPF0DBcFLpRIGdh1zkF2JHnQklKQOvrQtT73kdP5K9V2mzvbLR+cCAO9OI48NXK/Ax9/ciCQ==} + eslint-plugin-mocha@10.4.3: + resolution: {integrity: sha512-emc4TVjq5Ht0/upR+psftuz6IBG5q279p+1dSRDeHf+NS9aaerBi3lXKo1SEzwC29hFIW21gO89CEWSvRsi8IQ==} engines: {node: '>=14.0.0'} peerDependencies: eslint: '>=7.0.0' @@ -2434,14 +2556,14 @@ packages: resolution: {integrity: sha512-69NpBr68U6pmXL+y+KHl/64PwRarceC3/sCNUVxRbe0gPI32SIw8AtdpkqNiJYCa2yMd4lRrkrnU09Yio7KVzA==} engines: {node: '>=0.10.0'} - eslint-plugin-n@16.5.0: - resolution: {integrity: sha512-Hw02Bj1QrZIlKyj471Tb1jSReTl4ghIMHGuBGiMVmw+s0jOPbI4CBuYpGbZr+tdQ+VAvSK6FDSta3J4ib/SKHQ==} - engines: {node: '>=16.0.0'} + eslint-plugin-n@17.7.0: + resolution: {integrity: sha512-4Jg4ZKVE4VjHig2caBqPHYNW5na84RVufUuipFLJbgM/G57O6FdpUKJbHakCDJb/yjQuyqVzYWRtU3HNYaZUwg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: '>=7.0.0' + eslint: '>=8.23.0' - eslint-plugin-prettier@5.1.2: - resolution: {integrity: sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==} + eslint-plugin-prettier@5.1.3: + resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -2460,26 +2582,26 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 - eslint-plugin-react-hooks@4.6.0: - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + eslint-plugin-react-hooks@4.6.2: + resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react@7.33.2: - resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + eslint-plugin-react@7.34.2: + resolution: {integrity: sha512-2HCmrU+/JNigDN6tg55cRDKCQWicYAPB38JGSFDQt95jDm8rrvSUo7YPkOIm5l6ts1j1zCvysNcasvfTMQzUOw==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - eslint-plugin-regexp@1.15.0: - resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} - engines: {node: ^12 || >=14} + eslint-plugin-regexp@2.6.0: + resolution: {integrity: sha512-FCL851+kislsTEQEMioAlpDuK5+E5vs0hi1bF8cFlPlHcEjeRhuAzEsGikXRreE+0j4WhW2uO54MqTjXtYOi3A==} + engines: {node: ^18 || >=20} peerDependencies: - eslint: '>=6.0.0' + eslint: '>=8.44.0' - eslint-plugin-simple-import-sort@10.0.0: - resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} + eslint-plugin-simple-import-sort@12.1.0: + resolution: {integrity: sha512-Y2fqAfC11TcG/WP3TrI1Gi3p3nc8XJyEOJYHyEPEGI/UAgNx6akxxlX74p7SbAQdLcgASKhj8M0GKvH3vq/+ig==} peerDependencies: eslint: '>=5.0.0' @@ -2491,18 +2613,18 @@ packages: eslint: ^7 || ^8 typescript: ^3 || ^4 || ^5 - eslint-plugin-unicorn@48.0.1: - resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} - engines: {node: '>=16'} + eslint-plugin-unicorn@53.0.0: + resolution: {integrity: sha512-kuTcNo9IwwUCfyHGwQFOK/HjJAYzbODHN3wP0PgqbW+jbXqpNWxNVpVhj2tO9SixBwuAdmal8rVcWKBxwFnGuw==} + engines: {node: '>=18.18'} peerDependencies: - eslint: '>=8.44.0' + eslint: '>=8.56.0' - eslint-plugin-vitest@0.3.20: - resolution: {integrity: sha512-O05k4j9TGMOkkghj9dRgpeLDyOSiVIxQWgNDPfhYPm5ioJsehcYV/zkRLekQs+c8+RBCVXucSED3fYOyy2EoWA==} + eslint-plugin-vitest@0.5.4: + resolution: {integrity: sha512-um+odCkccAHU53WdKAw39MY61+1x990uXjSPguUCq3VcEHdqJrOb8OTMrbYlY6f9jAKx7x98kLVlIe3RJeJqoQ==} engines: {node: ^18.0.0 || >= 20.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': '*' - eslint: '>=8.0.0' + eslint: ^8.57.0 || ^9.0.0 vitest: '*' peerDependenciesMeta: '@typescript-eslint/eslint-plugin': @@ -2510,8 +2632,8 @@ packages: vitest: optional: true - eslint-plugin-yml@1.11.0: - resolution: {integrity: sha512-NBZP1NDGy0u38pY5ieix75jxS9GNOJy9xd4gQa0rU4gWbfEsVhKDwuFaQ6RJpDbv6Lq5TtcAZS/YnAc0oeRw0w==} + eslint-plugin-yml@1.14.0: + resolution: {integrity: sha512-ESUpgYPOcAYQO9czugcX5OqRvn/ydDVwGCPXY4YjPqc09rHaUVUA6IE6HLQys4rXk/S+qx3EwTd1wHCwam/OWQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' @@ -2561,8 +2683,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true - eslint@9.2.0: - resolution: {integrity: sha512-0n/I88vZpCOzO+PQpt0lbsqmn9AsnsJAQseIqhZFI8ibQT0U1AkEKRxA3EVMos0BoHSXDQvCXY25TUjB5tr8Og==} + eslint@9.3.0: + resolution: {integrity: sha512-5Iv4CsZW030lpUqHBapdPo3MJetAPtejVW8B84GIcIIv8+ohFaddXsrn1Gn8uD9ijDb+kcYKFUVmC8qG8B2ORQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true @@ -2617,6 +2739,10 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} + execa@9.1.0: + resolution: {integrity: sha512-lSgHc4Elo2m6bUDhc3Hl/VxvUDJdQWI40RZ4KMY9bKRc+hgMOT7II/JjbNDhI8VnMtrCb7U/fhpJIkLORZozWw==} + engines: {node: '>=18'} + expand-brackets@2.1.4: resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} engines: {node: '>=0.10.0'} @@ -2687,6 +2813,10 @@ packages: resolution: {integrity: sha512-0oY/olScYD4IhQ8u//gCPA4F3mlTn2dacYmiDm/mbDQvpmLjV4uH+zhsQ5IyXRyvqkvtUkXkNdGvg5OFJTCsuQ==} engines: {node: '>=18'} + figures@6.1.0: + resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} + engines: {node: '>=18'} + file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -2707,6 +2837,10 @@ packages: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + find-cache-dir@2.1.0: resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} engines: {node: '>=6'} @@ -2830,6 +2964,10 @@ packages: get-intrinsic@1.2.2: resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} @@ -2854,10 +2992,18 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} + get-stream@9.0.1: + resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} + engines: {node: '>=18'} + get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + get-tsconfig@4.7.2: resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} @@ -2891,20 +3037,24 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob@10.3.13: - resolution: {integrity: sha512-CQ9K7FRtaP//lXUKJVVYFxvozIz3HR4Brk+yB5VSkmWiHVILwd7NqQ2+UH6Ab5/NzCLib+j1REVV+FSZ+ZHOvg==} + glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true - glob@7.1.7: - resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + glob@10.4.1: + resolution: {integrity: sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==} + engines: {node: '>=16 || 14 >=14.18'} + hasBin: true glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} @@ -2918,8 +3068,8 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.2.0: - resolution: {integrity: sha512-FQ5YwCHZM3nCmtb5FzEWwdUc9K5d3V/w9mzcz8iGD1gC/aOTHc6PouYu0kkKipNJqHAT7m51sqzQjEjIP+cK0A==} + globals@15.3.0: + resolution: {integrity: sha512-cCdyVjIUVTtX8ZsPkq1oCsOsLmGIswqnjZYMJJTGaNApj1yHtLSymKhwH51ttirREn75z3p4k051clwg7rvNKA==} engines: {node: '>=18'} globalthis@1.0.3: @@ -2943,9 +3093,6 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} @@ -3003,10 +3150,17 @@ packages: has-property-descriptors@1.0.1: resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} @@ -3015,6 +3169,10 @@ packages: resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} engines: {node: '>= 0.4'} + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + has-value@0.3.1: resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} engines: {node: '>=0.10.0'} @@ -3035,6 +3193,10 @@ packages: resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} engines: {node: '>= 0.4'} + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true @@ -3086,6 +3248,10 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} + human-signals@7.0.0: + resolution: {integrity: sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==} + engines: {node: '>=18.18.0'} + husky@9.0.11: resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} engines: {node: '>=18'} @@ -3095,10 +3261,6 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - ignore@5.3.0: - resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} - engines: {node: '>= 4'} - ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} @@ -3155,6 +3317,10 @@ packages: resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} engines: {node: '>= 0.4'} + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + into-stream@7.0.0: resolution: {integrity: sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==} engines: {node: '>=12'} @@ -3177,6 +3343,10 @@ packages: is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -3213,6 +3383,10 @@ packages: resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} engines: {node: '>= 0.4'} + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} @@ -3289,6 +3463,10 @@ packages: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + is-number-object@1.0.7: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} @@ -3316,6 +3494,10 @@ packages: resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} engines: {node: '>=8'} + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + is-plain-object@2.0.4: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} engines: {node: '>=0.10.0'} @@ -3333,6 +3515,10 @@ packages: is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + is-stream@1.1.0: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} engines: {node: '>=0.10.0'} @@ -3345,6 +3531,10 @@ packages: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-stream@4.0.1: + resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} + engines: {node: '>=18'} + is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} @@ -3361,6 +3551,10 @@ packages: resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} @@ -3445,6 +3639,10 @@ packages: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} + jackspeak@3.1.2: + resolution: {integrity: sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==} + engines: {node: '>=14'} + java-properties@1.0.2: resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==} engines: {node: '>= 0.6.0'} @@ -3475,11 +3673,6 @@ packages: resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} engines: {node: '>=12.0.0'} - jsdoctypeparser@9.0.0: - resolution: {integrity: sha512-jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==} - engines: {node: '>=10'} - hasBin: true - jsdom@6.5.1: resolution: {integrity: sha512-KeCN3yqR+MmjAZDnVZgIaL2tP9BxSFlsYZw9Z+zy64+jJzHc1m8ruccb83Qe8AG0xKUjpo2kxEGFCMtiF4MmAg==} @@ -3576,8 +3769,8 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lilconfig@3.0.0: - resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} engines: {node: '>=14'} line-column-path@2.0.0: @@ -3587,13 +3780,13 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lint-staged@15.2.2: - resolution: {integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==} + lint-staged@15.2.5: + resolution: {integrity: sha512-j+DfX7W9YUvdzEZl3Rk47FhDF6xwDBV5wwsCPw6BwWZVPYJemusQmvb9bRsW23Sqsaa+vRloAWogbK4BUuU2zA==} engines: {node: '>=18.12.0'} hasBin: true - listr2@8.0.1: - resolution: {integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==} + listr2@8.2.1: + resolution: {integrity: sha512-irTfvpib/rNiD637xeevjO2l3Z5loZmuaRi0L0YE5LfijwVY96oyVn0DFD3o/teAok7nfobMG1THvvcHh/BP6g==} engines: {node: '>=18.0.0'} load-json-file@4.0.0: @@ -3751,6 +3944,10 @@ packages: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} + micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} + mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -3833,6 +4030,10 @@ packages: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} @@ -4084,16 +4285,25 @@ packages: resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} engines: {node: '>= 0.4'} + object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} + object.fromentries@2.0.7: resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} engines: {node: '>= 0.4'} + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + object.getownpropertydescriptors@2.1.7: resolution: {integrity: sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==} engines: {node: '>= 0.8'} - object.hasown@1.1.3: - resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + object.hasown@1.1.4: + resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} + engines: {node: '>= 0.4'} object.pick@1.3.0: resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} @@ -4103,6 +4313,10 @@ packages: resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} engines: {node: '>= 0.4'} + object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -4210,6 +4424,10 @@ packages: resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} engines: {node: '>=18'} + parse-ms@4.0.0: + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} + engines: {node: '>=18'} + parse-passwd@1.0.0: resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} engines: {node: '>=0.10.0'} @@ -4261,6 +4479,10 @@ packages: resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} engines: {node: '>=16 || 14 >=14.17'} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -4319,6 +4541,10 @@ packages: resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} engines: {node: '>=0.10.0'} + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + prelude-ls@1.1.2: resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} engines: {node: '>= 0.8.0'} @@ -4331,11 +4557,15 @@ packages: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} engines: {node: '>=6.0.0'} - prettier@3.1.1: - resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==} + prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} engines: {node: '>=14'} hasBin: true + pretty-ms@9.0.0: + resolution: {integrity: sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==} + engines: {node: '>=18'} + proc-log@3.0.0: resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -4390,8 +4620,8 @@ packages: ramda@0.26.1: resolution: {integrity: sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==} - ramda@0.29.1: - resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==} + ramda@0.30.0: + resolution: {integrity: sha512-13Y0iMhIQuAm/wNGBL/9HEqIfRGmNmjKnTPlKWfA9f7dnDkr8d45wQ+S7+ZLh/Pq9PdcGxkqKUEA7ySu1QSd9Q==} randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -4442,8 +4672,8 @@ packages: resolution: {integrity: sha512-qtEDqIZGVcSZCHniWwZWbRy79Dc6Wp3kT/UmDA2RJKBPg7+7k51aQBZirHmUGn5uvHf2rg8DkjizrN26k61ATw==} engines: {node: '>= 4'} - refa@0.11.0: - resolution: {integrity: sha512-486O8/pQXwj9jV0mVvUnTsxq0uknpBnNJ0eCUhkZqJRQ8KutrT1PhzmumdCeM1hSBF2eMlFPmwECRER4IbKXlQ==} + refa@0.12.1: + resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} reflect.getprototypeof@1.0.4: @@ -4467,8 +4697,8 @@ packages: resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} engines: {node: '>=0.10.0'} - regexp-ast-analysis@0.6.0: - resolution: {integrity: sha512-OLxjyjPkVH+rQlBLb1I/P/VTmamSjGkvN5PTV5BXP432k3uVz727J7H29GA5IFiY0m7e1xBN7049Wn59FY3DEQ==} + regexp-ast-analysis@0.7.1: + resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} regexp-tree@0.1.27: @@ -4479,6 +4709,10 @@ packages: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} + regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + regexpu-core@5.3.2: resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} engines: {node: '>=4'} @@ -4574,16 +4808,17 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rfdc@1.3.0: - resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + rfdc@1.3.1: + resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rimraf@5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} - engines: {node: '>=14'} + rimraf@5.0.7: + resolution: {integrity: sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==} + engines: {node: '>=14.18'} hasBin: true roarr@7.21.0: @@ -4597,6 +4832,10 @@ packages: resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} engines: {node: '>=0.4'} + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -4606,6 +4845,10 @@ packages: safe-regex-test@1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + safe-regex@1.1.0: resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} @@ -4616,11 +4859,12 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - scslre@0.2.0: - resolution: {integrity: sha512-4hc49fUMmX3jM0XdFUAPBrs1xwEcdHa0KyjEsjFs+Zfc66mpFpq5YmRgDtl+Ffo6AtJIilfei+yKw8fUn3N88w==} + scslre@0.3.0: + resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} + engines: {node: ^14.0.0 || >=16.0.0} - semantic-release@23.0.8: - resolution: {integrity: sha512-yZkuWcTTfh5h/DrR4Q4QvJSARJdb6wjwn/sN0qKMYEkvwaVFek8YWfrgtL8oWaRdl0fLte0Y1wWMzLbwoaII1g==} + semantic-release@23.1.1: + resolution: {integrity: sha512-qqJDBhbtHsjUEMsojWKGuL5lQFCJuPtiXKEIlFKyTzDDGTAE/oyvznaP8GeOr5PvcqBJ6LQz4JCENWPLeehSpA==} engines: {node: '>=20.8.1'} hasBin: true @@ -4643,8 +4887,8 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.1: - resolution: {integrity: sha512-f/vbBsu+fOiYt+lmwZV0rVwJScl46HppnOA1ZvIuBWKOTlllpyJ3bfVax76/OrhCH38dyxoDIA8K7uB963IYgA==} + semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} engines: {node: '>=10'} hasBin: true @@ -4658,10 +4902,18 @@ packages: resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} engines: {node: '>= 0.4'} + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + set-function-name@2.0.1: resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} engines: {node: '>= 0.4'} + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + set-value@2.0.1: resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} engines: {node: '>=0.10.0'} @@ -4689,6 +4941,10 @@ packages: side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -4855,19 +5111,31 @@ packages: resolution: {integrity: sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==} engines: {node: '>=18'} - string.prototype.matchall@4.0.10: - resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} string.prototype.trim@1.2.8: resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} engines: {node: '>= 0.4'} + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + string.prototype.trimend@1.0.7: resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + string.prototype.trimstart@1.0.7: resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} @@ -4898,6 +5166,10 @@ packages: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} + strip-final-newline@4.0.0: + resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} + engines: {node: '>=18'} + strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} @@ -4937,6 +5209,10 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + synckit@0.6.2: + resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==} + engines: {node: '>=12.20'} + synckit@0.8.8: resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -5107,17 +5383,33 @@ packages: resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} engines: {node: '>= 0.4'} + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + typed-array-byte-length@1.0.0: resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} engines: {node: '>= 0.4'} + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + typed-array-byte-offset@1.0.0: resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} engines: {node: '>= 0.4'} + typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} + typescript@5.3.3: resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} @@ -5284,6 +5576,10 @@ packages: resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} engines: {node: '>= 0.4'} + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + which@1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true @@ -5386,6 +5682,11 @@ packages: resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} engines: {node: '>= 14'} + yaml@2.4.2: + resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} + engines: {node: '>= 14'} + hasBin: true + yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} @@ -5418,6 +5719,10 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + yoctocolors@2.0.2: + resolution: {integrity: sha512-Ct97huExsu7cWeEjmrXlofevF8CvzUglJ4iGUet5B8xn1oumtAZBpHU4GzYuoE6PVqcZ5hghtBrSlhwHuR1Jmw==} + engines: {node: '>=18'} + snapshots: '@aashutoshrathi/word-wrap@1.2.6': {} @@ -5433,11 +5738,11 @@ snapshots: transitivePeerDependencies: - encoding - '@babel/cli@7.24.5(@babel/core@7.24.5)': + '@babel/cli@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.6 '@jridgewell/trace-mapping': 0.3.25 - commander: 4.1.1 + commander: 6.2.1 convert-source-map: 2.0.0 fs-readdir-recursive: 1.1.0 glob: 7.2.3 @@ -5452,20 +5757,25 @@ snapshots: '@babel/highlight': 7.24.2 picocolors: 1.0.0 - '@babel/compat-data@7.24.4': {} + '@babel/code-frame@7.24.6': + dependencies: + '@babel/highlight': 7.24.6 + picocolors: 1.0.0 + + '@babel/compat-data@7.24.6': {} - '@babel/core@7.24.5': + '@babel/core@7.24.6': dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) - '@babel/helpers': 7.24.5 - '@babel/parser': 7.24.5 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 + '@babel/code-frame': 7.24.6 + '@babel/generator': 7.24.6 + '@babel/helper-compilation-targets': 7.24.6 + '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) + '@babel/helpers': 7.24.6 + '@babel/parser': 7.24.6 + '@babel/template': 7.24.6 + '@babel/traverse': 7.24.6 + '@babel/types': 7.24.6 convert-source-map: 2.0.0 debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 @@ -5474,96 +5784,94 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/eslint-parser@7.24.5(@babel/core@7.24.5)(eslint@8.56.0)': + '@babel/eslint-parser@7.24.6(@babel/core@7.24.6)(eslint@8.56.0)': dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.6 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 eslint: 8.56.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 - '@babel/eslint-parser@7.24.5(@babel/core@7.24.5)(eslint@9.2.0)': + '@babel/eslint-parser@7.24.6(@babel/core@7.24.6)(eslint@9.3.0)': dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.6 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 9.2.0 + eslint: 9.3.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 - '@babel/eslint-plugin@7.23.5(@babel/eslint-parser@7.24.5(@babel/core@7.24.5)(eslint@9.2.0))(eslint@9.2.0)': + '@babel/eslint-plugin@7.24.6(@babel/eslint-parser@7.24.6(@babel/core@7.24.6)(eslint@9.3.0))(eslint@9.3.0)': dependencies: - '@babel/eslint-parser': 7.24.5(@babel/core@7.24.5)(eslint@9.2.0) - eslint: 9.2.0 + '@babel/eslint-parser': 7.24.6(@babel/core@7.24.6)(eslint@9.3.0) + eslint: 9.3.0 eslint-rule-composer: 0.3.0 - '@babel/generator@7.24.4': + '@babel/generator@7.24.5': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - '@babel/generator@7.24.5': + '@babel/generator@7.24.6': dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 '@babel/helper-annotate-as-pure@7.22.5': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 + + '@babel/helper-annotate-as-pure@7.24.6': + dependencies: + '@babel/types': 7.24.6 - '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': + '@babel/helper-builder-binary-assignment-operator-visitor@7.24.6': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.6 - '@babel/helper-compilation-targets@7.23.6': + '@babel/helper-compilation-targets@7.24.6': dependencies: - '@babel/compat-data': 7.24.4 - '@babel/helper-validator-option': 7.23.5 + '@babel/compat-data': 7.24.6 + '@babel/helper-validator-option': 7.24.6 browserslist: 4.23.0 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.24.4(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-create-class-features-plugin@7.24.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-function-name': 7.24.6 + '@babel/helper-member-expression-to-functions': 7.24.6 + '@babel/helper-optimise-call-expression': 7.24.6 + '@babel/helper-replace-supers': 7.24.6(@babel/core@7.24.6) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 + '@babel/helper-split-export-declaration': 7.24.6 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.24.5(@babel/core@7.24.5)': + '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.6 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.24.5 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.24.5 + regexpu-core: 5.3.2 semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.5)': + '@babel/helper-create-regexp-features-plugin@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/core': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.6 regexpu-core: 5.3.2 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.5)': + '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-compilation-targets': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 debug: 4.3.4(supports-color@8.1.1) lodash.debounce: 4.0.8 resolve: 1.22.8 @@ -5572,125 +5880,123 @@ snapshots: '@babel/helper-environment-visitor@7.22.20': {} + '@babel/helper-environment-visitor@7.24.6': {} + '@babel/helper-function-name@7.23.0': dependencies: '@babel/template': 7.24.0 '@babel/types': 7.24.5 + '@babel/helper-function-name@7.24.6': + dependencies: + '@babel/template': 7.24.6 + '@babel/types': 7.24.6 + '@babel/helper-hoist-variables@7.22.5': dependencies: '@babel/types': 7.24.5 - '@babel/helper-member-expression-to-functions@7.23.0': + '@babel/helper-hoist-variables@7.24.6': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.6 - '@babel/helper-member-expression-to-functions@7.24.5': + '@babel/helper-member-expression-to-functions@7.24.6': dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - '@babel/helper-module-imports@7.24.3': + '@babel/helper-module-imports@7.24.6': dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.5)': + '@babel/helper-module-transforms@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/core': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-module-imports': 7.24.6 + '@babel/helper-simple-access': 7.24.6 + '@babel/helper-split-export-declaration': 7.24.6 + '@babel/helper-validator-identifier': 7.24.6 - '@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5)': + '@babel/helper-optimise-call-expression@7.24.6': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-simple-access': 7.24.5 - '@babel/helper-split-export-declaration': 7.24.5 - '@babel/helper-validator-identifier': 7.24.5 - - '@babel/helper-optimise-call-expression@7.22.5': - dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.6 '@babel/helper-plugin-utils@7.22.5': {} - '@babel/helper-plugin-utils@7.24.0': {} - '@babel/helper-plugin-utils@7.24.5': {} - '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.22.20 + '@babel/helper-plugin-utils@7.24.6': {} - '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.5)': + '@babel/helper-remap-async-to-generator@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - - '@babel/helper-simple-access@7.22.5': - dependencies: - '@babel/types': 7.24.0 + '@babel/core': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-wrap-function': 7.24.6 - '@babel/helper-simple-access@7.24.5': + '@babel/helper-replace-supers@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/types': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-member-expression-to-functions': 7.24.6 + '@babel/helper-optimise-call-expression': 7.24.6 - '@babel/helper-skip-transparent-expression-wrappers@7.22.5': + '@babel/helper-simple-access@7.24.6': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.6 - '@babel/helper-split-export-declaration@7.22.6': + '@babel/helper-skip-transparent-expression-wrappers@7.24.6': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.6 '@babel/helper-split-export-declaration@7.24.5': dependencies: '@babel/types': 7.24.5 - '@babel/helper-string-parser@7.23.4': {} + '@babel/helper-split-export-declaration@7.24.6': + dependencies: + '@babel/types': 7.24.6 '@babel/helper-string-parser@7.24.1': {} - '@babel/helper-validator-identifier@7.22.20': {} + '@babel/helper-string-parser@7.24.6': {} '@babel/helper-validator-identifier@7.24.5': {} - '@babel/helper-validator-option@7.23.5': {} + '@babel/helper-validator-identifier@7.24.6': {} + + '@babel/helper-validator-option@7.24.6': {} - '@babel/helper-wrap-function@7.22.20': + '@babel/helper-wrap-function@7.24.6': dependencies: - '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 + '@babel/helper-function-name': 7.24.6 + '@babel/template': 7.24.6 + '@babel/types': 7.24.6 - '@babel/helpers@7.24.5': + '@babel/helpers@7.24.6': dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 - transitivePeerDependencies: - - supports-color + '@babel/template': 7.24.6 + '@babel/types': 7.24.6 '@babel/highlight@7.24.2': dependencies: - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-validator-identifier': 7.24.5 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.0 + + '@babel/highlight@7.24.6': + dependencies: + '@babel/helper-validator-identifier': 7.24.6 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.0.0 - '@babel/node@7.23.9(@babel/core@7.24.5)': + '@babel/node@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/register': 7.23.7(@babel/core@7.24.5) - commander: 4.1.1 + '@babel/core': 7.24.6 + '@babel/register': 7.24.6(@babel/core@7.24.6) + commander: 6.2.1 core-js: 3.34.0 node-environment-flags: 1.0.6 regenerator-runtime: 0.14.1 @@ -5698,548 +6004,553 @@ snapshots: '@babel/parser@7.23.6': dependencies: - '@babel/types': 7.24.0 - - '@babel/parser@7.24.4': - dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 '@babel/parser@7.24.5': dependencies: '@babel/types': 7.24.5 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.5(@babel/core@7.24.5)': + '@babel/parser@7.24.6': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/types': 7.24.6 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.5 - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - - '@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 + '@babel/plugin-transform-optional-chaining': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.5)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.5)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.5)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.5)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.5)': + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.5)': + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.5)': + '@babel/plugin-syntax-flow@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.5)': + '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.6 '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.5)': + '@babel/plugin-syntax-import-assertions@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.5)': + '@babel/plugin-syntax-import-attributes@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.5)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.5)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.5)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-block-scoping@7.24.5(@babel/core@7.24.5)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-class-static-block@7.24.4(@babel/core@7.24.5)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-classes@7.24.5(@babel/core@7.24.5)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) - '@babel/helper-split-export-declaration': 7.24.5 - globals: 11.12.0 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/template': 7.24.0 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-destructuring@7.24.5(@babel/core@7.24.5)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-arrow-functions@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-async-generator-functions@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-remap-async-to-generator': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.6) - '@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-async-to-generator@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-module-imports': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-remap-async-to-generator': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-block-scoped-functions@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-block-scoping@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-flow-strip-types@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-class-properties@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-class-static-block@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/core': 7.24.6 + '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.6) - '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-classes@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.6 + '@babel/helper-compilation-targets': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-function-name': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-replace-supers': 7.24.6(@babel/core@7.24.6) + '@babel/helper-split-export-declaration': 7.24.6 + globals: 11.12.0 - '@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-computed-properties@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/template': 7.24.6 - '@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-destructuring@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-dotall-regex@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-duplicate-keys@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-dynamic-import@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-exponentiation-operator@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-simple-access': 7.22.5 + '@babel/core': 7.24.6 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-export-namespace-from@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-flow-strip-types@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-flow': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.5)': + '@babel/plugin-transform-for-of@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 - '@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-function-name@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-compilation-targets': 7.24.6 + '@babel/helper-function-name': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-json-strings@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-literals@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-object-rest-spread@7.24.5(@babel/core@7.24.5)': + '@babel/plugin-transform-logical-assignment-operators@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.6) - '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-member-expression-literals@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-modules-amd@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-optional-chaining@7.24.5(@babel/core@7.24.5)': + '@babel/plugin-transform-modules-commonjs@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-simple-access': 7.24.6 - '@babel/plugin-transform-parameters@7.24.5(@babel/core@7.24.5)': + '@babel/plugin-transform-modules-systemjs@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-hoist-variables': 7.24.6 + '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-validator-identifier': 7.24.6 - '@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-modules-umd@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-private-property-in-object@7.24.5(@babel/core@7.24.5)': + '@babel/plugin-transform-named-capturing-groups-regex@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-new-target@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.5)': + '@babel/plugin-transform-nullish-coalescing-operator@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.5) - '@babel/types': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-numeric-separator@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - regenerator-transform: 0.15.2 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.6) - '@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-object-rest-spread@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-compilation-targets': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.6) + '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-object-super@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-replace-supers': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-optional-catch-binding@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-optional-chaining@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-parameters@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-typeof-symbol@7.24.5(@babel/core@7.24.5)': + '@babel/plugin-transform-private-methods@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-private-property-in-object@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.6 + '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.6) - '@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-property-literals@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.6 + '@babel/helper-module-imports': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.6) + '@babel/types': 7.24.6 - '@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-regenerator@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + regenerator-transform: 0.15.2 - '@babel/preset-env@7.24.5(@babel/core@7.24.5)': - dependencies: - '@babel/compat-data': 7.24.4 - '@babel/core': 7.24.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.5) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.5) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.5) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.5) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.5) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.5) - '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.24.5) - '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-block-scoping': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-class-static-block': 7.24.4(@babel/core@7.24.5) - '@babel/plugin-transform-classes': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-destructuring': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.5) - '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-object-rest-spread': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-private-property-in-object': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-typeof-symbol': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.24.5) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.5) - babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.5) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.5) - babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.5) + '@babel/plugin-transform-reserved-words@7.24.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + + '@babel/plugin-transform-shorthand-properties@7.24.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + + '@babel/plugin-transform-spread@7.24.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 + + '@babel/plugin-transform-sticky-regex@7.24.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + + '@babel/plugin-transform-template-literals@7.24.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + + '@babel/plugin-transform-typeof-symbol@7.24.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + + '@babel/plugin-transform-unicode-escapes@7.24.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + + '@babel/plugin-transform-unicode-property-regex@7.24.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 + + '@babel/plugin-transform-unicode-regex@7.24.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 + + '@babel/plugin-transform-unicode-sets-regex@7.24.6(@babel/core@7.24.6)': + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 + + '@babel/preset-env@7.24.6(@babel/core@7.24.6)': + dependencies: + '@babel/compat-data': 7.24.6 + '@babel/core': 7.24.6 + '@babel/helper-compilation-targets': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-validator-option': 7.24.6 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.6) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.6) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.6) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.6) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.6) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.6) + '@babel/plugin-syntax-import-assertions': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-syntax-import-attributes': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.6) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.6) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.6) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.6) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.6) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.6) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.6) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.6) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.6) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.6) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.6) + '@babel/plugin-transform-arrow-functions': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-async-generator-functions': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-async-to-generator': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-block-scoped-functions': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-block-scoping': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-class-properties': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-class-static-block': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-classes': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-computed-properties': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-destructuring': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-dotall-regex': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-duplicate-keys': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-dynamic-import': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-exponentiation-operator': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-export-namespace-from': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-for-of': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-function-name': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-json-strings': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-literals': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-logical-assignment-operators': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-member-expression-literals': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-modules-amd': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-modules-systemjs': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-modules-umd': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-named-capturing-groups-regex': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-new-target': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-numeric-separator': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-object-rest-spread': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-object-super': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-optional-catch-binding': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-optional-chaining': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-private-methods': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-private-property-in-object': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-property-literals': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-regenerator': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-reserved-words': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-shorthand-properties': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-spread': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-sticky-regex': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-template-literals': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-typeof-symbol': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-unicode-escapes': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-unicode-property-regex': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-unicode-regex': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-unicode-sets-regex': 7.24.6(@babel/core@7.24.6) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.6) + babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.6) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.6) + babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.6) core-js-compat: 3.36.1 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.5)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/types': 7.24.0 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/types': 7.24.5 esutils: 2.0.3 - '@babel/register@7.23.7(@babel/core@7.24.5)': + '@babel/register@7.24.6(@babel/core@7.24.6)': dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.6 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -6263,20 +6574,11 @@ snapshots: '@babel/parser': 7.24.5 '@babel/types': 7.24.5 - '@babel/traverse@7.24.1': + '@babel/template@7.24.6': dependencies: - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 - debug: 4.3.4(supports-color@8.1.1) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@babel/code-frame': 7.24.6 + '@babel/parser': 7.24.6 + '@babel/types': 7.24.6 '@babel/traverse@7.24.5': dependencies: @@ -6293,11 +6595,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/types@7.24.0': + '@babel/traverse@7.24.6': dependencies: - '@babel/helper-string-parser': 7.23.4 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 + '@babel/code-frame': 7.24.6 + '@babel/generator': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-function-name': 7.24.6 + '@babel/helper-hoist-variables': 7.24.6 + '@babel/helper-split-export-declaration': 7.24.6 + '@babel/parser': 7.24.6 + '@babel/types': 7.24.6 + debug: 4.3.4(supports-color@8.1.1) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color '@babel/types@7.24.5': dependencies: @@ -6305,6 +6616,12 @@ snapshots: '@babel/helper-validator-identifier': 7.24.5 to-fast-properties: 2.0.0 + '@babel/types@7.24.6': + dependencies: + '@babel/helper-string-parser': 7.24.6 + '@babel/helper-validator-identifier': 7.24.6 + to-fast-properties: 2.0.0 + '@bcoe/v8-coverage@0.2.3': {} '@colors/colors@1.5.0': @@ -6323,8 +6640,8 @@ snapshots: '@es-joy/jsdoc-eslint-parser@0.21.1': dependencies: - '@babel/core': 7.24.5 - '@babel/eslint-parser': 7.24.5(@babel/core@7.24.5)(eslint@8.56.0) + '@babel/core': 7.24.6 + '@babel/eslint-parser': 7.24.6(@babel/core@7.24.6)(eslint@8.56.0) '@es-joy/jsdoccomment': 0.41.0 '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 @@ -6339,11 +6656,11 @@ snapshots: esquery: 1.5.0 jsdoc-type-pratt-parser: 4.0.0 - '@es-joy/jsdoccomment@0.43.0': + '@es-joy/jsdoccomment@0.43.1': dependencies: '@types/eslint': 8.56.10 '@types/estree': 1.0.5 - '@typescript-eslint/types': 7.5.0 + '@typescript-eslint/types': 7.8.0 comment-parser: 1.4.1 esquery: 1.5.0 jsdoc-type-pratt-parser: 4.0.0 @@ -6353,9 +6670,9 @@ snapshots: eslint: 8.56.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.0(eslint@9.2.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.3.0)': dependencies: - eslint: 9.2.0 + eslint: 9.3.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.10.0': {} @@ -6366,7 +6683,7 @@ snapshots: debug: 4.3.4(supports-color@8.1.1) espree: 9.6.1 globals: 13.24.0 - ignore: 5.3.0 + ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -6380,7 +6697,21 @@ snapshots: debug: 4.3.4(supports-color@8.1.1) espree: 10.0.1 globals: 14.0.0 - ignore: 5.3.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/eslintrc@3.1.0': + dependencies: + ajv: 6.12.6 + debug: 4.3.4(supports-color@8.1.1) + espree: 10.0.1 + globals: 14.0.0 + ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -6390,19 +6721,19 @@ snapshots: '@eslint/js@8.56.0': {} - '@eslint/js@9.2.0': {} + '@eslint/js@9.3.0': {} - '@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.24.5)(@types/node@20.12.11)(encoding@0.1.13)(graphql@16.8.1)': + '@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.24.6)(@types/node@20.12.12)(encoding@0.1.13)(graphql@16.8.1)': dependencies: '@babel/code-frame': 7.24.2 - '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.24.5)(graphql@16.8.1) - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.24.5)(graphql@16.8.1) + '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.24.6)(graphql@16.8.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.24.6)(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) chalk: 4.1.2 debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.3.2 graphql: 16.8.1 - graphql-config: 4.5.0(@types/node@20.12.11)(encoding@0.1.13)(graphql@16.8.1) + graphql-config: 4.5.0(@types/node@20.12.12)(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 @@ -6423,9 +6754,9 @@ snapshots: tslib: 2.6.2 value-or-promise: 1.0.12 - '@graphql-tools/code-file-loader@7.3.23(@babel/core@7.24.5)(graphql@16.8.1)': + '@graphql-tools/code-file-loader@7.3.23(@babel/core@7.24.6)(graphql@16.8.1)': dependencies: - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.24.5)(graphql@16.8.1) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.24.6)(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) globby: 11.1.0 graphql: 16.8.1 @@ -6460,7 +6791,7 @@ snapshots: - bufferutil - utf-8-validate - '@graphql-tools/executor-http@0.1.10(@types/node@20.12.11)(graphql@16.8.1)': + '@graphql-tools/executor-http@0.1.10(@types/node@20.12.12)(graphql@16.8.1)': dependencies: '@graphql-tools/utils': 9.2.1(graphql@16.8.1) '@repeaterjs/repeater': 3.0.5 @@ -6468,7 +6799,7 @@ snapshots: dset: 3.1.3 extract-files: 11.0.0 graphql: 16.8.1 - meros: 1.3.0(@types/node@20.12.11) + meros: 1.3.0(@types/node@20.12.12) tslib: 2.6.2 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -6504,12 +6835,12 @@ snapshots: tslib: 2.6.2 unixify: 1.0.0 - '@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.24.5)(graphql@16.8.1)': + '@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.24.6)(graphql@16.8.1)': dependencies: - '@babel/parser': 7.24.4 - '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.5) - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 + '@babel/parser': 7.24.5 + '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.6) + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 '@graphql-tools/utils': 9.2.1(graphql@16.8.1) graphql: 16.8.1 tslib: 2.6.2 @@ -6554,12 +6885,12 @@ snapshots: tslib: 2.6.2 value-or-promise: 1.0.12 - '@graphql-tools/url-loader@7.17.18(@types/node@20.12.11)(encoding@0.1.13)(graphql@16.8.1)': + '@graphql-tools/url-loader@7.17.18(@types/node@20.12.12)(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.12.11)(graphql@16.8.1) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.12.12)(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) @@ -6625,7 +6956,7 @@ snapshots: '@humanwhocodes/object-schema@2.0.3': {} - '@humanwhocodes/retry@0.2.4': {} + '@humanwhocodes/retry@0.3.0': {} '@isaacs/cliui@8.0.2': dependencies: @@ -6668,9 +6999,9 @@ snapshots: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 - '@next/eslint-plugin-next@13.5.6': + '@next/eslint-plugin-next@14.2.3': dependencies: - glob: 7.1.7 + glob: 10.3.10 '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': optional: true @@ -6703,7 +7034,7 @@ snapshots: '@npmcli/fs@3.1.0': dependencies: - semver: 7.6.1 + semver: 7.6.2 '@octokit/auth-token@5.1.0': {} @@ -6713,25 +7044,23 @@ snapshots: '@octokit/graphql': 8.1.0 '@octokit/request': 9.0.1 '@octokit/request-error': 6.1.0 - '@octokit/types': 13.1.0 + '@octokit/types': 13.5.0 before-after-hook: 3.0.2 universal-user-agent: 7.0.2 '@octokit/endpoint@10.1.0': dependencies: - '@octokit/types': 13.1.0 + '@octokit/types': 13.5.0 universal-user-agent: 7.0.2 '@octokit/graphql@8.1.0': dependencies: '@octokit/request': 9.0.1 - '@octokit/types': 13.1.0 + '@octokit/types': 13.5.0 universal-user-agent: 7.0.2 '@octokit/openapi-types@20.0.0': {} - '@octokit/openapi-types@21.2.0': {} - '@octokit/openapi-types@22.2.0': {} '@octokit/plugin-paginate-rest@11.3.0(@octokit/core@6.1.1)': @@ -6743,18 +7072,18 @@ snapshots: dependencies: '@octokit/core': 6.1.1 '@octokit/request-error': 6.1.0 - '@octokit/types': 13.1.0 + '@octokit/types': 13.5.0 bottleneck: 2.19.5 '@octokit/plugin-throttling@9.1.0(@octokit/core@6.1.1)': dependencies: '@octokit/core': 6.1.1 - '@octokit/types': 13.1.0 + '@octokit/types': 13.5.0 bottleneck: 2.19.5 '@octokit/request-error@6.1.0': dependencies: - '@octokit/types': 13.1.0 + '@octokit/types': 13.5.0 '@octokit/request@9.0.1': dependencies: @@ -6767,10 +7096,6 @@ snapshots: dependencies: '@octokit/openapi-types': 20.0.0 - '@octokit/types@13.1.0': - dependencies: - '@octokit/openapi-types': 21.2.0 - '@octokit/types@13.5.0': dependencies: '@octokit/openapi-types': 22.2.0 @@ -6814,9 +7139,9 @@ snapshots: '@repeaterjs/repeater@3.0.5': {} - '@rushstack/eslint-patch@1.6.1': {} + '@sec-ant/readable-stream@0.4.1': {} - '@semantic-release/commit-analyzer@12.0.0(semantic-release@23.0.8(typescript@5.3.3))': + '@semantic-release/commit-analyzer@12.0.0(semantic-release@23.1.1(typescript@5.3.3))': dependencies: conventional-changelog-angular: 7.0.0 conventional-commits-filter: 4.0.0 @@ -6825,13 +7150,13 @@ snapshots: import-from-esm: 1.3.3 lodash-es: 4.17.21 micromatch: 4.0.5 - semantic-release: 23.0.8(typescript@5.3.3) + semantic-release: 23.1.1(typescript@5.3.3) transitivePeerDependencies: - supports-color '@semantic-release/error@4.0.0': {} - '@semantic-release/github@10.0.3(semantic-release@23.0.8(typescript@5.3.3))': + '@semantic-release/github@10.0.5(semantic-release@23.1.1(typescript@5.3.3))': dependencies: '@octokit/core': 6.1.1 '@octokit/plugin-paginate-rest': 11.3.0(@octokit/core@6.1.1) @@ -6848,16 +7173,16 @@ snapshots: lodash-es: 4.17.21 mime: 4.0.1 p-filter: 4.1.0 - semantic-release: 23.0.8(typescript@5.3.3) + semantic-release: 23.1.1(typescript@5.3.3) url-join: 5.0.0 transitivePeerDependencies: - supports-color - '@semantic-release/npm@12.0.0(semantic-release@23.0.8(typescript@5.3.3))': + '@semantic-release/npm@12.0.1(semantic-release@23.1.1(typescript@5.3.3))': dependencies: '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 - execa: 8.0.1 + execa: 9.1.0 fs-extra: 11.2.0 lodash-es: 4.17.21 nerf-dart: 1.0.0 @@ -6866,11 +7191,11 @@ snapshots: rc: 1.2.8 read-pkg: 9.0.1 registry-auth-token: 5.0.2 - semantic-release: 23.0.8(typescript@5.3.3) - semver: 7.6.1 + semantic-release: 23.1.1(typescript@5.3.3) + semver: 7.6.2 tempy: 3.1.0 - '@semantic-release/release-notes-generator@13.0.0(semantic-release@23.0.8(typescript@5.3.3))': + '@semantic-release/release-notes-generator@13.0.0(semantic-release@23.1.1(typescript@5.3.3))': dependencies: conventional-changelog-angular: 7.0.0 conventional-changelog-writer: 7.0.1 @@ -6882,7 +7207,7 @@ snapshots: into-stream: 7.0.0 lodash-es: 4.17.21 read-pkg-up: 11.0.0 - semantic-release: 23.0.8(typescript@5.3.3) + semantic-release: 23.1.1(typescript@5.3.3) transitivePeerDependencies: - supports-color @@ -6890,6 +7215,8 @@ snapshots: '@sindresorhus/merge-streams@1.0.0': {} + '@sindresorhus/merge-streams@4.0.0': {} + '@types/chai@4.3.16': {} '@types/debug@4.1.12': @@ -6901,7 +7228,7 @@ snapshots: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 - '@types/esquery@1.5.3': + '@types/esquery@1.5.4': dependencies: '@types/estree': 1.0.5 @@ -6923,7 +7250,7 @@ snapshots: '@types/ms@0.7.34': {} - '@types/node@20.12.11': + '@types/node@20.12.12': dependencies: undici-types: 5.26.5 @@ -6935,32 +7262,30 @@ snapshots: '@types/ws@8.5.10': dependencies: - '@types/node': 20.12.11 + '@types/node': 20.12.12 - '@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3)': + '@typescript-eslint/eslint-plugin@7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.8.0(eslint@9.2.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 7.8.0 - '@typescript-eslint/type-utils': 7.8.0(eslint@9.2.0)(typescript@5.3.3) - '@typescript-eslint/utils': 7.8.0(eslint@9.2.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.8.0 - debug: 4.3.4(supports-color@8.1.1) - eslint: 9.2.0 + '@typescript-eslint/parser': 7.11.0(eslint@9.3.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.11.0 + '@typescript-eslint/type-utils': 7.11.0(eslint@9.3.0)(typescript@5.3.3) + '@typescript-eslint/utils': 7.11.0(eslint@9.3.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.11.0 + eslint: 9.3.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 - semver: 7.6.1 ts-api-utils: 1.3.0(typescript@5.3.3) optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/experimental-utils@5.62.0(eslint@9.2.0)(typescript@5.3.3)': + '@typescript-eslint/experimental-utils@5.62.0(eslint@9.3.0)(typescript@5.3.3)': dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@9.2.0)(typescript@5.3.3) - eslint: 9.2.0 + '@typescript-eslint/utils': 5.62.0(eslint@9.3.0)(typescript@5.3.3) + eslint: 9.3.0 transitivePeerDependencies: - supports-color - typescript @@ -6978,14 +7303,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3)': + '@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3)': dependencies: - '@typescript-eslint/scope-manager': 7.8.0 - '@typescript-eslint/types': 7.8.0 - '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.8.0 + '@typescript-eslint/scope-manager': 7.11.0 + '@typescript-eslint/types': 7.11.0 + '@typescript-eslint/typescript-estree': 7.11.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.11.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 9.2.0 + eslint: 9.3.0 optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: @@ -7006,17 +7331,22 @@ snapshots: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/scope-manager@7.11.0': + dependencies: + '@typescript-eslint/types': 7.11.0 + '@typescript-eslint/visitor-keys': 7.11.0 + '@typescript-eslint/scope-manager@7.8.0': dependencies: '@typescript-eslint/types': 7.8.0 '@typescript-eslint/visitor-keys': 7.8.0 - '@typescript-eslint/type-utils@7.8.0(eslint@9.2.0)(typescript@5.3.3)': + '@typescript-eslint/type-utils@7.11.0(eslint@9.3.0)(typescript@5.3.3)': dependencies: - '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.3.3) - '@typescript-eslint/utils': 7.8.0(eslint@9.2.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 7.11.0(typescript@5.3.3) + '@typescript-eslint/utils': 7.11.0(eslint@9.3.0)(typescript@5.3.3) debug: 4.3.4(supports-color@8.1.1) - eslint: 9.2.0 + eslint: 9.3.0 ts-api-utils: 1.3.0(typescript@5.3.3) optionalDependencies: typescript: 5.3.3 @@ -7029,7 +7359,7 @@ snapshots: '@typescript-eslint/types@6.21.0': {} - '@typescript-eslint/types@7.5.0': {} + '@typescript-eslint/types@7.11.0': {} '@typescript-eslint/types@7.8.0': {} @@ -7040,7 +7370,7 @@ snapshots: debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.6.1 + semver: 7.6.2 tsutils: 3.21.0(typescript@5.3.3) optionalDependencies: typescript: 5.3.3 @@ -7055,8 +7385,8 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.6.1 - ts-api-utils: 1.0.3(typescript@5.3.3) + semver: 7.6.2 + ts-api-utils: 1.3.0(typescript@5.3.3) optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: @@ -7070,13 +7400,28 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.6.1 + semver: 7.6.2 ts-api-utils: 1.0.3(typescript@5.3.3) optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@7.11.0(typescript@5.3.3)': + dependencies: + '@typescript-eslint/types': 7.11.0 + '@typescript-eslint/visitor-keys': 7.11.0 + debug: 4.3.4(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) + optionalDependencies: + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/typescript-estree@7.8.0(typescript@5.3.3)': dependencies: '@typescript-eslint/types': 7.8.0 @@ -7085,52 +7430,63 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 - semver: 7.6.1 + semver: 7.6.2 ts-api-utils: 1.3.0(typescript@5.3.3) optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@5.62.0(eslint@9.2.0)(typescript@5.3.3)': + '@typescript-eslint/utils@5.62.0(eslint@9.3.0)(typescript@5.3.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.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.2.0 + eslint: 9.3.0 eslint-scope: 5.1.1 - semver: 7.6.1 + semver: 7.6.2 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@6.19.1(eslint@9.2.0)(typescript@5.3.3)': + '@typescript-eslint/utils@6.19.1(eslint@9.3.0)(typescript@5.3.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.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.2.0 - semver: 7.6.1 + eslint: 9.3.0 + semver: 7.6.2 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@7.8.0(eslint@9.2.0)(typescript@5.3.3)': + '@typescript-eslint/utils@7.11.0(eslint@9.3.0)(typescript@5.3.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + '@typescript-eslint/scope-manager': 7.11.0 + '@typescript-eslint/types': 7.11.0 + '@typescript-eslint/typescript-estree': 7.11.0(typescript@5.3.3) + eslint: 9.3.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/utils@7.8.0(eslint@9.3.0)(typescript@5.3.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 7.8.0 '@typescript-eslint/types': 7.8.0 '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.3.3) - eslint: 9.2.0 - semver: 7.6.1 + eslint: 9.3.0 + semver: 7.6.2 transitivePeerDependencies: - supports-color - typescript @@ -7150,6 +7506,11 @@ snapshots: '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 + '@typescript-eslint/visitor-keys@7.11.0': + dependencies: + '@typescript-eslint/types': 7.11.0 + eslint-visitor-keys: 3.4.3 + '@typescript-eslint/visitor-keys@7.8.0': dependencies: '@typescript-eslint/types': 7.8.0 @@ -7269,6 +7630,11 @@ snapshots: call-bind: 1.0.5 is-array-buffer: 3.0.2 + array-buffer-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + is-array-buffer: 3.0.4 + array-ify@1.0.0: {} array-includes@3.1.7: @@ -7279,10 +7645,28 @@ snapshots: get-intrinsic: 1.2.2 is-string: 1.0.7 + array-includes@3.1.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + is-string: 1.0.7 + array-union@2.1.0: {} array-unique@0.3.2: {} + array.prototype.findlast@1.2.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + array.prototype.flat@1.3.2: dependencies: call-bind: 1.0.5 @@ -7305,13 +7689,20 @@ snapshots: es-array-method-boxes-properly: 1.0.0 is-string: 1.0.7 - array.prototype.tosorted@1.1.2: + array.prototype.toreversed@1.1.2: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 + + array.prototype.tosorted@1.1.3: + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 arraybuffer.prototype.slice@1.0.2: dependencies: @@ -7323,6 +7714,17 @@ snapshots: is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 + arraybuffer.prototype.slice@1.0.3: + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + arrify@1.0.1: {} asn1@0.2.6: @@ -7365,6 +7767,10 @@ snapshots: available-typed-arrays@1.0.5: {} + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 + aws-sign2@0.7.0: {} aws4@1.12.0: {} @@ -7387,27 +7793,27 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.5): + babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.6): dependencies: - '@babel/compat-data': 7.24.4 - '@babel/core': 7.24.5 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.5) + '@babel/compat-data': 7.24.6 + '@babel/core': 7.24.6 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.6) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.5): + babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.6): dependencies: - '@babel/core': 7.24.5 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.6) core-js-compat: 3.36.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.5): + babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.6): dependencies: - '@babel/core': 7.24.5 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.6) transitivePeerDependencies: - supports-color @@ -7467,6 +7873,10 @@ snapshots: dependencies: fill-range: 7.0.1 + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + browser-request@0.3.3: {} browser-stdout@1.3.1: {} @@ -7482,10 +7892,6 @@ snapshots: builtin-modules@3.3.0: {} - builtins@5.0.1: - dependencies: - semver: 7.6.1 - busboy@1.6.0: dependencies: streamsearch: 1.1.0 @@ -7508,7 +7914,7 @@ snapshots: dependencies: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.3 - glob: 10.3.13 + glob: 10.4.1 lru-cache: 10.2.0 minipass: 7.0.4 minipass-collect: 2.0.1 @@ -7537,6 +7943,14 @@ snapshots: get-intrinsic: 1.2.2 set-function-length: 1.1.1 + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + caller-callsite@2.0.0: dependencies: callsites: 2.0.0 @@ -7602,7 +8016,7 @@ snapshots: chownr@2.0.0: {} - ci-info@3.9.0: {} + ci-info@4.0.0: {} class-utils@0.3.6: dependencies: @@ -7692,11 +8106,11 @@ snapshots: dependencies: delayed-stream: 1.0.0 - commander@11.1.0: {} + commander@12.1.0: {} commander@2.20.3: {} - commander@4.1.1: {} + commander@6.2.1: {} comment-parser@1.4.1: {} @@ -7731,7 +8145,7 @@ snapshots: handlebars: 4.7.8 json-stringify-safe: 5.0.1 meow: 12.1.1 - semver: 7.6.1 + semver: 7.6.2 split2: 4.2.0 conventional-commits-filter@4.0.0: {} @@ -7753,6 +8167,10 @@ snapshots: dependencies: browserslist: 4.23.0 + core-js-compat@3.37.1: + dependencies: + browserslist: 4.23.0 + core-js-pure@3.34.0: {} core-js@3.34.0: {} @@ -7822,6 +8240,24 @@ snapshots: dependencies: assert-plus: 1.0.0 + data-view-buffer@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-offset@1.0.0: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dataloader@2.2.2: {} deadlink@1.1.3: @@ -7866,6 +8302,12 @@ snapshots: gopd: 1.0.1 has-property-descriptors: 1.0.1 + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + define-properties@1.2.1: dependencies: define-data-property: 1.1.1 @@ -8027,8 +8469,63 @@ snapshots: unbox-primitive: 1.0.2 which-typed-array: 1.1.13 + es-abstract@1.23.3: + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 + es-array-method-boxes-properly@1.0.0: {} + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + es-iterator-helpers@1.0.15: dependencies: asynciterator.prototype: 1.0.0 @@ -8046,12 +8543,39 @@ snapshots: iterator.prototype: 1.1.2 safe-array-concat: 1.0.1 + es-iterator-helpers@1.0.19: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + globalthis: 1.0.3 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + iterator.prototype: 1.1.2 + safe-array-concat: 1.1.2 + + es-object-atoms@1.0.0: + dependencies: + es-errors: 1.3.0 + es-set-tostringtag@2.0.2: dependencies: get-intrinsic: 1.2.2 has-tostringtag: 1.0.0 hasown: 2.0.0 + es-set-tostringtag@2.0.3: + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + es-shim-unscopables@1.0.2: dependencies: hasown: 2.0.0 @@ -8084,52 +8608,58 @@ snapshots: lodash.get: 4.4.2 lodash.zip: 4.2.0 - eslint-compat-utils@0.1.2(eslint@9.2.0): - dependencies: - eslint: 9.2.0 - - eslint-config-canonical@42.8.2(@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.5))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.5))(@types/eslint@8.56.10)(@types/node@20.12.11)(encoding@0.1.13)(eslint@9.2.0)(graphql@16.8.1)(typescript@5.3.3): - dependencies: - '@babel/core': 7.24.5 - '@babel/eslint-parser': 7.24.5(@babel/core@7.24.5)(eslint@9.2.0) - '@babel/eslint-plugin': 7.23.5(@babel/eslint-parser@7.24.5(@babel/core@7.24.5)(eslint@9.2.0))(eslint@9.2.0) - '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.5) - '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.24.5)(@types/node@20.12.11)(encoding@0.1.13)(graphql@16.8.1) - '@next/eslint-plugin-next': 13.5.6 - '@rushstack/eslint-patch': 1.6.1 - '@typescript-eslint/eslint-plugin': 7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3) - '@typescript-eslint/parser': 7.8.0(eslint@9.2.0)(typescript@5.3.3) - eslint: 9.2.0 - eslint-config-prettier: 9.1.0(eslint@9.2.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0) - eslint-plugin-ava: 14.0.0(eslint@9.2.0) - eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0)(typescript@5.3.3) - eslint-plugin-cypress: 2.15.1(eslint@9.2.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@9.2.0) - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.5))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.5))(eslint@9.2.0) - eslint-plugin-fp: 2.3.0(eslint@9.2.0) - eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0) - eslint-plugin-jest: 28.5.0(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3) - eslint-plugin-jsdoc: 46.9.1(eslint@9.2.0) - eslint-plugin-jsonc: 2.11.2(eslint@9.2.0) - eslint-plugin-jsx-a11y: 6.8.0(eslint@9.2.0) - eslint-plugin-lodash: 7.4.0(eslint@9.2.0) - eslint-plugin-mocha: 10.2.0(eslint@9.2.0) + eslint-compat-utils@0.1.2(eslint@9.3.0): + dependencies: + eslint: 9.3.0 + + eslint-compat-utils@0.5.0(eslint@9.3.0): + dependencies: + eslint: 9.3.0 + semver: 7.6.2 + + eslint-config-canonical@43.0.12(@babel/plugin-syntax-flow@7.24.6(@babel/core@7.24.6))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.6))(@types/eslint@8.56.10)(@types/node@20.12.12)(encoding@0.1.13)(eslint@9.3.0)(typescript@5.3.3): + dependencies: + '@babel/core': 7.24.6 + '@babel/eslint-parser': 7.24.6(@babel/core@7.24.6)(eslint@9.3.0) + '@babel/eslint-plugin': 7.24.6(@babel/eslint-parser@7.24.6(@babel/core@7.24.6)(eslint@9.3.0))(eslint@9.3.0) + '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.6) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.24.6)(@types/node@20.12.12)(encoding@0.1.13)(graphql@16.8.1) + '@next/eslint-plugin-next': 14.2.3 + '@typescript-eslint/eslint-plugin': 7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.11.0(eslint@9.3.0)(typescript@5.3.3) + eslint: 9.3.0 + eslint-config-prettier: 9.1.0(eslint@9.3.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.3.0) + eslint-plugin-ava: 15.0.1(eslint@9.3.0) + eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0))(eslint@9.3.0)(typescript@5.3.3) + eslint-plugin-cypress: 3.3.0(eslint@9.3.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@9.3.0) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.24.6(@babel/core@7.24.6))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.6))(eslint@9.3.0) + eslint-plugin-fp: 2.3.0(eslint@9.3.0) + eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.3.0) + eslint-plugin-jest: 28.5.0(@typescript-eslint/eslint-plugin@7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3) + eslint-plugin-jsdoc: 48.2.6(eslint@9.3.0) + eslint-plugin-jsonc: 2.16.0(eslint@9.3.0) + eslint-plugin-jsx-a11y: 6.8.0(eslint@9.3.0) + eslint-plugin-lodash: 8.0.0(eslint@9.3.0) + eslint-plugin-mocha: 10.4.3(eslint@9.3.0) eslint-plugin-modules-newline: 0.0.6 - eslint-plugin-n: 16.5.0(eslint@9.2.0) - eslint-plugin-prettier: 5.1.2(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.2.0))(eslint@9.2.0)(prettier@3.1.1) - eslint-plugin-promise: 6.1.1(eslint@9.2.0) - eslint-plugin-react: 7.33.2(eslint@9.2.0) - eslint-plugin-react-hooks: 4.6.0(eslint@9.2.0) - eslint-plugin-regexp: 1.15.0(eslint@9.2.0) - eslint-plugin-simple-import-sort: 10.0.0(eslint@9.2.0) - eslint-plugin-typescript-sort-keys: 3.2.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3) - eslint-plugin-unicorn: 48.0.1(eslint@9.2.0) - eslint-plugin-vitest: 0.3.20(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3) - eslint-plugin-yml: 1.11.0(eslint@9.2.0) - eslint-plugin-zod: 1.4.0(eslint@9.2.0) - prettier: 3.1.1 - ramda: 0.29.1 + eslint-plugin-n: 17.7.0(eslint@9.3.0) + eslint-plugin-prettier: 5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.3.0))(eslint@9.3.0)(prettier@3.2.5) + eslint-plugin-promise: 6.1.1(eslint@9.3.0) + eslint-plugin-react: 7.34.2(eslint@9.3.0) + eslint-plugin-react-hooks: 4.6.2(eslint@9.3.0) + eslint-plugin-regexp: 2.6.0(eslint@9.3.0) + eslint-plugin-simple-import-sort: 12.1.0(eslint@9.3.0) + eslint-plugin-typescript-sort-keys: 3.2.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3) + eslint-plugin-unicorn: 53.0.0(eslint@9.3.0) + eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3) + eslint-plugin-yml: 1.14.0(eslint@9.3.0) + eslint-plugin-zod: 1.4.0(eslint@9.3.0) + globals: 15.3.0 + graphql: 16.8.1 + prettier: 3.2.5 + ramda: 0.30.0 yaml-eslint-parser: 1.2.2 transitivePeerDependencies: - '@babel/plugin-syntax-flow' @@ -8141,16 +8671,15 @@ snapshots: - encoding - eslint-import-resolver-node - eslint-import-resolver-webpack - - graphql - jest - supports-color - typescript - utf-8-validate - vitest - eslint-config-prettier@9.1.0(eslint@9.2.0): + eslint-config-prettier@9.1.0(eslint@9.3.0): dependencies: - eslint: 9.2.0 + eslint: 9.3.0 eslint-import-resolver-node@0.3.9: dependencies: @@ -8160,13 +8689,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.3.0): dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 - eslint: 9.2.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0))(eslint@9.2.0) - eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0) + eslint: 9.3.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.3.0))(eslint@9.3.0) + eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.3.0) fast-glob: 3.3.2 get-tsconfig: 4.7.2 is-core-module: 2.13.1 @@ -8177,22 +8706,22 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0))(eslint@9.2.0): + eslint-module-utils@2.8.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.3.0))(eslint@9.3.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.8.0(eslint@9.2.0)(typescript@5.3.3) - eslint: 9.2.0 + '@typescript-eslint/parser': 7.11.0(eslint@9.3.0)(typescript@5.3.3) + eslint: 9.3.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.3.0) transitivePeerDependencies: - supports-color - eslint-plugin-ava@14.0.0(eslint@9.2.0): + eslint-plugin-ava@15.0.1(eslint@9.3.0): dependencies: enhance-visitors: 1.0.0 - eslint: 9.2.0 - eslint-utils: 3.0.0(eslint@9.2.0) + eslint: 9.3.0 + eslint-utils: 3.0.0(eslint@9.3.0) espree: 9.6.1 espurify: 2.1.1 import-modules: 2.1.0 @@ -8200,13 +8729,13 @@ snapshots: pkg-dir: 5.0.0 resolve-from: 5.0.0 - eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0)(typescript@5.3.3): + eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0))(eslint@9.3.0)(typescript@5.3.3): dependencies: - '@typescript-eslint/utils': 6.19.1(eslint@9.2.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.1(eslint@9.3.0)(typescript@5.3.3) chance: 1.1.11 debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0))(eslint@9.2.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.3.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.3.0))(eslint@9.3.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -8226,93 +8755,93 @@ snapshots: - supports-color - typescript - eslint-plugin-cypress@2.15.1(eslint@9.2.0): + eslint-plugin-cypress@3.3.0(eslint@9.3.0): dependencies: - eslint: 9.2.0 + eslint: 9.3.0 globals: 13.24.0 - eslint-plugin-es-x@7.5.0(eslint@9.2.0): + eslint-plugin-es-x@7.5.0(eslint@9.3.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) '@eslint-community/regexpp': 4.10.0 - eslint: 9.2.0 - eslint-compat-utils: 0.1.2(eslint@9.2.0) + eslint: 9.3.0 + eslint-compat-utils: 0.1.2(eslint@9.3.0) - eslint-plugin-eslint-comments@3.2.0(eslint@9.2.0): + eslint-plugin-eslint-comments@3.2.0(eslint@9.3.0): dependencies: escape-string-regexp: 1.0.5 - eslint: 9.2.0 - ignore: 5.3.0 + eslint: 9.3.0 + ignore: 5.3.1 - eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.5))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.5))(eslint@9.2.0): + eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.24.6(@babel/core@7.24.6))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.6))(eslint@9.3.0): dependencies: - '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.5) - eslint: 9.2.0 + '@babel/plugin-syntax-flow': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.6) + eslint: 9.3.0 lodash: 4.17.21 string-natural-compare: 3.0.1 - eslint-plugin-fp@2.3.0(eslint@9.2.0): + eslint-plugin-fp@2.3.0(eslint@9.3.0): dependencies: create-eslint-index: 1.0.0 - eslint: 9.2.0 + eslint: 9.3.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.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0): + eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.3.0): dependencies: debug: 4.3.4(supports-color@8.1.1) doctrine: 3.0.0 - eslint: 9.2.0 + eslint: 9.3.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.2.0))(eslint@9.2.0))(eslint@9.2.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.3.0))(eslint@9.3.0) get-tsconfig: 4.7.2 is-glob: 4.0.3 minimatch: 3.1.2 - semver: 7.6.1 + semver: 7.6.2 transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@28.5.0(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3): + eslint-plugin-jest@28.5.0(@typescript-eslint/eslint-plugin@7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3): dependencies: - '@typescript-eslint/utils': 6.19.1(eslint@9.2.0)(typescript@5.3.3) - eslint: 9.2.0 + '@typescript-eslint/utils': 7.8.0(eslint@9.3.0)(typescript@5.3.3) + eslint: 9.3.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jsdoc@46.9.1(eslint@9.2.0): + eslint-plugin-jsdoc@48.2.6(eslint@9.3.0): dependencies: - '@es-joy/jsdoccomment': 0.41.0 + '@es-joy/jsdoccomment': 0.43.1 are-docs-informative: 0.0.2 comment-parser: 1.4.1 debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 9.2.0 + eslint: 9.3.0 esquery: 1.5.0 - is-builtin-module: 3.2.1 - semver: 7.6.1 + semver: 7.6.2 spdx-expression-parse: 4.0.0 transitivePeerDependencies: - supports-color - eslint-plugin-jsonc@2.11.2(eslint@9.2.0): + eslint-plugin-jsonc@2.16.0(eslint@9.3.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) - eslint: 9.2.0 - eslint-compat-utils: 0.1.2(eslint@9.2.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + eslint: 9.3.0 + eslint-compat-utils: 0.5.0(eslint@9.3.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.8.0(eslint@9.2.0): + eslint-plugin-jsx-a11y@6.8.0(eslint@9.3.0): dependencies: '@babel/runtime': 7.23.6 aria-query: 5.3.0 @@ -8324,7 +8853,7 @@ snapshots: damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 es-iterator-helpers: 1.0.15 - eslint: 9.2.0 + eslint: 9.3.0 hasown: 2.0.0 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -8332,143 +8861,146 @@ snapshots: object.entries: 1.1.7 object.fromentries: 2.0.7 - eslint-plugin-lodash@7.4.0(eslint@9.2.0): + eslint-plugin-lodash@8.0.0(eslint@9.3.0): dependencies: - eslint: 9.2.0 + eslint: 9.3.0 lodash: 4.17.21 - eslint-plugin-mocha@10.2.0(eslint@9.2.0): + eslint-plugin-mocha@10.4.3(eslint@9.3.0): dependencies: - eslint: 9.2.0 - eslint-utils: 3.0.0(eslint@9.2.0) + eslint: 9.3.0 + eslint-utils: 3.0.0(eslint@9.3.0) + globals: 13.24.0 rambda: 7.5.0 eslint-plugin-modules-newline@0.0.6: dependencies: requireindex: 1.1.0 - eslint-plugin-n@16.5.0(eslint@9.2.0): + eslint-plugin-n@17.7.0(eslint@9.3.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) - builtins: 5.0.1 - eslint: 9.2.0 - eslint-plugin-es-x: 7.5.0(eslint@9.2.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + enhanced-resolve: 5.15.0 + eslint: 9.3.0 + eslint-plugin-es-x: 7.5.0(eslint@9.3.0) get-tsconfig: 4.7.2 - ignore: 5.3.0 - is-builtin-module: 3.2.1 - is-core-module: 2.13.1 - minimatch: 3.1.2 - resolve: 1.22.8 - semver: 7.6.1 + globals: 15.3.0 + ignore: 5.3.1 + minimatch: 9.0.4 + semver: 7.6.2 - eslint-plugin-prettier@5.1.2(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.2.0))(eslint@9.2.0)(prettier@3.1.1): + eslint-plugin-prettier@5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.3.0))(eslint@9.3.0)(prettier@3.2.5): dependencies: - eslint: 9.2.0 - prettier: 3.1.1 + eslint: 9.3.0 + prettier: 3.2.5 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 optionalDependencies: '@types/eslint': 8.56.10 - eslint-config-prettier: 9.1.0(eslint@9.2.0) + eslint-config-prettier: 9.1.0(eslint@9.3.0) - eslint-plugin-promise@6.1.1(eslint@9.2.0): + eslint-plugin-promise@6.1.1(eslint@9.3.0): dependencies: - eslint: 9.2.0 + eslint: 9.3.0 - eslint-plugin-react-hooks@4.6.0(eslint@9.2.0): + eslint-plugin-react-hooks@4.6.2(eslint@9.3.0): dependencies: - eslint: 9.2.0 + eslint: 9.3.0 - eslint-plugin-react@7.33.2(eslint@9.2.0): + eslint-plugin-react@7.34.2(eslint@9.3.0): dependencies: - array-includes: 3.1.7 + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.2 - array.prototype.tosorted: 1.1.2 + array.prototype.toreversed: 1.1.2 + array.prototype.tosorted: 1.1.3 doctrine: 2.1.0 - es-iterator-helpers: 1.0.15 - eslint: 9.2.0 + es-iterator-helpers: 1.0.19 + eslint: 9.3.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 - object.hasown: 1.1.3 - object.values: 1.1.7 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.hasown: 1.1.4 + object.values: 1.2.0 prop-types: 15.8.1 resolve: 2.0.0-next.5 semver: 6.3.1 - string.prototype.matchall: 4.0.10 + string.prototype.matchall: 4.0.11 - eslint-plugin-regexp@1.15.0(eslint@9.2.0): + eslint-plugin-regexp@2.6.0(eslint@9.3.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) '@eslint-community/regexpp': 4.10.0 comment-parser: 1.4.1 - eslint: 9.2.0 - grapheme-splitter: 1.0.4 - jsdoctypeparser: 9.0.0 - refa: 0.11.0 - regexp-ast-analysis: 0.6.0 - scslre: 0.2.0 + eslint: 9.3.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@10.0.0(eslint@9.2.0): + eslint-plugin-simple-import-sort@12.1.0(eslint@9.3.0): dependencies: - eslint: 9.2.0 + eslint: 9.3.0 - eslint-plugin-typescript-sort-keys@3.2.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3): + eslint-plugin-typescript-sort-keys@3.2.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3): dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.2.0)(typescript@5.3.3) - '@typescript-eslint/parser': 7.8.0(eslint@9.2.0)(typescript@5.3.3) - eslint: 9.2.0 + '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.3.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.11.0(eslint@9.3.0)(typescript@5.3.3) + eslint: 9.3.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 typescript: 5.3.3 transitivePeerDependencies: - supports-color - eslint-plugin-unicorn@48.0.1(eslint@9.2.0): + eslint-plugin-unicorn@53.0.0(eslint@9.3.0): dependencies: - '@babel/helper-validator-identifier': 7.22.20 - '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) - ci-info: 3.9.0 + '@babel/helper-validator-identifier': 7.24.5 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + '@eslint/eslintrc': 3.0.2 + ci-info: 4.0.0 clean-regexp: 1.0.0 - eslint: 9.2.0 + core-js-compat: 3.37.1 + eslint: 9.3.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 jsesc: 3.0.2 - lodash: 4.17.21 pluralize: 8.0.0 read-pkg-up: 7.0.1 regexp-tree: 0.1.27 regjsparser: 0.10.0 - semver: 7.6.1 + semver: 7.6.2 strip-indent: 3.0.0 + transitivePeerDependencies: + - supports-color - eslint-plugin-vitest@0.3.20(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3): + eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3): dependencies: - '@typescript-eslint/utils': 6.19.1(eslint@9.2.0)(typescript@5.3.3) - eslint: 9.2.0 + '@typescript-eslint/utils': 7.8.0(eslint@9.3.0)(typescript@5.3.3) + eslint: 9.3.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.3.3))(eslint@9.2.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-yml@1.11.0(eslint@9.2.0): + eslint-plugin-yml@1.14.0(eslint@9.3.0): dependencies: debug: 4.3.4(supports-color@8.1.1) - eslint: 9.2.0 - eslint-compat-utils: 0.1.2(eslint@9.2.0) + eslint: 9.3.0 + eslint-compat-utils: 0.5.0(eslint@9.3.0) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.2 transitivePeerDependencies: - supports-color - eslint-plugin-zod@1.4.0(eslint@9.2.0): + eslint-plugin-zod@1.4.0(eslint@9.3.0): dependencies: - eslint: 9.2.0 + eslint: 9.3.0 eslint-rule-composer@0.3.0: {} @@ -8487,9 +9019,9 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-utils@3.0.0(eslint@9.2.0): + eslint-utils@3.0.0(eslint@9.3.0): dependencies: - eslint: 9.2.0 + eslint: 9.3.0 eslint-visitor-keys: 2.1.0 eslint-visitor-keys@2.1.0: {} @@ -8525,7 +9057,7 @@ snapshots: glob-parent: 6.0.2 globals: 13.24.0 graphemer: 1.4.0 - ignore: 5.3.0 + ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -8541,15 +9073,15 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@9.2.0: + eslint@9.3.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 3.0.2 - '@eslint/js': 9.2.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.3.0 '@humanwhocodes/config-array': 0.13.0 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.2.4 + '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 @@ -8565,7 +9097,7 @@ snapshots: file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - ignore: 5.3.0 + ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -8646,6 +9178,21 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 + execa@9.1.0: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + cross-spawn: 7.0.3 + figures: 6.1.0 + get-stream: 9.0.1 + human-signals: 7.0.0 + is-plain-obj: 4.1.0 + is-stream: 4.0.1 + npm-run-path: 5.2.0 + pretty-ms: 9.0.0 + signal-exit: 4.1.0 + strip-final-newline: 4.0.0 + yoctocolors: 2.0.2 + expand-brackets@2.1.4: dependencies: debug: 2.6.9 @@ -8730,6 +9277,10 @@ snapshots: dependencies: is-unicode-supported: 2.0.0 + figures@6.1.0: + dependencies: + is-unicode-supported: 2.0.0 + file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 @@ -8751,6 +9302,10 @@ snapshots: dependencies: to-regex-range: 5.0.1 + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + find-cache-dir@2.1.0: dependencies: commondir: 1.0.1 @@ -8874,6 +9429,14 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.0 + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + get-package-type@0.1.0: {} get-set-props@0.1.0: {} @@ -8888,11 +9451,22 @@ snapshots: get-stream@8.0.1: {} + get-stream@9.0.1: + dependencies: + '@sec-ant/readable-stream': 0.4.1 + is-stream: 4.0.1 + get-symbol-description@1.0.0: dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 + get-symbol-description@1.0.2: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + get-tsconfig@4.7.2: dependencies: resolve-pkg-maps: 1.0.0 @@ -8950,22 +9524,21 @@ snapshots: dependencies: is-glob: 4.0.3 - glob@10.3.13: + glob@10.3.10: dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 - minimatch: 9.0.3 + minimatch: 9.0.4 minipass: 7.0.4 path-scurry: 1.10.2 - glob@7.1.7: + glob@10.4.1: dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 + foreground-child: 3.1.1 + jackspeak: 3.1.2 + minimatch: 9.0.4 + minipass: 7.1.2 + path-scurry: 1.11.1 glob@7.2.3: dependencies: @@ -8992,7 +9565,7 @@ snapshots: globals@14.0.0: {} - globals@15.2.0: {} + globals@15.3.0: {} globalthis@1.0.3: dependencies: @@ -9003,7 +9576,7 @@ snapshots: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.0 + ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 @@ -9011,30 +9584,28 @@ snapshots: dependencies: '@sindresorhus/merge-streams': 1.0.0 fast-glob: 3.3.2 - ignore: 5.3.0 + ignore: 5.3.1 path-type: 5.0.0 slash: 5.1.0 unicorn-magic: 0.1.0 gopd@1.0.1: dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 graceful-fs@4.2.10: {} graceful-fs@4.2.11: {} - grapheme-splitter@1.0.4: {} - graphemer@1.4.0: {} - graphql-config@4.5.0(@types/node@20.12.11)(encoding@0.1.13)(graphql@16.8.1): + graphql-config@4.5.0(@types/node@20.12.12)(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.12.11)(encoding@0.1.13)(graphql@16.8.1) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.12.12)(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 @@ -9085,14 +9656,24 @@ snapshots: dependencies: get-intrinsic: 1.2.2 + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + has-proto@1.0.1: {} + has-proto@1.0.3: {} + has-symbols@1.0.3: {} has-tostringtag@1.0.0: dependencies: has-symbols: 1.0.3 + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.0.3 + has-value@0.3.1: dependencies: get-value: 2.0.6 @@ -9116,6 +9697,10 @@ snapshots: dependencies: function-bind: 1.1.2 + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + he@1.2.0: {} highlight.js@10.7.3: {} @@ -9169,6 +9754,8 @@ snapshots: human-signals@5.0.0: {} + human-signals@7.0.0: {} + husky@9.0.11: {} iconv-lite@0.6.3: @@ -9176,8 +9763,6 @@ snapshots: safer-buffer: 2.1.2 optional: true - ignore@5.3.0: {} - ignore@5.3.1: {} import-fresh@2.0.0: @@ -9226,6 +9811,12 @@ snapshots: hasown: 2.0.0 side-channel: 1.0.4 + internal-slot@1.0.7: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.0 + side-channel: 1.0.4 + into-stream@7.0.0: dependencies: from2: 2.3.0 @@ -9250,6 +9841,11 @@ snapshots: get-intrinsic: 1.2.2 is-typed-array: 1.1.12 + is-array-buffer@3.0.4: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + is-arrayish@0.2.1: {} is-async-function@2.0.0: @@ -9285,6 +9881,10 @@ snapshots: dependencies: hasown: 2.0.0 + is-data-view@1.0.1: + dependencies: + is-typed-array: 1.1.13 + is-date-object@1.0.5: dependencies: has-tostringtag: 1.0.0 @@ -9351,6 +9951,8 @@ snapshots: is-negative-zero@2.0.2: {} + is-negative-zero@2.0.3: {} + is-number-object@1.0.7: dependencies: has-tostringtag: 1.0.0 @@ -9372,6 +9974,8 @@ snapshots: is-plain-obj@2.1.0: {} + is-plain-obj@4.1.0: {} + is-plain-object@2.0.4: dependencies: isobject: 3.0.1 @@ -9392,12 +9996,18 @@ snapshots: dependencies: call-bind: 1.0.5 + is-shared-array-buffer@1.0.3: + dependencies: + call-bind: 1.0.7 + is-stream@1.1.0: {} is-stream@2.0.1: {} is-stream@3.0.0: {} + is-stream@4.0.1: {} + is-string@1.0.7: dependencies: has-tostringtag: 1.0.0 @@ -9414,6 +10024,10 @@ snapshots: dependencies: which-typed-array: 1.1.13 + is-typed-array@1.1.13: + dependencies: + which-typed-array: 1.1.15 + is-typedarray@1.0.0: {} is-unicode-supported@0.1.0: {} @@ -9473,7 +10087,7 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.6 '@babel/parser': 7.23.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -9506,6 +10120,12 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jackspeak@3.1.2: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + java-properties@1.0.2: {} jiti@1.17.1: {} @@ -9527,8 +10147,6 @@ snapshots: jsdoc-type-pratt-parser@4.0.0: {} - jsdoctypeparser@9.0.0: {} - jsdom@6.5.1: dependencies: acorn: 2.7.0 @@ -9579,7 +10197,7 @@ snapshots: acorn: 8.11.3 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - semver: 7.6.1 + semver: 7.6.2 jsonfile@6.1.0: dependencies: @@ -9633,7 +10251,7 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - lilconfig@3.0.0: {} + lilconfig@3.1.1: {} line-column-path@2.0.0: dependencies: @@ -9641,28 +10259,28 @@ snapshots: lines-and-columns@1.2.4: {} - lint-staged@15.2.2: + lint-staged@15.2.5: dependencies: chalk: 5.3.0 - commander: 11.1.0 + commander: 12.1.0 debug: 4.3.4(supports-color@8.1.1) execa: 8.0.1 - lilconfig: 3.0.0 - listr2: 8.0.1 - micromatch: 4.0.5 + lilconfig: 3.1.1 + listr2: 8.2.1 + micromatch: 4.0.7 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.3.4 + yaml: 2.4.2 transitivePeerDependencies: - supports-color - listr2@8.0.1: + listr2@8.2.1: dependencies: cli-truncate: 4.0.0 colorette: 2.0.20 eventemitter3: 5.0.1 log-update: 6.0.0 - rfdc: 1.3.0 + rfdc: 1.3.1 wrap-ansi: 9.0.0 load-json-file@4.0.0: @@ -9752,7 +10370,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.6.1 + semver: 7.6.2 make-fetch-happen@13.0.0: dependencies: @@ -9801,9 +10419,9 @@ snapshots: merge2@1.4.1: {} - meros@1.3.0(@types/node@20.12.11): + meros@1.3.0(@types/node@20.12.12): optionalDependencies: - '@types/node': 20.12.11 + '@types/node': 20.12.12 micro-spelling-correcter@1.1.1: {} @@ -9830,6 +10448,11 @@ snapshots: braces: 3.0.2 picomatch: 2.3.1 + micromatch@4.0.7: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + mime-db@1.52.0: {} mime-types@2.1.35: @@ -9902,6 +10525,8 @@ snapshots: minipass@7.0.4: {} + minipass@7.1.2: {} + minizlib@2.1.2: dependencies: minipass: 3.3.6 @@ -10003,12 +10628,12 @@ snapshots: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.1 - glob: 10.3.13 + glob: 10.4.1 graceful-fs: 4.2.11 make-fetch-happen: 13.0.0 nopt: 7.2.0 proc-log: 3.0.0 - semver: 7.6.1 + semver: 7.6.2 tar: 6.2.0 which: 4.0.0 transitivePeerDependencies: @@ -10031,7 +10656,7 @@ snapshots: dependencies: hosted-git-info: 7.0.1 is-core-module: 2.13.1 - semver: 7.6.1 + semver: 7.6.2 validate-npm-package-license: 3.0.4 normalize-path@2.1.1: @@ -10108,12 +10733,25 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.22.3 + object.entries@1.1.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + object.fromentries@2.0.7: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + object.getownpropertydescriptors@2.1.7: dependencies: array.prototype.reduce: 1.0.6 @@ -10122,10 +10760,11 @@ snapshots: es-abstract: 1.22.3 safe-array-concat: 1.0.1 - object.hasown@1.1.3: + object.hasown@1.1.4: dependencies: define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 object.pick@1.3.0: dependencies: @@ -10137,6 +10776,12 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.22.3 + object.values@1.2.0: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + once@1.4.0: dependencies: wrappy: 1.0.2 @@ -10251,6 +10896,8 @@ snapshots: index-to-position: 0.1.2 type-fest: 4.9.0 + parse-ms@4.0.0: {} + parse-passwd@1.0.0: {} parse5-htmlparser2-tree-adapter@6.0.1: @@ -10284,6 +10931,11 @@ snapshots: lru-cache: 10.2.0 minipass: 7.0.4 + path-scurry@1.11.1: + dependencies: + lru-cache: 10.2.0 + minipass: 7.1.2 + path-type@4.0.0: {} path-type@5.0.0: {} @@ -10321,6 +10973,8 @@ snapshots: posix-character-classes@0.1.1: {} + possible-typed-array-names@1.0.0: {} + prelude-ls@1.1.2: {} prelude-ls@1.2.1: {} @@ -10329,7 +10983,11 @@ snapshots: dependencies: fast-diff: 1.3.0 - prettier@3.1.1: {} + prettier@3.2.5: {} + + pretty-ms@9.0.0: + dependencies: + parse-ms: 4.0.0 proc-log@3.0.0: {} @@ -10375,7 +11033,7 @@ snapshots: ramda@0.26.1: {} - ramda@0.29.1: {} + ramda@0.30.0: {} randombytes@2.1.0: dependencies: @@ -10459,7 +11117,7 @@ snapshots: source-map: 0.6.1 tslib: 2.6.2 - refa@0.11.0: + refa@0.12.1: dependencies: '@eslint-community/regexpp': 4.10.0 @@ -10489,10 +11147,10 @@ snapshots: extend-shallow: 3.0.2 safe-regex: 1.1.0 - regexp-ast-analysis@0.6.0: + regexp-ast-analysis@0.7.1: dependencies: '@eslint-community/regexpp': 4.10.0 - refa: 0.11.0 + refa: 0.12.1 regexp-tree@0.1.27: {} @@ -10502,6 +11160,13 @@ snapshots: define-properties: 1.2.1 set-function-name: 2.0.1 + regexp.prototype.flags@1.5.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + regexpu-core@5.3.2: dependencies: '@babel/regjsgen': 0.8.0 @@ -10599,15 +11264,15 @@ snapshots: reusify@1.0.4: {} - rfdc@1.3.0: {} + rfdc@1.3.1: {} rimraf@3.0.2: dependencies: glob: 7.2.3 - rimraf@5.0.5: + rimraf@5.0.7: dependencies: - glob: 10.3.13 + glob: 10.4.1 roarr@7.21.0: dependencies: @@ -10626,6 +11291,13 @@ snapshots: has-symbols: 1.0.3 isarray: 2.0.5 + safe-array-concat@1.1.2: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 + safe-buffer@5.1.2: {} safe-buffer@5.2.1: {} @@ -10636,6 +11308,12 @@ snapshots: get-intrinsic: 1.2.2 is-regex: 1.1.4 + safe-regex-test@1.0.3: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-regex: 1.1.4 + safe-regex@1.1.0: dependencies: ret: 0.1.15 @@ -10644,24 +11322,24 @@ snapshots: safer-buffer@2.1.2: {} - scslre@0.2.0: + scslre@0.3.0: dependencies: '@eslint-community/regexpp': 4.10.0 - refa: 0.11.0 - regexp-ast-analysis: 0.6.0 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 - semantic-release@23.0.8(typescript@5.3.3): + semantic-release@23.1.1(typescript@5.3.3): dependencies: - '@semantic-release/commit-analyzer': 12.0.0(semantic-release@23.0.8(typescript@5.3.3)) + '@semantic-release/commit-analyzer': 12.0.0(semantic-release@23.1.1(typescript@5.3.3)) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 10.0.3(semantic-release@23.0.8(typescript@5.3.3)) - '@semantic-release/npm': 12.0.0(semantic-release@23.0.8(typescript@5.3.3)) - '@semantic-release/release-notes-generator': 13.0.0(semantic-release@23.0.8(typescript@5.3.3)) + '@semantic-release/github': 10.0.5(semantic-release@23.1.1(typescript@5.3.3)) + '@semantic-release/npm': 12.0.1(semantic-release@23.1.1(typescript@5.3.3)) + '@semantic-release/release-notes-generator': 13.0.0(semantic-release@23.1.1(typescript@5.3.3)) aggregate-error: 5.0.0 cosmiconfig: 9.0.0(typescript@5.3.3) debug: 4.3.4(supports-color@8.1.1) env-ci: 11.0.0 - execa: 8.0.1 + execa: 9.1.0 figures: 6.0.1 find-versions: 6.0.0 get-stream: 6.0.1 @@ -10677,7 +11355,7 @@ snapshots: p-reduce: 3.0.0 read-package-up: 11.0.0 resolve-from: 5.0.0 - semver: 7.6.1 + semver: 7.6.2 semver-diff: 4.0.0 signale: 1.4.0 yargs: 17.7.2 @@ -10689,7 +11367,7 @@ snapshots: semver-diff@4.0.0: dependencies: - semver: 7.6.1 + semver: 7.6.2 semver-regex@4.0.5: {} @@ -10697,7 +11375,7 @@ snapshots: semver@6.3.1: {} - semver@7.6.1: {} + semver@7.6.2: {} serialize-javascript@6.0.0: dependencies: @@ -10712,12 +11390,28 @@ snapshots: gopd: 1.0.1 has-property-descriptors: 1.0.1 + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + set-function-name@2.0.1: dependencies: define-data-property: 1.1.1 functions-have-names: 1.2.3 has-property-descriptors: 1.0.1 + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + set-value@2.0.1: dependencies: extend-shallow: 2.0.1 @@ -10747,6 +11441,13 @@ snapshots: get-intrinsic: 1.2.2 object-inspect: 1.13.1 + side-channel@1.0.6: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.1 + signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -10928,17 +11629,20 @@ snapshots: get-east-asian-width: 1.2.0 strip-ansi: 7.1.0 - string.prototype.matchall@4.0.10: + string.prototype.matchall@4.0.11: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 has-symbols: 1.0.3 - internal-slot: 1.0.6 - regexp.prototype.flags: 1.5.1 - set-function-name: 2.0.1 - side-channel: 1.0.4 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.2 + set-function-name: 2.0.2 + side-channel: 1.0.6 string.prototype.trim@1.2.8: dependencies: @@ -10946,18 +11650,37 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.22.3 + string.prototype.trim@1.2.9: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + string.prototype.trimend@1.0.7: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 + string.prototype.trimend@1.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + string.prototype.trimstart@1.0.7: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 @@ -10982,6 +11705,8 @@ snapshots: strip-final-newline@3.0.0: {} + strip-final-newline@4.0.0: {} + strip-indent@3.0.0: dependencies: min-indent: 1.0.1 @@ -11016,6 +11741,10 @@ snapshots: symbol-tree@3.2.4: {} + synckit@0.6.2: + dependencies: + tslib: 2.6.2 + synckit@0.8.8: dependencies: '@pkgr/core': 0.1.0 @@ -11171,6 +11900,12 @@ snapshots: get-intrinsic: 1.2.2 is-typed-array: 1.1.12 + typed-array-buffer@1.0.2: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + typed-array-byte-length@1.0.0: dependencies: call-bind: 1.0.5 @@ -11178,6 +11913,14 @@ snapshots: has-proto: 1.0.1 is-typed-array: 1.1.12 + typed-array-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + typed-array-byte-offset@1.0.0: dependencies: available-typed-arrays: 1.0.5 @@ -11186,12 +11929,30 @@ snapshots: has-proto: 1.0.1 is-typed-array: 1.1.12 + typed-array-byte-offset@1.0.2: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + typed-array-length@1.0.4: dependencies: call-bind: 1.0.5 for-each: 0.3.3 is-typed-array: 1.1.12 + typed-array-length@1.0.6: + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + typescript@5.3.3: {} uglify-js@3.17.4: @@ -11377,6 +12138,14 @@ snapshots: gopd: 1.0.1 has-tostringtag: 1.0.0 + which-typed-array@1.1.15: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + which@1.3.1: dependencies: isexe: 2.0.0 @@ -11451,6 +12220,8 @@ snapshots: yaml@2.3.4: {} + yaml@2.4.2: {} + yargs-parser@18.1.3: dependencies: camelcase: 5.3.1 @@ -11502,3 +12273,5 @@ snapshots: yargs-parser: 21.1.1 yocto-queue@0.1.0: {} + + yoctocolors@2.0.2: {} diff --git a/test/rules/assertions/matchName.js b/test/rules/assertions/matchName.js index 9cc7eec58..a72f15cc2 100644 --- a/test/rules/assertions/matchName.js +++ b/test/rules/assertions/matchName.js @@ -543,5 +543,21 @@ export default { }, ], }, + { + code: ` + /** + * @template {string} [T=typeof FOO] + * @typedef {object} Test + * @property {T} test + */ + `, + options: [{ + match: [{ + allowName: "/^[A-Z]{1}$/", + message: "The name should be a single capital letter.", + tags: ["template"], + }], + }], + }, ], }; From e9e444034f60b7a2554b99b81cada6271f111609 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 5 Jun 2024 12:58:32 -0700 Subject: [PATCH 186/273] fix(`require-description-complete-sentence`): avoid triggering punctuation warning after Markdown headings; fixes #1220 --- docs/rules/match-name.md | 7 +++++++ .../require-description-complete-sentence.md | 12 ++++++++++++ docs/rules/require-yields.md | 6 ++++++ src/rules/requireDescriptionCompleteSentence.js | 5 ++++- .../requireDescriptionCompleteSentence.js | 16 ++++++++++++++++ 5 files changed, 45 insertions(+), 1 deletion(-) diff --git a/docs/rules/match-name.md b/docs/rules/match-name.md index fd25834f5..991a8453d 100644 --- a/docs/rules/match-name.md +++ b/docs/rules/match-name.md @@ -245,5 +245,12 @@ class A { * @param {Foo|Bar} opt_b */ // "jsdoc/match-name": ["error"|"warn", {"match":[{"comment":"JsdocBlock:has(JsdocTag[tag=\"param\"]:has(JsdocTypeUnion:has(JsdocTypeName[value=\"Bar\"]:nth-child(1))))","disallowName":"/^opt_/i"}]}] + +/** + * @template {string} [T=typeof FOO] + * @typedef {object} Test + * @property {T} test + */ +// "jsdoc/match-name": ["error"|"warn", {"match":[{"allowName":"/^[A-Z]{1}$/","message":"The name should be a single capital letter.","tags":["template"]}]}] ```` diff --git a/docs/rules/require-description-complete-sentence.md b/docs/rules/require-description-complete-sentence.md index b1a840017..3b8461ed3 100644 --- a/docs/rules/require-description-complete-sentence.md +++ b/docs/rules/require-description-complete-sentence.md @@ -829,5 +829,17 @@ function quux () { * @param parameter */ const code = (parameter) => 123; + +/** + * ### Overview + * My class is doing. + * + * ### Example + * ```javascript + * const toto = 'toto'; + * ``` + */ +export class ClassExemple { +} ```` diff --git a/docs/rules/require-yields.md b/docs/rules/require-yields.md index 7d48bc284..b6814b432 100644 --- a/docs/rules/require-yields.md +++ b/docs/rules/require-yields.md @@ -796,5 +796,11 @@ function * quux (foo) { yield foo; } } + +/** + * + */ +export { foo } from "bar" +// "jsdoc/require-yields": ["error"|"warn", {"contexts":["ExportNamedDeclaration"]}] ```` diff --git a/src/rules/requireDescriptionCompleteSentence.js b/src/rules/requireDescriptionCompleteSentence.js index e5ba88640..8673b45ae 100644 --- a/src/rules/requireDescriptionCompleteSentence.js +++ b/src/rules/requireDescriptionCompleteSentence.js @@ -192,7 +192,10 @@ const validateDescription = ( const paragraphNoAbbreviations = paragraph.replace(abbreviationsRegex, ''); - if (!/(?:[.?!|]|```)\s*$/u.test(paragraphNoAbbreviations)) { + if ( + !/(?:[.?!|]|```)\s*$/u.test(paragraphNoAbbreviations) && + !paragraphNoAbbreviations.startsWith('#') + ) { report('Sentences must end with a period.', fix, tag); return true; } diff --git a/test/rules/assertions/requireDescriptionCompleteSentence.js b/test/rules/assertions/requireDescriptionCompleteSentence.js index 7b562150d..965cd6458 100644 --- a/test/rules/assertions/requireDescriptionCompleteSentence.js +++ b/test/rules/assertions/requireDescriptionCompleteSentence.js @@ -1591,5 +1591,21 @@ export default { const code = (parameter) => 123; `, }, + { + code: ` + /** + * ### Overview + * My class is doing. + * + * ### Example + * \`\`\`javascript + * const toto = 'toto'; + * \`\`\` + */ + export class ClassExemple { + } + + `, + }, ], }; From fbc9fca5cf2afbe8cc208eaf8de6465812a7bdd5 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 7 Jun 2024 08:49:44 +0800 Subject: [PATCH 187/273] fix(`require-description-complete-sentence`): regression with heading exempting; fixes #1220 --- src/rules/requireDescriptionCompleteSentence.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/rules/requireDescriptionCompleteSentence.js b/src/rules/requireDescriptionCompleteSentence.js index 8673b45ae..a40720f3f 100644 --- a/src/rules/requireDescriptionCompleteSentence.js +++ b/src/rules/requireDescriptionCompleteSentence.js @@ -112,7 +112,9 @@ const validateDescription = ( return false; } - const paragraphs = extractParagraphs(description).filter(Boolean); + const descriptionNoHeadings = description.replaceAll(/^\s*#[^\n]*(\n|$)/gm, ''); + + const paragraphs = extractParagraphs(descriptionNoHeadings).filter(Boolean); return paragraphs.some((paragraph, parIdx) => { const sentences = extractSentences(paragraph, abbreviationsRegex); @@ -192,10 +194,7 @@ const validateDescription = ( const paragraphNoAbbreviations = paragraph.replace(abbreviationsRegex, ''); - if ( - !/(?:[.?!|]|```)\s*$/u.test(paragraphNoAbbreviations) && - !paragraphNoAbbreviations.startsWith('#') - ) { + if (!/(?:[.?!|]|```)\s*$/u.test(paragraphNoAbbreviations)) { report('Sentences must end with a period.', fix, tag); return true; } From 5429982d7a4c632ca189d619aaed4ff595934e14 Mon Sep 17 00:00:00 2001 From: Pelle Wessman Date: Thu, 13 Jun 2024 16:18:34 +0200 Subject: [PATCH 188/273] fix: add names to flat configs See https://eslint.org/docs/latest/use/configure/configuration-files#configuration-naming-conventions and eg https://github.com/eslint-community/eslint-plugin-eslint-plugin/pull/459 Improves presentation in the config inspector: https://github.com/eslint/config-inspector --- src/index.js | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/src/index.js b/src/index.js index cbbfc917e..67d39e296 100644 --- a/src/index.js +++ b/src/index.js @@ -128,17 +128,19 @@ const index = { /** * @param {"warn"|"error"} warnOrError - * @param {boolean} [flat] + * @param {string} [flatName] * @returns {import('eslint').Linter.FlatConfig} */ -const createRecommendedRuleset = (warnOrError, flat) => { +const createRecommendedRuleset = (warnOrError, flatName) => { return { + name: flatName, // @ts-expect-error Ok - plugins: flat ? { - jsdoc: index, - } : [ - 'jsdoc', - ], + plugins: + flatName ? { + jsdoc: index, + } : [ + 'jsdoc', + ], rules: { 'jsdoc/check-access': warnOrError, 'jsdoc/check-alignment': warnOrError, @@ -199,11 +201,11 @@ const createRecommendedRuleset = (warnOrError, flat) => { /** * @param {"warn"|"error"} warnOrError - * @param {boolean} [flat] + * @param {string} [flatName] * @returns {import('eslint').Linter.FlatConfig} */ -const createRecommendedTypeScriptRuleset = (warnOrError, flat) => { - const ruleset = createRecommendedRuleset(warnOrError, flat); +const createRecommendedTypeScriptRuleset = (warnOrError, flatName) => { + const ruleset = createRecommendedRuleset(warnOrError, flatName); return { ...ruleset, @@ -227,11 +229,11 @@ const createRecommendedTypeScriptRuleset = (warnOrError, flat) => { /** * @param {"warn"|"error"} warnOrError - * @param {boolean} [flat] + * @param {string} [flatName] * @returns {import('eslint').Linter.FlatConfig} */ -const createRecommendedTypeScriptFlavorRuleset = (warnOrError, flat) => { - const ruleset = createRecommendedRuleset(warnOrError, flat); +const createRecommendedTypeScriptFlavorRuleset = (warnOrError, flatName) => { + const ruleset = createRecommendedRuleset(warnOrError, flatName); return { ...ruleset, @@ -256,11 +258,11 @@ index.configs['recommended-typescript-error'] = createRecommendedTypeScriptRules index.configs['recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn'); index.configs['recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error'); -index.configs['flat/recommended'] = createRecommendedRuleset('warn', true); -index.configs['flat/recommended-error'] = createRecommendedRuleset('error', true); -index.configs['flat/recommended-typescript'] = createRecommendedTypeScriptRuleset('warn', true); -index.configs['flat/recommended-typescript-error'] = createRecommendedTypeScriptRuleset('error', true); -index.configs['flat/recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn', true); -index.configs['flat/recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error', true); +index.configs['flat/recommended'] = createRecommendedRuleset('warn', 'flat/recommended'); +index.configs['flat/recommended-error'] = createRecommendedRuleset('error', 'flat/recommended-error'); +index.configs['flat/recommended-typescript'] = createRecommendedTypeScriptRuleset('warn', 'flat/recommended-typescript'); +index.configs['flat/recommended-typescript-error'] = createRecommendedTypeScriptRuleset('error', 'flat/recommended-typescript-error'); +index.configs['flat/recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn', 'flat/recommended-typescript-flavor'); +index.configs['flat/recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error', 'flat/recommended-typescript-flavor-error'); export default index; From c2d5a353e26ed33efd02cac0d9189b4246424bbf Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 14 Jun 2024 01:28:44 +0800 Subject: [PATCH 189/273] fix: avoid inserting `name` for eslintrc configs; fixes #1239 --- src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 67d39e296..fe4c95b98 100644 --- a/src/index.js +++ b/src/index.js @@ -133,7 +133,7 @@ const index = { */ const createRecommendedRuleset = (warnOrError, flatName) => { return { - name: flatName, + ...(flatName ? {name: flatName} : {}), // @ts-expect-error Ok plugins: flatName ? { From 8603579b1f5f3aa3c8357949ed6b2b2d5265149a Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 14 Jun 2024 15:27:08 +0800 Subject: [PATCH 190/273] fix: namespace flat config `name`'s --- src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index fe4c95b98..3ffec00a7 100644 --- a/src/index.js +++ b/src/index.js @@ -133,7 +133,7 @@ const index = { */ const createRecommendedRuleset = (warnOrError, flatName) => { return { - ...(flatName ? {name: flatName} : {}), + ...(flatName ? {name: 'jsdoc/' + flatName} : {}), // @ts-expect-error Ok plugins: flatName ? { From 0bea15458c7f8acc71fdc6e965a67adb890a58d0 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 22 Jun 2024 15:36:15 +0800 Subject: [PATCH 191/273] fix(`no-undefined-types`): prevent linting of "type" within @import; fixes #1242 --- docs/rules/no-undefined-types.md | 4 ++++ src/rules/noUndefinedTypes.js | 2 +- src/tagNames.js | 1 + test/rules/assertions/noUndefinedTypes.js | 7 +++++++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/rules/no-undefined-types.md b/docs/rules/no-undefined-types.md index c902b69bb..06573cc27 100644 --- a/docs/rules/no-undefined-types.md +++ b/docs/rules/no-undefined-types.md @@ -776,5 +776,9 @@ function quux(foo) { } quux(0); + +/** + * @import { Linter } from "eslint" + */ ```` diff --git a/src/rules/noUndefinedTypes.js b/src/rules/noUndefinedTypes.js index 4ed51f18d..9e8300c4f 100644 --- a/src/rules/noUndefinedTypes.js +++ b/src/rules/noUndefinedTypes.js @@ -245,7 +245,7 @@ export default iterateJsdoc(({ const typeTags = utils.filterTags(({ tag, }) => { - return utils.tagMightHaveTypePosition(tag) && (tag !== 'suppress' || settings.mode !== 'closure'); + return tag !== 'import' && utils.tagMightHaveTypePosition(tag) && (tag !== 'suppress' || settings.mode !== 'closure'); }).map(tagToParsedType('type')); const namepathReferencingTags = utils.filterTags(({ diff --git a/src/tagNames.js b/src/tagNames.js index 60a609dd7..6e80840b1 100644 --- a/src/tagNames.js +++ b/src/tagNames.js @@ -137,6 +137,7 @@ const typeScriptTags = { ...jsdocTags, // https://github.com/microsoft/TypeScript/issues/22160 + // https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/#the-jsdoc-import-tag import: [], // https://www.typescriptlang.org/tsconfig/#stripInternal diff --git a/test/rules/assertions/noUndefinedTypes.js b/test/rules/assertions/noUndefinedTypes.js index efcfeb2cf..a09cbb56e 100644 --- a/test/rules/assertions/noUndefinedTypes.js +++ b/test/rules/assertions/noUndefinedTypes.js @@ -1436,5 +1436,12 @@ export default { 'no-unused-vars': 'error', }, }, + { + code: ` + /** + * @import { Linter } from "eslint" + */ + `, + }, ], }; From 34ba2e01d8de1c8a8558cc3f6f93c23d6bc49250 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 23 Jun 2024 11:57:36 +0800 Subject: [PATCH 192/273] fix(`no-undefined-types`): treat variables imported by `@import` tags as defined; fixes #1244 --- docs/rules/no-undefined-types.md | 67 ++++++++++++++++++ package.json | 1 + pnpm-lock.yaml | 22 ++++++ src/rules/noUndefinedTypes.js | 59 ++++++++++++++-- test/rules/assertions/noUndefinedTypes.js | 83 +++++++++++++++++++++++ 5 files changed, 227 insertions(+), 5 deletions(-) diff --git a/docs/rules/no-undefined-types.md b/docs/rules/no-undefined-types.md index 06573cc27..9d47a8b41 100644 --- a/docs/rules/no-undefined-types.md +++ b/docs/rules/no-undefined-types.md @@ -307,6 +307,36 @@ const a = new Todo(); */ // Settings: {"jsdoc":{"structuredTags":{"namepathOrURLReferencer":{"name":"namepath-or-url-referencing"}}}} // Message: The type 'SomeType' is undefined. + +/** + * @import BadImportIgnoredByThisRule + */ +/** + * @import LinterDef, { Sth as Something, Another as Another2 } from "eslint" + */ +/** + * @import { Linter } from "eslint" + */ +/** + * @import LinterDefault from "eslint" + */ +/** + * @import {Linter as Lintee} from "eslint" + */ +/** + * @import * as Linters from "eslint" + */ + +/** + * @type {BadImportIgnoredByThisRule} + */ +/** + * @type {Sth} + */ +/** + * @type {Another} + */ +// Message: The type 'BadImportIgnoredByThisRule' is undefined. ```` @@ -777,8 +807,45 @@ function quux(foo) { quux(0); +/** + * @import BadImportIgnoredByThisRule + */ +/** + * @import LinterDef, { Sth as Something, Another as Another2 } from "eslint" + */ /** * @import { Linter } from "eslint" */ +/** + * @import LinterDefault from "eslint" + */ +/** + * @import {Linter as Lintee} from "eslint" + */ +/** + * @import * as Linters from "eslint" + */ + +/** + * @type {LinterDef} + */ +/** + * @type {Something} + */ +/** + * @type {Another2} + */ +/** + * @type {Linter} + */ +/** + * @type {LinterDefault} + */ +/** + * @type {Lintee} + */ +/** + * @type {Linters} + */ ```` diff --git a/package.json b/package.json index 2a47cd052..e482610f9 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", + "parse-imports": "^2.0.0", "semver": "^7.6.2", "spdx-expression-parse": "^4.0.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 28bf266b2..2462ab7c2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,6 +26,9 @@ importers: esquery: specifier: ^1.5.0 version: 1.5.0 + parse-imports: + specifier: ^2.0.0 + version: 2.0.0 semver: specifier: ^7.6.2 version: 7.6.2 @@ -2363,6 +2366,9 @@ packages: resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} engines: {node: '>= 0.4'} + es-module-lexer@1.5.3: + resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==} + es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} @@ -4412,6 +4418,10 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parse-imports@2.0.0: + resolution: {integrity: sha512-3Dh6W2SPvs4k8neQG6fluUnVgt/WLDheepyD+FP1GlmOijKRBqr7Vhij0Cko6wyAp3tm/OHDDAniwFS0VCA0qQ==} + engines: {node: '>= 18'} + parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} engines: {node: '>=4'} @@ -4975,6 +4985,9 @@ packages: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} + slashes@3.0.12: + resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==} + slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} @@ -8560,6 +8573,8 @@ snapshots: iterator.prototype: 1.1.2 safe-array-concat: 1.1.2 + es-module-lexer@1.5.3: {} + es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 @@ -10878,6 +10893,11 @@ snapshots: dependencies: callsites: 3.1.0 + parse-imports@2.0.0: + dependencies: + es-module-lexer: 1.5.3 + slashes: 3.0.12 + parse-json@4.0.0: dependencies: error-ex: 1.3.2 @@ -11470,6 +11490,8 @@ snapshots: slash@5.1.0: {} + slashes@3.0.12: {} + slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.1 diff --git a/src/rules/noUndefinedTypes.js b/src/rules/noUndefinedTypes.js index 9e8300c4f..4d2ec3007 100644 --- a/src/rules/noUndefinedTypes.js +++ b/src/rules/noUndefinedTypes.js @@ -1,12 +1,13 @@ -import iterateJsdoc, { - parseComment, -} from '../iterateJsdoc.js'; +import { parseImportsSync } from 'parse-imports'; import { getJSDocComment, parse as parseType, traverse, tryParse as tryParseType, } from '@es-joy/jsdoccomment'; +import iterateJsdoc, { + parseComment, +} from '../iterateJsdoc.js'; const extraTypes = [ 'null', 'undefined', 'void', 'string', 'boolean', 'object', @@ -109,13 +110,15 @@ export default iterateJsdoc(({ .filter(Boolean)); } - const typedefDeclarations = sourceCode.getAllComments() + const comments = sourceCode.getAllComments() .filter((comment) => { return (/^\*\s/u).test(comment.value); }) .map((commentNode) => { return parseComment(commentNode, ''); - }) + }); + + const typedefDeclarations = comments .flatMap((doc) => { return doc.tags.filter(({ tag, @@ -127,6 +130,51 @@ export default iterateJsdoc(({ return tag.name; }); + + const importTags = /** @type {string[]} */ (comments.flatMap((doc) => { + return doc.tags.filter(({ + tag, + }) => { + return tag === 'import'; + }); + }).flatMap((tag) => { + const { + type, name, description + } = tag; + const typePart = type ? `{${type}} `: ''; + const imprt = 'import ' + (description + ? `${typePart}${name} ${description}` + : `${typePart}${name}`); + + let imports; + try { + // Should technically await non-sync, but ESLint doesn't support sync rules; + // thankfully, the Wasm load time is safely fast + imports = parseImportsSync(imprt); + } catch (err) { + return null; + } + + return [...imports].flatMap(({importClause}) => { + /* c8 ignore next */ + const {default: dflt, named, namespace} = importClause || {}; + const types = []; + if (dflt) { + types.push(dflt); + } + if (namespace) { + types.push(namespace); + } + if (named) { + for (const {binding} of named) { + types.push(binding); + } + } + + return types; + }); + }).filter(Boolean)); + const ancestorNodes = []; let currentNode = node; @@ -193,6 +241,7 @@ export default iterateJsdoc(({ ) .concat(extraTypes) .concat(typedefDeclarations) + .concat(importTags) .concat(definedTypes) .concat(/** @type {string[]} */ (definedPreferredTypes)) .concat( diff --git a/test/rules/assertions/noUndefinedTypes.js b/test/rules/assertions/noUndefinedTypes.js index a09cbb56e..44d3e68b2 100644 --- a/test/rules/assertions/noUndefinedTypes.js +++ b/test/rules/assertions/noUndefinedTypes.js @@ -558,6 +558,52 @@ export default { }, }, }, + { + code: ` + /** + * @import BadImportIgnoredByThisRule + */ + /** + * @import LinterDef, { Sth as Something, Another as Another2 } from "eslint" + */ + /** + * @import { Linter } from "eslint" + */ + /** + * @import LinterDefault from "eslint" + */ + /** + * @import {Linter as Lintee} from "eslint" + */ + /** + * @import * as Linters from "eslint" + */ + + /** + * @type {BadImportIgnoredByThisRule} + */ + /** + * @type {Sth} + */ + /** + * @type {Another} + */ + `, + errors: [ + { + line: 22, + message: 'The type \'BadImportIgnoredByThisRule\' is undefined.', + }, + { + line: 25, + message: 'The type \'Sth\' is undefined.', + }, + { + line: 28, + message: 'The type \'Another\' is undefined.', + }, + ], + }, ], valid: [ { @@ -1438,9 +1484,46 @@ export default { }, { code: ` + /** + * @import BadImportIgnoredByThisRule + */ + /** + * @import LinterDef, { Sth as Something, Another as Another2 } from "eslint" + */ /** * @import { Linter } from "eslint" */ + /** + * @import LinterDefault from "eslint" + */ + /** + * @import {Linter as Lintee} from "eslint" + */ + /** + * @import * as Linters from "eslint" + */ + + /** + * @type {LinterDef} + */ + /** + * @type {Something} + */ + /** + * @type {Another2} + */ + /** + * @type {Linter} + */ + /** + * @type {LinterDefault} + */ + /** + * @type {Lintee} + */ + /** + * @type {Linters} + */ `, }, ], From ce066df38edc9175db200e8da7ed7096e2879942 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 23 Jun 2024 12:30:22 +0800 Subject: [PATCH 193/273] fix: Revert "fix(`no-undefined-types`): treat variables imported by `@import` tags as defined"; fixes #1246 This reverts commit 34ba2e01d8de1c8a8558cc3f6f93c23d6bc49250. Dependency needs CJS build --- docs/rules/no-undefined-types.md | 67 ------------------ package.json | 1 - pnpm-lock.yaml | 22 ------ src/rules/noUndefinedTypes.js | 59 ++-------------- test/rules/assertions/noUndefinedTypes.js | 83 ----------------------- 5 files changed, 5 insertions(+), 227 deletions(-) diff --git a/docs/rules/no-undefined-types.md b/docs/rules/no-undefined-types.md index 9d47a8b41..06573cc27 100644 --- a/docs/rules/no-undefined-types.md +++ b/docs/rules/no-undefined-types.md @@ -307,36 +307,6 @@ const a = new Todo(); */ // Settings: {"jsdoc":{"structuredTags":{"namepathOrURLReferencer":{"name":"namepath-or-url-referencing"}}}} // Message: The type 'SomeType' is undefined. - -/** - * @import BadImportIgnoredByThisRule - */ -/** - * @import LinterDef, { Sth as Something, Another as Another2 } from "eslint" - */ -/** - * @import { Linter } from "eslint" - */ -/** - * @import LinterDefault from "eslint" - */ -/** - * @import {Linter as Lintee} from "eslint" - */ -/** - * @import * as Linters from "eslint" - */ - -/** - * @type {BadImportIgnoredByThisRule} - */ -/** - * @type {Sth} - */ -/** - * @type {Another} - */ -// Message: The type 'BadImportIgnoredByThisRule' is undefined. ```` @@ -807,45 +777,8 @@ function quux(foo) { quux(0); -/** - * @import BadImportIgnoredByThisRule - */ -/** - * @import LinterDef, { Sth as Something, Another as Another2 } from "eslint" - */ /** * @import { Linter } from "eslint" */ -/** - * @import LinterDefault from "eslint" - */ -/** - * @import {Linter as Lintee} from "eslint" - */ -/** - * @import * as Linters from "eslint" - */ - -/** - * @type {LinterDef} - */ -/** - * @type {Something} - */ -/** - * @type {Another2} - */ -/** - * @type {Linter} - */ -/** - * @type {LinterDefault} - */ -/** - * @type {Lintee} - */ -/** - * @type {Linters} - */ ```` diff --git a/package.json b/package.json index e482610f9..2a47cd052 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,6 @@ "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", - "parse-imports": "^2.0.0", "semver": "^7.6.2", "spdx-expression-parse": "^4.0.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2462ab7c2..28bf266b2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,9 +26,6 @@ importers: esquery: specifier: ^1.5.0 version: 1.5.0 - parse-imports: - specifier: ^2.0.0 - version: 2.0.0 semver: specifier: ^7.6.2 version: 7.6.2 @@ -2366,9 +2363,6 @@ packages: resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} engines: {node: '>= 0.4'} - es-module-lexer@1.5.3: - resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==} - es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} @@ -4418,10 +4412,6 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-imports@2.0.0: - resolution: {integrity: sha512-3Dh6W2SPvs4k8neQG6fluUnVgt/WLDheepyD+FP1GlmOijKRBqr7Vhij0Cko6wyAp3tm/OHDDAniwFS0VCA0qQ==} - engines: {node: '>= 18'} - parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} engines: {node: '>=4'} @@ -4985,9 +4975,6 @@ packages: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} - slashes@3.0.12: - resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==} - slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} @@ -8573,8 +8560,6 @@ snapshots: iterator.prototype: 1.1.2 safe-array-concat: 1.1.2 - es-module-lexer@1.5.3: {} - es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 @@ -10893,11 +10878,6 @@ snapshots: dependencies: callsites: 3.1.0 - parse-imports@2.0.0: - dependencies: - es-module-lexer: 1.5.3 - slashes: 3.0.12 - parse-json@4.0.0: dependencies: error-ex: 1.3.2 @@ -11490,8 +11470,6 @@ snapshots: slash@5.1.0: {} - slashes@3.0.12: {} - slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.1 diff --git a/src/rules/noUndefinedTypes.js b/src/rules/noUndefinedTypes.js index 4d2ec3007..9e8300c4f 100644 --- a/src/rules/noUndefinedTypes.js +++ b/src/rules/noUndefinedTypes.js @@ -1,13 +1,12 @@ -import { parseImportsSync } from 'parse-imports'; +import iterateJsdoc, { + parseComment, +} from '../iterateJsdoc.js'; import { getJSDocComment, parse as parseType, traverse, tryParse as tryParseType, } from '@es-joy/jsdoccomment'; -import iterateJsdoc, { - parseComment, -} from '../iterateJsdoc.js'; const extraTypes = [ 'null', 'undefined', 'void', 'string', 'boolean', 'object', @@ -110,15 +109,13 @@ export default iterateJsdoc(({ .filter(Boolean)); } - const comments = sourceCode.getAllComments() + const typedefDeclarations = sourceCode.getAllComments() .filter((comment) => { return (/^\*\s/u).test(comment.value); }) .map((commentNode) => { return parseComment(commentNode, ''); - }); - - const typedefDeclarations = comments + }) .flatMap((doc) => { return doc.tags.filter(({ tag, @@ -130,51 +127,6 @@ export default iterateJsdoc(({ return tag.name; }); - - const importTags = /** @type {string[]} */ (comments.flatMap((doc) => { - return doc.tags.filter(({ - tag, - }) => { - return tag === 'import'; - }); - }).flatMap((tag) => { - const { - type, name, description - } = tag; - const typePart = type ? `{${type}} `: ''; - const imprt = 'import ' + (description - ? `${typePart}${name} ${description}` - : `${typePart}${name}`); - - let imports; - try { - // Should technically await non-sync, but ESLint doesn't support sync rules; - // thankfully, the Wasm load time is safely fast - imports = parseImportsSync(imprt); - } catch (err) { - return null; - } - - return [...imports].flatMap(({importClause}) => { - /* c8 ignore next */ - const {default: dflt, named, namespace} = importClause || {}; - const types = []; - if (dflt) { - types.push(dflt); - } - if (namespace) { - types.push(namespace); - } - if (named) { - for (const {binding} of named) { - types.push(binding); - } - } - - return types; - }); - }).filter(Boolean)); - const ancestorNodes = []; let currentNode = node; @@ -241,7 +193,6 @@ export default iterateJsdoc(({ ) .concat(extraTypes) .concat(typedefDeclarations) - .concat(importTags) .concat(definedTypes) .concat(/** @type {string[]} */ (definedPreferredTypes)) .concat( diff --git a/test/rules/assertions/noUndefinedTypes.js b/test/rules/assertions/noUndefinedTypes.js index 44d3e68b2..a09cbb56e 100644 --- a/test/rules/assertions/noUndefinedTypes.js +++ b/test/rules/assertions/noUndefinedTypes.js @@ -558,52 +558,6 @@ export default { }, }, }, - { - code: ` - /** - * @import BadImportIgnoredByThisRule - */ - /** - * @import LinterDef, { Sth as Something, Another as Another2 } from "eslint" - */ - /** - * @import { Linter } from "eslint" - */ - /** - * @import LinterDefault from "eslint" - */ - /** - * @import {Linter as Lintee} from "eslint" - */ - /** - * @import * as Linters from "eslint" - */ - - /** - * @type {BadImportIgnoredByThisRule} - */ - /** - * @type {Sth} - */ - /** - * @type {Another} - */ - `, - errors: [ - { - line: 22, - message: 'The type \'BadImportIgnoredByThisRule\' is undefined.', - }, - { - line: 25, - message: 'The type \'Sth\' is undefined.', - }, - { - line: 28, - message: 'The type \'Another\' is undefined.', - }, - ], - }, ], valid: [ { @@ -1484,46 +1438,9 @@ export default { }, { code: ` - /** - * @import BadImportIgnoredByThisRule - */ - /** - * @import LinterDef, { Sth as Something, Another as Another2 } from "eslint" - */ /** * @import { Linter } from "eslint" */ - /** - * @import LinterDefault from "eslint" - */ - /** - * @import {Linter as Lintee} from "eslint" - */ - /** - * @import * as Linters from "eslint" - */ - - /** - * @type {LinterDef} - */ - /** - * @type {Something} - */ - /** - * @type {Another2} - */ - /** - * @type {Linter} - */ - /** - * @type {LinterDefault} - */ - /** - * @type {Lintee} - */ - /** - * @type {Linters} - */ `, }, ], From 54ac4fd4c5cf30c0f4c239e1066fb693ab7349fc Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 23 Jun 2024 11:57:36 +0800 Subject: [PATCH 194/273] fix(`no-undefined-types`): treat variables imported by `@import` tags as defined; fixes #1244 --- .README/rules/no-undefined-types.md | 2 +- docs/rules/no-undefined-types.md | 69 ++++++++++++++++++- package.json | 1 + pnpm-lock.yaml | 22 ++++++ src/rules/noUndefinedTypes.js | 59 ++++++++++++++-- test/rules/assertions/noUndefinedTypes.js | 83 +++++++++++++++++++++++ 6 files changed, 229 insertions(+), 7 deletions(-) diff --git a/.README/rules/no-undefined-types.md b/.README/rules/no-undefined-types.md index 3d856f206..56fa10315 100644 --- a/.README/rules/no-undefined-types.md +++ b/.README/rules/no-undefined-types.md @@ -17,7 +17,7 @@ the tag types in the table below: `@event`, `@external` (or `@host`), `@function` (or `@func` or `@method`), `@interface`, `@member` (or `@var`), `@mixin`, `@name`, `@namespace`, `@template` (for "closure" or "typescript" `settings.jsdoc.mode` only), -`@typedef`. +`@import` (for TypeScript), `@typedef`. The following tags will also be checked but only when the mode is `closure`: diff --git a/docs/rules/no-undefined-types.md b/docs/rules/no-undefined-types.md index 06573cc27..6c7e55732 100644 --- a/docs/rules/no-undefined-types.md +++ b/docs/rules/no-undefined-types.md @@ -23,7 +23,7 @@ the tag types in the table below: `@event`, `@external` (or `@host`), `@function` (or `@func` or `@method`), `@interface`, `@member` (or `@var`), `@mixin`, `@name`, `@namespace`, `@template` (for "closure" or "typescript" `settings.jsdoc.mode` only), -`@typedef`. +`@import` (for TypeScript), `@typedef`. The following tags will also be checked but only when the mode is `closure`: @@ -307,6 +307,36 @@ const a = new Todo(); */ // Settings: {"jsdoc":{"structuredTags":{"namepathOrURLReferencer":{"name":"namepath-or-url-referencing"}}}} // Message: The type 'SomeType' is undefined. + +/** + * @import BadImportIgnoredByThisRule + */ +/** + * @import LinterDef, { Sth as Something, Another as Another2 } from "eslint" + */ +/** + * @import { Linter } from "eslint" + */ +/** + * @import LinterDefault from "eslint" + */ +/** + * @import {Linter as Lintee} from "eslint" + */ +/** + * @import * as Linters from "eslint" + */ + +/** + * @type {BadImportIgnoredByThisRule} + */ +/** + * @type {Sth} + */ +/** + * @type {Another} + */ +// Message: The type 'BadImportIgnoredByThisRule' is undefined. ```` @@ -777,8 +807,45 @@ function quux(foo) { quux(0); +/** + * @import BadImportIgnoredByThisRule + */ +/** + * @import LinterDef, { Sth as Something, Another as Another2 } from "eslint" + */ /** * @import { Linter } from "eslint" */ +/** + * @import LinterDefault from "eslint" + */ +/** + * @import {Linter as Lintee} from "eslint" + */ +/** + * @import * as Linters from "eslint" + */ + +/** + * @type {LinterDef} + */ +/** + * @type {Something} + */ +/** + * @type {Another2} + */ +/** + * @type {Linter} + */ +/** + * @type {LinterDefault} + */ +/** + * @type {Lintee} + */ +/** + * @type {Linters} + */ ```` diff --git a/package.json b/package.json index 2a47cd052..e482610f9 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", + "parse-imports": "^2.0.0", "semver": "^7.6.2", "spdx-expression-parse": "^4.0.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 28bf266b2..2462ab7c2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,6 +26,9 @@ importers: esquery: specifier: ^1.5.0 version: 1.5.0 + parse-imports: + specifier: ^2.0.0 + version: 2.0.0 semver: specifier: ^7.6.2 version: 7.6.2 @@ -2363,6 +2366,9 @@ packages: resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} engines: {node: '>= 0.4'} + es-module-lexer@1.5.3: + resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==} + es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} @@ -4412,6 +4418,10 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parse-imports@2.0.0: + resolution: {integrity: sha512-3Dh6W2SPvs4k8neQG6fluUnVgt/WLDheepyD+FP1GlmOijKRBqr7Vhij0Cko6wyAp3tm/OHDDAniwFS0VCA0qQ==} + engines: {node: '>= 18'} + parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} engines: {node: '>=4'} @@ -4975,6 +4985,9 @@ packages: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} + slashes@3.0.12: + resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==} + slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} @@ -8560,6 +8573,8 @@ snapshots: iterator.prototype: 1.1.2 safe-array-concat: 1.1.2 + es-module-lexer@1.5.3: {} + es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 @@ -10878,6 +10893,11 @@ snapshots: dependencies: callsites: 3.1.0 + parse-imports@2.0.0: + dependencies: + es-module-lexer: 1.5.3 + slashes: 3.0.12 + parse-json@4.0.0: dependencies: error-ex: 1.3.2 @@ -11470,6 +11490,8 @@ snapshots: slash@5.1.0: {} + slashes@3.0.12: {} + slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.1 diff --git a/src/rules/noUndefinedTypes.js b/src/rules/noUndefinedTypes.js index 9e8300c4f..c84ed43bb 100644 --- a/src/rules/noUndefinedTypes.js +++ b/src/rules/noUndefinedTypes.js @@ -1,12 +1,13 @@ -import iterateJsdoc, { - parseComment, -} from '../iterateJsdoc.js'; +import { parseImportsSync } from 'parse-imports'; import { getJSDocComment, parse as parseType, traverse, tryParse as tryParseType, } from '@es-joy/jsdoccomment'; +import iterateJsdoc, { + parseComment, +} from '../iterateJsdoc.js'; const extraTypes = [ 'null', 'undefined', 'void', 'string', 'boolean', 'object', @@ -109,13 +110,15 @@ export default iterateJsdoc(({ .filter(Boolean)); } - const typedefDeclarations = sourceCode.getAllComments() + const comments = sourceCode.getAllComments() .filter((comment) => { return (/^\*\s/u).test(comment.value); }) .map((commentNode) => { return parseComment(commentNode, ''); - }) + }); + + const typedefDeclarations = comments .flatMap((doc) => { return doc.tags.filter(({ tag, @@ -127,6 +130,51 @@ export default iterateJsdoc(({ return tag.name; }); + + const importTags = settings.mode === 'typescript' ? /** @type {string[]} */ (comments.flatMap((doc) => { + return doc.tags.filter(({ + tag, + }) => { + return tag === 'import'; + }); + }).flatMap((tag) => { + const { + type, name, description + } = tag; + const typePart = type ? `{${type}} `: ''; + const imprt = 'import ' + (description + ? `${typePart}${name} ${description}` + : `${typePart}${name}`); + + let imports; + try { + // Should technically await non-sync, but ESLint doesn't support async rules; + // thankfully, the Wasm load time is safely fast + imports = parseImportsSync(imprt); + } catch (err) { + return null; + } + + return [...imports].flatMap(({importClause}) => { + /* c8 ignore next */ + const {default: dflt, named, namespace} = importClause || {}; + const types = []; + if (dflt) { + types.push(dflt); + } + if (namespace) { + types.push(namespace); + } + if (named) { + for (const {binding} of named) { + types.push(binding); + } + } + + return types; + }); + }).filter(Boolean)) : []; + const ancestorNodes = []; let currentNode = node; @@ -193,6 +241,7 @@ export default iterateJsdoc(({ ) .concat(extraTypes) .concat(typedefDeclarations) + .concat(importTags) .concat(definedTypes) .concat(/** @type {string[]} */ (definedPreferredTypes)) .concat( diff --git a/test/rules/assertions/noUndefinedTypes.js b/test/rules/assertions/noUndefinedTypes.js index a09cbb56e..44d3e68b2 100644 --- a/test/rules/assertions/noUndefinedTypes.js +++ b/test/rules/assertions/noUndefinedTypes.js @@ -558,6 +558,52 @@ export default { }, }, }, + { + code: ` + /** + * @import BadImportIgnoredByThisRule + */ + /** + * @import LinterDef, { Sth as Something, Another as Another2 } from "eslint" + */ + /** + * @import { Linter } from "eslint" + */ + /** + * @import LinterDefault from "eslint" + */ + /** + * @import {Linter as Lintee} from "eslint" + */ + /** + * @import * as Linters from "eslint" + */ + + /** + * @type {BadImportIgnoredByThisRule} + */ + /** + * @type {Sth} + */ + /** + * @type {Another} + */ + `, + errors: [ + { + line: 22, + message: 'The type \'BadImportIgnoredByThisRule\' is undefined.', + }, + { + line: 25, + message: 'The type \'Sth\' is undefined.', + }, + { + line: 28, + message: 'The type \'Another\' is undefined.', + }, + ], + }, ], valid: [ { @@ -1438,9 +1484,46 @@ export default { }, { code: ` + /** + * @import BadImportIgnoredByThisRule + */ + /** + * @import LinterDef, { Sth as Something, Another as Another2 } from "eslint" + */ /** * @import { Linter } from "eslint" */ + /** + * @import LinterDefault from "eslint" + */ + /** + * @import {Linter as Lintee} from "eslint" + */ + /** + * @import * as Linters from "eslint" + */ + + /** + * @type {LinterDef} + */ + /** + * @type {Something} + */ + /** + * @type {Another2} + */ + /** + * @type {Linter} + */ + /** + * @type {LinterDefault} + */ + /** + * @type {Lintee} + */ + /** + * @type {Linters} + */ `, }, ], From ad31b14c78a7fdbe6a1997c5302e7d5ddde0eb65 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 23 Jun 2024 21:19:01 +0800 Subject: [PATCH 195/273] feat(`check-values`): checks for valid `@import` syntax --- .README/rules/check-values.md | 1 + docs/rules/check-values.md | 25 ++++++++++++++++++ src/rules/checkValues.js | 28 +++++++++++++++++++- test/rules/assertions/checkValues.js | 39 ++++++++++++++++++++++++++++ 4 files changed, 92 insertions(+), 1 deletion(-) diff --git a/.README/rules/check-values.md b/.README/rules/check-values.md index 8dd5fada0..3d08d7412 100644 --- a/.README/rules/check-values.md +++ b/.README/rules/check-values.md @@ -18,6 +18,7 @@ This rule checks the values for a handful of tags: 6. `@kind` - Insists that it be one of the allowed values: 'class', 'constant', 'event', 'external', 'file', 'function', 'member', 'mixin', 'module', 'namespace', 'typedef', +7. `@import` - For TypeScript `mode` only. Enforces valid ES import syntax. ## Options diff --git a/docs/rules/check-values.md b/docs/rules/check-values.md index 17d3b4dca..be6adf927 100644 --- a/docs/rules/check-values.md +++ b/docs/rules/check-values.md @@ -28,6 +28,7 @@ This rule checks the values for a handful of tags: 6. `@kind` - Insists that it be one of the allowed values: 'class', 'constant', 'event', 'external', 'file', 'function', 'member', 'mixin', 'module', 'namespace', 'typedef', +7. `@import` - For TypeScript `mode` only. Enforces valid ES import syntax. @@ -251,6 +252,14 @@ function quux (foo) { } // "jsdoc/check-values": ["error"|"warn", {"licensePattern":"^([^\n]+)\nCopyright"}] // Message: Invalid JSDoc @license: "Oops"; expected SPDX expression: https://spdx.org/licenses/. + +/** + * @import BadImportIgnoredByThisRule + */ +/** + * @import {AnotherBadImportIgnoredByThisRule} from + */ +// Message: Bad @import tag ```` @@ -405,5 +414,21 @@ function quux (foo) { } // "jsdoc/check-values": ["error"|"warn", {"licensePattern":"^([^\n]+)\nCopyright"}] + +/** + * @import LinterDef, { Sth as Something, Another as Another2 } from "eslint" + */ +/** + * @import { Linter } from "eslint" + */ +/** + * @import LinterDefault from "eslint" + */ +/** + * @import {Linter as Lintee} from "eslint" + */ +/** + * @import * as Linters from "eslint" + */ ```` diff --git a/src/rules/checkValues.js b/src/rules/checkValues.js index b3741c8ca..97a8ce142 100644 --- a/src/rules/checkValues.js +++ b/src/rules/checkValues.js @@ -1,6 +1,7 @@ -import iterateJsdoc from '../iterateJsdoc.js'; +import { parseImportsSync } from 'parse-imports'; import semver from 'semver'; import spdxExpressionParse from 'spdx-expression-parse'; +import iterateJsdoc from '../iterateJsdoc.js'; const allowedKinds = new Set([ 'class', @@ -20,6 +21,7 @@ export default iterateJsdoc(({ utils, report, context, + settings, }) => { const options = context.options[0] || {}; const { @@ -157,6 +159,30 @@ export default iterateJsdoc(({ } }); + if (settings.mode === 'typescript') { + utils.forEachPreferredTag('import', (tag) => { + const { + type, name, description + } = tag; + const typePart = type ? `{${type}} `: ''; + const imprt = 'import ' + (description + ? `${typePart}${name} ${description}` + : `${typePart}${name}`); + + try { + // Should technically await non-sync, but ESLint doesn't support async rules; + // thankfully, the Wasm load time is safely fast + parseImportsSync(imprt); + } catch (err) { + report( + `Bad @import tag`, + null, + tag, + ); + } + }); + } + utils.forEachPreferredTag('author', (jsdocParameter, targetTagName) => { const author = /** @type {string} */ ( utils.getTagDescription(jsdocParameter) diff --git a/test/rules/assertions/checkValues.js b/test/rules/assertions/checkValues.js index 5138ba9ea..bb2bb0f79 100644 --- a/test/rules/assertions/checkValues.js +++ b/test/rules/assertions/checkValues.js @@ -353,6 +353,26 @@ export default { }, ], }, + { + code: ` + /** + * @import BadImportIgnoredByThisRule + */ + /** + * @import {AnotherBadImportIgnoredByThisRule} from + */ + `, + errors: [ + { + line: 3, + message: 'Bad @import tag', + }, + { + line: 6, + message: 'Bad @import tag', + }, + ], + }, ], valid: [ { @@ -592,5 +612,24 @@ export default { }, ], }, + { + code: ` + /** + * @import LinterDef, { Sth as Something, Another as Another2 } from "eslint" + */ + /** + * @import { Linter } from "eslint" + */ + /** + * @import LinterDefault from "eslint" + */ + /** + * @import {Linter as Lintee} from "eslint" + */ + /** + * @import * as Linters from "eslint" + */ + `, + }, ], }; From 5497b031e0f04738ecd7271f4b4504478b0ef99b Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 24 Jun 2024 07:34:51 +0800 Subject: [PATCH 196/273] refactor: work synchronously --- .babelrc.json | 3 ++- package.json | 8 +++--- pnpm-lock.yaml | 48 +++++++++++++++++++++++------------ src/import-worker.mjs | 11 ++++++++ src/rules/checkValues.js | 15 ++++++----- src/rules/noUndefinedTypes.js | 19 ++++++++------ tsconfig.json | 3 ++- 7 files changed, 72 insertions(+), 35 deletions(-) create mode 100644 src/import-worker.mjs diff --git a/.babelrc.json b/.babelrc.json index 5b50df38e..68ca053f8 100644 --- a/.babelrc.json +++ b/.babelrc.json @@ -1,6 +1,7 @@ { "plugins": [ - "add-module-exports" + "add-module-exports", + "babel-plugin-transform-import-meta" ], "presets": [ [ diff --git a/package.json b/package.json index e482610f9..f9d788fb3 100644 --- a/package.json +++ b/package.json @@ -11,9 +11,10 @@ "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", - "parse-imports": "^2.0.0", + "parse-imports": "^2.1.0", "semver": "^7.6.2", - "spdx-expression-parse": "^4.0.0" + "spdx-expression-parse": "^4.0.0", + "synckit": "^0.9.0" }, "description": "JSDoc linting rules for ESLint.", "devDependencies": { @@ -44,6 +45,7 @@ "@typescript-eslint/parser": "^7.11.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", + "babel-plugin-transform-import-meta": "^2.2.1", "c8": "^9.1.0", "camelcase": "^6.3.0", "chai": "^4.3.10", @@ -126,7 +128,7 @@ "scripts": { "tsc": "tsc", "tsc-build": "tsc -p tsconfig-prod.json", - "build": "rimraf ./dist && cross-env NODE_ENV=production babel ./src --out-file-extension .cjs --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored && replace 'require\\(\"\\.(.*?)\\.[^.]*?\"\\)' 'require(\".$1.cjs\")' 'dist' -r --include=\"*.cjs\" && pnpm tsc-build", + "build": "rimraf ./dist && cross-env NODE_ENV=production babel ./src --out-file-extension .cjs --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored && replace 'require\\(\"\\.(.*?)\\.[^.]*?\"\\)' 'require(\".$1.cjs\")' 'dist' -r --include=\"*.cjs\" && cp src/import-worker.mjs dist/import-worker.mjs && pnpm tsc-build", "check-docs": "babel-node ./src/bin/generateDocs.js --check", "create-docs": "npm run create-options && babel-node ./src/bin/generateDocs.js", "create-rule": "babel-node ./src/bin/generateRule.js", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2462ab7c2..a5a8c20cd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,14 +27,17 @@ importers: specifier: ^1.5.0 version: 1.5.0 parse-imports: - specifier: ^2.0.0 - version: 2.0.0 + specifier: ^2.1.0 + version: 2.1.0 semver: specifier: ^7.6.2 version: 7.6.2 spdx-expression-parse: specifier: ^4.0.0 version: 4.0.0 + synckit: + specifier: ^0.9.0 + version: 0.9.0 devDependencies: '@babel/cli': specifier: ^7.24.6 @@ -117,6 +120,9 @@ importers: babel-plugin-istanbul: specifier: ^6.1.1 version: 6.1.1 + babel-plugin-transform-import-meta: + specifier: ^2.2.1 + version: 2.2.1(@babel/core@7.24.6) c8: specifier: ^9.1.0 version: 9.1.0 @@ -894,10 +900,6 @@ packages: resolution: {integrity: sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==} engines: {node: '>=6.9.0'} - '@babel/template@7.24.0': - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} - engines: {node: '>=6.9.0'} - '@babel/template@7.24.6': resolution: {integrity: sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==} engines: {node: '>=6.9.0'} @@ -1776,6 +1778,11 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-transform-import-meta@2.2.1: + resolution: {integrity: sha512-AxNh27Pcg8Kt112RGa3Vod2QS2YXKKJ6+nSvRtv7qQTJAdx0MZa4UHZ4lnxHUWA2MNbLuZQv5FVab4P1CoLOWw==} + peerDependencies: + '@babel/core': ^7.10.0 + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -4418,8 +4425,8 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-imports@2.0.0: - resolution: {integrity: sha512-3Dh6W2SPvs4k8neQG6fluUnVgt/WLDheepyD+FP1GlmOijKRBqr7Vhij0Cko6wyAp3tm/OHDDAniwFS0VCA0qQ==} + parse-imports@2.1.0: + resolution: {integrity: sha512-JQWgmK2o4w8leUkZeZPatWdAny6vXGU/3siIUvMF6J2rDCud9aTt8h/px9oZJ6U3EcfhngBJ635uPFI0q0VAeA==} engines: {node: '>= 18'} parse-json@4.0.0: @@ -5230,6 +5237,10 @@ packages: resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} engines: {node: ^14.18.0 || >=16.0.0} + synckit@0.9.0: + resolution: {integrity: sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==} + engines: {node: ^14.18.0 || >=16.0.0} + tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -5897,7 +5908,7 @@ snapshots: '@babel/helper-function-name@7.23.0': dependencies: - '@babel/template': 7.24.0 + '@babel/template': 7.24.6 '@babel/types': 7.24.5 '@babel/helper-function-name@7.24.6': @@ -6581,12 +6592,6 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.24.0': - dependencies: - '@babel/code-frame': 7.24.2 - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 - '@babel/template@7.24.6': dependencies: '@babel/code-frame': 7.24.6 @@ -7830,6 +7835,12 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-transform-import-meta@2.2.1(@babel/core@7.24.6): + dependencies: + '@babel/core': 7.24.6 + '@babel/template': 7.24.6 + tslib: 2.6.2 + balanced-match@1.0.2: {} base@0.11.2: @@ -10893,7 +10904,7 @@ snapshots: dependencies: callsites: 3.1.0 - parse-imports@2.0.0: + parse-imports@2.1.0: dependencies: es-module-lexer: 1.5.3 slashes: 3.0.12 @@ -11772,6 +11783,11 @@ snapshots: '@pkgr/core': 0.1.0 tslib: 2.6.2 + synckit@0.9.0: + dependencies: + '@pkgr/core': 0.1.0 + tslib: 2.6.2 + tapable@2.2.1: {} tar@6.2.0: diff --git a/src/import-worker.mjs b/src/import-worker.mjs new file mode 100644 index 000000000..cc54de761 --- /dev/null +++ b/src/import-worker.mjs @@ -0,0 +1,11 @@ +import { runAsWorker } from 'synckit' + +runAsWorker(async (imprt) => { + const { parseImports } = await import('parse-imports'); + try { + // ESLint doesn't support async rules + return [...await parseImports(imprt)]; + } catch (err) { + return false; + } +}) diff --git a/src/rules/checkValues.js b/src/rules/checkValues.js index 97a8ce142..dcb50f6a3 100644 --- a/src/rules/checkValues.js +++ b/src/rules/checkValues.js @@ -1,8 +1,14 @@ -import { parseImportsSync } from 'parse-imports'; +import { dirname, join } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +import { createSyncFn } from 'synckit'; import semver from 'semver'; import spdxExpressionParse from 'spdx-expression-parse'; import iterateJsdoc from '../iterateJsdoc.js'; +const __dirname = dirname(fileURLToPath(import.meta.url)); +const pathName = join(__dirname, '../import-worker.mjs'); + const allowedKinds = new Set([ 'class', 'constant', @@ -169,11 +175,8 @@ export default iterateJsdoc(({ ? `${typePart}${name} ${description}` : `${typePart}${name}`); - try { - // Should technically await non-sync, but ESLint doesn't support async rules; - // thankfully, the Wasm load time is safely fast - parseImportsSync(imprt); - } catch (err) { + const getImports = createSyncFn(pathName); + if (!getImports(imprt)) { report( `Bad @import tag`, null, diff --git a/src/rules/noUndefinedTypes.js b/src/rules/noUndefinedTypes.js index c84ed43bb..3642f1278 100644 --- a/src/rules/noUndefinedTypes.js +++ b/src/rules/noUndefinedTypes.js @@ -1,4 +1,7 @@ -import { parseImportsSync } from 'parse-imports'; +import { dirname, join } from 'path'; +import { fileURLToPath } from 'url'; + +import { createSyncFn } from 'synckit'; import { getJSDocComment, parse as parseType, @@ -9,6 +12,9 @@ import iterateJsdoc, { parseComment, } from '../iterateJsdoc.js'; +const __dirname = dirname(fileURLToPath(import.meta.url)); +const pathName = join(__dirname, '../import-worker.mjs'); + const extraTypes = [ 'null', 'undefined', 'void', 'string', 'boolean', 'object', 'function', 'symbol', @@ -146,16 +152,13 @@ export default iterateJsdoc(({ ? `${typePart}${name} ${description}` : `${typePart}${name}`); - let imports; - try { - // Should technically await non-sync, but ESLint doesn't support async rules; - // thankfully, the Wasm load time is safely fast - imports = parseImportsSync(imprt); - } catch (err) { + const getImports = createSyncFn(pathName); + const imports = /** @type {import('parse-imports').Import[]} */ (getImports(imprt)); + if (!imports) { return null; } - return [...imports].flatMap(({importClause}) => { + return imports.flatMap(({importClause}) => { /* c8 ignore next */ const {default: dflt, named, namespace} = importClause || {}; const types = []; diff --git a/tsconfig.json b/tsconfig.json index 510f1fdea..74387d481 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -17,7 +17,8 @@ "src/**/*.js", "test/**/*.js", "typings/gitdown.d.ts", - "typings/babel__eslint-parser.d.ts" + "typings/babel__eslint-parser.d.ts", + "src/import-worker.mjs" ], "exclude": ["node_modules"] } From 1aa3313e6962b55de94528d589d9d9d4844d72b7 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 24 Jun 2024 19:52:05 +0800 Subject: [PATCH 197/273] feat(`no-types`): add `TSMethodSignature`; fixes #1249 --- docs/rules/no-types.md | 8 ++++++++ src/rules/noTypes.js | 6 +++++- test/rules/assertions/noTypes.js | 29 +++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/docs/rules/no-types.md b/docs/rules/no-types.md index 0b7e7e8fd..8d4777dd7 100644 --- a/docs/rules/no-types.md +++ b/docs/rules/no-types.md @@ -129,6 +129,14 @@ function quux () { } // Message: Types are not permitted on @returns. + +export interface B { + /** + * @param {string} paramA + */ + methodB(paramB: string): void +} +// Message: Types are not permitted on @param. ```` diff --git a/src/rules/noTypes.js b/src/rules/noTypes.js index 527891a15..5f7e5b835 100644 --- a/src/rules/noTypes.js +++ b/src/rules/noTypes.js @@ -31,7 +31,11 @@ export default iterateJsdoc(({ } } }, { - contextDefaults: true, + contextDefaults: [ + 'ArrowFunctionExpression', 'FunctionDeclaration', 'FunctionExpression', 'TSDeclareFunction', + // Add this to above defaults + 'TSMethodSignature' + ], meta: { docs: { description: 'This rule reports types being used on `@param` or `@returns`.', diff --git a/test/rules/assertions/noTypes.js b/test/rules/assertions/noTypes.js index e323d8167..6c2bfb789 100644 --- a/test/rules/assertions/noTypes.js +++ b/test/rules/assertions/noTypes.js @@ -1,3 +1,5 @@ +import * as typescriptEslintParser from '@typescript-eslint/parser'; + export default { invalid: [ { @@ -226,6 +228,33 @@ export default { } `, }, + { + code: ` + export interface B { + /** + * @param {string} paramA + */ + methodB(paramB: string): void + } + `, + errors: [ + { + line: 4, + message: 'Types are not permitted on @param.', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + output: ` + export interface B { + /** + * @param paramA + */ + methodB(paramB: string): void + } + `, + } ], valid: [ { From 49400e15e2e3f32061cc70271248c00e040d830c Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 26 Jun 2024 16:45:47 +0800 Subject: [PATCH 198/273] feat(`check-param-names`): check `TSMethodSignature` (as on interface methods); fixes #1249 --- docs/rules/check-param-names.md | 8 ++++++++ src/rules/checkParamNames.js | 5 +++++ test/rules/assertions/checkParamNames.js | 20 ++++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/docs/rules/check-param-names.md b/docs/rules/check-param-names.md index 61ef59a39..5b3c74f35 100644 --- a/docs/rules/check-param-names.md +++ b/docs/rules/check-param-names.md @@ -657,6 +657,14 @@ function quux (foo) { } // "jsdoc/check-param-names": ["error"|"warn", {"disableMissingParamChecks":true}] // Message: @param "bar" does not match an existing function parameter. + +export interface B { + /** + * @param paramA Something something + */ + methodB(paramB: string): void +}; +// Message: Expected @param names to be "paramB". Got "paramA". ```` diff --git a/src/rules/checkParamNames.js b/src/rules/checkParamNames.js index 3569efcd5..b1b8cd9ec 100644 --- a/src/rules/checkParamNames.js +++ b/src/rules/checkParamNames.js @@ -378,6 +378,11 @@ export default iterateJsdoc(({ targetTagName, allowExtraTrailingParamDocs, jsdocParameterNamesDeep, jsdoc, report, ); }, { + contextDefaults: [ + 'ArrowFunctionExpression', 'FunctionDeclaration', 'FunctionExpression', 'TSDeclareFunction', + // Add this to above defaults + 'TSMethodSignature' + ], meta: { docs: { description: 'Ensures that parameter names in JSDoc match those in the function declaration.', diff --git a/test/rules/assertions/checkParamNames.js b/test/rules/assertions/checkParamNames.js index 44101afa3..173f565a8 100644 --- a/test/rules/assertions/checkParamNames.js +++ b/test/rules/assertions/checkParamNames.js @@ -1257,6 +1257,26 @@ export default { }, ], }, + { + code: ` + export interface B { + /** + * @param paramA Something something + */ + methodB(paramB: string): void + }; + `, + errors: [ + { + line: 4, + message: 'Expected @param names to be "paramB". Got "paramA".', + }, + ], + languageOptions: { + parser: typescriptEslintParser, + sourceType: 'module', + }, + } ], valid: [ { From 06b905c7ae1445b07bb6d8d38ea75f7381b593ba Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 28 Jun 2024 08:09:05 +0800 Subject: [PATCH 199/273] chore: update typescript-eslint/parser -> typescript-eslint; add typescript-eslint/types dep. --- .README/advanced.md | 2 +- docs/advanced.md | 2 +- docs/rules/check-param-names.md | 2 +- package.json | 5 +- pnpm-lock.yaml | 226 ++++++++++++++++--- src/exportParser.js | 2 +- src/utils/hasReturnValue.js | 1 + test/rules/assertions/checkAccess.js | 2 +- test/rules/assertions/checkIndentation.js | 2 +- test/rules/assertions/checkParamNames.js | 4 +- test/rules/assertions/checkTagNames.js | 2 +- test/rules/assertions/informativeDocs.js | 2 +- test/rules/assertions/matchDescription.js | 2 +- test/rules/assertions/noMissingSyntax.js | 2 +- test/rules/assertions/noMultiAsterisks.js | 2 +- test/rules/assertions/noRestrictedSyntax.js | 2 +- test/rules/assertions/noTypes.js | 2 +- test/rules/assertions/noUndefinedTypes.js | 2 +- test/rules/assertions/requireDescription.js | 2 +- test/rules/assertions/requireJsdoc.js | 2 +- test/rules/assertions/requireParam.js | 2 +- test/rules/assertions/requireReturns.js | 2 +- test/rules/assertions/requireReturnsCheck.js | 2 +- test/rules/assertions/tagLines.js | 2 +- test/rules/assertions/validTypes.js | 2 +- 25 files changed, 219 insertions(+), 59 deletions(-) diff --git a/.README/advanced.md b/.README/advanced.md index 70bece04e..d4b4df069 100644 --- a/.README/advanced.md +++ b/.README/advanced.md @@ -56,7 +56,7 @@ you are using with ESLint (e.g., `espree` is the default parser for ESLint, and this follows [EStree AST](https://github.com/estree/estree) but to support the the latest experimental features of JavaScript, one may use `@babel/eslint-parser` or to be able to have one's rules (including JSDoc rules) -apply to TypeScript, one may use `@typescript-eslint/parser`, etc. +apply to TypeScript, one may use `typescript-eslint`, etc. So you can look up a particular parser to see its rules, e.g., browse through the [ESTree docs](https://github.com/estree/estree) as used by Espree or see diff --git a/docs/advanced.md b/docs/advanced.md index 4d593c0cb..46ca8b380 100644 --- a/docs/advanced.md +++ b/docs/advanced.md @@ -68,7 +68,7 @@ you are using with ESLint (e.g., `espree` is the default parser for ESLint, and this follows [EStree AST](https://github.com/estree/estree) but to support the the latest experimental features of JavaScript, one may use `@babel/eslint-parser` or to be able to have one's rules (including JSDoc rules) -apply to TypeScript, one may use `@typescript-eslint/parser`, etc. +apply to TypeScript, one may use `typescript-eslint`, etc. So you can look up a particular parser to see its rules, e.g., browse through the [ESTree docs](https://github.com/estree/estree) as used by Espree or see diff --git a/docs/rules/check-param-names.md b/docs/rules/check-param-names.md index 5b3c74f35..fc4c62ec2 100644 --- a/docs/rules/check-param-names.md +++ b/docs/rules/check-param-names.md @@ -620,7 +620,7 @@ function quux (foo) { /** * @param barr This is the description of bar. Oops, we misspelled "bar" as "barr". */ -declare function foo(bar: number) {} +declare function foo(bar: number) // Message: Expected @param names to be "bar". Got "barr". /** diff --git a/package.json b/package.json index f9d788fb3..79e718e58 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "@types/node": "^20.12.12", "@types/semver": "^7.5.8", "@types/spdx-expression-parse": "^3.0.5", - "@typescript-eslint/parser": "^7.11.0", + "@typescript-eslint/types": "^7.14.1", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "babel-plugin-transform-import-meta": "^2.2.1", @@ -67,7 +67,8 @@ "replace": "^1.2.2", "rimraf": "^5.0.7", "semantic-release": "^23.1.1", - "typescript": "5.3.x" + "typescript": "5.3.x", + "typescript-eslint": "^8.0.0-alpha.34" }, "engines": { "node": ">=18" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a5a8c20cd..97ed0abf8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -111,9 +111,9 @@ importers: '@types/spdx-expression-parse': specifier: ^3.0.5 version: 3.0.5 - '@typescript-eslint/parser': - specifier: ^7.11.0 - version: 7.11.0(eslint@9.3.0)(typescript@5.3.3) + '@typescript-eslint/types': + specifier: ^7.14.1 + version: 7.14.1 babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -189,6 +189,9 @@ importers: typescript: specifier: 5.3.x version: 5.3.3 + typescript-eslint: + specifier: ^8.0.0-alpha.34 + version: 8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3) packages: @@ -1355,6 +1358,17 @@ packages: typescript: optional: true + '@typescript-eslint/eslint-plugin@8.0.0-alpha.34': + resolution: {integrity: sha512-qPLMqSlyZCHFSvsqIUV/QZ0ufxhOJhutvBEpi4KppixRZgrI6ZJw2M9EgqMRGraA5lGghwymVdxmcaCp4QuFPQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/experimental-utils@5.62.0': resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1381,6 +1395,16 @@ packages: typescript: optional: true + '@typescript-eslint/parser@8.0.0-alpha.34': + resolution: {integrity: sha512-jtBWP09o/RrVsLhDwoxUHtvJURZ7RaO3Ia9OnkC6Jjsdn23tKwoEtjLbB94ATr6BU44R3JVbRJn1SCueCmECYw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/scope-manager@5.62.0': resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1397,10 +1421,14 @@ packages: resolution: {integrity: sha512-27tGdVEiutD4POirLZX4YzT180vevUURJl4wJGmm6TrQoiYwuxTIY98PBp6L2oN+JQxzE0URvYlzJaBHIekXAw==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@7.8.0': - resolution: {integrity: sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==} + '@typescript-eslint/scope-manager@7.14.1': + resolution: {integrity: sha512-gPrFSsoYcsffYXTOZ+hT7fyJr95rdVe4kGVX1ps/dJ+DfmlnjFN/GcMxXcVkeHDKqsq6uAcVaQaIi3cFffmAbA==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@8.0.0-alpha.34': + resolution: {integrity: sha512-IpeT8JnV1Uo5lG/GTYe/SRJRcz1rBaCNma5cS5R8c4NkBIiIeE+R9Vy8ZEPkGImTfBp9BUNU6w+8lSQf0Z6tKw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/type-utils@7.11.0': resolution: {integrity: sha512-WmppUEgYy+y1NTseNMJ6mCFxt03/7jTOy08bcg7bxJJdsM4nuhnchyBbE8vryveaJUf62noH7LodPSo5Z0WUCg==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1411,6 +1439,15 @@ packages: typescript: optional: true + '@typescript-eslint/type-utils@8.0.0-alpha.34': + resolution: {integrity: sha512-VmsfGVQ9UV1gs+LQkA9W9Nf7rSwY9KzB7WZUXwx56Ynlwjyt+999Z4Rrh2kPuDCPHTsO+GJDqeYyOYOEeXi9Bw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/types@5.62.0': resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1427,10 +1464,14 @@ packages: resolution: {integrity: sha512-MPEsDRZTyCiXkD4vd3zywDCifi7tatc4K37KqTprCvaXptP7Xlpdw0NR2hRJTetG5TxbWDB79Ys4kLmHliEo/w==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@7.8.0': - resolution: {integrity: sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==} + '@typescript-eslint/types@7.14.1': + resolution: {integrity: sha512-mL7zNEOQybo5R3AavY+Am7KLv8BorIv7HCYS5rKoNZKQD9tsfGUpO4KdAn3sSUvTiS4PQkr2+K0KJbxj8H9NDg==} 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} + '@typescript-eslint/typescript-estree@5.62.0': resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1467,8 +1508,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@7.8.0': - resolution: {integrity: sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==} + '@typescript-eslint/typescript-estree@7.14.1': + resolution: {integrity: sha512-k5d0VuxViE2ulIO6FbxxSZaxqDVUyMbXcidC8rHvii0I56XZPv8cq+EhMns+d/EVIL41sMXqRbK3D10Oza1bbA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -1476,6 +1517,15 @@ packages: typescript: optional: true + '@typescript-eslint/typescript-estree@8.0.0-alpha.34': + resolution: {integrity: sha512-1ZAffOto9HpStxKCVpKkemYRUC4fznLEaj9fZyIYcppC/hdNNgZaiC0ONRUQQtdlPgdeH8BKoiWo6bGRemlxUw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/utils@5.62.0': resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1494,12 +1544,18 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@7.8.0': - resolution: {integrity: sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==} + '@typescript-eslint/utils@7.14.1': + resolution: {integrity: sha512-CMmVVELns3nak3cpJhZosDkm63n+DwBlDX8g0k4QUa9BMnF+lH2lr3d130M1Zt1xxmB3LLk3NV7KQCq86ZBBhQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 + '@typescript-eslint/utils@8.0.0-alpha.34': + resolution: {integrity: sha512-gHiHW96wCi3yllubUOswdWyCS/D5IRytTw9rPyumWJGD9qPh47MZAxtKp86Qdt1sbg+BJkYb8cCUMX9dwlVZzA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + '@typescript-eslint/visitor-keys@5.62.0': resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1516,10 +1572,14 @@ packages: resolution: {integrity: sha512-7syYk4MzjxTEk0g/w3iqtgxnFQspDJfn6QKD36xMuuhTzjcxY7F8EmBLnALjVyaOF1/bVocu3bS/2/F7rXrveQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@7.8.0': - resolution: {integrity: sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==} + '@typescript-eslint/visitor-keys@7.14.1': + resolution: {integrity: sha512-Crb+F75U1JAEtBeQGxSKwI60hZmmzaqA3z9sYsVm8X7W5cwLEm5bRe0/uXS6+MR/y8CVpKSR/ontIAIEPFcEkA==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@8.0.0-alpha.34': + resolution: {integrity: sha512-Zs84EZx55fusxi4+6bzdZyNLy6nN8snh7HOcgs1jiRkqmf0qo+cgPjb7mGA1RgE1m60FQYgesj7je9KBE0HfSA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} @@ -5434,6 +5494,15 @@ packages: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} + typescript-eslint@8.0.0-alpha.34: + resolution: {integrity: sha512-Y8d1Q72RyygrV4bmbMXT21hPzNYyZIC+RzRftKvt5OFAMlfVNehre2qBVPwvljFu86AXMNe4FDMFhHvhZtOa6w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + typescript@5.3.3: resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} @@ -6678,7 +6747,7 @@ snapshots: dependencies: '@types/eslint': 8.56.10 '@types/estree': 1.0.5 - '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/types': 7.14.1 comment-parser: 1.4.1 esquery: 1.5.0 jsdoc-type-pratt-parser: 4.0.0 @@ -7300,6 +7369,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/eslint-plugin@8.0.0-alpha.34(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3)': + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 8.0.0-alpha.34 + '@typescript-eslint/type-utils': 8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3) + '@typescript-eslint/utils': 8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 8.0.0-alpha.34 + eslint: 9.3.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.3.3) + optionalDependencies: + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/experimental-utils@5.62.0(eslint@9.3.0)(typescript@5.3.3)': dependencies: '@typescript-eslint/utils': 5.62.0(eslint@9.3.0)(typescript@5.3.3) @@ -7334,6 +7421,19 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.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/visitor-keys': 8.0.0-alpha.34 + debug: 4.3.4(supports-color@8.1.1) + eslint: 9.3.0 + optionalDependencies: + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/scope-manager@5.62.0': dependencies: '@typescript-eslint/types': 5.62.0 @@ -7354,10 +7454,15 @@ snapshots: '@typescript-eslint/types': 7.11.0 '@typescript-eslint/visitor-keys': 7.11.0 - '@typescript-eslint/scope-manager@7.8.0': + '@typescript-eslint/scope-manager@7.14.1': + dependencies: + '@typescript-eslint/types': 7.14.1 + '@typescript-eslint/visitor-keys': 7.14.1 + + '@typescript-eslint/scope-manager@8.0.0-alpha.34': dependencies: - '@typescript-eslint/types': 7.8.0 - '@typescript-eslint/visitor-keys': 7.8.0 + '@typescript-eslint/types': 8.0.0-alpha.34 + '@typescript-eslint/visitor-keys': 8.0.0-alpha.34 '@typescript-eslint/type-utils@7.11.0(eslint@9.3.0)(typescript@5.3.3)': dependencies: @@ -7371,6 +7476,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/type-utils@8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.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.3.0)(typescript@5.3.3) + debug: 4.3.4(supports-color@8.1.1) + ts-api-utils: 1.3.0(typescript@5.3.3) + optionalDependencies: + typescript: 5.3.3 + transitivePeerDependencies: + - eslint + - supports-color + '@typescript-eslint/types@5.62.0': {} '@typescript-eslint/types@6.19.1': {} @@ -7379,7 +7496,9 @@ snapshots: '@typescript-eslint/types@7.11.0': {} - '@typescript-eslint/types@7.8.0': {} + '@typescript-eslint/types@7.14.1': {} + + '@typescript-eslint/types@8.0.0-alpha.34': {} '@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3)': dependencies: @@ -7440,10 +7559,25 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.8.0(typescript@5.3.3)': + '@typescript-eslint/typescript-estree@7.14.1(typescript@5.3.3)': + dependencies: + '@typescript-eslint/types': 7.14.1 + '@typescript-eslint/visitor-keys': 7.14.1 + debug: 4.3.4(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) + optionalDependencies: + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@8.0.0-alpha.34(typescript@5.3.3)': dependencies: - '@typescript-eslint/types': 7.8.0 - '@typescript-eslint/visitor-keys': 7.8.0 + '@typescript-eslint/types': 8.0.0-alpha.34 + '@typescript-eslint/visitor-keys': 8.0.0-alpha.34 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 @@ -7495,16 +7629,24 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@7.8.0(eslint@9.3.0)(typescript@5.3.3)': + '@typescript-eslint/utils@7.14.1(eslint@9.3.0)(typescript@5.3.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 7.8.0 - '@typescript-eslint/types': 7.8.0 - '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.3.3) + '@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.3.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/utils@8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.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.3.0 - semver: 7.6.2 transitivePeerDependencies: - supports-color - typescript @@ -7529,9 +7671,14 @@ snapshots: '@typescript-eslint/types': 7.11.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@7.8.0': + '@typescript-eslint/visitor-keys@7.14.1': + dependencies: + '@typescript-eslint/types': 7.14.1 + eslint-visitor-keys: 3.4.3 + + '@typescript-eslint/visitor-keys@8.0.0-alpha.34': dependencies: - '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/types': 8.0.0-alpha.34 eslint-visitor-keys: 3.4.3 '@ungap/structured-clone@1.2.0': {} @@ -8657,7 +8804,7 @@ snapshots: eslint-config-prettier: 9.1.0(eslint@9.3.0) eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.3.0) eslint-plugin-ava: 15.0.1(eslint@9.3.0) - eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0))(eslint@9.3.0)(typescript@5.3.3) + eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.3.0))(eslint@9.3.0)(typescript@5.3.3) eslint-plugin-cypress: 3.3.0(eslint@9.3.0) eslint-plugin-eslint-comments: 3.2.0(eslint@9.3.0) eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.24.6(@babel/core@7.24.6))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.6))(eslint@9.3.0) @@ -8755,7 +8902,7 @@ snapshots: pkg-dir: 5.0.0 resolve-from: 5.0.0 - eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0))(eslint@9.3.0)(typescript@5.3.3): + eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.3.0))(eslint@9.3.0)(typescript@5.3.3): dependencies: '@typescript-eslint/utils': 6.19.1(eslint@9.3.0)(typescript@5.3.3) chance: 1.1.11 @@ -8834,7 +8981,7 @@ snapshots: eslint-plugin-jest@28.5.0(@typescript-eslint/eslint-plugin@7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3): dependencies: - '@typescript-eslint/utils': 7.8.0(eslint@9.3.0)(typescript@5.3.3) + '@typescript-eslint/utils': 7.14.1(eslint@9.3.0)(typescript@5.3.3) eslint: 9.3.0 optionalDependencies: '@typescript-eslint/eslint-plugin': 7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3) @@ -9005,7 +9152,7 @@ snapshots: eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3): dependencies: - '@typescript-eslint/utils': 7.8.0(eslint@9.3.0)(typescript@5.3.3) + '@typescript-eslint/utils': 7.14.1(eslint@9.3.0)(typescript@5.3.3) eslint: 9.3.0 optionalDependencies: '@typescript-eslint/eslint-plugin': 7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3) @@ -11991,6 +12138,17 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 + typescript-eslint@8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.0.0-alpha.34(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3) + '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3) + '@typescript-eslint/utils': 8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3) + optionalDependencies: + typescript: 5.3.3 + transitivePeerDependencies: + - eslint + - supports-color + typescript@5.3.3: {} uglify-js@3.17.4: diff --git a/src/exportParser.js b/src/exportParser.js index fe74c197e..4bb2e13bd 100644 --- a/src/exportParser.js +++ b/src/exportParser.js @@ -248,7 +248,7 @@ const getSymbol = function (node, globals, scope, opt) { val.type = 'object'; for (const prop of node.properties) { if ([ - // @typescript-eslint/parser, espree, acorn, etc. + // typescript-eslint, espree, acorn, etc. 'SpreadElement', // @babel/eslint-parser diff --git a/src/utils/hasReturnValue.js b/src/utils/hasReturnValue.js index 9f103f68c..9f370c36f 100644 --- a/src/utils/hasReturnValue.js +++ b/src/utils/hasReturnValue.js @@ -20,6 +20,7 @@ const isNewPromiseExpression = (node) => { */ const isVoidPromise = (node) => { return /** @type {import('@typescript-eslint/types').TSESTree.TSTypeReference} */ (node)?.typeArguments?.params?.[0]?.type === 'TSVoidKeyword' + /* c8 ignore next */ || /** @type {import('@typescript-eslint/types').TSESTree.TSTypeReference} */ (node)?.typeParameters?.params?.[0]?.type === 'TSVoidKeyword'; }; diff --git a/test/rules/assertions/checkAccess.js b/test/rules/assertions/checkAccess.js index 876dfd04d..4a3650298 100644 --- a/test/rules/assertions/checkAccess.js +++ b/test/rules/assertions/checkAccess.js @@ -1,4 +1,4 @@ -import * as typescriptEslintParser from '@typescript-eslint/parser'; +import {parser as typescriptEslintParser} from 'typescript-eslint'; export default { invalid: [ diff --git a/test/rules/assertions/checkIndentation.js b/test/rules/assertions/checkIndentation.js index ee2c9630e..2c0ea9966 100644 --- a/test/rules/assertions/checkIndentation.js +++ b/test/rules/assertions/checkIndentation.js @@ -1,4 +1,4 @@ -import * as typescriptEslintParser from '@typescript-eslint/parser'; +import {parser as typescriptEslintParser} from 'typescript-eslint'; export default { invalid: [ diff --git a/test/rules/assertions/checkParamNames.js b/test/rules/assertions/checkParamNames.js index 173f565a8..851f5df59 100644 --- a/test/rules/assertions/checkParamNames.js +++ b/test/rules/assertions/checkParamNames.js @@ -1,4 +1,4 @@ -import * as typescriptEslintParser from '@typescript-eslint/parser'; +import {parser as typescriptEslintParser} from 'typescript-eslint'; import * as babelEslintParser from '@babel/eslint-parser'; export default { @@ -1162,7 +1162,7 @@ export default { /** * @param barr This is the description of bar. Oops, we misspelled "bar" as "barr". */ - declare function foo(bar: number) {} + declare function foo(bar: number) `, errors: [ { diff --git a/test/rules/assertions/checkTagNames.js b/test/rules/assertions/checkTagNames.js index a3ce841fb..12cc770e0 100644 --- a/test/rules/assertions/checkTagNames.js +++ b/test/rules/assertions/checkTagNames.js @@ -1,4 +1,4 @@ -import * as typescriptEslintParser from '@typescript-eslint/parser'; +import {parser as typescriptEslintParser} from 'typescript-eslint'; import { closureTags, jsdocTags, diff --git a/test/rules/assertions/informativeDocs.js b/test/rules/assertions/informativeDocs.js index c9fa78a10..e28965a3c 100644 --- a/test/rules/assertions/informativeDocs.js +++ b/test/rules/assertions/informativeDocs.js @@ -1,4 +1,4 @@ -import * as typescriptEslintParser from '@typescript-eslint/parser'; +import {parser as typescriptEslintParser} from 'typescript-eslint'; export default { invalid: [ diff --git a/test/rules/assertions/matchDescription.js b/test/rules/assertions/matchDescription.js index 7f79a2cd2..dd2e2cff0 100644 --- a/test/rules/assertions/matchDescription.js +++ b/test/rules/assertions/matchDescription.js @@ -1,4 +1,4 @@ -import * as typescriptEslintParser from '@typescript-eslint/parser'; +import {parser as typescriptEslintParser} from 'typescript-eslint'; export default { invalid: [ diff --git a/test/rules/assertions/noMissingSyntax.js b/test/rules/assertions/noMissingSyntax.js index 833082c83..6ff571927 100644 --- a/test/rules/assertions/noMissingSyntax.js +++ b/test/rules/assertions/noMissingSyntax.js @@ -1,4 +1,4 @@ -import * as typescriptEslintParser from '@typescript-eslint/parser'; +import {parser as typescriptEslintParser} from 'typescript-eslint'; export default { invalid: [ diff --git a/test/rules/assertions/noMultiAsterisks.js b/test/rules/assertions/noMultiAsterisks.js index 174d17662..0152616f7 100644 --- a/test/rules/assertions/noMultiAsterisks.js +++ b/test/rules/assertions/noMultiAsterisks.js @@ -1,4 +1,4 @@ -import * as typescriptEslintParser from '@typescript-eslint/parser'; +import {parser as typescriptEslintParser} from 'typescript-eslint'; export default { invalid: [ diff --git a/test/rules/assertions/noRestrictedSyntax.js b/test/rules/assertions/noRestrictedSyntax.js index 0f6f3b8d3..68f02771d 100644 --- a/test/rules/assertions/noRestrictedSyntax.js +++ b/test/rules/assertions/noRestrictedSyntax.js @@ -1,4 +1,4 @@ -import * as typescriptEslintParser from '@typescript-eslint/parser'; +import {parser as typescriptEslintParser} from 'typescript-eslint'; import * as jsdocEslintParser from '@es-joy/jsdoc-eslint-parser/typescript.js'; export default { diff --git a/test/rules/assertions/noTypes.js b/test/rules/assertions/noTypes.js index 6c2bfb789..8acee50fb 100644 --- a/test/rules/assertions/noTypes.js +++ b/test/rules/assertions/noTypes.js @@ -1,4 +1,4 @@ -import * as typescriptEslintParser from '@typescript-eslint/parser'; +import {parser as typescriptEslintParser} from 'typescript-eslint'; export default { invalid: [ diff --git a/test/rules/assertions/noUndefinedTypes.js b/test/rules/assertions/noUndefinedTypes.js index 44d3e68b2..d468e1f67 100644 --- a/test/rules/assertions/noUndefinedTypes.js +++ b/test/rules/assertions/noUndefinedTypes.js @@ -1,4 +1,4 @@ -import * as typescriptEslintParser from '@typescript-eslint/parser'; +import {parser as typescriptEslintParser} from 'typescript-eslint'; import * as babelEslintParser from '@babel/eslint-parser'; import globals from 'globals'; diff --git a/test/rules/assertions/requireDescription.js b/test/rules/assertions/requireDescription.js index 0431fe3d9..ed2f3b8a2 100644 --- a/test/rules/assertions/requireDescription.js +++ b/test/rules/assertions/requireDescription.js @@ -1,4 +1,4 @@ -import * as typescriptEslintParser from '@typescript-eslint/parser'; +import {parser as typescriptEslintParser} from 'typescript-eslint'; export default { invalid: [ diff --git a/test/rules/assertions/requireJsdoc.js b/test/rules/assertions/requireJsdoc.js index d2b174c3d..48ddb50df 100644 --- a/test/rules/assertions/requireJsdoc.js +++ b/test/rules/assertions/requireJsdoc.js @@ -1,4 +1,4 @@ -import * as typescriptEslintParser from '@typescript-eslint/parser'; +import {parser as typescriptEslintParser} from 'typescript-eslint'; import * as babelEslintParser from '@babel/eslint-parser'; import globals from 'globals'; diff --git a/test/rules/assertions/requireParam.js b/test/rules/assertions/requireParam.js index 4acdc56bf..7c29734f3 100644 --- a/test/rules/assertions/requireParam.js +++ b/test/rules/assertions/requireParam.js @@ -1,4 +1,4 @@ -import * as typescriptEslintParser from '@typescript-eslint/parser'; +import {parser as typescriptEslintParser} from 'typescript-eslint'; import * as babelEslintParser from '@babel/eslint-parser'; export default { diff --git a/test/rules/assertions/requireReturns.js b/test/rules/assertions/requireReturns.js index f68178c9e..f688d77ca 100644 --- a/test/rules/assertions/requireReturns.js +++ b/test/rules/assertions/requireReturns.js @@ -1,4 +1,4 @@ -import * as typescriptEslintParser from '@typescript-eslint/parser'; +import {parser as typescriptEslintParser} from 'typescript-eslint'; export default { invalid: [ diff --git a/test/rules/assertions/requireReturnsCheck.js b/test/rules/assertions/requireReturnsCheck.js index cd6e180e6..025d6ab12 100755 --- a/test/rules/assertions/requireReturnsCheck.js +++ b/test/rules/assertions/requireReturnsCheck.js @@ -1,4 +1,4 @@ -import * as typescriptEslintParser from '@typescript-eslint/parser'; +import {parser as typescriptEslintParser} from 'typescript-eslint'; export default { invalid: [ diff --git a/test/rules/assertions/tagLines.js b/test/rules/assertions/tagLines.js index b53b4aae4..06baaec12 100644 --- a/test/rules/assertions/tagLines.js +++ b/test/rules/assertions/tagLines.js @@ -1,4 +1,4 @@ -import * as typescriptEslintParser from '@typescript-eslint/parser'; +import {parser as typescriptEslintParser} from 'typescript-eslint'; export default { invalid: [ diff --git a/test/rules/assertions/validTypes.js b/test/rules/assertions/validTypes.js index fb3710bb2..9f31a796f 100644 --- a/test/rules/assertions/validTypes.js +++ b/test/rules/assertions/validTypes.js @@ -1,4 +1,4 @@ -import * as typescriptEslintParser from '@typescript-eslint/parser'; +import {parser as typescriptEslintParser} from 'typescript-eslint'; export default { invalid: [ From 14dc1bd1f892ef2f14ec47cd34b167b222999549 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 28 Jun 2024 08:22:09 +0800 Subject: [PATCH 200/273] chore: update debug, devDeps. Also: - chore: change deprecated `husky install` -> `husky` --- package.json | 42 +- pnpm-lock.yaml | 3311 +++++++++++++++++++------------------------- tsconfig-prod.json | 2 +- tsconfig.json | 2 +- 4 files changed, 1477 insertions(+), 1880 deletions(-) diff --git a/package.json b/package.json index 79e718e58..57ac8f39f 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "@es-joy/jsdoccomment": "~0.43.1", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", - "debug": "^4.3.4", + "debug": "^4.3.5", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", "parse-imports": "^2.1.0", @@ -18,18 +18,18 @@ }, "description": "JSDoc linting rules for ESLint.", "devDependencies": { - "@babel/cli": "^7.24.6", - "@babel/core": "^7.24.6", - "@babel/eslint-parser": "^7.24.6", - "@babel/node": "^7.24.6", + "@babel/cli": "^7.24.7", + "@babel/core": "^7.24.7", + "@babel/eslint-parser": "^7.24.7", + "@babel/node": "^7.24.7", "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-transform-flow-strip-types": "^7.24.6", - "@babel/preset-env": "^7.24.6", + "@babel/plugin-transform-flow-strip-types": "^7.24.7", + "@babel/preset-env": "^7.24.7", "@es-joy/escodegen": "^3.5.1", "@es-joy/jsdoc-eslint-parser": "^0.21.1", "@hkdobrev/run-if-changed": "^0.3.1", - "@semantic-release/commit-analyzer": "^12.0.0", - "@semantic-release/github": "^10.0.5", + "@semantic-release/commit-analyzer": "^13.0.0", + "@semantic-release/github": "^10.0.6", "@semantic-release/npm": "^12.0.1", "@types/chai": "^4.3.16", "@types/debug": "^4.1.12", @@ -38,35 +38,35 @@ "@types/estree": "^1.0.5", "@types/json-schema": "^7.0.15", "@types/lodash.defaultsdeep": "^4.6.9", - "@types/mocha": "^10.0.6", - "@types/node": "^20.12.12", + "@types/mocha": "^10.0.7", + "@types/node": "^20.14.9", "@types/semver": "^7.5.8", "@types/spdx-expression-parse": "^3.0.5", "@typescript-eslint/types": "^7.14.1", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "babel-plugin-transform-import-meta": "^2.2.1", - "c8": "^9.1.0", + "c8": "^10.1.2", "camelcase": "^6.3.0", "chai": "^4.3.10", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "9.3.0", - "eslint-config-canonical": "~43.0.12", - "espree": "^10.0.1", + "eslint": "9.5.0", + "eslint-config-canonical": "~43.0.13", + "espree": "^10.1.0", "gitdown": "^3.1.5", - "glob": "^10.4.1", - "globals": "^15.3.0", + "glob": "^10.4.2", + "globals": "^15.6.0", "husky": "^9.0.11", "jsdoc-type-pratt-parser": "^4.0.0", "json-schema": "^0.4.0", - "lint-staged": "^15.2.5", + "lint-staged": "^15.2.7", "lodash.defaultsdeep": "^4.6.1", - "mocha": "^10.4.0", + "mocha": "^10.5.2", "open-editor": "^3.0.0", "replace": "^1.2.2", "rimraf": "^5.0.7", - "semantic-release": "^23.1.1", + "semantic-release": "^24.0.0", "typescript": "5.3.x", "typescript-eslint": "^8.0.0-alpha.34" }, @@ -138,7 +138,7 @@ "lint": "npm run lint-arg -- .", "lint-arg": "eslint", "lint-fix": "npm run lint-arg -- --fix .", - "prepare": "husky install", + "prepare": "husky", "test-no-cov": "cross-env BABEL_ENV=test mocha", "test": "c8 npm run test-no-cov", "test-cov": "cross-env TIMING=1 c8 --reporter text npm run test-no-cov", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 97ed0abf8..4706cb98c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,8 +18,8 @@ importers: specifier: 1.4.1 version: 1.4.1 debug: - specifier: ^4.3.4 - version: 4.3.4(supports-color@8.1.1) + specifier: ^4.3.5 + version: 4.3.5 escape-string-regexp: specifier: ^4.0.0 version: 4.0.0 @@ -40,26 +40,26 @@ importers: version: 0.9.0 devDependencies: '@babel/cli': - specifier: ^7.24.6 - version: 7.24.6(@babel/core@7.24.6) + specifier: ^7.24.7 + version: 7.24.7(@babel/core@7.24.7) '@babel/core': - specifier: ^7.24.6 - version: 7.24.6 + specifier: ^7.24.7 + version: 7.24.7 '@babel/eslint-parser': - specifier: ^7.24.6 - version: 7.24.6(@babel/core@7.24.6)(eslint@9.3.0) + specifier: ^7.24.7 + version: 7.24.7(@babel/core@7.24.7)(eslint@9.5.0) '@babel/node': - specifier: ^7.24.6 - version: 7.24.6(@babel/core@7.24.6) + specifier: ^7.24.7 + version: 7.24.7(@babel/core@7.24.7) '@babel/plugin-syntax-class-properties': specifier: ^7.12.13 - version: 7.12.13(@babel/core@7.24.6) + version: 7.12.13(@babel/core@7.24.7) '@babel/plugin-transform-flow-strip-types': - specifier: ^7.24.6 - version: 7.24.6(@babel/core@7.24.6) + specifier: ^7.24.7 + version: 7.24.7(@babel/core@7.24.7) '@babel/preset-env': - specifier: ^7.24.6 - version: 7.24.6(@babel/core@7.24.6) + specifier: ^7.24.7 + version: 7.24.7(@babel/core@7.24.7) '@es-joy/escodegen': specifier: ^3.5.1 version: 3.5.1 @@ -70,14 +70,14 @@ importers: specifier: ^0.3.1 version: 0.3.1 '@semantic-release/commit-analyzer': - specifier: ^12.0.0 - version: 12.0.0(semantic-release@23.1.1(typescript@5.3.3)) + specifier: ^13.0.0 + version: 13.0.0(semantic-release@24.0.0(typescript@5.3.3)) '@semantic-release/github': - specifier: ^10.0.5 - version: 10.0.5(semantic-release@23.1.1(typescript@5.3.3)) + specifier: ^10.0.6 + version: 10.0.6(semantic-release@24.0.0(typescript@5.3.3)) '@semantic-release/npm': specifier: ^12.0.1 - version: 12.0.1(semantic-release@23.1.1(typescript@5.3.3)) + version: 12.0.1(semantic-release@24.0.0(typescript@5.3.3)) '@types/chai': specifier: ^4.3.16 version: 4.3.16 @@ -100,11 +100,11 @@ importers: specifier: ^4.6.9 version: 4.6.9 '@types/mocha': - specifier: ^10.0.6 - version: 10.0.6 + specifier: ^10.0.7 + version: 10.0.7 '@types/node': - specifier: ^20.12.12 - version: 20.12.12 + specifier: ^20.14.9 + version: 20.14.9 '@types/semver': specifier: ^7.5.8 version: 7.5.8 @@ -122,10 +122,10 @@ importers: version: 6.1.1 babel-plugin-transform-import-meta: specifier: ^2.2.1 - version: 2.2.1(@babel/core@7.24.6) + version: 2.2.1(@babel/core@7.24.7) c8: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.1.2 + version: 10.1.2 camelcase: specifier: ^6.3.0 version: 6.3.0 @@ -139,23 +139,23 @@ importers: specifier: ^5.0.1 version: 5.0.1 eslint: - specifier: 9.3.0 - version: 9.3.0 + specifier: 9.5.0 + version: 9.5.0 eslint-config-canonical: - specifier: ~43.0.12 - version: 43.0.12(@babel/plugin-syntax-flow@7.24.6(@babel/core@7.24.6))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.6))(@types/eslint@8.56.10)(@types/node@20.12.12)(encoding@0.1.13)(eslint@9.3.0)(typescript@5.3.3) + 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) espree: - specifier: ^10.0.1 - version: 10.0.1 + specifier: ^10.1.0 + version: 10.1.0 gitdown: specifier: ^3.1.5 version: 3.1.5 glob: - specifier: ^10.4.1 - version: 10.4.1 + specifier: ^10.4.2 + version: 10.4.2 globals: - specifier: ^15.3.0 - version: 15.3.0 + specifier: ^15.6.0 + version: 15.6.0 husky: specifier: ^9.0.11 version: 9.0.11 @@ -166,14 +166,14 @@ importers: specifier: ^0.4.0 version: 0.4.0 lint-staged: - specifier: ^15.2.5 - version: 15.2.5 + specifier: ^15.2.7 + version: 15.2.7 lodash.defaultsdeep: specifier: ^4.6.1 version: 4.6.1 mocha: - specifier: ^10.4.0 - version: 10.4.0 + specifier: ^10.5.2 + version: 10.5.2 open-editor: specifier: ^3.0.0 version: 3.0.0 @@ -184,14 +184,14 @@ importers: specifier: ^5.0.7 version: 5.0.7 semantic-release: - specifier: ^23.1.1 - version: 23.1.1(typescript@5.3.3) + specifier: ^24.0.0 + version: 24.0.0(typescript@5.3.3) typescript: specifier: 5.3.x version: 5.3.3 typescript-eslint: specifier: ^8.0.0-alpha.34 - version: 8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3) + version: 8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3) packages: @@ -207,8 +207,8 @@ packages: resolution: {integrity: sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==} engines: {node: '>=14'} - '@babel/cli@7.24.6': - resolution: {integrity: sha512-Sm/YhG/0REw9SKByFHDf4hkk7PYsjcsOyZgHGz1nvab4tUTQ9N4XVv+ykK0Y+VCJ3OshA/7EDyxnwCd8NEP/mQ==} + '@babel/cli@7.24.7': + resolution: {integrity: sha512-8dfPprJgV4O14WTx+AQyEA+opgUKPrsIXX/MdL50J1n06EQJ6m1T+CdsJe0qEC0B/Xl85i+Un5KVAxd/PACX9A==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: @@ -222,60 +222,58 @@ packages: resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.24.6': - resolution: {integrity: sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==} + '@babel/code-frame@7.24.7': + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.24.7': + resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} engines: {node: '>=6.9.0'} - '@babel/core@7.24.6': - resolution: {integrity: sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==} + '@babel/core@7.24.7': + resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} engines: {node: '>=6.9.0'} - '@babel/eslint-parser@7.24.6': - resolution: {integrity: sha512-Q1BfQX42zXHx732PLW0w4+Y3wJjoZKEMaatFUEAmQ7Z+jCXxinzeqX9bvv2Q8xNPes/H6F0I23oGkcgjaItmLw==} + '@babel/eslint-parser@7.24.7': + resolution: {integrity: sha512-SO5E3bVxDuxyNxM5agFv480YA2HO6ohZbGxbazZdIk3KQOPOGVNw6q78I9/lbviIf95eq6tPozeYnJLbjnC8IA==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - '@babel/eslint-plugin@7.24.6': - resolution: {integrity: sha512-sUDNpeOID2Am4cBXEmyhRaSvwwXIHVaG7trk7HO1Ri5VrEIBPYXg4ulTvZm2Lo0Y7u7Tw8QLe6JygchdOOto6w==} + '@babel/eslint-plugin@7.24.7': + resolution: {integrity: sha512-lODNPJnM+OfcxxBvdmI2YmUeC0fBK3k9yET5O+1Eukr8d5VpO19c6ARtNheE2t2i/8XNYTzp3HeGEAAGZH3nnQ==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - '@babel/generator@7.24.5': - resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==} - engines: {node: '>=6.9.0'} - '@babel/generator@7.24.6': resolution: {integrity: sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.22.5': - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + '@babel/generator@7.24.7': + resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.24.6': resolution: {integrity: sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==} engines: {node: '>=6.9.0'} - '@babel/helper-builder-binary-assignment-operator-visitor@7.24.6': - resolution: {integrity: sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==} + '@babel/helper-annotate-as-pure@7.24.7': + resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.24.6': - resolution: {integrity: sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==} + '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': + resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.24.6': - resolution: {integrity: sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==} + '@babel/helper-compilation-targets@7.24.7': + resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.22.15': - resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + '@babel/helper-create-class-features-plugin@7.24.7': + resolution: {integrity: sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -286,101 +284,103 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-create-regexp-features-plugin@7.24.7': + resolution: {integrity: sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-define-polyfill-provider@0.6.1': resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-environment-visitor@7.22.20': - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} - '@babel/helper-environment-visitor@7.24.6': resolution: {integrity: sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==} engines: {node: '>=6.9.0'} - '@babel/helper-function-name@7.23.0': - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + '@babel/helper-environment-visitor@7.24.7': + resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} engines: {node: '>=6.9.0'} '@babel/helper-function-name@7.24.6': resolution: {integrity: sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==} engines: {node: '>=6.9.0'} - '@babel/helper-hoist-variables@7.22.5': - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + '@babel/helper-function-name@7.24.7': + resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} engines: {node: '>=6.9.0'} '@babel/helper-hoist-variables@7.24.6': resolution: {integrity: sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.24.6': - resolution: {integrity: sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==} + '@babel/helper-hoist-variables@7.24.7': + resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-member-expression-to-functions@7.24.7': + resolution: {integrity: sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.24.6': - resolution: {integrity: sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==} + '@babel/helper-module-imports@7.24.7': + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.24.6': - resolution: {integrity: sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==} + '@babel/helper-module-transforms@7.24.7': + resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.24.6': - resolution: {integrity: sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==} + '@babel/helper-optimise-call-expression@7.24.7': + resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} engines: {node: '>=6.9.0'} '@babel/helper-plugin-utils@7.22.5': resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.24.5': - resolution: {integrity: sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==} + '@babel/helper-plugin-utils@7.24.7': + resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.24.6': - resolution: {integrity: sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-remap-async-to-generator@7.24.6': - resolution: {integrity: sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg==} + '@babel/helper-remap-async-to-generator@7.24.7': + resolution: {integrity: sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.24.6': - resolution: {integrity: sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==} + '@babel/helper-replace-supers@7.24.7': + resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-simple-access@7.24.6': - resolution: {integrity: sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==} - engines: {node: '>=6.9.0'} - - '@babel/helper-skip-transparent-expression-wrappers@7.24.6': - resolution: {integrity: sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==} + '@babel/helper-simple-access@7.24.7': + resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.24.5': - resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==} + '@babel/helper-skip-transparent-expression-wrappers@7.24.7': + resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} engines: {node: '>=6.9.0'} '@babel/helper-split-export-declaration@7.24.6': resolution: {integrity: sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.1': - resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} + '@babel/helper-split-export-declaration@7.24.7': + resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} '@babel/helper-string-parser@7.24.6': resolution: {integrity: sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.24.7': + resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.24.5': resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} engines: {node: '>=6.9.0'} @@ -389,16 +389,20 @@ packages: resolution: {integrity: sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.6': - resolution: {integrity: sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==} + '@babel/helper-validator-identifier@7.24.7': + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.24.7': + resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.24.6': - resolution: {integrity: sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ==} + '@babel/helper-wrap-function@7.24.7': + resolution: {integrity: sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.6': - resolution: {integrity: sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==} + '@babel/helpers@7.24.7': + resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} engines: {node: '>=6.9.0'} '@babel/highlight@7.24.2': @@ -409,8 +413,12 @@ packages: resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==} engines: {node: '>=6.9.0'} - '@babel/node@7.24.6': - resolution: {integrity: sha512-63bD/Kbh1Vl6HapTZLSsyaGlQhhpF1/GpyS1oJotroJKoamOgKKEEKk3iHZAkicjcr+n4V4zdB0V+8siv6AZ5Q==} + '@babel/highlight@7.24.7': + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + engines: {node: '>=6.9.0'} + + '@babel/node@7.24.7': + resolution: {integrity: sha512-BCYNLxUQjGTgy8bAq12jy+Lt8soGWa/5u3s7U3aTVXxviIp0YVS+/Wm0b4eaitLVvetYrEoAiRF0QOk4WKsHAQ==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: @@ -421,36 +429,36 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.24.5': - resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} + '@babel/parser@7.24.6': + resolution: {integrity: sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.24.6': - resolution: {integrity: sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==} + '@babel/parser@7.24.7': + resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.6': - resolution: {integrity: sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw==} + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7': + resolution: {integrity: sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.6': - resolution: {integrity: sha512-iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q==} + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7': + resolution: {integrity: sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.6': - resolution: {integrity: sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ==} + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7': + resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.6': - resolution: {integrity: sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7': + resolution: {integrity: sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -487,26 +495,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-flow@7.24.6': - resolution: {integrity: sha512-gNkksSdV8RbsCoHF9sjVYrHfYACMl/8U32UfUhJ9+84/ASXw8dlx+eHyyF0m6ncQJ9IBSxfuCkB36GJqYdXTOA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-assertions@7.24.1': - resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} + '@babel/plugin-syntax-flow@7.24.7': + resolution: {integrity: sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.24.6': - resolution: {integrity: sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg==} + '@babel/plugin-syntax-import-assertions@7.24.7': + resolution: {integrity: sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.24.6': - resolution: {integrity: sha512-D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ==} + '@babel/plugin-syntax-import-attributes@7.24.7': + resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -575,230 +577,230 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-arrow-functions@7.24.6': - resolution: {integrity: sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ==} + '@babel/plugin-transform-arrow-functions@7.24.7': + resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.24.6': - resolution: {integrity: sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA==} + '@babel/plugin-transform-async-generator-functions@7.24.7': + resolution: {integrity: sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-to-generator@7.24.6': - resolution: {integrity: sha512-NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g==} + '@babel/plugin-transform-async-to-generator@7.24.7': + resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoped-functions@7.24.6': - resolution: {integrity: sha512-XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw==} + '@babel/plugin-transform-block-scoped-functions@7.24.7': + resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.24.6': - resolution: {integrity: sha512-S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w==} + '@babel/plugin-transform-block-scoping@7.24.7': + resolution: {integrity: sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.24.6': - resolution: {integrity: sha512-j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A==} + '@babel/plugin-transform-class-properties@7.24.7': + resolution: {integrity: sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-static-block@7.24.6': - resolution: {integrity: sha512-1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA==} + '@babel/plugin-transform-class-static-block@7.24.7': + resolution: {integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 - '@babel/plugin-transform-classes@7.24.6': - resolution: {integrity: sha512-+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg==} + '@babel/plugin-transform-classes@7.24.7': + resolution: {integrity: sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-computed-properties@7.24.6': - resolution: {integrity: sha512-cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg==} + '@babel/plugin-transform-computed-properties@7.24.7': + resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.24.6': - resolution: {integrity: sha512-YLW6AE5LQpk5npNXL7i/O+U9CE4XsBCuRPgyjl1EICZYKmcitV+ayuuUGMJm2lC1WWjXYszeTnIxF/dq/GhIZQ==} + '@babel/plugin-transform-destructuring@7.24.7': + resolution: {integrity: sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dotall-regex@7.24.6': - resolution: {integrity: sha512-rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA==} + '@babel/plugin-transform-dotall-regex@7.24.7': + resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-keys@7.24.6': - resolution: {integrity: sha512-/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA==} + '@babel/plugin-transform-duplicate-keys@7.24.7': + resolution: {integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dynamic-import@7.24.6': - resolution: {integrity: sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w==} + '@babel/plugin-transform-dynamic-import@7.24.7': + resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-exponentiation-operator@7.24.6': - resolution: {integrity: sha512-EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA==} + '@babel/plugin-transform-exponentiation-operator@7.24.7': + resolution: {integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-export-namespace-from@7.24.6': - resolution: {integrity: sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA==} + '@babel/plugin-transform-export-namespace-from@7.24.7': + resolution: {integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-flow-strip-types@7.24.6': - resolution: {integrity: sha512-1l8b24NoCpaQ13Vi6FtLG1nv6kNoi8PWvQb1AYO7GHZDpFfBYc3lbXArx1lP2KRt8b4pej1eWc/zrRmsQTfOdQ==} + '@babel/plugin-transform-flow-strip-types@7.24.7': + resolution: {integrity: sha512-cjRKJ7FobOH2eakx7Ja+KpJRj8+y+/SiB3ooYm/n2UJfxu0oEaOoxOinitkJcPqv9KxS0kxTGPUaR7L2XcXDXA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-for-of@7.24.6': - resolution: {integrity: sha512-n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg==} + '@babel/plugin-transform-for-of@7.24.7': + resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-function-name@7.24.6': - resolution: {integrity: sha512-sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q==} + '@babel/plugin-transform-function-name@7.24.7': + resolution: {integrity: sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-json-strings@7.24.6': - resolution: {integrity: sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w==} + '@babel/plugin-transform-json-strings@7.24.7': + resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-literals@7.24.6': - resolution: {integrity: sha512-f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw==} + '@babel/plugin-transform-literals@7.24.7': + resolution: {integrity: sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-logical-assignment-operators@7.24.6': - resolution: {integrity: sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA==} + '@babel/plugin-transform-logical-assignment-operators@7.24.7': + resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-member-expression-literals@7.24.6': - resolution: {integrity: sha512-9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ==} + '@babel/plugin-transform-member-expression-literals@7.24.7': + resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-amd@7.24.6': - resolution: {integrity: sha512-eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ==} + '@babel/plugin-transform-modules-amd@7.24.7': + resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.24.6': - resolution: {integrity: sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw==} + '@babel/plugin-transform-modules-commonjs@7.24.7': + resolution: {integrity: sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.24.6': - resolution: {integrity: sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w==} + '@babel/plugin-transform-modules-systemjs@7.24.7': + resolution: {integrity: sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-umd@7.24.6': - resolution: {integrity: sha512-esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg==} + '@babel/plugin-transform-modules-umd@7.24.7': + resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-named-capturing-groups-regex@7.24.6': - resolution: {integrity: sha512-6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q==} + '@babel/plugin-transform-named-capturing-groups-regex@7.24.7': + resolution: {integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-new-target@7.24.6': - resolution: {integrity: sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA==} + '@babel/plugin-transform-new-target@7.24.7': + resolution: {integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.6': - resolution: {integrity: sha512-+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A==} + '@babel/plugin-transform-nullish-coalescing-operator@7.24.7': + resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-numeric-separator@7.24.6': - resolution: {integrity: sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q==} + '@babel/plugin-transform-numeric-separator@7.24.7': + resolution: {integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-rest-spread@7.24.6': - resolution: {integrity: sha512-OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg==} + '@babel/plugin-transform-object-rest-spread@7.24.7': + resolution: {integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-super@7.24.6': - resolution: {integrity: sha512-N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg==} + '@babel/plugin-transform-object-super@7.24.7': + resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-catch-binding@7.24.6': - resolution: {integrity: sha512-L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w==} + '@babel/plugin-transform-optional-catch-binding@7.24.7': + resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.24.6': - resolution: {integrity: sha512-cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ==} + '@babel/plugin-transform-optional-chaining@7.24.7': + resolution: {integrity: sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-parameters@7.24.6': - resolution: {integrity: sha512-ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA==} + '@babel/plugin-transform-parameters@7.24.7': + resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.24.6': - resolution: {integrity: sha512-T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw==} + '@babel/plugin-transform-private-methods@7.24.7': + resolution: {integrity: sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-property-in-object@7.24.6': - resolution: {integrity: sha512-Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ==} + '@babel/plugin-transform-private-property-in-object@7.24.7': + resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-property-literals@7.24.6': - resolution: {integrity: sha512-oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw==} + '@babel/plugin-transform-property-literals@7.24.7': + resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -809,74 +811,74 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.24.6': - resolution: {integrity: sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==} + '@babel/plugin-transform-regenerator@7.24.7': + resolution: {integrity: sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-reserved-words@7.24.6': - resolution: {integrity: sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A==} + '@babel/plugin-transform-reserved-words@7.24.7': + resolution: {integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-shorthand-properties@7.24.6': - resolution: {integrity: sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw==} + '@babel/plugin-transform-shorthand-properties@7.24.7': + resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-spread@7.24.6': - resolution: {integrity: sha512-h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA==} + '@babel/plugin-transform-spread@7.24.7': + resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-sticky-regex@7.24.6': - resolution: {integrity: sha512-fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw==} + '@babel/plugin-transform-sticky-regex@7.24.7': + resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-template-literals@7.24.6': - resolution: {integrity: sha512-BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg==} + '@babel/plugin-transform-template-literals@7.24.7': + resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typeof-symbol@7.24.6': - resolution: {integrity: sha512-IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig==} + '@babel/plugin-transform-typeof-symbol@7.24.7': + resolution: {integrity: sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-escapes@7.24.6': - resolution: {integrity: sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw==} + '@babel/plugin-transform-unicode-escapes@7.24.7': + resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-property-regex@7.24.6': - resolution: {integrity: sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA==} + '@babel/plugin-transform-unicode-property-regex@7.24.7': + resolution: {integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-regex@7.24.6': - resolution: {integrity: sha512-pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA==} + '@babel/plugin-transform-unicode-regex@7.24.7': + resolution: {integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-sets-regex@7.24.6': - resolution: {integrity: sha512-quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw==} + '@babel/plugin-transform-unicode-sets-regex@7.24.7': + resolution: {integrity: sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.24.6': - resolution: {integrity: sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg==} + '@babel/preset-env@7.24.7': + resolution: {integrity: sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -907,22 +909,26 @@ packages: resolution: {integrity: sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.24.5': - resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==} + '@babel/template@7.24.7': + resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} engines: {node: '>=6.9.0'} '@babel/traverse@7.24.6': resolution: {integrity: sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==} engines: {node: '>=6.9.0'} - '@babel/types@7.24.5': - resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} + '@babel/traverse@7.24.7': + resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} engines: {node: '>=6.9.0'} '@babel/types@7.24.6': resolution: {integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==} engines: {node: '>=6.9.0'} + '@babel/types@7.24.7': + resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} + engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -961,14 +967,14 @@ 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==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@2.1.4': resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/eslintrc@3.0.2': - resolution: {integrity: sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.1.0': resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -977,8 +983,12 @@ packages: resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@9.3.0': - resolution: {integrity: sha512-niBqk8iwv96+yuTwjM6bWg8ovzAPF9qkICsGtcoa5/dmqcEMfdwNAX7+/OHcJHc7wj7XqPxH98oAHytFYlw6Sw==} + '@eslint/js@9.5.0': + resolution: {integrity: sha512-A7+AOT2ICkodvtsWnxZP4Xxk3NbZ3VMHd8oihydLRGrJgqqdEz1qSeEgXYyT/Cu8h1TWWsQRejIx48mtjZ5y1w==} + 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} '@graphql-eslint/eslint-plugin@3.20.1': @@ -1085,10 +1095,6 @@ packages: resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} engines: {node: '>=10.10.0'} - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} @@ -1127,14 +1133,11 @@ packages: '@jridgewell/sourcemap-codec@1.4.15': resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - '@jridgewell/trace-mapping@0.3.20': - resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} - '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@next/eslint-plugin-next@14.2.3': - resolution: {integrity: sha512-L3oDricIIjgj1AVnRdRor21gI7mShlSwU/1ZGHmqM3LzHhXXhdkrfeNY5zif25Bi5Dd7fiJHsbhoZCHfXYvlAw==} + '@next/eslint-plugin-next@14.2.4': + resolution: {integrity: sha512-svSFxW9f3xDaZA3idQmlFw7SusOuWTpDTAeBlO3AEPDltrraV+lqs7mAc6A27YdnpQVVIA3sODqUAAHdWhVWsA==} '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==} @@ -1256,8 +1259,8 @@ packages: '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} - '@semantic-release/commit-analyzer@12.0.0': - resolution: {integrity: sha512-qG+md5gdes+xa8zP7lIo1fWE17zRdO8yMCaxh9lyL65TQleoSv8WHHOqRURfghTytUh+NpkSyBprQ5hrkxOKVQ==} + '@semantic-release/commit-analyzer@13.0.0': + resolution: {integrity: sha512-KtXWczvTAB1ZFZ6B4O+w8HkfYm/OgQb1dUGNFZtDgQ0csggrmkq8sTxhd+lwGF8kMb59/RnG9o4Tn7M/I8dQ9Q==} engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=20.1.0' @@ -1266,8 +1269,8 @@ packages: resolution: {integrity: sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==} engines: {node: '>=18'} - '@semantic-release/github@10.0.5': - resolution: {integrity: sha512-hmuCDkfru/Uc9+ZBNOSremAupu6BCslvOVDiG0wYcL8TQodCycp6uvwDyeym1H0M4l3ob9c0s0xMBiZjjXQ2yA==} + '@semantic-release/github@10.0.6': + resolution: {integrity: sha512-sS4psqZacGTFEN49UQGqwFNG6Jyx2/RX1BhhDGn/2WoPbhAHislohOY05/5r+JoL4gJMWycfH7tEm1eGVutYeg==} engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=20.1.0' @@ -1278,8 +1281,8 @@ packages: peerDependencies: semantic-release: '>=20.1.0' - '@semantic-release/release-notes-generator@13.0.0': - resolution: {integrity: sha512-LEeZWb340keMYuREMyxrODPXJJ0JOL8D/mCl74B4LdzbxhtXV2LrPN2QBEcGJrlQhoqLO0RhxQb6masHytKw+A==} + '@semantic-release/release-notes-generator@14.0.1': + resolution: {integrity: sha512-K0w+5220TM4HZTthE5dDpIuFrnkN1NfTGPidJFm04ULT1DEZ9WG89VNXN7F0c+6nMEpWgqmPvb7vY7JkB2jyyA==} engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=20.1.0' @@ -1326,14 +1329,14 @@ packages: '@types/lodash@4.14.202': resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==} - '@types/mocha@10.0.6': - resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} + '@types/mocha@10.0.7': + resolution: {integrity: sha512-GN8yJ1mNTcFcah/wKEFIJckJx9iJLoMSzWcfRRuxz/Jk+U6KQNnml+etbtxFK8lPjzOw3zp4Ha/kjSst9fsHYw==} '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/node@20.12.12': - resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==} + '@types/node@20.14.9': + resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1347,8 +1350,8 @@ packages: '@types/ws@8.5.10': resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} - '@typescript-eslint/eslint-plugin@7.11.0': - resolution: {integrity: sha512-P+qEahbgeHW4JQ/87FuItjBj8O3MYv5gELDzr8QaQ7fsll1gSMTYb6j87MYyxwf3DtD7uGFB9ShwgmCJB5KmaQ==} + '@typescript-eslint/eslint-plugin@7.14.1': + resolution: {integrity: sha512-aAJd6bIf2vvQRjUG3ZkNXkmBpN+J7Wd0mfQiiVCJMu9Z5GcZZdcc0j8XwN/BM97Fl7e3SkTXODSk4VehUv7CGw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -1385,8 +1388,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@7.11.0': - resolution: {integrity: sha512-yimw99teuaXVWsBcPO1Ais02kwJ1jmNA1KxE7ng0aT7ndr1pT1wqj0OJnsYVGKKlc4QJai86l/025L6z8CljOg==} + '@typescript-eslint/parser@7.14.1': + resolution: {integrity: sha512-8lKUOebNLcR0D7RvlcloOacTOWzOqemWEWkKSVpMZVF/XVcwjPR+3MD08QzbW9TCGJ+DwIc6zUSGZ9vd8cO1IA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1417,10 +1420,6 @@ packages: resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/scope-manager@7.11.0': - resolution: {integrity: sha512-27tGdVEiutD4POirLZX4YzT180vevUURJl4wJGmm6TrQoiYwuxTIY98PBp6L2oN+JQxzE0URvYlzJaBHIekXAw==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@7.14.1': resolution: {integrity: sha512-gPrFSsoYcsffYXTOZ+hT7fyJr95rdVe4kGVX1ps/dJ+DfmlnjFN/GcMxXcVkeHDKqsq6uAcVaQaIi3cFffmAbA==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1429,8 +1428,8 @@ packages: resolution: {integrity: sha512-IpeT8JnV1Uo5lG/GTYe/SRJRcz1rBaCNma5cS5R8c4NkBIiIeE+R9Vy8ZEPkGImTfBp9BUNU6w+8lSQf0Z6tKw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@7.11.0': - resolution: {integrity: sha512-WmppUEgYy+y1NTseNMJ6mCFxt03/7jTOy08bcg7bxJJdsM4nuhnchyBbE8vryveaJUf62noH7LodPSo5Z0WUCg==} + '@typescript-eslint/type-utils@7.14.1': + resolution: {integrity: sha512-/MzmgNd3nnbDbOi3LfasXWWe292+iuo+umJ0bCCMCPc1jLO/z2BQmWUUUXvXLbrQey/JgzdF/OV+I5bzEGwJkQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1460,10 +1459,6 @@ packages: resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/types@7.11.0': - resolution: {integrity: sha512-MPEsDRZTyCiXkD4vd3zywDCifi7tatc4K37KqTprCvaXptP7Xlpdw0NR2hRJTetG5TxbWDB79Ys4kLmHliEo/w==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@7.14.1': resolution: {integrity: sha512-mL7zNEOQybo5R3AavY+Am7KLv8BorIv7HCYS5rKoNZKQD9tsfGUpO4KdAn3sSUvTiS4PQkr2+K0KJbxj8H9NDg==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1499,15 +1494,6 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@7.11.0': - resolution: {integrity: sha512-cxkhZ2C/iyi3/6U9EPc5y+a6csqHItndvN/CzbNXTNrsC3/ASoYQZEt9uMaEp+xFNjasqQyszp5TumAVKKvJeQ==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/typescript-estree@7.14.1': resolution: {integrity: sha512-k5d0VuxViE2ulIO6FbxxSZaxqDVUyMbXcidC8rHvii0I56XZPv8cq+EhMns+d/EVIL41sMXqRbK3D10Oza1bbA==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1538,12 +1524,6 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 - '@typescript-eslint/utils@7.11.0': - resolution: {integrity: sha512-xlAWwPleNRHwF37AhrZurOxA1wyXowW4PqVXZVUNCLjB48CqdPJoJWkrpH2nij9Q3Lb7rtWindtoXwxjxlKKCA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - '@typescript-eslint/utils@7.14.1': resolution: {integrity: sha512-CMmVVELns3nak3cpJhZosDkm63n+DwBlDX8g0k4QUa9BMnF+lH2lr3d130M1Zt1xxmB3LLk3NV7KQCq86ZBBhQ==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1568,10 +1548,6 @@ packages: resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/visitor-keys@7.11.0': - resolution: {integrity: sha512-7syYk4MzjxTEk0g/w3iqtgxnFQspDJfn6QKD36xMuuhTzjcxY7F8EmBLnALjVyaOF1/bVocu3bS/2/F7rXrveQ==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@7.14.1': resolution: {integrity: sha512-Crb+F75U1JAEtBeQGxSKwI60hZmmzaqA3z9sYsVm8X7W5cwLEm5bRe0/uXS6+MR/y8CVpKSR/ontIAIEPFcEkA==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1592,10 +1568,6 @@ packages: '@whatwg-node/node-fetch@0.3.6': resolution: {integrity: sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA==} - JSONStream@1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} - hasBin: true - abbrev@2.0.0: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -1618,6 +1590,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.12.0: + resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} + engines: {node: '>=0.4.0'} + hasBin: true + agent-base@7.1.0: resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} engines: {node: '>= 14'} @@ -1681,8 +1658,8 @@ packages: argv-formatter@1.0.0: resolution: {integrity: sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==} - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} arr-diff@4.0.0: resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} @@ -1696,9 +1673,6 @@ packages: resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} engines: {node: '>=0.10.0'} - array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} - array-buffer-byte-length@1.0.1: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} @@ -1706,10 +1680,6 @@ packages: array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} - engines: {node: '>= 0.4'} - array-includes@3.1.8: resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} @@ -1741,11 +1711,8 @@ packages: array.prototype.toreversed@1.1.2: resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} - array.prototype.tosorted@1.1.3: - resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} - - arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} engines: {node: '>= 0.4'} arraybuffer.prototype.slice@1.0.3: @@ -1784,9 +1751,6 @@ packages: resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} - asynciterator.prototype@1.0.0: - resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} - asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -1795,10 +1759,6 @@ packages: engines: {node: '>= 4.5.0'} hasBin: true - available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} - engines: {node: '>= 0.4'} - available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -1809,12 +1769,12 @@ packages: aws4@1.12.0: resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} - axe-core@4.7.0: - resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} + axe-core@4.9.1: + resolution: {integrity: sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==} engines: {node: '>=4'} - axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + axobject-query@3.1.1: + resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} babel-plugin-add-module-exports@1.0.4: resolution: {integrity: sha512-g+8yxHUZ60RcyaUpfNzy56OtWW+x9cyEe9j+CranqLiqbju2yf/Cy6ZtYK40EZxtrdHllzlVZgLmcOUCTlJ7Jg==} @@ -1882,10 +1842,6 @@ packages: resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} engines: {node: '>=0.10.0'} - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -1913,10 +1869,15 @@ packages: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} - c8@9.1.0: - resolution: {integrity: sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==} - engines: {node: '>=14.14.0'} + c8@10.1.2: + resolution: {integrity: sha512-Qr6rj76eSshu5CgRYvktW0uM0CFY0yi4Fd5D0duDXO6sYinyopmftUiJVuzBQxQcwQLor7JWDVRP+dUfCmzgJw==} + engines: {node: '>=18'} hasBin: true + peerDependencies: + monocart-coverage-reports: ^2 + peerDependenciesMeta: + monocart-coverage-reports: + optional: true cacache@18.0.1: resolution: {integrity: sha512-g4Uf2CFZPaxtJKre6qr4zqLDOOPU7bNVhWjlNhvzc51xaTOx2noMOLhfFkTAqwtrAZAKQUuDfyjitzilpA8WsQ==} @@ -1926,9 +1887,6 @@ packages: resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} engines: {node: '>=0.10.0'} - call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} - call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} @@ -2105,22 +2063,22 @@ packages: contents@5.0.0: resolution: {integrity: sha512-wnnGorqo07ZSIzMQmUc4vUv1NEXl7elBtqoz5UcysV+pbSvphZYfI763rXgpFK2H9o5rvjQQ8kZxp7hOOwIe3A==} - conventional-changelog-angular@7.0.0: - resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} - engines: {node: '>=16'} + conventional-changelog-angular@8.0.0: + resolution: {integrity: sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==} + engines: {node: '>=18'} - conventional-changelog-writer@7.0.1: - resolution: {integrity: sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==} - engines: {node: '>=16'} + conventional-changelog-writer@8.0.0: + resolution: {integrity: sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==} + engines: {node: '>=18'} hasBin: true - conventional-commits-filter@4.0.0: - resolution: {integrity: sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==} - engines: {node: '>=16'} + conventional-commits-filter@5.0.0: + resolution: {integrity: sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==} + engines: {node: '>=18'} - conventional-commits-parser@5.0.0: - resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} - engines: {node: '>=16'} + conventional-commits-parser@6.0.0: + resolution: {integrity: sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==} + engines: {node: '>=18'} hasBin: true convert-hrtime@5.0.0: @@ -2134,9 +2092,6 @@ packages: resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} engines: {node: '>=0.10.0'} - core-js-compat@3.36.1: - resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} - core-js-compat@3.37.1: resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} @@ -2247,6 +2202,15 @@ packages: supports-color: optional: true + debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} @@ -2267,6 +2231,10 @@ packages: resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} engines: {node: '>=6'} + deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} + deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -2274,10 +2242,6 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} - engines: {node: '>= 0.4'} - define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -2302,10 +2266,6 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - diff@5.0.0: resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} engines: {node: '>=0.3.1'} @@ -2383,6 +2343,10 @@ packages: resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} engines: {node: '>=10.13.0'} + enhanced-resolve@5.17.0: + resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} + engines: {node: '>=10.13.0'} + entities@1.1.2: resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} @@ -2407,10 +2371,6 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-abstract@1.22.3: - resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} - engines: {node: '>= 0.4'} - es-abstract@1.23.3: resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} @@ -2426,8 +2386,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-iterator-helpers@1.0.15: - resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} es-iterator-helpers@1.0.19: resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} @@ -2440,10 +2400,6 @@ packages: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} - es-set-tostringtag@2.0.2: - resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} - engines: {node: '>= 0.4'} - es-set-tostringtag@2.0.3: resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} engines: {node: '>= 0.4'} @@ -2492,8 +2448,8 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-config-canonical@43.0.12: - resolution: {integrity: sha512-eqAuO2lVt88soxIlMU4jGXS0eT/W6rquCtjSWaMWn5KlPENChcUbx8DZ02Q7oOAOGtX0sKbR8sxdVna7DZeTjg==} + eslint-config-canonical@43.0.13: + resolution: {integrity: sha512-Thsn0ehPsRSiqogX5SZmIUqsc4etDTHJCtnvDVjPzzbg3cJZLj8DjoZ5vIYGU/wx8lKP0lE4LKTlVTeJbU7sHQ==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 @@ -2541,9 +2497,9 @@ packages: peerDependencies: eslint: '>=9' - eslint-plugin-canonical@4.18.0: - resolution: {integrity: sha512-0Egc0FKOnCRdu3bFEJhfHkdkusIgW0UxdemukkowZQnQsnf12FHSJ7K26b+tZ5pKB7cTyECSaqvEpoIJfplX4g==} - engines: {node: '>=16.0.0'} + eslint-plugin-canonical@4.18.1: + resolution: {integrity: sha512-kSCe4N2tJKjQqhKTQKtbq/2H4XPyhB3XNieMeSjB85x62AjjDFnfNWtGzZ+0S8pnVBqAS08gdGSoYBcFljoHcw==} + engines: {node: '>=18.0.0'} eslint-plugin-cypress@3.3.0: resolution: {integrity: sha512-HPHMPzYBIshzJM8wqgKSKHG2p/8R0Gbg4Pb3tcdC9WrmkuqxiKxSKbjunUrajhV5l7gCIFrh1P7C7GuBqH6YuQ==} @@ -2582,8 +2538,8 @@ packages: peerDependencies: eslint: ^7.2.0 || ^8 - eslint-plugin-jest@28.5.0: - resolution: {integrity: sha512-6np6DGdmNq/eBbA7HOUNV8fkfL86PYwBfwyb8n23FXgJNTR8+ot3smRHjza9LGsBBZRypK3qyF79vMjohIL8eQ==} + eslint-plugin-jest@28.6.0: + resolution: {integrity: sha512-YG28E1/MIKwnz+e2H7VwYPzHUYU4aMa19w0yGcwXnnmJH6EfgHahTJ2un3IyraUxNfnz/KUhJAFXNNwWPo12tg==} engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.0.0 || ^7.0.0 @@ -2595,8 +2551,8 @@ packages: jest: optional: true - eslint-plugin-jsdoc@48.2.6: - resolution: {integrity: sha512-GNk9jtpYmoEVeD/U6yYYmd6T8vSOoPs7CL8ZeX85iD8P3qifDdLQGze6+cw9boobDthmYnnxvIoHrhuSffj09g==} + eslint-plugin-jsdoc@48.5.0: + resolution: {integrity: sha512-ukXPNpGby3KjCveCizIS8t1EbuJEHYEu/tBg8GCbn/YbHcXwphyvYCdvRZ/oMRfTscGSSzfsWoZ+ZkAP0/6YMQ==} engines: {node: '>=18'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 @@ -2607,8 +2563,8 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-plugin-jsx-a11y@6.8.0: - resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} + eslint-plugin-jsx-a11y@6.9.0: + resolution: {integrity: sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==} engines: {node: '>=4.0'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 @@ -2629,8 +2585,8 @@ packages: resolution: {integrity: sha512-69NpBr68U6pmXL+y+KHl/64PwRarceC3/sCNUVxRbe0gPI32SIw8AtdpkqNiJYCa2yMd4lRrkrnU09Yio7KVzA==} engines: {node: '>=0.10.0'} - eslint-plugin-n@17.7.0: - resolution: {integrity: sha512-4Jg4ZKVE4VjHig2caBqPHYNW5na84RVufUuipFLJbgM/G57O6FdpUKJbHakCDJb/yjQuyqVzYWRtU3HNYaZUwg==} + eslint-plugin-n@17.9.0: + resolution: {integrity: sha512-CPSaXDXdrT4nsrOrO4mT4VB6FMUkoySRkHWuuJJHVqsIEjIeZgMY1H7AzSwPbDScikBmLN82KeM1u7ixV7PzGg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' @@ -2649,11 +2605,11 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-promise@6.1.1: - resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} + eslint-plugin-promise@6.2.0: + resolution: {integrity: sha512-QmAqwizauvnKOlifxyDj2ObfULpHQawlg/zQdgEixur9vl0CvZGv/LCJV2rtj3210QCoeGBzVMfMXqGAOr/4fA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 eslint-plugin-react-hooks@4.6.2: resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} @@ -2661,8 +2617,8 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react@7.34.2: - resolution: {integrity: sha512-2HCmrU+/JNigDN6tg55cRDKCQWicYAPB38JGSFDQt95jDm8rrvSUo7YPkOIm5l6ts1j1zCvysNcasvfTMQzUOw==} + eslint-plugin-react@7.34.3: + resolution: {integrity: sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 @@ -2686,8 +2642,8 @@ packages: eslint: ^7 || ^8 typescript: ^3 || ^4 || ^5 - eslint-plugin-unicorn@53.0.0: - resolution: {integrity: sha512-kuTcNo9IwwUCfyHGwQFOK/HjJAYzbODHN3wP0PgqbW+jbXqpNWxNVpVhj2tO9SixBwuAdmal8rVcWKBxwFnGuw==} + eslint-plugin-unicorn@54.0.0: + resolution: {integrity: sha512-XxYLRiYtAWiAjPv6z4JREby1TAE2byBC7wlh0V4vWDCpccOSU1KovWV//jqPXF6bq3WKxqX9rdjoRQ1EhdmNdQ==} engines: {node: '>=18.18'} peerDependencies: eslint: '>=8.56.0' @@ -2756,13 +2712,13 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true - eslint@9.3.0: - resolution: {integrity: sha512-5Iv4CsZW030lpUqHBapdPo3MJetAPtejVW8B84GIcIIv8+ohFaddXsrn1Gn8uD9ijDb+kcYKFUVmC8qG8B2ORQ==} + eslint@9.5.0: + resolution: {integrity: sha512-+NAOZFrW/jFTS3dASCGBxX1pkFD0/fsO+hfAkJ4TyYKwgsXZbqzrw+seCYFCcPCYXvnD67tAnglU7GQTz6kcVw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true - espree@10.0.1: - resolution: {integrity: sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==} + espree@10.1.0: + resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} espree@9.6.1: @@ -2882,10 +2838,6 @@ packages: resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} engines: {node: '>=4'} - figures@6.0.1: - resolution: {integrity: sha512-0oY/olScYD4IhQ8u//gCPA4F3mlTn2dacYmiDm/mbDQvpmLjV4uH+zhsQ5IyXRyvqkvtUkXkNdGvg5OFJTCsuQ==} - engines: {node: '>=18'} - figures@6.1.0: resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} engines: {node: '>=18'} @@ -2906,10 +2858,6 @@ packages: resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} engines: {node: '>=0.10.0'} - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -3034,9 +2982,6 @@ packages: get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} - get-intrinsic@1.2.4: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} @@ -3069,10 +3014,6 @@ packages: resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} engines: {node: '>=18'} - get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} - get-symbol-description@1.0.2: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} @@ -3115,8 +3056,8 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true - glob@10.4.1: - resolution: {integrity: sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==} + glob@10.4.2: + resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} engines: {node: '>=16 || 14 >=14.18'} hasBin: true @@ -3141,8 +3082,8 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.3.0: - resolution: {integrity: sha512-cCdyVjIUVTtX8ZsPkq1oCsOsLmGIswqnjZYMJJTGaNApj1yHtLSymKhwH51ttirREn75z3p4k051clwg7rvNKA==} + globals@15.6.0: + resolution: {integrity: sha512-UzcJi88Hw//CurUIRa9Jxb0vgOCcuD/MNjwmXp633cyaRKkCWACkoqHCtfZv43b1kqXGg/fpOa8bwgacCeXsVg==} engines: {node: '>=18'} globalthis@1.0.3: @@ -3220,16 +3161,9 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} - has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} - has-proto@1.0.3: resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} @@ -3238,10 +3172,6 @@ packages: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} - has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} - has-tostringtag@1.0.2: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} @@ -3375,6 +3305,7 @@ packages: inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -3386,10 +3317,6 @@ packages: resolution: {integrity: sha512-gZHC7f/cJgXz7MXlHFBxPVMsvIbev1OQN1uKQYKVJDydGNm9oYf9JstbU4Atnh/eSvk41WtEovoRm+8IF686xg==} hasBin: true - internal-slot@1.0.6: - resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} - engines: {node: '>= 0.4'} - internal-slot@1.0.7: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} @@ -3413,9 +3340,6 @@ packages: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} - is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} - is-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} @@ -3532,10 +3456,6 @@ packages: resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} engines: {node: '>= 0.4'} - is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} - is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} @@ -3585,9 +3505,6 @@ packages: is-set@2.0.2: resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} - is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} - is-shared-array-buffer@1.0.3: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} @@ -3616,14 +3533,6 @@ packages: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} - is-text-path@2.0.0: - resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} - engines: {node: '>=8'} - - is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} - engines: {node: '>= 0.4'} - is-typed-array@1.1.13: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} @@ -3800,10 +3709,6 @@ packages: jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} - jsprim@1.4.2: resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} engines: {node: '>=0.6.0'} @@ -3853,8 +3758,8 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lint-staged@15.2.5: - resolution: {integrity: sha512-j+DfX7W9YUvdzEZl3Rk47FhDF6xwDBV5wwsCPw6BwWZVPYJemusQmvb9bRsW23Sqsaa+vRloAWogbK4BUuU2zA==} + lint-staged@15.2.7: + resolution: {integrity: sha512-+FdVbbCZ+yoh7E/RosSdqKJyUM2OEjTciH0TFNkawKgvFp1zbGlEC39RADg+xKBG1R4mhoH2j85myBQZ5wR+lw==} engines: {node: '>=18.12.0'} hasBin: true @@ -3986,9 +3891,9 @@ packages: engines: {node: '>= 10'} hasBin: true - meow@12.1.1: - resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} - engines: {node: '>=16.10'} + meow@13.2.0: + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} + engines: {node: '>=18'} merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -4013,10 +3918,6 @@ packages: resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} engines: {node: '>=0.10.0'} - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - micromatch@4.0.7: resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} @@ -4099,10 +4000,6 @@ packages: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} - minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} - minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} @@ -4120,8 +4017,8 @@ packages: engines: {node: '>=10'} hasBin: true - mocha@10.4.0: - resolution: {integrity: sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==} + mocha@10.5.2: + resolution: {integrity: sha512-9btlN3JKCefPf+vKd/kcKz2SXxi12z6JswkGfaAF0saQvnsqLJk504ZmbxhSoENge08E9dsymozKgFMTl5PQsA==} engines: {node: '>= 14.0.0'} hasBin: true @@ -4354,18 +4251,10 @@ packages: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} - object.entries@1.1.7: - resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} - engines: {node: '>= 0.4'} - object.entries@1.1.8: resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} engines: {node: '>= 0.4'} - object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} - engines: {node: '>= 0.4'} - object.fromentries@2.0.8: resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} @@ -4382,10 +4271,6 @@ packages: resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} engines: {node: '>=0.10.0'} - object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} - engines: {node: '>= 0.4'} - object.values@1.2.0: resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} @@ -4481,6 +4366,9 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -4552,10 +4440,6 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.10.2: - resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} - engines: {node: '>=16 || 14 >=14.17'} - path-scurry@1.11.1: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} @@ -4634,8 +4518,8 @@ packages: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} engines: {node: '>=6.0.0'} - prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + prettier@3.3.2: + resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} engines: {node: '>=14'} hasBin: true @@ -4717,11 +4601,6 @@ packages: resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==} engines: {node: '>=18'} - read-pkg-up@11.0.0: - resolution: {integrity: sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q==} - engines: {node: '>=18'} - deprecated: Renamed to read-package-up - read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} @@ -4782,10 +4661,6 @@ packages: resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} hasBin: true - regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} - engines: {node: '>= 0.4'} - regexp.prototype.flags@1.5.2: resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} @@ -4905,10 +4780,6 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} - engines: {node: '>=0.4'} - safe-array-concat@1.1.2: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} @@ -4919,9 +4790,6 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} - safe-regex-test@1.0.3: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} @@ -4940,8 +4808,8 @@ packages: resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} engines: {node: ^14.0.0 || >=16.0.0} - semantic-release@23.1.1: - resolution: {integrity: sha512-qqJDBhbtHsjUEMsojWKGuL5lQFCJuPtiXKEIlFKyTzDDGTAE/oyvznaP8GeOr5PvcqBJ6LQz4JCENWPLeehSpA==} + semantic-release@24.0.0: + resolution: {integrity: sha512-v46CRPw+9eI3ZuYGF2oAjqPqsfbnfFTwLBgQsv/lch4goD09ytwOTESMN4QIrx/wPLxUGey60/NMx+ANQtWRsA==} engines: {node: '>=20.8.1'} hasBin: true @@ -4975,18 +4843,10 @@ packages: set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - set-function-length@1.1.1: - resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} - engines: {node: '>= 0.4'} - set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} - set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} - engines: {node: '>= 0.4'} - set-function-name@2.0.2: resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} @@ -5015,9 +4875,6 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} - side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} @@ -5135,10 +4992,6 @@ packages: split2@1.0.0: resolution: {integrity: sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==} - split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} @@ -5158,6 +5011,10 @@ packages: resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} engines: {node: '>=0.10.0'} + stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + stream-combiner2@1.1.1: resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} @@ -5191,27 +5048,20 @@ packages: resolution: {integrity: sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==} engines: {node: '>=18'} + string.prototype.includes@2.0.0: + resolution: {integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==} + string.prototype.matchall@4.0.11: resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} engines: {node: '>= 0.4'} - string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} - engines: {node: '>= 0.4'} - string.prototype.trim@1.2.9: resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} - string.prototype.trimend@1.0.8: resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} - string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} - string.prototype.trimstart@1.0.8: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} @@ -5321,9 +5171,9 @@ packages: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} - text-extensions@2.4.0: - resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} - engines: {node: '>=8'} + test-exclude@7.0.1: + resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} + engines: {node: '>=18'} text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -5338,9 +5188,6 @@ packages: through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - time-span@5.1.0: resolution: {integrity: sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==} engines: {node: '>=12'} @@ -5463,33 +5310,18 @@ packages: resolution: {integrity: sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==} engines: {node: '>=16'} - typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} - engines: {node: '>= 0.4'} - typed-array-buffer@1.0.2: resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} - typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} - engines: {node: '>= 0.4'} - typed-array-byte-length@1.0.1: resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} engines: {node: '>= 0.4'} - typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} - engines: {node: '>= 0.4'} - typed-array-byte-offset@1.0.2: resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} engines: {node: '>= 0.4'} - typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} - typed-array-length@1.0.6: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} @@ -5665,10 +5497,6 @@ packages: which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - which-typed-array@1.1.13: - resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} - engines: {node: '>= 0.4'} - which-typed-array@1.1.15: resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} @@ -5767,14 +5595,10 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml-eslint-parser@1.2.2: - resolution: {integrity: sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==} + yaml-eslint-parser@1.2.3: + resolution: {integrity: sha512-4wZWvE398hCP7O8n3nXKu/vdq1HcH01ixYlCREaJL5NUMwQ0g3MaGFUBNSlmBtKmhbtVG/Cm6lyYmSVTEVil8A==} engines: {node: ^14.17.0 || >=16.0.0} - yaml@2.3.4: - resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} - engines: {node: '>= 14'} - yaml@2.4.2: resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} engines: {node: '>= 14'} @@ -5831,9 +5655,9 @@ snapshots: transitivePeerDependencies: - encoding - '@babel/cli@7.24.6(@babel/core@7.24.6)': + '@babel/cli@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 + '@babel/core': 7.24.7 '@jridgewell/trace-mapping': 0.3.25 commander: 6.2.1 convert-source-map: 2.0.0 @@ -5855,221 +5679,254 @@ snapshots: '@babel/highlight': 7.24.6 picocolors: 1.0.0 - '@babel/compat-data@7.24.6': {} + '@babel/code-frame@7.24.7': + dependencies: + '@babel/highlight': 7.24.7 + picocolors: 1.0.0 - '@babel/core@7.24.6': + '@babel/compat-data@7.24.7': {} + + '@babel/core@7.24.7': dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.24.6 - '@babel/generator': 7.24.6 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) - '@babel/helpers': 7.24.6 - '@babel/parser': 7.24.6 - '@babel/template': 7.24.6 - '@babel/traverse': 7.24.6 - '@babel/types': 7.24.6 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) + '@babel/helpers': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 convert-source-map: 2.0.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/eslint-parser@7.24.6(@babel/core@7.24.6)(eslint@8.56.0)': + '@babel/eslint-parser@7.24.7(@babel/core@7.24.7)(eslint@8.56.0)': dependencies: - '@babel/core': 7.24.6 + '@babel/core': 7.24.7 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 eslint: 8.56.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 - '@babel/eslint-parser@7.24.6(@babel/core@7.24.6)(eslint@9.3.0)': + '@babel/eslint-parser@7.24.7(@babel/core@7.24.7)(eslint@9.5.0)': dependencies: - '@babel/core': 7.24.6 + '@babel/core': 7.24.7 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 9.3.0 + eslint: 9.5.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 - '@babel/eslint-plugin@7.24.6(@babel/eslint-parser@7.24.6(@babel/core@7.24.6)(eslint@9.3.0))(eslint@9.3.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)': dependencies: - '@babel/eslint-parser': 7.24.6(@babel/core@7.24.6)(eslint@9.3.0) - eslint: 9.3.0 + '@babel/eslint-parser': 7.24.7(@babel/core@7.24.7)(eslint@9.5.0) + eslint: 9.5.0 eslint-rule-composer: 0.3.0 - '@babel/generator@7.24.5': + '@babel/generator@7.24.6': dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - '@babel/generator@7.24.6': + '@babel/generator@7.24.7': dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.7 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - '@babel/helper-annotate-as-pure@7.22.5': - dependencies: - '@babel/types': 7.24.5 - '@babel/helper-annotate-as-pure@7.24.6': dependencies: '@babel/types': 7.24.6 - '@babel/helper-builder-binary-assignment-operator-visitor@7.24.6': + '@babel/helper-annotate-as-pure@7.24.7': dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.7 + + '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': + dependencies: + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/helper-compilation-targets@7.24.6': + '@babel/helper-compilation-targets@7.24.7': dependencies: - '@babel/compat-data': 7.24.6 - '@babel/helper-validator-option': 7.24.6 + '@babel/compat-data': 7.24.7 + '@babel/helper-validator-option': 7.24.7 browserslist: 4.23.0 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.24.6(@babel/core@7.24.6)': - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-function-name': 7.24.6 - '@babel/helper-member-expression-to-functions': 7.24.6 - '@babel/helper-optimise-call-expression': 7.24.6 - '@babel/helper-replace-supers': 7.24.6(@babel/core@7.24.6) - '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 - '@babel/helper-split-export-declaration': 7.24.6 + '@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.7 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 semver: 6.3.1 + transitivePeerDependencies: + - supports-color - '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.6)': + '@babel/helper-create-regexp-features-plugin@7.24.6(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.6 regexpu-core: 5.3.2 semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.24.6(@babel/core@7.24.6)': + '@babel/helper-create-regexp-features-plugin@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-annotate-as-pure': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 regexpu-core: 5.3.2 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.6)': + '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - debug: 4.3.4(supports-color@8.1.1) + '@babel/core': 7.24.7 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + debug: 4.3.5 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: - supports-color - '@babel/helper-environment-visitor@7.22.20': {} - '@babel/helper-environment-visitor@7.24.6': {} - '@babel/helper-function-name@7.23.0': + '@babel/helper-environment-visitor@7.24.7': dependencies: - '@babel/template': 7.24.6 - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 '@babel/helper-function-name@7.24.6': dependencies: '@babel/template': 7.24.6 '@babel/types': 7.24.6 - '@babel/helper-hoist-variables@7.22.5': + '@babel/helper-function-name@7.24.7': dependencies: - '@babel/types': 7.24.5 + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 '@babel/helper-hoist-variables@7.24.6': dependencies: '@babel/types': 7.24.6 - '@babel/helper-member-expression-to-functions@7.24.6': + '@babel/helper-hoist-variables@7.24.7': dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.7 - '@babel/helper-module-imports@7.24.6': + '@babel/helper-member-expression-to-functions@7.24.7': dependencies: - '@babel/types': 7.24.6 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/helper-module-transforms@7.24.6(@babel/core@7.24.6)': + '@babel/helper-module-imports@7.24.7': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-module-imports': 7.24.6 - '@babel/helper-simple-access': 7.24.6 - '@babel/helper-split-export-declaration': 7.24.6 - '@babel/helper-validator-identifier': 7.24.6 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/helper-optimise-call-expression@7.24.6': + '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/types': 7.24.6 - - '@babel/helper-plugin-utils@7.22.5': {} + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/helper-plugin-utils@7.24.5': {} + '@babel/helper-optimise-call-expression@7.24.7': + dependencies: + '@babel/types': 7.24.7 - '@babel/helper-plugin-utils@7.24.6': {} + '@babel/helper-plugin-utils@7.22.5': {} - '@babel/helper-remap-async-to-generator@7.24.6(@babel/core@7.24.6)': - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-wrap-function': 7.24.6 + '@babel/helper-plugin-utils@7.24.7': {} - '@babel/helper-replace-supers@7.24.6(@babel/core@7.24.6)': + '@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-member-expression-to-functions': 7.24.6 - '@babel/helper-optimise-call-expression': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-wrap-function': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/helper-simple-access@7.24.6': + '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/types': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.7 + '@babel/helper-optimise-call-expression': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.24.6': + '@babel/helper-simple-access@7.24.7': dependencies: - '@babel/types': 7.24.6 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/helper-split-export-declaration@7.24.5': + '@babel/helper-skip-transparent-expression-wrappers@7.24.7': dependencies: - '@babel/types': 7.24.5 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/helper-split-export-declaration@7.24.6': dependencies: '@babel/types': 7.24.6 - '@babel/helper-string-parser@7.24.1': {} + '@babel/helper-split-export-declaration@7.24.7': + dependencies: + '@babel/types': 7.24.7 '@babel/helper-string-parser@7.24.6': {} + '@babel/helper-string-parser@7.24.7': {} + '@babel/helper-validator-identifier@7.24.5': {} '@babel/helper-validator-identifier@7.24.6': {} - '@babel/helper-validator-option@7.24.6': {} + '@babel/helper-validator-identifier@7.24.7': {} + + '@babel/helper-validator-option@7.24.7': {} - '@babel/helper-wrap-function@7.24.6': + '@babel/helper-wrap-function@7.24.7': dependencies: - '@babel/helper-function-name': 7.24.6 - '@babel/template': 7.24.6 - '@babel/types': 7.24.6 + '@babel/helper-function-name': 7.24.7 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/helpers@7.24.6': + '@babel/helpers@7.24.7': dependencies: - '@babel/template': 7.24.6 - '@babel/types': 7.24.6 + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 '@babel/highlight@7.24.2': dependencies: @@ -6085,10 +5942,17 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.0.0 - '@babel/node@7.24.6(@babel/core@7.24.6)': + '@babel/highlight@7.24.7': + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.0 + + '@babel/node@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/register': 7.24.6(@babel/core@7.24.6) + '@babel/core': 7.24.7 + '@babel/register': 7.24.6(@babel/core@7.24.7) commander: 6.2.1 core-js: 3.34.0 node-environment-flags: 1.0.6 @@ -6097,553 +5961,584 @@ snapshots: '@babel/parser@7.23.6': dependencies: - '@babel/types': 7.24.5 - - '@babel/parser@7.24.5': - dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 '@babel/parser@7.24.6': dependencies: '@babel/types': 7.24.6 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.6(@babel/core@7.24.6)': + '@babel/parser@7.24.7': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/types': 7.24.7 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 - '@babel/plugin-transform-optional-chaining': 7.24.6(@babel/core@7.24.6) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.6)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.6)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.6)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.6)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.6)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.6)': + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-flow@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.6)': + '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-import-assertions@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-import-attributes@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.6)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.6)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.6)': + '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.6)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.6)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.6)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.6)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.6)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.6)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.6)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.6)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.6)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-arrow-functions@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-async-generator-functions@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-async-generator-functions@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-remap-async-to-generator': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.6) + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-async-to-generator@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-module-imports': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-remap-async-to-generator': 7.24.6(@babel/core@7.24.6) + '@babel/core': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-block-scoped-functions@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-block-scoping@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-block-scoping@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-class-properties@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-class-static-block@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.6) + '@babel/core': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-classes@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-classes@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-function-name': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-replace-supers': 7.24.6(@babel/core@7.24.6) - '@babel/helper-split-export-declaration': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) + '@babel/helper-split-export-declaration': 7.24.7 globals: 11.12.0 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-computed-properties@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/template': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/template': 7.24.7 - '@babel/plugin-transform-destructuring@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-destructuring@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-dotall-regex@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-duplicate-keys@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-dynamic-import@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.6) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-transform-exponentiation-operator@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-export-namespace-from@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.6) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-transform-flow-strip-types@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-flow-strip-types@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-flow': 7.24.6(@babel/core@7.24.6) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-for-of@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-function-name@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-function-name@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-function-name': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-json-strings@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.6) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-transform-literals@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-literals@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-logical-assignment-operators@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.6) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-transform-member-expression-literals@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-modules-amd@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-modules-commonjs@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-modules-commonjs@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-simple-access': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-modules-systemjs@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-modules-systemjs@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-hoist-variables': 7.24.6 - '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-validator-identifier': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-modules-umd@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-new-target@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.6) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-transform-numeric-separator@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.6) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-transform-object-rest-spread@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.6) + '@babel/core': 7.24.7 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-object-super@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-replace-supers': 7.24.6(@babel/core@7.24.6) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-optional-catch-binding@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.6) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-transform-optional-chaining@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-optional-chaining@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.6) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-parameters@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-private-methods@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-private-property-in-object@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.6) + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-property-literals@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.6)': + '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-module-imports': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.6) - '@babel/types': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.7) + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-regenerator@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 regenerator-transform: 0.15.2 - '@babel/plugin-transform-reserved-words@7.24.6(@babel/core@7.24.6)': - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-shorthand-properties@7.24.6(@babel/core@7.24.6)': - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-spread@7.24.6(@babel/core@7.24.6)': - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 - - '@babel/plugin-transform-sticky-regex@7.24.6(@babel/core@7.24.6)': - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-template-literals@7.24.6(@babel/core@7.24.6)': - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-typeof-symbol@7.24.6(@babel/core@7.24.6)': - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-unicode-escapes@7.24.6(@babel/core@7.24.6)': - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-unicode-property-regex@7.24.6(@babel/core@7.24.6)': - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-unicode-regex@7.24.6(@babel/core@7.24.6)': - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-unicode-sets-regex@7.24.6(@babel/core@7.24.6)': - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/preset-env@7.24.6(@babel/core@7.24.6)': - dependencies: - '@babel/compat-data': 7.24.6 - '@babel/core': 7.24.6 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-validator-option': 7.24.6 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.6) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.6) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.6) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.6) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-syntax-import-assertions': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-syntax-import-attributes': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.6) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.6) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.6) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.6) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.6) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.6) - '@babel/plugin-transform-arrow-functions': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-async-generator-functions': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-async-to-generator': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-block-scoped-functions': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-block-scoping': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-class-properties': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-class-static-block': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-classes': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-computed-properties': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-destructuring': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-dotall-regex': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-duplicate-keys': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-dynamic-import': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-exponentiation-operator': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-export-namespace-from': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-for-of': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-function-name': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-json-strings': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-literals': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-logical-assignment-operators': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-member-expression-literals': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-modules-amd': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-modules-systemjs': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-modules-umd': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-named-capturing-groups-regex': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-new-target': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-numeric-separator': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-object-rest-spread': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-object-super': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-optional-catch-binding': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-optional-chaining': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-private-methods': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-private-property-in-object': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-property-literals': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-regenerator': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-reserved-words': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-shorthand-properties': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-spread': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-sticky-regex': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-template-literals': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-typeof-symbol': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-unicode-escapes': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-unicode-property-regex': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-unicode-regex': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-unicode-sets-regex': 7.24.6(@babel/core@7.24.6) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.6) - babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.6) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.6) - babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.6) - core-js-compat: 3.36.1 + '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + + '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + + '@babel/plugin-transform-spread@7.24.7(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + + '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + + '@babel/plugin-transform-typeof-symbol@7.24.7(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + + '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + + '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + + '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + + '@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + + '@babel/preset-env@7.24.7(@babel/core@7.24.7)': + dependencies: + '@babel/compat-data': 7.24.7 + '@babel/core': 7.24.7 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-validator-option': 7.24.7 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.7) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.7) + '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-async-generator-functions': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-block-scoping': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-classes': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-destructuring': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-function-name': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-literals': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-modules-systemjs': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-typeof-symbol': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.24.7) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.7) + babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.7) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.7) + babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.7) + core-js-compat: 3.37.1 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.6)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/types': 7.24.5 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/types': 7.24.6 esutils: 2.0.3 - '@babel/register@7.24.6(@babel/core@7.24.6)': + '@babel/register@7.24.6(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.6 + '@babel/core': 7.24.7 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -6667,20 +6562,11 @@ snapshots: '@babel/parser': 7.24.6 '@babel/types': 7.24.6 - '@babel/traverse@7.24.5': + '@babel/template@7.24.7': dependencies: - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.24.5 - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 - debug: 4.3.4(supports-color@8.1.1) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 '@babel/traverse@7.24.6': dependencies: @@ -6692,16 +6578,25 @@ snapshots: '@babel/helper-split-export-declaration': 7.24.6 '@babel/parser': 7.24.6 '@babel/types': 7.24.6 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.24.5': - dependencies: - '@babel/helper-string-parser': 7.24.1 - '@babel/helper-validator-identifier': 7.24.5 - to-fast-properties: 2.0.0 + '@babel/traverse@7.24.7': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 + debug: 4.3.5 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color '@babel/types@7.24.6': dependencies: @@ -6709,6 +6604,12 @@ snapshots: '@babel/helper-validator-identifier': 7.24.6 to-fast-properties: 2.0.0 + '@babel/types@7.24.7': + dependencies: + '@babel/helper-string-parser': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + '@bcoe/v8-coverage@0.2.3': {} '@colors/colors@1.5.0': @@ -6727,8 +6628,8 @@ snapshots: '@es-joy/jsdoc-eslint-parser@0.21.1': dependencies: - '@babel/core': 7.24.6 - '@babel/eslint-parser': 7.24.6(@babel/core@7.24.6)(eslint@8.56.0) + '@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) eslint: 8.56.0 @@ -6757,33 +6658,27 @@ snapshots: eslint: 8.56.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.0(eslint@9.3.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.5.0)': dependencies: - eslint: 9.3.0 + eslint: 9.5.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.10.0': {} - '@eslint/eslintrc@2.1.4': + '@eslint/config-array@0.16.0': dependencies: - ajv: 6.12.6 - debug: 4.3.4(supports-color@8.1.1) - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 + '@eslint/object-schema': 2.1.4 + debug: 4.3.5 minimatch: 3.1.2 - strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - '@eslint/eslintrc@3.0.2': + '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.4(supports-color@8.1.1) - espree: 10.0.1 - globals: 14.0.0 + debug: 4.3.5 + espree: 9.6.1 + globals: 13.24.0 ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -6795,8 +6690,8 @@ snapshots: '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.4(supports-color@8.1.1) - espree: 10.0.1 + debug: 4.3.5 + espree: 10.1.0 globals: 14.0.0 ignore: 5.3.1 import-fresh: 3.3.0 @@ -6808,19 +6703,21 @@ snapshots: '@eslint/js@8.56.0': {} - '@eslint/js@9.3.0': {} + '@eslint/js@9.5.0': {} - '@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.24.6)(@types/node@20.12.12)(encoding@0.1.13)(graphql@16.8.1)': + '@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)': dependencies: - '@babel/code-frame': 7.24.2 - '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.24.6)(graphql@16.8.1) - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.24.6)(graphql@16.8.1) + '@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.4(supports-color@8.1.1) + debug: 4.3.5 fast-glob: 3.3.2 graphql: 16.8.1 - graphql-config: 4.5.0(@types/node@20.12.12)(encoding@0.1.13)(graphql@16.8.1) + graphql-config: 4.5.0(@types/node@20.14.9)(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 @@ -6841,9 +6738,9 @@ snapshots: tslib: 2.6.2 value-or-promise: 1.0.12 - '@graphql-tools/code-file-loader@7.3.23(@babel/core@7.24.6)(graphql@16.8.1)': + '@graphql-tools/code-file-loader@7.3.23(@babel/core@7.24.7)(graphql@16.8.1)': dependencies: - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.24.6)(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) globby: 11.1.0 graphql: 16.8.1 @@ -6878,7 +6775,7 @@ snapshots: - bufferutil - utf-8-validate - '@graphql-tools/executor-http@0.1.10(@types/node@20.12.12)(graphql@16.8.1)': + '@graphql-tools/executor-http@0.1.10(@types/node@20.14.9)(graphql@16.8.1)': dependencies: '@graphql-tools/utils': 9.2.1(graphql@16.8.1) '@repeaterjs/repeater': 3.0.5 @@ -6886,7 +6783,7 @@ snapshots: dset: 3.1.3 extract-files: 11.0.0 graphql: 16.8.1 - meros: 1.3.0(@types/node@20.12.12) + meros: 1.3.0(@types/node@20.14.9) tslib: 2.6.2 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -6922,12 +6819,12 @@ snapshots: tslib: 2.6.2 unixify: 1.0.0 - '@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.24.6)(graphql@16.8.1)': + '@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.24.7)(graphql@16.8.1)': dependencies: - '@babel/parser': 7.24.5 - '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.6) - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 + '@babel/parser': 7.24.6 + '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.7) + '@babel/traverse': 7.24.6 + '@babel/types': 7.24.6 '@graphql-tools/utils': 9.2.1(graphql@16.8.1) graphql: 16.8.1 tslib: 2.6.2 @@ -6972,12 +6869,12 @@ snapshots: tslib: 2.6.2 value-or-promise: 1.0.12 - '@graphql-tools/url-loader@7.17.18(@types/node@20.12.12)(encoding@0.1.13)(graphql@16.8.1)': + '@graphql-tools/url-loader@7.17.18(@types/node@20.14.9)(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.12.12)(graphql@16.8.1) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.14.9)(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) @@ -7026,15 +6923,7 @@ snapshots: '@humanwhocodes/config-array@0.11.13': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.4(supports-color@8.1.1) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@humanwhocodes/config-array@0.13.0': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -7076,17 +6965,12 @@ snapshots: '@jridgewell/sourcemap-codec@1.4.15': {} - '@jridgewell/trace-mapping@0.3.20': - dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 - '@next/eslint-plugin-next@14.2.3': + '@next/eslint-plugin-next@14.2.4': dependencies: glob: 10.3.10 @@ -7228,22 +7112,23 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} - '@semantic-release/commit-analyzer@12.0.0(semantic-release@23.1.1(typescript@5.3.3))': + '@semantic-release/commit-analyzer@13.0.0(semantic-release@24.0.0(typescript@5.3.3))': dependencies: - conventional-changelog-angular: 7.0.0 - conventional-commits-filter: 4.0.0 - conventional-commits-parser: 5.0.0 - debug: 4.3.4(supports-color@8.1.1) + 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 import-from-esm: 1.3.3 lodash-es: 4.17.21 - micromatch: 4.0.5 - semantic-release: 23.1.1(typescript@5.3.3) + micromatch: 4.0.7 + semantic-release: 24.0.0(typescript@5.3.3) transitivePeerDependencies: - supports-color '@semantic-release/error@4.0.0': {} - '@semantic-release/github@10.0.5(semantic-release@23.1.1(typescript@5.3.3))': + '@semantic-release/github@10.0.6(semantic-release@24.0.0(typescript@5.3.3))': dependencies: '@octokit/core': 6.1.1 '@octokit/plugin-paginate-rest': 11.3.0(@octokit/core@6.1.1) @@ -7251,7 +7136,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.4(supports-color@8.1.1) + debug: 4.3.5 dir-glob: 3.0.1 globby: 14.0.0 http-proxy-agent: 7.0.0 @@ -7260,12 +7145,12 @@ snapshots: lodash-es: 4.17.21 mime: 4.0.1 p-filter: 4.1.0 - semantic-release: 23.1.1(typescript@5.3.3) + semantic-release: 24.0.0(typescript@5.3.3) url-join: 5.0.0 transitivePeerDependencies: - supports-color - '@semantic-release/npm@12.0.1(semantic-release@23.1.1(typescript@5.3.3))': + '@semantic-release/npm@12.0.1(semantic-release@24.0.0(typescript@5.3.3))': dependencies: '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 @@ -7278,23 +7163,23 @@ snapshots: rc: 1.2.8 read-pkg: 9.0.1 registry-auth-token: 5.0.2 - semantic-release: 23.1.1(typescript@5.3.3) + semantic-release: 24.0.0(typescript@5.3.3) semver: 7.6.2 tempy: 3.1.0 - '@semantic-release/release-notes-generator@13.0.0(semantic-release@23.1.1(typescript@5.3.3))': + '@semantic-release/release-notes-generator@14.0.1(semantic-release@24.0.0(typescript@5.3.3))': dependencies: - conventional-changelog-angular: 7.0.0 - conventional-changelog-writer: 7.0.1 - conventional-commits-filter: 4.0.0 - conventional-commits-parser: 5.0.0 - debug: 4.3.4(supports-color@8.1.1) + 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 get-stream: 7.0.1 import-from-esm: 1.3.3 into-stream: 7.0.0 lodash-es: 4.17.21 - read-pkg-up: 11.0.0 - semantic-release: 23.1.1(typescript@5.3.3) + read-package-up: 11.0.0 + semantic-release: 24.0.0(typescript@5.3.3) transitivePeerDependencies: - supports-color @@ -7333,11 +7218,11 @@ snapshots: '@types/lodash@4.14.202': {} - '@types/mocha@10.0.6': {} + '@types/mocha@10.0.7': {} '@types/ms@0.7.34': {} - '@types/node@20.12.12': + '@types/node@20.14.9': dependencies: undici-types: 5.26.5 @@ -7349,17 +7234,17 @@ snapshots: '@types/ws@8.5.10': dependencies: - '@types/node': 20.12.12 + '@types/node': 20.14.9 - '@typescript-eslint/eslint-plugin@7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3)': + '@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)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.11.0(eslint@9.3.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 7.11.0 - '@typescript-eslint/type-utils': 7.11.0(eslint@9.3.0)(typescript@5.3.3) - '@typescript-eslint/utils': 7.11.0(eslint@9.3.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.11.0 - eslint: 9.3.0 + '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.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/visitor-keys': 7.14.1 + eslint: 9.5.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -7369,15 +7254,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.0.0-alpha.34(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3)': + '@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)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3) + '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': 8.0.0-alpha.34 - '@typescript-eslint/type-utils': 8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3) - '@typescript-eslint/utils': 8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3) + '@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/visitor-keys': 8.0.0-alpha.34 - eslint: 9.3.0 + eslint: 9.5.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -7387,10 +7272,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/experimental-utils@5.62.0(eslint@9.3.0)(typescript@5.3.3)': + '@typescript-eslint/experimental-utils@5.62.0(eslint@9.5.0)(typescript@5.3.3)': dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@9.3.0)(typescript@5.3.3) - eslint: 9.3.0 + '@typescript-eslint/utils': 5.62.0(eslint@9.5.0)(typescript@5.3.3) + eslint: 9.5.0 transitivePeerDependencies: - supports-color - typescript @@ -7401,34 +7286,34 @@ snapshots: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 eslint: 8.56.0 optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3)': + '@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3)': dependencies: - '@typescript-eslint/scope-manager': 7.11.0 - '@typescript-eslint/types': 7.11.0 - '@typescript-eslint/typescript-estree': 7.11.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.11.0 - debug: 4.3.4(supports-color@8.1.1) - eslint: 9.3.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) + '@typescript-eslint/visitor-keys': 7.14.1 + debug: 4.3.5 + eslint: 9.5.0 optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3)': + '@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.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/visitor-keys': 8.0.0-alpha.34 - debug: 4.3.4(supports-color@8.1.1) - eslint: 9.3.0 + debug: 4.3.5 + eslint: 9.5.0 optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: @@ -7449,11 +7334,6 @@ snapshots: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - '@typescript-eslint/scope-manager@7.11.0': - dependencies: - '@typescript-eslint/types': 7.11.0 - '@typescript-eslint/visitor-keys': 7.11.0 - '@typescript-eslint/scope-manager@7.14.1': dependencies: '@typescript-eslint/types': 7.14.1 @@ -7464,23 +7344,23 @@ snapshots: '@typescript-eslint/types': 8.0.0-alpha.34 '@typescript-eslint/visitor-keys': 8.0.0-alpha.34 - '@typescript-eslint/type-utils@7.11.0(eslint@9.3.0)(typescript@5.3.3)': + '@typescript-eslint/type-utils@7.14.1(eslint@9.5.0)(typescript@5.3.3)': dependencies: - '@typescript-eslint/typescript-estree': 7.11.0(typescript@5.3.3) - '@typescript-eslint/utils': 7.11.0(eslint@9.3.0)(typescript@5.3.3) - debug: 4.3.4(supports-color@8.1.1) - eslint: 9.3.0 + '@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) optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3)': + '@typescript-eslint/type-utils@8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.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.3.0)(typescript@5.3.3) - debug: 4.3.4(supports-color@8.1.1) + '@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) optionalDependencies: typescript: 5.3.3 @@ -7494,8 +7374,6 @@ snapshots: '@typescript-eslint/types@6.21.0': {} - '@typescript-eslint/types@7.11.0': {} - '@typescript-eslint/types@7.14.1': {} '@typescript-eslint/types@8.0.0-alpha.34': {} @@ -7504,7 +7382,7 @@ snapshots: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.2 @@ -7518,7 +7396,7 @@ snapshots: dependencies: '@typescript-eslint/types': 6.19.1 '@typescript-eslint/visitor-keys': 6.19.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 @@ -7533,7 +7411,7 @@ snapshots: dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 @@ -7544,26 +7422,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.11.0(typescript@5.3.3)': - dependencies: - '@typescript-eslint/types': 7.11.0 - '@typescript-eslint/visitor-keys': 7.11.0 - debug: 4.3.4(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) - optionalDependencies: - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@7.14.1(typescript@5.3.3)': dependencies: '@typescript-eslint/types': 7.14.1 '@typescript-eslint/visitor-keys': 7.14.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 @@ -7578,7 +7441,7 @@ snapshots: dependencies: '@typescript-eslint/types': 8.0.0-alpha.34 '@typescript-eslint/visitor-keys': 8.0.0-alpha.34 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 @@ -7589,64 +7452,53 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@5.62.0(eslint@9.3.0)(typescript@5.3.3)': + '@typescript-eslint/utils@5.62.0(eslint@9.5.0)(typescript@5.3.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.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.3.0 + eslint: 9.5.0 eslint-scope: 5.1.1 semver: 7.6.2 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@6.19.1(eslint@9.3.0)(typescript@5.3.3)': + '@typescript-eslint/utils@6.19.1(eslint@9.5.0)(typescript@5.3.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.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.3.0 + eslint: 9.5.0 semver: 7.6.2 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@7.11.0(eslint@9.3.0)(typescript@5.3.3)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) - '@typescript-eslint/scope-manager': 7.11.0 - '@typescript-eslint/types': 7.11.0 - '@typescript-eslint/typescript-estree': 7.11.0(typescript@5.3.3) - eslint: 9.3.0 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/utils@7.14.1(eslint@9.3.0)(typescript@5.3.3)': + '@typescript-eslint/utils@7.14.1(eslint@9.5.0)(typescript@5.3.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.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.3.0 + eslint: 9.5.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3)': + '@typescript-eslint/utils@8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.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.3.0 + eslint: 9.5.0 transitivePeerDependencies: - supports-color - typescript @@ -7666,11 +7518,6 @@ snapshots: '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@7.11.0': - dependencies: - '@typescript-eslint/types': 7.11.0 - eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@7.14.1': dependencies: '@typescript-eslint/types': 7.14.1 @@ -7701,11 +7548,6 @@ snapshots: fast-url-parser: 1.1.3 tslib: 2.6.2 - JSONStream@1.3.5: - dependencies: - jsonparse: 1.3.1 - through: 2.3.8 - abbrev@2.0.0: {} acorn-globals@1.0.9: @@ -7716,13 +7558,19 @@ snapshots: dependencies: acorn: 8.11.3 + acorn-jsx@5.3.2(acorn@8.12.0): + dependencies: + acorn: 8.12.0 + acorn@2.7.0: {} acorn@8.11.3: {} + acorn@8.12.0: {} + agent-base@7.1.0: dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -7780,9 +7628,9 @@ snapshots: argv-formatter@1.0.0: {} - aria-query@5.3.0: + aria-query@5.1.3: dependencies: - dequal: 2.0.3 + deep-equal: 2.2.3 arr-diff@4.0.0: {} @@ -7790,11 +7638,6 @@ snapshots: arr-union@3.1.0: {} - array-buffer-byte-length@1.0.0: - dependencies: - call-bind: 1.0.5 - is-array-buffer: 3.0.2 - array-buffer-byte-length@1.0.1: dependencies: call-bind: 1.0.7 @@ -7802,14 +7645,6 @@ snapshots: array-ify@1.0.0: {} - array-includes@3.1.7: - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-string: 1.0.7 - array-includes@3.1.8: dependencies: call-bind: 1.0.7 @@ -7834,51 +7669,41 @@ snapshots: array.prototype.flat@1.3.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 array.prototype.flatmap@1.3.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 array.prototype.reduce@1.0.6: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-array-method-boxes-properly: 1.0.0 is-string: 1.0.7 array.prototype.toreversed@1.1.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 - array.prototype.tosorted@1.1.3: + array.prototype.tosorted@1.1.4: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-errors: 1.3.0 es-shim-unscopables: 1.0.2 - arraybuffer.prototype.slice@1.0.2: - dependencies: - array-buffer-byte-length: 1.0.0 - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-array-buffer: 3.0.2 - is-shared-array-buffer: 1.0.2 - arraybuffer.prototype.slice@1.0.3: dependencies: array-buffer-byte-length: 1.0.1 @@ -7906,7 +7731,7 @@ snapshots: assert@2.1.0: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 is-nan: 1.3.2 object-is: 1.1.5 object.assign: 4.1.5 @@ -7922,16 +7747,10 @@ snapshots: dependencies: tslib: 2.6.2 - asynciterator.prototype@1.0.0: - dependencies: - has-symbols: 1.0.3 - asynckit@0.4.0: {} atob@2.1.2: {} - available-typed-arrays@1.0.5: {} - available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 @@ -7940,11 +7759,11 @@ snapshots: aws4@1.12.0: {} - axe-core@4.7.0: {} + axe-core@4.9.1: {} - axobject-query@3.2.1: + axobject-query@3.1.1: dependencies: - dequal: 2.0.3 + deep-equal: 2.2.3 babel-plugin-add-module-exports@1.0.4: {} @@ -7958,33 +7777,33 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.6): + babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.7): dependencies: - '@babel/compat-data': 7.24.6 - '@babel/core': 7.24.6 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.6) + '@babel/compat-data': 7.24.7 + '@babel/core': 7.24.7 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.7) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.6): + babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.7): dependencies: - '@babel/core': 7.24.6 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.6) - core-js-compat: 3.36.1 + '@babel/core': 7.24.7 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.7) + core-js-compat: 3.37.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.6): + babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.7): dependencies: - '@babel/core': 7.24.6 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.6) + '@babel/core': 7.24.7 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.7) transitivePeerDependencies: - supports-color - babel-plugin-transform-import-meta@2.2.1(@babel/core@7.24.6): + babel-plugin-transform-import-meta@2.2.1(@babel/core@7.24.7): dependencies: - '@babel/core': 7.24.6 + '@babel/core': 7.24.7 '@babel/template': 7.24.6 tslib: 2.6.2 @@ -8040,10 +7859,6 @@ snapshots: transitivePeerDependencies: - supports-color - braces@3.0.2: - dependencies: - fill-range: 7.0.1 - braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -8067,7 +7882,7 @@ snapshots: dependencies: streamsearch: 1.1.0 - c8@9.1.0: + c8@10.1.2: dependencies: '@bcoe/v8-coverage': 0.2.3 '@istanbuljs/schema': 0.1.3 @@ -8076,7 +7891,7 @@ snapshots: istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-reports: 3.1.6 - test-exclude: 6.0.0 + test-exclude: 7.0.1 v8-to-istanbul: 9.2.0 yargs: 17.7.2 yargs-parser: 21.1.1 @@ -8085,9 +7900,9 @@ snapshots: dependencies: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.3 - glob: 10.4.1 + glob: 10.4.2 lru-cache: 10.2.0 - minipass: 7.0.4 + minipass: 7.1.2 minipass-collect: 2.0.1 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 @@ -8108,12 +7923,6 @@ snapshots: union-value: 1.0.1 unset-value: 1.0.0 - call-bind@1.0.5: - dependencies: - function-bind: 1.1.2 - get-intrinsic: 1.2.2 - set-function-length: 1.1.1 - call-bind@1.0.7: dependencies: es-define-property: 1.0.0 @@ -8176,7 +7985,7 @@ snapshots: chokidar@3.5.3: dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -8306,27 +8115,23 @@ snapshots: lodash: 4.17.21 sister: 3.0.2 - conventional-changelog-angular@7.0.0: + conventional-changelog-angular@8.0.0: dependencies: compare-func: 2.0.0 - conventional-changelog-writer@7.0.1: + conventional-changelog-writer@8.0.0: dependencies: - conventional-commits-filter: 4.0.0 + '@types/semver': 7.5.8 + conventional-commits-filter: 5.0.0 handlebars: 4.7.8 - json-stringify-safe: 5.0.1 - meow: 12.1.1 + meow: 13.2.0 semver: 7.6.2 - split2: 4.2.0 - conventional-commits-filter@4.0.0: {} + conventional-commits-filter@5.0.0: {} - conventional-commits-parser@5.0.0: + conventional-commits-parser@6.0.0: dependencies: - JSONStream: 1.3.5 - is-text-path: 2.0.0 - meow: 12.1.1 - split2: 4.2.0 + meow: 13.2.0 convert-hrtime@5.0.0: {} @@ -8334,10 +8139,6 @@ snapshots: copy-descriptor@0.1.1: {} - core-js-compat@3.36.1: - dependencies: - browserslist: 4.23.0 - core-js-compat@3.37.1: dependencies: browserslist: 4.23.0 @@ -8451,6 +8252,10 @@ snapshots: optionalDependencies: supports-color: 8.1.1 + debug@4.3.5: + dependencies: + ms: 2.1.2 + decamelize@1.2.0: {} decamelize@4.0.0: {} @@ -8463,16 +8268,31 @@ snapshots: dependencies: type-detect: 4.0.8 + deep-equal@2.2.3: + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.4 + is-arguments: 1.1.1 + is-array-buffer: 3.0.4 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + isarray: 2.0.5 + object-is: 1.1.5 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + side-channel: 1.0.6 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.15 + deep-extend@0.6.0: {} deep-is@0.1.4: {} - define-data-property@1.1.1: - dependencies: - get-intrinsic: 1.2.2 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 - define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 @@ -8481,8 +8301,8 @@ snapshots: define-properties@1.2.1: dependencies: - define-data-property: 1.1.1 - has-property-descriptors: 1.0.1 + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 object-keys: 1.1.1 define-property@0.2.5: @@ -8500,8 +8320,6 @@ snapshots: delayed-stream@1.0.0: {} - dequal@2.0.3: {} - diff@5.0.0: {} dir-glob@3.0.1: @@ -8579,6 +8397,11 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 + enhanced-resolve@5.17.0: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + entities@1.1.2: {} entities@2.2.0: {} @@ -8598,48 +8421,6 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-abstract@1.22.3: - dependencies: - array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.2 - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - es-set-tostringtag: 2.0.2 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.2 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 - internal-slot: 1.0.6 - is-array-buffer: 3.0.2 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-typed-array: 1.1.12 - is-weakref: 1.0.2 - object-inspect: 1.13.1 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.1 - safe-array-concat: 1.0.1 - safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 - string.prototype.trimstart: 1.0.7 - typed-array-buffer: 1.0.0 - typed-array-byte-length: 1.0.0 - typed-array-byte-offset: 1.0.0 - typed-array-length: 1.0.4 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.13 - es-abstract@1.23.3: dependencies: array-buffer-byte-length: 1.0.1 @@ -8697,22 +8478,17 @@ snapshots: es-errors@1.3.0: {} - es-iterator-helpers@1.0.15: + es-get-iterator@1.1.3: dependencies: - asynciterator.prototype: 1.0.0 - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-set-tostringtag: 2.0.2 - function-bind: 1.1.2 - get-intrinsic: 1.2.2 - globalthis: 1.0.3 - has-property-descriptors: 1.0.1 - has-proto: 1.0.1 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 has-symbols: 1.0.3 - internal-slot: 1.0.6 - iterator.prototype: 1.1.2 - safe-array-concat: 1.0.1 + is-arguments: 1.1.1 + is-map: 2.0.2 + is-set: 2.0.2 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 es-iterator-helpers@1.0.19: dependencies: @@ -8737,12 +8513,6 @@ snapshots: dependencies: es-errors: 1.3.0 - es-set-tostringtag@2.0.2: - dependencies: - get-intrinsic: 1.2.2 - has-tostringtag: 1.0.0 - hasown: 2.0.0 - es-set-tostringtag@2.0.3: dependencies: get-intrinsic: 1.2.4 @@ -8751,7 +8521,7 @@ snapshots: es-shim-unscopables@1.0.2: dependencies: - hasown: 2.0.0 + hasown: 2.0.2 es-to-primitive@1.2.1: dependencies: @@ -8781,59 +8551,59 @@ snapshots: lodash.get: 4.4.2 lodash.zip: 4.2.0 - eslint-compat-utils@0.1.2(eslint@9.3.0): + eslint-compat-utils@0.1.2(eslint@9.5.0): dependencies: - eslint: 9.3.0 + eslint: 9.5.0 - eslint-compat-utils@0.5.0(eslint@9.3.0): + eslint-compat-utils@0.5.0(eslint@9.5.0): dependencies: - eslint: 9.3.0 + eslint: 9.5.0 semver: 7.6.2 - eslint-config-canonical@43.0.12(@babel/plugin-syntax-flow@7.24.6(@babel/core@7.24.6))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.6))(@types/eslint@8.56.10)(@types/node@20.12.12)(encoding@0.1.13)(eslint@9.3.0)(typescript@5.3.3): - dependencies: - '@babel/core': 7.24.6 - '@babel/eslint-parser': 7.24.6(@babel/core@7.24.6)(eslint@9.3.0) - '@babel/eslint-plugin': 7.24.6(@babel/eslint-parser@7.24.6(@babel/core@7.24.6)(eslint@9.3.0))(eslint@9.3.0) - '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.6) - '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.24.6)(@types/node@20.12.12)(encoding@0.1.13)(graphql@16.8.1) - '@next/eslint-plugin-next': 14.2.3 - '@typescript-eslint/eslint-plugin': 7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3) - '@typescript-eslint/parser': 7.11.0(eslint@9.3.0)(typescript@5.3.3) - eslint: 9.3.0 - eslint-config-prettier: 9.1.0(eslint@9.3.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.3.0) - eslint-plugin-ava: 15.0.1(eslint@9.3.0) - eslint-plugin-canonical: 4.18.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.3.0))(eslint@9.3.0)(typescript@5.3.3) - eslint-plugin-cypress: 3.3.0(eslint@9.3.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@9.3.0) - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.24.6(@babel/core@7.24.6))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.6))(eslint@9.3.0) - eslint-plugin-fp: 2.3.0(eslint@9.3.0) - eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.3.0) - eslint-plugin-jest: 28.5.0(@typescript-eslint/eslint-plugin@7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3) - eslint-plugin-jsdoc: 48.2.6(eslint@9.3.0) - eslint-plugin-jsonc: 2.16.0(eslint@9.3.0) - eslint-plugin-jsx-a11y: 6.8.0(eslint@9.3.0) - eslint-plugin-lodash: 8.0.0(eslint@9.3.0) - eslint-plugin-mocha: 10.4.3(eslint@9.3.0) + 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): + 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/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) + '@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) eslint-plugin-modules-newline: 0.0.6 - eslint-plugin-n: 17.7.0(eslint@9.3.0) - eslint-plugin-prettier: 5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.3.0))(eslint@9.3.0)(prettier@3.2.5) - eslint-plugin-promise: 6.1.1(eslint@9.3.0) - eslint-plugin-react: 7.34.2(eslint@9.3.0) - eslint-plugin-react-hooks: 4.6.2(eslint@9.3.0) - eslint-plugin-regexp: 2.6.0(eslint@9.3.0) - eslint-plugin-simple-import-sort: 12.1.0(eslint@9.3.0) - eslint-plugin-typescript-sort-keys: 3.2.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3) - eslint-plugin-unicorn: 53.0.0(eslint@9.3.0) - eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3) - eslint-plugin-yml: 1.14.0(eslint@9.3.0) - eslint-plugin-zod: 1.4.0(eslint@9.3.0) - globals: 15.3.0 + 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 graphql: 16.8.1 - prettier: 3.2.5 + prettier: 3.3.2 ramda: 0.30.0 - yaml-eslint-parser: 1.2.2 + yaml-eslint-parser: 1.2.3 transitivePeerDependencies: - '@babel/plugin-syntax-flow' - '@babel/plugin-transform-react-jsx' @@ -8850,9 +8620,9 @@ snapshots: - utf-8-validate - vitest - eslint-config-prettier@9.1.0(eslint@9.3.0): + eslint-config-prettier@9.1.0(eslint@9.5.0): dependencies: - eslint: 9.3.0 + eslint: 9.5.0 eslint-import-resolver-node@0.3.9: dependencies: @@ -8862,13 +8632,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.3.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): dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 enhanced-resolve: 5.15.0 - eslint: 9.3.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.3.0))(eslint@9.3.0) - eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.3.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) fast-glob: 3.3.2 get-tsconfig: 4.7.2 is-core-module: 2.13.1 @@ -8879,22 +8649,22 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.3.0))(eslint@9.3.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): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.11.0(eslint@9.3.0)(typescript@5.3.3) - eslint: 9.3.0 + '@typescript-eslint/parser': 7.14.1(eslint@9.5.0)(typescript@5.3.3) + eslint: 9.5.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.3.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) transitivePeerDependencies: - supports-color - eslint-plugin-ava@15.0.1(eslint@9.3.0): + eslint-plugin-ava@15.0.1(eslint@9.5.0): dependencies: enhance-visitors: 1.0.0 - eslint: 9.3.0 - eslint-utils: 3.0.0(eslint@9.3.0) + eslint: 9.5.0 + eslint-utils: 3.0.0(eslint@9.5.0) espree: 9.6.1 espurify: 2.1.1 import-modules: 2.1.0 @@ -8902,13 +8672,13 @@ snapshots: pkg-dir: 5.0.0 resolve-from: 5.0.0 - eslint-plugin-canonical@4.18.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.3.0))(eslint@9.3.0)(typescript@5.3.3): + 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): dependencies: - '@typescript-eslint/utils': 6.19.1(eslint@9.3.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.1(eslint@9.5.0)(typescript@5.3.3) chance: 1.1.11 - debug: 4.3.4(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.3.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.3.0))(eslint@9.3.0) + 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) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -8928,47 +8698,47 @@ snapshots: - supports-color - typescript - eslint-plugin-cypress@3.3.0(eslint@9.3.0): + eslint-plugin-cypress@3.3.0(eslint@9.5.0): dependencies: - eslint: 9.3.0 + eslint: 9.5.0 globals: 13.24.0 - eslint-plugin-es-x@7.5.0(eslint@9.3.0): + eslint-plugin-es-x@7.5.0(eslint@9.5.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) '@eslint-community/regexpp': 4.10.0 - eslint: 9.3.0 - eslint-compat-utils: 0.1.2(eslint@9.3.0) + eslint: 9.5.0 + eslint-compat-utils: 0.1.2(eslint@9.5.0) - eslint-plugin-eslint-comments@3.2.0(eslint@9.3.0): + eslint-plugin-eslint-comments@3.2.0(eslint@9.5.0): dependencies: escape-string-regexp: 1.0.5 - eslint: 9.3.0 + eslint: 9.5.0 ignore: 5.3.1 - eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.24.6(@babel/core@7.24.6))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.6))(eslint@9.3.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): dependencies: - '@babel/plugin-syntax-flow': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.6) - eslint: 9.3.0 + '@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 lodash: 4.17.21 string-natural-compare: 3.0.1 - eslint-plugin-fp@2.3.0(eslint@9.3.0): + eslint-plugin-fp@2.3.0(eslint@9.5.0): dependencies: create-eslint-index: 1.0.0 - eslint: 9.3.0 + eslint: 9.5.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.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.3.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): dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 doctrine: 3.0.0 - eslint: 9.3.0 + eslint: 9.5.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.3.0))(eslint@9.3.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) get-tsconfig: 4.7.2 is-glob: 4.0.3 minimatch: 3.1.2 @@ -8979,70 +8749,72 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@28.5.0(@typescript-eslint/eslint-plugin@7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.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.5.0)(typescript@5.3.3))(eslint@9.5.0)(typescript@5.3.3))(eslint@9.5.0)(typescript@5.3.3): dependencies: - '@typescript-eslint/utils': 7.14.1(eslint@9.3.0)(typescript@5.3.3) - eslint: 9.3.0 + '@typescript-eslint/utils': 7.14.1(eslint@9.5.0)(typescript@5.3.3) + eslint: 9.5.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3) + '@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) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jsdoc@48.2.6(eslint@9.3.0): + eslint-plugin-jsdoc@48.5.0(eslint@9.5.0): dependencies: '@es-joy/jsdoccomment': 0.43.1 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 escape-string-regexp: 4.0.0 - eslint: 9.3.0 + eslint: 9.5.0 esquery: 1.5.0 + parse-imports: 2.1.0 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.3.0): + eslint-plugin-jsonc@2.16.0(eslint@9.5.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) - eslint: 9.3.0 - eslint-compat-utils: 0.5.0(eslint@9.3.0) + '@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) 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.8.0(eslint@9.3.0): + eslint-plugin-jsx-a11y@6.9.0(eslint@9.5.0): dependencies: - '@babel/runtime': 7.23.6 - aria-query: 5.3.0 - array-includes: 3.1.7 + aria-query: 5.1.3 + array-includes: 3.1.8 array.prototype.flatmap: 1.3.2 ast-types-flow: 0.0.8 - axe-core: 4.7.0 - axobject-query: 3.2.1 + axe-core: 4.9.1 + axobject-query: 3.1.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - es-iterator-helpers: 1.0.15 - eslint: 9.3.0 - hasown: 2.0.0 + es-iterator-helpers: 1.0.19 + eslint: 9.5.0 + hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 + object.fromentries: 2.0.8 + safe-regex-test: 1.0.3 + string.prototype.includes: 2.0.0 - eslint-plugin-lodash@8.0.0(eslint@9.3.0): + eslint-plugin-lodash@8.0.0(eslint@9.5.0): dependencies: - eslint: 9.3.0 + eslint: 9.5.0 lodash: 4.17.21 - eslint-plugin-mocha@10.4.3(eslint@9.3.0): + eslint-plugin-mocha@10.4.3(eslint@9.5.0): dependencies: - eslint: 9.3.0 - eslint-utils: 3.0.0(eslint@9.3.0) + eslint: 9.5.0 + eslint-utils: 3.0.0(eslint@9.5.0) globals: 13.24.0 rambda: 7.5.0 @@ -9050,46 +8822,46 @@ snapshots: dependencies: requireindex: 1.1.0 - eslint-plugin-n@17.7.0(eslint@9.3.0): + eslint-plugin-n@17.9.0(eslint@9.5.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) - enhanced-resolve: 5.15.0 - eslint: 9.3.0 - eslint-plugin-es-x: 7.5.0(eslint@9.3.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) + enhanced-resolve: 5.17.0 + eslint: 9.5.0 + eslint-plugin-es-x: 7.5.0(eslint@9.5.0) get-tsconfig: 4.7.2 - globals: 15.3.0 + globals: 15.6.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.3.0))(eslint@9.3.0)(prettier@3.2.5): + 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): dependencies: - eslint: 9.3.0 - prettier: 3.2.5 + eslint: 9.5.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.3.0) + eslint-config-prettier: 9.1.0(eslint@9.5.0) - eslint-plugin-promise@6.1.1(eslint@9.3.0): + eslint-plugin-promise@6.2.0(eslint@9.5.0): dependencies: - eslint: 9.3.0 + eslint: 9.5.0 - eslint-plugin-react-hooks@4.6.2(eslint@9.3.0): + eslint-plugin-react-hooks@4.6.2(eslint@9.5.0): dependencies: - eslint: 9.3.0 + eslint: 9.5.0 - eslint-plugin-react@7.34.2(eslint@9.3.0): + eslint-plugin-react@7.34.3(eslint@9.5.0): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.2 array.prototype.toreversed: 1.1.2 - array.prototype.tosorted: 1.1.3 + array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.0.19 - eslint: 9.3.0 + eslint: 9.5.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 @@ -9102,41 +8874,41 @@ snapshots: semver: 6.3.1 string.prototype.matchall: 4.0.11 - eslint-plugin-regexp@2.6.0(eslint@9.3.0): + eslint-plugin-regexp@2.6.0(eslint@9.5.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) '@eslint-community/regexpp': 4.10.0 comment-parser: 1.4.1 - eslint: 9.3.0 + eslint: 9.5.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.3.0): + eslint-plugin-simple-import-sort@12.1.0(eslint@9.5.0): dependencies: - eslint: 9.3.0 + eslint: 9.5.0 - eslint-plugin-typescript-sort-keys@3.2.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3): + 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): dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.3.0)(typescript@5.3.3) - '@typescript-eslint/parser': 7.11.0(eslint@9.3.0)(typescript@5.3.3) - eslint: 9.3.0 + '@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 json-schema: 0.4.0 natural-compare-lite: 1.4.0 typescript: 5.3.3 transitivePeerDependencies: - supports-color - eslint-plugin-unicorn@53.0.0(eslint@9.3.0): + eslint-plugin-unicorn@54.0.0(eslint@9.5.0): dependencies: - '@babel/helper-validator-identifier': 7.24.5 - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) - '@eslint/eslintrc': 3.0.2 + '@babel/helper-validator-identifier': 7.24.6 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) + '@eslint/eslintrc': 3.1.0 ci-info: 4.0.0 clean-regexp: 1.0.0 core-js-compat: 3.37.1 - eslint: 9.3.0 + eslint: 9.5.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -9150,30 +8922,30 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.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.5.0)(typescript@5.3.3))(eslint@9.5.0)(typescript@5.3.3))(eslint@9.5.0)(typescript@5.3.3): dependencies: - '@typescript-eslint/utils': 7.14.1(eslint@9.3.0)(typescript@5.3.3) - eslint: 9.3.0 + '@typescript-eslint/utils': 7.14.1(eslint@9.5.0)(typescript@5.3.3) + eslint: 9.5.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3) + '@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) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-yml@1.14.0(eslint@9.3.0): + eslint-plugin-yml@1.14.0(eslint@9.5.0): dependencies: - debug: 4.3.4(supports-color@8.1.1) - eslint: 9.3.0 - eslint-compat-utils: 0.5.0(eslint@9.3.0) + debug: 4.3.5 + eslint: 9.5.0 + eslint-compat-utils: 0.5.0(eslint@9.5.0) lodash: 4.17.21 natural-compare: 1.4.0 - yaml-eslint-parser: 1.2.2 + yaml-eslint-parser: 1.2.3 transitivePeerDependencies: - supports-color - eslint-plugin-zod@1.4.0(eslint@9.3.0): + eslint-plugin-zod@1.4.0(eslint@9.5.0): dependencies: - eslint: 9.3.0 + eslint: 9.5.0 eslint-rule-composer@0.3.0: {} @@ -9192,9 +8964,9 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-utils@3.0.0(eslint@9.3.0): + eslint-utils@3.0.0(eslint@9.5.0): dependencies: - eslint: 9.3.0 + eslint: 9.5.0 eslint-visitor-keys: 2.1.0 eslint-visitor-keys@2.1.0: {} @@ -9216,7 +8988,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -9246,24 +9018,24 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@9.3.0: + eslint@9.5.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) '@eslint-community/regexpp': 4.10.0 + '@eslint/config-array': 0.16.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.3.0 - '@humanwhocodes/config-array': 0.13.0 + '@eslint/js': 9.5.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.4(supports-color@8.1.1) + debug: 4.3.5 escape-string-regexp: 4.0.0 eslint-scope: 8.0.1 eslint-visitor-keys: 4.0.0 - espree: 10.0.1 + espree: 10.1.0 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -9285,10 +9057,10 @@ snapshots: transitivePeerDependencies: - supports-color - espree@10.0.1: + espree@10.1.0: dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) + acorn: 8.12.0 + acorn-jsx: 5.3.2(acorn@8.12.0) eslint-visitor-keys: 4.0.0 espree@9.6.1: @@ -9420,7 +9192,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.7 fast-json-stable-stringify@2.1.0: {} @@ -9446,10 +9218,6 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 - figures@6.0.1: - dependencies: - is-unicode-supported: 2.0.0 - figures@6.1.0: dependencies: is-unicode-supported: 2.0.0 @@ -9471,10 +9239,6 @@ snapshots: repeat-string: 1.6.1 to-regex-range: 2.1.1 - fill-range@7.0.1: - dependencies: - to-regex-range: 5.0.1 - fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -9565,7 +9329,7 @@ snapshots: fs-minipass@3.0.3: dependencies: - minipass: 7.0.4 + minipass: 7.1.2 fs-readdir-recursive@1.1.0: {} @@ -9580,9 +9344,9 @@ snapshots: function.prototype.name@1.1.6: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 functions-have-names: 1.2.3 functions-have-names@1.2.3: {} @@ -9595,20 +9359,13 @@ snapshots: get-func-name@2.0.2: {} - get-intrinsic@1.2.2: - dependencies: - function-bind: 1.1.2 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 - get-intrinsic@1.2.4: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - has-proto: 1.0.1 + has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.0 + hasown: 2.0.2 get-package-type@0.1.0: {} @@ -9629,11 +9386,6 @@ snapshots: '@sec-ant/readable-stream': 0.4.1 is-stream: 4.0.1 - get-symbol-description@1.0.0: - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - get-symbol-description@1.0.2: dependencies: call-bind: 1.0.7 @@ -9702,15 +9454,16 @@ snapshots: foreground-child: 3.1.1 jackspeak: 2.3.6 minimatch: 9.0.4 - minipass: 7.0.4 - path-scurry: 1.10.2 + minipass: 7.1.2 + path-scurry: 1.11.1 - glob@10.4.1: + glob@10.4.2: dependencies: foreground-child: 3.1.1 jackspeak: 3.1.2 minimatch: 9.0.4 minipass: 7.1.2 + package-json-from-dist: 1.0.0 path-scurry: 1.11.1 glob@7.2.3: @@ -9738,7 +9491,7 @@ snapshots: globals@14.0.0: {} - globals@15.3.0: {} + globals@15.6.0: {} globalthis@1.0.3: dependencies: @@ -9772,13 +9525,13 @@ snapshots: graphemer@1.4.0: {} - graphql-config@4.5.0(@types/node@20.12.12)(encoding@0.1.13)(graphql@16.8.1): + graphql-config@4.5.0(@types/node@20.14.9)(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.12.12)(encoding@0.1.13)(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/utils': 9.2.1(graphql@16.8.1) cosmiconfig: 8.0.0 graphql: 16.8.1 @@ -9825,24 +9578,14 @@ snapshots: has-flag@4.0.0: {} - has-property-descriptors@1.0.1: - dependencies: - get-intrinsic: 1.2.2 - has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.0 - has-proto@1.0.1: {} - has-proto@1.0.3: {} has-symbols@1.0.3: {} - has-tostringtag@1.0.0: - dependencies: - has-symbols: 1.0.3 - has-tostringtag@1.0.2: dependencies: has-symbols: 1.0.3 @@ -9906,7 +9649,7 @@ snapshots: http-proxy-agent@7.0.0: dependencies: agent-base: 7.1.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -9919,7 +9662,7 @@ snapshots: https-proxy-agent@7.0.2: dependencies: agent-base: 7.1.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -9950,7 +9693,7 @@ snapshots: import-from-esm@1.3.3: dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 import-meta-resolve: 4.0.0 transitivePeerDependencies: - supports-color @@ -9978,17 +9721,11 @@ snapshots: install-artifact-from-github@1.3.5: {} - internal-slot@1.0.6: - dependencies: - get-intrinsic: 1.2.2 - hasown: 2.0.0 - side-channel: 1.0.4 - internal-slot@1.0.7: dependencies: es-errors: 1.3.0 - hasown: 2.0.0 - side-channel: 1.0.4 + hasown: 2.0.2 + side-channel: 1.0.6 into-stream@7.0.0: dependencies: @@ -10005,14 +9742,8 @@ snapshots: is-arguments@1.1.1: dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 - - is-array-buffer@3.0.2: - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 is-array-buffer@3.0.4: dependencies: @@ -10023,7 +9754,7 @@ snapshots: is-async-function@2.0.0: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-bigint@1.0.4: dependencies: @@ -10035,8 +9766,8 @@ snapshots: is-boolean-object@1.1.2: dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 is-buffer@1.1.6: {} @@ -10060,7 +9791,7 @@ snapshots: is-date-object@1.0.5: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-descriptor@0.1.7: dependencies: @@ -10086,7 +9817,7 @@ snapshots: is-finalizationregistry@1.0.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 is-fullwidth-code-point@3.0.0: {} @@ -10098,7 +9829,7 @@ snapshots: is-generator-function@1.0.10: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-get-set-prop@1.0.0: dependencies: @@ -10119,16 +9850,14 @@ snapshots: is-nan@1.3.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - is-negative-zero@2.0.2: {} - is-negative-zero@2.0.3: {} is-number-object@1.0.7: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-number@3.0.0: dependencies: @@ -10160,15 +9889,11 @@ snapshots: is-regex@1.1.4: dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 is-set@2.0.2: {} - is-shared-array-buffer@1.0.2: - dependencies: - call-bind: 1.0.5 - is-shared-array-buffer@1.0.3: dependencies: call-bind: 1.0.7 @@ -10183,20 +9908,12 @@ snapshots: is-string@1.0.7: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-symbol@1.0.4: dependencies: has-symbols: 1.0.3 - is-text-path@2.0.0: - dependencies: - text-extensions: 2.4.0 - - is-typed-array@1.1.12: - dependencies: - which-typed-array: 1.1.13 - is-typed-array@1.1.13: dependencies: which-typed-array: 1.1.15 @@ -10211,12 +9928,12 @@ snapshots: is-weakref@1.0.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 is-weakset@2.0.2: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 is-windows@1.0.2: {} @@ -10260,7 +9977,7 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.24.6 + '@babel/core': 7.24.7 '@babel/parser': 7.23.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -10282,10 +9999,10 @@ snapshots: iterator.prototype@1.1.2: dependencies: define-properties: 1.2.1 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 has-symbols: 1.0.3 reflect.getprototypeof: 1.0.4 - set-function-name: 2.0.1 + set-function-name: 2.0.2 jackspeak@2.3.6: dependencies: @@ -10378,8 +10095,6 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 - jsonparse@1.3.1: {} - jsprim@1.4.2: dependencies: assert-plus: 1.0.0 @@ -10389,10 +10104,10 @@ snapshots: jsx-ast-utils@3.3.5: dependencies: - array-includes: 3.1.7 + array-includes: 3.1.8 array.prototype.flat: 1.3.2 object.assign: 4.1.5 - object.values: 1.1.7 + object.values: 1.2.0 keyv@4.5.4: dependencies: @@ -10432,11 +10147,11 @@ snapshots: lines-and-columns@1.2.4: {} - lint-staged@15.2.5: + lint-staged@15.2.7: dependencies: chalk: 5.3.0 commander: 12.1.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 execa: 8.0.1 lilconfig: 3.1.1 listr2: 8.2.1 @@ -10551,7 +10266,7 @@ snapshots: cacache: 18.0.1 http-cache-semantics: 4.1.1 is-lambda: 1.0.1 - minipass: 7.0.4 + minipass: 7.1.2 minipass-fetch: 3.0.4 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 @@ -10586,15 +10301,15 @@ snapshots: marked@2.1.3: {} - meow@12.1.1: {} + meow@13.2.0: {} merge-stream@2.0.0: {} merge2@1.4.1: {} - meros@1.3.0(@types/node@20.12.12): + meros@1.3.0(@types/node@20.14.9): optionalDependencies: - '@types/node': 20.12.12 + '@types/node': 20.14.9 micro-spelling-correcter@1.1.1: {} @@ -10616,11 +10331,6 @@ snapshots: transitivePeerDependencies: - supports-color - micromatch@4.0.5: - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - micromatch@4.0.7: dependencies: braces: 3.0.3 @@ -10668,11 +10378,11 @@ snapshots: minipass-collect@2.0.1: dependencies: - minipass: 7.0.4 + minipass: 7.1.2 minipass-fetch@3.0.4: dependencies: - minipass: 7.0.4 + minipass: 7.1.2 minipass-sized: 1.0.3 minizlib: 2.1.2 optionalDependencies: @@ -10696,8 +10406,6 @@ snapshots: minipass@5.0.0: {} - minipass@7.0.4: {} - minipass@7.1.2: {} minizlib@2.1.2: @@ -10712,7 +10420,7 @@ snapshots: mkdirp@1.0.4: {} - mocha@10.4.0: + mocha@10.5.2: dependencies: ansi-colors: 4.1.1 browser-stdout: 1.3.1 @@ -10801,7 +10509,7 @@ snapshots: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.1 - glob: 10.4.1 + glob: 10.4.2 graceful-fs: 4.2.11 make-fetch-happen: 13.0.0 nopt: 7.2.0 @@ -10884,7 +10592,7 @@ snapshots: object-is@1.1.5: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 object-keys@1.1.1: {} @@ -10895,29 +10603,17 @@ snapshots: object.assign@4.1.5: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 - object.entries@1.1.7: - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - object.entries@1.1.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - object.fromentries@2.0.7: - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - object.fromentries@2.0.8: dependencies: call-bind: 1.0.7 @@ -10928,10 +10624,10 @@ snapshots: object.getownpropertydescriptors@2.1.7: dependencies: array.prototype.reduce: 1.0.6 - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - safe-array-concat: 1.0.1 + es-abstract: 1.23.3 + safe-array-concat: 1.1.2 object.hasown@1.1.4: dependencies: @@ -10943,12 +10639,6 @@ snapshots: dependencies: isobject: 3.0.1 - object.values@1.1.7: - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - object.values@1.2.0: dependencies: call-bind: 1.0.7 @@ -11047,6 +10737,8 @@ snapshots: p-try@2.2.0: {} + package-json-from-dist@1.0.0: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -11063,7 +10755,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.6 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -11104,11 +10796,6 @@ snapshots: path-parse@1.0.7: {} - path-scurry@1.10.2: - dependencies: - lru-cache: 10.2.0 - minipass: 7.0.4 - path-scurry@1.11.1: dependencies: lru-cache: 10.2.0 @@ -11161,7 +10848,7 @@ snapshots: dependencies: fast-diff: 1.3.0 - prettier@3.2.5: {} + prettier@3.3.2: {} pretty-ms@9.0.0: dependencies: @@ -11240,12 +10927,6 @@ snapshots: read-pkg: 9.0.1 type-fest: 4.9.0 - read-pkg-up@11.0.0: - dependencies: - find-up-simple: 1.0.0 - read-pkg: 9.0.1 - type-fest: 4.9.0 - read-pkg-up@7.0.1: dependencies: find-up: 4.1.0 @@ -11301,10 +10982,10 @@ snapshots: reflect.getprototypeof@1.0.4: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + es-abstract: 1.23.3 + get-intrinsic: 1.2.4 globalthis: 1.0.3 which-builtin-type: 1.1.3 @@ -11332,12 +11013,6 @@ snapshots: regexp-tree@0.1.27: {} - regexp.prototype.flags@1.5.1: - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - set-function-name: 2.0.1 - regexp.prototype.flags@1.5.2: dependencies: call-bind: 1.0.7 @@ -11450,7 +11125,7 @@ snapshots: rimraf@5.0.7: dependencies: - glob: 10.4.1 + glob: 10.4.2 roarr@7.21.0: dependencies: @@ -11462,13 +11137,6 @@ snapshots: dependencies: queue-microtask: 1.2.3 - safe-array-concat@1.0.1: - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - has-symbols: 1.0.3 - isarray: 2.0.5 - safe-array-concat@1.1.2: dependencies: call-bind: 1.0.7 @@ -11480,12 +11148,6 @@ snapshots: safe-buffer@5.2.1: {} - safe-regex-test@1.0.0: - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-regex: 1.1.4 - safe-regex-test@1.0.3: dependencies: call-bind: 1.0.7 @@ -11506,19 +11168,19 @@ snapshots: refa: 0.12.1 regexp-ast-analysis: 0.7.1 - semantic-release@23.1.1(typescript@5.3.3): + semantic-release@24.0.0(typescript@5.3.3): dependencies: - '@semantic-release/commit-analyzer': 12.0.0(semantic-release@23.1.1(typescript@5.3.3)) + '@semantic-release/commit-analyzer': 13.0.0(semantic-release@24.0.0(typescript@5.3.3)) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 10.0.5(semantic-release@23.1.1(typescript@5.3.3)) - '@semantic-release/npm': 12.0.1(semantic-release@23.1.1(typescript@5.3.3)) - '@semantic-release/release-notes-generator': 13.0.0(semantic-release@23.1.1(typescript@5.3.3)) + '@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)) aggregate-error: 5.0.0 cosmiconfig: 9.0.0(typescript@5.3.3) - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 env-ci: 11.0.0 execa: 9.1.0 - figures: 6.0.1 + figures: 6.1.0 find-versions: 6.0.0 get-stream: 6.0.1 git-log-parser: 1.2.0 @@ -11528,7 +11190,7 @@ snapshots: lodash-es: 4.17.21 marked: 12.0.1 marked-terminal: 7.0.0(marked@12.0.1) - micromatch: 4.0.5 + micromatch: 4.0.7 p-each-series: 3.0.0 p-reduce: 3.0.0 read-package-up: 11.0.0 @@ -11561,13 +11223,6 @@ snapshots: set-blocking@2.0.0: {} - set-function-length@1.1.1: - dependencies: - define-data-property: 1.1.1 - get-intrinsic: 1.2.2 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 - set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -11577,12 +11232,6 @@ snapshots: gopd: 1.0.1 has-property-descriptors: 1.0.2 - set-function-name@2.0.1: - dependencies: - define-data-property: 1.1.1 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.1 - set-function-name@2.0.2: dependencies: define-data-property: 1.1.4 @@ -11613,12 +11262,6 @@ snapshots: shebang-regex@3.0.0: {} - side-channel@1.0.4: - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - object-inspect: 1.13.1 - side-channel@1.0.6: dependencies: call-bind: 1.0.7 @@ -11688,7 +11331,7 @@ snapshots: socks-proxy-agent@8.0.2: dependencies: agent-base: 7.1.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 socks: 2.7.1 transitivePeerDependencies: - supports-color @@ -11749,8 +11392,6 @@ snapshots: dependencies: through2: 2.0.5 - split2@4.2.0: {} - sprintf-js@1.0.3: {} sshpk@1.18.0: @@ -11767,7 +11408,7 @@ snapshots: ssri@10.0.5: dependencies: - minipass: 7.0.4 + minipass: 7.1.2 stack-trace@0.0.10: {} @@ -11776,6 +11417,10 @@ snapshots: define-property: 0.2.5 object-copy: 0.1.0 + stop-iteration-iterator@1.0.0: + dependencies: + internal-slot: 1.0.7 + stream-combiner2@1.1.1: dependencies: duplexer2: 0.1.4 @@ -11809,6 +11454,11 @@ snapshots: get-east-asian-width: 1.2.0 strip-ansi: 7.1.0 + string.prototype.includes@2.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.3 + string.prototype.matchall@4.0.11: dependencies: call-bind: 1.0.7 @@ -11824,12 +11474,6 @@ snapshots: set-function-name: 2.0.2 side-channel: 1.0.6 - string.prototype.trim@1.2.8: - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - string.prototype.trim@1.2.9: dependencies: call-bind: 1.0.7 @@ -11837,24 +11481,12 @@ snapshots: es-abstract: 1.23.3 es-object-atoms: 1.0.0 - string.prototype.trimend@1.0.7: - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - string.prototype.trimend@1.0.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - string.prototype.trimstart@1.0.7: - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.7 @@ -11961,7 +11593,11 @@ snapshots: glob: 7.2.3 minimatch: 3.1.2 - text-extensions@2.4.0: {} + test-exclude@7.0.1: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 10.4.2 + minimatch: 9.0.4 text-table@0.2.0: {} @@ -11978,8 +11614,6 @@ snapshots: readable-stream: 2.3.8 xtend: 4.0.2 - through@2.3.8: {} - time-span@5.1.0: dependencies: convert-hrtime: 5.0.0 @@ -12079,25 +11713,12 @@ snapshots: type-fest@4.9.0: {} - typed-array-buffer@1.0.0: - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 - typed-array-buffer@1.0.2: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-typed-array: 1.1.13 - typed-array-byte-length@1.0.0: - dependencies: - call-bind: 1.0.5 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 - typed-array-byte-length@1.0.1: dependencies: call-bind: 1.0.7 @@ -12106,14 +11727,6 @@ snapshots: has-proto: 1.0.3 is-typed-array: 1.1.13 - typed-array-byte-offset@1.0.0: - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 - typed-array-byte-offset@1.0.2: dependencies: available-typed-arrays: 1.0.7 @@ -12123,12 +11736,6 @@ snapshots: has-proto: 1.0.3 is-typed-array: 1.1.13 - typed-array-length@1.0.4: - dependencies: - call-bind: 1.0.5 - for-each: 0.3.3 - is-typed-array: 1.1.12 - typed-array-length@1.0.6: dependencies: call-bind: 1.0.7 @@ -12138,11 +11745,11 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - typescript-eslint@8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3): + typescript-eslint@8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.0.0-alpha.34(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3))(eslint@9.3.0)(typescript@5.3.3) - '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3) - '@typescript-eslint/utils': 8.0.0-alpha.34(eslint@9.3.0)(typescript@5.3.3) + '@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) optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: @@ -12156,7 +11763,7 @@ snapshots: unbox-primitive@1.0.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 @@ -12245,14 +11852,14 @@ snapshots: inherits: 2.0.4 is-arguments: 1.1.1 is-generator-function: 1.0.10 - is-typed-array: 1.1.12 - which-typed-array: 1.1.13 + is-typed-array: 1.1.13 + which-typed-array: 1.1.15 uuid@3.4.0: {} v8-to-istanbul@9.2.0: dependencies: - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.25 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 @@ -12305,7 +11912,7 @@ snapshots: which-builtin-type@1.1.3: dependencies: function.prototype.name: 1.1.6 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-async-function: 2.0.0 is-date-object: 1.0.5 is-finalizationregistry: 1.0.2 @@ -12315,7 +11922,7 @@ snapshots: isarray: 2.0.5 which-boxed-primitive: 1.0.2 which-collection: 1.0.1 - which-typed-array: 1.1.13 + which-typed-array: 1.1.15 which-collection@1.0.1: dependencies: @@ -12326,14 +11933,6 @@ snapshots: which-module@2.0.1: {} - which-typed-array@1.1.13: - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 - which-typed-array@1.1.15: dependencies: available-typed-arrays: 1.0.7 @@ -12408,13 +12007,11 @@ snapshots: yallist@4.0.0: {} - yaml-eslint-parser@1.2.2: + yaml-eslint-parser@1.2.3: dependencies: eslint-visitor-keys: 3.4.3 lodash: 4.17.21 - yaml: 2.3.4 - - yaml@2.3.4: {} + yaml: 2.4.2 yaml@2.4.2: {} diff --git a/tsconfig-prod.json b/tsconfig-prod.json index 18f0ee592..3b84912f2 100644 --- a/tsconfig-prod.json +++ b/tsconfig-prod.json @@ -11,7 +11,7 @@ "declarationMap": true, "strict": true, "skipLibCheck": true, - "target": "es2017", + "target": "es2018", "outDir": "dist" }, "include": [ diff --git a/tsconfig.json b/tsconfig.json index 74387d481..226114c08 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,7 +10,7 @@ "declarationMap": true, "strict": true, "skipLibCheck": true, - "target": "es2017", + "target": "es2018", "outDir": "dist" }, "include": [ From 6371c4a3901a44cc05fcf6718a28179087b19d89 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 5 Jul 2024 10:37:15 +0800 Subject: [PATCH 201/273] fix(`check-param-names`): proper error messages for rest elements; fixes #1225 Also: - chore: update pnpm action setup --- .github/workflows/feature.yaml | 6 +-- .github/workflows/main.yaml | 2 +- src/jsdocUtils.js | 5 ++- src/rules/checkParamNames.js | 30 ++++++++++++- test/rules/assertions/checkParamNames.js | 56 +++++++++++++++++++++++- 5 files changed, 92 insertions(+), 7 deletions(-) diff --git a/.github/workflows/feature.yaml b/.github/workflows/feature.yaml index 85dd75ae0..db380e999 100644 --- a/.github/workflows/feature.yaml +++ b/.github/workflows/feature.yaml @@ -3,7 +3,7 @@ jobs: runs-on: ubuntu-latest name: Lint steps: - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 with: version: latest - name: setup repository @@ -22,7 +22,7 @@ jobs: runs-on: ubuntu-latest name: Test (Node.js ${{ matrix.node_js_version }}) steps: - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 with: version: latest - name: setup repository @@ -46,7 +46,7 @@ jobs: runs-on: ubuntu-latest name: Build steps: - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 with: version: latest - name: setup repository diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index da2a9412f..27d56a17b 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -4,7 +4,7 @@ jobs: environment: release name: Release steps: - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 with: version: latest - name: setup repository diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index 4b9c67280..f9272c5f5 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -436,7 +436,10 @@ const getFunctionParameterNames = ( name: /** @type {import('@typescript-eslint/types').TSESTree.Identifier} */ ( /** @type {import('@typescript-eslint/types').TSESTree.RestElement} */ ( param - ).argument).name, + // @ts-expect-error Ok + ).argument).name ?? param?.argument?.elements?.map(({name}) => { + return name; + }), restElement: true, }; } diff --git a/src/rules/checkParamNames.js b/src/rules/checkParamNames.js index b1b8cd9ec..54ac72b9c 100644 --- a/src/rules/checkParamNames.js +++ b/src/rules/checkParamNames.js @@ -87,6 +87,24 @@ const validateParameterNames = ( return true; } + if ( + typeof functionParameterName === 'object' && + 'name' in functionParameterName && + Array.isArray(functionParameterName.name) + ) { + const actualName = tag.name.trim(); + const expectedName = functionParameterName.name[index]; + if (actualName === expectedName) { + thisOffset--; + return false; + } + report( + `Expected @${targetTagName} name to be "${expectedName}". Got "${actualName}".`, + null, + tag, + ); + return true; + } if (Array.isArray(functionParameterName)) { if (!checkDestructured) { @@ -236,6 +254,7 @@ const validateParameterNames = ( ]) => { return name.trim(); }); + const expectedNames = functionParameterNames.map((item, idx) => { if (/** * @type {[string|undefined, (import('../jsdocUtils.js').FlattendRootInfo & { @@ -260,7 +279,15 @@ const validateParameterNames = ( } report( - `Expected @${targetTagName} names to be "${expectedNames.join(', ')}". Got "${actualNames.join(', ')}".`, + `Expected @${targetTagName} names to be "${ + expectedNames.map((expectedName) => { + return typeof expectedName === 'object' && + 'name' in expectedName && + expectedName.restElement + ? '...' + expectedName.name + : expectedName; + }).join(', ') + }". Got "${actualNames.join(', ')}".`, null, tag, ); @@ -352,6 +379,7 @@ export default iterateJsdoc(({ } const functionParameterNames = utils.getFunctionParameterNames(useDefaultObjectProperties); + const targetTagName = /** @type {string} */ (utils.getPreferredTagName({ tagName: 'param', })); diff --git a/test/rules/assertions/checkParamNames.js b/test/rules/assertions/checkParamNames.js index 851f5df59..7804b499b 100644 --- a/test/rules/assertions/checkParamNames.js +++ b/test/rules/assertions/checkParamNames.js @@ -1276,7 +1276,46 @@ export default { parser: typescriptEslintParser, sourceType: 'module', }, - } + }, + { + code: ` + interface A { + /** + * @param params Values for the placeholders + */ + getText(key: string, ...params: string[]): string + } + `, + errors: [ + { + line: 4, + message: 'Expected @param names to be "key, ...params". Got "params".', + }, + ], + languageOptions: { + parser: typescriptEslintParser, + }, + }, + { + code: ` + /** + * @param arg Arg + */ + export function fn(...[type, arg]: FnArgs): void { + // ... + } + `, + errors: [ + { + line: 3, + message: 'Expected @param name to be "type". Got "arg".', + }, + ], + languageOptions: { + parser: typescriptEslintParser, + sourceType: 'module', + }, + }, ], valid: [ { @@ -1961,5 +2000,20 @@ export default { }, ], }, + { + code: ` + /** + * @param type Type + * @param arg Arg + */ + export function fn(...[type, arg]: FnArgs): void { + // ... + } + `, + languageOptions: { + parser: typescriptEslintParser, + sourceType: 'module', + }, + }, ], }; From 394b85f3d5e0e391ca6b8fd77e2943feee07bd7a Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 5 Jul 2024 12:55:15 +0800 Subject: [PATCH 202/273] fix(`require-param`): proper errors/fixing for succeeding destructured objects; fixes #762 --- docs/rules/check-param-names.md | 24 +++++++++++++++++++ docs/rules/require-param.md | 11 +++++++++ src/rules/requireParam.js | 14 +++++------ test/rules/assertions/requireParam.js | 34 +++++++++++++++++++++++++++ 4 files changed, 76 insertions(+), 7 deletions(-) diff --git a/docs/rules/check-param-names.md b/docs/rules/check-param-names.md index fc4c62ec2..f6b700304 100644 --- a/docs/rules/check-param-names.md +++ b/docs/rules/check-param-names.md @@ -665,6 +665,22 @@ export interface B { methodB(paramB: string): void }; // Message: Expected @param names to be "paramB". Got "paramA". + +interface A { + /** + * @param params Values for the placeholders + */ + getText(key: string, ...params: string[]): string +} +// Message: Expected @param names to be "key, ...params". Got "params". + +/** + * @param arg Arg + */ +export function fn(...[type, arg]: FnArgs): void { + // ... +} +// Message: Expected @param name to be "type". Got "arg". ```` @@ -1095,5 +1111,13 @@ function quux (foo, bar) { function quux (foo, bar) { } // "jsdoc/check-param-names": ["error"|"warn", {"disableMissingParamChecks":true}] + +/** + * @param type Type + * @param arg Arg + */ +export function fn(...[type, arg]: FnArgs): void { + // ... +} ```` diff --git a/docs/rules/require-param.md b/docs/rules/require-param.md index 61560370c..b6e6dcb1e 100644 --- a/docs/rules/require-param.md +++ b/docs/rules/require-param.md @@ -1151,6 +1151,17 @@ class A { } // "jsdoc/require-param": ["error"|"warn", {"contexts":["MethodDefinition"]}] // Message: Missing JSDoc @param "btnState" declaration. + +class A { + /** + * @param root0 + * @param root0.foo + */ + quux({ foo }, { bar }) { + console.log(foo, bar); + } +} +// Message: Missing JSDoc @param "root1" declaration. ```` diff --git a/src/rules/requireParam.js b/src/rules/requireParam.js index 7be64b952..33f50db77 100644 --- a/src/rules/requireParam.js +++ b/src/rules/requireParam.js @@ -220,10 +220,10 @@ export default iterateJsdoc(({ functionParameterIdx, functionParameterName, ] of functionParameterNames.entries()) { + let inc; if (Array.isArray(functionParameterName)) { - const matchedJsdoc = shallowJsdocParameterNames[functionParameterIdx - thisOffset] || - jsdocParameterNames[functionParameterIdx - thisOffset]; + const matchedJsdoc = shallowJsdocParameterNames[functionParameterIdx - thisOffset]; /** @type {string} */ let rootName; @@ -237,12 +237,12 @@ export default iterateJsdoc(({ } else { rootName = nextRootName; inc = incremented; - [ - nextRootName, - incremented, - namer, - ] = namer(); } + [ + nextRootName, + incremented, + namer, + ] = namer(); const { hasRestElement, diff --git a/test/rules/assertions/requireParam.js b/test/rules/assertions/requireParam.js index 7c29734f3..675e1039e 100644 --- a/test/rules/assertions/requireParam.js +++ b/test/rules/assertions/requireParam.js @@ -2493,6 +2493,40 @@ export default { parser: typescriptEslintParser }, }, + { + code: ` + class A { + /** + * @param root0 + * @param root0.foo + */ + quux({ foo }, { bar }) { + console.log(foo, bar); + } + } + `, + errors: [ + { + message: 'Missing JSDoc @param "root1" declaration.', + }, + { + message: 'Missing JSDoc @param "root1.bar" declaration.', + } + ], + output: ` + class A { + /** + * @param root0 + * @param root0.foo + * @param root1 + * @param root1.bar + */ + quux({ foo }, { bar }) { + console.log(foo, bar); + } + } + `, + }, ], valid: [ { From d5fa8da257443f59898d9257b1a9993695c7e51d Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 5 Jul 2024 19:49:16 +0800 Subject: [PATCH 203/273] feat: new rule `convert-to-jsdoc-comments`; fixes #1002 --- .README/rules/convert-to-jsdoc-comments.md | 62 +++ docs/rules/convert-to-jsdoc-comments.md | 179 +++++++++ package.json | 2 +- pnpm-lock.yaml | 17 +- src/bin/generateRule.js | 2 +- src/index.js | 3 + src/rules/convertToJsdocComments.js | 213 ++++++++++ .../assertions/convertToJsdocComments.js | 369 ++++++++++++++++++ test/rules/ruleNames.json | 1 + 9 files changed, 844 insertions(+), 4 deletions(-) create mode 100644 .README/rules/convert-to-jsdoc-comments.md create mode 100644 docs/rules/convert-to-jsdoc-comments.md create mode 100644 src/rules/convertToJsdocComments.js create mode 100644 test/rules/assertions/convertToJsdocComments.js diff --git a/.README/rules/convert-to-jsdoc-comments.md b/.README/rules/convert-to-jsdoc-comments.md new file mode 100644 index 000000000..4b9874a4b --- /dev/null +++ b/.README/rules/convert-to-jsdoc-comments.md @@ -0,0 +1,62 @@ +# `convert-to-jsdoc-comments` + +Converts single line or non-JSDoc, multiline comments into JSDoc comments. + +## Options + +### `enableFixer` + +Set to `false` to disable fixing. + +### `lineOrBlockStyle` + +What style of comments to which to apply JSDoc conversion. + +- `block` - Applies to block-style comments (`/* ... */`) +- `line` - Applies to line-style comments (`// ...`) +- `both` - Applies to both block and line-style comments + +Defaults to `both`. + +### `enforceJsdocLineStyle` + +What policy to enforce on the conversion of non-JSDoc comments without +line breaks. (Non-JSDoc (mulitline) comments with line breaks will always +be converted to `multi` style JSDoc comments.) + +- `multi` - Convert to multi-line style +```js +/** + * Some text + */ +``` +- `single` - Convert to single-line style +```js +/** Some text */ +``` + +Defaults to `multi`. + +### `allowedPrefixes` + +An array of prefixes to allow at the beginning of a comment. + +Defaults to `['@ts-', 'istanbul ', 'c8 ', 'v8 ', 'eslint', 'prettier-']`. + +Supplying your own value overrides the defaults. + +||| +|---|---| +|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| +|Tags|(N/A)| +|Recommended|false| +|Settings|`minLines`, `maxLines`| +|Options|`enableFixer`, `enforceJsdocLineStyle`, `lineOrBlockStyle`| + +## Failing examples + + + +## Passing examples + + diff --git a/docs/rules/convert-to-jsdoc-comments.md b/docs/rules/convert-to-jsdoc-comments.md new file mode 100644 index 000000000..330721e40 --- /dev/null +++ b/docs/rules/convert-to-jsdoc-comments.md @@ -0,0 +1,179 @@ + + +# convert-to-jsdoc-comments + +Converts single line or non-JSDoc, multiline comments into JSDoc comments. + + + +## Options + + + +### enableFixer + +Set to `false` to disable fixing. + + + +### lineOrBlockStyle + +What style of comments to which to apply JSDoc conversion. + +- `block` - Applies to block-style comments (`/* ... */`) +- `line` - Applies to line-style comments (`// ...`) +- `both` - Applies to both block and line-style comments + +Defaults to `both`. + + + +### enforceJsdocLineStyle + +What policy to enforce on the conversion of non-JSDoc comments without +line breaks. (Non-JSDoc (mulitline) comments with line breaks will always +be converted to `multi` style JSDoc comments.) + +- `multi` - Convert to multi-line style +```js +/** + * Some text + */ +``` +- `single` - Convert to single-line style +```js +/** Some text */ +``` + +Defaults to `multi`. + + + +### allowedPrefixes + +An array of prefixes to allow at the beginning of a comment. + +Defaults to `['@ts-', 'istanbul ', 'c8 ', 'v8 ', 'eslint', 'prettier-']`. + +Supplying your own value overrides the defaults. + +||| +|---|---| +|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| +|Tags|(N/A)| +|Recommended|false| +|Settings|`minLines`, `maxLines`| +|Options|`enableFixer`, `enforceJsdocLineStyle`, `lineOrBlockStyle`| + + + +## Failing examples + +The following patterns are considered problems: + +````js +// A single line comment +function quux () {} +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"enforceJsdocLineStyle":"single"}] +// Message: Line comments should be JSDoc-style. + +// A single line comment +function quux () {} +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"contexts":[{"context":"FunctionDeclaration","inlineCommentBlock":true}]}] +// Message: Line comments should be JSDoc-style. + +// A single line comment +function quux () {} +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"enableFixer":false,"enforceJsdocLineStyle":"single"}] +// Message: Line comments should be JSDoc-style. + +// A single line comment +function quux () {} +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"lineOrBlockStyle":"line","enforceJsdocLineStyle":"single"}] +// Message: Line comments should be JSDoc-style. + +/* A single line comment */ +function quux () {} +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"enforceJsdocLineStyle":"single"}] +// Message: Block comments should be JSDoc-style. + +/* A single line comment */ +function quux () {} +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"lineOrBlockStyle":"block","enforceJsdocLineStyle":"single"}] +// Message: Block comments should be JSDoc-style. + +// A single line comment +function quux () {} +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"enforceJsdocLineStyle":"multi"}] +// Message: Line comments should be JSDoc-style. + +// A single line comment +function quux () {} +// Message: Line comments should be JSDoc-style. + +/* A single line comment */ +function quux () {} +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"enforceJsdocLineStyle":"multi"}] +// Message: Block comments should be JSDoc-style. + +// Single line comment +function quux() { + +} +// Settings: {"jsdoc":{"structuredTags":{"see":{"name":false,"required":["name"]}}}} +// Message: Cannot add "name" to `require` with the tag's `name` set to `false` + +/* Entity to represent a user in the system. */ +@Entity('users', getVal()) +export class User { +} +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"contexts":["ClassDeclaration"]}] +// Message: Block comments should be JSDoc-style. + +/* A single line comment */ function quux () {} +// Settings: {"jsdoc":{"minLines":0,"maxLines":0}} +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"enforceJsdocLineStyle":"single"}] +// Message: Block comments should be JSDoc-style. +```` + + + + + +## Passing examples + +The following patterns are not considered problems: + +````js +/** A single line comment */ +function quux () {} +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"enforceJsdocLineStyle":"single"}] + +/** A single line comment */ +function quux () {} +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"enforceJsdocLineStyle":"multi"}] + +/** A single line comment */ +function quux () {} +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"lineOrBlockStyle":"line"}] + +/** A single line comment */ +function quux () {} +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"lineOrBlockStyle":"block"}] + +/* A single line comment */ +function quux () {} +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"lineOrBlockStyle":"line","enforceJsdocLineStyle":"single"}] + +// A single line comment +function quux () {} +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"lineOrBlockStyle":"block","enforceJsdocLineStyle":"single"}] + +// @ts-expect-error +function quux () {} + +// @custom-something +function quux () {} +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"allowedPrefixes":["@custom-"]}] +```` + diff --git a/package.json b/package.json index 57ac8f39f..f6b0ddae6 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "url": "http://gajus.com" }, "dependencies": { - "@es-joy/jsdoccomment": "~0.43.1", + "@es-joy/jsdoccomment": "~0.44.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.3.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4706cb98c..ca6713633 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@es-joy/jsdoccomment': - specifier: ~0.43.1 - version: 0.43.1 + specifier: ~0.44.0 + version: 0.44.0 are-docs-informative: specifier: ^0.0.2 version: 0.0.2 @@ -957,6 +957,10 @@ packages: resolution: {integrity: sha512-I238eDtOolvCuvtxrnqtlBaw0BwdQuYqK7eA6XIonicMdOOOb75mqdIzkGDUbS04+1Di007rgm9snFRNeVrOog==} engines: {node: '>=16'} + '@es-joy/jsdoccomment@0.44.0': + resolution: {integrity: sha512-2KR2uvAhfrZeVJKBhQ5UU0LK7n9NU4RHs2B0bIjLkieZXsrkCMqWCJhwwSJ67qHoqjy4jj0+3qjl5SM2MnNmEg==} + engines: {node: '>=16'} + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6653,6 +6657,15 @@ snapshots: esquery: 1.5.0 jsdoc-type-pratt-parser: 4.0.0 + '@es-joy/jsdoccomment@0.44.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 + jsdoc-type-pratt-parser: 4.0.0 + '@eslint-community/eslint-utils@4.4.0(eslint@8.56.0)': dependencies: eslint: 8.56.0 diff --git a/src/bin/generateRule.js b/src/bin/generateRule.js index 7216f0ebe..2fd8e1cd4 100644 --- a/src/bin/generateRule.js +++ b/src/bin/generateRule.js @@ -121,7 +121,7 @@ export default iterateJsdoc(({ await fs.writeFile(ruleTestPath, ruleTestTemplate); } - const ruleReadmeTemplate = `### \`${ruleName}\` + const ruleReadmeTemplate = `# \`${ruleName}\` ||| |---|---| diff --git a/src/index.js b/src/index.js index 3ffec00a7..535ed0b62 100644 --- a/src/index.js +++ b/src/index.js @@ -9,6 +9,7 @@ import checkSyntax from './rules/checkSyntax.js'; import checkTagNames from './rules/checkTagNames.js'; import checkTypes from './rules/checkTypes.js'; import checkValues from './rules/checkValues.js'; +import convertToJsdocComments from './rules/convertToJsdocComments.js'; import emptyTags from './rules/emptyTags.js'; import implementsOnClasses from './rules/implementsOnClasses.js'; import importsAsDependencies from './rules/importsAsDependencies.js'; @@ -81,6 +82,7 @@ const index = { 'check-tag-names': checkTagNames, 'check-types': checkTypes, 'check-values': checkValues, + 'convert-to-jsdoc-comments': convertToJsdocComments, 'empty-tags': emptyTags, 'implements-on-classes': implementsOnClasses, 'imports-as-dependencies': importsAsDependencies, @@ -153,6 +155,7 @@ const createRecommendedRuleset = (warnOrError, flatName) => { 'jsdoc/check-tag-names': warnOrError, 'jsdoc/check-types': warnOrError, 'jsdoc/check-values': warnOrError, + 'jsdoc/convert-to-jsdoc-comments': 'off', 'jsdoc/empty-tags': warnOrError, 'jsdoc/implements-on-classes': warnOrError, 'jsdoc/imports-as-dependencies': 'off', diff --git a/src/rules/convertToJsdocComments.js b/src/rules/convertToJsdocComments.js new file mode 100644 index 000000000..111a59c26 --- /dev/null +++ b/src/rules/convertToJsdocComments.js @@ -0,0 +1,213 @@ +import iterateJsdoc from '../iterateJsdoc.js'; +import { + getSettings, +} from '../iterateJsdoc.js'; +import jsdocUtils from '../jsdocUtils.js'; +import { + getNonJsdocComment, + getDecorator, + getReducedASTNode, +} from '@es-joy/jsdoccomment'; + +/** @type {import('eslint').Rule.RuleModule} */ +export default { + create (context) { + /* c8 ignore next -- Fallback to deprecated method */ + const { + sourceCode = context.getSourceCode(), + } = context; + const settings = getSettings(context); + if (!settings) { + return {}; + } + + const { + contexts = settings.contexts || [], + enableFixer = true, + enforceJsdocLineStyle = 'multi', + lineOrBlockStyle = 'both', + allowedPrefixes = ['@ts-', 'istanbul ', 'c8 ', 'v8 ', 'eslint', 'prettier-'] + } = context.options[0] ?? {}; + + /** + * @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; + } + + 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} */ + let baseNode = getReducedASTNode(node, sourceCode); + + const decorator = getDecorator(baseNode); + if (decorator) { + baseNode = decorator; + } + + const indent = jsdocUtils.getIndent({ + text: sourceCode.getText( + /** @type {import('eslint').Rule.Node} */ (baseNode), + /** @type {import('eslint').AST.SourceLocation} */ + ( + /** @type {import('eslint').Rule.Node} */ (baseNode).loc + ).start.column, + ), + }); + + const { + inlineCommentBlock, + } = + /** + * @type {{ + * context: string, + * inlineCommentBlock: boolean, + * minLineCount: import('../iterateJsdoc.js').Integer + * }[]} + */ (contexts).find((contxt) => { + if (typeof contxt === 'string') { + return false; + } + + const { + context: ctxt, + } = contxt; + return ctxt === node.type; + }) || {}; + const insertion = ( + inlineCommentBlock || enforceJsdocLineStyle === 'single' + ? `/** ${comment.value.trim()} ` + : `/**\n${indent}*${comment.value.trimEnd()}\n${indent}` + ) + + `*/${'\n'.repeat((lines || 1) - 1)}`; + + return fixer.replaceText( + /** @type {import('eslint').AST.Token} */ + (comment), + insertion, + ); + }; + + /** + * @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) + }, + }; + + context.report({ + fix: enableFixer ? fix : null, + loc, + messageId, + node, + }); + }; + + if (comment.type === 'Block') { + if (lineOrBlockStyle === 'line') { + return; + } + report('blockCommentsJsdocStyle'); + return; + } + + if (comment.type === 'Line') { + if (lineOrBlockStyle === 'block') { + return; + } + report('lineCommentsJsdocStyle'); + } + }; + + return { + ...jsdocUtils.getContextObject( + jsdocUtils.enforcedContexts(context, true, settings), + checkNonJsdoc, + ) + }; + }, + meta: { + fixable: 'code', + + messages: { + blockCommentsJsdocStyle: 'Block comments should be JSDoc-style.', + lineCommentsJsdocStyle: 'Line comments should be JSDoc-style.', + }, + + docs: { + description: 'Converts non-JSDoc comments preceding 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: [ + { + additionalProperties: false, + properties: { + allowedPrefixes: { + type: 'array', + items: { + type: 'string' + } + }, + enableFixer: { + type: 'boolean' + }, + enforceJsdocLineStyle: { + type: 'string', + enum: ['multi', 'single'] + }, + lineOrBlockStyle: { + type: 'string', + enum: ['block', 'line', 'both'] + }, + contexts: { + items: { + anyOf: [ + { + type: 'string', + }, + { + additionalProperties: false, + properties: { + context: { + type: 'string', + }, + inlineCommentBlock: { + type: 'boolean', + }, + }, + type: 'object', + }, + ], + }, + type: 'array', + }, + }, + type: 'object', + }, + ], + type: 'suggestion', + }, +}; diff --git a/test/rules/assertions/convertToJsdocComments.js b/test/rules/assertions/convertToJsdocComments.js new file mode 100644 index 000000000..b92663817 --- /dev/null +++ b/test/rules/assertions/convertToJsdocComments.js @@ -0,0 +1,369 @@ +import {parser as typescriptEslintParser} from 'typescript-eslint'; + +export default { + invalid: [ + { + code: ` + // A single line comment + function quux () {} + `, + errors: [ + { + line: 2, + message: 'Line comments should be JSDoc-style.', + }, + ], + options: [ + { + enforceJsdocLineStyle: 'single' + } + ], + output: ` + /** A single line comment */ + function quux () {} + ` + }, + { + code: ` + // A single line comment + function quux () {} + `, + errors: [ + { + line: 2, + message: 'Line comments should be JSDoc-style.', + }, + ], + options: [ + { + contexts: [ + { + context: 'FunctionDeclaration', + inlineCommentBlock: true + } + ] + } + ], + output: ` + /** A single line comment */ + function quux () {} + ` + }, + { + code: ` + // A single line comment + function quux () {} + `, + errors: [ + { + line: 2, + message: 'Line comments should be JSDoc-style.', + }, + ], + options: [ + { + enableFixer: false, + enforceJsdocLineStyle: 'single' + } + ], + }, + { + code: ` + // A single line comment + function quux () {} + `, + errors: [ + { + line: 2, + message: 'Line comments should be JSDoc-style.', + }, + ], + options: [ + { + lineOrBlockStyle: 'line', + enforceJsdocLineStyle: 'single' + } + ], + output: ` + /** A single line comment */ + function quux () {} + ` + }, + { + code: ` + /* A single line comment */ + function quux () {} + `, + errors: [ + { + line: 2, + message: 'Block comments should be JSDoc-style.', + }, + ], + options: [ + { + enforceJsdocLineStyle: 'single' + } + ], + output: ` + /** A single line comment */ + function quux () {} + `, + }, + { + code: ` + /* A single line comment */ + function quux () {} + `, + errors: [ + { + line: 2, + message: 'Block comments should be JSDoc-style.', + }, + ], + options: [ + { + lineOrBlockStyle: 'block', + enforceJsdocLineStyle: 'single' + } + ], + output: ` + /** A single line comment */ + function quux () {} + `, + }, + { + code: ` + // A single line comment + function quux () {} + `, + errors: [ + { + line: 2, + message: 'Line comments should be JSDoc-style.', + }, + ], + options: [ + { + enforceJsdocLineStyle: 'multi' + } + ], + output: ` + /** + * A single line comment + */ + function quux () {} + `, + }, + { + code: ` + // A single line comment + function quux () {} + `, + errors: [ + { + line: 2, + message: 'Line comments should be JSDoc-style.', + }, + ], + output: ` + /** + * A single line comment + */ + function quux () {} + `, + }, + { + code: ` + /* A single line comment */ + function quux () {} + `, + errors: [ + { + line: 2, + message: 'Block comments should be JSDoc-style.', + }, + ], + options: [ + { + enforceJsdocLineStyle: 'multi' + } + ], + output: ` + /** + * A single line comment + */ + function quux () {} + `, + }, + { + code: ` + // Single line comment + function quux() { + + } + `, + errors: [ + { + line: 1, + message: 'Cannot add "name" to `require` with the tag\'s `name` set to `false`', + }, + ], + settings: { + jsdoc: { + structuredTags: { + see: { + name: false, + required: [ + 'name', + ], + }, + }, + }, + }, + }, + { + code: ` + /* Entity to represent a user in the system. */ + @Entity('users', getVal()) + export class User { + } + `, + errors: [ + { + line: 2, + message: 'Block comments should be JSDoc-style.', + }, + ], + options: [ + { + contexts: ['ClassDeclaration'] + } + ], + output: ` + /** + * Entity to represent a user in the system. + */ + @Entity('users', getVal()) + export class User { + } + `, + languageOptions: { + parser: typescriptEslintParser, + sourceType: 'module', + }, + }, + { + code: ` + /* A single line comment */ function quux () {} + `, + errors: [ + { + line: 2, + message: 'Block comments should be JSDoc-style.', + }, + ], + options: [ + { + enforceJsdocLineStyle: 'single' + } + ], + settings: { + jsdoc: { + minLines: 0, + maxLines: 0, + }, + }, + output: ` + /** A single line comment */ function quux () {} + ` + }, + ], + valid: [ + { + code: ` + /** A single line comment */ + function quux () {} + `, + options: [ + { + enforceJsdocLineStyle: 'single' + } + ], + }, + { + code: ` + /** A single line comment */ + function quux () {} + `, + options: [ + { + enforceJsdocLineStyle: 'multi' + } + ], + }, + { + code: ` + /** A single line comment */ + function quux () {} + `, + options: [ + { + lineOrBlockStyle: 'line', + } + ], + }, + { + code: ` + /** A single line comment */ + function quux () {} + `, + options: [ + { + lineOrBlockStyle: 'block', + } + ], + }, + { + code: ` + /* A single line comment */ + function quux () {} + `, + options: [ + { + lineOrBlockStyle: 'line', + enforceJsdocLineStyle: 'single' + } + ], + }, + { + code: ` + // A single line comment + function quux () {} + `, + options: [ + { + lineOrBlockStyle: 'block', + enforceJsdocLineStyle: 'single' + } + ], + }, + { + code: ` + // @ts-expect-error + function quux () {} + `, + }, + { + code: ` + // @custom-something + function quux () {} + `, + options: [ + { + allowedPrefixes: ['@custom-'] + } + ], + }, + ], +}; diff --git a/test/rules/ruleNames.json b/test/rules/ruleNames.json index 24038af51..15418c0d8 100644 --- a/test/rules/ruleNames.json +++ b/test/rules/ruleNames.json @@ -10,6 +10,7 @@ "check-tag-names", "check-types", "check-values", + "convert-to-jsdoc-comments", "empty-tags", "implements-on-classes", "imports-as-dependencies", From e570b79073c4f13ba99444aa1db6123ef9abc6d5 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 9 Jul 2024 12:03:07 +0800 Subject: [PATCH 204/273] refactor: work on converting to jsdoc comments (after) --- .README/rules/convert-to-jsdoc-comments.md | 25 +- .ncurc.cjs | 5 + docs/rules/convert-to-jsdoc-comments.md | 73 +- package.json | 22 +- pnpm-lock.yaml | 819 +++++++++--------- src/jsdocUtils.js | 2 +- src/rules/convertToJsdocComments.js | 301 +++++-- src/rules/requireJsdoc.js | 12 +- .../assertions/convertToJsdocComments.js | 221 ++++- 9 files changed, 983 insertions(+), 497 deletions(-) diff --git a/.README/rules/convert-to-jsdoc-comments.md b/.README/rules/convert-to-jsdoc-comments.md index 4b9874a4b..8847e6a6a 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 fc63f4815..36ef109e7 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 330721e40..40b8ed738 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 f6b0ddae6..7bee12ce6 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 ca6713633..1c62e42b8 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 f9272c5f5..96ef6ac92 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 111a59c26..81f15b4da 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 0ebcbb0a9..521f191a0 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 b92663817..b6692c886 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'] + } + ], + }, ], }; From 1bb8aa54722a6790377a7962ed6f74467863a962 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 10 Jul 2024 08:03:44 +0800 Subject: [PATCH 205/273] chore: enable ESM-only devDeps --- .ncurc.cjs | 6 +- package.json | 8 +-- pnpm-lock.yaml | 146 ++++++++++++++++++++++++------------------------- 3 files changed, 77 insertions(+), 83 deletions(-) diff --git a/.ncurc.cjs b/.ncurc.cjs index 36ef109e7..503643a43 100644 --- a/.ncurc.cjs +++ b/.ncurc.cjs @@ -2,12 +2,8 @@ module.exports = { reject: [ - // Todo: When package converted to ESM - 'camelcase', - 'chai', - 'decamelize', + // Todo: When package converted to ESM only 'escape-string-regexp', - 'open-editor', // todo[engine:node@>=20]: Can reenable 'glob', diff --git a/package.json b/package.json index 7bee12ce6..27bf8a661 100644 --- a/package.json +++ b/package.json @@ -47,10 +47,10 @@ "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", + "camelcase": "^8.0.0", + "chai": "^5.1.1", "cross-env": "^7.0.3", - "decamelize": "^5.0.1", + "decamelize": "^6.0.0", "eslint": "9.6.0", "eslint-config-canonical": "~43.0.13", "espree": "^10.1.0", @@ -63,7 +63,7 @@ "lint-staged": "^15.2.7", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.6.0", - "open-editor": "^3.0.0", + "open-editor": "^4.1.1", "replace": "^1.2.2", "rimraf": "^5.0.7", "semantic-release": "^24.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1c62e42b8..cebb6297b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -127,17 +127,17 @@ importers: specifier: ^10.1.2 version: 10.1.2 camelcase: - specifier: ^6.3.0 - version: 6.3.0 + specifier: ^8.0.0 + version: 8.0.0 chai: - specifier: ^4.3.10 - version: 4.3.10 + specifier: ^5.1.1 + version: 5.1.1 cross-env: specifier: ^7.0.3 version: 7.0.3 decamelize: - specifier: ^5.0.1 - version: 5.0.1 + specifier: ^6.0.0 + version: 6.0.0 eslint: specifier: 9.6.0 version: 9.6.0 @@ -175,8 +175,8 @@ importers: specifier: ^10.6.0 version: 10.6.0 open-editor: - specifier: ^3.0.0 - version: 3.0.0 + specifier: ^4.1.1 + version: 4.1.1 replace: specifier: ^1.2.2 version: 1.2.2 @@ -1740,8 +1740,9 @@ packages: assert@2.1.0: resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} - assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} assign-symbols@1.0.0: resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} @@ -1918,15 +1919,19 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} + camelcase@8.0.0: + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} + caniuse-lite@1.0.30001606: resolution: {integrity: sha512-LPbwnW4vfpJId225pwjZJOgX1m9sGfbw/RKJvw/t0QhYOOaTXHvkjVGFGPpvwEzufrjvTlsULnVTxdy4/6cqkg==} caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} - chai@4.3.10: - resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} - engines: {node: '>=4'} + chai@5.1.1: + resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} + engines: {node: '>=12'} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -1947,8 +1952,9 @@ packages: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} - check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} @@ -2213,16 +2219,16 @@ packages: resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} engines: {node: '>=10'} - decamelize@5.0.1: - resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} - engines: {node: '>=10'} + decamelize@6.0.0: + resolution: {integrity: sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} decode-uri-component@0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} - deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} deep-equal@2.2.3: @@ -2240,6 +2246,10 @@ packages: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -2351,9 +2361,9 @@ packages: resolution: {integrity: sha512-apikxMgkipkgTvMdRT9MNqWx5VLOci79F4VBd7Op/7OPjjoanjdAvn6fglMCCEf/1bAh8eOiuEVCUs4V3qP3nQ==} engines: {node: ^18.17 || >=20.6.1} - env-editor@0.4.2: - resolution: {integrity: sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==} - engines: {node: '>=8'} + env-editor@1.1.0: + resolution: {integrity: sha512-7AXskzN6T7Q9TFcKAGJprUbpQa4i1VsAetO9rdBqbGMGlragTziBgWt4pVYJMBWHQlLoX0buy6WFikzPH4Qjpw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} @@ -3745,9 +3755,9 @@ packages: resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} engines: {node: '>=14'} - line-column-path@2.0.0: - resolution: {integrity: sha512-nz3A+vi4bElhwd62E9+Qk/f9BDYLSzD/4Hy1rir0I4GnMxSTezSymzANyph5N1PgRZ3sSbA+yR5hOuXxc71a0Q==} - engines: {node: '>=8'} + line-column-path@3.0.0: + resolution: {integrity: sha512-Atocnm7Wr9nuvAn97yEPQa3pcQI5eLQGBz+m6iTb+CVw+IOzYB9MrYK7jI7BfC9ISnT4Fu0eiwhAScV//rp4Hw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -3832,8 +3842,8 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + loupe@3.1.1: + resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} lowercase-keys@1.0.1: resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} @@ -4280,13 +4290,13 @@ packages: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} - open-editor@3.0.0: - resolution: {integrity: sha512-00Nqoa7k8F4AK1oSFMIIhYku+essXiCljR2L2kV+bl5j90ANgbQgzEeTdZu23LsikDoz+KfhyRHpGLAwpQhugA==} - engines: {node: '>=10'} + open-editor@4.1.1: + resolution: {integrity: sha512-SYtGeZ9Zkzj/naoZaEF9LzwDYEGwuqQ4Fx5E3xdVRN98LFJjvMhG/ElByFEOVOiXepGra/Wi1fA4i/E1fXSBsw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - open@7.4.2: - resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} - engines: {node: '>=8'} + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} optionator@0.8.3: resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} @@ -4446,8 +4456,9 @@ packages: resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} engines: {node: '>=12'} - pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} @@ -5268,18 +5279,10 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} - type-fest@0.4.1: - resolution: {integrity: sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==} - engines: {node: '>=6'} - type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'} @@ -7741,7 +7744,7 @@ snapshots: object.assign: 4.1.5 util: 0.12.5 - assertion-error@1.1.0: {} + assertion-error@2.0.1: {} assign-symbols@1.0.0: {} @@ -7951,19 +7954,19 @@ snapshots: camelcase@6.3.0: {} + camelcase@8.0.0: {} + caniuse-lite@1.0.30001606: {} caseless@0.12.0: {} - chai@4.3.10: + chai@5.1.1: dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.3 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.1 + pathval: 2.0.0 chalk@2.4.2: dependencies: @@ -7982,9 +7985,7 @@ snapshots: char-regex@1.0.2: {} - check-error@1.0.3: - dependencies: - get-func-name: 2.0.2 + check-error@2.1.1: {} chokidar@3.5.3: dependencies: @@ -8260,13 +8261,11 @@ snapshots: decamelize@4.0.0: {} - decamelize@5.0.1: {} + decamelize@6.0.0: {} decode-uri-component@0.2.2: {} - deep-eql@4.1.3: - dependencies: - type-detect: 4.0.8 + deep-eql@5.0.2: {} deep-equal@2.2.3: dependencies: @@ -8299,6 +8298,8 @@ snapshots: es-errors: 1.3.0 gopd: 1.0.1 + define-lazy-prop@2.0.0: {} + define-properties@1.2.1: dependencies: define-data-property: 1.1.4 @@ -8411,7 +8412,7 @@ snapshots: execa: 8.0.1 java-properties: 1.0.2 - env-editor@0.4.2: {} + env-editor@1.1.0: {} env-paths@2.2.1: {} @@ -10141,9 +10142,9 @@ snapshots: lilconfig@3.1.1: {} - line-column-path@2.0.0: + line-column-path@3.0.0: dependencies: - type-fest: 0.4.1 + type-fest: 2.19.0 lines-and-columns@1.2.4: {} @@ -10239,7 +10240,7 @@ snapshots: dependencies: js-tokens: 4.0.0 - loupe@2.3.7: + loupe@3.1.1: dependencies: get-func-name: 2.0.2 @@ -10657,15 +10658,16 @@ snapshots: dependencies: mimic-fn: 4.0.0 - open-editor@3.0.0: + open-editor@4.1.1: dependencies: - env-editor: 0.4.2 + env-editor: 1.1.0 execa: 5.1.1 - line-column-path: 2.0.0 - open: 7.4.2 + line-column-path: 3.0.0 + open: 8.4.2 - open@7.4.2: + open@8.4.2: dependencies: + define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 @@ -10805,7 +10807,7 @@ snapshots: path-type@5.0.0: {} - pathval@1.1.1: {} + pathval@2.0.0: {} performance-now@2.1.0: {} @@ -11695,12 +11697,8 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-detect@4.0.8: {} - type-fest@0.20.2: {} - type-fest@0.4.1: {} - type-fest@0.6.0: {} type-fest@0.8.1: {} From d46be35b613d6da8f6eb636e8b5ec3533dfdb629 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 10 Jul 2024 09:58:29 +0800 Subject: [PATCH 206/273] feat(`require-template`): add rule; fixes part of #1120 --- .README/README.md | 2 + .README/rules/require-template.md | 54 ++++++ .github/workflows/feature.yaml | 1 + .ncurc.cjs | 2 +- README.md | 2 + docs/rules/require-template.md | 147 ++++++++++++++++ package.json | 4 +- pnpm-lock.yaml | 215 ++++++++++++++++------- src/bin/generateDocs.js | 4 +- src/index.js | 3 + src/rules/requireTemplate.js | 119 +++++++++++++ test/rules/assertions/requireTemplate.js | 209 ++++++++++++++++++++++ test/rules/ruleNames.json | 1 + 13 files changed, 692 insertions(+), 71 deletions(-) create mode 100644 .README/rules/require-template.md create mode 100644 docs/rules/require-template.md create mode 100644 src/rules/requireTemplate.js create mode 100644 test/rules/assertions/requireTemplate.js diff --git a/.README/README.md b/.README/README.md index dd634b97d..b555190bc 100644 --- a/.README/README.md +++ b/.README/README.md @@ -236,6 +236,7 @@ non-default-recommended fixer). |:heavy_check_mark:|:wrench:|[check-tag-names](./docs/rules/check-tag-names.md#readme)|Reports invalid jsdoc (block) tag names| |:heavy_check_mark:|:wrench:|[check-types](./docs/rules/check-types.md#readme)|Reports types deemed invalid (customizable and with defaults, for preventing and/or recommending replacements)| |:heavy_check_mark:||[check-values](./docs/rules/check-values.md#readme)|Checks for expected content within some miscellaneous tags (`@version`, `@since`, `@license`, `@author`)| +| || [convert-to-jsdoc-comments](./docs/rules/convert-to-jsdoc-comments.md#readme) | Converts line and block comments preceding or following specified nodes into JSDoc comments| |:heavy_check_mark:|:wrench:|[empty-tags](./docs/rules/empty-tags.md#readme)|Checks tags that are expected to be empty (e.g., `@abstract` or `@async`), reporting if they have content| |:heavy_check_mark:||[implements-on-classes](./docs/rules/implements-on-classes.md#readme)|Prohibits use of `@implements` on non-constructor functions (to enforce the tag only being used on classes/constructors)| |||[informative-docs](./docs/rules/informative-docs.md#readme)|Reports on JSDoc texts that serve only to restate their attached name.| @@ -270,6 +271,7 @@ non-default-recommended fixer). |:heavy_check_mark:||[require-returns-check](./docs/rules/require-returns-check.md#readme)|Requires a return statement be present in a function body if a `@returns` tag is specified in the jsdoc comment block (and reports if multiple `@returns` tags are present).| |:heavy_check_mark:||[require-returns-description](./docs/rules/require-returns-description.md#readme)|Requires that the `@returns` tag has a `description` value (not including `void`/`undefined` type returns).| |:heavy_check_mark: (off in TS)||[require-returns-type](./docs/rules/require-returns-type.md#readme)|Requires that `@returns` tag has a type value (in curly brackets).| +| || [require-template](./docs/rules/require-template.md#readme) | Requires `@template` tags be present when type parameters are used.| |||[require-throws](./docs/rules/require-throws.md#readme)|Requires that throw statements are documented| |:heavy_check_mark:||[require-yields](./docs/rules/require-yields.md#readme)|Requires that yields are documented| |:heavy_check_mark:||[require-yields-check](./docs/rules/require-yields-check.md#readme)|Ensures that if a `@yields` is present that a `yield` (or `yield` with a value) is present in the function body (or that if a `@next` is present that there is a `yield` with a return value present)| diff --git a/.README/rules/require-template.md b/.README/rules/require-template.md new file mode 100644 index 000000000..73bff6b8d --- /dev/null +++ b/.README/rules/require-template.md @@ -0,0 +1,54 @@ +# `require-template` + +Checks to see that `@template` tags are present for any detected type +parameters. + +Currently checks `TSTypeAliasDeclaration` such as: + +```ts +export type Pairs = [D, V | undefined]; +``` + +or + +```js +/** + * @typedef {[D, V | undefined]} Pairs + */ +``` + +Note that in the latter TypeScript-flavor JavaScript example, there is no way +for us to firmly distinguish between `D` and `V` as type parameters or as some +other identifiers, so we use an algorithm that any single capital letters +are assumed to be templates. + +## Options + +### `requireSeparateTemplates` + +Requires that each template have its own separate line, i.e., preventing +templates of this format: + +```js +/** + * @template T, U, V + */ +``` + +Defaults to `false`. + +||| +|---|---| +|Context|everywhere| +|Tags|`template`| +|Recommended|true| +|Settings|| +|Options|`requireSeparateTemplates`| + +## Failing examples + + + +## Passing examples + + diff --git a/.github/workflows/feature.yaml b/.github/workflows/feature.yaml index db380e999..e9a9b961f 100644 --- a/.github/workflows/feature.yaml +++ b/.github/workflows/feature.yaml @@ -42,6 +42,7 @@ jobs: node_js_version: - '18' - '20' + - '22' build: runs-on: ubuntu-latest name: Build diff --git a/.ncurc.cjs b/.ncurc.cjs index 503643a43..203f17551 100644 --- a/.ncurc.cjs +++ b/.ncurc.cjs @@ -2,7 +2,7 @@ module.exports = { reject: [ - // Todo: When package converted to ESM only + // Todo: When our package converted to ESM only 'escape-string-regexp', // todo[engine:node@>=20]: Can reenable diff --git a/README.md b/README.md index 5c4192ac2..600e3625d 100644 --- a/README.md +++ b/README.md @@ -263,6 +263,7 @@ non-default-recommended fixer). |:heavy_check_mark:|:wrench:|[check-tag-names](./docs/rules/check-tag-names.md#readme)|Reports invalid jsdoc (block) tag names| |:heavy_check_mark:|:wrench:|[check-types](./docs/rules/check-types.md#readme)|Reports types deemed invalid (customizable and with defaults, for preventing and/or recommending replacements)| |:heavy_check_mark:||[check-values](./docs/rules/check-values.md#readme)|Checks for expected content within some miscellaneous tags (`@version`, `@since`, `@license`, `@author`)| +| || [convert-to-jsdoc-comments](./docs/rules/convert-to-jsdoc-comments.md#readme) | Converts line and block comments preceding or following specified nodes into JSDoc comments| |:heavy_check_mark:|:wrench:|[empty-tags](./docs/rules/empty-tags.md#readme)|Checks tags that are expected to be empty (e.g., `@abstract` or `@async`), reporting if they have content| |:heavy_check_mark:||[implements-on-classes](./docs/rules/implements-on-classes.md#readme)|Prohibits use of `@implements` on non-constructor functions (to enforce the tag only being used on classes/constructors)| |||[informative-docs](./docs/rules/informative-docs.md#readme)|Reports on JSDoc texts that serve only to restate their attached name.| @@ -297,6 +298,7 @@ non-default-recommended fixer). |:heavy_check_mark:||[require-returns-check](./docs/rules/require-returns-check.md#readme)|Requires a return statement be present in a function body if a `@returns` tag is specified in the jsdoc comment block (and reports if multiple `@returns` tags are present).| |:heavy_check_mark:||[require-returns-description](./docs/rules/require-returns-description.md#readme)|Requires that the `@returns` tag has a `description` value (not including `void`/`undefined` type returns).| |:heavy_check_mark: (off in TS)||[require-returns-type](./docs/rules/require-returns-type.md#readme)|Requires that `@returns` tag has a type value (in curly brackets).| +| || [require-template](./docs/rules/require-template.md#readme) | Requires `@template` tags be present when type parameters are used.| |||[require-throws](./docs/rules/require-throws.md#readme)|Requires that throw statements are documented| |:heavy_check_mark:||[require-yields](./docs/rules/require-yields.md#readme)|Requires that yields are documented| |:heavy_check_mark:||[require-yields-check](./docs/rules/require-yields-check.md#readme)|Ensures that if a `@yields` is present that a `yield` (or `yield` with a value) is present in the function body (or that if a `@next` is present that there is a `yield` with a return value present)| diff --git a/docs/rules/require-template.md b/docs/rules/require-template.md new file mode 100644 index 000000000..8bef1adfb --- /dev/null +++ b/docs/rules/require-template.md @@ -0,0 +1,147 @@ + + +# require-template + +Checks to see that `@template` tags are present for any detected type +parameters. + +Currently checks `TSTypeAliasDeclaration` such as: + +```ts +export type Pairs = [D, V | undefined]; +``` + +or + +```js +/** + * @typedef {[D, V | undefined]} Pairs + */ +``` + +Note that in the latter TypeScript-flavor JavaScript example, there is no way +for us to firmly distinguish between `D` and `V` as type parameters or as some +other identifiers, so we use an algorithm that any single capital letters +are assumed to be templates. + + + +## Options + + + +### requireSeparateTemplates + +Requires that each template have its own separate line, i.e., preventing +templates of this format: + +```js +/** + * @template T, U, V + */ +``` + +Defaults to `false`. + +||| +|---|---| +|Context|everywhere| +|Tags|`template`| +|Recommended|true| +|Settings|| +|Options|`requireSeparateTemplates`| + + + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * + */ +type Pairs = [D, V | undefined]; +// Message: Missing @template D + +/** + * + */ +export type Pairs = [D, V | undefined]; +// Message: Missing @template D + +/** + * @typedef {[D, V | undefined]} Pairs + */ +// Message: Missing @template D + +/** + * @typedef {[D, V | undefined]} Pairs + */ +// Settings: {"jsdoc":{"mode":"permissive"}} +// Message: Missing @template D + +/** + * @template D, U + */ +export type Extras = [D, U, V | undefined]; +// Message: Missing @template V + +/** + * @template D, U + * @typedef {[D, U, V | undefined]} Extras + */ +// Message: Missing @template V + +/** + * @template D, V + */ +export type Pairs = [D, V | undefined]; +// "jsdoc/require-template": ["error"|"warn", {"requireSeparateTemplates":true}] +// Message: Missing separate @template for V + +/** + * @template D, V + * @typedef {[D, V | undefined]} Pairs + */ +// "jsdoc/require-template": ["error"|"warn", {"requireSeparateTemplates":true}] +// Message: Missing separate @template for V +```` + + + + + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @template D + * @template V + */ +export type Pairs = [D, V | undefined]; + +/** + * @template D + * @template V + * @typedef {[D, V | undefined]} Pairs + */ + +/** + * @template D, U, V + */ +export type Extras = [D, U, V | undefined]; + +/** + * @template D, U, V + * @typedef {[D, U, V | undefined]} Extras + */ + +/** + * @typedef {[D, U, V | undefined]} Extras + * @typedef {[D, U, V | undefined]} Extras + */ +```` + diff --git a/package.json b/package.json index 27bf8a661..2fc6d945c 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "url": "http://gajus.com" }, "dependencies": { - "@es-joy/jsdoccomment": "~0.45.0", + "@es-joy/jsdoccomment": "~0.46.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.3.5", @@ -54,7 +54,7 @@ "eslint": "9.6.0", "eslint-config-canonical": "~43.0.13", "espree": "^10.1.0", - "gitdown": "^3.1.5", + "gitdown": "^4.0.0", "glob": "^10.4.2", "globals": "^15.8.0", "husky": "^9.0.11", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cebb6297b..dece4c064 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@es-joy/jsdoccomment': - specifier: ~0.45.0 - version: 0.45.0 + specifier: ~0.46.0 + version: 0.46.0 are-docs-informative: specifier: ^0.0.2 version: 0.0.2 @@ -148,8 +148,8 @@ importers: specifier: ^10.1.0 version: 10.1.0 gitdown: - specifier: ^3.1.5 - version: 3.1.5 + specifier: ^4.0.0 + version: 4.0.0(re2@1.20.9) glob: specifier: ^10.4.2 version: 10.4.2 @@ -952,8 +952,8 @@ packages: resolution: {integrity: sha512-I238eDtOolvCuvtxrnqtlBaw0BwdQuYqK7eA6XIonicMdOOOb75mqdIzkGDUbS04+1Di007rgm9snFRNeVrOog==} engines: {node: '>=16'} - '@es-joy/jsdoccomment@0.45.0': - resolution: {integrity: sha512-U8T5eXLkP78Sr12rR91494GhlEgp8jqs7OaUHbdUffADxU1JQmKjZm5uSyAEGv2oolDMJ+wce7yylfnnwOevtA==} + '@es-joy/jsdoccomment@0.46.0': + resolution: {integrity: sha512-C3Axuq1xd/9VqFZpW4YAzOx5O9q/LP46uIQy/iNDpHG3fmPa6TBtvfglMCs3RBiBxAIi0Go97r8+jvTt55XMyQ==} engines: {node: '>=16'} '@eslint-community/eslint-utils@4.4.0': @@ -2015,6 +2015,10 @@ packages: resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} engines: {node: '>=6'} + clone-regexp@3.0.0: + resolution: {integrity: sha512-ujdnoq2Kxb8s3ItNBtnYeXdm07FcU0u8ARAT1lQ2YdMwQC+cdiXX8KoqMVuglztILivceTtp4ivqGSmEmhBUJw==} + engines: {node: '>=12'} + collection-visit@1.0.0: resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} engines: {node: '>=0.10.0'} @@ -2854,9 +2858,9 @@ packages: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} - filesize@6.4.0: - resolution: {integrity: sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==} - engines: {node: '>= 0.4.0'} + filesize@10.1.4: + resolution: {integrity: sha512-ryBwPIIeErmxgPnm6cbESAzXjuEFubs+yKYLBZvg3CaiNcmkJChoOGcBSrZ6IwkMwPABwPpVXE6IlNdGJJrvEg==} + engines: {node: '>= 10.4.0'} fill-range@4.0.0: resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} @@ -2960,6 +2964,10 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + function-timeout@0.1.1: + resolution: {integrity: sha512-0NVVC0TaP7dSTvn1yMiy6d6Q8gifzbvQafO46RtLG/kHJUBNd+pVRGOBoK44wNBvtSPUJRfdVvkFdD3p0xvyZg==} + engines: {node: '>=14.16'} + function-timeout@1.0.1: resolution: {integrity: sha512-6yPMImFFuaMPNaTMTBuolA8EanHJWF5Vju0NHpObRURT105J6x1Mf2a7J4P7Sqk2xDxv24N5L0RatEhTBhNmdA==} engines: {node: '>=18'} @@ -3025,9 +3033,9 @@ packages: get-tsconfig@4.7.2: resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} - get-urls@10.0.1: - resolution: {integrity: sha512-5usUMF4FE0cTS7yUuRvBsB4tSs5u8KFn7v01+IDGL/18tuoADu5ehthqw+y2EHnJsWhsp1443K5P+C/XWZQ04g==} - engines: {node: '>=10.12.0'} + get-urls@12.1.0: + resolution: {integrity: sha512-qHO+QmPiI1bEw0Y/m+WMAAx/UoEEXLZwEx0DVaKMtlHNrKbMeV960LryIpd+E2Ykb9XkVHmVtpbCsmul3GhR0g==} + engines: {node: '>=16'} get-value@2.0.6: resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} @@ -3039,9 +3047,9 @@ packages: git-log-parser@1.2.0: resolution: {integrity: sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==} - gitdown@3.1.5: - resolution: {integrity: sha512-nvdK4qp8yQdzbdHgnEUuC0ubfAvv27fHNpsX9/0FLJvAJk687zGkptRNvls4U5UNYMKdunIL84QR+qQKyHMDaw==} - engines: {node: '>=10'} + gitdown@4.0.0: + resolution: {integrity: sha512-yzkDLVzsYkM86p+a3XtW2gdBqs3Jw0cn20Fb/pAaiag5JNzApj7xDM+kcYiFZef/CoIuEr8D+hR1wzgky9ZLYg==} + engines: {node: '>=18'} hasBin: true gitinfo@2.4.0: @@ -3065,6 +3073,10 @@ packages: engines: {node: '>=16 || 14 >=14.18'} hasBin: true + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -3506,6 +3518,10 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} + is-regexp@3.1.0: + resolution: {integrity: sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==} + engines: {node: '>=12'} + is-set@2.0.2: resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} @@ -3890,9 +3906,9 @@ packages: engines: {node: '>= 18'} hasBin: true - marked@2.1.3: - resolution: {integrity: sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==} - engines: {node: '>= 10'} + marked@13.0.2: + resolution: {integrity: sha512-J6CPjP8pS5sgrRqxVRvkCIkZ6MFdRIjDkwUwgJ9nL2fbmM6qGQeB2C16hi8Cc9BOzj6xXzy0jyi0iPIfnMHYzA==} + engines: {node: '>= 18'} hasBin: true meow@13.2.0: @@ -4111,10 +4127,6 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - normalize-url@5.3.1: - resolution: {integrity: sha512-K1c7+vaAP+Yh5bOGmA10PGPpp+6h7WZrl7GwqKhUflBc9flU9pzG27DDeB9+iuhZkE3BJZOcgN1P/2sS5pqrWw==} - engines: {node: '>=10'} - normalize-url@8.0.0: resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==} engines: {node: '>=14.16'} @@ -5117,6 +5129,10 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + super-regex@0.2.0: + resolution: {integrity: sha512-WZzIx3rC1CvbMDloLsVw0lkZVKJWbrkJ0k1ghKFmcnPrW1+jWbgTkTEWVtD9lMdmI4jZEz40+naBxl1dCUhXXw==} + engines: {node: '>=14.16'} + super-regex@1.0.0: resolution: {integrity: sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==} engines: {node: '>=18'} @@ -5420,10 +5436,14 @@ packages: resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - url-regex-safe@2.1.0: - resolution: {integrity: sha512-nfrmOb62+kN4JJRkY/w9QzZeuc63/ddIFfqS9ntok0UYsJW3C5J/jGvYZecwk8V68og2zWA7fcVn4GUXIi5qbg==} - engines: {node: '>= 10.12.0'} - deprecated: Please upgrade to url-regex-safe@v3.0.0+ AND install re2 as an additional dependency in your project via `npm install re2` or `yarn add re2`. + url-regex-safe@4.0.0: + resolution: {integrity: sha512-BrnFCWKNFrFnRzKD66NtJqQepfJrUHNPvPxE5y5NSAhXBb4OlobQjt7907Jm4ItPiXaeX+dDWMkcnOd4jR9N8A==} + engines: {node: '>= 14'} + peerDependencies: + re2: ^1.20.1 + peerDependenciesMeta: + re2: + optional: true url-regexp@1.0.2: resolution: {integrity: sha512-Tt0N/yu3iNSCqZ7wJ6AxTtF/QSemtfzLH+astikB0CR/u/7X132VaBdiNEXbiAGiU+LXsIpyB2Hqz8OY4zw8MA==} @@ -6650,10 +6670,8 @@ snapshots: esquery: 1.6.0 jsdoc-type-pratt-parser: 4.0.0 - '@es-joy/jsdoccomment@0.45.0': + '@es-joy/jsdoccomment@0.46.0': dependencies: - '@types/eslint': 8.56.10 - '@types/estree': 1.0.5 comment-parser: 1.4.1 esquery: 1.6.0 jsdoc-type-pratt-parser: 4.0.0 @@ -7007,10 +7025,12 @@ snapshots: socks-proxy-agent: 8.0.2 transitivePeerDependencies: - supports-color + optional: true '@npmcli/fs@3.1.0': dependencies: semver: 7.6.2 + optional: true '@octokit/auth-token@5.1.0': {} @@ -7555,7 +7575,8 @@ snapshots: fast-url-parser: 1.1.3 tslib: 2.6.2 - abbrev@2.0.0: {} + abbrev@2.0.0: + optional: true acorn-globals@1.0.9: dependencies: @@ -7585,6 +7606,7 @@ snapshots: dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 + optional: true aggregate-error@5.0.0: dependencies: @@ -7917,6 +7939,7 @@ snapshots: ssri: 10.0.5 tar: 6.2.0 unique-filename: 3.0.0 + optional: true cache-base@1.0.1: dependencies: @@ -7999,7 +8022,8 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - chownr@2.0.0: {} + chownr@2.0.0: + optional: true ci-info@4.0.0: {} @@ -8014,7 +8038,8 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 - clean-stack@2.2.0: {} + clean-stack@2.2.0: + optional: true clean-stack@5.2.0: dependencies: @@ -8068,6 +8093,10 @@ snapshots: kind-of: 6.0.3 shallow-clone: 3.0.1 + clone-regexp@3.0.0: + dependencies: + is-regexp: 3.1.0 + collection-visit@1.0.0: dependencies: map-visit: 1.0.0 @@ -8416,7 +8445,8 @@ snapshots: env-paths@2.2.1: {} - err-code@2.0.3: {} + err-code@2.0.3: + optional: true error-ex@1.3.2: dependencies: @@ -9151,7 +9181,8 @@ snapshots: transitivePeerDependencies: - supports-color - exponential-backoff@3.1.1: {} + exponential-backoff@3.1.1: + optional: true extend-shallow@2.0.1: dependencies: @@ -9231,7 +9262,7 @@ snapshots: dependencies: flat-cache: 4.0.1 - filesize@6.4.0: {} + filesize@10.1.4: {} fill-range@4.0.0: dependencies: @@ -9327,10 +9358,12 @@ snapshots: fs-minipass@2.1.0: dependencies: minipass: 3.3.6 + optional: true fs-minipass@3.0.3: dependencies: minipass: 7.1.2 + optional: true fs-readdir-recursive@1.1.0: {} @@ -9341,6 +9374,8 @@ snapshots: function-bind@1.1.2: {} + function-timeout@0.1.1: {} + function-timeout@1.0.1: {} function.prototype.name@1.1.6: @@ -9397,12 +9432,13 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 - get-urls@10.0.1: + get-urls@12.1.0(re2@1.20.9): dependencies: - normalize-url: 5.3.1 - url-regex-safe: 2.1.0 + normalize-url: 8.0.0 + super-regex: 0.2.0 + url-regex-safe: 4.0.0(re2@1.20.9) transitivePeerDependencies: - - supports-color + - re2 get-value@2.0.6: {} @@ -9419,23 +9455,23 @@ snapshots: through2: 2.0.5 traverse: 0.6.8 - gitdown@3.1.5: + gitdown@4.0.0(re2@1.20.9): dependencies: bluebird: 3.7.2 deadlink: 1.1.3 - filesize: 6.4.0 - get-urls: 10.0.1 + filesize: 10.1.4 + get-urls: 12.1.0(re2@1.20.9) gitinfo: 2.4.0 - glob: 7.2.3 + glob: 10.4.5 jsonfile: 6.1.0 lodash: 4.17.21 markdown-contents: 1.0.11 - marked: 2.1.3 + marked: 13.0.2 moment: 2.30.1 stack-trace: 0.0.10 - yargs: 16.2.0 + yargs: 17.7.2 transitivePeerDependencies: - - supports-color + - re2 gitinfo@2.4.0: dependencies: @@ -9467,6 +9503,15 @@ snapshots: package-json-from-dist: 1.0.0 path-scurry: 1.11.1 + glob@10.4.5: + dependencies: + foreground-child: 3.1.1 + jackspeak: 3.1.2 + minimatch: 9.0.4 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 1.11.1 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -9645,7 +9690,8 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - http-cache-semantics@4.1.1: {} + http-cache-semantics@4.1.1: + optional: true http-proxy-agent@7.0.0: dependencies: @@ -9720,7 +9766,8 @@ snapshots: ini@1.3.8: {} - install-artifact-from-github@1.3.5: {} + install-artifact-from-github@1.3.5: + optional: true internal-slot@1.0.7: dependencies: @@ -9735,7 +9782,8 @@ snapshots: ip-regex@4.3.0: {} - ip@2.0.1: {} + ip@2.0.1: + optional: true is-accessor-descriptor@1.0.1: dependencies: @@ -9845,7 +9893,8 @@ snapshots: dependencies: js-types: 1.0.0 - is-lambda@1.0.1: {} + is-lambda@1.0.1: + optional: true is-map@2.0.2: {} @@ -9893,6 +9942,8 @@ snapshots: call-bind: 1.0.7 has-tostringtag: 1.0.2 + is-regexp@3.1.0: {} + is-set@2.0.2: {} is-shared-array-buffer@1.0.3: @@ -9948,7 +9999,8 @@ snapshots: isexe@2.0.0: {} - isexe@3.1.1: {} + isexe@3.1.1: + optional: true isobject@2.1.0: dependencies: @@ -10276,6 +10328,7 @@ snapshots: ssri: 10.0.5 transitivePeerDependencies: - supports-color + optional: true map-cache@0.2.2: {} @@ -10300,7 +10353,7 @@ snapshots: marked@12.0.1: {} - marked@2.1.3: {} + marked@13.0.2: {} meow@13.2.0: {} @@ -10380,6 +10433,7 @@ snapshots: minipass-collect@2.0.1: dependencies: minipass: 7.1.2 + optional: true minipass-fetch@3.0.4: dependencies: @@ -10388,24 +10442,30 @@ snapshots: minizlib: 2.1.2 optionalDependencies: encoding: 0.1.13 + optional: true minipass-flush@1.0.5: dependencies: minipass: 3.3.6 + optional: true minipass-pipeline@1.2.4: dependencies: minipass: 3.3.6 + optional: true minipass-sized@1.0.3: dependencies: minipass: 3.3.6 + optional: true minipass@3.3.6: dependencies: yallist: 4.0.0 + optional: true - minipass@5.0.0: {} + minipass@5.0.0: + optional: true minipass@7.1.2: {} @@ -10413,13 +10473,15 @@ snapshots: dependencies: minipass: 3.3.6 yallist: 4.0.0 + optional: true mixin-deep@1.3.2: dependencies: for-in: 1.0.2 is-extendable: 1.0.1 - mkdirp@1.0.4: {} + mkdirp@1.0.4: + optional: true mocha@10.6.0: dependencies: @@ -10458,7 +10520,8 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nan@2.18.0: {} + nan@2.18.0: + optional: true nanomatch@1.2.13: dependencies: @@ -10480,7 +10543,8 @@ snapshots: natural-compare@1.4.0: {} - negotiator@0.6.3: {} + negotiator@0.6.3: + optional: true neo-async@2.6.2: {} @@ -10520,12 +10584,14 @@ snapshots: which: 4.0.0 transitivePeerDependencies: - supports-color + optional: true node-releases@2.0.14: {} nopt@7.2.0: dependencies: abbrev: 2.0.0 + optional: true normalize-package-data@2.5.0: dependencies: @@ -10547,8 +10613,6 @@ snapshots: normalize-path@3.0.0: {} - normalize-url@5.3.1: {} - normalize-url@8.0.0: {} npm-path@2.0.4: @@ -10730,6 +10794,7 @@ snapshots: p-map@4.0.0: dependencies: aggregate-error: 3.1.0 + optional: true p-map@7.0.1: {} @@ -10856,7 +10921,8 @@ snapshots: dependencies: parse-ms: 4.0.0 - proc-log@3.0.0: {} + proc-log@3.0.0: + optional: true process-nextick-args@2.0.1: {} @@ -10864,6 +10930,7 @@ snapshots: dependencies: err-code: 2.0.3 retry: 0.12.0 + optional: true prop-types@15.8.1: dependencies: @@ -10920,6 +10987,7 @@ snapshots: node-gyp: 10.0.1 transitivePeerDependencies: - supports-color + optional: true react-is@16.13.1: {} @@ -11115,7 +11183,8 @@ snapshots: ret@0.1.15: {} - retry@0.12.0: {} + retry@0.12.0: + optional: true reusify@1.0.4: {} @@ -11305,7 +11374,8 @@ snapshots: ansi-styles: 6.2.1 is-fullwidth-code-point: 5.0.0 - smart-buffer@4.2.0: {} + smart-buffer@4.2.0: + optional: true snapdragon-node@2.1.1: dependencies: @@ -11337,11 +11407,13 @@ snapshots: socks: 2.7.1 transitivePeerDependencies: - supports-color + optional: true socks@2.7.1: dependencies: ip: 2.0.1 smart-buffer: 4.2.0 + optional: true source-map-resolve@0.5.3: dependencies: @@ -11411,6 +11483,7 @@ snapshots: ssri@10.0.5: dependencies: minipass: 7.1.2 + optional: true stack-trace@0.0.10: {} @@ -11529,6 +11602,12 @@ snapshots: strip-json-comments@3.1.1: {} + super-regex@0.2.0: + dependencies: + clone-regexp: 3.0.0 + function-timeout: 0.1.1 + time-span: 5.1.0 + super-regex@1.0.0: dependencies: function-timeout: 1.0.1 @@ -11579,6 +11658,7 @@ snapshots: minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 + optional: true temp-dir@3.0.0: {} @@ -11793,10 +11873,12 @@ snapshots: unique-filename@3.0.0: dependencies: unique-slug: 4.0.0 + optional: true unique-slug@4.0.0: dependencies: imurmurhash: 0.1.4 + optional: true unique-string@3.0.0: dependencies: @@ -11829,13 +11911,12 @@ snapshots: url-join@5.0.0: {} - url-regex-safe@2.1.0: + url-regex-safe@4.0.0(re2@1.20.9): dependencies: ip-regex: 4.3.0 - re2: 1.20.9 tlds: 1.248.0 - transitivePeerDependencies: - - supports-color + optionalDependencies: + re2: 1.20.9 url-regexp@1.0.2: {} @@ -11950,6 +12031,7 @@ snapshots: which@4.0.0: dependencies: isexe: 3.1.1 + optional: true word-wrap@1.2.5: {} @@ -12003,7 +12085,8 @@ snapshots: yallist@3.1.1: {} - yallist@4.0.0: {} + yallist@4.0.0: + optional: true yaml-eslint-parser@1.2.3: dependencies: diff --git a/src/bin/generateDocs.js b/src/bin/generateDocs.js index 1e66ba602..a771b6139 100644 --- a/src/bin/generateDocs.js +++ b/src/bin/generateDocs.js @@ -149,8 +149,8 @@ const generateDocs = async () => { ); }), ...otherPaths, - ].map((docPath) => { - const gitdown = Gitdown.readFile(docPath); + ].map(async (docPath) => { + const gitdown = await Gitdown.readFile(docPath); gitdown.setConfig({ gitinfo: { diff --git a/src/index.js b/src/index.js index 535ed0b62..a6a6bae64 100644 --- a/src/index.js +++ b/src/index.js @@ -45,6 +45,7 @@ import requireReturns from './rules/requireReturns.js'; import requireReturnsCheck from './rules/requireReturnsCheck.js'; import requireReturnsDescription from './rules/requireReturnsDescription.js'; import requireReturnsType from './rules/requireReturnsType.js'; +import requireTemplate from './rules/requireTemplate.js'; import requireThrows from './rules/requireThrows.js'; import requireYields from './rules/requireYields.js'; import requireYieldsCheck from './rules/requireYieldsCheck.js'; @@ -118,6 +119,7 @@ const index = { 'require-returns-check': requireReturnsCheck, 'require-returns-description': requireReturnsDescription, 'require-returns-type': requireReturnsType, + 'require-template': requireTemplate, 'require-throws': requireThrows, 'require-yields': requireYields, 'require-yields-check': requireYieldsCheck, @@ -191,6 +193,7 @@ const createRecommendedRuleset = (warnOrError, flatName) => { 'jsdoc/require-returns-check': warnOrError, 'jsdoc/require-returns-description': warnOrError, 'jsdoc/require-returns-type': warnOrError, + 'jsdoc/require-template': 'off', 'jsdoc/require-throws': 'off', 'jsdoc/require-yields': warnOrError, 'jsdoc/require-yields-check': warnOrError, diff --git a/src/rules/requireTemplate.js b/src/rules/requireTemplate.js new file mode 100644 index 000000000..015902eb0 --- /dev/null +++ b/src/rules/requireTemplate.js @@ -0,0 +1,119 @@ +import { + parse as parseType, + traverse, + tryParse as tryParseType, +} from '@es-joy/jsdoccomment'; +import iterateJsdoc from '../iterateJsdoc.js'; + +export default iterateJsdoc(({ + context, + utils, + node, + settings, + report, +}) => { + const { + requireSeparateTemplates = false, + } = context.options[0] || {}; + + const { + mode + } = settings; + + const usedNames = new Set(); + const templateTags = utils.getTags('template'); + const templateNames = templateTags.flatMap(({name}) => { + return name.split(/,\s*/); + }); + + for (const tag of templateTags) { + const {name} = tag; + const names = name.split(/,\s*/); + if (requireSeparateTemplates && names.length > 1) { + report(`Missing separate @template for ${names[1]}`, null, tag); + } + } + + /** + * @param {import('@typescript-eslint/types').TSESTree.TSTypeAliasDeclaration} aliasDeclaration + */ + const checkParameters = (aliasDeclaration) => { + /* c8 ignore next -- Guard */ + const {params} = aliasDeclaration.typeParameters ?? {params: []}; + for (const {name: {name}} of params) { + usedNames.add(name); + } + for (const usedName of usedNames) { + if (!templateNames.includes(usedName)) { + report(`Missing @template ${usedName}`); + } + } + }; + + const handleTypeAliases = () => { + const nde = /** @type {import('@typescript-eslint/types').TSESTree.Node} */ ( + node + ); + if (!nde) { + return; + } + switch (nde.type) { + case 'ExportNamedDeclaration': + if (nde.declaration?.type === 'TSTypeAliasDeclaration') { + checkParameters(nde.declaration); + } + break; + case 'TSTypeAliasDeclaration': + checkParameters(nde); + break; + } + }; + + const typedefTags = utils.getTags('typedef'); + if (!typedefTags.length || typedefTags.length >= 2) { + handleTypeAliases(); + return; + } + + const potentialType = typedefTags[0].type; + const parsedType = mode === 'permissive' ? + tryParseType(/** @type {string} */ (potentialType)) : + parseType(/** @type {string} */ (potentialType), mode) + + traverse(parsedType, (nde) => { + const { + type, + value, + } = /** @type {import('jsdoc-type-pratt-parser').NameResult} */ (nde); + if (type === 'JsdocTypeName' && (/^[A-Z]$/).test(value)) { + usedNames.add(value); + } + }); + + // Could check against whitelist/blacklist + for (const usedName of usedNames) { + if (!templateNames.includes(usedName)) { + report(`Missing @template ${usedName}`, null, typedefTags[0]); + } + } +}, { + iterateAllJsdocs: true, + meta: { + docs: { + description: 'Requires template tags for each generic type parameter', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template.md#repos-sticky-header', + }, + schema: [ + { + additionalProperties: false, + properties: { + requireSeparateTemplates: { + type: 'boolean' + } + }, + type: 'object', + }, + ], + type: 'suggestion', + }, +}); diff --git a/test/rules/assertions/requireTemplate.js b/test/rules/assertions/requireTemplate.js new file mode 100644 index 000000000..6bb092b45 --- /dev/null +++ b/test/rules/assertions/requireTemplate.js @@ -0,0 +1,209 @@ +import {parser as typescriptEslintParser} from 'typescript-eslint'; + +export default { + invalid: [ + { + code: ` + /** + * + */ + type Pairs = [D, V | undefined]; + `, + errors: [ + { + line: 2, + message: 'Missing @template D', + }, + { + line: 2, + message: 'Missing @template V', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * + */ + export type Pairs = [D, V | undefined]; + `, + errors: [ + { + line: 2, + message: 'Missing @template D', + }, + { + line: 2, + message: 'Missing @template V', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @typedef {[D, V | undefined]} Pairs + */ + `, + errors: [ + { + line: 3, + message: 'Missing @template D', + }, + { + line: 3, + message: 'Missing @template V', + }, + ], + }, + { + code: ` + /** + * @typedef {[D, V | undefined]} Pairs + */ + `, + errors: [ + { + line: 3, + message: 'Missing @template D', + }, + { + line: 3, + message: 'Missing @template V', + }, + ], + settings: { + jsdoc: { + mode: 'permissive', + }, + }, + }, + { + code: ` + /** + * @template D, U + */ + export type Extras = [D, U, V | undefined]; + `, + errors: [ + { + line: 2, + message: 'Missing @template V', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template D, U + * @typedef {[D, U, V | undefined]} Extras + */ + `, + errors: [ + { + line: 4, + message: 'Missing @template V', + }, + ], + }, + { + code: ` + /** + * @template D, V + */ + export type Pairs = [D, V | undefined]; + `, + errors: [ + { + line: 3, + message: 'Missing separate @template for V', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + options: [ + { + requireSeparateTemplates: true, + } + ], + }, + { + code: ` + /** + * @template D, V + * @typedef {[D, V | undefined]} Pairs + */ + `, + errors: [ + { + line: 3, + message: 'Missing separate @template for V', + }, + ], + options: [ + { + requireSeparateTemplates: true, + } + ], + }, + ], + valid: [ + { + code: ` + /** + * @template D + * @template V + */ + export type Pairs = [D, V | undefined]; + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template D + * @template V + * @typedef {[D, V | undefined]} Pairs + */ + `, + }, + { + code: ` + /** + * @template D, U, V + */ + export type Extras = [D, U, V | undefined]; + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template D, U, V + * @typedef {[D, U, V | undefined]} Extras + */ + `, + }, + { + code: ` + /** + * @typedef {[D, U, V | undefined]} Extras + * @typedef {[D, U, V | undefined]} Extras + */ + `, + }, + ], +}; diff --git a/test/rules/ruleNames.json b/test/rules/ruleNames.json index 15418c0d8..c158f48e4 100644 --- a/test/rules/ruleNames.json +++ b/test/rules/ruleNames.json @@ -46,6 +46,7 @@ "require-returns-check", "require-returns-description", "require-returns-type", + "require-template", "require-throws", "require-yields", "require-yields-check", From 7e311abcbad606ef136d13ffa706ff08a3f7a594 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 11 Jul 2024 02:39:09 +0800 Subject: [PATCH 207/273] chore: resume building docs on push --- .husky/pre-push | 2 +- package.json | 2 +- pnpm-lock.yaml | 42 +++++++++++++++++++++++------------------- 3 files changed, 25 insertions(+), 21 deletions(-) diff --git a/.husky/pre-push b/.husky/pre-push index f48cbd2e0..05340f7e4 100755 --- a/.husky/pre-push +++ b/.husky/pre-push @@ -1,4 +1,4 @@ #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" -npm test && npm run build +npm test && npm run build && npm run check-docs diff --git a/package.json b/package.json index 2fc6d945c..de30eb405 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "eslint": "9.6.0", "eslint-config-canonical": "~43.0.13", "espree": "^10.1.0", - "gitdown": "^4.0.0", + "gitdown": "^4.1.0", "glob": "^10.4.2", "globals": "^15.8.0", "husky": "^9.0.11", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dece4c064..723ffc50c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -148,8 +148,8 @@ importers: specifier: ^10.1.0 version: 10.1.0 gitdown: - specifier: ^4.0.0 - version: 4.0.0(re2@1.20.9) + specifier: ^4.1.0 + version: 4.1.0(re2@1.20.9) glob: specifier: ^10.4.2 version: 10.4.2 @@ -1707,8 +1707,8 @@ packages: resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} - array.prototype.reduce@1.0.6: - resolution: {integrity: sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==} + array.prototype.reduce@1.0.7: + resolution: {integrity: sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==} engines: {node: '>= 0.4'} array.prototype.toreversed@1.1.2: @@ -2111,8 +2111,8 @@ packages: core-js-pure@3.34.0: resolution: {integrity: sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg==} - core-js@3.34.0: - resolution: {integrity: sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==} + core-js@3.37.1: + resolution: {integrity: sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==} core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} @@ -3047,8 +3047,8 @@ packages: git-log-parser@1.2.0: resolution: {integrity: sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==} - gitdown@4.0.0: - resolution: {integrity: sha512-yzkDLVzsYkM86p+a3XtW2gdBqs3Jw0cn20Fb/pAaiag5JNzApj7xDM+kcYiFZef/CoIuEr8D+hR1wzgky9ZLYg==} + gitdown@4.1.0: + resolution: {integrity: sha512-CI/r2ksBVjecwuMhjcLkR8+BxULZrG3penxn9TkzdSYdEzjeiUJJr/Q0Gn24kNC/5mafgRNOBCbiERUgIxSyKw==} engines: {node: '>=18'} hasBin: true @@ -4275,8 +4275,8 @@ packages: resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} - object.getownpropertydescriptors@2.1.7: - resolution: {integrity: sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==} + object.getownpropertydescriptors@2.1.8: + resolution: {integrity: sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==} engines: {node: '>= 0.8'} object.hasown@1.1.4: @@ -5975,7 +5975,7 @@ snapshots: '@babel/core': 7.24.7 '@babel/register': 7.24.6(@babel/core@7.24.7) commander: 6.2.1 - core-js: 3.34.0 + core-js: 3.37.1 node-environment-flags: 1.0.6 regenerator-runtime: 0.14.1 v8flags: 3.2.0 @@ -7710,12 +7710,14 @@ snapshots: es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 - array.prototype.reduce@1.0.6: + array.prototype.reduce@1.0.7: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.3 es-array-method-boxes-properly: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 is-string: 1.0.7 array.prototype.toreversed@1.1.2: @@ -7929,7 +7931,7 @@ snapshots: dependencies: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.3 - glob: 10.4.2 + glob: 10.4.5 lru-cache: 10.2.0 minipass: 7.1.2 minipass-collect: 2.0.1 @@ -8179,7 +8181,7 @@ snapshots: core-js-pure@3.34.0: {} - core-js@3.34.0: {} + core-js@3.37.1: {} core-util-is@1.0.2: {} @@ -9455,7 +9457,7 @@ snapshots: through2: 2.0.5 traverse: 0.6.8 - gitdown@4.0.0(re2@1.20.9): + gitdown@4.1.0(re2@1.20.9): dependencies: bluebird: 3.7.2 deadlink: 1.1.3 @@ -10561,7 +10563,7 @@ snapshots: node-environment-flags@1.0.6: dependencies: - object.getownpropertydescriptors: 2.1.7 + object.getownpropertydescriptors: 2.1.8 semver: 5.7.2 node-fetch@2.7.0(encoding@0.1.13): @@ -10574,7 +10576,7 @@ snapshots: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.1 - glob: 10.4.2 + glob: 10.4.5 graceful-fs: 4.2.11 make-fetch-happen: 13.0.0 nopt: 7.2.0 @@ -10686,12 +10688,14 @@ snapshots: es-abstract: 1.23.3 es-object-atoms: 1.0.0 - object.getownpropertydescriptors@2.1.7: + object.getownpropertydescriptors@2.1.8: dependencies: - array.prototype.reduce: 1.0.6 + array.prototype.reduce: 1.0.7 call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + gopd: 1.0.1 safe-array-concat: 1.1.2 object.hasown@1.1.4: From 962d99dff168f7ace18ab8557010ba709cbf1777 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 11 Jul 2024 07:33:33 +0800 Subject: [PATCH 208/273] feat(`check-template-names`): add rule; fixes #1120 --- .README/rules/check-template-names.md | 40 ++++ docs/rules/check-template-names.md | 129 +++++++++++++ src/index.js | 3 + src/rules/checkTemplateNames.js | 101 ++++++++++ test/rules/assertions/checkTemplateNames.js | 197 ++++++++++++++++++++ test/rules/ruleNames.json | 1 + 6 files changed, 471 insertions(+) create mode 100644 .README/rules/check-template-names.md create mode 100644 docs/rules/check-template-names.md create mode 100644 src/rules/checkTemplateNames.js create mode 100644 test/rules/assertions/checkTemplateNames.js diff --git a/.README/rules/check-template-names.md b/.README/rules/check-template-names.md new file mode 100644 index 000000000..f6a8832d6 --- /dev/null +++ b/.README/rules/check-template-names.md @@ -0,0 +1,40 @@ +# `check-template-names` + +Checks that any `@template` names are actually used in the connected +`@typedef` or type alias. + +Currently checks `TSTypeAliasDeclaration` such as: + +```ts +/** + * @template D + * @template V + */ +export type Pairs = [D, V | undefined]; +``` + +or + +```js +/** + * @template D + * @template V + * @typedef {[D, V | undefined]} Pairs + */ +``` + +||| +|---|---| +|Context|everywhere| +|Tags|`@template`| +|Recommended|false| +|Settings|| +|Options|| + +## Failing examples + + + +## Passing examples + + diff --git a/docs/rules/check-template-names.md b/docs/rules/check-template-names.md new file mode 100644 index 000000000..7626ad575 --- /dev/null +++ b/docs/rules/check-template-names.md @@ -0,0 +1,129 @@ + + +# check-template-names + +Checks that any `@template` names are actually used in the connected +`@typedef` or type alias. + +Currently checks `TSTypeAliasDeclaration` such as: + +```ts +/** + * @template D + * @template V + */ +export type Pairs = [D, V | undefined]; +``` + +or + +```js +/** + * @template D + * @template V + * @typedef {[D, V | undefined]} Pairs + */ +``` + +||| +|---|---| +|Context|everywhere| +|Tags|`@template`| +|Recommended|false| +|Settings|| +|Options|| + + + +## Failing examples + +The following patterns are considered problems: + +````js +/** + * @template D + * @template V + */ +type Pairs = [X, Y | undefined]; +// Message: @template D not in use + +/** + * @template D + * @template V + */ +export type Pairs = [X, Y | undefined]; +// Message: @template D not in use + +/** + * @template D + * @template V + * @typedef {[X, Y | undefined]} Pairs + */ +// Message: @template D not in use + +/** + * @template D + * @template V + */ +export type Pairs = [number, undefined]; +// Message: @template D not in use + +/** + * @template D + * @template V + * @typedef {[undefined]} Pairs + */ +// Settings: {"jsdoc":{"mode":"permissive"}} +// Message: @template D not in use + +/** + * @template D, U, V + */ +export type Extras = [D, U | undefined]; +// Message: @template V not in use + +/** + * @template D, U, V + * @typedef {[D, U | undefined]} Extras + */ +// Message: @template V not in use +```` + + + + + +## Passing examples + +The following patterns are not considered problems: + +````js +/** + * @template D + * @template V + */ +export type Pairs = [D, V | undefined]; + +/** + * @template D + * @template V + * @typedef {[D, V | undefined]} Pairs + */ + +/** + * @template D, U, V + */ +export type Extras = [D, U, V | undefined]; + +/** + * @template D, U, V + * @typedef {[D, U, V | undefined]} Extras + */ + +/** + * @template X + * @typedef {[D, U, V | undefined]} Extras + * @typedef {[D, U, V | undefined]} Extras + */ +```` + diff --git a/src/index.js b/src/index.js index a6a6bae64..aa750fb6d 100644 --- a/src/index.js +++ b/src/index.js @@ -7,6 +7,7 @@ import checkParamNames from './rules/checkParamNames.js'; import checkPropertyNames from './rules/checkPropertyNames.js'; import checkSyntax from './rules/checkSyntax.js'; import checkTagNames from './rules/checkTagNames.js'; +import checkTemplateNames from './rules/checkTemplateNames.js'; import checkTypes from './rules/checkTypes.js'; import checkValues from './rules/checkValues.js'; import convertToJsdocComments from './rules/convertToJsdocComments.js'; @@ -81,6 +82,7 @@ const index = { 'check-property-names': checkPropertyNames, 'check-syntax': checkSyntax, 'check-tag-names': checkTagNames, + 'check-template-names': checkTemplateNames, 'check-types': checkTypes, 'check-values': checkValues, 'convert-to-jsdoc-comments': convertToJsdocComments, @@ -155,6 +157,7 @@ const createRecommendedRuleset = (warnOrError, flatName) => { 'jsdoc/check-property-names': warnOrError, 'jsdoc/check-syntax': 'off', 'jsdoc/check-tag-names': warnOrError, + 'jsdoc/check-template-names': 'off', 'jsdoc/check-types': warnOrError, 'jsdoc/check-values': warnOrError, 'jsdoc/convert-to-jsdoc-comments': 'off', diff --git a/src/rules/checkTemplateNames.js b/src/rules/checkTemplateNames.js new file mode 100644 index 000000000..439597c63 --- /dev/null +++ b/src/rules/checkTemplateNames.js @@ -0,0 +1,101 @@ +import { + parse as parseType, + traverse, + tryParse as tryParseType, +} from '@es-joy/jsdoccomment'; +import iterateJsdoc from '../iterateJsdoc.js'; + +export default iterateJsdoc(({ + context, + utils, + node, + settings, + report, +}) => { + const { + mode + } = settings; + + const templateTags = utils.getTags('template'); + + const usedNames = new Set(); + /** + * @param {import('@typescript-eslint/types').TSESTree.TSTypeAliasDeclaration} aliasDeclaration + */ + const checkParameters = (aliasDeclaration) => { + /* c8 ignore next -- Guard */ + const {params} = aliasDeclaration.typeParameters ?? {params: []}; + for (const {name: {name}} of params) { + usedNames.add(name); + } + for (const tag of templateTags) { + const {name} = tag; + const names = name.split(/,\s*/); + for (const name of names) { + if (!usedNames.has(name)) { + report(`@template ${name} not in use`, null, tag); + } + } + } + }; + + const handleTypeAliases = () => { + const nde = /** @type {import('@typescript-eslint/types').TSESTree.Node} */ ( + node + ); + if (!nde) { + return; + } + switch (nde.type) { + case 'ExportNamedDeclaration': + if (nde.declaration?.type === 'TSTypeAliasDeclaration') { + checkParameters(nde.declaration); + } + break; + case 'TSTypeAliasDeclaration': + checkParameters(nde); + break; + } + }; + + const typedefTags = utils.getTags('typedef'); + if (!typedefTags.length || typedefTags.length >= 2) { + handleTypeAliases(); + return; + } + + const potentialType = typedefTags[0].type; + const parsedType = mode === 'permissive' ? + tryParseType(/** @type {string} */ (potentialType)) : + parseType(/** @type {string} */ (potentialType), mode) + + traverse(parsedType, (nde) => { + const { + type, + value, + } = /** @type {import('jsdoc-type-pratt-parser').NameResult} */ (nde); + if (type === 'JsdocTypeName' && (/^[A-Z]$/).test(value)) { + usedNames.add(value); + } + }); + + for (const tag of templateTags) { + const {name} = tag; + const names = name.split(/,\s*/); + for (const name of names) { + if (!usedNames.has(name)) { + report(`@template ${name} not in use`, null, tag); + } + } + } +}, { + iterateAllJsdocs: true, + meta: { + docs: { + description: 'Checks that any `@template` names are actually used in the connected `@typedef` or type alias.', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template.md#repos-sticky-header', + }, + schema: [], + type: 'suggestion', + }, +}); diff --git a/test/rules/assertions/checkTemplateNames.js b/test/rules/assertions/checkTemplateNames.js new file mode 100644 index 000000000..afe55f67c --- /dev/null +++ b/test/rules/assertions/checkTemplateNames.js @@ -0,0 +1,197 @@ +import {parser as typescriptEslintParser} from 'typescript-eslint'; + +export default { + invalid: [ + { + code: ` + /** + * @template D + * @template V + */ + type Pairs = [X, Y | undefined]; + `, + errors: [ + { + line: 3, + message: '@template D not in use', + }, + { + line: 4, + message: '@template V not in use', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template D + * @template V + */ + export type Pairs = [X, Y | undefined]; + `, + errors: [ + { + line: 3, + message: '@template D not in use', + }, + { + line: 4, + message: '@template V not in use', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template D + * @template V + * @typedef {[X, Y | undefined]} Pairs + */ + `, + errors: [ + { + line: 3, + message: '@template D not in use', + }, + { + line: 4, + message: '@template V not in use', + }, + ], + }, + { + code: ` + /** + * @template D + * @template V + */ + export type Pairs = [number, undefined]; + `, + errors: [ + { + line: 3, + message: '@template D not in use', + }, + { + line: 4, + message: '@template V not in use', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template D + * @template V + * @typedef {[undefined]} Pairs + */ + `, + errors: [ + { + line: 3, + message: '@template D not in use', + }, + { + line: 4, + message: '@template V not in use', + }, + ], + settings: { + jsdoc: { + mode: 'permissive', + }, + }, + }, + { + code: ` + /** + * @template D, U, V + */ + export type Extras = [D, U | undefined]; + `, + errors: [ + { + line: 3, + message: '@template V not in use', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template D, U, V + * @typedef {[D, U | undefined]} Extras + */ + `, + errors: [ + { + line: 3, + message: '@template V not in use', + }, + ], + }, + ], + valid: [ + { + code: ` + /** + * @template D + * @template V + */ + export type Pairs = [D, V | undefined]; + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template D + * @template V + * @typedef {[D, V | undefined]} Pairs + */ + `, + }, + { + code: ` + /** + * @template D, U, V + */ + export type Extras = [D, U, V | undefined]; + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template D, U, V + * @typedef {[D, U, V | undefined]} Extras + */ + `, + }, + { + code: ` + /** + * @template X + * @typedef {[D, U, V | undefined]} Extras + * @typedef {[D, U, V | undefined]} Extras + */ + `, + }, + ], +}; diff --git a/test/rules/ruleNames.json b/test/rules/ruleNames.json index c158f48e4..1540d80bf 100644 --- a/test/rules/ruleNames.json +++ b/test/rules/ruleNames.json @@ -8,6 +8,7 @@ "check-property-names", "check-syntax", "check-tag-names", + "check-template-names", "check-types", "check-values", "convert-to-jsdoc-comments", From f61e5b2487bb38daf76ed9edaccff9e4d14ee53f Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 19 Jul 2024 23:31:36 +0800 Subject: [PATCH 209/273] feat: update semver, synckit, devDeps Also: - chore: remove auto-removed deprecated husky code --- .husky/post-checkout | 2 - .husky/post-commit | 2 - .husky/post-merge | 2 - .husky/post-rewrite | 2 - .husky/pre-commit | 2 - .husky/pre-push | 2 - package.json | 28 +- pnpm-lock.yaml | 2218 ++++++++++++++++++++++-------------------- 8 files changed, 1168 insertions(+), 1090 deletions(-) diff --git a/.husky/post-checkout b/.husky/post-checkout index 056bfb428..93d57675e 100755 --- a/.husky/post-checkout +++ b/.husky/post-checkout @@ -1,4 +1,2 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" npx run-if-changed diff --git a/.husky/post-commit b/.husky/post-commit index 056bfb428..93d57675e 100755 --- a/.husky/post-commit +++ b/.husky/post-commit @@ -1,4 +1,2 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" npx run-if-changed diff --git a/.husky/post-merge b/.husky/post-merge index 056bfb428..93d57675e 100755 --- a/.husky/post-merge +++ b/.husky/post-merge @@ -1,4 +1,2 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" npx run-if-changed diff --git a/.husky/post-rewrite b/.husky/post-rewrite index 056bfb428..93d57675e 100755 --- a/.husky/post-rewrite +++ b/.husky/post-rewrite @@ -1,4 +1,2 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" npx run-if-changed diff --git a/.husky/pre-commit b/.husky/pre-commit index d24fdfc60..6b636e2c0 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,2 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" npx lint-staged diff --git a/.husky/pre-push b/.husky/pre-push index 05340f7e4..bdaba679d 100755 --- a/.husky/pre-push +++ b/.husky/pre-push @@ -1,4 +1,2 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" npm test && npm run build && npm run check-docs diff --git a/package.json b/package.json index de30eb405..763b93855 100644 --- a/package.json +++ b/package.json @@ -12,19 +12,19 @@ "escape-string-regexp": "^4.0.0", "esquery": "^1.6.0", "parse-imports": "^2.1.1", - "semver": "^7.6.2", + "semver": "^7.6.3", "spdx-expression-parse": "^4.0.0", - "synckit": "^0.9.0" + "synckit": "^0.9.1" }, "description": "JSDoc linting rules for ESLint.", "devDependencies": { - "@babel/cli": "^7.24.7", - "@babel/core": "^7.24.7", - "@babel/eslint-parser": "^7.24.7", - "@babel/node": "^7.24.7", + "@babel/cli": "^7.24.8", + "@babel/core": "^7.24.9", + "@babel/eslint-parser": "^7.24.8", + "@babel/node": "^7.24.8", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-transform-flow-strip-types": "^7.24.7", - "@babel/preset-env": "^7.24.7", + "@babel/preset-env": "^7.24.8", "@es-joy/escodegen": "^3.5.1", "@es-joy/jsdoc-eslint-parser": "^0.21.1", "@hkdobrev/run-if-changed": "^0.3.1", @@ -39,10 +39,10 @@ "@types/json-schema": "^7.0.15", "@types/lodash.defaultsdeep": "^4.6.9", "@types/mocha": "^10.0.7", - "@types/node": "^20.14.10", + "@types/node": "^20.14.11", "@types/semver": "^7.5.8", "@types/spdx-expression-parse": "^3.0.5", - "@typescript-eslint/types": "^7.16.0", + "@typescript-eslint/types": "^7.16.1", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^7.0.0", "babel-plugin-transform-import-meta": "^2.2.1", @@ -51,19 +51,19 @@ "chai": "^5.1.1", "cross-env": "^7.0.3", "decamelize": "^6.0.0", - "eslint": "9.6.0", - "eslint-config-canonical": "~43.0.13", + "eslint": "9.7.0", + "eslint-config-canonical": "~43.0.14", "espree": "^10.1.0", - "gitdown": "^4.1.0", + "gitdown": "^4.1.1", "glob": "^10.4.2", "globals": "^15.8.0", - "husky": "^9.0.11", + "husky": "^9.1.1", "jsdoc-type-pratt-parser": "^4.0.0", "json-schema": "^0.4.0", "lint-staged": "^15.2.7", "lodash.defaultsdeep": "^4.6.1", "mocha": "^10.6.0", - "open-editor": "^4.1.1", + "open-editor": "^5.0.0", "replace": "^1.2.2", "rimraf": "^5.0.7", "semantic-release": "^24.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 723ffc50c..25ba9c7fd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -30,36 +30,36 @@ importers: specifier: ^2.1.1 version: 2.1.1 semver: - specifier: ^7.6.2 - version: 7.6.2 + specifier: ^7.6.3 + version: 7.6.3 spdx-expression-parse: specifier: ^4.0.0 version: 4.0.0 synckit: - specifier: ^0.9.0 - version: 0.9.0 + specifier: ^0.9.1 + version: 0.9.1 devDependencies: '@babel/cli': - specifier: ^7.24.7 - version: 7.24.7(@babel/core@7.24.7) + specifier: ^7.24.8 + version: 7.24.8(@babel/core@7.24.9) '@babel/core': - specifier: ^7.24.7 - version: 7.24.7 + specifier: ^7.24.9 + version: 7.24.9 '@babel/eslint-parser': - specifier: ^7.24.7 - version: 7.24.7(@babel/core@7.24.7)(eslint@9.6.0) + specifier: ^7.24.8 + version: 7.24.8(@babel/core@7.24.9)(eslint@9.7.0) '@babel/node': - specifier: ^7.24.7 - version: 7.24.7(@babel/core@7.24.7) + specifier: ^7.24.8 + version: 7.24.8(@babel/core@7.24.9) '@babel/plugin-syntax-class-properties': specifier: ^7.12.13 - version: 7.12.13(@babel/core@7.24.7) + version: 7.12.13(@babel/core@7.24.9) '@babel/plugin-transform-flow-strip-types': specifier: ^7.24.7 - version: 7.24.7(@babel/core@7.24.7) + version: 7.24.7(@babel/core@7.24.9) '@babel/preset-env': - specifier: ^7.24.7 - version: 7.24.7(@babel/core@7.24.7) + specifier: ^7.24.8 + version: 7.24.8(@babel/core@7.24.9) '@es-joy/escodegen': specifier: ^3.5.1 version: 3.5.1 @@ -103,8 +103,8 @@ importers: specifier: ^10.0.7 version: 10.0.7 '@types/node': - specifier: ^20.14.10 - version: 20.14.10 + specifier: ^20.14.11 + version: 20.14.11 '@types/semver': specifier: ^7.5.8 version: 7.5.8 @@ -112,8 +112,8 @@ importers: specifier: ^3.0.5 version: 3.0.5 '@typescript-eslint/types': - specifier: ^7.16.0 - version: 7.16.0 + specifier: ^7.16.1 + version: 7.16.1 babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -122,7 +122,7 @@ importers: version: 7.0.0 babel-plugin-transform-import-meta: specifier: ^2.2.1 - version: 2.2.1(@babel/core@7.24.7) + version: 2.2.1(@babel/core@7.24.9) c8: specifier: ^10.1.2 version: 10.1.2 @@ -139,17 +139,17 @@ importers: specifier: ^6.0.0 version: 6.0.0 eslint: - specifier: 9.6.0 - version: 9.6.0 + specifier: 9.7.0 + version: 9.7.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.10)(encoding@0.1.13)(eslint@9.6.0)(typescript@5.5.3) + specifier: ~43.0.14 + version: 43.0.14(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.9))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.9))(@types/eslint@8.56.10)(@types/node@20.14.11)(encoding@0.1.13)(eslint@9.7.0)(typescript@5.5.3) espree: specifier: ^10.1.0 version: 10.1.0 gitdown: - specifier: ^4.1.0 - version: 4.1.0(re2@1.20.9) + specifier: ^4.1.1 + version: 4.1.1(re2@1.20.9) glob: specifier: ^10.4.2 version: 10.4.2 @@ -157,8 +157,8 @@ importers: specifier: ^15.8.0 version: 15.8.0 husky: - specifier: ^9.0.11 - version: 9.0.11 + specifier: ^9.1.1 + version: 9.1.1 jsdoc-type-pratt-parser: specifier: ^4.0.0 version: 4.0.0 @@ -175,8 +175,8 @@ importers: specifier: ^10.6.0 version: 10.6.0 open-editor: - specifier: ^4.1.1 - version: 4.1.1 + specifier: ^5.0.0 + version: 5.0.0 replace: specifier: ^1.2.2 version: 1.2.2 @@ -191,7 +191,7 @@ importers: version: 5.5.3 typescript-eslint: specifier: ^8.0.0-alpha.34 - version: 8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3) + version: 8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3) packages: @@ -207,17 +207,13 @@ packages: resolution: {integrity: sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==} engines: {node: '>=14'} - '@babel/cli@7.24.7': - resolution: {integrity: sha512-8dfPprJgV4O14WTx+AQyEA+opgUKPrsIXX/MdL50J1n06EQJ6m1T+CdsJe0qEC0B/Xl85i+Un5KVAxd/PACX9A==} + '@babel/cli@7.24.8': + resolution: {integrity: sha512-isdp+G6DpRyKc+3Gqxy2rjzgF7Zj9K0mzLNnxz+E/fgeag8qT3vVulX4gY9dGO1q0y+0lUv6V3a+uhUzMzrwXg==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/code-frame@7.24.2': - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} - engines: {node: '>=6.9.0'} - '@babel/code-frame@7.24.6': resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==} engines: {node: '>=6.9.0'} @@ -226,16 +222,16 @@ packages: resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.24.7': - resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} + '@babel/compat-data@7.24.9': + resolution: {integrity: sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==} engines: {node: '>=6.9.0'} - '@babel/core@7.24.7': - resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} + '@babel/core@7.24.9': + resolution: {integrity: sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==} engines: {node: '>=6.9.0'} - '@babel/eslint-parser@7.24.7': - resolution: {integrity: sha512-SO5E3bVxDuxyNxM5agFv480YA2HO6ohZbGxbazZdIk3KQOPOGVNw6q78I9/lbviIf95eq6tPozeYnJLbjnC8IA==} + '@babel/eslint-parser@7.24.8': + resolution: {integrity: sha512-nYAikI4XTGokU2QX7Jx+v4rxZKhKivaQaREZjuW3mrJrbdWJ5yUfohnoUULge+zEEaKjPYNxhoRgUKktjXtbwA==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 @@ -248,18 +244,14 @@ packages: '@babel/eslint-parser': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - '@babel/generator@7.24.6': - resolution: {integrity: sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==} + '@babel/generator@7.24.10': + resolution: {integrity: sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==} engines: {node: '>=6.9.0'} '@babel/generator@7.24.7': resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.24.6': - resolution: {integrity: sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==} - engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.24.7': resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} engines: {node: '>=6.9.0'} @@ -268,8 +260,8 @@ packages: resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.24.7': - resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} + '@babel/helper-compilation-targets@7.24.8': + resolution: {integrity: sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==} engines: {node: '>=6.9.0'} '@babel/helper-create-class-features-plugin@7.24.7': @@ -278,12 +270,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.24.6': - resolution: {integrity: sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.24.7': resolution: {integrity: sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==} engines: {node: '>=6.9.0'} @@ -295,26 +281,14 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-environment-visitor@7.24.6': - resolution: {integrity: sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==} - engines: {node: '>=6.9.0'} - '@babel/helper-environment-visitor@7.24.7': resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} engines: {node: '>=6.9.0'} - '@babel/helper-function-name@7.24.6': - resolution: {integrity: sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==} - engines: {node: '>=6.9.0'} - '@babel/helper-function-name@7.24.7': resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} engines: {node: '>=6.9.0'} - '@babel/helper-hoist-variables@7.24.6': - resolution: {integrity: sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==} - engines: {node: '>=6.9.0'} - '@babel/helper-hoist-variables@7.24.7': resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} engines: {node: '>=6.9.0'} @@ -333,6 +307,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.24.9': + resolution: {integrity: sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-optimise-call-expression@7.24.7': resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} engines: {node: '>=6.9.0'} @@ -345,6 +325,10 @@ packages: resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.24.8': + resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} + engines: {node: '>=6.9.0'} + '@babel/helper-remap-async-to-generator@7.24.7': resolution: {integrity: sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==} engines: {node: '>=6.9.0'} @@ -365,10 +349,6 @@ packages: resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.24.6': - resolution: {integrity: sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==} - engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.24.7': resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} @@ -381,8 +361,8 @@ packages: resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.5': - resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} + '@babel/helper-string-parser@7.24.8': + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} '@babel/helper-validator-identifier@7.24.6': @@ -393,20 +373,16 @@ packages: resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.7': - resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} + '@babel/helper-validator-option@7.24.8': + resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} '@babel/helper-wrap-function@7.24.7': resolution: {integrity: sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.7': - resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} - engines: {node: '>=6.9.0'} - - '@babel/highlight@7.24.2': - resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} + '@babel/helpers@7.24.8': + resolution: {integrity: sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==} engines: {node: '>=6.9.0'} '@babel/highlight@7.24.6': @@ -417,8 +393,8 @@ packages: resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - '@babel/node@7.24.7': - resolution: {integrity: sha512-BCYNLxUQjGTgy8bAq12jy+Lt8soGWa/5u3s7U3aTVXxviIp0YVS+/Wm0b4eaitLVvetYrEoAiRF0QOk4WKsHAQ==} + '@babel/node@7.24.8': + resolution: {integrity: sha512-4JgQZJOVDrMCe2OwP7g4nBEvv0kbTkWYVvkEhFdq8JdEhsy9J5E5ChibbIchTrntKB62lx2I7fVTdM+Se7KVFg==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: @@ -434,6 +410,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.24.8': + resolution: {integrity: sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7': resolution: {integrity: sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==} engines: {node: '>=6.9.0'} @@ -614,8 +595,8 @@ packages: peerDependencies: '@babel/core': ^7.12.0 - '@babel/plugin-transform-classes@7.24.7': - resolution: {integrity: sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==} + '@babel/plugin-transform-classes@7.24.8': + resolution: {integrity: sha512-VXy91c47uujj758ud9wx+OMgheXm4qJfyhj1P18YvlrQkNOSrwsteHk+EFS3OMGfhMhpZa0A+81eE7G4QC+3CA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -626,8 +607,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.24.7': - resolution: {integrity: sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==} + '@babel/plugin-transform-destructuring@7.24.8': + resolution: {integrity: sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -710,8 +691,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.24.7': - resolution: {integrity: sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==} + '@babel/plugin-transform-modules-commonjs@7.24.8': + resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -770,8 +751,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.24.7': - resolution: {integrity: sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==} + '@babel/plugin-transform-optional-chaining@7.24.8': + resolution: {integrity: sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -842,8 +823,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typeof-symbol@7.24.7': - resolution: {integrity: sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==} + '@babel/plugin-transform-typeof-symbol@7.24.8': + resolution: {integrity: sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -872,8 +853,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.24.7': - resolution: {integrity: sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==} + '@babel/preset-env@7.24.8': + resolution: {integrity: sha512-vObvMZB6hNWuDxhSaEPTKCwcqkAIuDtE+bQGn4XMXne1DSLzFVY8Vmj1bm+mUQXYNN8NmaQEO+r8MMbzPr1jBQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -908,14 +889,14 @@ packages: resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.24.6': - resolution: {integrity: sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==} - engines: {node: '>=6.9.0'} - '@babel/traverse@7.24.7': resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.24.8': + resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==} + engines: {node: '>=6.9.0'} + '@babel/types@7.24.6': resolution: {integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==} engines: {node: '>=6.9.0'} @@ -924,6 +905,10 @@ packages: resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} engines: {node: '>=6.9.0'} + '@babel/types@7.24.9': + resolution: {integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==} + engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -948,10 +933,6 @@ packages: resolution: {integrity: sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==} engines: {node: '>=16'} - '@es-joy/jsdoccomment@0.43.1': - resolution: {integrity: sha512-I238eDtOolvCuvtxrnqtlBaw0BwdQuYqK7eA6XIonicMdOOOb75mqdIzkGDUbS04+1Di007rgm9snFRNeVrOog==} - engines: {node: '>=16'} - '@es-joy/jsdoccomment@0.46.0': resolution: {integrity: sha512-C3Axuq1xd/9VqFZpW4YAzOx5O9q/LP46uIQy/iNDpHG3fmPa6TBtvfglMCs3RBiBxAIi0Go97r8+jvTt55XMyQ==} engines: {node: '>=16'} @@ -966,6 +947,10 @@ packages: resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.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/config-array@0.17.0': resolution: {integrity: sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -982,8 +967,8 @@ packages: resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@9.6.0': - resolution: {integrity: sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==} + '@eslint/js@9.7.0': + resolution: {integrity: sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': @@ -1135,8 +1120,8 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@next/eslint-plugin-next@14.2.4': - resolution: {integrity: sha512-svSFxW9f3xDaZA3idQmlFw7SusOuWTpDTAeBlO3AEPDltrraV+lqs7mAc6A27YdnpQVVIA3sODqUAAHdWhVWsA==} + '@next/eslint-plugin-next@14.2.5': + resolution: {integrity: sha512-LY3btOpPh+OTIpviNojDpUdIbHW9j0JBYBjsIp8IxtDFfYFyORvw3yNq6N231FVqQA7n7lwaf7xHbVJlA1ED7g==} '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==} @@ -1255,6 +1240,9 @@ packages: '@repeaterjs/repeater@3.0.5': resolution: {integrity: sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA==} + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} @@ -1334,8 +1322,8 @@ packages: '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/node@20.14.10': - resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==} + '@types/node@20.14.11': + resolution: {integrity: sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1349,8 +1337,8 @@ packages: '@types/ws@8.5.10': resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} - '@typescript-eslint/eslint-plugin@7.14.1': - resolution: {integrity: sha512-aAJd6bIf2vvQRjUG3ZkNXkmBpN+J7Wd0mfQiiVCJMu9Z5GcZZdcc0j8XwN/BM97Fl7e3SkTXODSk4VehUv7CGw==} + '@typescript-eslint/eslint-plugin@7.16.1': + resolution: {integrity: sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -1387,8 +1375,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@7.14.1': - resolution: {integrity: sha512-8lKUOebNLcR0D7RvlcloOacTOWzOqemWEWkKSVpMZVF/XVcwjPR+3MD08QzbW9TCGJ+DwIc6zUSGZ9vd8cO1IA==} + '@typescript-eslint/parser@7.16.1': + resolution: {integrity: sha512-u+1Qx86jfGQ5i4JjK33/FnawZRpsLxRnKzGE6EABZ40KxVT/vWsiZFEBBHjFOljmmV3MBYOHEKi0Jm9hbAOClA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1423,12 +1411,16 @@ packages: resolution: {integrity: sha512-gPrFSsoYcsffYXTOZ+hT7fyJr95rdVe4kGVX1ps/dJ+DfmlnjFN/GcMxXcVkeHDKqsq6uAcVaQaIi3cFffmAbA==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@7.16.1': + resolution: {integrity: sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==} + engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@8.0.0-alpha.34': resolution: {integrity: sha512-IpeT8JnV1Uo5lG/GTYe/SRJRcz1rBaCNma5cS5R8c4NkBIiIeE+R9Vy8ZEPkGImTfBp9BUNU6w+8lSQf0Z6tKw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@7.14.1': - resolution: {integrity: sha512-/MzmgNd3nnbDbOi3LfasXWWe292+iuo+umJ0bCCMCPc1jLO/z2BQmWUUUXvXLbrQey/JgzdF/OV+I5bzEGwJkQ==} + '@typescript-eslint/type-utils@7.16.1': + resolution: {integrity: sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1462,8 +1454,8 @@ 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==} + '@typescript-eslint/types@7.16.1': + resolution: {integrity: sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==} engines: {node: ^18.18.0 || >=20.0.0} '@typescript-eslint/types@8.0.0-alpha.34': @@ -1506,6 +1498,15 @@ packages: typescript: optional: true + '@typescript-eslint/typescript-estree@7.16.1': + resolution: {integrity: sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/typescript-estree@8.0.0-alpha.34': resolution: {integrity: sha512-1ZAffOto9HpStxKCVpKkemYRUC4fznLEaj9fZyIYcppC/hdNNgZaiC0ONRUQQtdlPgdeH8BKoiWo6bGRemlxUw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1533,6 +1534,12 @@ packages: peerDependencies: eslint: ^8.56.0 + '@typescript-eslint/utils@7.16.1': + resolution: {integrity: sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + '@typescript-eslint/utils@8.0.0-alpha.34': resolution: {integrity: sha512-gHiHW96wCi3yllubUOswdWyCS/D5IRytTw9rPyumWJGD9qPh47MZAxtKp86Qdt1sbg+BJkYb8cCUMX9dwlVZzA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1555,6 +1562,10 @@ packages: resolution: {integrity: sha512-Crb+F75U1JAEtBeQGxSKwI60hZmmzaqA3z9sYsVm8X7W5cwLEm5bRe0/uXS6+MR/y8CVpKSR/ontIAIEPFcEkA==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@7.16.1': + resolution: {integrity: sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==} + engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@8.0.0-alpha.34': resolution: {integrity: sha512-Zs84EZx55fusxi4+6bzdZyNLy6nN8snh7HOcgs1jiRkqmf0qo+cgPjb7mGA1RgE1m60FQYgesj7je9KBE0HfSA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1862,6 +1873,11 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.23.2: + resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -1869,6 +1885,10 @@ packages: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -1926,6 +1946,9 @@ packages: caniuse-lite@1.0.30001606: resolution: {integrity: sha512-LPbwnW4vfpJId225pwjZJOgX1m9sGfbw/RKJvw/t0QhYOOaTXHvkjVGFGPpvwEzufrjvTlsULnVTxdy4/6cqkg==} + caniuse-lite@1.0.30001642: + resolution: {integrity: sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA==} + caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -2246,13 +2269,21 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} @@ -2325,6 +2356,9 @@ packages: electron-to-chromium@1.4.729: resolution: {integrity: sha512-bx7+5Saea/qu14kmPTDHQxkp2UnziG3iajUQu3BxFvCOnpAJdDbMV4rSl+EqFDkkpNNVUFlR1kDfpL59xfy1HA==} + electron-to-chromium@1.4.830: + resolution: {integrity: sha512-TrPKKH20HeN0J1LHzsYLs2qwXrp8TF4nHdu4sq61ozGbzMpWhI7iIOPYPPkxeq1azMT9PZ8enPFcftbs/Npcjg==} + emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} @@ -2347,10 +2381,6 @@ packages: resolution: {integrity: sha512-+29eJLiUixTEDRaZ35Vu8jP3gPLNcQQkQkOQjLp2X+6cZGGPDD/uasbFzvLsJKnGZnvmyZ0srxudwOtskHeIDA==} engines: {node: '>=4.0.0'} - enhanced-resolve@5.15.0: - resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} - engines: {node: '>=10.13.0'} - enhanced-resolve@5.17.0: resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} engines: {node: '>=10.13.0'} @@ -2423,6 +2453,10 @@ packages: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} + escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -2456,8 +2490,8 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-config-canonical@43.0.13: - resolution: {integrity: sha512-Thsn0ehPsRSiqogX5SZmIUqsc4etDTHJCtnvDVjPzzbg3cJZLj8DjoZ5vIYGU/wx8lKP0lE4LKTlVTeJbU7sHQ==} + eslint-config-canonical@43.0.14: + resolution: {integrity: sha512-Iz5WImwzrplJEoUCpLe/mX345ZhwA9YGSIYFn+m1nn8TMtfJsttPq42lGSXnsInz2GLC2wPNP3FS7GWCIGHtzQ==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 @@ -2540,11 +2574,11 @@ packages: peerDependencies: eslint: '>=3' - eslint-plugin-i@2.29.1: - resolution: {integrity: sha512-ORizX37MelIWLbMyqI7hi8VJMf7A0CskMmYkB+lkCX3aF4pkGV7kwx5bSEb4qx7Yce2rAf9s34HqDRPjGRZPNQ==} - engines: {node: '>=12'} + eslint-plugin-import-x@3.0.1: + resolution: {integrity: sha512-jzQgJuE4ssxwNi0aMBkOL8whd4eHb0Z/uFWsk8uEoYB7xwTkAptSKojLzRswxgf/1bhH6QgcLjgabUBQqluBIg==} + engines: {node: '>=16'} peerDependencies: - eslint: ^7.2.0 || ^8 + eslint: ^8.56.0 || ^9.0.0-0 eslint-plugin-jest@28.6.0: resolution: {integrity: sha512-YG28E1/MIKwnz+e2H7VwYPzHUYU4aMa19w0yGcwXnnmJH6EfgHahTJ2un3IyraUxNfnz/KUhJAFXNNwWPo12tg==} @@ -2559,8 +2593,8 @@ packages: jest: optional: true - eslint-plugin-jsdoc@48.5.0: - resolution: {integrity: sha512-ukXPNpGby3KjCveCizIS8t1EbuJEHYEu/tBg8GCbn/YbHcXwphyvYCdvRZ/oMRfTscGSSzfsWoZ+ZkAP0/6YMQ==} + eslint-plugin-jsdoc@48.7.0: + resolution: {integrity: sha512-5oiVf7Y+ZxGYQTlLq81X72n+S+hjvS/u0upAdbpPEeaIZILK3MKN8lm/6QqKioBjm/qZ0B5XpMQUtc2fUkqXAg==} engines: {node: '>=18'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 @@ -2613,8 +2647,8 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-promise@6.2.0: - resolution: {integrity: sha512-QmAqwizauvnKOlifxyDj2ObfULpHQawlg/zQdgEixur9vl0CvZGv/LCJV2rtj3210QCoeGBzVMfMXqGAOr/4fA==} + eslint-plugin-promise@6.4.0: + resolution: {integrity: sha512-/KWWRaD3fGkVCZsdR0RU53PSthFmoHVhZl+y9+6DqeDLSikLdlUVpVEAmI6iCRR5QyOjBYBqHZV/bdv4DJ4Gtw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 @@ -2625,8 +2659,8 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react@7.34.3: - resolution: {integrity: sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==} + eslint-plugin-react@7.34.4: + resolution: {integrity: sha512-Np+jo9bUwJNxCsT12pXtrGhJgT3T44T1sHhn1Ssr42XFn8TES0267wPGo5nNrMHi8qkyimDAX2BUmkf9pSaVzA==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 @@ -2637,8 +2671,8 @@ packages: peerDependencies: eslint: '>=8.44.0' - eslint-plugin-simple-import-sort@12.1.0: - resolution: {integrity: sha512-Y2fqAfC11TcG/WP3TrI1Gi3p3nc8XJyEOJYHyEPEGI/UAgNx6akxxlX74p7SbAQdLcgASKhj8M0GKvH3vq/+ig==} + eslint-plugin-simple-import-sort@12.1.1: + resolution: {integrity: sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==} peerDependencies: eslint: '>=5.0.0' @@ -2693,8 +2727,8 @@ packages: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-scope@8.0.1: - resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==} + eslint-scope@8.0.2: + resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-utils@3.0.0: @@ -2720,8 +2754,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true - eslint@9.6.0: - resolution: {integrity: sha512-ElQkdLMEEqQNM9Njff+2Y4q2afHk7JpkPvrd7Xh7xefwgQynqPxwf55J7di9+MEibWUGdNjFF9ITG9Pck5M84w==} + eslint@9.7.0: + resolution: {integrity: sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true @@ -2768,10 +2802,6 @@ packages: resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} engines: {node: '>=6'} - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} @@ -2780,6 +2810,10 @@ packages: resolution: {integrity: sha512-lSgHc4Elo2m6bUDhc3Hl/VxvUDJdQWI40RZ4KMY9bKRc+hgMOT7II/JjbNDhI8VnMtrCb7U/fhpJIkLORZozWw==} engines: {node: '>=18'} + execa@9.3.0: + resolution: {integrity: sha512-l6JFbqnHEadBoVAVpN5dl2yCyfX28WoBAGaoQcNmLLSedOxTxcn2Qa83s8I/PA5i56vWru2OHOtrwF7Om2vqlg==} + engines: {node: ^18.19.0 || >=20.5.0} + expand-brackets@2.1.4: resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} engines: {node: '>=0.10.0'} @@ -3033,6 +3067,9 @@ packages: get-tsconfig@4.7.2: resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + get-tsconfig@4.7.6: + resolution: {integrity: sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==} + get-urls@12.1.0: resolution: {integrity: sha512-qHO+QmPiI1bEw0Y/m+WMAAx/UoEEXLZwEx0DVaKMtlHNrKbMeV960LryIpd+E2Ykb9XkVHmVtpbCsmul3GhR0g==} engines: {node: '>=16'} @@ -3047,8 +3084,8 @@ packages: git-log-parser@1.2.0: resolution: {integrity: sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==} - gitdown@4.1.0: - resolution: {integrity: sha512-CI/r2ksBVjecwuMhjcLkR8+BxULZrG3penxn9TkzdSYdEzjeiUJJr/Q0Gn24kNC/5mafgRNOBCbiERUgIxSyKw==} + gitdown@4.1.1: + resolution: {integrity: sha512-46RxNJDW9Gao+FZot2xFazGoQ/heGt0eXRn+ww2Lh+aFBlsRIq1ln8rGwbFeEJbF9Ozus+Ox0ibCzyKW/z6Olg==} engines: {node: '>=18'} hasBin: true @@ -3148,8 +3185,8 @@ packages: peerDependencies: graphql: '>=0.11 <=16' - graphql@16.8.1: - resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} + graphql@16.9.0: + resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} handlebars@4.7.8: @@ -3259,10 +3296,6 @@ packages: resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} engines: {node: '>= 14'} - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} @@ -3271,8 +3304,8 @@ packages: resolution: {integrity: sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==} engines: {node: '>=18.18.0'} - husky@9.0.11: - resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} + husky@9.1.1: + resolution: {integrity: sha512-fCqlqLXcBnXa/TJXmT93/A36tJsjdJkibQ1MuIiFyCCYUlpYpIaj2mv1w+3KR6Rzu1IC3slFTje5f6DUp2A2rg==} engines: {node: '>=18'} hasBin: true @@ -3416,9 +3449,9 @@ packages: resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} engines: {node: '>=0.10.0'} - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true is-extendable@0.1.1: @@ -3459,6 +3492,11 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + is-js-type@2.0.0: resolution: {integrity: sha512-Aj13l47+uyTjlQNHtXBV8Cji3jb037vxwMWCgopRR8h6xocgBGW3qG8qGlIOEmbXQtkKShKuBM9e8AA1OeQ+xw==} @@ -3533,10 +3571,6 @@ packages: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} engines: {node: '>=0.10.0'} - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3581,9 +3615,9 @@ packages: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -4140,10 +4174,6 @@ packages: resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} engines: {node: '>=4'} - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - npm-run-path@5.2.0: resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4279,10 +4309,6 @@ packages: resolution: {integrity: sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==} engines: {node: '>= 0.8'} - object.hasown@1.1.4: - resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} - engines: {node: '>= 0.4'} - object.pick@1.3.0: resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} engines: {node: '>=0.10.0'} @@ -4302,13 +4328,13 @@ packages: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} - open-editor@4.1.1: - resolution: {integrity: sha512-SYtGeZ9Zkzj/naoZaEF9LzwDYEGwuqQ4Fx5E3xdVRN98LFJjvMhG/ElByFEOVOiXepGra/Wi1fA4i/E1fXSBsw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + open-editor@5.0.0: + resolution: {integrity: sha512-fRHi4my03WQSbWfqChs9AdFfSp6SLalB3zadfwfYIojoKanLDBfv2uAdiZCfzdvom7TBdlXu2UeiiydBc56/EQ==} + engines: {node: '>=18'} - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} + open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} optionator@0.8.3: resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} @@ -4478,6 +4504,9 @@ packages: picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -4535,8 +4564,8 @@ packages: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} engines: {node: '>=6.0.0'} - prettier@3.3.2: - resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} engines: {node: '>=14'} hasBin: true @@ -4598,8 +4627,8 @@ packages: ramda@0.26.1: resolution: {integrity: sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==} - ramda@0.30.0: - resolution: {integrity: sha512-13Y0iMhIQuAm/wNGBL/9HEqIfRGmNmjKnTPlKWfA9f7dnDkr8d45wQ+S7+ZLh/Pq9PdcGxkqKUEA7ySu1QSd9Q==} + ramda@0.30.1: + resolution: {integrity: sha512-tEF5I22zJnuclswcZMc8bDIrwRHRzf+NqVEmqg50ShAZMP7MWeR/RGDthfM/p+BlqvF2fXAzpn8i+SJcYD3alw==} randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -4794,6 +4823,10 @@ packages: resolution: {integrity: sha512-d1rPLcHmQID3GsA3p9d5vKSZYlvrTWhjbmeg9DT5DcPoLpH85VzPmkLkGKhQv376+dfkApaHwNbpYEwDB77Ibg==} engines: {node: '>=18.0'} + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -4849,8 +4882,8 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true @@ -5021,6 +5054,9 @@ packages: resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + stable-hash@0.0.4: + resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} + stack-trace@0.0.10: resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} @@ -5072,6 +5108,9 @@ packages: resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} engines: {node: '>= 0.4'} + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + string.prototype.trim@1.2.9: resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} @@ -5105,10 +5144,6 @@ packages: resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} engines: {node: '>=0.10.0'} - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} @@ -5168,8 +5203,8 @@ packages: resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} engines: {node: ^14.18.0 || >=16.0.0} - synckit@0.9.0: - resolution: {integrity: sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==} + synckit@0.9.1: + resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} engines: {node: ^14.18.0 || >=16.0.0} tapable@2.2.1: @@ -5425,6 +5460,12 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + update-browserslist-db@1.1.0: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -5676,9 +5717,9 @@ snapshots: transitivePeerDependencies: - encoding - '@babel/cli@7.24.7(@babel/core@7.24.7)': + '@babel/cli@7.24.8(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@jridgewell/trace-mapping': 0.3.25 commander: 6.2.1 convert-source-map: 2.0.0 @@ -5690,11 +5731,6 @@ snapshots: '@nicolo-ribaudo/chokidar-2': 2.1.8-no-fsevents.3 chokidar: 3.5.3 - '@babel/code-frame@7.24.2': - dependencies: - '@babel/highlight': 7.24.2 - picocolors: 1.0.0 - '@babel/code-frame@7.24.6': dependencies: '@babel/highlight': 7.24.6 @@ -5705,20 +5741,20 @@ snapshots: '@babel/highlight': 7.24.7 picocolors: 1.0.0 - '@babel/compat-data@7.24.7': {} + '@babel/compat-data@7.24.9': {} - '@babel/core@7.24.7': + '@babel/core@7.24.9': dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) - '@babel/helpers': 7.24.7 - '@babel/parser': 7.24.7 + '@babel/generator': 7.24.10 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) + '@babel/helpers': 7.24.8 + '@babel/parser': 7.24.8 '@babel/template': 7.24.7 - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 convert-source-map: 2.0.0 debug: 4.3.5(supports-color@8.1.1) gensync: 1.0.0-beta.2 @@ -5727,31 +5763,31 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/eslint-parser@7.24.7(@babel/core@7.24.7)(eslint@8.56.0)': + '@babel/eslint-parser@7.24.8(@babel/core@7.24.9)(eslint@8.56.0)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 eslint: 8.56.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 - '@babel/eslint-parser@7.24.7(@babel/core@7.24.7)(eslint@9.6.0)': + '@babel/eslint-parser@7.24.8(@babel/core@7.24.9)(eslint@9.7.0)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 9.6.0 + eslint: 9.7.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.6.0))(eslint@9.6.0)': + '@babel/eslint-plugin@7.24.7(@babel/eslint-parser@7.24.8(@babel/core@7.24.9)(eslint@9.7.0))(eslint@9.7.0)': dependencies: - '@babel/eslint-parser': 7.24.7(@babel/core@7.24.7)(eslint@9.6.0) - eslint: 9.6.0 + '@babel/eslint-parser': 7.24.8(@babel/core@7.24.9)(eslint@9.7.0) + eslint: 9.7.0 eslint-rule-composer: 0.3.0 - '@babel/generator@7.24.6': + '@babel/generator@7.24.10': dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.9 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 @@ -5763,10 +5799,6 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - '@babel/helper-annotate-as-pure@7.24.6': - dependencies: - '@babel/types': 7.24.6 - '@babel/helper-annotate-as-pure@7.24.7': dependencies: '@babel/types': 7.24.7 @@ -5778,77 +5810,59 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-compilation-targets@7.24.7': + '@babel/helper-compilation-targets@7.24.8': dependencies: - '@babel/compat-data': 7.24.7 - '@babel/helper-validator-option': 7.24.7 - browserslist: 4.23.0 + '@babel/compat-data': 7.24.9 + '@babel/helper-validator-option': 7.24.8 + browserslist: 4.23.2 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.24.7)': + '@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-function-name': 7.24.7 '@babel/helper-member-expression-to-functions': 7.24.7 '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.9) '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 '@babel/helper-split-export-declaration': 7.24.7 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.24.6(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-annotate-as-pure': 7.24.6 - regexpu-core: 5.3.2 - semver: 6.3.1 - - '@babel/helper-create-regexp-features-plugin@7.24.7(@babel/core@7.24.7)': + '@babel/helper-create-regexp-features-plugin@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-annotate-as-pure': 7.24.7 regexpu-core: 5.3.2 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.7)': + '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-plugin-utils': 7.24.8 debug: 4.3.5(supports-color@8.1.1) lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: - supports-color - '@babel/helper-environment-visitor@7.24.6': {} - '@babel/helper-environment-visitor@7.24.7': dependencies: - '@babel/types': 7.24.7 - - '@babel/helper-function-name@7.24.6': - dependencies: - '@babel/template': 7.24.6 - '@babel/types': 7.24.6 + '@babel/types': 7.24.9 '@babel/helper-function-name@7.24.7': dependencies: '@babel/template': 7.24.7 - '@babel/types': 7.24.7 - - '@babel/helper-hoist-variables@7.24.6': - dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.9 '@babel/helper-hoist-variables@7.24.7': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 '@babel/helper-member-expression-to-functions@7.24.7': dependencies: @@ -5859,14 +5873,25 @@ snapshots: '@babel/helper-module-imports@7.24.7': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7)': + '@babel/helper-module-transforms@7.24.9(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 @@ -5883,18 +5908,20 @@ snapshots: '@babel/helper-plugin-utils@7.24.7': {} - '@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.24.7)': + '@babel/helper-plugin-utils@7.24.8': {} + + '@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-wrap-function': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.7)': + '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-member-expression-to-functions': 7.24.7 '@babel/helper-optimise-call-expression': 7.24.7 @@ -5903,8 +5930,8 @@ snapshots: '@babel/helper-simple-access@7.24.7': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 transitivePeerDependencies: - supports-color @@ -5915,25 +5942,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-split-export-declaration@7.24.6': - dependencies: - '@babel/types': 7.24.6 - '@babel/helper-split-export-declaration@7.24.7': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 '@babel/helper-string-parser@7.24.6': {} '@babel/helper-string-parser@7.24.7': {} - '@babel/helper-validator-identifier@7.24.5': {} + '@babel/helper-string-parser@7.24.8': {} '@babel/helper-validator-identifier@7.24.6': {} '@babel/helper-validator-identifier@7.24.7': {} - '@babel/helper-validator-option@7.24.7': {} + '@babel/helper-validator-option@7.24.8': {} '@babel/helper-wrap-function@7.24.7': dependencies: @@ -5944,17 +5967,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helpers@7.24.7': + '@babel/helpers@7.24.8': dependencies: '@babel/template': 7.24.7 - '@babel/types': 7.24.7 - - '@babel/highlight@7.24.2': - dependencies: - '@babel/helper-validator-identifier': 7.24.5 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.0 + '@babel/types': 7.24.9 '@babel/highlight@7.24.6': dependencies: @@ -5970,10 +5986,10 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.0.0 - '@babel/node@7.24.7(@babel/core@7.24.7)': + '@babel/node@7.24.8(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/register': 7.24.6(@babel/core@7.24.7) + '@babel/core': 7.24.9 + '@babel/register': 7.24.6(@babel/core@7.24.9) commander: 6.2.1 core-js: 3.37.1 node-environment-flags: 1.0.6 @@ -5988,574 +6004,578 @@ snapshots: dependencies: '@babel/types': 7.24.7 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7(@babel/core@7.24.7)': + '@babel/parser@7.24.8': dependencies: - '@babel/core': 7.24.7 + '@babel/types': 7.24.9 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.24.9) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.7)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.7)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.7)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.7)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.7)': + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.7)': + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.7)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.7)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.7)': + '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.7)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.7)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.7)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.7)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.7)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.7)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.7)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.7)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.7)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-async-generator-functions@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-async-generator-functions@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.9) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.9) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-block-scoping@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-block-scoping@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7) + '@babel/core': 7.24.9 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.9) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-classes@7.24.8(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-compilation-targets': 7.24.8 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-function-name': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.9) '@babel/helper-split-export-declaration': 7.24.7 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 '@babel/template': 7.24.7 - '@babel/plugin-transform-destructuring@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.7) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-transform-flow-strip-types@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-flow-strip-types@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-function-name@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-compilation-targets': 7.24.8 '@babel/helper-function-name': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-transform-literals@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-literals@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.9) - '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-simple-access': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-modules-systemjs@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.9) - '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7) + '@babel/core': 7.24.9 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.9) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-transform-optional-chaining@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.9) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7) + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.9) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.7)': + '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-module-imports': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.7) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.9) '@babel/types': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 regenerator-transform: 0.15.2 - '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-spread@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-spread@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-transform-typeof-symbol@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/preset-env@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/compat-data': 7.24.7 - '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-validator-option': 7.24.7 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.7) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.7) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.7) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.7) - '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-async-generator-functions': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-block-scoping': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-classes': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-destructuring': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-function-name': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-literals': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-modules-systemjs': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-typeof-symbol': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.24.7) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.7) - babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.7) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.7) - babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.7) + '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/preset-env@7.24.8(@babel/core@7.24.9)': + dependencies: + '@babel/compat-data': 7.24.9 + '@babel/core': 7.24.9 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-option': 7.24.8 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.9) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.9) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.9) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.9) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.9) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.9) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.9) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.9) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.9) + '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-async-generator-functions': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-block-scoping': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-classes': 7.24.8(@babel/core@7.24.9) + '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.24.9) + '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-function-name': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-literals': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.24.9) + '@babel/plugin-transform-modules-systemjs': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.24.9) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.24.9) + '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.24.9) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.9) + babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.9) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.9) + babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.9) core-js-compat: 3.37.1 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.7)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/types': 7.24.6 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/types': 7.24.7 esutils: 2.0.3 - '@babel/register@7.24.6(@babel/core@7.24.7)': + '@babel/register@7.24.6(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -6582,34 +6602,34 @@ snapshots: '@babel/template@7.24.7': dependencies: '@babel/code-frame': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 + '@babel/parser': 7.24.8 + '@babel/types': 7.24.9 - '@babel/traverse@7.24.6': + '@babel/traverse@7.24.7': dependencies: - '@babel/code-frame': 7.24.6 - '@babel/generator': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-function-name': 7.24.6 - '@babel/helper-hoist-variables': 7.24.6 - '@babel/helper-split-export-declaration': 7.24.6 - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 debug: 4.3.5(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/traverse@7.24.7': + '@babel/traverse@7.24.8': dependencies: '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 + '@babel/generator': 7.24.10 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-function-name': 7.24.7 '@babel/helper-hoist-variables': 7.24.7 '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 + '@babel/parser': 7.24.8 + '@babel/types': 7.24.9 debug: 4.3.5(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: @@ -6627,6 +6647,12 @@ snapshots: '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 + '@babel/types@7.24.9': + dependencies: + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + '@bcoe/v8-coverage@0.2.3': {} '@colors/colors@1.5.0': @@ -6645,8 +6671,8 @@ snapshots: '@es-joy/jsdoc-eslint-parser@0.21.1': dependencies: - '@babel/core': 7.24.7 - '@babel/eslint-parser': 7.24.7(@babel/core@7.24.7)(eslint@8.56.0) + '@babel/core': 7.24.9 + '@babel/eslint-parser': 7.24.8(@babel/core@7.24.9)(eslint@8.56.0) '@es-joy/jsdoccomment': 0.41.0 '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.5.3) eslint: 8.56.0 @@ -6661,15 +6687,6 @@ snapshots: 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.16.0 - comment-parser: 1.4.1 - esquery: 1.6.0 - jsdoc-type-pratt-parser: 4.0.0 - '@es-joy/jsdoccomment@0.46.0': dependencies: comment-parser: 1.4.1 @@ -6681,13 +6698,15 @@ snapshots: eslint: 8.56.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.0(eslint@9.6.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.7.0)': dependencies: - eslint: 9.6.0 + eslint: 9.7.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.10.0': {} + '@eslint-community/regexpp@4.11.0': {} + '@eslint/config-array@0.17.0': dependencies: '@eslint/object-schema': 2.1.4 @@ -6726,22 +6745,22 @@ snapshots: '@eslint/js@8.56.0': {} - '@eslint/js@9.6.0': {} + '@eslint/js@9.7.0': {} '@eslint/object-schema@2.1.4': {} - '@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)': + '@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.24.9)(@types/node@20.14.11)(encoding@0.1.13)(graphql@16.9.0)': 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) + '@babel/code-frame': 7.24.7 + '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.24.9)(graphql@16.9.0) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.24.9)(graphql@16.9.0) + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) chalk: 4.1.2 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.10)(encoding@0.1.13)(graphql@16.8.1) - graphql-depth-limit: 1.1.0(graphql@16.8.1) + graphql: 16.9.0 + graphql-config: 4.5.0(@types/node@20.14.11)(encoding@0.1.13)(graphql@16.9.0) + graphql-depth-limit: 1.1.0(graphql@16.9.0) lodash.lowercase: 4.3.0 tslib: 2.6.2 transitivePeerDependencies: @@ -6753,44 +6772,44 @@ snapshots: - supports-color - utf-8-validate - '@graphql-tools/batch-execute@8.5.22(graphql@16.8.1)': + '@graphql-tools/batch-execute@8.5.22(graphql@16.9.0)': dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) dataloader: 2.2.2 - graphql: 16.8.1 + graphql: 16.9.0 tslib: 2.6.2 value-or-promise: 1.0.12 - '@graphql-tools/code-file-loader@7.3.23(@babel/core@7.24.7)(graphql@16.8.1)': + '@graphql-tools/code-file-loader@7.3.23(@babel/core@7.24.9)(graphql@16.9.0)': dependencies: - '@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) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.24.9)(graphql@16.9.0) + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) globby: 11.1.0 - graphql: 16.8.1 + graphql: 16.9.0 tslib: 2.6.2 unixify: 1.0.0 transitivePeerDependencies: - '@babel/core' - supports-color - '@graphql-tools/delegate@9.0.35(graphql@16.8.1)': + '@graphql-tools/delegate@9.0.35(graphql@16.9.0)': dependencies: - '@graphql-tools/batch-execute': 8.5.22(graphql@16.8.1) - '@graphql-tools/executor': 0.0.20(graphql@16.8.1) - '@graphql-tools/schema': 9.0.19(graphql@16.8.1) - '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + '@graphql-tools/batch-execute': 8.5.22(graphql@16.9.0) + '@graphql-tools/executor': 0.0.20(graphql@16.9.0) + '@graphql-tools/schema': 9.0.19(graphql@16.9.0) + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) dataloader: 2.2.2 - graphql: 16.8.1 + graphql: 16.9.0 tslib: 2.6.2 value-or-promise: 1.0.12 - '@graphql-tools/executor-graphql-ws@0.0.14(graphql@16.8.1)': + '@graphql-tools/executor-graphql-ws@0.0.14(graphql@16.9.0)': dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) '@repeaterjs/repeater': 3.0.4 '@types/ws': 8.5.10 - graphql: 16.8.1 - graphql-ws: 5.12.1(graphql@16.8.1) + graphql: 16.9.0 + graphql-ws: 5.12.1(graphql@16.9.0) isomorphic-ws: 5.0.0(ws@8.13.0) tslib: 2.6.2 ws: 8.13.0 @@ -6798,25 +6817,25 @@ snapshots: - bufferutil - utf-8-validate - '@graphql-tools/executor-http@0.1.10(@types/node@20.14.10)(graphql@16.8.1)': + '@graphql-tools/executor-http@0.1.10(@types/node@20.14.11)(graphql@16.9.0)': dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) '@repeaterjs/repeater': 3.0.5 '@whatwg-node/fetch': 0.8.8 dset: 3.1.3 extract-files: 11.0.0 - graphql: 16.8.1 - meros: 1.3.0(@types/node@20.14.10) + graphql: 16.9.0 + meros: 1.3.0(@types/node@20.14.11) tslib: 2.6.2 value-or-promise: 1.0.12 transitivePeerDependencies: - '@types/node' - '@graphql-tools/executor-legacy-ws@0.0.11(graphql@16.8.1)': + '@graphql-tools/executor-legacy-ws@0.0.11(graphql@16.9.0)': dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) '@types/ws': 8.5.10 - graphql: 16.8.1 + graphql: 16.9.0 isomorphic-ws: 5.0.0(ws@8.13.0) tslib: 2.6.2 ws: 8.13.0 @@ -6824,86 +6843,86 @@ snapshots: - bufferutil - utf-8-validate - '@graphql-tools/executor@0.0.20(graphql@16.8.1)': + '@graphql-tools/executor@0.0.20(graphql@16.9.0)': dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.8.1) - '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) '@repeaterjs/repeater': 3.0.5 - graphql: 16.8.1 + graphql: 16.9.0 tslib: 2.6.2 value-or-promise: 1.0.12 - '@graphql-tools/graphql-file-loader@7.5.17(graphql@16.8.1)': + '@graphql-tools/graphql-file-loader@7.5.17(graphql@16.9.0)': dependencies: - '@graphql-tools/import': 6.7.18(graphql@16.8.1) - '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + '@graphql-tools/import': 6.7.18(graphql@16.9.0) + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) globby: 11.1.0 - graphql: 16.8.1 + graphql: 16.9.0 tslib: 2.6.2 unixify: 1.0.0 - '@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.24.7)(graphql@16.8.1)': + '@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.24.9)(graphql@16.9.0)': dependencies: - '@babel/parser': 7.24.6 - '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.7) - '@babel/traverse': 7.24.6 - '@babel/types': 7.24.6 - '@graphql-tools/utils': 9.2.1(graphql@16.8.1) - graphql: 16.8.1 + '@babel/parser': 7.24.7 + '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.9) + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) + graphql: 16.9.0 tslib: 2.6.2 transitivePeerDependencies: - '@babel/core' - supports-color - '@graphql-tools/import@6.7.18(graphql@16.8.1)': + '@graphql-tools/import@6.7.18(graphql@16.9.0)': dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.8.1) - graphql: 16.8.1 + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) + graphql: 16.9.0 resolve-from: 5.0.0 tslib: 2.6.2 - '@graphql-tools/json-file-loader@7.4.18(graphql@16.8.1)': + '@graphql-tools/json-file-loader@7.4.18(graphql@16.9.0)': dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) globby: 11.1.0 - graphql: 16.8.1 + graphql: 16.9.0 tslib: 2.6.2 unixify: 1.0.0 - '@graphql-tools/load@7.8.14(graphql@16.8.1)': + '@graphql-tools/load@7.8.14(graphql@16.9.0)': dependencies: - '@graphql-tools/schema': 9.0.19(graphql@16.8.1) - '@graphql-tools/utils': 9.2.1(graphql@16.8.1) - graphql: 16.8.1 + '@graphql-tools/schema': 9.0.19(graphql@16.9.0) + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) + graphql: 16.9.0 p-limit: 3.1.0 tslib: 2.6.2 - '@graphql-tools/merge@8.4.2(graphql@16.8.1)': + '@graphql-tools/merge@8.4.2(graphql@16.9.0)': dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.8.1) - graphql: 16.8.1 + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) + graphql: 16.9.0 tslib: 2.6.2 - '@graphql-tools/schema@9.0.19(graphql@16.8.1)': + '@graphql-tools/schema@9.0.19(graphql@16.9.0)': dependencies: - '@graphql-tools/merge': 8.4.2(graphql@16.8.1) - '@graphql-tools/utils': 9.2.1(graphql@16.8.1) - graphql: 16.8.1 + '@graphql-tools/merge': 8.4.2(graphql@16.9.0) + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) + graphql: 16.9.0 tslib: 2.6.2 value-or-promise: 1.0.12 - '@graphql-tools/url-loader@7.17.18(@types/node@20.14.10)(encoding@0.1.13)(graphql@16.8.1)': + '@graphql-tools/url-loader@7.17.18(@types/node@20.14.11)(encoding@0.1.13)(graphql@16.9.0)': 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.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) + '@graphql-tools/delegate': 9.0.35(graphql@16.9.0) + '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.9.0) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.14.11)(graphql@16.9.0) + '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.9.0) + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) + '@graphql-tools/wrap': 9.4.2(graphql@16.9.0) '@types/ws': 8.5.10 '@whatwg-node/fetch': 0.8.8 - graphql: 16.8.1 + graphql: 16.9.0 isomorphic-ws: 5.0.0(ws@8.16.0) tslib: 2.6.2 value-or-promise: 1.0.12 @@ -6914,24 +6933,24 @@ snapshots: - encoding - utf-8-validate - '@graphql-tools/utils@9.2.1(graphql@16.8.1)': + '@graphql-tools/utils@9.2.1(graphql@16.9.0)': dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) - graphql: 16.8.1 + '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) + graphql: 16.9.0 tslib: 2.6.2 - '@graphql-tools/wrap@9.4.2(graphql@16.8.1)': + '@graphql-tools/wrap@9.4.2(graphql@16.9.0)': dependencies: - '@graphql-tools/delegate': 9.0.35(graphql@16.8.1) - '@graphql-tools/schema': 9.0.19(graphql@16.8.1) - '@graphql-tools/utils': 9.2.1(graphql@16.8.1) - graphql: 16.8.1 + '@graphql-tools/delegate': 9.0.35(graphql@16.9.0) + '@graphql-tools/schema': 9.0.19(graphql@16.9.0) + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) + graphql: 16.9.0 tslib: 2.6.2 value-or-promise: 1.0.12 - '@graphql-typed-document-node/core@3.2.0(graphql@16.8.1)': + '@graphql-typed-document-node/core@3.2.0(graphql@16.9.0)': dependencies: - graphql: 16.8.1 + graphql: 16.9.0 '@hkdobrev/run-if-changed@0.3.1': dependencies: @@ -6993,7 +7012,7 @@ snapshots: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 - '@next/eslint-plugin-next@14.2.4': + '@next/eslint-plugin-next@14.2.5': dependencies: glob: 10.3.10 @@ -7029,7 +7048,7 @@ snapshots: '@npmcli/fs@3.1.0': dependencies: - semver: 7.6.2 + semver: 7.6.3 optional: true '@octokit/auth-token@5.1.0': {} @@ -7135,6 +7154,8 @@ snapshots: '@repeaterjs/repeater@3.0.5': {} + '@rtsao/scc@1.1.0': {} + '@sec-ant/readable-stream@0.4.1': {} '@semantic-release/commit-analyzer@13.0.0(semantic-release@24.0.0(typescript@5.5.3))': @@ -7189,7 +7210,7 @@ snapshots: read-pkg: 9.0.1 registry-auth-token: 5.0.2 semantic-release: 24.0.0(typescript@5.5.3) - semver: 7.6.2 + semver: 7.6.3 tempy: 3.1.0 '@semantic-release/release-notes-generator@14.0.1(semantic-release@24.0.0(typescript@5.5.3))': @@ -7247,7 +7268,7 @@ snapshots: '@types/ms@0.7.34': {} - '@types/node@20.14.10': + '@types/node@20.14.11': dependencies: undici-types: 5.26.5 @@ -7259,17 +7280,17 @@ snapshots: '@types/ws@8.5.10': dependencies: - '@types/node': 20.14.10 + '@types/node': 20.14.11 - '@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/eslint-plugin@7.16.1(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@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.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.6.0 + '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/scope-manager': 7.16.1 + '@typescript-eslint/type-utils': 7.16.1(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/utils': 7.16.1(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/visitor-keys': 7.16.1 + eslint: 9.7.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -7279,15 +7300,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@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/eslint-plugin@8.0.0-alpha.34(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3) + '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.7.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.6.0)(typescript@5.5.3) - '@typescript-eslint/utils': 8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3) + '@typescript-eslint/type-utils': 8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/utils': 8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3) '@typescript-eslint/visitor-keys': 8.0.0-alpha.34 - eslint: 9.6.0 + eslint: 9.7.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -7297,10 +7318,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/experimental-utils@5.62.0(eslint@9.6.0)(typescript@5.5.3)': + '@typescript-eslint/experimental-utils@5.62.0(eslint@9.7.0)(typescript@5.5.3)': dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@9.6.0)(typescript@5.5.3) - eslint: 9.6.0 + '@typescript-eslint/utils': 5.62.0(eslint@9.7.0)(typescript@5.5.3) + eslint: 9.7.0 transitivePeerDependencies: - supports-color - typescript @@ -7318,27 +7339,27 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3)': + '@typescript-eslint/parser@7.16.1(eslint@9.7.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.5.3) - '@typescript-eslint/visitor-keys': 7.14.1 + '@typescript-eslint/scope-manager': 7.16.1 + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) + '@typescript-eslint/visitor-keys': 7.16.1 debug: 4.3.5(supports-color@8.1.1) - eslint: 9.6.0 + eslint: 9.7.0 optionalDependencies: typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3)': + '@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.7.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.5.3) '@typescript-eslint/visitor-keys': 8.0.0-alpha.34 debug: 4.3.5(supports-color@8.1.1) - eslint: 9.6.0 + eslint: 9.7.0 optionalDependencies: typescript: 5.5.3 transitivePeerDependencies: @@ -7364,27 +7385,32 @@ snapshots: '@typescript-eslint/types': 7.14.1 '@typescript-eslint/visitor-keys': 7.14.1 + '@typescript-eslint/scope-manager@7.16.1': + dependencies: + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/visitor-keys': 7.16.1 + '@typescript-eslint/scope-manager@8.0.0-alpha.34': dependencies: '@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.6.0)(typescript@5.5.3)': + '@typescript-eslint/type-utils@7.16.1(eslint@9.7.0)(typescript@5.5.3)': dependencies: - '@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) + '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) + '@typescript-eslint/utils': 7.16.1(eslint@9.7.0)(typescript@5.5.3) debug: 4.3.5(supports-color@8.1.1) - eslint: 9.6.0 + eslint: 9.7.0 ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3)': + '@typescript-eslint/type-utils@8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3)': dependencies: '@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) + '@typescript-eslint/utils': 8.0.0-alpha.34(eslint@9.7.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: @@ -7401,7 +7427,7 @@ snapshots: '@typescript-eslint/types@7.14.1': {} - '@typescript-eslint/types@7.16.0': {} + '@typescript-eslint/types@7.16.1': {} '@typescript-eslint/types@8.0.0-alpha.34': {} @@ -7412,7 +7438,7 @@ snapshots: debug: 4.3.5(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.6.2 + semver: 7.6.3 tsutils: 3.21.0(typescript@5.5.3) optionalDependencies: typescript: 5.5.3 @@ -7427,7 +7453,7 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.6.2 + semver: 7.6.3 ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: typescript: 5.5.3 @@ -7442,7 +7468,7 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.6.2 + semver: 7.6.3 ts-api-utils: 1.0.3(typescript@5.5.3) optionalDependencies: typescript: 5.5.3 @@ -7457,7 +7483,22 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 - semver: 7.6.2 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.5.3) + optionalDependencies: + typescript: 5.5.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@7.16.1(typescript@5.5.3)': + dependencies: + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/visitor-keys': 7.16.1 + 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.3 ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: typescript: 5.5.3 @@ -7472,60 +7513,71 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 - semver: 7.6.2 + semver: 7.6.3 ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@5.62.0(eslint@9.6.0)(typescript@5.5.3)': + '@typescript-eslint/utils@5.62.0(eslint@9.7.0)(typescript@5.5.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.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.5.3) - eslint: 9.6.0 + eslint: 9.7.0 eslint-scope: 5.1.1 - semver: 7.6.2 + semver: 7.6.3 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@6.19.1(eslint@9.6.0)(typescript@5.5.3)': + '@typescript-eslint/utils@6.19.1(eslint@9.7.0)(typescript@5.5.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.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.5.3) - eslint: 9.6.0 - semver: 7.6.2 + eslint: 9.7.0 + semver: 7.6.3 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@7.14.1(eslint@9.6.0)(typescript@5.5.3)': + '@typescript-eslint/utils@7.14.1(eslint@9.7.0)(typescript@5.5.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) '@typescript-eslint/scope-manager': 7.14.1 '@typescript-eslint/types': 7.14.1 '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.3) - eslint: 9.6.0 + eslint: 9.7.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3)': + '@typescript-eslint/utils@7.16.1(eslint@9.7.0)(typescript@5.5.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) + '@typescript-eslint/scope-manager': 7.16.1 + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) + eslint: 9.7.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/utils@8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.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.5.3) - eslint: 9.6.0 + eslint: 9.7.0 transitivePeerDependencies: - supports-color - typescript @@ -7550,6 +7602,11 @@ snapshots: '@typescript-eslint/types': 7.14.1 eslint-visitor-keys: 3.4.3 + '@typescript-eslint/visitor-keys@7.16.1': + dependencies: + '@typescript-eslint/types': 7.16.1 + eslint-visitor-keys: 3.4.3 + '@typescript-eslint/visitor-keys@8.0.0-alpha.34': dependencies: '@typescript-eslint/types': 8.0.0-alpha.34 @@ -7808,33 +7865,33 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.7): + babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.9): dependencies: - '@babel/compat-data': 7.24.7 - '@babel/core': 7.24.7 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.7) + '@babel/compat-data': 7.24.9 + '@babel/core': 7.24.9 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.9) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.7): + babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.9): dependencies: - '@babel/core': 7.24.7 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.7) + '@babel/core': 7.24.9 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.9) core-js-compat: 3.37.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.7): + babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.9): dependencies: - '@babel/core': 7.24.7 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.7) + '@babel/core': 7.24.9 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.9) transitivePeerDependencies: - supports-color - babel-plugin-transform-import-meta@2.2.1(@babel/core@7.24.7): + babel-plugin-transform-import-meta@2.2.1(@babel/core@7.24.9): dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/template': 7.24.6 tslib: 2.6.2 @@ -7905,10 +7962,21 @@ snapshots: node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) + browserslist@4.23.2: + dependencies: + caniuse-lite: 1.0.30001642 + electron-to-chromium: 1.4.830 + node-releases: 2.0.14 + update-browserslist-db: 1.1.0(browserslist@4.23.2) + buffer-from@1.1.2: {} builtin-modules@3.3.0: {} + bundle-name@4.1.0: + dependencies: + run-applescript: 7.0.0 + busboy@1.6.0: dependencies: streamsearch: 1.1.0 @@ -7983,6 +8051,8 @@ snapshots: caniuse-lite@1.0.30001606: {} + caniuse-lite@1.0.30001642: {} + caseless@0.12.0: {} chai@5.1.1: @@ -8161,7 +8231,7 @@ snapshots: conventional-commits-filter: 5.0.0 handlebars: 4.7.8 meow: 13.2.0 - semver: 7.6.2 + semver: 7.6.3 conventional-commits-filter@5.0.0: {} @@ -8323,13 +8393,20 @@ snapshots: deep-is@0.1.4: {} + default-browser-id@5.0.0: {} + + default-browser@5.2.1: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 gopd: 1.0.1 - define-lazy-prop@2.0.0: {} + define-lazy-prop@3.0.0: {} define-properties@1.2.1: dependencies: @@ -8403,6 +8480,8 @@ snapshots: electron-to-chromium@1.4.729: {} + electron-to-chromium@1.4.830: {} + emoji-regex@10.3.0: {} emoji-regex@8.0.0: {} @@ -8424,11 +8503,6 @@ snapshots: dependencies: lodash: 4.17.21 - enhanced-resolve@5.15.0: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - enhanced-resolve@5.17.0: dependencies: graceful-fs: 4.2.11 @@ -8564,6 +8638,8 @@ snapshots: escalade@3.1.1: {} + escalade@3.1.2: {} + escape-string-regexp@1.0.5: {} escape-string-regexp@4.0.0: {} @@ -8584,58 +8660,58 @@ snapshots: lodash.get: 4.4.2 lodash.zip: 4.2.0 - eslint-compat-utils@0.1.2(eslint@9.6.0): - dependencies: - eslint: 9.6.0 - - eslint-compat-utils@0.5.0(eslint@9.6.0): - dependencies: - 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.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.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.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.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-compat-utils@0.1.2(eslint@9.7.0): + dependencies: + eslint: 9.7.0 + + eslint-compat-utils@0.5.0(eslint@9.7.0): + dependencies: + eslint: 9.7.0 + semver: 7.6.3 + + eslint-config-canonical@43.0.14(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.9))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.9))(@types/eslint@8.56.10)(@types/node@20.14.11)(encoding@0.1.13)(eslint@9.7.0)(typescript@5.5.3): + dependencies: + '@babel/core': 7.24.9 + '@babel/eslint-parser': 7.24.8(@babel/core@7.24.9)(eslint@9.7.0) + '@babel/eslint-plugin': 7.24.7(@babel/eslint-parser@7.24.8(@babel/core@7.24.9)(eslint@9.7.0))(eslint@9.7.0) + '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.9) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.24.9)(@types/node@20.14.11)(encoding@0.1.13)(graphql@16.9.0) + '@next/eslint-plugin-next': 14.2.5 + '@typescript-eslint/eslint-plugin': 7.16.1(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/parser': 7.16.1(eslint@9.7.0)(typescript@5.5.3) + eslint: 9.7.0 + eslint-config-prettier: 9.1.0(eslint@9.7.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0) + eslint-plugin-ava: 15.0.1(eslint@9.7.0) + eslint-plugin-canonical: 4.18.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) + eslint-plugin-cypress: 3.3.0(eslint@9.7.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@9.7.0) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.9))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.9))(eslint@9.7.0) + eslint-plugin-fp: 2.3.0(eslint@9.7.0) + eslint-plugin-import: eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3) + eslint-plugin-jest: 28.6.0(@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) + eslint-plugin-jsdoc: 48.7.0(eslint@9.7.0) + eslint-plugin-jsonc: 2.16.0(eslint@9.7.0) + eslint-plugin-jsx-a11y: 6.9.0(eslint@9.7.0) + eslint-plugin-lodash: 8.0.0(eslint@9.7.0) + eslint-plugin-mocha: 10.4.3(eslint@9.7.0) eslint-plugin-modules-newline: 0.0.6 - 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) + eslint-plugin-n: 17.9.0(eslint@9.7.0) + eslint-plugin-prettier: 5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.7.0))(eslint@9.7.0)(prettier@3.3.3) + eslint-plugin-promise: 6.4.0(eslint@9.7.0) + eslint-plugin-react: 7.34.4(eslint@9.7.0) + eslint-plugin-react-hooks: 4.6.2(eslint@9.7.0) + eslint-plugin-regexp: 2.6.0(eslint@9.7.0) + eslint-plugin-simple-import-sort: 12.1.1(eslint@9.7.0) + eslint-plugin-typescript-sort-keys: 3.2.0(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) + eslint-plugin-unicorn: 54.0.0(eslint@9.7.0) + eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) + eslint-plugin-yml: 1.14.0(eslint@9.7.0) + eslint-plugin-zod: 1.4.0(eslint@9.7.0) globals: 15.8.0 - graphql: 16.8.1 - prettier: 3.3.2 - ramda: 0.30.0 + graphql: 16.9.0 + prettier: 3.3.3 + ramda: 0.30.1 yaml-eslint-parser: 1.2.3 transitivePeerDependencies: - '@babel/plugin-syntax-flow' @@ -8653,9 +8729,9 @@ snapshots: - utf-8-validate - vitest - eslint-config-prettier@9.1.0(eslint@9.6.0): + eslint-config-prettier@9.1.0(eslint@9.7.0): dependencies: - eslint: 9.6.0 + eslint: 9.7.0 eslint-import-resolver-node@0.3.9: dependencies: @@ -8665,13 +8741,13 @@ snapshots: transitivePeerDependencies: - supports-color - 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-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0): dependencies: debug: 4.3.5(supports-color@8.1.1) - enhanced-resolve: 5.15.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) + enhanced-resolve: 5.17.0 + eslint: 9.7.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0))(eslint@9.7.0) + eslint-plugin-import: eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3) fast-glob: 3.3.2 get-tsconfig: 4.7.2 is-core-module: 2.13.1 @@ -8682,22 +8758,21 @@ snapshots: - eslint-import-resolver-webpack - supports-color - 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-module-utils@2.8.0(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0))(eslint@9.7.0): dependencies: debug: 3.2.7 optionalDependencies: - '@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.6.0)(typescript@5.5.3))(eslint-plugin-i@2.29.1)(eslint@9.6.0) + '@typescript-eslint/parser': 7.16.1(eslint@9.7.0)(typescript@5.5.3) + eslint: 9.7.0 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0) transitivePeerDependencies: - supports-color - eslint-plugin-ava@15.0.1(eslint@9.6.0): + eslint-plugin-ava@15.0.1(eslint@9.7.0): dependencies: enhance-visitors: 1.0.0 - eslint: 9.6.0 - eslint-utils: 3.0.0(eslint@9.6.0) + eslint: 9.7.0 + eslint-utils: 3.0.0(eslint@9.7.0) espree: 9.6.1 espurify: 2.1.1 import-modules: 2.1.0 @@ -8705,13 +8780,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.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-canonical@4.18.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3): dependencies: - '@typescript-eslint/utils': 6.19.1(eslint@9.6.0)(typescript@5.5.3) + '@typescript-eslint/utils': 6.19.1(eslint@9.7.0)(typescript@5.5.3) chance: 1.1.11 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) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0))(eslint@9.7.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -8731,95 +8806,96 @@ snapshots: - supports-color - typescript - eslint-plugin-cypress@3.3.0(eslint@9.6.0): + eslint-plugin-cypress@3.3.0(eslint@9.7.0): dependencies: - eslint: 9.6.0 + eslint: 9.7.0 globals: 13.24.0 - eslint-plugin-es-x@7.5.0(eslint@9.6.0): + eslint-plugin-es-x@7.5.0(eslint@9.7.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) '@eslint-community/regexpp': 4.10.0 - eslint: 9.6.0 - eslint-compat-utils: 0.1.2(eslint@9.6.0) + eslint: 9.7.0 + eslint-compat-utils: 0.1.2(eslint@9.7.0) - eslint-plugin-eslint-comments@3.2.0(eslint@9.6.0): + eslint-plugin-eslint-comments@3.2.0(eslint@9.7.0): dependencies: escape-string-regexp: 1.0.5 - eslint: 9.6.0 + eslint: 9.7.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.6.0): + eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.9))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.9))(eslint@9.7.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.6.0 + '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.9) + eslint: 9.7.0 lodash: 4.17.21 string-natural-compare: 3.0.1 - eslint-plugin-fp@2.3.0(eslint@9.6.0): + eslint-plugin-fp@2.3.0(eslint@9.7.0): dependencies: create-eslint-index: 1.0.0 - eslint: 9.6.0 + eslint: 9.7.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.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.6.0): + eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3): dependencies: + '@rtsao/scc': 1.1.0 + '@typescript-eslint/utils': 7.14.1(eslint@9.7.0)(typescript@5.5.3) debug: 4.3.5(supports-color@8.1.1) doctrine: 3.0.0 - eslint: 9.6.0 + eslint: 9.7.0 eslint-import-resolver-node: 0.3.9 - 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 + get-tsconfig: 4.7.6 is-glob: 4.0.3 - minimatch: 3.1.2 - semver: 7.6.2 + minimatch: 9.0.4 + semver: 7.6.3 + stable-hash: 0.0.4 + tslib: 2.6.2 transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - supports-color + - typescript - 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-jest@28.6.0(@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3): dependencies: - '@typescript-eslint/utils': 7.14.1(eslint@9.6.0)(typescript@5.5.3) - eslint: 9.6.0 + '@typescript-eslint/utils': 7.14.1(eslint@9.7.0)(typescript@5.5.3) + eslint: 9.7.0 optionalDependencies: - '@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/eslint-plugin': 7.16.1(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jsdoc@48.5.0(eslint@9.6.0): + eslint-plugin-jsdoc@48.7.0(eslint@9.7.0): dependencies: - '@es-joy/jsdoccomment': 0.43.1 + '@es-joy/jsdoccomment': 0.46.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 debug: 4.3.5(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 9.6.0 + eslint: 9.7.0 esquery: 1.6.0 parse-imports: 2.1.1 - semver: 7.6.2 + semver: 7.6.3 spdx-expression-parse: 4.0.0 - synckit: 0.9.0 + synckit: 0.9.1 transitivePeerDependencies: - supports-color - eslint-plugin-jsonc@2.16.0(eslint@9.6.0): + eslint-plugin-jsonc@2.16.0(eslint@9.7.0): dependencies: - '@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) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) + eslint: 9.7.0 + eslint-compat-utils: 0.5.0(eslint@9.7.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.6.0): + eslint-plugin-jsx-a11y@6.9.0(eslint@9.7.0): dependencies: aria-query: 5.1.3 array-includes: 3.1.8 @@ -8830,7 +8906,7 @@ snapshots: damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 es-iterator-helpers: 1.0.19 - eslint: 9.6.0 + eslint: 9.7.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -8839,15 +8915,15 @@ snapshots: safe-regex-test: 1.0.3 string.prototype.includes: 2.0.0 - eslint-plugin-lodash@8.0.0(eslint@9.6.0): + eslint-plugin-lodash@8.0.0(eslint@9.7.0): dependencies: - eslint: 9.6.0 + eslint: 9.7.0 lodash: 4.17.21 - eslint-plugin-mocha@10.4.3(eslint@9.6.0): + eslint-plugin-mocha@10.4.3(eslint@9.7.0): dependencies: - eslint: 9.6.0 - eslint-utils: 3.0.0(eslint@9.6.0) + eslint: 9.7.0 + eslint-utils: 3.0.0(eslint@9.7.0) globals: 13.24.0 rambda: 7.5.0 @@ -8855,37 +8931,37 @@ snapshots: dependencies: requireindex: 1.1.0 - eslint-plugin-n@17.9.0(eslint@9.6.0): + eslint-plugin-n@17.9.0(eslint@9.7.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) enhanced-resolve: 5.17.0 - eslint: 9.6.0 - eslint-plugin-es-x: 7.5.0(eslint@9.6.0) + eslint: 9.7.0 + eslint-plugin-es-x: 7.5.0(eslint@9.7.0) get-tsconfig: 4.7.2 globals: 15.8.0 ignore: 5.3.1 minimatch: 9.0.4 - semver: 7.6.2 + semver: 7.6.3 - 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-prettier@5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.7.0))(eslint@9.7.0)(prettier@3.3.3): dependencies: - eslint: 9.6.0 - prettier: 3.3.2 + eslint: 9.7.0 + prettier: 3.3.3 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 optionalDependencies: '@types/eslint': 8.56.10 - eslint-config-prettier: 9.1.0(eslint@9.6.0) + eslint-config-prettier: 9.1.0(eslint@9.7.0) - eslint-plugin-promise@6.2.0(eslint@9.6.0): + eslint-plugin-promise@6.4.0(eslint@9.7.0): dependencies: - eslint: 9.6.0 + eslint: 9.7.0 - eslint-plugin-react-hooks@4.6.2(eslint@9.6.0): + eslint-plugin-react-hooks@4.6.2(eslint@9.7.0): dependencies: - eslint: 9.6.0 + eslint: 9.7.0 - eslint-plugin-react@7.34.3(eslint@9.6.0): + eslint-plugin-react@7.34.4(eslint@9.7.0): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -8894,54 +8970,55 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.0.19 - eslint: 9.6.0 + eslint: 9.7.0 estraverse: 5.3.0 + hasown: 2.0.2 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 object.entries: 1.1.8 object.fromentries: 2.0.8 - object.hasown: 1.1.4 object.values: 1.2.0 prop-types: 15.8.1 resolve: 2.0.0-next.5 semver: 6.3.1 string.prototype.matchall: 4.0.11 + string.prototype.repeat: 1.0.0 - eslint-plugin-regexp@2.6.0(eslint@9.6.0): + eslint-plugin-regexp@2.6.0(eslint@9.7.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) '@eslint-community/regexpp': 4.10.0 comment-parser: 1.4.1 - eslint: 9.6.0 + eslint: 9.7.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.6.0): + eslint-plugin-simple-import-sort@12.1.1(eslint@9.7.0): dependencies: - eslint: 9.6.0 + eslint: 9.7.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-typescript-sort-keys@3.2.0(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3): dependencies: - '@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 + '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/parser': 7.16.1(eslint@9.7.0)(typescript@5.5.3) + eslint: 9.7.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 typescript: 5.5.3 transitivePeerDependencies: - supports-color - eslint-plugin-unicorn@54.0.0(eslint@9.6.0): + eslint-plugin-unicorn@54.0.0(eslint@9.7.0): dependencies: - '@babel/helper-validator-identifier': 7.24.6 - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@babel/helper-validator-identifier': 7.24.7 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) '@eslint/eslintrc': 3.1.0 ci-info: 4.0.0 clean-regexp: 1.0.0 core-js-compat: 3.37.1 - eslint: 9.6.0 + eslint: 9.7.0 esquery: 1.6.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -8950,35 +9027,35 @@ snapshots: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 regjsparser: 0.10.0 - semver: 7.6.2 + semver: 7.6.3 strip-indent: 3.0.0 transitivePeerDependencies: - supports-color - 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-vitest@0.5.4(@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3): dependencies: - '@typescript-eslint/utils': 7.14.1(eslint@9.6.0)(typescript@5.5.3) - eslint: 9.6.0 + '@typescript-eslint/utils': 7.14.1(eslint@9.7.0)(typescript@5.5.3) + eslint: 9.7.0 optionalDependencies: - '@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/eslint-plugin': 7.16.1(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-yml@1.14.0(eslint@9.6.0): + eslint-plugin-yml@1.14.0(eslint@9.7.0): dependencies: debug: 4.3.5(supports-color@8.1.1) - eslint: 9.6.0 - eslint-compat-utils: 0.5.0(eslint@9.6.0) + eslint: 9.7.0 + eslint-compat-utils: 0.5.0(eslint@9.7.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.6.0): + eslint-plugin-zod@1.4.0(eslint@9.7.0): dependencies: - eslint: 9.6.0 + eslint: 9.7.0 eslint-rule-composer@0.3.0: {} @@ -8992,14 +9069,14 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-scope@8.0.1: + eslint-scope@8.0.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-utils@3.0.0(eslint@9.6.0): + eslint-utils@3.0.0(eslint@9.7.0): dependencies: - eslint: 9.6.0 + eslint: 9.7.0 eslint-visitor-keys: 2.1.0 eslint-visitor-keys@2.1.0: {} @@ -9051,13 +9128,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@9.6.0: + eslint@9.7.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) + '@eslint-community/regexpp': 4.11.0 '@eslint/config-array': 0.17.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.6.0 + '@eslint/js': 9.7.0 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 @@ -9066,7 +9143,7 @@ snapshots: cross-spawn: 7.0.3 debug: 4.3.5(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint-scope: 8.0.1 + eslint-scope: 8.0.2 eslint-visitor-keys: 4.0.0 espree: 10.1.0 esquery: 1.6.0 @@ -9132,18 +9209,6 @@ snapshots: signal-exit: 3.0.7 strip-eof: 1.0.0 - execa@5.1.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - execa@8.0.1: dependencies: cross-spawn: 7.0.3 @@ -9171,6 +9236,21 @@ snapshots: strip-final-newline: 4.0.0 yoctocolors: 2.0.2 + execa@9.3.0: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + cross-spawn: 7.0.3 + figures: 6.1.0 + get-stream: 9.0.1 + human-signals: 7.0.0 + is-plain-obj: 4.1.0 + is-stream: 4.0.1 + npm-run-path: 5.2.0 + pretty-ms: 9.0.0 + signal-exit: 4.1.0 + strip-final-newline: 4.0.0 + yoctocolors: 2.0.2 + expand-brackets@2.1.4: dependencies: debug: 2.6.9 @@ -9434,6 +9514,10 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + get-tsconfig@4.7.6: + dependencies: + resolve-pkg-maps: 1.0.0 + get-urls@12.1.0(re2@1.20.9): dependencies: normalize-url: 8.0.0 @@ -9457,7 +9541,7 @@ snapshots: through2: 2.0.5 traverse: 0.6.8 - gitdown@4.1.0(re2@1.20.9): + gitdown@4.1.1(re2@1.20.9): dependencies: bluebird: 3.7.2 deadlink: 1.1.3 @@ -9573,16 +9657,16 @@ snapshots: graphemer@1.4.0: {} - graphql-config@4.5.0(@types/node@20.14.10)(encoding@0.1.13)(graphql@16.8.1): + graphql-config@4.5.0(@types/node@20.14.11)(encoding@0.1.13)(graphql@16.9.0): 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.10)(encoding@0.1.13)(graphql@16.8.1) - '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + '@graphql-tools/graphql-file-loader': 7.5.17(graphql@16.9.0) + '@graphql-tools/json-file-loader': 7.4.18(graphql@16.9.0) + '@graphql-tools/load': 7.8.14(graphql@16.9.0) + '@graphql-tools/merge': 8.4.2(graphql@16.9.0) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.14.11)(encoding@0.1.13)(graphql@16.9.0) + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) cosmiconfig: 8.0.0 - graphql: 16.8.1 + graphql: 16.9.0 jiti: 1.17.1 minimatch: 4.2.3 string-env-interpolation: 1.0.1 @@ -9593,16 +9677,16 @@ snapshots: - encoding - utf-8-validate - graphql-depth-limit@1.1.0(graphql@16.8.1): + graphql-depth-limit@1.1.0(graphql@16.9.0): dependencies: arrify: 1.0.1 - graphql: 16.8.1 + graphql: 16.9.0 - graphql-ws@5.12.1(graphql@16.8.1): + graphql-ws@5.12.1(graphql@16.9.0): dependencies: - graphql: 16.8.1 + graphql: 16.9.0 - graphql@16.8.1: {} + graphql@16.9.0: {} handlebars@4.7.8: dependencies: @@ -9715,13 +9799,11 @@ snapshots: transitivePeerDependencies: - supports-color - human-signals@2.1.0: {} - human-signals@5.0.0: {} human-signals@7.0.0: {} - husky@9.0.11: {} + husky@9.1.1: {} iconv-lite@0.6.3: dependencies: @@ -9830,7 +9912,7 @@ snapshots: is-core-module@2.13.1: dependencies: - hasown: 2.0.0 + hasown: 2.0.2 is-data-descriptor@1.0.1: dependencies: @@ -9856,7 +9938,7 @@ snapshots: is-directory@0.3.1: {} - is-docker@2.2.1: {} + is-docker@3.0.0: {} is-extendable@0.1.1: {} @@ -9891,6 +9973,10 @@ snapshots: dependencies: is-extglob: 2.1.1 + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + is-js-type@2.0.0: dependencies: js-types: 1.0.0 @@ -9954,8 +10040,6 @@ snapshots: is-stream@1.1.0: {} - is-stream@2.0.1: {} - is-stream@3.0.0: {} is-stream@4.0.1: {} @@ -9991,9 +10075,9 @@ snapshots: is-windows@1.0.2: {} - is-wsl@2.2.0: + is-wsl@3.1.0: dependencies: - is-docker: 2.2.1 + is-inside-container: 1.0.0 isarray@1.0.0: {} @@ -10032,11 +10116,11 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/parser': 7.24.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 7.6.2 + semver: 7.6.3 transitivePeerDependencies: - supports-color @@ -10139,10 +10223,10 @@ snapshots: jsonc-eslint-parser@2.4.0: dependencies: - acorn: 8.11.3 + acorn: 8.12.0 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - semver: 7.6.2 + semver: 7.6.3 jsonfile@6.1.0: dependencies: @@ -10313,7 +10397,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.6.2 + semver: 7.6.3 make-fetch-happen@13.0.0: dependencies: @@ -10363,9 +10447,9 @@ snapshots: merge2@1.4.1: {} - meros@1.3.0(@types/node@20.14.10): + meros@1.3.0(@types/node@20.14.11): optionalDependencies: - '@types/node': 20.14.10 + '@types/node': 20.14.11 micro-spelling-correcter@1.1.1: {} @@ -10581,7 +10665,7 @@ snapshots: make-fetch-happen: 13.0.0 nopt: 7.2.0 proc-log: 3.0.0 - semver: 7.6.2 + semver: 7.6.3 tar: 6.2.0 which: 4.0.0 transitivePeerDependencies: @@ -10606,7 +10690,7 @@ snapshots: dependencies: hosted-git-info: 7.0.1 is-core-module: 2.13.1 - semver: 7.6.2 + semver: 7.6.3 validate-npm-package-license: 3.0.4 normalize-path@2.1.1: @@ -10625,10 +10709,6 @@ snapshots: dependencies: path-key: 2.0.1 - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - npm-run-path@5.2.0: dependencies: path-key: 4.0.0 @@ -10698,12 +10778,6 @@ snapshots: gopd: 1.0.1 safe-array-concat: 1.1.2 - object.hasown@1.1.4: - dependencies: - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - object.pick@1.3.0: dependencies: isobject: 3.0.1 @@ -10726,18 +10800,19 @@ snapshots: dependencies: mimic-fn: 4.0.0 - open-editor@4.1.1: + open-editor@5.0.0: dependencies: env-editor: 1.1.0 - execa: 5.1.1 + execa: 9.3.0 line-column-path: 3.0.0 - open: 8.4.2 + open: 10.1.0 - open@8.4.2: + open@10.1.0: dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 optionator@0.8.3: dependencies: @@ -10826,14 +10901,14 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.24.6 + '@babel/code-frame': 7.24.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 parse-json@8.1.0: dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 index-to-position: 0.1.2 type-fest: 4.9.0 @@ -10882,6 +10957,8 @@ snapshots: picocolors@1.0.0: {} + picocolors@1.0.1: {} + picomatch@2.3.1: {} pidtree@0.6.0: {} @@ -10919,7 +10996,7 @@ snapshots: dependencies: fast-diff: 1.3.0 - prettier@3.3.2: {} + prettier@3.3.3: {} pretty-ms@9.0.0: dependencies: @@ -10971,7 +11048,7 @@ snapshots: ramda@0.26.1: {} - ramda@0.30.0: {} + ramda@0.30.1: {} randombytes@2.1.0: dependencies: @@ -11208,6 +11285,8 @@ snapshots: safe-stable-stringify: 2.4.3 semver-compare: 1.0.0 + run-applescript@7.0.0: {} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -11270,7 +11349,7 @@ snapshots: p-reduce: 3.0.0 read-package-up: 11.0.0 resolve-from: 5.0.0 - semver: 7.6.2 + semver: 7.6.3 semver-diff: 4.0.0 signale: 1.4.0 yargs: 17.7.2 @@ -11282,7 +11361,7 @@ snapshots: semver-diff@4.0.0: dependencies: - semver: 7.6.2 + semver: 7.6.3 semver-regex@4.0.5: {} @@ -11290,7 +11369,7 @@ snapshots: semver@6.3.1: {} - semver@7.6.2: {} + semver@7.6.3: {} serialize-javascript@6.0.2: dependencies: @@ -11489,6 +11568,8 @@ snapshots: minipass: 7.1.2 optional: true + stable-hash@0.0.4: {} + stack-trace@0.0.10: {} static-extend@0.1.2: @@ -11553,6 +11634,11 @@ snapshots: set-function-name: 2.0.2 side-channel: 1.0.6 + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.3 + string.prototype.trim@1.2.9: dependencies: call-bind: 1.0.7 @@ -11592,8 +11678,6 @@ snapshots: strip-eof@1.0.0: {} - strip-final-newline@2.0.0: {} - strip-final-newline@3.0.0: {} strip-final-newline@4.0.0: {} @@ -11647,7 +11731,7 @@ snapshots: '@pkgr/core': 0.1.0 tslib: 2.6.2 - synckit@0.9.0: + synckit@0.9.1: dependencies: '@pkgr/core': 0.1.0 tslib: 2.6.2 @@ -11827,11 +11911,11 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - typescript-eslint@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3): + typescript-eslint@8.0.0-alpha.34(eslint@9.7.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.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) + '@typescript-eslint/eslint-plugin': 8.0.0-alpha.34(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/utils': 8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3) optionalDependencies: typescript: 5.5.3 transitivePeerDependencies: @@ -11907,6 +11991,12 @@ snapshots: escalade: 3.1.1 picocolors: 1.0.0 + update-browserslist-db@1.1.0(browserslist@4.23.2): + dependencies: + browserslist: 4.23.2 + escalade: 3.1.2 + picocolors: 1.0.1 + uri-js@4.4.1: dependencies: punycode: 2.3.1 From 5f4f223e0988e41b3c83c409c8efd1bf860a3d97 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 20 Jul 2024 01:36:27 +0800 Subject: [PATCH 210/273] docs: add `check-template-names` to README; fixes #1263 --- .README/README.md | 1 + README.md | 1 + 2 files changed, 2 insertions(+) diff --git a/.README/README.md b/.README/README.md index b555190bc..ca5192bb7 100644 --- a/.README/README.md +++ b/.README/README.md @@ -234,6 +234,7 @@ non-default-recommended fixer). |:heavy_check_mark:|:wrench:|[check-property-names](./docs/rules/check-property-names.md#readme)|Checks for dupe `@property` names, that nested property names have roots| |||[check-syntax](./docs/rules/check-syntax.md#readme)|Reports use against current mode (currently only prohibits Closure-specific syntax)| |:heavy_check_mark:|:wrench:|[check-tag-names](./docs/rules/check-tag-names.md#readme)|Reports invalid jsdoc (block) tag names| +| || [check-template-names](./docs/rules/check-template-names.md#readme)|Checks that any `@template` names are actually used in the connected `@typedef` or type alias. |:heavy_check_mark:|:wrench:|[check-types](./docs/rules/check-types.md#readme)|Reports types deemed invalid (customizable and with defaults, for preventing and/or recommending replacements)| |:heavy_check_mark:||[check-values](./docs/rules/check-values.md#readme)|Checks for expected content within some miscellaneous tags (`@version`, `@since`, `@license`, `@author`)| | || [convert-to-jsdoc-comments](./docs/rules/convert-to-jsdoc-comments.md#readme) | Converts line and block comments preceding or following specified nodes into JSDoc comments| diff --git a/README.md b/README.md index 600e3625d..57da0531a 100644 --- a/README.md +++ b/README.md @@ -261,6 +261,7 @@ non-default-recommended fixer). |:heavy_check_mark:|:wrench:|[check-property-names](./docs/rules/check-property-names.md#readme)|Checks for dupe `@property` names, that nested property names have roots| |||[check-syntax](./docs/rules/check-syntax.md#readme)|Reports use against current mode (currently only prohibits Closure-specific syntax)| |:heavy_check_mark:|:wrench:|[check-tag-names](./docs/rules/check-tag-names.md#readme)|Reports invalid jsdoc (block) tag names| +| || [check-template-names](./docs/rules/check-template-names.md#readme)|Checks that any `@template` names are actually used in the connected `@typedef` or type alias. |:heavy_check_mark:|:wrench:|[check-types](./docs/rules/check-types.md#readme)|Reports types deemed invalid (customizable and with defaults, for preventing and/or recommending replacements)| |:heavy_check_mark:||[check-values](./docs/rules/check-values.md#readme)|Checks for expected content within some miscellaneous tags (`@version`, `@since`, `@license`, `@author`)| | || [convert-to-jsdoc-comments](./docs/rules/convert-to-jsdoc-comments.md#readme) | Converts line and block comments preceding or following specified nodes into JSDoc comments| From afbb51ac5fd065e32f6891ffe3922ddb1c53b925 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 20 Jul 2024 01:39:57 +0800 Subject: [PATCH 211/273] docs: add new rules to listing --- .README/README.md | 2 ++ README.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.README/README.md b/.README/README.md index ca5192bb7..e2201974e 100644 --- a/.README/README.md +++ b/.README/README.md @@ -74,6 +74,7 @@ Finally, enable all of the rules that you would like to use. "jsdoc/check-indentation": 1, "jsdoc/check-line-alignment": 1, "jsdoc/check-param-names": 1, // Recommended + "jsdoc/check-template-names": 1, "jsdoc/check-property-names": 1, // Recommended "jsdoc/check-syntax": 1, "jsdoc/check-tag-names": 1, // Recommended @@ -111,6 +112,7 @@ Finally, enable all of the rules that you would like to use. "jsdoc/require-returns-check": 1, // Recommended "jsdoc/require-returns-description": 1, // Recommended "jsdoc/require-returns-type": 1, // Recommended + "jsdoc/require-template": 1, "jsdoc/require-throws": 1, "jsdoc/require-yields": 1, // Recommended "jsdoc/require-yields-check": 1, // Recommended diff --git a/README.md b/README.md index 57da0531a..713ff4bde 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,7 @@ Finally, enable all of the rules that you would like to use. "jsdoc/check-indentation": 1, "jsdoc/check-line-alignment": 1, "jsdoc/check-param-names": 1, // Recommended + "jsdoc/check-template-names": 1, "jsdoc/check-property-names": 1, // Recommended "jsdoc/check-syntax": 1, "jsdoc/check-tag-names": 1, // Recommended @@ -130,6 +131,7 @@ Finally, enable all of the rules that you would like to use. "jsdoc/require-returns-check": 1, // Recommended "jsdoc/require-returns-description": 1, // Recommended "jsdoc/require-returns-type": 1, // Recommended + "jsdoc/require-template": 1, "jsdoc/require-throws": 1, "jsdoc/require-yields": 1, // Recommended "jsdoc/require-yields-check": 1, // Recommended From 6fb0b3eb074b7403d47c83db5fc804efccd5b051 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= Date: Fri, 19 Jul 2024 19:57:34 +0200 Subject: [PATCH 212/273] fix(sort-tags): @template must be before @typedef --- docs/rules/sort-tags.md | 25 ++++++++++++++++--------- src/defaultTagOrder.js | 2 +- test/rules/assertions/sortTags.js | 22 ++++++++++++++++++++++ 3 files changed, 39 insertions(+), 10 deletions(-) diff --git a/docs/rules/sort-tags.md b/docs/rules/sort-tags.md index 95212e0c7..d3df1deb3 100644 --- a/docs/rules/sort-tags.md +++ b/docs/rules/sort-tags.md @@ -288,7 +288,7 @@ The following patterns are considered problems: * @param a */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, template, typedef, interface, record, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * Some description @@ -297,7 +297,7 @@ function quux () {} * @param a */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, template, typedef, interface, record, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @returns {string} @@ -306,7 +306,7 @@ function quux () {} * @param a */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, template, typedef, interface, record, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * Some description @@ -316,7 +316,7 @@ function quux () {} * @param a */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, template, typedef, interface, record, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @param b A long @@ -325,7 +325,14 @@ function quux () {} * @param a */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, template, typedef, interface, record, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo + +/** + * @typedef Foo + * @template {Object} T + * @prop {T} bar + */ +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, template, typedef, interface, record, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @def @@ -334,7 +341,7 @@ function quux () {} */ function quux () {} // "jsdoc/sort-tags": ["error"|"warn", {"alphabetizeExtras":true}] -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, template, typedef, interface, record, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @xyz @@ -363,7 +370,7 @@ function quux () {} * @module */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, template, typedef, interface, record, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @xyz @@ -374,7 +381,7 @@ function quux () {} */ function quux () {} // "jsdoc/sort-tags": ["error"|"warn", {"alphabetizeExtras":true}] -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, template, typedef, interface, record, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @param b A long @@ -382,7 +389,7 @@ function quux () {} * @module */ function quux () {} -// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo +// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, import, template, typedef, interface, record, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, overload, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, satisfies, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo /** * @def diff --git a/src/defaultTagOrder.js b/src/defaultTagOrder.js index 6bcf0e8eb..326bdb7da 100644 --- a/src/defaultTagOrder.js +++ b/src/defaultTagOrder.js @@ -14,10 +14,10 @@ const defaultTagOrder = [ 'import', // Identifying (name, type) + 'template', 'typedef', 'interface', 'record', - 'template', 'name', 'kind', 'type', diff --git a/test/rules/assertions/sortTags.js b/test/rules/assertions/sortTags.js index 634ac1c46..bb0333b2c 100644 --- a/test/rules/assertions/sortTags.js +++ b/test/rules/assertions/sortTags.js @@ -226,6 +226,28 @@ export default { function quux () {} `, }, + { + code: ` + /** + * @typedef Foo + * @template {Object} T + * @prop {T} bar + */ + `, + errors: [ + { + line: 3, + message: 'Tags are not in the prescribed order: ' + tagList.join(', '), + }, + ], + output: ` + /** + * @template {Object} T + * @typedef Foo + * @prop {T} bar + */ + `, + }, { code: ` /** From 736a23be9fa8816bf4e712d58cbd4fc5a5fd738c Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 20 Jul 2024 21:15:43 +0800 Subject: [PATCH 213/273] fix(`require-template`, `check-template-names`): avoid erring out with missing or bad typedef type; partial fix for #1269 --- docs/rules/check-template-names.md | 5 +++++ docs/rules/require-template.md | 5 +++++ src/rules/checkTemplateNames.js | 13 ++++++++++--- src/rules/requireTemplate.js | 13 ++++++++++--- test/rules/assertions/checkTemplateNames.js | 8 ++++++++ test/rules/assertions/requireTemplate.js | 8 ++++++++ 6 files changed, 46 insertions(+), 6 deletions(-) diff --git a/docs/rules/check-template-names.md b/docs/rules/check-template-names.md index 7626ad575..8007ca1d7 100644 --- a/docs/rules/check-template-names.md +++ b/docs/rules/check-template-names.md @@ -125,5 +125,10 @@ export type Extras = [D, U, V | undefined]; * @typedef {[D, U, V | undefined]} Extras * @typedef {[D, U, V | undefined]} Extras */ + +/** + * @typedef Foo + * @prop {string} bar + */ ```` diff --git a/docs/rules/require-template.md b/docs/rules/require-template.md index 8bef1adfb..186c9f7aa 100644 --- a/docs/rules/require-template.md +++ b/docs/rules/require-template.md @@ -143,5 +143,10 @@ export type Extras = [D, U, V | undefined]; * @typedef {[D, U, V | undefined]} Extras * @typedef {[D, U, V | undefined]} Extras */ + +/** + * @typedef Foo + * @prop {string} bar + */ ```` diff --git a/src/rules/checkTemplateNames.js b/src/rules/checkTemplateNames.js index 439597c63..c84516f90 100644 --- a/src/rules/checkTemplateNames.js +++ b/src/rules/checkTemplateNames.js @@ -65,9 +65,16 @@ export default iterateJsdoc(({ } const potentialType = typedefTags[0].type; - const parsedType = mode === 'permissive' ? - tryParseType(/** @type {string} */ (potentialType)) : - parseType(/** @type {string} */ (potentialType), mode) + + let parsedType; + try { + parsedType = mode === 'permissive' ? + tryParseType(/** @type {string} */ (potentialType)) : + parseType(/** @type {string} */ (potentialType), mode) + } catch { + // Todo: Should handle types in @prop/erty + return; + } traverse(parsedType, (nde) => { const { diff --git a/src/rules/requireTemplate.js b/src/rules/requireTemplate.js index 015902eb0..0f0730d16 100644 --- a/src/rules/requireTemplate.js +++ b/src/rules/requireTemplate.js @@ -76,9 +76,16 @@ export default iterateJsdoc(({ } const potentialType = typedefTags[0].type; - const parsedType = mode === 'permissive' ? - tryParseType(/** @type {string} */ (potentialType)) : - parseType(/** @type {string} */ (potentialType), mode) + + let parsedType; + try { + parsedType = mode === 'permissive' ? + tryParseType(/** @type {string} */ (potentialType)) : + parseType(/** @type {string} */ (potentialType), mode) + } catch { + // Todo: Should handle types in @prop/erty + return; + } traverse(parsedType, (nde) => { const { diff --git a/test/rules/assertions/checkTemplateNames.js b/test/rules/assertions/checkTemplateNames.js index afe55f67c..a9bdb794a 100644 --- a/test/rules/assertions/checkTemplateNames.js +++ b/test/rules/assertions/checkTemplateNames.js @@ -193,5 +193,13 @@ export default { */ `, }, + { + code: ` + /** + * @typedef Foo + * @prop {string} bar + */ + `, + }, ], }; diff --git a/test/rules/assertions/requireTemplate.js b/test/rules/assertions/requireTemplate.js index 6bb092b45..b3ef8c4be 100644 --- a/test/rules/assertions/requireTemplate.js +++ b/test/rules/assertions/requireTemplate.js @@ -205,5 +205,13 @@ export default { */ `, }, + { + code: ` + /** + * @typedef Foo + * @prop {string} bar + */ + `, + }, ], }; From 22e32743cba9e379245ef179bfff7c45613c4115 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 20 Jul 2024 22:00:26 +0800 Subject: [PATCH 214/273] fix(`require-template`, `check-template-names`): check @property tags; fixes #1269 --- docs/rules/check-template-names.md | 16 ++++++ docs/rules/require-template.md | 16 ++++++ src/rules/checkTemplateNames.js | 51 +++++++++++------- src/rules/requireTemplate.js | 58 ++++++++++++++------- test/rules/assertions/checkTemplateNames.js | 27 ++++++++++ test/rules/assertions/requireTemplate.js | 27 ++++++++++ 6 files changed, 156 insertions(+), 39 deletions(-) diff --git a/docs/rules/check-template-names.md b/docs/rules/check-template-names.md index 8007ca1d7..eecdc360c 100644 --- a/docs/rules/check-template-names.md +++ b/docs/rules/check-template-names.md @@ -87,6 +87,14 @@ export type Extras = [D, U | undefined]; * @typedef {[D, U | undefined]} Extras */ // Message: @template V not in use + +/** + * @template D + * @template V + * @typedef Pairs + * @property {V} foo + */ +// Message: @template D not in use ```` @@ -130,5 +138,13 @@ export type Extras = [D, U, V | undefined]; * @typedef Foo * @prop {string} bar */ + +/** + * @template D + * @template V + * @typedef Pairs + * @property {D} foo + * @property {V} bar + */ ```` diff --git a/docs/rules/require-template.md b/docs/rules/require-template.md index 186c9f7aa..a701606ee 100644 --- a/docs/rules/require-template.md +++ b/docs/rules/require-template.md @@ -106,6 +106,14 @@ export type Pairs = [D, V | undefined]; */ // "jsdoc/require-template": ["error"|"warn", {"requireSeparateTemplates":true}] // Message: Missing separate @template for V + +/** + * @template X + * @typedef {object} Pairs + * @property {D} foo + * @property {X} bar + */ +// Message: Missing @template D ```` @@ -148,5 +156,13 @@ export type Extras = [D, U, V | undefined]; * @typedef Foo * @prop {string} bar */ + +/** + * @template D + * @template V + * @typedef {object} Pairs + * @property {D} foo + * @property {V} bar + */ ```` diff --git a/src/rules/checkTemplateNames.js b/src/rules/checkTemplateNames.js index c84516f90..a7480d0aa 100644 --- a/src/rules/checkTemplateNames.js +++ b/src/rules/checkTemplateNames.js @@ -64,27 +64,40 @@ export default iterateJsdoc(({ return; } - const potentialType = typedefTags[0].type; + /** + * @param {string} potentialType + */ + const checkForUsedTypes = (potentialType) => { + let parsedType; + try { + parsedType = mode === 'permissive' ? + tryParseType(/** @type {string} */ (potentialType)) : + parseType(/** @type {string} */ (potentialType), mode); + } catch { + return; + } - let parsedType; - try { - parsedType = mode === 'permissive' ? - tryParseType(/** @type {string} */ (potentialType)) : - parseType(/** @type {string} */ (potentialType), mode) - } catch { - // Todo: Should handle types in @prop/erty - return; - } + traverse(parsedType, (nde) => { + const { + type, + value, + } = /** @type {import('jsdoc-type-pratt-parser').NameResult} */ (nde); + if (type === 'JsdocTypeName' && (/^[A-Z]$/).test(value)) { + usedNames.add(value); + } + }); + }; - traverse(parsedType, (nde) => { - const { - type, - value, - } = /** @type {import('jsdoc-type-pratt-parser').NameResult} */ (nde); - if (type === 'JsdocTypeName' && (/^[A-Z]$/).test(value)) { - usedNames.add(value); - } - }); + const potentialTypedefType = typedefTags[0].type; + checkForUsedTypes(potentialTypedefType); + + const tagName = /** @type {string} */ (utils.getPreferredTagName({ + tagName: 'property', + })); + const propertyTags = utils.getTags(tagName); + for (const propertyTag of propertyTags) { + checkForUsedTypes(propertyTag.type); + } for (const tag of templateTags) { const {name} = tag; diff --git a/src/rules/requireTemplate.js b/src/rules/requireTemplate.js index 0f0730d16..6d4bf3e8f 100644 --- a/src/rules/requireTemplate.js +++ b/src/rules/requireTemplate.js @@ -75,32 +75,50 @@ export default iterateJsdoc(({ return; } - const potentialType = typedefTags[0].type; + const usedNameToTag = new Map(); - let parsedType; - try { - parsedType = mode === 'permissive' ? - tryParseType(/** @type {string} */ (potentialType)) : - parseType(/** @type {string} */ (potentialType), mode) - } catch { - // Todo: Should handle types in @prop/erty - return; - } - - traverse(parsedType, (nde) => { - const { - type, - value, - } = /** @type {import('jsdoc-type-pratt-parser').NameResult} */ (nde); - if (type === 'JsdocTypeName' && (/^[A-Z]$/).test(value)) { - usedNames.add(value); + /** + * @param {import('comment-parser').Spec} potentialTag + */ + const checkForUsedTypes = (potentialTag) => { + let parsedType; + try { + parsedType = mode === 'permissive' ? + tryParseType(/** @type {string} */ (potentialTag.type)) : + parseType(/** @type {string} */ (potentialTag.type), mode) + } catch { + return; } - }); + + traverse(parsedType, (nde) => { + const { + type, + value, + } = /** @type {import('jsdoc-type-pratt-parser').NameResult} */ (nde); + if (type === 'JsdocTypeName' && (/^[A-Z]$/).test(value)) { + usedNames.add(value); + if (!usedNameToTag.has(value)) { + usedNameToTag.set(value, potentialTag); + } + } + }); + }; + + const potentialTypedef = typedefTags[0]; + checkForUsedTypes(potentialTypedef); + + const tagName = /** @type {string} */ (utils.getPreferredTagName({ + tagName: 'property', + })); + const propertyTags = utils.getTags(tagName); + for (const propertyTag of propertyTags) { + checkForUsedTypes(propertyTag); + } // Could check against whitelist/blacklist for (const usedName of usedNames) { if (!templateNames.includes(usedName)) { - report(`Missing @template ${usedName}`, null, typedefTags[0]); + report(`Missing @template ${usedName}`, null, usedNameToTag.get(usedName)); } } }, { diff --git a/test/rules/assertions/checkTemplateNames.js b/test/rules/assertions/checkTemplateNames.js index a9bdb794a..4d8167a68 100644 --- a/test/rules/assertions/checkTemplateNames.js +++ b/test/rules/assertions/checkTemplateNames.js @@ -142,6 +142,22 @@ export default { }, ], }, + { + code: ` + /** + * @template D + * @template V + * @typedef Pairs + * @property {V} foo + */ + `, + errors: [ + { + line: 3, + message: '@template D not in use', + }, + ], + }, ], valid: [ { @@ -201,5 +217,16 @@ export default { */ `, }, + { + code: ` + /** + * @template D + * @template V + * @typedef Pairs + * @property {D} foo + * @property {V} bar + */ + `, + }, ], }; diff --git a/test/rules/assertions/requireTemplate.js b/test/rules/assertions/requireTemplate.js index b3ef8c4be..c4cc57c9d 100644 --- a/test/rules/assertions/requireTemplate.js +++ b/test/rules/assertions/requireTemplate.js @@ -155,6 +155,22 @@ export default { } ], }, + { + code: ` + /** + * @template X + * @typedef {object} Pairs + * @property {D} foo + * @property {X} bar + */ + `, + errors: [ + { + line: 5, + message: 'Missing @template D', + }, + ], + }, ], valid: [ { @@ -213,5 +229,16 @@ export default { */ `, }, + { + code: ` + /** + * @template D + * @template V + * @typedef {object} Pairs + * @property {D} foo + * @property {V} bar + */ + `, + }, ], }; From 270fbdcb2410c5c59bd83f0c07d87e751dd0f181 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 25 Jul 2024 23:02:17 +0800 Subject: [PATCH 215/273] refactor: make exports named and move utils to own file for reuse --- src/iterateJsdoc.js | 114 +++---------------- src/jsdocUtils.js | 166 +++++++++++++++++++++++++++- src/rules/convertToJsdocComments.js | 16 ++- src/rules/requireJsdoc.js | 24 ++-- test/jsdocUtils.js | 14 +-- 5 files changed, 214 insertions(+), 120 deletions(-) diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index 9eeddf9b0..75df9b270 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -1,4 +1,4 @@ -import jsdocUtils from './jsdocUtils.js'; +import * as jsdocUtils from './jsdocUtils.js'; import { commentHandler, getJSDocComment, @@ -628,7 +628,7 @@ const getBasicUtils = (context, { utils.getPreferredTagNameObject = ({ tagName, }) => { - const ret = jsdocUtils.getPreferredTagName( + const ret = jsdocUtils.getPreferredTagNameSimple( context, /** @type {import('./jsdocUtils.js').ParserMode} */ (mode), tagName, @@ -783,44 +783,7 @@ const getUtils = ( /** @type {GetTagDescription} */ utils.getTagDescription = (tg, returnArray) => { - /** - * @type {string[]} - */ - const descriptions = []; - tg.source.some(({ - tokens: { - end, - lineEnd, - postDelimiter, - tag, - postTag, - name, - type, - description, - }, - }) => { - const desc = ( - tag && postTag || - !tag && !name && !type && postDelimiter || '' - - // Remove space - ).slice(1) + - (description || '') + (lineEnd || ''); - - if (end) { - if (desc) { - descriptions.push(desc); - } - - return true; - } - - descriptions.push(desc); - - return false; - }); - - return returnArray ? descriptions : descriptions.join('\n'); + return jsdocUtils.getTagDescription(tg, returnArray); }; /** @type {SetTagDescription} */ @@ -1375,29 +1338,11 @@ const getUtils = ( }; /** @type {GetPreferredTagName} */ - utils.getPreferredTagName = ({ - tagName, - skipReportingBlockedTag = false, - allowObjectReturn = false, - defaultMessage = `Unexpected tag \`@${tagName}\``, - }) => { - const ret = jsdocUtils.getPreferredTagName(context, mode, tagName, tagNamePreference); - const isObject = ret && typeof ret === 'object'; - if (utils.hasTag(tagName) && (ret === false || isObject && !ret.replacement)) { - if (skipReportingBlockedTag) { - return { - blocked: true, - tagName, - }; - } - - const message = isObject && ret.message || defaultMessage; - report(message, null, utils.getTags(tagName)[0]); - - return false; - } - - return isObject && !allowObjectReturn ? ret.replacement : ret; + utils.getPreferredTagName = (args) => { + return jsdocUtils.getPreferredTagName( + context, mode, report, tagNamePreference, + jsdoc, args + ); }; /** @type {IsValidTag} */ @@ -1619,21 +1564,19 @@ const getUtils = ( /** @type {GetTags} */ utils.getTags = (tagName) => { - return utils.filterTags((item) => { - return item.tag === tagName; - }); + return jsdocUtils.getTags(jsdoc, tagName); }; /** @type {GetPresentTags} */ utils.getPresentTags = (tagList) => { - return utils.filterTags((tag) => { + return jsdocUtils.filterTags(jsdoc, (tag) => { return tagList.includes(tag.tag); }); }; /** @type {FilterTags} */ utils.filterTags = (filter) => { - return jsdoc.tags.filter((tag) => { + return jsdocUtils.filterTags(jsdoc, (tag) => { return filter(tag); }); }; @@ -1699,34 +1642,11 @@ const getUtils = ( }; /** @type {ForEachPreferredTag} */ - utils.forEachPreferredTag = (tagName, arrayHandler, skipReportingBlockedTag = false) => { - const targetTagName = /** @type {string|false} */ ( - utils.getPreferredTagName({ - skipReportingBlockedTag, - tagName, - }) + utils.forEachPreferredTag = (tagName, arrayHandler, skipReportingBlockedTag) => { + return jsdocUtils.forEachPreferredTag( + context, mode, report, tagNamePreference, + jsdoc, tagName, arrayHandler, skipReportingBlockedTag ); - if (!targetTagName || - skipReportingBlockedTag && targetTagName && typeof targetTagName === 'object' - ) { - return; - } - - const matchingJsdocTags = jsdoc.tags.filter(({ - tag, - }) => { - return tag === targetTagName; - }); - - for (const matchingJsdocTag of matchingJsdocTags) { - arrayHandler( - /** - * @type {import('@es-joy/jsdoccomment').JsdocTagWithInline} - */ ( - matchingJsdocTag - ), targetTagName, - ); - } }; /** @type {FindContext} */ @@ -2030,8 +1950,8 @@ const iterate = ( !ruleConfig.checkPrivate && settings.ignorePrivate && ( utils.hasTag('private') || - jsdoc.tags - .filter(({ + jsdocUtils + .filterTags(jsdoc, ({ tag, }) => { return tag === 'access'; diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index 96ef6ac92..59ebe6a9e 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -555,6 +555,52 @@ const getTagNamesForMode = (mode, context) => { } }; +/** + * @param {import('comment-parser').Spec} tg + * @param {boolean} [returnArray] + * @returns {string[]|string} + */ +const getTagDescription = (tg, returnArray) => { + /** + * @type {string[]} + */ + const descriptions = []; + tg.source.some(({ + tokens: { + end, + lineEnd, + postDelimiter, + tag, + postTag, + name, + type, + description, + }, + }) => { + const desc = ( + tag && postTag || + !tag && !name && !type && postDelimiter || '' + + // Remove space + ).slice(1) + + (description || '') + (lineEnd || ''); + + if (end) { + if (desc) { + descriptions.push(desc); + } + + return true; + } + + descriptions.push(desc); + + return false; + }); + + return returnArray ? descriptions : descriptions.join('\n'); +}; + /** * @param {import('eslint').Rule.RuleContext} context * @param {ParserMode|undefined} mode @@ -565,7 +611,7 @@ const getTagNamesForMode = (mode, context) => { * replacement?: string|undefined; * }} */ -const getPreferredTagName = ( +const getPreferredTagNameSimple = ( context, mode, name, @@ -649,6 +695,117 @@ const hasTag = (jsdoc, targetTagName) => { }); }; +/** + * @param {import('./iterateJsdoc.js').JsdocBlockWithInline} jsdoc + * @param {(tag: import('@es-joy/jsdoccomment').JsdocTagWithInline) => boolean} filter + * @returns {import('@es-joy/jsdoccomment').JsdocTagWithInline[]} + */ +const filterTags = (jsdoc, filter) => { + return jsdoc.tags.filter((tag) => { + return filter(tag); + }); +}; + +/** + * @param {import('./iterateJsdoc.js').JsdocBlockWithInline} jsdoc + * @param {string} tagName + * @returns {import('comment-parser').Spec[]} + */ +const getTags = (jsdoc, tagName) => { + return filterTags(jsdoc, (item) => { + return item.tag === tagName; + }); +}; + +/** + * @param {import('eslint').Rule.RuleContext} context + * @param {ParserMode} mode + * @param {import('./iterateJsdoc.js').Report} report + * @param {TagNamePreference} tagNamePreference + * @param {import('./iterateJsdoc.js').JsdocBlockWithInline} jsdoc + * @param {{ + * tagName: string, + * skipReportingBlockedTag?: boolean, + * allowObjectReturn?: boolean, + * defaultMessage?: string + * }} cfg + * @returns {string|undefined|false|{ + * message: string; + * replacement?: string|undefined; + * }|{ + * blocked: true, + * tagName: string + * }} + */ +const getPreferredTagName = (context, mode, report, tagNamePreference, jsdoc, { + tagName, + skipReportingBlockedTag = false, + allowObjectReturn = false, + defaultMessage = `Unexpected tag \`@${tagName}\``, +}) => { + const ret = getPreferredTagNameSimple(context, mode, tagName, tagNamePreference); + const isObject = ret && typeof ret === 'object'; + if (hasTag(jsdoc, tagName) && (ret === false || isObject && !ret.replacement)) { + if (skipReportingBlockedTag) { + return { + blocked: true, + tagName, + }; + } + + const message = isObject && ret.message || defaultMessage; + report(message, null, getTags(jsdoc, tagName)[0]); + + return false; + } + + return isObject && !allowObjectReturn ? ret.replacement : ret; +}; + +/** + * @param {import('eslint').Rule.RuleContext} context + * @param {ParserMode} mode + * @param {import('./iterateJsdoc.js').Report} report + * @param {TagNamePreference} tagNamePreference + * @param {import('./iterateJsdoc.js').JsdocBlockWithInline} jsdoc + * @param {string} tagName + * @param {( +* matchingJsdocTag: import('@es-joy/jsdoccomment').JsdocTagWithInline, +* targetTagName: string +* ) => void} arrayHandler +* @param {boolean} [skipReportingBlockedTag] +* @returns {void} +*/ +const forEachPreferredTag = (context, mode, report, tagNamePreference, jsdoc, tagName, arrayHandler, skipReportingBlockedTag = false) => { + const targetTagName = /** @type {string|false} */ ( + getPreferredTagName(context, mode, report, tagNamePreference, jsdoc, { + skipReportingBlockedTag, + tagName, + }) + ); + if (!targetTagName || + skipReportingBlockedTag && targetTagName && typeof targetTagName === 'object' + ) { + return; + } + + const matchingJsdocTags = jsdoc.tags.filter(({ + tag, + }) => { + return tag === targetTagName; + }); + + for (const matchingJsdocTag of matchingJsdocTags) { + arrayHandler( + /** + * @type {import('@es-joy/jsdoccomment').JsdocTagWithInline} + */ ( + matchingJsdocTag + ), targetTagName, + ); + } +}; + /** * Get all tags, inline tags and inline tags in tags * @param {import('./iterateJsdoc.js').JsdocBlockWithInline} jsdoc @@ -1652,19 +1809,24 @@ const getRegexFromString = (regexString, requiredFlags) => { return new RegExp(regex, flags); }; -export default { +export { comparePaths, dropPathSegmentQuotes, enforcedContexts, exemptSpeciaMethods, + filterTags, flattenRoots, + forEachPreferredTag, getAllTags, getContextObject, getFunctionParameterNames, getIndent, getJsdocTagsDeep, getPreferredTagName, + getPreferredTagNameSimple, getRegexFromString, + getTagDescription, + getTags, getTagsByType, getTagStructureForMode, hasATag, diff --git a/src/rules/convertToJsdocComments.js b/src/rules/convertToJsdocComments.js index 81f15b4da..30243daa4 100644 --- a/src/rules/convertToJsdocComments.js +++ b/src/rules/convertToJsdocComments.js @@ -2,7 +2,11 @@ import iterateJsdoc from '../iterateJsdoc.js'; import { getSettings, } from '../iterateJsdoc.js'; -import jsdocUtils from '../jsdocUtils.js'; +import { + getIndent, + getContextObject, + enforcedContexts, +} from '../jsdocUtils.js'; import { getNonJsdocComment, getDecorator, @@ -114,7 +118,7 @@ export default { ); } - const indent = jsdocUtils.getIndent({ + const indent = getIndent({ text: sourceCode.getText( /** @type {import('eslint').Rule.Node} */ (baseNode), /** @type {import('eslint').AST.SourceLocation} */ @@ -255,17 +259,17 @@ export default { // Todo: add contexts to check after (and handle if want both before and after) return { - ...jsdocUtils.getContextObject( - jsdocUtils.enforcedContexts(context, true, settings), + ...getContextObject( + enforcedContexts(context, true, settings), checkNonJsdoc, ), - ...jsdocUtils.getContextObject( + ...getContextObject( contextsAfter, (_info, _handler, node) => { checkNonJsdocAfter(node, contextsAfter); }, ), - ...jsdocUtils.getContextObject( + ...getContextObject( contextsBeforeAndAfter, (_info, _handler, node) => { checkNonJsdoc({}, null, node); diff --git a/src/rules/requireJsdoc.js b/src/rules/requireJsdoc.js index 521f191a0..a6630e7a0 100644 --- a/src/rules/requireJsdoc.js +++ b/src/rules/requireJsdoc.js @@ -2,7 +2,15 @@ import exportParser from '../exportParser.js'; import { getSettings, } from '../iterateJsdoc.js'; -import jsdocUtils from '../jsdocUtils.js'; +import { + exemptSpeciaMethods, + isConstructor, + getFunctionParameterNames, + hasReturnValue, + getIndent, + getContextObject, + enforcedContexts, +} from '../jsdocUtils.js'; import { getDecorator, getJSDocComment, @@ -381,7 +389,7 @@ export default { // For those who have options configured against ANY constructors (or // setters or getters) being reported - if (jsdocUtils.exemptSpeciaMethods( + if (exemptSpeciaMethods( { description: '', inlineTags: [], @@ -405,10 +413,10 @@ export default { // Avoid reporting param-less, return-less constructor methods (when // `exemptEmptyConstructors` option is set) - exemptEmptyConstructors && jsdocUtils.isConstructor(node) + exemptEmptyConstructors && isConstructor(node) ) { - const functionParameterNames = jsdocUtils.getFunctionParameterNames(node); - if (!functionParameterNames.length && !jsdocUtils.hasReturnValue(node)) { + const functionParameterNames = getFunctionParameterNames(node); + if (!functionParameterNames.length && !hasReturnValue(node)) { return; } } @@ -427,7 +435,7 @@ export default { baseNode = decorator; } - const indent = jsdocUtils.getIndent({ + const indent = getIndent({ text: sourceCode.getText( /** @type {import('eslint').Rule.Node} */ (baseNode), /** @type {import('eslint').AST.SourceLocation} */ @@ -516,8 +524,8 @@ export default { }; return { - ...jsdocUtils.getContextObject( - jsdocUtils.enforcedContexts(context, [], settings), + ...getContextObject( + enforcedContexts(context, [], settings), checkJsDoc, ), ArrowFunctionExpression (node) { diff --git a/test/jsdocUtils.js b/test/jsdocUtils.js index 2de63cb14..9152ac9ec 100644 --- a/test/jsdocUtils.js +++ b/test/jsdocUtils.js @@ -1,4 +1,4 @@ -import jsdocUtils from '../src/jsdocUtils.js'; +import * as jsdocUtils from '../src/jsdocUtils.js'; import { expect, } from 'chai'; @@ -8,26 +8,26 @@ import { */ describe('jsdocUtils', () => { - describe('getPreferredTagName()', () => { + describe('getPreferredTagNameSimple()', () => { context('no preferences', () => { context('alias name', () => { it('returns the primary tag name', () => { - expect(jsdocUtils.getPreferredTagName(/** @type {BadArgument} */ ({}), 'jsdoc', 'return')).to.equal('returns'); + expect(jsdocUtils.getPreferredTagNameSimple(/** @type {BadArgument} */ ({}), 'jsdoc', 'return')).to.equal('returns'); }); it('works with the constructor tag', () => { - expect(jsdocUtils.getPreferredTagName(/** @type {BadArgument} */ ({}), 'jsdoc', 'constructor')).to.equal('class'); + expect(jsdocUtils.getPreferredTagNameSimple(/** @type {BadArgument} */ ({}), 'jsdoc', 'constructor')).to.equal('class'); }); }); it('works with tags that clash with prototype properties', () => { - expect(jsdocUtils.getPreferredTagName(/** @type {BadArgument} */ ({}), 'jsdoc', 'toString')).to.equal('toString'); + expect(jsdocUtils.getPreferredTagNameSimple(/** @type {BadArgument} */ ({}), 'jsdoc', 'toString')).to.equal('toString'); }); it('returns the primary tag name', () => { - expect(jsdocUtils.getPreferredTagName(/** @type {BadArgument} */ ({}), 'jsdoc', 'returns')).to.equal('returns'); + expect(jsdocUtils.getPreferredTagNameSimple(/** @type {BadArgument} */ ({}), 'jsdoc', 'returns')).to.equal('returns'); }); }); context('with preferences', () => { it('returns the preferred tag name', () => { - expect(jsdocUtils.getPreferredTagName(/** @type {BadArgument} */ ({}), 'jsdoc', 'return', /** @type {BadArgument} */ ({ + expect(jsdocUtils.getPreferredTagNameSimple(/** @type {BadArgument} */ ({}), 'jsdoc', 'return', /** @type {BadArgument} */ ({ returns: 'return', }))).to.equal('return'); }); From 1482f8983329249dce87d060508110e9dfb55ef8 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 26 Jul 2024 05:31:25 +0800 Subject: [PATCH 216/273] refactor: easier APIs --- src/WarnSettings.js | 4 +-- src/iterateJsdoc.js | 16 +++++++---- src/jsdocUtils.js | 68 +++++++++++++++++++++++++++++---------------- test/jsdocUtils.js | 20 +++++++++---- 4 files changed, 70 insertions(+), 38 deletions(-) diff --git a/src/WarnSettings.js b/src/WarnSettings.js index aee7c92bf..376189111 100644 --- a/src/WarnSettings.js +++ b/src/WarnSettings.js @@ -5,7 +5,7 @@ const WarnSettings = function () { return { /** * Warn only once for each context and setting - * @param {import('eslint').Rule.RuleContext} context + * @param {{}} context * @param {string} setting * @returns {boolean} */ @@ -16,7 +16,7 @@ const WarnSettings = function () { }, /** - * @param {import('eslint').Rule.RuleContext} context + * @param {{}} context * @param {string} setting * @returns {void} */ diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index 75df9b270..b5f93a3cf 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -629,10 +629,10 @@ const getBasicUtils = (context, { tagName, }) => { const ret = jsdocUtils.getPreferredTagNameSimple( - context, - /** @type {import('./jsdocUtils.js').ParserMode} */ (mode), tagName, + /** @type {import('./jsdocUtils.js').ParserMode} */ (mode), tagNamePreference, + context, ); const isObject = ret && typeof ret === 'object'; if (ret === false || (isObject && !ret.replacement)) { @@ -1340,8 +1340,10 @@ const getUtils = ( /** @type {GetPreferredTagName} */ utils.getPreferredTagName = (args) => { return jsdocUtils.getPreferredTagName( - context, mode, report, tagNamePreference, - jsdoc, args + jsdoc, { + ...args, + context, mode, report, tagNamePreference, + } ); }; @@ -1644,8 +1646,10 @@ const getUtils = ( /** @type {ForEachPreferredTag} */ utils.forEachPreferredTag = (tagName, arrayHandler, skipReportingBlockedTag) => { return jsdocUtils.forEachPreferredTag( - context, mode, report, tagNamePreference, - jsdoc, tagName, arrayHandler, skipReportingBlockedTag + jsdoc, tagName, arrayHandler, { + skipReportingBlockedTag, + context, mode, report, tagNamePreference + } ); }; diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index 59ebe6a9e..2afcfc4c9 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -521,7 +521,7 @@ const modeWarnSettings = WarnSettings(); /** * @param {ParserMode|undefined} mode - * @param {import('eslint').Rule.RuleContext} context + * @param {Reporter} context * @returns {import('./tagNames.js').AliasedTags} */ const getTagNamesForMode = (mode, context) => { @@ -602,20 +602,30 @@ const getTagDescription = (tg, returnArray) => { }; /** - * @param {import('eslint').Rule.RuleContext} context - * @param {ParserMode|undefined} mode + * @typedef {{ + * report: (descriptor: import('eslint').Rule.ReportDescriptor) => void + * }} Reporter + */ + +/** * @param {string} name + * @param {ParserMode|undefined} mode * @param {TagNamePreference} tagPreference + * @param {Reporter} context * @returns {string|false|{ * message: string; * replacement?: string|undefined; * }} */ const getPreferredTagNameSimple = ( - context, - mode, name, + mode, tagPreference = {}, + context = { + report () { + // No-op + } + }, ) => { const prefValues = Object.values(tagPreference); if (prefValues.includes(name) || prefValues.some((prefVal) => { @@ -718,16 +728,16 @@ const getTags = (jsdoc, tagName) => { }; /** - * @param {import('eslint').Rule.RuleContext} context - * @param {ParserMode} mode - * @param {import('./iterateJsdoc.js').Report} report - * @param {TagNamePreference} tagNamePreference * @param {import('./iterateJsdoc.js').JsdocBlockWithInline} jsdoc * @param {{ * tagName: string, + * context: import('eslint').Rule.RuleContext, + * mode: ParserMode, + * report: import('./iterateJsdoc.js').Report + * tagNamePreference: TagNamePreference * skipReportingBlockedTag?: boolean, * allowObjectReturn?: boolean, - * defaultMessage?: string + * defaultMessage?: string, * }} cfg * @returns {string|undefined|false|{ * message: string; @@ -737,13 +747,14 @@ const getTags = (jsdoc, tagName) => { * tagName: string * }} */ -const getPreferredTagName = (context, mode, report, tagNamePreference, jsdoc, { +const getPreferredTagName = (jsdoc, { tagName, + context, mode, report, tagNamePreference, skipReportingBlockedTag = false, allowObjectReturn = false, defaultMessage = `Unexpected tag \`@${tagName}\``, }) => { - const ret = getPreferredTagNameSimple(context, mode, tagName, tagNamePreference); + const ret = getPreferredTagNameSimple(tagName, mode, tagNamePreference, context); const isObject = ret && typeof ret === 'object'; if (hasTag(jsdoc, tagName) && (ret === false || isObject && !ret.replacement)) { if (skipReportingBlockedTag) { @@ -763,24 +774,33 @@ const getPreferredTagName = (context, mode, report, tagNamePreference, jsdoc, { }; /** - * @param {import('eslint').Rule.RuleContext} context - * @param {ParserMode} mode - * @param {import('./iterateJsdoc.js').Report} report - * @param {TagNamePreference} tagNamePreference * @param {import('./iterateJsdoc.js').JsdocBlockWithInline} jsdoc * @param {string} tagName * @param {( -* matchingJsdocTag: import('@es-joy/jsdoccomment').JsdocTagWithInline, -* targetTagName: string -* ) => void} arrayHandler -* @param {boolean} [skipReportingBlockedTag] -* @returns {void} -*/ -const forEachPreferredTag = (context, mode, report, tagNamePreference, jsdoc, tagName, arrayHandler, skipReportingBlockedTag = false) => { + * matchingJsdocTag: import('@es-joy/jsdoccomment').JsdocTagWithInline, + * targetTagName: string + * ) => void} arrayHandler + * @param {object} cfg + * @param {import('eslint').Rule.RuleContext} cfg.context + * @param {ParserMode} cfg.mode + * @param {import('./iterateJsdoc.js').Report} cfg.report + * @param {TagNamePreference} cfg.tagNamePreference + * @param {boolean} [cfg.skipReportingBlockedTag] + * @returns {void} + */ +const forEachPreferredTag = ( + jsdoc, tagName, arrayHandler, + { + context, mode, report, + tagNamePreference, + skipReportingBlockedTag = false, + } +) => { const targetTagName = /** @type {string|false} */ ( - getPreferredTagName(context, mode, report, tagNamePreference, jsdoc, { + getPreferredTagName(jsdoc, { skipReportingBlockedTag, tagName, + context, mode, report, tagNamePreference }) ); if (!targetTagName || diff --git a/test/jsdocUtils.js b/test/jsdocUtils.js index 9152ac9ec..b7bd33a2c 100644 --- a/test/jsdocUtils.js +++ b/test/jsdocUtils.js @@ -12,24 +12,32 @@ describe('jsdocUtils', () => { context('no preferences', () => { context('alias name', () => { it('returns the primary tag name', () => { - expect(jsdocUtils.getPreferredTagNameSimple(/** @type {BadArgument} */ ({}), 'jsdoc', 'return')).to.equal('returns'); + expect(jsdocUtils.getPreferredTagNameSimple( + 'return', 'jsdoc', + )).to.equal('returns'); }); it('works with the constructor tag', () => { - expect(jsdocUtils.getPreferredTagNameSimple(/** @type {BadArgument} */ ({}), 'jsdoc', 'constructor')).to.equal('class'); + expect(jsdocUtils.getPreferredTagNameSimple('constructor', 'jsdoc')).to.equal('class'); }); }); it('works with tags that clash with prototype properties', () => { - expect(jsdocUtils.getPreferredTagNameSimple(/** @type {BadArgument} */ ({}), 'jsdoc', 'toString')).to.equal('toString'); + expect(jsdocUtils.getPreferredTagNameSimple('toString', 'jsdoc')).to.equal('toString'); }); it('returns the primary tag name', () => { - expect(jsdocUtils.getPreferredTagNameSimple(/** @type {BadArgument} */ ({}), 'jsdoc', 'returns')).to.equal('returns'); + expect(jsdocUtils.getPreferredTagNameSimple('returns', 'jsdoc')).to.equal('returns'); }); }); context('with preferences', () => { it('returns the preferred tag name', () => { - expect(jsdocUtils.getPreferredTagNameSimple(/** @type {BadArgument} */ ({}), 'jsdoc', 'return', /** @type {BadArgument} */ ({ + expect(jsdocUtils.getPreferredTagNameSimple('return', 'jsdoc', { returns: 'return', - }))).to.equal('return'); + })).to.equal('return'); + }); + }); + + context('with context', () => { + it('returns the preferred tag name', () => { + expect(jsdocUtils.getPreferredTagNameSimple('returns', /** @type {BadArgument} */ ('badArg'))).to.equal('returns'); }); }); }); From 6248d59a38fb9ea75aa42a61543c8195cbe9a9de Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 25 Jul 2024 20:47:40 +0800 Subject: [PATCH 217/273] feat: add `check-examples` replacement processor; fixes #928 --- .README/README.md | 4 + .README/processors.md | 143 ++++++ .README/rules/check-examples.md | 4 +- README.md | 7 + docs/processors.md | 173 ++++++++ docs/rules/check-examples.md | 4 +- eslint.config.js | 5 +- package.json | 1 + pnpm-lock.yaml | 19 +- src/bin/generateDocs.js | 1 + src/getJsdocProcessorPlugin.js | 602 ++++++++++++++++++++++++++ src/index.js | 108 +++++ src/jsdocUtils.js | 22 +- test/getJsdocProcessPlugin.js | 741 ++++++++++++++++++++++++++++++++ test/jsdocUtils.js | 17 + 15 files changed, 1831 insertions(+), 20 deletions(-) create mode 100644 .README/processors.md create mode 100644 docs/processors.md create mode 100644 src/getJsdocProcessorPlugin.js create mode 100644 test/getJsdocProcessPlugin.js diff --git a/.README/README.md b/.README/README.md index e2201974e..31487f622 100644 --- a/.README/README.md +++ b/.README/README.md @@ -216,6 +216,10 @@ See [Settings](./docs/settings.md#readme). See [Advanced](./docs/advanced.md#readme). +## Processors + +See our `@example` and other item [processors](./docs/processors.md#readme). + ## Rules Problems reported by rules which have a wrench :wrench: below can be fixed automatically by running ESLint on the command line with `--fix` option. diff --git a/.README/processors.md b/.README/processors.md new file mode 100644 index 000000000..ab0b03ab1 --- /dev/null +++ b/.README/processors.md @@ -0,0 +1,143 @@ +## Processors + +Normally JavaScript content inside JSDoc tags is not discoverable by ESLint. +`eslint-plugin-jsdoc` offers a processor which allows ESLint to parse `@example` +and other tag text for JavaScript so that it can be linted. + +The approach below works in ESLint 9. For ESLint 7, please see our [`check-examples`](./rules/check-examples.md#readme) rule. + +The approach requires that we first indicate the JavaScript files that will be checked for `@example` tags. + +```js +export default [ + { + files: ['**/*.js'], + plugins: { + examples: getJsdocProcessorPlugin({ + // Enable these options if you want the `someDefault` inside of the + // following to be checked in addition to `@example`: + // 1. `@default someDefault` + // 2. `@param [val=someDefault]`, + // 3. `@property [val=someDefault]` + // checkDefaults: true, + // checkParams: true, + // checkProperties: true + }) + }, + processor: 'examples/examples' + }, +], +``` + +Now you can target the JavaScript inside these `@example` or default blocks +by the following: + +```js + // Since `@example` JavaScript often follows the same rules as JavaScript in + // Markdown, we use the `.md` extension as the parent by default: + { + files: ['**/*.md/*.js'], + rules: { + // Enable or disable rules for `@example` JavaScript here + } + }, + { + files: ['**/*.jsdoc-defaults', '**/*.jsdoc-params', '**/*.jsdoc-properties'], + rules: { + // Enable or disable rules for `@default`, `@param`, or `@property` + // JavaScript here + } + } +``` + +Alternatively you can just use our built-in configs which do the above for you: + +```js +import jsdoc from 'eslint-plugin-jsdoc'; + +export default [ + ...index.configs.examples + + // Or for @default, @param and @property default expression processing + // ...index.configs['default-expressions'] + + // Or for both, use: + // ...jsdoc.configs['examples-and-default-expressions'], +]; +``` + +These configs also disable certain rules which are rarely useful in an +`@example` or default context. For example both kinds disable the rule +`no-unused-vars` since it is common for short demos to show how to declare +a variable, but not how to use it. + +Default expressions are usually even more strict as they are typically not +going to form a whole statement, but just an expression. With the following: + +```js +/** + * @param [abc=someDefault] + */ +function quux (abc) {} +``` + +...`someDefault` can be checked as JavaScript, but we don't want rules like +`no-unused-expressions` firing, since we're not going to use the expression +here. + +For defaults, a couple rules are enabled which are usually useful: + +- `quotes` - Set to `double`. It is more common within this + context for double quotes to be used. +- `semi` - Set to 'never' since a semi-colon is not desirable in this context. + +### Options + +#### `checkDefaults` + +Whether to check `@default` tags. Defaults to `false`. + +#### `checkExamples` + +Whether to check `@example` tags. Defaults to `true`. + +#### `checkParams` + +Whether to check `@param [name=someDefaultValue]` content. Defaults to `false`. + +#### `checkProperties` + +Whether to check `@property [name=someDefaultValue]` content. Defaults to `false`. + +#### `captionRequired` + +Whether to require the JSDoc `` content inside the `@example` +tag. Defaults to `false`. + +#### `paddedIndent` + +The number of spaces to assume at the beginning of each line. Defaults to 0. Should +only have an effect on whitespace-based rules. + +#### `matchingFileName` +#### `matchingFileNameDefaults` +#### `matchingFileNameParams` +#### `matchingFileNameProperties` + +See the [`check-examples`](./rules/check-examples.md#readme) option of the +same name. + +#### `exampleCodeRegex` and `rejectExampleCodeRegex` + +See the [`check-examples`](./rules/check-examples.md#readme) option of the +same name. + +#### `sourceType` + +Whether to use "script" or "module" with the parser. Defaults to `"module"`. + +#### `parser` + +An alternative parser which has a `parseForESLint` method and returns the AST +on the `ast` property (like `typescript-eslint`). Defaults to using ESLint's +Espree parser. diff --git a/.README/rules/check-examples.md b/.README/rules/check-examples.md index f2883a060..dc8b4d5bc 100644 --- a/.README/rules/check-examples.md +++ b/.README/rules/check-examples.md @@ -2,8 +2,8 @@ {"gitdown": "contents", "rootId": "check-examples"} -> **NOTE**: This rule currently does not work in ESLint 8 (we are waiting for -> [issue 14745](https://github.com/eslint/eslint/issues/14745)). +> **NOTE**: This rule only works in ESLint 7. For ESLint 9, please see our +> [processors](../processors.md) section. Ensures that (JavaScript) examples within JSDoc adhere to ESLint rules. Also has options to lint the default values of optional `@param`/`@arg`/`@argument` diff --git a/README.md b/README.md index 713ff4bde..a9dae4cb7 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ JSDoc linting rules for ESLint. * [Options](#user-content-eslint-plugin-jsdoc-options) * [Settings](#user-content-eslint-plugin-jsdoc-settings) * [Advanced](#user-content-eslint-plugin-jsdoc-advanced) + * [Processors](#user-content-eslint-plugin-jsdoc-processors) * [Rules](#user-content-eslint-plugin-jsdoc-rules) @@ -241,6 +242,12 @@ See [Settings](./docs/settings.md#readme). See [Advanced](./docs/advanced.md#readme). + + +## Processors + +See our `@example` and other item [processors](./docs/processors.md#readme). + ## Rules diff --git a/docs/processors.md b/docs/processors.md new file mode 100644 index 000000000..3d1492d02 --- /dev/null +++ b/docs/processors.md @@ -0,0 +1,173 @@ + + +## Processors + +Normally JavaScript content inside JSDoc tags is not discoverable by ESLint. +`eslint-plugin-jsdoc` offers a processor which allows ESLint to parse `@example` +and other tag text for JavaScript so that it can be linted. + +The approach below works in ESLint 9. For ESLint 7, please see our [`check-examples`](./rules/check-examples.md#readme) rule. + +The approach requires that we first indicate the JavaScript files that will be checked for `@example` tags. + +```js +export default [ + { + files: ['**/*.js'], + plugins: { + examples: getJsdocProcessorPlugin({ + // Enable these options if you want the `someDefault` inside of the + // following to be checked in addition to `@example`: + // 1. `@default someDefault` + // 2. `@param [val=someDefault]`, + // 3. `@property [val=someDefault]` + // checkDefaults: true, + // checkParams: true, + // checkProperties: true + }) + }, + processor: 'examples/examples' + }, +], +``` + +Now you can target the JavaScript inside these `@example` or default blocks +by the following: + +```js + // Since `@example` JavaScript often follows the same rules as JavaScript in + // Markdown, we use the `.md` extension as the parent by default: + { + files: ['**/*.md/*.js'], + rules: { + // Enable or disable rules for `@example` JavaScript here + } + }, + { + files: ['**/*.jsdoc-defaults', '**/*.jsdoc-params', '**/*.jsdoc-properties'], + rules: { + // Enable or disable rules for `@default`, `@param`, or `@property` + // JavaScript here + } + } +``` + +Alternatively you can just use our built-in configs which do the above for you: + +```js +import jsdoc from 'eslint-plugin-jsdoc'; + +export default [ + ...index.configs.examples + + // Or for @default, @param and @property default expression processing + // ...index.configs['default-expressions'] + + // Or for both, use: + // ...jsdoc.configs['examples-and-default-expressions'], +]; +``` + +These configs also disable certain rules which are rarely useful in an +`@example` or default context. For example both kinds disable the rule +`no-unused-vars` since it is common for short demos to show how to declare +a variable, but not how to use it. + +Default expressions are usually even more strict as they are typically not +going to form a whole statement, but just an expression. With the following: + +```js +/** + * @param [abc=someDefault] + */ +function quux (abc) {} +``` + +...`someDefault` can be checked as JavaScript, but we don't want rules like +`no-unused-expressions` firing, since we're not going to use the expression +here. + +For defaults, a couple rules are enabled which are usually useful: + +- `quotes` - Set to `double`. It is more common within this + context for double quotes to be used. +- `semi` - Set to 'never' since a semi-colon is not desirable in this context. + + + +### Options + + + +#### checkDefaults + +Whether to check `@default` tags. Defaults to `false`. + + + +#### checkExamples + +Whether to check `@example` tags. Defaults to `true`. + + + +#### checkParams + +Whether to check `@param [name=someDefaultValue]` content. Defaults to `false`. + + + +#### checkProperties + +Whether to check `@property [name=someDefaultValue]` content. Defaults to `false`. + + + +#### captionRequired + +Whether to require the JSDoc `` content inside the `@example` +tag. Defaults to `false`. + + + +#### paddedIndent + +The number of spaces to assume at the beginning of each line. Defaults to 0. Should +only have an effect on whitespace-based rules. + + + +#### matchingFileName + + +#### matchingFileNameDefaults + + +#### matchingFileNameParams + + +#### matchingFileNameProperties + +See the [`check-examples`](./rules/check-examples.md#readme) option of the +same name. + + + +#### exampleCodeRegex and rejectExampleCodeRegex + +See the [`check-examples`](./rules/check-examples.md#readme) option of the +same name. + + + +#### sourceType + +Whether to use "script" or "module" with the parser. Defaults to `"module"`. + + + +#### parser + +An alternative parser which has a `parseForESLint` method and returns the AST +on the `ast` property (like `typescript-eslint`). Defaults to using ESLint's +Espree parser. diff --git a/docs/rules/check-examples.md b/docs/rules/check-examples.md index 5f57ad60b..ce76493b1 100644 --- a/docs/rules/check-examples.md +++ b/docs/rules/check-examples.md @@ -15,8 +15,8 @@ * [Passing examples](#user-content-check-examples-passing-examples) -> **NOTE**: This rule currently does not work in ESLint 8 (we are waiting for -> [issue 14745](https://github.com/eslint/eslint/issues/14745)). +> **NOTE**: This rule only works in ESLint 7. For ESLint 9, please see our +> [processors](../processors.md) section. Ensures that (JavaScript) examples within JSDoc adhere to ESLint rules. Also has options to lint the default values of optional `@param`/`@arg`/`@argument` diff --git a/eslint.config.js b/eslint.config.js index 0022392ea..6a49e6a7f 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -9,15 +9,16 @@ const common = { }, plugins: { jsdoc - } + }, }; export default [ // canonical, // canonicalJsdoc, + ...jsdoc.configs['examples-and-default-expressions'], { // Must be by itself - ignores: ['dist/**/*.js', '.ignore/**/*.js'], + ignores: ['dist/**', '.ignore/**/*.js'], }, { ...common, diff --git a/package.json b/package.json index 763b93855..3efe1de5d 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "@types/chai": "^4.3.16", "@types/debug": "^4.1.12", "@types/eslint": "^8.56.10", + "@types/espree": "^10.1.0", "@types/esquery": "^1.5.4", "@types/estree": "^1.0.5", "@types/json-schema": "^7.0.15", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 25ba9c7fd..fb62eb0cc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -87,6 +87,9 @@ importers: '@types/eslint': specifier: ^8.56.10 version: 8.56.10 + '@types/espree': + specifier: ^10.1.0 + version: 10.1.0 '@types/esquery': specifier: ^1.5.4 version: 1.5.4 @@ -1295,6 +1298,9 @@ packages: '@types/eslint@8.56.10': resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} + '@types/espree@10.1.0': + resolution: {integrity: sha512-uPQZdoUWWMuO6WS8/dwX1stZH/vOBa/wAniGnYEFI0IuU9RmLx6PLmo+VGfNOlbRc5I7hBsQc8H0zcdVI37kxg==} + '@types/esquery@1.5.4': resolution: {integrity: sha512-yYO4Q8H+KJHKW1rEeSzHxcZi90durqYgWVfnh5K6ZADVBjBv2e1NEveYX5yT2bffgN7RqzH3k9930m+i2yBoMA==} @@ -6091,7 +6097,7 @@ snapshots: '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.9)': dependencies: '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.9)': dependencies: @@ -6411,9 +6417,9 @@ snapshots: '@babel/core': 7.24.9 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.9) - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 transitivePeerDependencies: - supports-color @@ -7246,6 +7252,11 @@ snapshots: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 + '@types/espree@10.1.0': + dependencies: + acorn: 8.12.0 + eslint-visitor-keys: 4.0.0 + '@types/esquery@1.5.4': dependencies: '@types/estree': 1.0.5 @@ -8843,7 +8854,7 @@ snapshots: eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3): dependencies: '@rtsao/scc': 1.1.0 - '@typescript-eslint/utils': 7.14.1(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/utils': 7.16.1(eslint@9.7.0)(typescript@5.5.3) debug: 4.3.5(supports-color@8.1.1) doctrine: 3.0.0 eslint: 9.7.0 diff --git a/src/bin/generateDocs.js b/src/bin/generateDocs.js index a771b6139..e66ea5764 100644 --- a/src/bin/generateDocs.js +++ b/src/bin/generateDocs.js @@ -127,6 +127,7 @@ const getSomeBranch = () => { const extraFiles = [ 'settings.md', 'advanced.md', + 'processors.md', 'README.md', ]; diff --git a/src/getJsdocProcessorPlugin.js b/src/getJsdocProcessorPlugin.js new file mode 100644 index 000000000..34aee2dd2 --- /dev/null +++ b/src/getJsdocProcessorPlugin.js @@ -0,0 +1,602 @@ +// Todo: Support TS by fenced block type + +import {readFileSync} from 'fs'; +import * as espree from 'espree'; +import { + getRegexFromString, + forEachPreferredTag, + getTagDescription, + getPreferredTagName, + hasTag, +} from './jsdocUtils.js'; +import { + parseComment, +} from '@es-joy/jsdoccomment'; + +const {version} = JSON.parse( + // @ts-expect-error `Buffer` is ok for `JSON.parse` + readFileSync('./package.json') +); + +// const zeroBasedLineIndexAdjust = -1; +const likelyNestedJSDocIndentSpace = 1; +const preTagSpaceLength = 1; + +// If a space is present, we should ignore it +const firstLinePrefixLength = preTagSpaceLength; + +const hasCaptionRegex = /^\s*([\s\S]*?)<\/caption>/u; + +/** + * @param {string} str + * @returns {string} + */ +const escapeStringRegexp = (str) => { + return str.replaceAll(/[.*+?^${}()|[\]\\]/gu, '\\$&'); +}; + +/** + * @param {string} str + * @param {string} ch + * @returns {import('./iterateJsdoc.js').Integer} + */ +const countChars = (str, ch) => { + return (str.match(new RegExp(escapeStringRegexp(ch), 'gu')) || []).length; +}; + +/** + * @param {string} text + * @returns {[ +* import('./iterateJsdoc.js').Integer, +* import('./iterateJsdoc.js').Integer +* ]} +*/ +const getLinesCols = (text) => { + const matchLines = countChars(text, '\n'); + + const colDelta = matchLines ? + text.slice(text.lastIndexOf('\n') + 1).length : + text.length; + + return [ + matchLines, colDelta, + ]; +}; + +/** + * @typedef {number} Integer + */ + +/** + * @typedef {object} JsdocProcessorOptions + * @property {boolean} [captionRequired] + * @property {Integer} [paddedIndent] + * @property {boolean} [checkDefaults] + * @property {boolean} [checkParams] + * @property {boolean} [checkExamples] + * @property {boolean} [checkProperties] + * @property {string} [matchingFileName] + * @property {string} [matchingFileNameDefaults] + * @property {string} [matchingFileNameParams] + * @property {string} [matchingFileNameProperties] + * @property {string} [exampleCodeRegex] + * @property {string} [rejectExampleCodeRegex] + * @property {"script"|"module"} [sourceType] + * @property {import('eslint').Linter.FlatConfigParserModule} [parser] + */ + +/** + * We use a function for the ability of the user to pass in a config, but + * without requiring all users of the plugin to do so. + * @param {JsdocProcessorOptions} [options] + */ +export const getJsdocProcessorPlugin = (options = {}) => { + const { + exampleCodeRegex = null, + rejectExampleCodeRegex = null, + checkExamples = true, + checkDefaults = false, + checkParams = false, + checkProperties = false, + matchingFileName = null, + matchingFileNameDefaults = null, + matchingFileNameParams = null, + matchingFileNameProperties = null, + paddedIndent = 0, + captionRequired = false, + sourceType = 'module', + parser = undefined + } = options; + + /** @type {RegExp} */ + let exampleCodeRegExp; + /** @type {RegExp} */ + let rejectExampleCodeRegExp; + + if (exampleCodeRegex) { + exampleCodeRegExp = getRegexFromString(exampleCodeRegex); + } + + if (rejectExampleCodeRegex) { + rejectExampleCodeRegExp = getRegexFromString(rejectExampleCodeRegex); + } + + /** + * @type {{ + * targetTagName: string, + * ext: string, + * codeStartLine: number, + * codeStartCol: number, + * nonJSPrefacingCols: number, + * commentLineCols: [number, number] + * }[]} + */ + const otherInfo = []; + + /** @type {import('eslint').Linter.LintMessage[]} */ + let extraMessages = []; + + /** + * @param {import('./iterateJsdoc.js').JsdocBlockWithInline} jsdoc + * @param {string} jsFileName + * @param {[number, number]} commentLineCols + */ + const getTextsAndFileNames = (jsdoc, jsFileName, commentLineCols) => { + /** + * @type {{ + * text: string, + * filename: string|null|undefined + * }[]} + */ + const textsAndFileNames = []; + + /** + * @param {{ + * filename: string|null, + * defaultFileName: string|undefined, + * source: string, + * targetTagName: string, + * rules?: import('eslint').Linter.RulesRecord|undefined, + * lines?: import('./iterateJsdoc.js').Integer, + * cols?: import('./iterateJsdoc.js').Integer, + * skipInit?: boolean, + * ext: string, + * sources?: { + * nonJSPrefacingCols: import('./iterateJsdoc.js').Integer, + * nonJSPrefacingLines: import('./iterateJsdoc.js').Integer, + * string: string, + * }[], + * tag?: import('comment-parser').Spec & { + * line?: import('./iterateJsdoc.js').Integer, + * }|{ + * line: import('./iterateJsdoc.js').Integer, + * } + * }} cfg + */ + const checkSource = ({ + filename, + ext, + defaultFileName, + lines = 0, + cols = 0, + skipInit, + source, + targetTagName, + sources = [], + tag = { + line: 0, + }, + }) => { + if (!skipInit) { + sources.push({ + nonJSPrefacingCols: cols, + nonJSPrefacingLines: lines, + string: source, + }); + } + + /** + * @param {{ + * nonJSPrefacingCols: import('./iterateJsdoc.js').Integer, + * nonJSPrefacingLines: import('./iterateJsdoc.js').Integer, + * string: string + * }} cfg + */ + const addSourceInfo = function ({ + nonJSPrefacingCols, + nonJSPrefacingLines, + string, + }) { + const src = paddedIndent ? + string.replaceAll(new RegExp(`(^|\n) {${paddedIndent}}(?!$)`, 'gu'), '\n') : + string; + + // Programmatic ESLint API: https://eslint.org/docs/developer-guide/nodejs-api + const file = filename || defaultFileName; + + if (!('line' in tag)) { + tag.line = tag.source[0].number; + } + + // NOTE: `tag.line` can be 0 if of form `/** @tag ... */` + const codeStartLine = /** + * @type {import('comment-parser').Spec & { + * line: import('./iterateJsdoc.js').Integer, + * }} + */ (tag).line + nonJSPrefacingLines; + const codeStartCol = likelyNestedJSDocIndentSpace; + + textsAndFileNames.push({ + text: src, + filename: file, + }); + otherInfo.push({ + targetTagName, + ext, + codeStartLine, + codeStartCol, + nonJSPrefacingCols, + commentLineCols + }); + }; + + for (const targetSource of sources) { + addSourceInfo(targetSource); + } + }; + + /** + * + * @param {string|null} filename + * @param {string} [ext] Since `eslint-plugin-markdown` v2, and + * ESLint 7, this is the default which other JS-fenced rules will used. + * Formerly "md" was the default. + * @returns {{ + * defaultFileName: string|undefined, + * filename: string|null, + * ext: string + * }} + */ + const getFilenameInfo = (filename, ext = 'md/*.js') => { + let defaultFileName; + if (!filename) { + if (typeof jsFileName === 'string' && jsFileName.includes('.')) { + defaultFileName = jsFileName.replace(/\.[^.]*$/u, `.${ext}`); + } else { + defaultFileName = `dummy.${ext}`; + } + } + + return { + ext, + defaultFileName, + filename, + }; + }; + + if (checkDefaults) { + const filenameInfo = getFilenameInfo(matchingFileNameDefaults, 'jsdoc-defaults'); + forEachPreferredTag(jsdoc, 'default', (tag, targetTagName) => { + if (!tag.description.trim()) { + return; + } + + checkSource({ + source: `(${getTagDescription(tag)})`, + targetTagName, + ...filenameInfo, + }); + }); + } + + if (checkParams) { + const filenameInfo = getFilenameInfo(matchingFileNameParams, 'jsdoc-params'); + forEachPreferredTag(jsdoc, 'param', (tag, targetTagName) => { + if (!tag.default || !tag.default.trim()) { + return; + } + + checkSource({ + source: `(${tag.default})`, + targetTagName, + ...filenameInfo, + }); + }); + } + + if (checkProperties) { + const filenameInfo = getFilenameInfo(matchingFileNameProperties, 'jsdoc-properties'); + forEachPreferredTag(jsdoc, 'property', (tag, targetTagName) => { + if (!tag.default || !tag.default.trim()) { + return; + } + + checkSource({ + source: `(${tag.default})`, + targetTagName, + ...filenameInfo, + }); + }); + } + + if (!checkExamples) { + return textsAndFileNames; + } + + const tagName = /** @type {string} */ (getPreferredTagName(jsdoc, { + tagName: 'example', + })); + if (!hasTag(jsdoc, tagName)) { + return textsAndFileNames; + } + + const matchingFilenameInfo = getFilenameInfo(matchingFileName); + + forEachPreferredTag(jsdoc, 'example', (tag, targetTagName) => { + let source = /** @type {string} */ (getTagDescription(tag)); + const match = source.match(hasCaptionRegex); + + if (captionRequired && (!match || !match[1].trim())) { + extraMessages.push({ + line: 1 + commentLineCols[0] + (tag.line ?? tag.source[0].number), + column: commentLineCols[1] + 1, + severity: 2, + message: `@${targetTagName} error - Caption is expected for examples.`, + ruleId: 'jsdoc/example-missing-caption' + }); + return; + } + + source = source.replace(hasCaptionRegex, ''); + const [ + lines, + cols, + ] = match ? getLinesCols(match[0]) : [ + 0, 0, + ]; + + if (exampleCodeRegex && !exampleCodeRegExp.test(source) || + rejectExampleCodeRegex && rejectExampleCodeRegExp.test(source) + ) { + return; + } + + const sources = []; + let skipInit = false; + if (exampleCodeRegex) { + let nonJSPrefacingCols = 0; + let nonJSPrefacingLines = 0; + + let startingIndex = 0; + let lastStringCount = 0; + + let exampleCode; + exampleCodeRegExp.lastIndex = 0; + while ((exampleCode = exampleCodeRegExp.exec(source)) !== null) { + const { + index, + '0': n0, + '1': n1, + } = exampleCode; + + // Count anything preceding user regex match (can affect line numbering) + const preMatch = source.slice(startingIndex, index); + + const [ + preMatchLines, + colDelta, + ] = getLinesCols(preMatch); + + let nonJSPreface; + let nonJSPrefaceLineCount; + if (n1) { + const idx = n0.indexOf(n1); + nonJSPreface = n0.slice(0, idx); + nonJSPrefaceLineCount = countChars(nonJSPreface, '\n'); + } else { + nonJSPreface = ''; + nonJSPrefaceLineCount = 0; + } + + nonJSPrefacingLines += lastStringCount + preMatchLines + nonJSPrefaceLineCount; + + // Ignore `preMatch` delta if newlines here + if (nonJSPrefaceLineCount) { + const charsInLastLine = nonJSPreface.slice(nonJSPreface.lastIndexOf('\n') + 1).length; + + nonJSPrefacingCols += charsInLastLine; + } else { + nonJSPrefacingCols += colDelta + nonJSPreface.length; + } + + const string = n1 || n0; + sources.push({ + nonJSPrefacingCols, + nonJSPrefacingLines, + string, + }); + startingIndex = exampleCodeRegExp.lastIndex; + lastStringCount = countChars(string, '\n'); + if (!exampleCodeRegExp.global) { + break; + } + } + + skipInit = true; + } + + checkSource({ + cols, + lines, + skipInit, + source, + sources, + tag, + targetTagName, + ...matchingFilenameInfo, + }); + }); + + return textsAndFileNames; + }; + + // See https://eslint.org/docs/latest/extend/plugins#processors-in-plugins + // See https://eslint.org/docs/latest/extend/custom-processors + // From https://github.com/eslint/eslint/issues/14745#issuecomment-869457265 + /* + { + "files": ["*.js", "*.ts"], + "processor": "jsdoc/example" // a pretended value here + }, + { + "files": [ + "*.js/*_jsdoc-example.js", + "*.ts/*_jsdoc-example.js", + "*.js/*_jsdoc-example.ts" + ], + "rules": { + // specific rules for examples in jsdoc only here + // And other rules for `.js` and `.ts` will also be enabled for them + } + } + */ + return { + meta: { + name: 'eslint-plugin-jsdoc/processor', + version, + }, + processors: { + examples: { + meta: { + name: 'eslint-plugin-jsdoc/preprocessor', + version, + }, + /** + * @param {string} text + * @param {string} filename + */ + preprocess (text, filename) { + try { + let ast; + + // May be running a second time so catch and ignore + try { + ast = parser + // @ts-expect-error Ok + ? parser.parseForESLint(text, { + ecmaVersion: 'latest', + sourceType, + comment: true + }).ast + : espree.parse(text, { + ecmaVersion: 'latest', + sourceType, + comment: true + }); + } catch (err) { + return [text]; + } + + /** @type {[number, number][]} */ + const commentLineCols = []; + const jsdocComments = /** @type {import('estree').Comment[]} */ ( + /** + * @type {import('estree').Program & { + * comments?: import('estree').Comment[] + * }} + */ + (ast).comments + ).filter((comment) => { + return (/^\*\s/u).test(comment.value); + }).map((comment) => { + /* c8 ignore next -- Unsupporting processors only? */ + const [start] = comment.range ?? []; + const textToStart = text.slice(0, start); + + const [lines, cols] = getLinesCols(textToStart); + + // const lines = [...textToStart.matchAll(/\n/gu)].length + // const lastLinePos = textToStart.lastIndexOf('\n'); + // const cols = lastLinePos === -1 + // ? 0 + // : textToStart.slice(lastLinePos).length; + commentLineCols.push([lines, cols]); + return parseComment(comment); + }); + + return [ + text, + ...jsdocComments.flatMap((jsdoc, idx) => { + return getTextsAndFileNames( + jsdoc, + filename, + commentLineCols[idx] + ); + }).filter(Boolean) + ]; + /* c8 ignore next 3 */ + } catch (err) { + console.log('err', filename, err); + } + }, + + /** + * @param {import('eslint').Linter.LintMessage[][]} messages + * @param {string} filename + */ + postprocess ([jsMessages, ...messages], filename) { + messages.forEach((message, idx) => { + const { + targetTagName, + codeStartLine, + codeStartCol, + nonJSPrefacingCols, + commentLineCols + } = otherInfo[idx]; + + message.forEach((msg) => { + const { + message, + ruleId, + severity, + fatal, + line, + column, + endColumn, + endLine, + + // Todo: Make fixable + // fix + // fix: {range: [number, number], text: string} + // suggestions: {desc: , messageId:, fix: }[], + } = msg; + + const [codeCtxLine, codeCtxColumn] = commentLineCols; + const startLine = codeCtxLine + codeStartLine + line; + const startCol = 1 + // Seems to need one more now + codeCtxColumn + codeStartCol + ( + // This might not work for line 0, but line 0 is unlikely for examples + line <= 1 ? nonJSPrefacingCols + firstLinePrefixLength : preTagSpaceLength + ) + column; + + msg.message = '@' + targetTagName + ' ' + (severity === 2 ? 'error' : 'warning') + + (ruleId ? ' (' + ruleId + ')' : '') + ': ' + + (fatal ? 'Fatal: ' : '') + + message; + msg.line = startLine; + msg.column = startCol; + msg.endLine = endLine ? startLine + endLine : startLine; + // added `- column` to offset what `endColumn` already seemed to include + msg.endColumn = endColumn ? startCol - column + endColumn : startCol; + }); + }); + + const ret = [...jsMessages].concat(...messages, ...extraMessages); + extraMessages = []; + return ret; + }, + supportsAutofix: true + }, + }, + }; +}; diff --git a/src/index.js b/src/index.js index aa750fb6d..ce643d4fa 100644 --- a/src/index.js +++ b/src/index.js @@ -55,6 +55,8 @@ import tagLines from './rules/tagLines.js'; import textEscaping from './rules/textEscaping.js'; import validTypes from './rules/validTypes.js'; +import { getJsdocProcessorPlugin } from './getJsdocProcessorPlugin.js'; + /** * @type {import('eslint').ESLint.Plugin & { * configs: Record< @@ -274,4 +276,110 @@ index.configs['flat/recommended-typescript-error'] = createRecommendedTypeScript index.configs['flat/recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn', 'flat/recommended-typescript-flavor'); index.configs['flat/recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error', 'flat/recommended-typescript-flavor-error'); +index.configs.examples = /** @type {import('eslint').Linter.FlatConfig[]} */ ([ + { + name: 'jsdoc/examples/processor', + files: ['**/*.js'], + plugins: { + examples: getJsdocProcessorPlugin() + }, + processor: 'examples/examples', + }, + { + name: 'jsdoc/examples/rules', + files: ['**/*.md/*.js'], + rules: { + // "always" newline rule at end unlikely in sample code + 'eol-last': 0, + + // Wouldn't generally expect example paths to resolve relative to JS file + 'import/no-unresolved': 0, + + // Snippets likely too short to always include import/export info + 'import/unambiguous': 0, + + 'jsdoc/require-file-overview': 0, + + // The end of a multiline comment would end the comment the example is in. + 'jsdoc/require-jsdoc': 0, + + // Unlikely to have inadvertent debugging within examples + 'no-console': 0, + + // Often wish to start `@example` code after newline; also may use + // empty lines for spacing + 'no-multiple-empty-lines': 0, + + // Many variables in examples will be `undefined` + 'no-undef': 0, + + // Common to define variables for clarity without always using them + 'no-unused-vars': 0, + + // See import/no-unresolved + 'node/no-missing-import': 0, + 'node/no-missing-require': 0, + + // Can generally look nicer to pad a little even if code imposes more stringency + 'padded-blocks': 0, + } + } +]); + +index.configs['default-expressions'] = /** @type {import('eslint').Linter.FlatConfig[]} */ ([ + { + files: ['**/*.js'], + name: 'jsdoc/default-expressions/processor', + plugins: { + examples: getJsdocProcessorPlugin({ + checkDefaults: true, + checkParams: true, + checkProperties: true + }) + }, + processor: 'examples/examples' + }, + { + name: 'jsdoc/default-expressions/rules', + files: ['**/*.jsdoc-defaults', '**/*.jsdoc-params', '**/*.jsdoc-properties'], + rules: { + ...index.configs.examples[1].rules, + 'chai-friendly/no-unused-expressions': 0, + 'no-empty-function': 0, + 'no-new': 0, + 'no-unused-expressions': 0, + quotes: [ + 'error', 'double', + ], + semi: [ + 'error', 'never', + ], + strict: 0 + }, + } +]); + +index.configs['examples-and-default-expressions'] = /** @type {import('eslint').Linter.FlatConfig[]} */ ([ + { + name: 'jsdoc/examples-and-default-expressions', + plugins: { + examples: getJsdocProcessorPlugin({ + checkDefaults: true, + checkParams: true, + checkProperties: true + }) + }, + }, + ...index.configs.examples.map((config) => { + delete config.plugins; + return config; + }), + ...index.configs['default-expressions'].map((config) => { + delete config.plugins; + return config; + }) +]); + +export { getJsdocProcessorPlugin }; + export default index; diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index 2afcfc4c9..c599bc372 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -731,10 +731,10 @@ const getTags = (jsdoc, tagName) => { * @param {import('./iterateJsdoc.js').JsdocBlockWithInline} jsdoc * @param {{ * tagName: string, - * context: import('eslint').Rule.RuleContext, - * mode: ParserMode, - * report: import('./iterateJsdoc.js').Report - * tagNamePreference: TagNamePreference + * context?: import('eslint').Rule.RuleContext, + * mode?: ParserMode, + * report?: import('./iterateJsdoc.js').Report + * tagNamePreference?: TagNamePreference * skipReportingBlockedTag?: boolean, * allowObjectReturn?: boolean, * defaultMessage?: string, @@ -749,7 +749,9 @@ const getTags = (jsdoc, tagName) => { */ const getPreferredTagName = (jsdoc, { tagName, - context, mode, report, tagNamePreference, + context, mode, + tagNamePreference, + report = () => {}, skipReportingBlockedTag = false, allowObjectReturn = false, defaultMessage = `Unexpected tag \`@${tagName}\``, @@ -781,10 +783,10 @@ const getPreferredTagName = (jsdoc, { * targetTagName: string * ) => void} arrayHandler * @param {object} cfg - * @param {import('eslint').Rule.RuleContext} cfg.context - * @param {ParserMode} cfg.mode - * @param {import('./iterateJsdoc.js').Report} cfg.report - * @param {TagNamePreference} cfg.tagNamePreference + * @param {import('eslint').Rule.RuleContext} [cfg.context] + * @param {ParserMode} [cfg.mode] + * @param {import('./iterateJsdoc.js').Report} [cfg.report] + * @param {TagNamePreference} [cfg.tagNamePreference] * @param {boolean} [cfg.skipReportingBlockedTag] * @returns {void} */ @@ -794,7 +796,7 @@ const forEachPreferredTag = ( context, mode, report, tagNamePreference, skipReportingBlockedTag = false, - } + } = {} ) => { const targetTagName = /** @type {string|false} */ ( getPreferredTagName(jsdoc, { diff --git a/test/getJsdocProcessPlugin.js b/test/getJsdocProcessPlugin.js new file mode 100644 index 000000000..97cc9ca98 --- /dev/null +++ b/test/getJsdocProcessPlugin.js @@ -0,0 +1,741 @@ +import { + expect, +} from 'chai'; +import {parser as typescriptEslintParser} from 'typescript-eslint'; +import { + getJsdocProcessorPlugin +} from '../src/getJsdocProcessorPlugin.js'; + +/** + * @param {{ + * options?: import('../src/getJsdocProcessorPlugin.js').JsdocProcessorOptions, + * filename: string, + * text: string, + * result: (string|import('eslint').Linter.ProcessorFile)[] + * }} cfg + */ +function check ({options, filename, text, result}) { + const plugin = getJsdocProcessorPlugin(options); + const results = plugin.processors.examples.preprocess( + text, filename + ); + expect(results).to.deep.equal(result); +} + +describe('`getJsdocProcessorPlugin`', function () { + it('returns text and files', function () { + const filename = 'something.js'; + const text = ` + /** + * @example + * doSth('a'); + */ + function doSth () {} + `; + check({ + filename, + text, + result: [ + text, + { + text: `\ndoSth('a');`, + filename: 'something.md/*.js' + } + ] + }); + }); + + it('returns text and files (recovering from fatal error)', function () { + const filename = 'something.js'; + const text = `doSth(`; + check({ + filename, + text, + result: [ + text + ] + }); + }); + + it('returns text and files with `exampleCodeRegex`', function () { + const options = { + exampleCodeRegex: '```js([\\s\\S]*)```', + }; + const filename = 'something.js'; + const text = ` + /** + * @example + * \`\`\`js + * doSth('a'); + * \`\`\` + */ + function doSth () {} + `; + check({ + options, + filename, + text, + result: [ + text, + { + text: `\ndoSth('a');\n`, + filename: 'something.md/*.js' + } + ] + }); + }); + + it('returns text and files with `exampleCodeRegex` (no parentheses)', function () { + const options = { + exampleCodeRegex: '// begin[\\s\\S]*// end', + }; + const filename = 'something.js'; + const text = ` + /** + * @example // begin + alert('hello') + // end + */ + function quux () { + + } + `; + check({ + options, + filename, + text, + result: [ + text, + { + text: `// begin\nalert('hello')\n// end`, + filename: 'something.md/*.js' + } + ] + }); + }); + + it('returns text and files with missing caption', function () { + const options = { + captionRequired: true, + }; + const filename = 'something.js'; + const text = ` + /** + * @example Valid usage + * quux(); // does something useful + * + * @example + * quux('random unwanted arg'); // results in an error + */ + function quux () { + + } + `; + + const plugin = getJsdocProcessorPlugin(options); + const results = plugin.processors.examples.preprocess( + text, filename + ); + expect(results).to.deep.equal([ + text, + { + text: `\nquux(); // does something useful\n`, + filename: 'something.md/*.js' + } + ]); + + const postResults = plugin.processors.examples.postprocess( + [[]], filename + ); + expect(postResults.length).to.equal(1); + }); + + it('returns text and files (inline example)', function () { + const options = { + }; + const filename = 'something.js'; + const text = ` + /** + * @example alert('hello') + */ + function quux () { + + } + `; + check({ + options, + filename, + text, + result: [ + text, + { + text: `alert('hello')`, + filename: 'something.md/*.js' + } + ] + }); + }); + + it('returns text and files (no asterisk example)', function () { + const options = { + exampleCodeRegex: '```js([\\s\\S]*)```', + }; + const filename = 'something.js'; + const text = ` + /** + * @example \`\`\`js + alert('hello'); + \`\`\` + */ + function quux () { + + } + `; + check({ + options, + filename, + text, + result: [ + text, + { + text: `\nalert('hello');\n`, + filename: 'something.md/*.js' + } + ] + }); + }); + + it('returns text and files (with `rejectExampleCodeRegex`)', function () { + const options = { + rejectExampleCodeRegex: '^\\s*<.*>\\s*$', + }; + const filename = 'something.js'; + const text = ` + /** + * @example Not JavaScript + */ + function quux () { + + } + /** + * @example quux2(); + */ + function quux2 () { + + } + `; + check({ + options, + filename, + text, + result: [ + text, + { + text: `quux2();`, + filename: 'something.md/*.js' + } + ] + }); + }); + + it('returns text and files (with `matchingFileName`)', function () { + const options = { + matchingFileName: '../../jsdocUtils.js', + }; + const filename = 'something.js'; + const text = ` + /** + * @example const j = 5; + * quux2(); + */ + function quux2 () { + + } + `; + check({ + options, + filename, + text, + result: [ + text, + { + text: `const j = 5;\nquux2();`, + filename: '../../jsdocUtils.js' + } + ] + }); + }); + + it('returns text and files (with `paddedIndent`)', function () { + const options = { + paddedIndent: 2 + }; + const filename = 'something.js'; + const text = ` + /** + * @example const i = 5; + * quux2() + */ + function quux2 () { + + } + `; + check({ + options, + filename, + text, + result: [ + text, + { + text: `const i = 5;\nquux2()`, + filename: 'something.md/*.js' + } + ] + }); + }); + + it('returns text and files (with `parser`)', function () { + const options = { + parser: typescriptEslintParser + }; + const filename = 'something.js'; + const text = ` + /** + * @example + * const list: number[] = [1, 2, 3] + * quux(list); + */ + function quux () { + + } + `; + check({ + // @ts-expect-error Ok? + options, + filename, + text, + result: [ + text, + { + text: `\nconst list: number[] = [1, 2, 3]\nquux(list);`, + filename: 'something.md/*.js' + } + ] + }); + }); + + it('returns text and files (with multiple fenced blocks)', function () { + const options = { + exampleCodeRegex: '/^```(?:js|javascript)\\n([\\s\\S]*?)```$/gm', + }; + const filename = 'something.js'; + const text = ` + /** + * @example Say \`Hello!\` to the user. + * First, import the function: + * + * \`\`\`js + * import popup from './popup' + * const aConstInSameScope = 5; + * \`\`\` + * + * Then use it like this: + * + * \`\`\`js + * const aConstInSameScope = 7; + * popup('Hello!') + * \`\`\` + * + * Here is the result on macOS: + * + * ![Screenshot](path/to/screenshot.jpg) + */ + `; + check({ + options, + filename, + text, + result: [ + text, + { + text: `import popup from './popup'\nconst aConstInSameScope = 5;\n`, + filename: 'something.md/*.js' + }, + { + text: `const aConstInSameScope = 7;\npopup('Hello!')\n`, + filename: 'something.md/*.js' + } + ] + }); + }); + + it('returns text and files (for @default)', function () { + const options = { + checkDefaults: true, + }; + const filename = 'something.js'; + const text = ` + /** + * @default 'abc' + */ + const str = 'abc'; + `; + check({ + options, + filename, + text, + result: [ + text, + { + text: `('abc')`, + filename: 'something.jsdoc-defaults' + } + ] + }); + }); + + it('returns text and files (for @param)', function () { + const options = { + checkParams: true, + }; + const filename = 'something.js'; + const text = ` + /** + * @param {myType} [name='abc'] + */ + function quux () { + } + `; + check({ + options, + filename, + text, + result: [ + text, + { + text: `('abc')`, + filename: 'something.jsdoc-params' + } + ] + }); + }); + + it('returns text and files (for @property)', function () { + const options = { + checkProperties: true, + }; + const filename = 'something.js'; + const text = ` + /** + * @property {myType} [name='abc'] + */ + const obj = {}; + `; + check({ + options, + filename, + text, + result: [ + text, + { + text: `('abc')`, + filename: 'something.jsdoc-properties' + } + ] + }); + }); + + it('returns text and files (with caption)', function () { + const options = { + captionRequired: true, + }; + const filename = 'something.js'; + const text = ` + /** + * Test function. + * + * @example functionName (paramOne: string, paramTwo?: any, + * paramThree?: any): boolean test() + * + * @param {string} paramOne Parameter description. + * @param {any} [paramTwo] Parameter description. + * @param {any} [paramThree] Parameter description. + * @returns {boolean} Return description. + */ + const functionName = function (paramOne, paramTwo, + paramThree) { + return false; + }; + `; + check({ + options, + filename, + text, + result: [ + text, + { + text: ` test()\n`, + filename: 'something.md/*.js' + } + ] + }); + }); + + it('returns text and files (with dummy filename)', function () { + const options = { + checkProperties: true, + }; + const filename = ''; + const text = ` + /** + * @example const i = 5; + */ + function quux2 () { + + } + `; + check({ + options, + filename, + text, + result: [ + text, + { + text: `const i = 5;`, + filename: 'dummy.md/*.js' + } + ] + }); + }); + + it('returns text and files (with empty default)', function () { + const options = { + checkDefaults: true, + }; + const filename = ''; + const text = ` + /** + * @default + */ + const str = 'abc'; + `; + check({ + options, + filename, + text, + result: [ + text + ] + }); + }); + + it('returns text and files (with property default missing)', function () { + const options = { + checkProperties: true, + }; + const filename = 'something.js'; + const text = ` + /** + * @property {myType} [name] + */ + const obj = {}; + `; + check({ + options, + filename, + text, + result: [ + text + ] + }); + }); + + it('returns text and files (with param default missing)', function () { + const options = { + checkParams: true, + }; + const filename = 'something.js'; + const text = ` + /** + * @param {myType} name + */ + function quux () { + } + `; + check({ + options, + filename, + text, + result: [ + text + ] + }); + }); + + it('returns text and files and postprocesses error', function () { + const options = { + }; + const filename = 'something.js'; + const text = ` +/** + * @example alert('a'); + */ + `; + + const plugin = getJsdocProcessorPlugin(options); + const results = plugin.processors.examples.preprocess( + text, filename + ); + expect(results).to.deep.equal([ + text, + { + text: `alert('a');`, + filename: 'something.md/*.js' + } + ]); + + const postResults = plugin.processors.examples.postprocess( + [[], [ + { + ruleId: 'no-alert', + severity: 2, + message: 'Unexpected alert.', + line: 1, + column: 1, + endLine: 1, + endColumn: 11 + } + ]], filename + ); + expect(postResults).to.deep.equal([ + { + ruleId: 'no-alert', + severity: 2, + message: '@example error (no-alert): Unexpected alert.', + line: 3, + column: 4, + endLine: 4, + endColumn: 14 + } + ]); + }); + + it('returns text and files and postprocesses warning', function () { + const options = { + }; + const filename = 'something.js'; + const text = ` +/** + * @example alert('a'); + */ + `; + + const plugin = getJsdocProcessorPlugin(options); + const results = plugin.processors.examples.preprocess( + text, filename + ); + expect(results).to.deep.equal([ + text, + { + text: `alert('a');`, + filename: 'something.md/*.js' + } + ]); + + const postResults = plugin.processors.examples.postprocess( + [[], [ + { + ruleId: 'no-alert', + severity: 1, + message: 'Unexpected alert.', + line: 1, + column: 1, + endLine: 1, + endColumn: 11 + } + ]], filename + ); + expect(postResults).to.deep.equal([ + { + ruleId: 'no-alert', + severity: 1, + message: '@example warning (no-alert): Unexpected alert.', + line: 3, + column: 4, + endLine: 4, + endColumn: 14 + } + ]); + }); + + it('returns text and files and postprocesses fatal error', function () { + const options = { + }; + const filename = 'something.js'; + const text = ` + /** + * @example + * alert( + */ + `; + + const plugin = getJsdocProcessorPlugin(options); + const results = plugin.processors.examples.preprocess( + text, filename + ); + expect(results).to.deep.equal([ + text, + { + text: `\nalert(`, + filename: 'something.md/*.js' + } + ]); + + const postResults = plugin.processors.examples.postprocess( + [[], [ + { + ruleId: null, + fatal: true, + severity: 2, + message: 'Parsing error: Unexpected token', + line: 2, + column: 7 + } + ]], filename + ); + expect(postResults).to.deep.equal([ + { + ruleId: null, + fatal: true, + severity: 2, + message: '@example error: Fatal: Parsing error: Unexpected token', + line: 4, + column: 16, + endLine: 4, + endColumn: 16 + } + ]); + }); + + it('returns text and files, with `checkExamples: false`', function () { + const options = { + checkExamples: false + }; + const filename = 'something.js'; + const text = ` + /** + * @example + * doSth('a'); + */ + function doSth () {} + `; + check({ + options, + filename, + text, + result: [ + text + ] + }); + }); +}); diff --git a/test/jsdocUtils.js b/test/jsdocUtils.js index b7bd33a2c..27854c2e0 100644 --- a/test/jsdocUtils.js +++ b/test/jsdocUtils.js @@ -8,6 +8,23 @@ import { */ describe('jsdocUtils', () => { + describe('getPreferredTagName()', () => { + context('report', () => { + jsdocUtils.getPreferredTagName({ + tags: [ + // @ts-expect-error Just a skeleton + { + tag: 'example', + }, + ] + }, { + tagName: 'example', + tagNamePreference: { + 'example': false + } + }); + }); + }); describe('getPreferredTagNameSimple()', () => { context('no preferences', () => { context('alias name', () => { From 3ba475e589bc1dc83a7f57950378b2da0228e7fc Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 29 Jul 2024 16:10:30 +0800 Subject: [PATCH 218/273] fix: move processor to own file; fixes #1277; fixes #1278 --- .README/processors.md | 2 ++ docs/processors.md | 2 ++ package.json | 13 ++++++++++--- src/index.js | 2 -- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/.README/processors.md b/.README/processors.md index ab0b03ab1..e5daf220b 100644 --- a/.README/processors.md +++ b/.README/processors.md @@ -9,6 +9,8 @@ The approach below works in ESLint 9. For ESLint 7, please see our [`check-examp The approach requires that we first indicate the JavaScript files that will be checked for `@example` tags. ```js +import getJsdocProcessorPlugin from 'eslint-plugin-jsdoc/getJsdocProcessorPlugin.js'; + export default [ { files: ['**/*.js'], diff --git a/docs/processors.md b/docs/processors.md index 3d1492d02..a588a81d1 100644 --- a/docs/processors.md +++ b/docs/processors.md @@ -11,6 +11,8 @@ The approach below works in ESLint 9. For ESLint 7, please see our [`check-examp The approach requires that we first indicate the JavaScript files that will be checked for `@example` tags. ```js +import getJsdocProcessorPlugin from 'eslint-plugin-jsdoc/getJsdocProcessorPlugin.js'; + export default [ { files: ['**/*.js'], diff --git a/package.json b/package.json index 3efe1de5d..bf3105c0c 100644 --- a/package.json +++ b/package.json @@ -91,9 +91,16 @@ "main": "./dist/index.cjs", "types": "./dist/index.d.ts", "exports": { - "types": "./dist/index.d.ts", - "import": "./src/index.js", - "require": "./dist/index.cjs" + ".": { + "types": "./dist/index.d.ts", + "import": "./src/index.js", + "require": "./dist/index.cjs" + }, + "./getJsdocProcessorPlugin.js": { + "types": "./dist/getJsdocProcessorPlugin.d.ts", + "import": "./dist/getJsdocProcessorPlugin.cjs", + "require": "./src/getJsdocProcessorPlugin.js" + } }, "name": "eslint-plugin-jsdoc", "mocha": { diff --git a/src/index.js b/src/index.js index ce643d4fa..a8343b94c 100644 --- a/src/index.js +++ b/src/index.js @@ -380,6 +380,4 @@ index.configs['examples-and-default-expressions'] = /** @type {import('eslint'). }) ]); -export { getJsdocProcessorPlugin }; - export default index; From f0f5e1848e4a0d920d743433de12f91ded46d4e1 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 29 Jul 2024 16:19:31 +0800 Subject: [PATCH 219/273] docs: fix docs for `getJsdocProcessorPlugin` --- .README/processors.md | 4 ++-- docs/processors.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.README/processors.md b/.README/processors.md index e5daf220b..8de1c88a7 100644 --- a/.README/processors.md +++ b/.README/processors.md @@ -9,7 +9,7 @@ The approach below works in ESLint 9. For ESLint 7, please see our [`check-examp The approach requires that we first indicate the JavaScript files that will be checked for `@example` tags. ```js -import getJsdocProcessorPlugin from 'eslint-plugin-jsdoc/getJsdocProcessorPlugin.js'; +import {getJsdocProcessorPlugin} from 'eslint-plugin-jsdoc/getJsdocProcessorPlugin.js'; export default [ { @@ -28,7 +28,7 @@ export default [ }, processor: 'examples/examples' }, -], +]; ``` Now you can target the JavaScript inside these `@example` or default blocks diff --git a/docs/processors.md b/docs/processors.md index a588a81d1..3998e0433 100644 --- a/docs/processors.md +++ b/docs/processors.md @@ -11,7 +11,7 @@ The approach below works in ESLint 9. For ESLint 7, please see our [`check-examp The approach requires that we first indicate the JavaScript files that will be checked for `@example` tags. ```js -import getJsdocProcessorPlugin from 'eslint-plugin-jsdoc/getJsdocProcessorPlugin.js'; +import {getJsdocProcessorPlugin} from 'eslint-plugin-jsdoc/getJsdocProcessorPlugin.js'; export default [ { @@ -30,7 +30,7 @@ export default [ }, processor: 'examples/examples' }, -], +]; ``` Now you can target the JavaScript inside these `@example` or default blocks From df43df9f4533dcbf7458e41d7f90bc89043331dd Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 29 Jul 2024 14:43:16 +0800 Subject: [PATCH 220/273] docs: mention in rule message current alternative to `check-examples` rule --- src/rules/checkExamples.js | 5 ++--- test/rules/index.js | 3 +-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/rules/checkExamples.js b/src/rules/checkExamples.js index 5d0f79875..5e676d405 100644 --- a/src/rules/checkExamples.js +++ b/src/rules/checkExamples.js @@ -117,9 +117,8 @@ export default iterateJsdoc(({ }) => { if (semver.gte(ESLint.version, '8.0.0')) { report( - 'This rule cannot yet be supported for ESLint 8; you ' + - 'should either downgrade to ESLint 7 or disable this rule. The ' + - 'possibility for ESLint 8 support is being tracked at https://github.com/eslint/eslint/issues/14745', + 'This rule does not work for ESLint 8+; you should disable this rule and use' + + 'the processor mentioned in the docs.', null, { column: 1, diff --git a/test/rules/index.js b/test/rules/index.js index bfb1d525f..cfb2d4d41 100644 --- a/test/rules/index.js +++ b/test/rules/index.js @@ -29,8 +29,7 @@ const main = async () => { for (const ruleName of process.env.npm_config_rule ? process.env.npm_config_rule.split(',') : ruleNames) { if (semver.gte(ESLint.version, '8.0.0') && ruleName === 'check-examples') { - // TODO: This rule cannot yet be supported for ESLint 8; - // The possibility for ESLint 8 support is being tracked at https://github.com/eslint/eslint/issues/14745 + // Uses the processor instead for higher versions continue; } From 2fbd47c3d2b23a41d87b979daa56a648270d3675 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 29 Jul 2024 16:36:07 +0800 Subject: [PATCH 221/273] fix(examples processor): ensure config can be loaded with plugins Also: - docs: fix processor docs --- .README/processors.md | 4 ++-- docs/processors.md | 4 ++-- src/index.js | 12 ++++++++---- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.README/processors.md b/.README/processors.md index 8de1c88a7..75f9b7c5b 100644 --- a/.README/processors.md +++ b/.README/processors.md @@ -58,10 +58,10 @@ Alternatively you can just use our built-in configs which do the above for you: import jsdoc from 'eslint-plugin-jsdoc'; export default [ - ...index.configs.examples + ...jsdoc.configs.examples // Or for @default, @param and @property default expression processing - // ...index.configs['default-expressions'] + // ...jsdoc.configs['default-expressions'] // Or for both, use: // ...jsdoc.configs['examples-and-default-expressions'], diff --git a/docs/processors.md b/docs/processors.md index 3998e0433..d7863e5d5 100644 --- a/docs/processors.md +++ b/docs/processors.md @@ -60,10 +60,10 @@ Alternatively you can just use our built-in configs which do the above for you: import jsdoc from 'eslint-plugin-jsdoc'; export default [ - ...index.configs.examples + ...jsdoc.configs.examples // Or for @default, @param and @property default expression processing - // ...index.configs['default-expressions'] + // ...jsdoc.configs['default-expressions'] // Or for both, use: // ...jsdoc.configs['examples-and-default-expressions'], diff --git a/src/index.js b/src/index.js index a8343b94c..b01eacd33 100644 --- a/src/index.js +++ b/src/index.js @@ -371,12 +371,16 @@ index.configs['examples-and-default-expressions'] = /** @type {import('eslint'). }, }, ...index.configs.examples.map((config) => { - delete config.plugins; - return config; + return { + ...config, + plugins: {} + }; }), ...index.configs['default-expressions'].map((config) => { - delete config.plugins; - return config; + return { + ...config, + plugins: {} + }; }) ]); From 87a12703b229efa73334e61d7ed4448cb28167a9 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 30 Jul 2024 14:00:30 +0800 Subject: [PATCH 222/273] fix(`getJsdocProcessorPlugin`): ensure package.json file is consistently located --- src/getJsdocProcessorPlugin.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/getJsdocProcessorPlugin.js b/src/getJsdocProcessorPlugin.js index 34aee2dd2..36eb544f6 100644 --- a/src/getJsdocProcessorPlugin.js +++ b/src/getJsdocProcessorPlugin.js @@ -1,6 +1,8 @@ // Todo: Support TS by fenced block type -import {readFileSync} from 'fs'; +import {readFileSync} from 'node:fs'; +import { dirname, join } from 'node:path'; +import { fileURLToPath } from 'node:url'; import * as espree from 'espree'; import { getRegexFromString, @@ -13,9 +15,11 @@ import { parseComment, } from '@es-joy/jsdoccomment'; +const __dirname = dirname(fileURLToPath(import.meta.url)); + const {version} = JSON.parse( // @ts-expect-error `Buffer` is ok for `JSON.parse` - readFileSync('./package.json') + readFileSync(join(__dirname, '../package.json')) ); // const zeroBasedLineIndexAdjust = -1; From 320a1ebb5c72d48a5a0cc725a7f8a1ea0170d2f6 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 27 Jul 2024 19:23:57 +0800 Subject: [PATCH 223/273] feat(`require-template`, `check-template-names`): add support `TSInterfaceDeclaration` --- .README/rules/check-template-names.md | 2 +- .README/rules/require-template.md | 2 +- docs/rules/check-template-names.md | 50 ++++++++- docs/rules/require-template.md | 47 ++++++++- src/rules/checkTemplateNames.js | 12 ++- src/rules/requireTemplate.js | 26 +++-- test/rules/assertions/checkTemplateNames.js | 111 ++++++++++++++++++++ test/rules/assertions/requireTemplate.js | 96 +++++++++++++++++ 8 files changed, 332 insertions(+), 14 deletions(-) diff --git a/.README/rules/check-template-names.md b/.README/rules/check-template-names.md index f6a8832d6..51e0f3779 100644 --- a/.README/rules/check-template-names.md +++ b/.README/rules/check-template-names.md @@ -3,7 +3,7 @@ Checks that any `@template` names are actually used in the connected `@typedef` or type alias. -Currently checks `TSTypeAliasDeclaration` such as: +Currently checks `TSInterfaceDeclaration` or `TSTypeAliasDeclaration` such as: ```ts /** diff --git a/.README/rules/require-template.md b/.README/rules/require-template.md index 73bff6b8d..2544f1d95 100644 --- a/.README/rules/require-template.md +++ b/.README/rules/require-template.md @@ -3,7 +3,7 @@ Checks to see that `@template` tags are present for any detected type parameters. -Currently checks `TSTypeAliasDeclaration` such as: +Currently checks `TSInterfaceDeclaration` or `TSTypeAliasDeclaration` such as: ```ts export type Pairs = [D, V | undefined]; diff --git a/docs/rules/check-template-names.md b/docs/rules/check-template-names.md index eecdc360c..7249f0413 100644 --- a/docs/rules/check-template-names.md +++ b/docs/rules/check-template-names.md @@ -5,7 +5,7 @@ Checks that any `@template` names are actually used in the connected `@typedef` or type alias. -Currently checks `TSTypeAliasDeclaration` such as: +Currently checks `TSInterfaceDeclaration` or `TSTypeAliasDeclaration` such as: ```ts /** @@ -95,6 +95,33 @@ export type Extras = [D, U | undefined]; * @property {V} foo */ // Message: @template D not in use + +/** + * @template D + * @template V + */ +interface GenericIdentityFn { + (arg: Type): Type; +} +// Message: @template D not in use + +/** + * @template D + * @template V + */ +export interface GenericIdentityFn { + (arg: Type): Type; +} +// Message: @template D not in use + +/** + * @template D + * @template V + */ +export default interface GenericIdentityFn { + (arg: Type): Type; +} +// Message: @template D not in use ```` @@ -146,5 +173,26 @@ export type Extras = [D, U, V | undefined]; * @property {D} foo * @property {V} bar */ + +/** + * @template Type + */ +interface GenericIdentityFn { + (arg: Type): Type; +} + +/** + * @template Type + */ +export interface GenericIdentityFn { + (arg: Type): Type; +} + +/** + * @template Type + */ +export default interface GenericIdentityFn { + (arg: Type): Type; +} ```` diff --git a/docs/rules/require-template.md b/docs/rules/require-template.md index a701606ee..16d8e3f09 100644 --- a/docs/rules/require-template.md +++ b/docs/rules/require-template.md @@ -5,7 +5,7 @@ Checks to see that `@template` tags are present for any detected type parameters. -Currently checks `TSTypeAliasDeclaration` such as: +Currently checks `TSInterfaceDeclaration` or `TSTypeAliasDeclaration` such as: ```ts export type Pairs = [D, V | undefined]; @@ -114,6 +114,30 @@ export type Pairs = [D, V | undefined]; * @property {X} bar */ // Message: Missing @template D + +/** + * + */ +interface GenericIdentityFn { + (arg: Type): Type; +} +// Message: Missing @template Type + +/** + * + */ +export interface GenericIdentityFn { + (arg: Type): Type; +} +// Message: Missing @template Type + +/** + * + */ +export default interface GenericIdentityFn { + (arg: Type): Type; +} +// Message: Missing @template Type ```` @@ -164,5 +188,26 @@ export type Extras = [D, U, V | undefined]; * @property {D} foo * @property {V} bar */ + +/** + * @template Type + */ +interface GenericIdentityFn { + (arg: Type): Type; +} + +/** + * @template Type + */ +export interface GenericIdentityFn { + (arg: Type): Type; +} + +/** + * @template Type + */ +export default interface GenericIdentityFn { + (arg: Type): Type; +} ```` diff --git a/src/rules/checkTemplateNames.js b/src/rules/checkTemplateNames.js index a7480d0aa..9a2914ebd 100644 --- a/src/rules/checkTemplateNames.js +++ b/src/rules/checkTemplateNames.js @@ -20,7 +20,8 @@ export default iterateJsdoc(({ const usedNames = new Set(); /** - * @param {import('@typescript-eslint/types').TSESTree.TSTypeAliasDeclaration} aliasDeclaration + * @param {import('@typescript-eslint/types').TSESTree.TSInterfaceDeclaration| + * import('@typescript-eslint/types').TSESTree.TSTypeAliasDeclaration} aliasDeclaration */ const checkParameters = (aliasDeclaration) => { /* c8 ignore next -- Guard */ @@ -47,12 +48,17 @@ export default iterateJsdoc(({ return; } switch (nde.type) { + case 'ExportDefaultDeclaration': case 'ExportNamedDeclaration': - if (nde.declaration?.type === 'TSTypeAliasDeclaration') { - checkParameters(nde.declaration); + switch (nde.declaration?.type) { + case 'TSTypeAliasDeclaration': + case 'TSInterfaceDeclaration': + checkParameters(nde.declaration); + break; } break; case 'TSTypeAliasDeclaration': + case 'TSInterfaceDeclaration': checkParameters(nde); break; } diff --git a/src/rules/requireTemplate.js b/src/rules/requireTemplate.js index 6d4bf3e8f..ebee54a05 100644 --- a/src/rules/requireTemplate.js +++ b/src/rules/requireTemplate.js @@ -35,9 +35,10 @@ export default iterateJsdoc(({ } /** - * @param {import('@typescript-eslint/types').TSESTree.TSTypeAliasDeclaration} aliasDeclaration + * @param {import('@typescript-eslint/types').TSESTree.TSInterfaceDeclaration| + * import('@typescript-eslint/types').TSESTree.TSTypeAliasDeclaration} aliasDeclaration */ - const checkParameters = (aliasDeclaration) => { + const checkTypeParams = (aliasDeclaration) => { /* c8 ignore next -- Guard */ const {params} = aliasDeclaration.typeParameters ?? {params: []}; for (const {name: {name}} of params) { @@ -50,7 +51,7 @@ export default iterateJsdoc(({ } }; - const handleTypeAliases = () => { + const handleTypes = () => { const nde = /** @type {import('@typescript-eslint/types').TSESTree.Node} */ ( node ); @@ -58,20 +59,31 @@ export default iterateJsdoc(({ return; } switch (nde.type) { + case 'ExportDefaultDeclaration': + switch (nde.declaration?.type) { + case 'TSInterfaceDeclaration': + checkTypeParams(nde.declaration); + break; + } + break; case 'ExportNamedDeclaration': - if (nde.declaration?.type === 'TSTypeAliasDeclaration') { - checkParameters(nde.declaration); + switch (nde.declaration?.type) { + case 'TSTypeAliasDeclaration': + case 'TSInterfaceDeclaration': + checkTypeParams(nde.declaration); + break; } break; case 'TSTypeAliasDeclaration': - checkParameters(nde); + case 'TSInterfaceDeclaration': + checkTypeParams(nde); break; } }; const typedefTags = utils.getTags('typedef'); if (!typedefTags.length || typedefTags.length >= 2) { - handleTypeAliases(); + handleTypes(); return; } diff --git a/test/rules/assertions/checkTemplateNames.js b/test/rules/assertions/checkTemplateNames.js index 4d8167a68..254a34f0d 100644 --- a/test/rules/assertions/checkTemplateNames.js +++ b/test/rules/assertions/checkTemplateNames.js @@ -158,6 +158,78 @@ export default { }, ], }, + { + code: ` + /** + * @template D + * @template V + */ + interface GenericIdentityFn { + (arg: Type): Type; + } + `, + errors: [ + { + line: 3, + message: '@template D not in use', + }, + { + line: 4, + message: '@template V not in use', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template D + * @template V + */ + export interface GenericIdentityFn { + (arg: Type): Type; + } + `, + errors: [ + { + line: 3, + message: '@template D not in use', + }, + { + line: 4, + message: '@template V not in use', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template D + * @template V + */ + export default interface GenericIdentityFn { + (arg: Type): Type; + } + `, + errors: [ + { + line: 3, + message: '@template D not in use', + }, + { + line: 4, + message: '@template V not in use', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, ], valid: [ { @@ -228,5 +300,44 @@ export default { */ `, }, + { + code: ` + /** + * @template Type + */ + interface GenericIdentityFn { + (arg: Type): Type; + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template Type + */ + export interface GenericIdentityFn { + (arg: Type): Type; + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template Type + */ + export default interface GenericIdentityFn { + (arg: Type): Type; + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, ], }; diff --git a/test/rules/assertions/requireTemplate.js b/test/rules/assertions/requireTemplate.js index c4cc57c9d..756771999 100644 --- a/test/rules/assertions/requireTemplate.js +++ b/test/rules/assertions/requireTemplate.js @@ -171,6 +171,63 @@ export default { }, ], }, + { + code: ` + /** + * + */ + interface GenericIdentityFn { + (arg: Type): Type; + } + `, + errors: [ + { + line: 2, + message: 'Missing @template Type', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * + */ + export interface GenericIdentityFn { + (arg: Type): Type; + } + `, + errors: [ + { + line: 2, + message: 'Missing @template Type', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * + */ + export default interface GenericIdentityFn { + (arg: Type): Type; + } + `, + errors: [ + { + line: 2, + message: 'Missing @template Type', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, ], valid: [ { @@ -240,5 +297,44 @@ export default { */ `, }, + { + code: ` + /** + * @template Type + */ + interface GenericIdentityFn { + (arg: Type): Type; + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template Type + */ + export interface GenericIdentityFn { + (arg: Type): Type; + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template Type + */ + export default interface GenericIdentityFn { + (arg: Type): Type; + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, ], }; From 28bc1cb8664b0373ad87f6cb0cd7c781139cc3b8 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 28 Jul 2024 00:10:58 +0800 Subject: [PATCH 224/273] feat(`require-template`, `check-template-names`): add support `FunctionDeclaration` --- .README/rules/check-template-names.md | 3 +- .README/rules/require-template.md | 3 +- docs/rules/check-template-names.md | 51 ++++++++- docs/rules/require-template.md | 48 ++++++++- src/rules/checkTemplateNames.js | 7 +- src/rules/requireTemplate.js | 6 +- test/rules/assertions/checkTemplateNames.js | 111 ++++++++++++++++++++ test/rules/assertions/requireTemplate.js | 96 +++++++++++++++++ 8 files changed, 318 insertions(+), 7 deletions(-) diff --git a/.README/rules/check-template-names.md b/.README/rules/check-template-names.md index 51e0f3779..6c8b4fa3c 100644 --- a/.README/rules/check-template-names.md +++ b/.README/rules/check-template-names.md @@ -3,7 +3,8 @@ Checks that any `@template` names are actually used in the connected `@typedef` or type alias. -Currently checks `TSInterfaceDeclaration` or `TSTypeAliasDeclaration` such as: +Currently checks `FunctionDeclaration`, `TSInterfaceDeclaration` or +`TSTypeAliasDeclaration` such as: ```ts /** diff --git a/.README/rules/require-template.md b/.README/rules/require-template.md index 2544f1d95..e8ca45777 100644 --- a/.README/rules/require-template.md +++ b/.README/rules/require-template.md @@ -3,7 +3,8 @@ Checks to see that `@template` tags are present for any detected type parameters. -Currently checks `TSInterfaceDeclaration` or `TSTypeAliasDeclaration` such as: +Currently checks `FunctionDeclaration`, `TSInterfaceDeclaration` or +`TSTypeAliasDeclaration` such as: ```ts export type Pairs = [D, V | undefined]; diff --git a/docs/rules/check-template-names.md b/docs/rules/check-template-names.md index 7249f0413..091ae178e 100644 --- a/docs/rules/check-template-names.md +++ b/docs/rules/check-template-names.md @@ -5,7 +5,8 @@ Checks that any `@template` names are actually used in the connected `@typedef` or type alias. -Currently checks `TSInterfaceDeclaration` or `TSTypeAliasDeclaration` such as: +Currently checks `FunctionDeclaration`, `TSInterfaceDeclaration` or +`TSTypeAliasDeclaration` such as: ```ts /** @@ -122,6 +123,33 @@ export default interface GenericIdentityFn { (arg: Type): Type; } // Message: @template D not in use + +/** + * @template D + * @template V + */ +function identity(arg: Type): Type { + return arg; +} +// Message: @template D not in use + +/** + * @template D + * @template V + */ +export function identity(arg: Type): Type { + return arg; +} +// Message: @template D not in use + +/** + * @template D + * @template V + */ +export default function identity(arg: Type): Type { + return arg; +} +// Message: @template D not in use ```` @@ -194,5 +222,26 @@ export interface GenericIdentityFn { export default interface GenericIdentityFn { (arg: Type): Type; } + +/** + * @template Type + */ +function identity(arg: Type): Type { + return arg; +} + +/** + * @template Type + */ +export function identity(arg: Type): Type { + return arg; +} + +/** + * @template Type + */ +export default function identity(arg: Type): Type { + return arg; +} ```` diff --git a/docs/rules/require-template.md b/docs/rules/require-template.md index 16d8e3f09..b9109c097 100644 --- a/docs/rules/require-template.md +++ b/docs/rules/require-template.md @@ -5,7 +5,8 @@ Checks to see that `@template` tags are present for any detected type parameters. -Currently checks `TSInterfaceDeclaration` or `TSTypeAliasDeclaration` such as: +Currently checks `FunctionDeclaration`, `TSInterfaceDeclaration` or +`TSTypeAliasDeclaration` such as: ```ts export type Pairs = [D, V | undefined]; @@ -138,6 +139,30 @@ export default interface GenericIdentityFn { (arg: Type): Type; } // Message: Missing @template Type + +/** + * + */ +function identity(arg: Type): Type { + return arg; +} +// Message: Missing @template Type + +/** + * + */ +export function identity(arg: Type): Type { + return arg; +} +// Message: Missing @template Type + +/** + * + */ +export default function identity(arg: Type): Type { + return arg; +} +// Message: Missing @template Type ```` @@ -209,5 +234,26 @@ export interface GenericIdentityFn { export default interface GenericIdentityFn { (arg: Type): Type; } + +/** + * @template Type + */ +function identity(arg: Type): Type { + return arg; +} + +/** + * @template Type + */ +export function identity(arg: Type): Type { + return arg; +} + +/** + * @template Type + */ +export default function identity(arg: Type): Type { + return arg; +} ```` diff --git a/src/rules/checkTemplateNames.js b/src/rules/checkTemplateNames.js index 9a2914ebd..57ecd8107 100644 --- a/src/rules/checkTemplateNames.js +++ b/src/rules/checkTemplateNames.js @@ -20,7 +20,8 @@ export default iterateJsdoc(({ const usedNames = new Set(); /** - * @param {import('@typescript-eslint/types').TSESTree.TSInterfaceDeclaration| + * @param {import('@typescript-eslint/types').TSESTree.FunctionDeclaration| + * import('@typescript-eslint/types').TSESTree.TSInterfaceDeclaration| * import('@typescript-eslint/types').TSESTree.TSTypeAliasDeclaration} aliasDeclaration */ const checkParameters = (aliasDeclaration) => { @@ -51,12 +52,14 @@ export default iterateJsdoc(({ case 'ExportDefaultDeclaration': case 'ExportNamedDeclaration': switch (nde.declaration?.type) { + case 'FunctionDeclaration': case 'TSTypeAliasDeclaration': case 'TSInterfaceDeclaration': - checkParameters(nde.declaration); + checkParameters(nde.declaration); break; } break; + case 'FunctionDeclaration': case 'TSTypeAliasDeclaration': case 'TSInterfaceDeclaration': checkParameters(nde); diff --git a/src/rules/requireTemplate.js b/src/rules/requireTemplate.js index ebee54a05..c06da7ed3 100644 --- a/src/rules/requireTemplate.js +++ b/src/rules/requireTemplate.js @@ -35,7 +35,8 @@ export default iterateJsdoc(({ } /** - * @param {import('@typescript-eslint/types').TSESTree.TSInterfaceDeclaration| + * @param {import('@typescript-eslint/types').TSESTree.FunctionDeclaration| + * import('@typescript-eslint/types').TSESTree.TSInterfaceDeclaration| * import('@typescript-eslint/types').TSESTree.TSTypeAliasDeclaration} aliasDeclaration */ const checkTypeParams = (aliasDeclaration) => { @@ -61,6 +62,7 @@ export default iterateJsdoc(({ switch (nde.type) { case 'ExportDefaultDeclaration': switch (nde.declaration?.type) { + case 'FunctionDeclaration': case 'TSInterfaceDeclaration': checkTypeParams(nde.declaration); break; @@ -68,12 +70,14 @@ export default iterateJsdoc(({ break; case 'ExportNamedDeclaration': switch (nde.declaration?.type) { + case 'FunctionDeclaration': case 'TSTypeAliasDeclaration': case 'TSInterfaceDeclaration': checkTypeParams(nde.declaration); break; } break; + case 'FunctionDeclaration': case 'TSTypeAliasDeclaration': case 'TSInterfaceDeclaration': checkTypeParams(nde); diff --git a/test/rules/assertions/checkTemplateNames.js b/test/rules/assertions/checkTemplateNames.js index 254a34f0d..91471bc90 100644 --- a/test/rules/assertions/checkTemplateNames.js +++ b/test/rules/assertions/checkTemplateNames.js @@ -230,6 +230,78 @@ export default { parser: typescriptEslintParser }, }, + { + code: ` + /** + * @template D + * @template V + */ + function identity(arg: Type): Type { + return arg; + } + `, + errors: [ + { + line: 3, + message: '@template D not in use', + }, + { + line: 4, + message: '@template V not in use', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template D + * @template V + */ + export function identity(arg: Type): Type { + return arg; + } + `, + errors: [ + { + line: 3, + message: '@template D not in use', + }, + { + line: 4, + message: '@template V not in use', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template D + * @template V + */ + export default function identity(arg: Type): Type { + return arg; + } + `, + errors: [ + { + line: 3, + message: '@template D not in use', + }, + { + line: 4, + message: '@template V not in use', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, ], valid: [ { @@ -339,5 +411,44 @@ export default { parser: typescriptEslintParser }, }, + { + code: ` + /** + * @template Type + */ + function identity(arg: Type): Type { + return arg; + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template Type + */ + export function identity(arg: Type): Type { + return arg; + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template Type + */ + export default function identity(arg: Type): Type { + return arg; + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, ], }; diff --git a/test/rules/assertions/requireTemplate.js b/test/rules/assertions/requireTemplate.js index 756771999..8ad9e530f 100644 --- a/test/rules/assertions/requireTemplate.js +++ b/test/rules/assertions/requireTemplate.js @@ -228,6 +228,63 @@ export default { parser: typescriptEslintParser }, }, + { + code: ` + /** + * + */ + function identity(arg: Type): Type { + return arg; + } + `, + errors: [ + { + line: 2, + message: 'Missing @template Type', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * + */ + export function identity(arg: Type): Type { + return arg; + } + `, + errors: [ + { + line: 2, + message: 'Missing @template Type', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * + */ + export default function identity(arg: Type): Type { + return arg; + } + `, + errors: [ + { + line: 2, + message: 'Missing @template Type', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, ], valid: [ { @@ -336,5 +393,44 @@ export default { parser: typescriptEslintParser }, }, + { + code: ` + /** + * @template Type + */ + function identity(arg: Type): Type { + return arg; + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template Type + */ + export function identity(arg: Type): Type { + return arg; + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template Type + */ + export default function identity(arg: Type): Type { + return arg; + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, ], }; From 31d32555988dca786726420246efcd1589c07316 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 28 Jul 2024 00:42:27 +0800 Subject: [PATCH 225/273] feat(`require-template`, `check-template-names`): add support `ClassDeclaration` --- .README/rules/check-template-names.md | 4 +- .README/rules/require-template.md | 4 +- docs/rules/check-template-names.md | 76 +++++++++- docs/rules/require-template.md | 72 ++++++++- src/rules/checkTemplateNames.js | 3 + src/rules/requireTemplate.js | 4 + test/rules/assertions/checkTemplateNames.js | 156 ++++++++++++++++++++ test/rules/assertions/requireTemplate.js | 136 +++++++++++++++++ 8 files changed, 447 insertions(+), 8 deletions(-) diff --git a/.README/rules/check-template-names.md b/.README/rules/check-template-names.md index 6c8b4fa3c..34aaef771 100644 --- a/.README/rules/check-template-names.md +++ b/.README/rules/check-template-names.md @@ -3,8 +3,8 @@ Checks that any `@template` names are actually used in the connected `@typedef` or type alias. -Currently checks `FunctionDeclaration`, `TSInterfaceDeclaration` or -`TSTypeAliasDeclaration` such as: +Currently checks `ClassDeclaration`, `FunctionDeclaration`, +`TSInterfaceDeclaration` or `TSTypeAliasDeclaration` such as: ```ts /** diff --git a/.README/rules/require-template.md b/.README/rules/require-template.md index e8ca45777..f90cad4c8 100644 --- a/.README/rules/require-template.md +++ b/.README/rules/require-template.md @@ -3,8 +3,8 @@ Checks to see that `@template` tags are present for any detected type parameters. -Currently checks `FunctionDeclaration`, `TSInterfaceDeclaration` or -`TSTypeAliasDeclaration` such as: +Currently checks `ClassDeclaration`, `FunctionDeclaration`, +`TSInterfaceDeclaration` or `TSTypeAliasDeclaration` such as: ```ts export type Pairs = [D, V | undefined]; diff --git a/docs/rules/check-template-names.md b/docs/rules/check-template-names.md index 091ae178e..a990ca890 100644 --- a/docs/rules/check-template-names.md +++ b/docs/rules/check-template-names.md @@ -5,8 +5,8 @@ Checks that any `@template` names are actually used in the connected `@typedef` or type alias. -Currently checks `FunctionDeclaration`, `TSInterfaceDeclaration` or -`TSTypeAliasDeclaration` such as: +Currently checks `ClassDeclaration`, `FunctionDeclaration`, +`TSInterfaceDeclaration` or `TSTypeAliasDeclaration` such as: ```ts /** @@ -150,6 +150,46 @@ export default function identity(arg: Type): Type { return arg; } // Message: @template D not in use + +/** + * @template D + * @template V + */ +class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; +} +// Message: @template D not in use + +/** + * @template D + * @template V + */ +export class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; +} +// Message: @template D not in use + +/** + * @template D + * @template V + */ +export default class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; +} +// Message: @template D not in use + +/** + * @template D + * @template V + */ +export default class { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; +} +// Message: @template D not in use ```` @@ -243,5 +283,37 @@ export function identity(arg: Type): Type { export default function identity(arg: Type): Type { return arg; } + +/** + * @template NumType + */ +class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; +} + +/** + * @template NumType + */ +export class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; +} + +/** + * @template NumType + */ +export default class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; +} + +/** + * @template NumType + */ +export default class { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; +} ```` diff --git a/docs/rules/require-template.md b/docs/rules/require-template.md index b9109c097..581270a5a 100644 --- a/docs/rules/require-template.md +++ b/docs/rules/require-template.md @@ -5,8 +5,8 @@ Checks to see that `@template` tags are present for any detected type parameters. -Currently checks `FunctionDeclaration`, `TSInterfaceDeclaration` or -`TSTypeAliasDeclaration` such as: +Currently checks `ClassDeclaration`, `FunctionDeclaration`, +`TSInterfaceDeclaration` or `TSTypeAliasDeclaration` such as: ```ts export type Pairs = [D, V | undefined]; @@ -163,6 +163,42 @@ export default function identity(arg: Type): Type { return arg; } // Message: Missing @template Type + +/** + * + */ +class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; +} +// Message: Missing @template NumType + +/** + * + */ +export class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; +} +// Message: Missing @template NumType + +/** + * + */ +export default class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; +} +// Message: Missing @template NumType + +/** + * + */ +export default class { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; +} +// Message: Missing @template NumType ```` @@ -255,5 +291,37 @@ export function identity(arg: Type): Type { export default function identity(arg: Type): Type { return arg; } + +/** + * @template NumType + */ +class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; +} + +/** + * @template NumType + */ +export class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; +} + +/** + * @template NumType + */ +export default class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; +} + +/** + * @template NumType + */ +export default class { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; +} ```` diff --git a/src/rules/checkTemplateNames.js b/src/rules/checkTemplateNames.js index 57ecd8107..455c97da7 100644 --- a/src/rules/checkTemplateNames.js +++ b/src/rules/checkTemplateNames.js @@ -21,6 +21,7 @@ export default iterateJsdoc(({ const usedNames = new Set(); /** * @param {import('@typescript-eslint/types').TSESTree.FunctionDeclaration| + * import('@typescript-eslint/types').TSESTree.ClassDeclaration| * import('@typescript-eslint/types').TSESTree.TSInterfaceDeclaration| * import('@typescript-eslint/types').TSESTree.TSTypeAliasDeclaration} aliasDeclaration */ @@ -52,6 +53,7 @@ export default iterateJsdoc(({ case 'ExportDefaultDeclaration': case 'ExportNamedDeclaration': switch (nde.declaration?.type) { + case 'ClassDeclaration': case 'FunctionDeclaration': case 'TSTypeAliasDeclaration': case 'TSInterfaceDeclaration': @@ -59,6 +61,7 @@ export default iterateJsdoc(({ break; } break; + case 'ClassDeclaration': case 'FunctionDeclaration': case 'TSTypeAliasDeclaration': case 'TSInterfaceDeclaration': diff --git a/src/rules/requireTemplate.js b/src/rules/requireTemplate.js index c06da7ed3..8cdf8a590 100644 --- a/src/rules/requireTemplate.js +++ b/src/rules/requireTemplate.js @@ -36,6 +36,7 @@ export default iterateJsdoc(({ /** * @param {import('@typescript-eslint/types').TSESTree.FunctionDeclaration| + * import('@typescript-eslint/types').TSESTree.ClassDeclaration| * import('@typescript-eslint/types').TSESTree.TSInterfaceDeclaration| * import('@typescript-eslint/types').TSESTree.TSTypeAliasDeclaration} aliasDeclaration */ @@ -62,6 +63,7 @@ export default iterateJsdoc(({ switch (nde.type) { case 'ExportDefaultDeclaration': switch (nde.declaration?.type) { + case 'ClassDeclaration': case 'FunctionDeclaration': case 'TSInterfaceDeclaration': checkTypeParams(nde.declaration); @@ -70,6 +72,7 @@ export default iterateJsdoc(({ break; case 'ExportNamedDeclaration': switch (nde.declaration?.type) { + case 'ClassDeclaration': case 'FunctionDeclaration': case 'TSTypeAliasDeclaration': case 'TSInterfaceDeclaration': @@ -77,6 +80,7 @@ export default iterateJsdoc(({ break; } break; + case 'ClassDeclaration': case 'FunctionDeclaration': case 'TSTypeAliasDeclaration': case 'TSInterfaceDeclaration': diff --git a/test/rules/assertions/checkTemplateNames.js b/test/rules/assertions/checkTemplateNames.js index 91471bc90..87a05a1ce 100644 --- a/test/rules/assertions/checkTemplateNames.js +++ b/test/rules/assertions/checkTemplateNames.js @@ -302,6 +302,106 @@ export default { parser: typescriptEslintParser }, }, + { + code: ` + /** + * @template D + * @template V + */ + class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; + } + `, + errors: [ + { + line: 3, + message: '@template D not in use', + }, + { + line: 4, + message: '@template V not in use', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template D + * @template V + */ + export class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; + } + `, + errors: [ + { + line: 3, + message: '@template D not in use', + }, + { + line: 4, + message: '@template V not in use', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template D + * @template V + */ + export default class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; + } + `, + errors: [ + { + line: 3, + message: '@template D not in use', + }, + { + line: 4, + message: '@template V not in use', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template D + * @template V + */ + export default class { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; + } + `, + errors: [ + { + line: 3, + message: '@template D not in use', + }, + { + line: 4, + message: '@template V not in use', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, ], valid: [ { @@ -450,5 +550,61 @@ export default { parser: typescriptEslintParser }, }, + { + code: ` + /** + * @template NumType + */ + class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template NumType + */ + export class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template NumType + */ + export default class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template NumType + */ + export default class { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, ], }; diff --git a/test/rules/assertions/requireTemplate.js b/test/rules/assertions/requireTemplate.js index 8ad9e530f..c2f713a22 100644 --- a/test/rules/assertions/requireTemplate.js +++ b/test/rules/assertions/requireTemplate.js @@ -285,6 +285,86 @@ export default { parser: typescriptEslintParser }, }, + { + code: ` + /** + * + */ + class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; + } + `, + errors: [ + { + line: 2, + message: 'Missing @template NumType', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * + */ + export class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; + } + `, + errors: [ + { + line: 2, + message: 'Missing @template NumType', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * + */ + export default class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; + } + `, + errors: [ + { + line: 2, + message: 'Missing @template NumType', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * + */ + export default class { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; + } + `, + errors: [ + { + line: 2, + message: 'Missing @template NumType', + }, + ], + languageOptions: { + parser: typescriptEslintParser + }, + }, ], valid: [ { @@ -432,5 +512,61 @@ export default { parser: typescriptEslintParser }, }, + { + code: ` + /** + * @template NumType + */ + class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template NumType + */ + export class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template NumType + */ + export default class GenericNumber { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, + { + code: ` + /** + * @template NumType + */ + export default class { + zeroValue: NumType; + add: (x: NumType, y: NumType) => NumType; + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, ], }; From 31e0a35382c5d4c847781df6c4b5d8fb371d8d3c Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 30 Jul 2024 18:44:53 +0800 Subject: [PATCH 226/273] fix: add espree as dependency; fixes #1284 --- package.json | 2 +- pnpm-lock.yaml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index bf3105c0c..b029f1cf4 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "comment-parser": "1.4.1", "debug": "^4.3.5", "escape-string-regexp": "^4.0.0", + "espree": "^10.1.0", "esquery": "^1.6.0", "parse-imports": "^2.1.1", "semver": "^7.6.3", @@ -54,7 +55,6 @@ "decamelize": "^6.0.0", "eslint": "9.7.0", "eslint-config-canonical": "~43.0.14", - "espree": "^10.1.0", "gitdown": "^4.1.1", "glob": "^10.4.2", "globals": "^15.8.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fb62eb0cc..164833dff 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,6 +23,9 @@ importers: escape-string-regexp: specifier: ^4.0.0 version: 4.0.0 + espree: + specifier: ^10.1.0 + version: 10.1.0 esquery: specifier: ^1.6.0 version: 1.6.0 @@ -147,9 +150,6 @@ importers: eslint-config-canonical: specifier: ~43.0.14 version: 43.0.14(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.9))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.9))(@types/eslint@8.56.10)(@types/node@20.14.11)(encoding@0.1.13)(eslint@9.7.0)(typescript@5.5.3) - espree: - specifier: ^10.1.0 - version: 10.1.0 gitdown: specifier: ^4.1.1 version: 4.1.1(re2@1.20.9) From 12fca71fdc7761d4affb52bf5fe4be25eddabc5b Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 31 Jul 2024 04:09:10 +0800 Subject: [PATCH 227/273] fix(`check-template-names`): check for param and returns tags; fixes #1286 --- docs/rules/check-template-names.md | 12 ++++ src/rules/checkTemplateNames.js | 80 +++++++++++++-------- test/rules/assertions/checkTemplateNames.js | 18 +++++ 3 files changed, 81 insertions(+), 29 deletions(-) diff --git a/docs/rules/check-template-names.md b/docs/rules/check-template-names.md index a990ca890..996895d03 100644 --- a/docs/rules/check-template-names.md +++ b/docs/rules/check-template-names.md @@ -315,5 +315,17 @@ export default class { zeroValue: NumType; add: (x: NumType, y: NumType) => NumType; } + +/** + * Uses the provided callback to group the given array into the keys of a map. + * Based on the array grouping proposal: https://github.com/tc39/proposal-array-grouping/ + * + * @template T + * @param {T[]} array + * @param {(value: T, index: number) => string} callbackFn + * @returns {Map} + */ +export function mapGroupBy(array, callbackFn) { +} ```` diff --git a/src/rules/checkTemplateNames.js b/src/rules/checkTemplateNames.js index 455c97da7..28b2c1801 100644 --- a/src/rules/checkTemplateNames.js +++ b/src/rules/checkTemplateNames.js @@ -19,18 +19,60 @@ export default iterateJsdoc(({ const templateTags = utils.getTags('template'); const usedNames = new Set(); + /** + * @param {string} potentialType + */ + const checkForUsedTypes = (potentialType) => { + let parsedType; + try { + parsedType = mode === 'permissive' ? + tryParseType(/** @type {string} */ (potentialType)) : + parseType(/** @type {string} */ (potentialType), mode); + } catch { + return; + } + + traverse(parsedType, (nde) => { + const { + type, + value, + } = /** @type {import('jsdoc-type-pratt-parser').NameResult} */ (nde); + if (type === 'JsdocTypeName' && (/^[A-Z]$/).test(value)) { + usedNames.add(value); + } + }); + }; + /** * @param {import('@typescript-eslint/types').TSESTree.FunctionDeclaration| * import('@typescript-eslint/types').TSESTree.ClassDeclaration| * import('@typescript-eslint/types').TSESTree.TSInterfaceDeclaration| * import('@typescript-eslint/types').TSESTree.TSTypeAliasDeclaration} aliasDeclaration + * @param {boolean} [checkParamsAndReturns] */ - const checkParameters = (aliasDeclaration) => { + const checkParameters = (aliasDeclaration, checkParamsAndReturns) => { /* c8 ignore next -- Guard */ const {params} = aliasDeclaration.typeParameters ?? {params: []}; for (const {name: {name}} of params) { usedNames.add(name); } + if (checkParamsAndReturns) { + const paramName = /** @type {string} */ (utils.getPreferredTagName({ + tagName: 'param', + })); + const paramTags = utils.getTags(paramName); + for (const paramTag of paramTags) { + checkForUsedTypes(paramTag.type); + } + + const returnsName = /** @type {string} */ (utils.getPreferredTagName({ + tagName: 'returns', + })); + const returnsTags = utils.getTags(returnsName); + for (const returnsTag of returnsTags) { + checkForUsedTypes(returnsTag.type); + } + } for (const tag of templateTags) { const {name} = tag; const names = name.split(/,\s*/); @@ -53,16 +95,20 @@ export default iterateJsdoc(({ case 'ExportDefaultDeclaration': case 'ExportNamedDeclaration': switch (nde.declaration?.type) { - case 'ClassDeclaration': case 'FunctionDeclaration': + checkParameters(nde.declaration, true); + break; + case 'ClassDeclaration': case 'TSTypeAliasDeclaration': case 'TSInterfaceDeclaration': checkParameters(nde.declaration); break; } break; - case 'ClassDeclaration': case 'FunctionDeclaration': + checkParameters(nde, true); + break; + case 'ClassDeclaration': case 'TSTypeAliasDeclaration': case 'TSInterfaceDeclaration': checkParameters(nde); @@ -76,37 +122,13 @@ export default iterateJsdoc(({ return; } - /** - * @param {string} potentialType - */ - const checkForUsedTypes = (potentialType) => { - let parsedType; - try { - parsedType = mode === 'permissive' ? - tryParseType(/** @type {string} */ (potentialType)) : - parseType(/** @type {string} */ (potentialType), mode); - } catch { - return; - } - - traverse(parsedType, (nde) => { - const { - type, - value, - } = /** @type {import('jsdoc-type-pratt-parser').NameResult} */ (nde); - if (type === 'JsdocTypeName' && (/^[A-Z]$/).test(value)) { - usedNames.add(value); - } - }); - }; - const potentialTypedefType = typedefTags[0].type; checkForUsedTypes(potentialTypedefType); - const tagName = /** @type {string} */ (utils.getPreferredTagName({ + const propertyName = /** @type {string} */ (utils.getPreferredTagName({ tagName: 'property', })); - const propertyTags = utils.getTags(tagName); + const propertyTags = utils.getTags(propertyName); for (const propertyTag of propertyTags) { checkForUsedTypes(propertyTag.type); } diff --git a/test/rules/assertions/checkTemplateNames.js b/test/rules/assertions/checkTemplateNames.js index 87a05a1ce..639448ad0 100644 --- a/test/rules/assertions/checkTemplateNames.js +++ b/test/rules/assertions/checkTemplateNames.js @@ -606,5 +606,23 @@ export default { parser: typescriptEslintParser }, }, + { + code: ` + /** + * Uses the provided callback to group the given array into the keys of a map. + * Based on the array grouping proposal: https://github.com/tc39/proposal-array-grouping/ + * + * @template T + * @param {T[]} array + * @param {(value: T, index: number) => string} callbackFn + * @returns {Map} + */ + export function mapGroupBy(array, callbackFn) { + } + `, + languageOptions: { + parser: typescriptEslintParser + }, + }, ], }; From 058018b3ad990bd998bc02e31a5466422aa82fb1 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 31 Jul 2024 07:38:24 +0800 Subject: [PATCH 228/273] feat(`check-template-names`): check callback/function tag blocks --- .README/rules/check-template-names.md | 2 +- docs/rules/check-template-names.md | 47 ++++++++++- src/rules/checkTemplateNames.js | 65 +++++++++------ test/rules/assertions/checkTemplateNames.js | 90 +++++++++++++++++++++ 4 files changed, 178 insertions(+), 26 deletions(-) diff --git a/.README/rules/check-template-names.md b/.README/rules/check-template-names.md index 34aaef771..64492c09d 100644 --- a/.README/rules/check-template-names.md +++ b/.README/rules/check-template-names.md @@ -1,7 +1,7 @@ # `check-template-names` Checks that any `@template` names are actually used in the connected -`@typedef` or type alias. +`@typedef`, `@callback`, `@function` or type structure. Currently checks `ClassDeclaration`, `FunctionDeclaration`, `TSInterfaceDeclaration` or `TSTypeAliasDeclaration` such as: diff --git a/docs/rules/check-template-names.md b/docs/rules/check-template-names.md index 996895d03..f7ce1ca02 100644 --- a/docs/rules/check-template-names.md +++ b/docs/rules/check-template-names.md @@ -3,7 +3,7 @@ # check-template-names Checks that any `@template` names are actually used in the connected -`@typedef` or type alias. +`@typedef`, `@callback`, `@function` or type structure. Currently checks `ClassDeclaration`, `FunctionDeclaration`, `TSInterfaceDeclaration` or `TSTypeAliasDeclaration` such as: @@ -190,6 +190,30 @@ export default class { add: (x: NumType, y: NumType) => NumType; } // Message: @template D not in use + +/** + * @template D + * @template V + * @callback + * @returns {[X, Y | undefined]} + */ +// Message: @template D not in use + +/** + * @template D + * @template V + * @function + * @returns {[X, Y | undefined]} + */ +// Message: @template D not in use + +/** + * @template D + * @template V + * @function + * @param {[X, Y | undefined]} someParam + */ +// Message: @template D not in use ```` @@ -327,5 +351,26 @@ export default class { */ export function mapGroupBy(array, callbackFn) { } + +/** + * @template D + * @template V + * @callback + * @returns {[D, V | undefined]} + */ + +/** + * @template D + * @template V + * @function + * @returns {[D, V | undefined]} + */ + +/** + * @template D + * @template V + * @function + * @param {[D, V | undefined]} someParam + */ ```` diff --git a/src/rules/checkTemplateNames.js b/src/rules/checkTemplateNames.js index 28b2c1801..df38316bb 100644 --- a/src/rules/checkTemplateNames.js +++ b/src/rules/checkTemplateNames.js @@ -43,6 +43,36 @@ export default iterateJsdoc(({ }); }; + const checkParamsAndReturnsTags = () => { + const paramName = /** @type {string} */ (utils.getPreferredTagName({ + tagName: 'param', + })); + const paramTags = utils.getTags(paramName); + for (const paramTag of paramTags) { + checkForUsedTypes(paramTag.type); + } + + const returnsName = /** @type {string} */ (utils.getPreferredTagName({ + tagName: 'returns', + })); + const returnsTags = utils.getTags(returnsName); + for (const returnsTag of returnsTags) { + checkForUsedTypes(returnsTag.type); + } + }; + + const checkTemplateTags = () => { + for (const tag of templateTags) { + const {name} = tag; + const names = name.split(/,\s*/); + for (const name of names) { + if (!usedNames.has(name)) { + report(`@template ${name} not in use`, null, tag); + } + } + } + }; + /** * @param {import('@typescript-eslint/types').TSESTree.FunctionDeclaration| * import('@typescript-eslint/types').TSESTree.ClassDeclaration| @@ -57,31 +87,10 @@ export default iterateJsdoc(({ usedNames.add(name); } if (checkParamsAndReturns) { - const paramName = /** @type {string} */ (utils.getPreferredTagName({ - tagName: 'param', - })); - const paramTags = utils.getTags(paramName); - for (const paramTag of paramTags) { - checkForUsedTypes(paramTag.type); - } - - const returnsName = /** @type {string} */ (utils.getPreferredTagName({ - tagName: 'returns', - })); - const returnsTags = utils.getTags(returnsName); - for (const returnsTag of returnsTags) { - checkForUsedTypes(returnsTag.type); - } - } - for (const tag of templateTags) { - const {name} = tag; - const names = name.split(/,\s*/); - for (const name of names) { - if (!usedNames.has(name)) { - report(`@template ${name} not in use`, null, tag); - } - } + checkParamsAndReturnsTags(); } + + checkTemplateTags(); }; const handleTypeAliases = () => { @@ -116,6 +125,14 @@ export default iterateJsdoc(({ } }; + const callbackTags = utils.getTags('callback'); + const functionTags = utils.getTags('function'); + if (callbackTags.length || functionTags.length) { + checkParamsAndReturnsTags(); + checkTemplateTags(); + return; + } + const typedefTags = utils.getTags('typedef'); if (!typedefTags.length || typedefTags.length >= 2) { handleTypeAliases(); diff --git a/test/rules/assertions/checkTemplateNames.js b/test/rules/assertions/checkTemplateNames.js index 639448ad0..98dc18271 100644 --- a/test/rules/assertions/checkTemplateNames.js +++ b/test/rules/assertions/checkTemplateNames.js @@ -402,6 +402,66 @@ export default { parser: typescriptEslintParser }, }, + { + code: ` + /** + * @template D + * @template V + * @callback + * @returns {[X, Y | undefined]} + */ + `, + errors: [ + { + line: 3, + message: '@template D not in use', + }, + { + line: 4, + message: '@template V not in use', + }, + ], + }, + { + code: ` + /** + * @template D + * @template V + * @function + * @returns {[X, Y | undefined]} + */ + `, + errors: [ + { + line: 3, + message: '@template D not in use', + }, + { + line: 4, + message: '@template V not in use', + }, + ], + }, + { + code: ` + /** + * @template D + * @template V + * @function + * @param {[X, Y | undefined]} someParam + */ + `, + errors: [ + { + line: 3, + message: '@template D not in use', + }, + { + line: 4, + message: '@template V not in use', + }, + ], + }, ], valid: [ { @@ -624,5 +684,35 @@ export default { parser: typescriptEslintParser }, }, + { + code: ` + /** + * @template D + * @template V + * @callback + * @returns {[D, V | undefined]} + */ + `, + }, + { + code: ` + /** + * @template D + * @template V + * @function + * @returns {[D, V | undefined]} + */ + `, + }, + { + code: ` + /** + * @template D + * @template V + * @function + * @param {[D, V | undefined]} someParam + */ + `, + }, ], }; From 116b3e8c906884f799927cf42ab29cab1cfb4e31 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 31 Jul 2024 07:58:01 +0800 Subject: [PATCH 229/273] feat(`require-template`): check callback/function tag block content --- .README/rules/require-template.md | 4 +- docs/rules/require-template.md | 35 ++++++++++++- src/rules/requireTemplate.js | 54 +++++++++++++------- test/rules/assertions/requireTemplate.js | 64 ++++++++++++++++++++++++ 4 files changed, 134 insertions(+), 23 deletions(-) diff --git a/.README/rules/require-template.md b/.README/rules/require-template.md index f90cad4c8..a76b30ef7 100644 --- a/.README/rules/require-template.md +++ b/.README/rules/require-template.md @@ -20,8 +20,8 @@ or Note that in the latter TypeScript-flavor JavaScript example, there is no way for us to firmly distinguish between `D` and `V` as type parameters or as some -other identifiers, so we use an algorithm that any single capital letters -are assumed to be templates. +other identifiers, so we use an algorithm that assumes that any single capital +letters are templates. ## Options diff --git a/docs/rules/require-template.md b/docs/rules/require-template.md index 581270a5a..df907df9d 100644 --- a/docs/rules/require-template.md +++ b/docs/rules/require-template.md @@ -22,8 +22,8 @@ or Note that in the latter TypeScript-flavor JavaScript example, there is no way for us to firmly distinguish between `D` and `V` as type parameters or as some -other identifiers, so we use an algorithm that any single capital letters -are assumed to be templates. +other identifiers, so we use an algorithm that assumes that any single capital +letters are templates. @@ -199,6 +199,18 @@ export default class { add: (x: NumType, y: NumType) => NumType; } // Message: Missing @template NumType + +/** + * @callback + * @param {[D, V | undefined]} someParam + */ +// Message: Missing @template D + +/** + * @callback + * @returns {[D, V | undefined]} + */ +// Message: Missing @template D ```` @@ -323,5 +335,24 @@ export default class { zeroValue: NumType; add: (x: NumType, y: NumType) => NumType; } + +/** + * @callback + * @template D + * @template V + * @param {[D, V | undefined]} someParam + */ + +/** + * @callback + * @template D + * @template V + * @returns {[D, V | undefined]} + */ + +/** + * @callback + * @returns {[Something | undefined]} + */ ```` diff --git a/src/rules/requireTemplate.js b/src/rules/requireTemplate.js index 8cdf8a590..7e01c247f 100644 --- a/src/rules/requireTemplate.js +++ b/src/rules/requireTemplate.js @@ -89,12 +89,6 @@ export default iterateJsdoc(({ } }; - const typedefTags = utils.getTags('typedef'); - if (!typedefTags.length || typedefTags.length >= 2) { - handleTypes(); - return; - } - const usedNameToTag = new Map(); /** @@ -124,23 +118,45 @@ export default iterateJsdoc(({ }); }; - const potentialTypedef = typedefTags[0]; - checkForUsedTypes(potentialTypedef); + /** + * @param {string[]} tagNames + */ + const checkTagsAndTemplates = (tagNames) => { + for (const tagName of tagNames) { + const preferredTagName = /** @type {string} */ (utils.getPreferredTagName({ + tagName, + })); + const matchingTags = utils.getTags(preferredTagName); + for (const matchingTag of matchingTags) { + checkForUsedTypes(matchingTag); + } + } + + // Could check against whitelist/blacklist + for (const usedName of usedNames) { + if (!templateNames.includes(usedName)) { + report(`Missing @template ${usedName}`, null, usedNameToTag.get(usedName)); + } + } + }; - const tagName = /** @type {string} */ (utils.getPreferredTagName({ - tagName: 'property', - })); - const propertyTags = utils.getTags(tagName); - for (const propertyTag of propertyTags) { - checkForUsedTypes(propertyTag); + const callbackTags = utils.getTags('callback'); + const functionTags = utils.getTags('function'); + if (callbackTags.length || functionTags.length) { + checkTagsAndTemplates(['param', 'returns']); + return; } - // Could check against whitelist/blacklist - for (const usedName of usedNames) { - if (!templateNames.includes(usedName)) { - report(`Missing @template ${usedName}`, null, usedNameToTag.get(usedName)); - } + const typedefTags = utils.getTags('typedef'); + if (!typedefTags.length || typedefTags.length >= 2) { + handleTypes(); + return; } + + const potentialTypedef = typedefTags[0]; + checkForUsedTypes(potentialTypedef); + + checkTagsAndTemplates(['property']); }, { iterateAllJsdocs: true, meta: { diff --git a/test/rules/assertions/requireTemplate.js b/test/rules/assertions/requireTemplate.js index c2f713a22..ccfb6a36c 100644 --- a/test/rules/assertions/requireTemplate.js +++ b/test/rules/assertions/requireTemplate.js @@ -365,6 +365,42 @@ export default { parser: typescriptEslintParser }, }, + { + code: ` + /** + * @callback + * @param {[D, V | undefined]} someParam + */ + `, + errors: [ + { + line: 4, + message: 'Missing @template D', + }, + { + line: 4, + message: 'Missing @template V', + }, + ], + }, + { + code: ` + /** + * @callback + * @returns {[D, V | undefined]} + */ + `, + errors: [ + { + line: 4, + message: 'Missing @template D', + }, + { + line: 4, + message: 'Missing @template V', + }, + ], + }, ], valid: [ { @@ -568,5 +604,33 @@ export default { parser: typescriptEslintParser }, }, + { + code: ` + /** + * @callback + * @template D + * @template V + * @param {[D, V | undefined]} someParam + */ + `, + }, + { + code: ` + /** + * @callback + * @template D + * @template V + * @returns {[D, V | undefined]} + */ + `, + }, + { + code: ` + /** + * @callback + * @returns {[Something | undefined]} + */ + `, + }, ], }; From 0973cafaeaf785d13fbd9a3fc421f1eaccecd3d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= Date: Mon, 5 Aug 2024 15:18:39 +0200 Subject: [PATCH 230/273] docs: use `ts` for TypeScript code blocks --- docs/rules/check-template-names.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/rules/check-template-names.md b/docs/rules/check-template-names.md index f7ce1ca02..aad3082b7 100644 --- a/docs/rules/check-template-names.md +++ b/docs/rules/check-template-names.md @@ -40,7 +40,7 @@ or The following patterns are considered problems: -````js +````ts /** * @template D * @template V @@ -224,7 +224,7 @@ export default class { The following patterns are not considered problems: -````js +````ts /** * @template D * @template V From b3c6c026dab65d67b1a536e7a942d628f704fd2d Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 5 Aug 2024 21:27:23 +0800 Subject: [PATCH 231/273] docs: update generated docs --- docs/rules/check-access.md | 4 ++-- docs/rules/check-alignment.md | 4 ++-- docs/rules/check-examples.md | 4 ++-- docs/rules/check-indentation.md | 4 ++-- docs/rules/check-line-alignment.md | 4 ++-- docs/rules/check-param-names.md | 4 ++-- docs/rules/check-property-names.md | 4 ++-- docs/rules/check-syntax.md | 4 ++-- docs/rules/check-tag-names.md | 4 ++-- docs/rules/check-types.md | 4 ++-- docs/rules/check-values.md | 4 ++-- docs/rules/convert-to-jsdoc-comments.md | 4 ++-- docs/rules/empty-tags.md | 4 ++-- docs/rules/implements-on-classes.md | 4 ++-- docs/rules/imports-as-dependencies.md | 4 ++-- docs/rules/informative-docs.md | 4 ++-- docs/rules/match-description.md | 4 ++-- docs/rules/match-name.md | 4 ++-- docs/rules/multiline-blocks.md | 4 ++-- docs/rules/no-bad-blocks.md | 4 ++-- docs/rules/no-blank-block-descriptions.md | 4 ++-- docs/rules/no-blank-blocks.md | 4 ++-- docs/rules/no-defaults.md | 4 ++-- docs/rules/no-missing-syntax.md | 4 ++-- docs/rules/no-multi-asterisks.md | 4 ++-- docs/rules/no-restricted-syntax.md | 4 ++-- docs/rules/no-types.md | 4 ++-- docs/rules/no-undefined-types.md | 4 ++-- docs/rules/require-asterisk-prefix.md | 4 ++-- docs/rules/require-description-complete-sentence.md | 4 ++-- docs/rules/require-description.md | 4 ++-- docs/rules/require-example.md | 4 ++-- docs/rules/require-file-overview.md | 4 ++-- docs/rules/require-hyphen-before-param-description.md | 4 ++-- docs/rules/require-jsdoc.md | 4 ++-- docs/rules/require-param-description.md | 4 ++-- docs/rules/require-param-name.md | 4 ++-- docs/rules/require-param-type.md | 4 ++-- docs/rules/require-param.md | 4 ++-- docs/rules/require-property-description.md | 4 ++-- docs/rules/require-property-name.md | 4 ++-- docs/rules/require-property-type.md | 4 ++-- docs/rules/require-property.md | 4 ++-- docs/rules/require-returns-check.md | 4 ++-- docs/rules/require-returns-description.md | 4 ++-- docs/rules/require-returns-type.md | 4 ++-- docs/rules/require-returns.md | 4 ++-- docs/rules/require-template.md | 4 ++-- docs/rules/require-throws.md | 4 ++-- docs/rules/require-yields-check.md | 4 ++-- docs/rules/require-yields.md | 4 ++-- docs/rules/sort-tags.md | 4 ++-- docs/rules/tag-lines.md | 4 ++-- docs/rules/text-escaping.md | 4 ++-- docs/rules/valid-types.md | 4 ++-- src/bin/generateDocs.js | 4 ++-- 56 files changed, 112 insertions(+), 112 deletions(-) diff --git a/docs/rules/check-access.md b/docs/rules/check-access.md index 83cf47314..06f58bd53 100644 --- a/docs/rules/check-access.md +++ b/docs/rules/check-access.md @@ -36,7 +36,7 @@ Also reports: The following patterns are considered problems: -````js +````ts /** * @access foo */ @@ -145,7 +145,7 @@ function quux (foo) { The following patterns are not considered problems: -````js +````ts /** * */ diff --git a/docs/rules/check-alignment.md b/docs/rules/check-alignment.md index e5345b648..22f21988a 100644 --- a/docs/rules/check-alignment.md +++ b/docs/rules/check-alignment.md @@ -32,7 +32,7 @@ Fixes alignment. The following patterns are considered problems: -````js +````ts /** * @param {Number} foo */ @@ -120,7 +120,7 @@ class Foo { The following patterns are not considered problems: -````js +````ts /** * Desc * diff --git a/docs/rules/check-examples.md b/docs/rules/check-examples.md index ce76493b1..eb4060dd6 100644 --- a/docs/rules/check-examples.md +++ b/docs/rules/check-examples.md @@ -220,7 +220,7 @@ expression-oriented rules will be used by default as well: The following patterns are considered problems: -````js +````ts /** * @example alert('hello') */ @@ -563,7 +563,7 @@ const functionName = function (paramOne, paramTwo, The following patterns are not considered problems: -````js +````ts /** * @example ```js alert('hello'); diff --git a/docs/rules/check-indentation.md b/docs/rules/check-indentation.md index 2396a14d5..77eb22083 100644 --- a/docs/rules/check-indentation.md +++ b/docs/rules/check-indentation.md @@ -72,7 +72,7 @@ report a padding issue: The following patterns are considered problems: -````js +````ts /** foo */ function quux () { @@ -188,7 +188,7 @@ function quux () { The following patterns are not considered problems: -````js +````ts /** * foo * diff --git a/docs/rules/check-line-alignment.md b/docs/rules/check-line-alignment.md index 1293f6474..283352fdc 100644 --- a/docs/rules/check-line-alignment.md +++ b/docs/rules/check-line-alignment.md @@ -97,7 +97,7 @@ Disables `wrapIndent`; existing wrap indentation is preserved without changes. The following patterns are considered problems: -````js +````ts /** * Function description. * @@ -582,7 +582,7 @@ function quux () {} The following patterns are not considered problems: -````js +````ts /** * Function description. * diff --git a/docs/rules/check-param-names.md b/docs/rules/check-param-names.md index f6b700304..10db07997 100644 --- a/docs/rules/check-param-names.md +++ b/docs/rules/check-param-names.md @@ -141,7 +141,7 @@ Whether to avoid checks for missing `@param` definitions. Defaults to `false`. C The following patterns are considered problems: -````js +````ts /** * @param Foo */ @@ -691,7 +691,7 @@ export function fn(...[type, arg]: FnArgs): void { The following patterns are not considered problems: -````js +````ts /** * */ diff --git a/docs/rules/check-property-names.md b/docs/rules/check-property-names.md index 77f97d7b8..5d8c0e94b 100644 --- a/docs/rules/check-property-names.md +++ b/docs/rules/check-property-names.md @@ -52,7 +52,7 @@ be removed even if it has a different type or description). The following patterns are considered problems: -````js +````ts /** * @typedef (SomeType) SomeTypedef * @property Foo.Bar @@ -175,7 +175,7 @@ function quux ({foo, bar}, baz) { The following patterns are not considered problems: -````js +````ts /** * */ diff --git a/docs/rules/check-syntax.md b/docs/rules/check-syntax.md index 456776538..ca1a187b1 100644 --- a/docs/rules/check-syntax.md +++ b/docs/rules/check-syntax.md @@ -36,7 +36,7 @@ rule is enforced (except under "permissive" and "closure" modes). The following patterns are considered problems: -````js +````ts /** * @param {string=} foo */ @@ -54,7 +54,7 @@ function quux (foo) { The following patterns are not considered problems: -````js +````ts /** * @param {string=} foo */ diff --git a/docs/rules/check-tag-names.md b/docs/rules/check-tag-names.md index ab45c968d..7c0cfccdb 100644 --- a/docs/rules/check-tag-names.md +++ b/docs/rules/check-tag-names.md @@ -322,7 +322,7 @@ this The following patterns are considered problems: -````js +````ts /** @type {string} */let a; // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] // Message: '@type' is redundant when using a type system. @@ -775,7 +775,7 @@ function quux () { The following patterns are not considered problems: -````js +````ts /** @default 0 */ let a; // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}] diff --git a/docs/rules/check-types.md b/docs/rules/check-types.md index 5e3224cf8..fa1e6097a 100644 --- a/docs/rules/check-types.md +++ b/docs/rules/check-types.md @@ -192,7 +192,7 @@ permitted. The following patterns are considered problems: -````js +````ts /** * @param {abc} foo */ @@ -856,7 +856,7 @@ function a () {} The following patterns are not considered problems: -````js +````ts /** * @param {number} foo * @param {Bar} bar diff --git a/docs/rules/check-values.md b/docs/rules/check-values.md index be6adf927..7a9d9694f 100644 --- a/docs/rules/check-values.md +++ b/docs/rules/check-values.md @@ -88,7 +88,7 @@ Whether to enable validation that `@variation` must be a number. Defaults to The following patterns are considered problems: -````js +````ts /** * @version */ @@ -270,7 +270,7 @@ function quux (foo) { The following patterns are not considered problems: -````js +````ts /** * @version 3.4.1 */ diff --git a/docs/rules/convert-to-jsdoc-comments.md b/docs/rules/convert-to-jsdoc-comments.md index 40b8ed738..01d87fbe1 100644 --- a/docs/rules/convert-to-jsdoc-comments.md +++ b/docs/rules/convert-to-jsdoc-comments.md @@ -100,7 +100,7 @@ Defaults to `VariableDeclarator`, `TSPropertySignature`, `PropertyDefinition`. The following patterns are considered problems: -````js +````ts // A single line comment function quux () {} // "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"enforceJsdocLineStyle":"single"}] @@ -211,7 +211,7 @@ var a = []; // Test comment The following patterns are not considered problems: -````js +````ts /** A single line comment */ function quux () {} // "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"enforceJsdocLineStyle":"single"}] diff --git a/docs/rules/empty-tags.md b/docs/rules/empty-tags.md index 123fdabd4..a827c359f 100644 --- a/docs/rules/empty-tags.md +++ b/docs/rules/empty-tags.md @@ -75,7 +75,7 @@ add them within this option. The following patterns are considered problems: -````js +````ts /** * @abstract extra text */ @@ -153,7 +153,7 @@ function quux () { The following patterns are not considered problems: -````js +````ts /** * @abstract */ diff --git a/docs/rules/implements-on-classes.md b/docs/rules/implements-on-classes.md index 4c6556ab5..45e984d85 100644 --- a/docs/rules/implements-on-classes.md +++ b/docs/rules/implements-on-classes.md @@ -55,7 +55,7 @@ section of our README for more on the expected format. The following patterns are considered problems: -````js +````ts /** * @implements {SomeClass} */ @@ -136,7 +136,7 @@ class Foo { The following patterns are not considered problems: -````js +````ts /** * @implements {SomeClass} * @class diff --git a/docs/rules/imports-as-dependencies.md b/docs/rules/imports-as-dependencies.md index f59540a73..c7fbcbc17 100644 --- a/docs/rules/imports-as-dependencies.md +++ b/docs/rules/imports-as-dependencies.md @@ -19,7 +19,7 @@ which is not listed in `dependencies` or `devDependencies`. The following patterns are considered problems: -````js +````ts /** * @type {null|import('sth').SomeApi} */ @@ -50,7 +50,7 @@ The following patterns are considered problems: The following patterns are not considered problems: -````js +````ts /** * @type {null|import('eslint').ESLint} */ diff --git a/docs/rules/informative-docs.md b/docs/rules/informative-docs.md index e90cd3309..d6268260f 100644 --- a/docs/rules/informative-docs.md +++ b/docs/rules/informative-docs.md @@ -102,7 +102,7 @@ The default `uselessWords` option is: The following patterns are considered problems: -````js +````ts /** the */ let myValue = 3; // Message: This description only repeats the name it describes. @@ -300,7 +300,7 @@ export default function packageNameFromPath(path) { The following patterns are not considered problems: -````js +````ts /** */ let myValue = 3; diff --git a/docs/rules/match-description.md b/docs/rules/match-description.md index 3f2f797a3..665e9a210 100644 --- a/docs/rules/match-description.md +++ b/docs/rules/match-description.md @@ -216,7 +216,7 @@ section of our README for more on the expected format. The following patterns are considered problems: -````js +````ts /** * foo. */ @@ -633,7 +633,7 @@ function quux () { The following patterns are not considered problems: -````js +````ts /** * */ diff --git a/docs/rules/match-name.md b/docs/rules/match-name.md index 991a8453d..8c223f7e0 100644 --- a/docs/rules/match-name.md +++ b/docs/rules/match-name.md @@ -82,7 +82,7 @@ be applied, however. The following patterns are considered problems: -````js +````ts /** * @param opt_a * @param opt_b @@ -194,7 +194,7 @@ function quux () {} The following patterns are not considered problems: -````js +````ts /** * @param opt_a * @param opt_b diff --git a/docs/rules/multiline-blocks.md b/docs/rules/multiline-blocks.md index 9bfa0a4df..7913017ef 100644 --- a/docs/rules/multiline-blocks.md +++ b/docs/rules/multiline-blocks.md @@ -128,7 +128,7 @@ cannot be reliably added after the tag either). The following patterns are considered problems: -````js +````ts /** Reported up here * because the rest is multiline */ @@ -293,7 +293,7 @@ The following patterns are considered problems: The following patterns are not considered problems: -````js +````ts /** Not reported */ /** diff --git a/docs/rules/no-bad-blocks.md b/docs/rules/no-bad-blocks.md index be4e8b702..898c8c687 100644 --- a/docs/rules/no-bad-blocks.md +++ b/docs/rules/no-bad-blocks.md @@ -57,7 +57,7 @@ apparent tag content. The following patterns are considered problems: -````js +````ts /* * @param foo */ @@ -117,7 +117,7 @@ function quux (foo) { The following patterns are not considered problems: -````js +````ts /** * @property foo */ diff --git a/docs/rules/no-blank-block-descriptions.md b/docs/rules/no-blank-block-descriptions.md index da7620282..4ed4b47cd 100644 --- a/docs/rules/no-blank-block-descriptions.md +++ b/docs/rules/no-blank-block-descriptions.md @@ -34,7 +34,7 @@ in the block description. The following patterns are considered problems: -````js +````ts /** * * @param {number} x @@ -58,7 +58,7 @@ function functionWithClearName() {} The following patterns are not considered problems: -````js +````ts /** * Non-empty description * @param {number} x diff --git a/docs/rules/no-blank-blocks.md b/docs/rules/no-blank-blocks.md index e133fdbea..c5bc6eb26 100644 --- a/docs/rules/no-blank-blocks.md +++ b/docs/rules/no-blank-blocks.md @@ -39,7 +39,7 @@ Whether or not to auto-remove the blank block. Defaults to `false`. The following patterns are considered problems: -````js +````ts /** */ // "jsdoc/no-blank-blocks": ["error"|"warn", {"enableFixer":true}] // Message: No empty blocks @@ -84,7 +84,7 @@ The following patterns are considered problems: The following patterns are not considered problems: -````js +````ts /** @tag */ /** diff --git a/docs/rules/no-defaults.md b/docs/rules/no-defaults.md index 5e240d2cd..7d0cdcdce 100644 --- a/docs/rules/no-defaults.md +++ b/docs/rules/no-defaults.md @@ -76,7 +76,7 @@ section of our README for more on the expected format. The following patterns are considered problems: -````js +````ts /** * @param {number} [foo="7"] */ @@ -160,7 +160,7 @@ const a = {}; The following patterns are not considered problems: -````js +````ts /** * @param foo */ diff --git a/docs/rules/no-missing-syntax.md b/docs/rules/no-missing-syntax.md index 6608f9a8f..4a539a132 100644 --- a/docs/rules/no-missing-syntax.md +++ b/docs/rules/no-missing-syntax.md @@ -86,7 +86,7 @@ section of our README for more on the expected format. The following patterns are considered problems: -````js +````ts /** * @implements {Bar|Foo} */ @@ -205,7 +205,7 @@ function quux () {} The following patterns are not considered problems: -````js +````ts /** * @implements {Bar|Foo} */ diff --git a/docs/rules/no-multi-asterisks.md b/docs/rules/no-multi-asterisks.md index ac48654f4..88f2e71ba 100644 --- a/docs/rules/no-multi-asterisks.md +++ b/docs/rules/no-multi-asterisks.md @@ -76,7 +76,7 @@ Prevent the likes of this: The following patterns are considered problems: -````js +````ts /** * ** @@ -182,7 +182,7 @@ The following patterns are considered problems: The following patterns are not considered problems: -````js +````ts /** * * Desc. *** diff --git a/docs/rules/no-restricted-syntax.md b/docs/rules/no-restricted-syntax.md index d8f7ec248..4544e6344 100644 --- a/docs/rules/no-restricted-syntax.md +++ b/docs/rules/no-restricted-syntax.md @@ -62,7 +62,7 @@ section of our README for more on the expected format. The following patterns are considered problems: -````js +````ts /** * */ @@ -271,7 +271,7 @@ function quux () { The following patterns are not considered problems: -````js +````ts /** * */ diff --git a/docs/rules/no-types.md b/docs/rules/no-types.md index 8d4777dd7..f5fe302d2 100644 --- a/docs/rules/no-types.md +++ b/docs/rules/no-types.md @@ -58,7 +58,7 @@ section of our README for more on the expected format. The following patterns are considered problems: -````js +````ts /** * @param {number} foo */ @@ -147,7 +147,7 @@ export interface B { The following patterns are not considered problems: -````js +````ts /** * @param foo */ diff --git a/docs/rules/no-undefined-types.md b/docs/rules/no-undefined-types.md index 6c7e55732..608a4f255 100644 --- a/docs/rules/no-undefined-types.md +++ b/docs/rules/no-undefined-types.md @@ -89,7 +89,7 @@ An option object may have the following keys: The following patterns are considered problems: -````js +````ts /** * @param {HerType} baz - Foo. */ @@ -347,7 +347,7 @@ const a = new Todo(); The following patterns are not considered problems: -````js +````ts /** * @param {string} foo - Bar. */ diff --git a/docs/rules/require-asterisk-prefix.md b/docs/rules/require-asterisk-prefix.md index 597bde3af..baf6d9eab 100644 --- a/docs/rules/require-asterisk-prefix.md +++ b/docs/rules/require-asterisk-prefix.md @@ -61,7 +61,7 @@ which applies to the main jsdoc block description. The following patterns are considered problems: -````js +````ts /** @param {Number} foo @@ -186,7 +186,7 @@ function quux (foo) { The following patterns are not considered problems: -````js +````ts /** * Desc * diff --git a/docs/rules/require-description-complete-sentence.md b/docs/rules/require-description-complete-sentence.md index 3b8461ed3..1476e0096 100644 --- a/docs/rules/require-description-complete-sentence.md +++ b/docs/rules/require-description-complete-sentence.md @@ -98,7 +98,7 @@ nouns, for example). The following patterns are considered problems: -````js +````ts /** * foo. */ @@ -438,7 +438,7 @@ function quux () {} The following patterns are not considered problems: -````js +````ts /** * @param foo - Foo. */ diff --git a/docs/rules/require-description.md b/docs/rules/require-description.md index aec75da22..0cc80713d 100644 --- a/docs/rules/require-description.md +++ b/docs/rules/require-description.md @@ -62,7 +62,7 @@ An options object may have any of the following properties: The following patterns are considered problems: -````js +````ts /** * */ @@ -360,7 +360,7 @@ this.treeViewSelection = []; The following patterns are not considered problems: -````js +````ts /** * */ diff --git a/docs/rules/require-example.md b/docs/rules/require-example.md index 62c320286..b6ff44974 100644 --- a/docs/rules/require-example.md +++ b/docs/rules/require-example.md @@ -107,7 +107,7 @@ Defaults to `true`. The following patterns are considered problems: -````js +````ts /** * */ @@ -244,7 +244,7 @@ function quux (someParam) { The following patterns are not considered problems: -````js +````ts /** * */ diff --git a/docs/rules/require-file-overview.md b/docs/rules/require-file-overview.md index 731ae22a1..ce4f028d2 100644 --- a/docs/rules/require-file-overview.md +++ b/docs/rules/require-file-overview.md @@ -98,7 +98,7 @@ will be checked, but you must use `file` on the configuration object). The following patterns are considered problems: -````js +````ts // Message: Missing @file @@ -246,7 +246,7 @@ function quux () {} The following patterns are not considered problems: -````js +````ts /** * @file */ diff --git a/docs/rules/require-hyphen-before-param-description.md b/docs/rules/require-hyphen-before-param-description.md index 033ab0617..7382eb2b7 100644 --- a/docs/rules/require-hyphen-before-param-description.md +++ b/docs/rules/require-hyphen-before-param-description.md @@ -56,7 +56,7 @@ other tags besides the `@param` tag (or the `@arg` tag if so set): The following patterns are considered problems: -````js +````ts /** * @param foo Foo. */ @@ -203,7 +203,7 @@ function quux () { The following patterns are not considered problems: -````js +````ts /** * @param foo - Foo. */ diff --git a/docs/rules/require-jsdoc.md b/docs/rules/require-jsdoc.md index fcdced178..744803d4b 100644 --- a/docs/rules/require-jsdoc.md +++ b/docs/rules/require-jsdoc.md @@ -174,7 +174,7 @@ empty string. The following patterns are considered problems: -````js +````ts /** This is comment */ export interface Foo { /** This is comment x2 */ @@ -1030,7 +1030,7 @@ export type LoginOptions = CmdOptions<{ The following patterns are not considered problems: -````js +````ts interface FooBar { fooBar: string; } diff --git a/docs/rules/require-param-description.md b/docs/rules/require-param-description.md index ec29ce3ea..05aa99de5 100644 --- a/docs/rules/require-param-description.md +++ b/docs/rules/require-param-description.md @@ -73,7 +73,7 @@ section of our README for more on the expected format. The following patterns are considered problems: -````js +````ts /** * @param foo */ @@ -174,7 +174,7 @@ function quux (foo, {bar}, baz) { The following patterns are not considered problems: -````js +````ts /** * */ diff --git a/docs/rules/require-param-name.md b/docs/rules/require-param-name.md index 86878b91d..5a3636e00 100644 --- a/docs/rules/require-param-name.md +++ b/docs/rules/require-param-name.md @@ -52,7 +52,7 @@ section of our README for more on the expected format. The following patterns are considered problems: -````js +````ts /** * @param */ @@ -110,7 +110,7 @@ function quux (foo) { The following patterns are not considered problems: -````js +````ts /** * @param foo */ diff --git a/docs/rules/require-param-type.md b/docs/rules/require-param-type.md index 2630efb57..bea206083 100644 --- a/docs/rules/require-param-type.md +++ b/docs/rules/require-param-type.md @@ -72,7 +72,7 @@ section of our README for more on the expected format. The following patterns are considered problems: -````js +````ts /** * @param foo */ @@ -171,7 +171,7 @@ function quux (foo, {bar}, baz) { The following patterns are not considered problems: -````js +````ts /** * */ diff --git a/docs/rules/require-param.md b/docs/rules/require-param.md index b6e6dcb1e..eb5eb271c 100644 --- a/docs/rules/require-param.md +++ b/docs/rules/require-param.md @@ -456,7 +456,7 @@ supplied as default values. Defaults to `false`. The following patterns are considered problems: -````js +````ts /** * */ @@ -1172,7 +1172,7 @@ class A { The following patterns are not considered problems: -````js +````ts /** * @param foo */ diff --git a/docs/rules/require-property-description.md b/docs/rules/require-property-description.md index b47a66101..9da7aa9df 100644 --- a/docs/rules/require-property-description.md +++ b/docs/rules/require-property-description.md @@ -26,7 +26,7 @@ Requires that each `@property` tag has a `description` value. The following patterns are considered problems: -````js +````ts /** * @typedef {SomeType} SomeTypedef * @property foo @@ -56,7 +56,7 @@ The following patterns are considered problems: The following patterns are not considered problems: -````js +````ts /** * @typedef {SomeType} SomeTypedef */ diff --git a/docs/rules/require-property-name.md b/docs/rules/require-property-name.md index d38230db1..a02329bd1 100644 --- a/docs/rules/require-property-name.md +++ b/docs/rules/require-property-name.md @@ -26,7 +26,7 @@ Requires that all `@property` tags have names. The following patterns are considered problems: -````js +````ts /** * @typedef {SomeType} SomeTypedef * @property @@ -55,7 +55,7 @@ The following patterns are considered problems: The following patterns are not considered problems: -````js +````ts /** * @typedef {SomeType} SomeTypedef * @property foo diff --git a/docs/rules/require-property-type.md b/docs/rules/require-property-type.md index 0206adcf9..8b3d002e3 100644 --- a/docs/rules/require-property-type.md +++ b/docs/rules/require-property-type.md @@ -26,7 +26,7 @@ Requires that each `@property` tag has a type value (within curly brackets). The following patterns are considered problems: -````js +````ts /** * @typedef {SomeType} SomeTypedef * @property foo @@ -56,7 +56,7 @@ The following patterns are considered problems: The following patterns are not considered problems: -````js +````ts /** * @typedef {SomeType} SomeTypedef */ diff --git a/docs/rules/require-property.md b/docs/rules/require-property.md index 225d553f2..6d463fbcd 100644 --- a/docs/rules/require-property.md +++ b/docs/rules/require-property.md @@ -36,7 +36,7 @@ The fixer for `require-property` will add an empty `@property`. The following patterns are considered problems: -````js +````ts /** * @typedef {object} SomeTypedef */ @@ -70,7 +70,7 @@ class Test { The following patterns are not considered problems: -````js +````ts /** * */ diff --git a/docs/rules/require-returns-check.md b/docs/rules/require-returns-check.md index 8b3f3d631..2ff2b6c19 100644 --- a/docs/rules/require-returns-check.md +++ b/docs/rules/require-returns-check.md @@ -63,7 +63,7 @@ Will also report if multiple `@returns` tags are present. The following patterns are considered problems: -````js +````ts /** * @returns */ @@ -391,7 +391,7 @@ function foo() { The following patterns are not considered problems: -````js +````ts /** * @returns Foo. */ diff --git a/docs/rules/require-returns-description.md b/docs/rules/require-returns-description.md index 97628b2c5..b42c5247a 100644 --- a/docs/rules/require-returns-description.md +++ b/docs/rules/require-returns-description.md @@ -50,7 +50,7 @@ section of our README for more on the expected format. The following patterns are considered problems: -````js +````ts /** * @returns */ @@ -117,7 +117,7 @@ function quux () { The following patterns are not considered problems: -````js +````ts /** * */ diff --git a/docs/rules/require-returns-type.md b/docs/rules/require-returns-type.md index 66077f8f7..8c081343a 100644 --- a/docs/rules/require-returns-type.md +++ b/docs/rules/require-returns-type.md @@ -48,7 +48,7 @@ section of our README for more on the expected format. The following patterns are considered problems: -````js +````ts /** * @returns */ @@ -115,7 +115,7 @@ function quux () { The following patterns are not considered problems: -````js +````ts /** * @returns {number} */ diff --git a/docs/rules/require-returns.md b/docs/rules/require-returns.md index 6e65be6ef..5d959529a 100644 --- a/docs/rules/require-returns.md +++ b/docs/rules/require-returns.md @@ -73,7 +73,7 @@ Will also report if multiple `@returns` tags are present. The following patterns are considered problems: -````js +````ts /** * */ @@ -723,7 +723,7 @@ window.quux = function quux (foo) { The following patterns are not considered problems: -````js +````ts /** * @returns Foo. */ diff --git a/docs/rules/require-template.md b/docs/rules/require-template.md index df907df9d..e968bc2cf 100644 --- a/docs/rules/require-template.md +++ b/docs/rules/require-template.md @@ -58,7 +58,7 @@ Defaults to `false`. The following patterns are considered problems: -````js +````ts /** * */ @@ -221,7 +221,7 @@ export default class { The following patterns are not considered problems: -````js +````ts /** * @template D * @template V diff --git a/docs/rules/require-throws.md b/docs/rules/require-throws.md index 20d3d9f92..d81ceba54 100644 --- a/docs/rules/require-throws.md +++ b/docs/rules/require-throws.md @@ -58,7 +58,7 @@ on why TypeScript doesn't offer such a feature. The following patterns are considered problems: -````js +````ts /** * */ @@ -249,7 +249,7 @@ function quux (foo) { The following patterns are not considered problems: -````js +````ts /** * @throws An error. */ diff --git a/docs/rules/require-yields-check.md b/docs/rules/require-yields-check.md index 243639c36..40ec26553 100644 --- a/docs/rules/require-yields-check.md +++ b/docs/rules/require-yields-check.md @@ -62,7 +62,7 @@ Will also report if multiple `@yields` tags are present. The following patterns are considered problems: -````js +````ts /** * @yields */ @@ -221,7 +221,7 @@ function * quux (foo) { The following patterns are not considered problems: -````js +````ts /** * @yields Foo. */ diff --git a/docs/rules/require-yields.md b/docs/rules/require-yields.md index b6814b432..e98c2a307 100644 --- a/docs/rules/require-yields.md +++ b/docs/rules/require-yields.md @@ -84,7 +84,7 @@ option to expect a non-standard `@next` tag. The following patterns are considered problems: -````js +````ts /** * */ @@ -486,7 +486,7 @@ function * quux () { The following patterns are not considered problems: -````js +````ts /** * @yields Foo. */ diff --git a/docs/rules/sort-tags.md b/docs/rules/sort-tags.md index d3df1deb3..d3d57486c 100644 --- a/docs/rules/sort-tags.md +++ b/docs/rules/sort-tags.md @@ -281,7 +281,7 @@ such tags. Do not use with `true` if you are using `tag-lines` and `always`. The following patterns are considered problems: -````js +````ts /** * @returns {string} * @param b @@ -529,7 +529,7 @@ function quux () {} The following patterns are not considered problems: -````js +````ts /** * @param b * @param a diff --git a/docs/rules/tag-lines.md b/docs/rules/tag-lines.md index b9c8fbd49..e201eeb7c 100644 --- a/docs/rules/tag-lines.md +++ b/docs/rules/tag-lines.md @@ -102,7 +102,7 @@ following keys: The following patterns are considered problems: -````js +````ts /** * Some description * @param {string} a @@ -315,7 +315,7 @@ The following patterns are considered problems: The following patterns are not considered problems: -````js +````ts /** * Some description * @param {string} a diff --git a/docs/rules/text-escaping.md b/docs/rules/text-escaping.md index a879f6cec..99d79ab92 100644 --- a/docs/rules/text-escaping.md +++ b/docs/rules/text-escaping.md @@ -60,7 +60,7 @@ This option escapes the first backtick (`` ` ``) in a paired sequence. The following patterns are considered problems: -````js +````ts /** * Some things to escape: and > and `test` */ @@ -127,7 +127,7 @@ The following patterns are considered problems: The following patterns are not considered problems: -````js +````ts /** * Some things to escape: <a> and > and `test` */ diff --git a/docs/rules/valid-types.md b/docs/rules/valid-types.md index 2f89e0d96..82c1b36a3 100644 --- a/docs/rules/valid-types.md +++ b/docs/rules/valid-types.md @@ -120,7 +120,7 @@ value). See the setting for more details. The following patterns are considered problems: -````js +````ts /** * @param {Array} foo */ diff --git a/src/bin/generateDocs.js b/src/bin/generateDocs.js index e66ea5764..641b7e78d 100644 --- a/src/bin/generateDocs.js +++ b/src/bin/generateDocs.js @@ -180,9 +180,9 @@ const generateDocs = async () => { } return passingFailing === 'failing' ? - 'The following patterns are considered problems:\n\n````js\n' + + 'The following patterns are considered problems:\n\n````ts\n' + ruleAssertions.invalid.join('\n\n') + '\n````\n\n' : - 'The following patterns are not considered problems:\n\n````js\n' + + 'The following patterns are not considered problems:\n\n````ts\n' + ruleAssertions.valid.join('\n\n') + '\n````\n'; }, // Allow relative paths in source for #902 but generate compiled file in From ce230a86a2ed1b8bd8bdd249beb3e75890b5cc28 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 6 Aug 2024 18:41:04 +0800 Subject: [PATCH 232/273] docs: fix URL; fixes #1293 --- src/rules/checkTemplateNames.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rules/checkTemplateNames.js b/src/rules/checkTemplateNames.js index df38316bb..27a198a55 100644 --- a/src/rules/checkTemplateNames.js +++ b/src/rules/checkTemplateNames.js @@ -164,7 +164,7 @@ export default iterateJsdoc(({ meta: { docs: { description: 'Checks that any `@template` names are actually used in the connected `@typedef` or type alias.', - url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template.md#repos-sticky-header', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-template-names.md#repos-sticky-header', }, schema: [], type: 'suggestion', From 0265923c8748b55cd2d7ed3e1f9f73cc024e2005 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 5 Aug 2024 00:06:22 +0800 Subject: [PATCH 233/273] feat(`lines-before-block`): add new rule; fixes #1209 BREAKING CHANGE: Adds new rule to recommended --- .README/README.md | 1 + .README/rules/lines-before-block.md | 37 ++++ README.md | 1 + docs/rules/lines-before-block.md | 150 +++++++++++++ src/index.js | 3 + src/rules/linesBeforeBlock.js | 101 +++++++++ test/rules/assertions/linesBeforeBlock.js | 246 ++++++++++++++++++++++ test/rules/ruleNames.json | 1 + 8 files changed, 540 insertions(+) create mode 100644 .README/rules/lines-before-block.md create mode 100644 docs/rules/lines-before-block.md create mode 100644 src/rules/linesBeforeBlock.js create mode 100644 test/rules/assertions/linesBeforeBlock.js diff --git a/.README/README.md b/.README/README.md index 31487f622..bb122ae0c 100644 --- a/.README/README.md +++ b/.README/README.md @@ -247,6 +247,7 @@ non-default-recommended fixer). |:heavy_check_mark:|:wrench:|[empty-tags](./docs/rules/empty-tags.md#readme)|Checks tags that are expected to be empty (e.g., `@abstract` or `@async`), reporting if they have content| |:heavy_check_mark:||[implements-on-classes](./docs/rules/implements-on-classes.md#readme)|Prohibits use of `@implements` on non-constructor functions (to enforce the tag only being used on classes/constructors)| |||[informative-docs](./docs/rules/informative-docs.md#readme)|Reports on JSDoc texts that serve only to restate their attached name.| +|:heavy_check_mark:||[lines-before-block](./docs/rules/lines-before-block.md#readme)|Enforces minimum number of newlines before JSDoc comment blocks| |||[match-description](./docs/rules/match-description.md#readme)|Defines customizable regular expression rules for your tag descriptions| ||:wrench:|[match-name](./docs/rules/match-name.md#readme)|Reports the name portion of a JSDoc tag if matching or not matching a given regular expression| |:heavy_check_mark:|:wrench:|[multiline-blocks](./docs/rules/multiline-blocks.md#readme)|Controls how and whether jsdoc blocks can be expressed as single or multiple line blocks| diff --git a/.README/rules/lines-before-block.md b/.README/rules/lines-before-block.md new file mode 100644 index 000000000..441cb2c80 --- /dev/null +++ b/.README/rules/lines-before-block.md @@ -0,0 +1,37 @@ +# `lines-before-block` + +This rule enforces minimum number of newlines before JSDoc comment blocks +(except at the beginning of a file). + +## Options + +### `lines` + +The minimum number of lines to require. Defaults to 1. + +### `ignoreSameLine` + +This option excludes cases where the JSDoc block occurs on the same line as a +preceding code or comment. Defaults to `true`. + +### `excludedTags` + +An array of tags whose presence in the JSDoc block will prevent the +application of the rule. Defaults to `['type']` (i.e., if `@type` is present, +lines before the block will not be added). + +||| +|---|---| +|Context|everywhere| +|Tags|N/A| +|Recommended|true| +|Settings|| +|Options|`excludedTags`, `ignoreSameLine`, `lines`| + +## Failing examples + + + +## Passing examples + + diff --git a/README.md b/README.md index a9dae4cb7..09975474a 100644 --- a/README.md +++ b/README.md @@ -277,6 +277,7 @@ non-default-recommended fixer). |:heavy_check_mark:|:wrench:|[empty-tags](./docs/rules/empty-tags.md#readme)|Checks tags that are expected to be empty (e.g., `@abstract` or `@async`), reporting if they have content| |:heavy_check_mark:||[implements-on-classes](./docs/rules/implements-on-classes.md#readme)|Prohibits use of `@implements` on non-constructor functions (to enforce the tag only being used on classes/constructors)| |||[informative-docs](./docs/rules/informative-docs.md#readme)|Reports on JSDoc texts that serve only to restate their attached name.| +|:heavy_check_mark:||[lines-before-block](./docs/rules/lines-before-block.md#readme)|Enforces minimum number of newlines before JSDoc comment blocks| |||[match-description](./docs/rules/match-description.md#readme)|Defines customizable regular expression rules for your tag descriptions| ||:wrench:|[match-name](./docs/rules/match-name.md#readme)|Reports the name portion of a JSDoc tag if matching or not matching a given regular expression| |:heavy_check_mark:|:wrench:|[multiline-blocks](./docs/rules/multiline-blocks.md#readme)|Controls how and whether jsdoc blocks can be expressed as single or multiple line blocks| diff --git a/docs/rules/lines-before-block.md b/docs/rules/lines-before-block.md new file mode 100644 index 000000000..28d1f57d1 --- /dev/null +++ b/docs/rules/lines-before-block.md @@ -0,0 +1,150 @@ + + +# lines-before-block + +This rule enforces minimum number of newlines before JSDoc comment blocks +(except at the beginning of a file). + + + +## Options + + + +### lines + +The minimum number of lines to require. Defaults to 1. + + + +### ignoreSameLine + +This option excludes cases where the JSDoc block occurs on the same line as a +preceding code or comment. Defaults to `true`. + + + +### excludedTags + +An array of tags whose presence in the JSDoc block will prevent the +application of the rule. Defaults to `['type']` (i.e., if `@type` is present, +lines before the block will not be added). + +||| +|---|---| +|Context|everywhere| +|Tags|N/A| +|Recommended|true| +|Settings|| +|Options|`excludedTags`, `ignoreSameLine`, `lines`| + + + +## Failing examples + +The following patterns are considered problems: + +````ts +someCode; +/** + * + */ +// Message: Required 1 line(s) before JSDoc block + +someCode; /** + * + */ +// "jsdoc/lines-before-block": ["error"|"warn", {"ignoreSameLine":false}] +// Message: Required 1 line(s) before JSDoc block + +someCode; /** */ +// "jsdoc/lines-before-block": ["error"|"warn", {"ignoreSameLine":false}] +// Message: Required 1 line(s) before JSDoc block + +someCode; +/** + * + */ +// "jsdoc/lines-before-block": ["error"|"warn", {"lines":2}] +// Message: Required 2 line(s) before JSDoc block + +// Some comment +/** + * + */ +// Message: Required 1 line(s) before JSDoc block + +/* Some comment */ +/** + * + */ +// Message: Required 1 line(s) before JSDoc block + +/** + * Some comment + */ +/** + * + */ +// Message: Required 1 line(s) before JSDoc block +```` + + + + + +## Passing examples + +The following patterns are not considered problems: + +````ts +/** +* +*/ + +someCode; + +/** + * + */ + +someCode; + + +/** + * + */ +// "jsdoc/lines-before-block": ["error"|"warn", {"lines":2}] + +// Some comment + +/** + * + */ + +/* Some comment */ + +/** + * + */ + +/** + * Some comment + */ + +/** + * + */ + +someCode; /** */ + +const a = { + someProp: /** @type {SomeCast} */ (someVal) +}; + +const a = /** @lends SomeClass */ { + someProp: (someVal) +}; +// "jsdoc/lines-before-block": ["error"|"warn", {"excludedTags":["lends"],"ignoreSameLine":false}] +```` + diff --git a/src/index.js b/src/index.js index b01eacd33..61c6fe76b 100644 --- a/src/index.js +++ b/src/index.js @@ -15,6 +15,7 @@ import emptyTags from './rules/emptyTags.js'; import implementsOnClasses from './rules/implementsOnClasses.js'; import importsAsDependencies from './rules/importsAsDependencies.js'; import informativeDocs from './rules/informativeDocs.js'; +import linesBeforeBlock from './rules/linesBeforeBlock.js'; import matchDescription from './rules/matchDescription.js'; import matchName from './rules/matchName.js'; import multilineBlocks from './rules/multilineBlocks.js'; @@ -92,6 +93,7 @@ const index = { 'implements-on-classes': implementsOnClasses, 'imports-as-dependencies': importsAsDependencies, 'informative-docs': informativeDocs, + 'lines-before-block': linesBeforeBlock, 'match-description': matchDescription, 'match-name': matchName, 'multiline-blocks': multilineBlocks, @@ -167,6 +169,7 @@ const createRecommendedRuleset = (warnOrError, flatName) => { 'jsdoc/implements-on-classes': warnOrError, 'jsdoc/imports-as-dependencies': 'off', 'jsdoc/informative-docs': 'off', + 'jsdoc/lines-before-block': warnOrError, 'jsdoc/match-description': 'off', 'jsdoc/match-name': 'off', 'jsdoc/multiline-blocks': warnOrError, diff --git a/src/rules/linesBeforeBlock.js b/src/rules/linesBeforeBlock.js new file mode 100644 index 000000000..086193c2a --- /dev/null +++ b/src/rules/linesBeforeBlock.js @@ -0,0 +1,101 @@ +import iterateJsdoc from '../iterateJsdoc.js'; + +export default iterateJsdoc(({ + context, + jsdocNode, + sourceCode, + report, + utils, +}) => { + const { + lines = 1, + ignoreSameLine = true, + excludedTags = ['type'] + } = context.options[0] || {}; + + if (utils.hasATag(excludedTags)) { + return; + } + + const tokensBefore = sourceCode.getTokensBefore(jsdocNode, {includeComments: true}); + const tokenBefore = tokensBefore.slice(-1)[0]; + if (!tokenBefore) { + return; + } + + if (tokenBefore.loc?.end?.line + lines >= + /** @type {number} */ + (jsdocNode.loc?.start?.line) + ) { + const startLine = jsdocNode.loc?.start?.line; + const sameLine = tokenBefore.loc?.end?.line === startLine; + + if (sameLine && ignoreSameLine) { + return; + } + + /** @type {import('eslint').Rule.ReportFixer} */ + const fix = (fixer) => { + let indent = ''; + if (sameLine) { + const spaceDiff = /** @type {number} */ (jsdocNode.loc?.start?.column) - + /** @type {number} */ (tokenBefore.loc?.end?.column); + // @ts-expect-error Should be a comment + indent = /** @type {import('estree').Comment} */ ( + jsdocNode + ).value.match(/^\*\n([ \t]*) \*/)?.[1]?.slice(spaceDiff); + if (!indent) { + /** @type {import('eslint').AST.Token|import('estree').Comment|undefined} */ + let tokenPrior = tokenBefore; + let startColumn; + while (tokenPrior && tokenPrior?.loc?.start?.line === startLine) { + startColumn = tokenPrior.loc?.start?.column; + tokenPrior = tokensBefore.pop(); + } + indent = ' '.repeat( + /* c8 ignore next */ + /** @type {number} */ (startColumn ? startColumn - 1 : 0) + ); + } + } + + return fixer.insertTextAfter( + /** @type {import('eslint').AST.Token} */ + (tokenBefore), + '\n'.repeat(lines) + + (sameLine ? '\n' + indent : '') + ); + }; + report(`Required ${lines} line(s) before JSDoc block`, fix); + } +}, { + iterateAllJsdocs: true, + meta: { + fixable: 'code', + docs: { + description: 'Enforces minimum number of newlines before JSDoc comment blocks', + url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/lines-before-block.md#repos-sticky-header', + }, + schema: [ + { + additionalProperties: false, + properties: { + excludedTags: { + type: 'array', + items: { + type: 'string' + } + }, + ignoreSameLine: { + type: 'boolean', + }, + lines: { + type: 'integer' + } + }, + type: 'object', + }, + ], + type: 'suggestion', + }, +}); diff --git a/test/rules/assertions/linesBeforeBlock.js b/test/rules/assertions/linesBeforeBlock.js new file mode 100644 index 000000000..51132b205 --- /dev/null +++ b/test/rules/assertions/linesBeforeBlock.js @@ -0,0 +1,246 @@ +export default { + invalid: [ + { + code: ` + someCode; + /** + * + */ + `, + errors: [ + { + line: 3, + message: 'Required 1 line(s) before JSDoc block', + }, + ], + output: ` + someCode; + + /** + * + */ + `, + }, + { + code: ` + someCode; /** + * + */ + `, + errors: [ + { + line: 2, + message: 'Required 1 line(s) before JSDoc block', + }, + ], + options: [ + { + ignoreSameLine: false + } + ], + output: ` + someCode; + + /** + * + */ + `, + }, + { + code: ` + someCode; /** */ + `, + errors: [ + { + line: 2, + message: 'Required 1 line(s) before JSDoc block', + }, + ], + options: [ + { + ignoreSameLine: false + } + ], + output: ` + someCode; + + /** */ + `, + }, + { + code: ` + someCode; + /** + * + */ + `, + errors: [ + { + line: 3, + message: 'Required 2 line(s) before JSDoc block', + }, + ], + options: [ + { + lines: 2, + }, + ], + output: ` + someCode; + + + /** + * + */ + `, + }, + { + code: ` + // Some comment + /** + * + */ + `, + errors: [ + { + line: 3, + message: 'Required 1 line(s) before JSDoc block', + }, + ], + output: ` + // Some comment + + /** + * + */ + `, + }, + { + code: ` + /* Some comment */ + /** + * + */ + `, + errors: [ + { + line: 3, + message: 'Required 1 line(s) before JSDoc block', + }, + ], + output: ` + /* Some comment */ + + /** + * + */ + `, + }, + { + code: ` + /** + * Some comment + */ + /** + * + */ + `, + errors: [ + { + line: 5, + message: 'Required 1 line(s) before JSDoc block', + }, + ], + output: ` + /** + * Some comment + */ + + /** + * + */ + `, + }, + ], + valid: [ + { + code: `/**\n *\n */`, + }, + { + code: ` + someCode; + + /** + * + */ + `, + }, + { + code: ` + someCode; + + + /** + * + */ + `, + options: [ + { + lines: 2, + }, + ], + }, + { + code: ` + // Some comment + + /** + * + */ + `, + }, + { + code: ` + /* Some comment */ + + /** + * + */ + `, + }, + { + code: ` + /** + * Some comment + */ + + /** + * + */ + `, + }, + { + code: ` + someCode; /** */ + `, + }, + { + code: `const a = { + someProp: /** @type {SomeCast} */ (someVal) + }; + `, + }, + { + code: `const a = /** @lends SomeClass */ { + someProp: (someVal) + }; + `, + options: [ + { + excludedTags: ['lends'], + ignoreSameLine: false + } + ] + }, + ], +}; diff --git a/test/rules/ruleNames.json b/test/rules/ruleNames.json index 1540d80bf..df037553d 100644 --- a/test/rules/ruleNames.json +++ b/test/rules/ruleNames.json @@ -16,6 +16,7 @@ "implements-on-classes", "imports-as-dependencies", "informative-docs", + "lines-before-block", "match-description", "match-name", "multiline-blocks", From 1cae2cb42938ce291c46e9526a27b4980e9e83dd Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 7 Aug 2024 20:57:10 +0800 Subject: [PATCH 234/273] fix(`lines-before-block`): remove rule from recommended BREAKING CHANGE: Have to selectively enable the `lines-before-block` rule to have it apply now. --- src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 61c6fe76b..d0a8ed4b5 100644 --- a/src/index.js +++ b/src/index.js @@ -169,7 +169,7 @@ const createRecommendedRuleset = (warnOrError, flatName) => { 'jsdoc/implements-on-classes': warnOrError, 'jsdoc/imports-as-dependencies': 'off', 'jsdoc/informative-docs': 'off', - 'jsdoc/lines-before-block': warnOrError, + 'jsdoc/lines-before-block': 'off', 'jsdoc/match-description': 'off', 'jsdoc/match-name': 'off', 'jsdoc/multiline-blocks': warnOrError, From df551374044d38b10fcc52ec9895481239d9711a Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 11 Aug 2024 11:59:38 +0800 Subject: [PATCH 235/273] fix(`no-bad-blocks`): exclude ESLint directives --- .README/rules/no-bad-blocks.md | 7 +++++-- docs/rules/no-bad-blocks.md | 9 +++++++-- src/rules/noBadBlocks.js | 10 ++++++++++ test/rules/assertions/noBadBlocks.js | 10 ++++++++++ 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/.README/rules/no-bad-blocks.md b/.README/rules/no-bad-blocks.md index c4dd6e7ea..ebbabaea7 100644 --- a/.README/rules/no-bad-blocks.md +++ b/.README/rules/no-bad-blocks.md @@ -3,11 +3,14 @@ {"gitdown": "contents", "rootId": "no-bad-blocks"} This rule checks for multi-line-style comments which fail to meet the -criteria of a jsdoc block, namely that it should begin with two and only two -asterisks, but which appear to be intended as jsdoc blocks due to the presence +criteria of a JSDoc block, namely that it should begin with two and only two +asterisks, but which appear to be intended as JSDoc blocks due to the presence of whitespace followed by whitespace or asterisks, and an at-sign (`@`) and some non-whitespace (as with a jsdoc block tag). +Exceptions are made for ESLint directive comments (which may use `@` in +rule names). + ## Fixer (TODO) diff --git a/docs/rules/no-bad-blocks.md b/docs/rules/no-bad-blocks.md index 898c8c687..409b4249b 100644 --- a/docs/rules/no-bad-blocks.md +++ b/docs/rules/no-bad-blocks.md @@ -5,11 +5,14 @@ This rule checks for multi-line-style comments which fail to meet the -criteria of a jsdoc block, namely that it should begin with two and only two -asterisks, but which appear to be intended as jsdoc blocks due to the presence +criteria of a JSDoc block, namely that it should begin with two and only two +asterisks, but which appear to be intended as JSDoc blocks due to the presence of whitespace followed by whitespace or asterisks, and an at-sign (`@`) and some non-whitespace (as with a jsdoc block tag). +Exceptions are made for ESLint directive comments (which may use `@` in +rule names). + ## Fixer @@ -170,5 +173,7 @@ function quux (foo) { } /***/ + +/* eslint-disable @stylistic/max-len */ ```` diff --git a/src/rules/noBadBlocks.js b/src/rules/noBadBlocks.js index f64de2218..abd5ee7e9 100644 --- a/src/rules/noBadBlocks.js +++ b/src/rules/noBadBlocks.js @@ -31,6 +31,16 @@ export default iterateJsdoc(({ allComments ).filter((comment) => { const commentText = sourceCode.getText(comment); + + const initialText = commentText.replace(commentRegexp, '').trimStart(); + if ([ + 'eslint' + ].some((directive) => { + return initialText.startsWith(directive); + })) { + return false; + } + let sliceIndex = 2; if (!commentRegexp.test(commentText)) { const multiline = extraAsteriskCommentRegexp.exec(commentText)?.[0]; diff --git a/test/rules/assertions/noBadBlocks.js b/test/rules/assertions/noBadBlocks.js index 06ac28c7c..41212ed92 100644 --- a/test/rules/assertions/noBadBlocks.js +++ b/test/rules/assertions/noBadBlocks.js @@ -250,5 +250,15 @@ export default { { code: '/***/', }, + { + code: '/* eslint-disable @stylistic/max-len */', + plugins: { + '@stylistic': { + rules: { + 'max-len': () => {} + } + } + }, + }, ], }; From 75528b7d174db102de855a904492cb0e2062e17b Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 13 Aug 2024 18:39:21 +0800 Subject: [PATCH 236/273] feat: update jsdoccomment, debug, devDeps.; fixes #1304 --- ...require-hyphen-before-param-description.md | 8 + package.json | 42 +- pnpm-lock.yaml | 2974 ++++++----------- src/getJsdocProcessorPlugin.js | 4 +- src/utils/hasReturnValue.js | 7 +- .../requireHyphenBeforeParamDescription.js | 18 + 6 files changed, 1145 insertions(+), 1908 deletions(-) diff --git a/docs/rules/require-hyphen-before-param-description.md b/docs/rules/require-hyphen-before-param-description.md index 7382eb2b7..67c906116 100644 --- a/docs/rules/require-hyphen-before-param-description.md +++ b/docs/rules/require-hyphen-before-param-description.md @@ -277,5 +277,13 @@ function quux () { function main(argv) { }; // "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "never"] + +/** + * @template {any} T - Arg 1 + * @template {string | number} K - Arg 2 + * @template {any} [R=(K extends keyof T ? T[K] : never)] - Arg 3 -> Errors here + * @typedef {any} Test + */ +// "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"template":"always"}}] ```` diff --git a/package.json b/package.json index b029f1cf4..dc5737166 100644 --- a/package.json +++ b/package.json @@ -5,10 +5,10 @@ "url": "http://gajus.com" }, "dependencies": { - "@es-joy/jsdoccomment": "~0.46.0", + "@es-joy/jsdoccomment": "~0.48.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", - "debug": "^4.3.5", + "debug": "^4.3.6", "escape-string-regexp": "^4.0.0", "espree": "^10.1.0", "esquery": "^1.6.0", @@ -20,31 +20,31 @@ "description": "JSDoc linting rules for ESLint.", "devDependencies": { "@babel/cli": "^7.24.8", - "@babel/core": "^7.24.9", - "@babel/eslint-parser": "^7.24.8", - "@babel/node": "^7.24.8", + "@babel/core": "^7.25.2", + "@babel/eslint-parser": "^7.25.1", + "@babel/node": "^7.25.0", "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-transform-flow-strip-types": "^7.24.7", - "@babel/preset-env": "^7.24.8", + "@babel/plugin-transform-flow-strip-types": "^7.25.2", + "@babel/preset-env": "^7.25.3", "@es-joy/escodegen": "^3.5.1", "@es-joy/jsdoc-eslint-parser": "^0.21.1", - "@hkdobrev/run-if-changed": "^0.3.1", + "@hkdobrev/run-if-changed": "^0.6.0", "@semantic-release/commit-analyzer": "^13.0.0", - "@semantic-release/github": "^10.1.0", + "@semantic-release/github": "^10.1.4", "@semantic-release/npm": "^12.0.1", - "@types/chai": "^4.3.16", + "@types/chai": "^4.3.17", "@types/debug": "^4.1.12", - "@types/eslint": "^8.56.10", + "@types/eslint": "^9.6.0", "@types/espree": "^10.1.0", "@types/esquery": "^1.5.4", "@types/estree": "^1.0.5", "@types/json-schema": "^7.0.15", "@types/lodash.defaultsdeep": "^4.6.9", "@types/mocha": "^10.0.7", - "@types/node": "^20.14.11", + "@types/node": "^22.2.0", "@types/semver": "^7.5.8", "@types/spdx-expression-parse": "^3.0.5", - "@typescript-eslint/types": "^7.16.1", + "@typescript-eslint/types": "^8.1.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^7.0.0", "babel-plugin-transform-import-meta": "^2.2.1", @@ -53,23 +53,23 @@ "chai": "^5.1.1", "cross-env": "^7.0.3", "decamelize": "^6.0.0", - "eslint": "9.7.0", - "eslint-config-canonical": "~43.0.14", + "eslint": "9.9.0", + "eslint-config-canonical": "~43.0.15", "gitdown": "^4.1.1", "glob": "^10.4.2", - "globals": "^15.8.0", - "husky": "^9.1.1", - "jsdoc-type-pratt-parser": "^4.0.0", + "globals": "^15.9.0", + "husky": "^9.1.4", + "jsdoc-type-pratt-parser": "^4.1.0", "json-schema": "^0.4.0", - "lint-staged": "^15.2.7", + "lint-staged": "^15.2.9", "lodash.defaultsdeep": "^4.6.1", - "mocha": "^10.6.0", + "mocha": "^10.7.3", "open-editor": "^5.0.0", "replace": "^1.2.2", "rimraf": "^5.0.7", "semantic-release": "^24.0.0", "typescript": "5.5.x", - "typescript-eslint": "^8.0.0-alpha.34" + "typescript-eslint": "^8.1.0" }, "engines": { "node": ">=18" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 164833dff..3f804c6fa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@es-joy/jsdoccomment': - specifier: ~0.46.0 - version: 0.46.0 + specifier: ~0.48.0 + version: 0.48.0 are-docs-informative: specifier: ^0.0.2 version: 0.0.2 @@ -18,8 +18,8 @@ importers: specifier: 1.4.1 version: 1.4.1 debug: - specifier: ^4.3.5 - version: 4.3.5(supports-color@8.1.1) + specifier: ^4.3.6 + version: 4.3.6(supports-color@8.1.1) escape-string-regexp: specifier: ^4.0.0 version: 4.0.0 @@ -44,25 +44,25 @@ importers: devDependencies: '@babel/cli': specifier: ^7.24.8 - version: 7.24.8(@babel/core@7.24.9) + version: 7.24.8(@babel/core@7.25.2) '@babel/core': - specifier: ^7.24.9 - version: 7.24.9 + specifier: ^7.25.2 + version: 7.25.2 '@babel/eslint-parser': - specifier: ^7.24.8 - version: 7.24.8(@babel/core@7.24.9)(eslint@9.7.0) + specifier: ^7.25.1 + version: 7.25.1(@babel/core@7.25.2)(eslint@9.9.0(jiti@1.17.1)) '@babel/node': - specifier: ^7.24.8 - version: 7.24.8(@babel/core@7.24.9) + specifier: ^7.25.0 + version: 7.25.0(@babel/core@7.25.2) '@babel/plugin-syntax-class-properties': specifier: ^7.12.13 - version: 7.12.13(@babel/core@7.24.9) + version: 7.12.13(@babel/core@7.25.2) '@babel/plugin-transform-flow-strip-types': - specifier: ^7.24.7 - version: 7.24.7(@babel/core@7.24.9) + specifier: ^7.25.2 + version: 7.25.2(@babel/core@7.25.2) '@babel/preset-env': - specifier: ^7.24.8 - version: 7.24.8(@babel/core@7.24.9) + specifier: ^7.25.3 + version: 7.25.3(@babel/core@7.25.2) '@es-joy/escodegen': specifier: ^3.5.1 version: 3.5.1 @@ -70,26 +70,26 @@ importers: specifier: ^0.21.1 version: 0.21.1 '@hkdobrev/run-if-changed': - specifier: ^0.3.1 - version: 0.3.1 + specifier: ^0.6.0 + version: 0.6.0(typescript@5.5.3) '@semantic-release/commit-analyzer': specifier: ^13.0.0 version: 13.0.0(semantic-release@24.0.0(typescript@5.5.3)) '@semantic-release/github': - specifier: ^10.1.0 - version: 10.1.0(semantic-release@24.0.0(typescript@5.5.3)) + specifier: ^10.1.4 + version: 10.1.4(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.5.3)) '@types/chai': - specifier: ^4.3.16 - version: 4.3.16 + specifier: ^4.3.17 + version: 4.3.17 '@types/debug': specifier: ^4.1.12 version: 4.1.12 '@types/eslint': - specifier: ^8.56.10 - version: 8.56.10 + specifier: ^9.6.0 + version: 9.6.0 '@types/espree': specifier: ^10.1.0 version: 10.1.0 @@ -109,8 +109,8 @@ importers: specifier: ^10.0.7 version: 10.0.7 '@types/node': - specifier: ^20.14.11 - version: 20.14.11 + specifier: ^22.2.0 + version: 22.2.0 '@types/semver': specifier: ^7.5.8 version: 7.5.8 @@ -118,8 +118,8 @@ importers: specifier: ^3.0.5 version: 3.0.5 '@typescript-eslint/types': - specifier: ^7.16.1 - version: 7.16.1 + specifier: ^8.1.0 + version: 8.1.0 babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 @@ -128,7 +128,7 @@ importers: version: 7.0.0 babel-plugin-transform-import-meta: specifier: ^2.2.1 - version: 2.2.1(@babel/core@7.24.9) + version: 2.2.1(@babel/core@7.25.2) c8: specifier: ^10.1.2 version: 10.1.2 @@ -145,11 +145,11 @@ importers: specifier: ^6.0.0 version: 6.0.0 eslint: - specifier: 9.7.0 - version: 9.7.0 + specifier: 9.9.0 + version: 9.9.0(jiti@1.17.1) eslint-config-canonical: - specifier: ~43.0.14 - version: 43.0.14(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.9))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.9))(@types/eslint@8.56.10)(@types/node@20.14.11)(encoding@0.1.13)(eslint@9.7.0)(typescript@5.5.3) + specifier: ~43.0.15 + version: 43.0.15(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.2))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.25.2))(@types/eslint@9.6.0)(@types/node@22.2.0)(encoding@0.1.13)(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) gitdown: specifier: ^4.1.1 version: 4.1.1(re2@1.20.9) @@ -157,26 +157,26 @@ importers: specifier: ^10.4.2 version: 10.4.2 globals: - specifier: ^15.8.0 - version: 15.8.0 + specifier: ^15.9.0 + version: 15.9.0 husky: - specifier: ^9.1.1 - version: 9.1.1 + specifier: ^9.1.4 + version: 9.1.4 jsdoc-type-pratt-parser: - specifier: ^4.0.0 - version: 4.0.0 + specifier: ^4.1.0 + version: 4.1.0 json-schema: specifier: ^0.4.0 version: 0.4.0 lint-staged: - specifier: ^15.2.7 - version: 15.2.7 + specifier: ^15.2.9 + version: 15.2.9 lodash.defaultsdeep: specifier: ^4.6.1 version: 4.6.1 mocha: - specifier: ^10.6.0 - version: 10.6.0 + specifier: ^10.7.3 + version: 10.7.3 open-editor: specifier: ^5.0.0 version: 5.0.0 @@ -193,8 +193,8 @@ importers: specifier: 5.5.x version: 5.5.3 typescript-eslint: - specifier: ^8.0.0-alpha.34 - version: 8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3) + specifier: ^8.1.0 + version: 8.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) packages: @@ -225,23 +225,23 @@ packages: resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.24.9': - resolution: {integrity: sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==} + '@babel/compat-data@7.25.2': + resolution: {integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==} engines: {node: '>=6.9.0'} - '@babel/core@7.24.9': - resolution: {integrity: sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==} + '@babel/core@7.25.2': + resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} engines: {node: '>=6.9.0'} - '@babel/eslint-parser@7.24.8': - resolution: {integrity: sha512-nYAikI4XTGokU2QX7Jx+v4rxZKhKivaQaREZjuW3mrJrbdWJ5yUfohnoUULge+zEEaKjPYNxhoRgUKktjXtbwA==} + '@babel/eslint-parser@7.25.1': + resolution: {integrity: sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - '@babel/eslint-plugin@7.24.7': - resolution: {integrity: sha512-lODNPJnM+OfcxxBvdmI2YmUeC0fBK3k9yET5O+1Eukr8d5VpO19c6ARtNheE2t2i/8XNYTzp3HeGEAAGZH3nnQ==} + '@babel/eslint-plugin@7.25.1': + resolution: {integrity: sha512-jF04YOsrCbEeQk4s+FwsuRddwBiAHooMDG9/nrV83HiYQwEuQppbXTeXyydxCoH5oEWmVBI51wHuZrcIXMkPfw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': ^7.11.0 @@ -251,8 +251,8 @@ packages: resolution: {integrity: sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==} engines: {node: '>=6.9.0'} - '@babel/generator@7.24.7': - resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} + '@babel/generator@7.25.0': + resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==} engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.24.7': @@ -263,8 +263,8 @@ packages: resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.24.8': - resolution: {integrity: sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==} + '@babel/helper-compilation-targets@7.25.2': + resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} engines: {node: '>=6.9.0'} '@babel/helper-create-class-features-plugin@7.24.7': @@ -279,6 +279,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-create-regexp-features-plugin@7.25.2': + resolution: {integrity: sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-define-polyfill-provider@0.6.1': resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} peerDependencies: @@ -300,18 +306,22 @@ packages: resolution: {integrity: sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==} engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.24.8': + resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.24.7': resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.24.7': - resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} + '@babel/helper-module-transforms@7.24.9': + resolution: {integrity: sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-module-transforms@7.24.9': - resolution: {integrity: sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==} + '@babel/helper-module-transforms@7.25.2': + resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -338,12 +348,24 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-remap-async-to-generator@7.25.0': + resolution: {integrity: sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-replace-supers@7.24.7': resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-replace-supers@7.25.0': + resolution: {integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-simple-access@7.24.7': resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} @@ -360,10 +382,6 @@ packages: resolution: {integrity: sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.7': - resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.8': resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} @@ -384,8 +402,12 @@ packages: resolution: {integrity: sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.8': - resolution: {integrity: sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==} + '@babel/helper-wrap-function@7.25.0': + resolution: {integrity: sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.25.0': + resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==} engines: {node: '>=6.9.0'} '@babel/highlight@7.24.6': @@ -396,8 +418,8 @@ packages: resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - '@babel/node@7.24.8': - resolution: {integrity: sha512-4JgQZJOVDrMCe2OwP7g4nBEvv0kbTkWYVvkEhFdq8JdEhsy9J5E5ChibbIchTrntKB62lx2I7fVTdM+Se7KVFg==} + '@babel/node@7.25.0': + resolution: {integrity: sha512-fgdlIcf1vLeZ6gUHcl799Wbk6no5tnkGi6t1gpAb1a97ZB+KCRp8Sgb7acGTjnFhOzqzcsbJ4+wzewqb6JM0tA==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: @@ -418,14 +440,25 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7': - resolution: {integrity: sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==} + '@babel/parser@7.25.3': + resolution: {integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3': + resolution: {integrity: sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0': + resolution: {integrity: sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7': - resolution: {integrity: sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==} + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0': + resolution: {integrity: sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -436,8 +469,8 @@ packages: peerDependencies: '@babel/core': ^7.13.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7': - resolution: {integrity: sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0': + resolution: {integrity: sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -562,8 +595,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.24.7': - resolution: {integrity: sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==} + '@babel/plugin-transform-async-generator-functions@7.25.0': + resolution: {integrity: sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -580,8 +613,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.24.7': - resolution: {integrity: sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==} + '@babel/plugin-transform-block-scoping@7.25.0': + resolution: {integrity: sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -598,8 +631,8 @@ packages: peerDependencies: '@babel/core': ^7.12.0 - '@babel/plugin-transform-classes@7.24.8': - resolution: {integrity: sha512-VXy91c47uujj758ud9wx+OMgheXm4qJfyhj1P18YvlrQkNOSrwsteHk+EFS3OMGfhMhpZa0A+81eE7G4QC+3CA==} + '@babel/plugin-transform-classes@7.25.0': + resolution: {integrity: sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -628,6 +661,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0': + resolution: {integrity: sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/plugin-transform-dynamic-import@7.24.7': resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==} engines: {node: '>=6.9.0'} @@ -646,8 +685,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-flow-strip-types@7.24.7': - resolution: {integrity: sha512-cjRKJ7FobOH2eakx7Ja+KpJRj8+y+/SiB3ooYm/n2UJfxu0oEaOoxOinitkJcPqv9KxS0kxTGPUaR7L2XcXDXA==} + '@babel/plugin-transform-flow-strip-types@7.25.2': + resolution: {integrity: sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -658,8 +697,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-function-name@7.24.7': - resolution: {integrity: sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==} + '@babel/plugin-transform-function-name@7.25.1': + resolution: {integrity: sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -670,8 +709,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-literals@7.24.7': - resolution: {integrity: sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==} + '@babel/plugin-transform-literals@7.25.2': + resolution: {integrity: sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -700,8 +739,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.24.7': - resolution: {integrity: sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==} + '@babel/plugin-transform-modules-systemjs@7.25.0': + resolution: {integrity: sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -856,8 +895,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.24.8': - resolution: {integrity: sha512-vObvMZB6hNWuDxhSaEPTKCwcqkAIuDtE+bQGn4XMXne1DSLzFVY8Vmj1bm+mUQXYNN8NmaQEO+r8MMbzPr1jBQ==} + '@babel/preset-env@7.25.3': + resolution: {integrity: sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -892,26 +931,30 @@ packages: resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.24.7': - resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} + '@babel/template@7.25.0': + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} '@babel/traverse@7.24.8': resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.24.6': - resolution: {integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==} + '@babel/traverse@7.25.3': + resolution: {integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.24.7': - resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} + '@babel/types@7.24.6': + resolution: {integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==} engines: {node: '>=6.9.0'} '@babel/types@7.24.9': resolution: {integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==} engines: {node: '>=6.9.0'} + '@babel/types@7.25.2': + resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} + engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -940,22 +983,22 @@ packages: resolution: {integrity: sha512-C3Axuq1xd/9VqFZpW4YAzOx5O9q/LP46uIQy/iNDpHG3fmPa6TBtvfglMCs3RBiBxAIi0Go97r8+jvTt55XMyQ==} engines: {node: '>=16'} + '@es-joy/jsdoccomment@0.48.0': + resolution: {integrity: sha512-G6QUWIcC+KvSwXNsJyDTHvqUdNoAVJPPgkc3+Uk4WBKqZvoXhlvazOgm9aL0HwihJLQf0l+tOE2UFzXBqCqgDw==} + engines: {node: '>=16'} + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.10.0': - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.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/config-array@0.17.0': - resolution: {integrity: sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA==} + '@eslint/config-array@0.17.1': + resolution: {integrity: sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/eslintrc@2.1.4': @@ -970,8 +1013,8 @@ packages: resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@9.7.0': - resolution: {integrity: sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==} + '@eslint/js@9.9.0': + resolution: {integrity: sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': @@ -1074,8 +1117,9 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@hkdobrev/run-if-changed@0.3.1': - resolution: {integrity: sha512-kxu18zdSoTwYpTuwIw4Zsc/cWa+1c/HayXA290TSD97WKBzodntiqm6pPCoXhGDZu2F6/yg5VChJNSjrfMiTSA==} + '@hkdobrev/run-if-changed@0.6.0': + resolution: {integrity: sha512-5lHMQMi49m46YwHSR8ELzH5RBPoOvf48/98RJecRxRq0Cp1OY9uKr1jtwOezw24g7JidsGX//QOOJ+z68sI+Bg==} + engines: {node: '>=18 <23'} hasBin: true '@humanwhocodes/config-array@0.11.13': @@ -1243,9 +1287,6 @@ packages: '@repeaterjs/repeater@3.0.5': resolution: {integrity: sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA==} - '@rtsao/scc@1.1.0': - resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} @@ -1259,8 +1300,8 @@ packages: resolution: {integrity: sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==} engines: {node: '>=18'} - '@semantic-release/github@10.1.0': - resolution: {integrity: sha512-g4RHBaCWJjGcEy95TeTdajlmUoP5jAaF5trGkFXHKsT/VpCwawhZbNW66+sUr0c2CIAdfpCxxmK+E7GyWBWJDw==} + '@semantic-release/github@10.1.4': + resolution: {integrity: sha512-dg+JTNp1XHazwAx9HgIuVewStfpv5g7QqwBF09aZVqwVkdTXw4agR/nhWSD0yxDbsx0YCeJTcjUOj92gf8/0Jw==} engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=20.1.0' @@ -1289,14 +1330,14 @@ packages: resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} engines: {node: '>=18'} - '@types/chai@4.3.16': - resolution: {integrity: sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ==} + '@types/chai@4.3.17': + resolution: {integrity: sha512-zmZ21EWzR71B4Sscphjief5djsLre50M6lI622OSySTmn9DB3j+C3kWroHfBQWXbOBwbgg/M8CG/hUxDLIloow==} '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - '@types/eslint@8.56.10': - resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} + '@types/eslint@9.6.0': + resolution: {integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==} '@types/espree@10.1.0': resolution: {integrity: sha512-uPQZdoUWWMuO6WS8/dwX1stZH/vOBa/wAniGnYEFI0IuU9RmLx6PLmo+VGfNOlbRc5I7hBsQc8H0zcdVI37kxg==} @@ -1328,8 +1369,8 @@ packages: '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/node@20.14.11': - resolution: {integrity: sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==} + '@types/node@22.2.0': + resolution: {integrity: sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1343,8 +1384,8 @@ packages: '@types/ws@8.5.10': resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} - '@typescript-eslint/eslint-plugin@7.16.1': - resolution: {integrity: sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A==} + '@typescript-eslint/eslint-plugin@7.18.0': + resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -1354,8 +1395,8 @@ packages: typescript: optional: true - '@typescript-eslint/eslint-plugin@8.0.0-alpha.34': - resolution: {integrity: sha512-qPLMqSlyZCHFSvsqIUV/QZ0ufxhOJhutvBEpi4KppixRZgrI6ZJw2M9EgqMRGraA5lGghwymVdxmcaCp4QuFPQ==} + '@typescript-eslint/eslint-plugin@8.1.0': + resolution: {integrity: sha512-LlNBaHFCEBPHyD4pZXb35mzjGkuGKXU5eeCA1SxvHfiRES0E82dOounfVpL4DCqYvJEKab0bZIA0gCRpdLKkCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -1381,8 +1422,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@7.16.1': - resolution: {integrity: sha512-u+1Qx86jfGQ5i4JjK33/FnawZRpsLxRnKzGE6EABZ40KxVT/vWsiZFEBBHjFOljmmV3MBYOHEKi0Jm9hbAOClA==} + '@typescript-eslint/parser@7.18.0': + resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1391,8 +1432,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.0.0-alpha.34': - resolution: {integrity: sha512-jtBWP09o/RrVsLhDwoxUHtvJURZ7RaO3Ia9OnkC6Jjsdn23tKwoEtjLbB94ATr6BU44R3JVbRJn1SCueCmECYw==} + '@typescript-eslint/parser@8.1.0': + resolution: {integrity: sha512-U7iTAtGgJk6DPX9wIWPPOlt1gO57097G06gIcl0N0EEnNw8RGD62c+2/DiP/zL7KrkqnnqF7gtFGR7YgzPllTA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1413,20 +1454,20 @@ packages: resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/scope-manager@7.14.1': - resolution: {integrity: sha512-gPrFSsoYcsffYXTOZ+hT7fyJr95rdVe4kGVX1ps/dJ+DfmlnjFN/GcMxXcVkeHDKqsq6uAcVaQaIi3cFffmAbA==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@7.16.1': resolution: {integrity: sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.0.0-alpha.34': - resolution: {integrity: sha512-IpeT8JnV1Uo5lG/GTYe/SRJRcz1rBaCNma5cS5R8c4NkBIiIeE+R9Vy8ZEPkGImTfBp9BUNU6w+8lSQf0Z6tKw==} + '@typescript-eslint/scope-manager@7.18.0': + resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/scope-manager@8.1.0': + resolution: {integrity: sha512-DsuOZQji687sQUjm4N6c9xABJa7fjvfIdjqpSIIVOgaENf2jFXiM9hIBZOL3hb6DHK9Nvd2d7zZnoMLf9e0OtQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@7.16.1': - resolution: {integrity: sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA==} + '@typescript-eslint/type-utils@7.18.0': + resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1435,8 +1476,8 @@ packages: typescript: optional: true - '@typescript-eslint/type-utils@8.0.0-alpha.34': - resolution: {integrity: sha512-VmsfGVQ9UV1gs+LQkA9W9Nf7rSwY9KzB7WZUXwx56Ynlwjyt+999Z4Rrh2kPuDCPHTsO+GJDqeYyOYOEeXi9Bw==} + '@typescript-eslint/type-utils@8.1.0': + resolution: {integrity: sha512-oLYvTxljVvsMnldfl6jIKxTaU7ok7km0KDrwOt1RHYu6nxlhN3TIx8k5Q52L6wR33nOwDgM7VwW1fT1qMNfFIA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1456,16 +1497,16 @@ packages: resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/types@7.14.1': - resolution: {integrity: sha512-mL7zNEOQybo5R3AavY+Am7KLv8BorIv7HCYS5rKoNZKQD9tsfGUpO4KdAn3sSUvTiS4PQkr2+K0KJbxj8H9NDg==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@7.16.1': resolution: {integrity: sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.0.0-alpha.34': - resolution: {integrity: sha512-9d2pLf/htOVVX/VNQgRt23z5kCOznsiAVt1TllCiMT1xic0W8yKr2FT6sJHYIUl1qDjHE7t/P6CQpNFvyOfbxA==} + '@typescript-eslint/types@7.18.0': + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/types@8.1.0': + resolution: {integrity: sha512-q2/Bxa0gMOu/2/AKALI0tCKbG2zppccnRIRCW6BaaTlRVaPKft4oVYPp7WOPpcnsgbr0qROAVCVKCvIQ0tbWog==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@5.62.0': @@ -1495,8 +1536,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@7.14.1': - resolution: {integrity: sha512-k5d0VuxViE2ulIO6FbxxSZaxqDVUyMbXcidC8rHvii0I56XZPv8cq+EhMns+d/EVIL41sMXqRbK3D10Oza1bbA==} + '@typescript-eslint/typescript-estree@7.16.1': + resolution: {integrity: sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -1504,8 +1545,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@7.16.1': - resolution: {integrity: sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==} + '@typescript-eslint/typescript-estree@7.18.0': + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -1513,8 +1554,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.0.0-alpha.34': - resolution: {integrity: sha512-1ZAffOto9HpStxKCVpKkemYRUC4fznLEaj9fZyIYcppC/hdNNgZaiC0ONRUQQtdlPgdeH8BKoiWo6bGRemlxUw==} + '@typescript-eslint/typescript-estree@8.1.0': + resolution: {integrity: sha512-NTHhmufocEkMiAord/g++gWKb0Fr34e9AExBRdqgWdVBaKoei2dIyYKD9Q0jBnvfbEA5zaf8plUFMUH6kQ0vGg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1534,20 +1575,20 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 - '@typescript-eslint/utils@7.14.1': - resolution: {integrity: sha512-CMmVVELns3nak3cpJhZosDkm63n+DwBlDX8g0k4QUa9BMnF+lH2lr3d130M1Zt1xxmB3LLk3NV7KQCq86ZBBhQ==} + '@typescript-eslint/utils@7.16.1': + resolution: {integrity: sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@7.16.1': - resolution: {integrity: sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==} + '@typescript-eslint/utils@7.18.0': + resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.0.0-alpha.34': - resolution: {integrity: sha512-gHiHW96wCi3yllubUOswdWyCS/D5IRytTw9rPyumWJGD9qPh47MZAxtKp86Qdt1sbg+BJkYb8cCUMX9dwlVZzA==} + '@typescript-eslint/utils@8.1.0': + resolution: {integrity: sha512-ypRueFNKTIFwqPeJBfeIpxZ895PQhNyH4YID6js0UoBImWYoSjBsahUn9KMiJXh94uOjVBgHD9AmkyPsPnFwJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1564,16 +1605,16 @@ packages: resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/visitor-keys@7.14.1': - resolution: {integrity: sha512-Crb+F75U1JAEtBeQGxSKwI60hZmmzaqA3z9sYsVm8X7W5cwLEm5bRe0/uXS6+MR/y8CVpKSR/ontIAIEPFcEkA==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@7.16.1': resolution: {integrity: sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.0.0-alpha.34': - resolution: {integrity: sha512-Zs84EZx55fusxi4+6bzdZyNLy6nN8snh7HOcgs1jiRkqmf0qo+cgPjb7mGA1RgE1m60FQYgesj7je9KBE0HfSA==} + '@typescript-eslint/visitor-keys@7.18.0': + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/visitor-keys@8.1.0': + resolution: {integrity: sha512-ba0lNI19awqZ5ZNKh6wCModMwoZs457StTebQ0q1NP58zSi2F6MOZRXwfKZy+jB78JNJ/WH8GSh2IQNzXX8Nag==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.2.0': @@ -1638,6 +1679,10 @@ packages: resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} engines: {node: '>=14.16'} + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -1681,18 +1726,6 @@ packages: aria-query@5.1.3: resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} - arr-diff@4.0.0: - resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} - engines: {node: '>=0.10.0'} - - arr-flatten@1.1.0: - resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} - engines: {node: '>=0.10.0'} - - arr-union@3.1.0: - resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} - engines: {node: '>=0.10.0'} - array-buffer-byte-length@1.0.1: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} @@ -1708,10 +1741,6 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - array-unique@0.3.2: - resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} - engines: {node: '>=0.10.0'} - array.prototype.findlast@1.2.5: resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} engines: {node: '>= 0.4'} @@ -1728,9 +1757,6 @@ packages: resolution: {integrity: sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==} engines: {node: '>= 0.4'} - array.prototype.toreversed@1.1.2: - resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} - array.prototype.tosorted@1.1.4: resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} engines: {node: '>= 0.4'} @@ -1761,10 +1787,6 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} - assign-symbols@1.0.0: - resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} - engines: {node: '>=0.10.0'} - ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} @@ -1775,11 +1797,6 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - atob@2.1.2: - resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} - engines: {node: '>= 4.5.0'} - hasBin: true - available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -1827,10 +1844,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - base@0.11.2: - resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} - engines: {node: '>=0.10.0'} - bcrypt-pbkdf@1.0.2: resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} @@ -1859,10 +1872,6 @@ packages: brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - braces@2.3.2: - resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} - engines: {node: '>=0.10.0'} - braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -1874,11 +1883,6 @@ packages: browser-stdout@1.3.1: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - browserslist@4.23.2: resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -1913,26 +1917,10 @@ packages: resolution: {integrity: sha512-g4Uf2CFZPaxtJKre6qr4zqLDOOPU7bNVhWjlNhvzc51xaTOx2noMOLhfFkTAqwtrAZAKQUuDfyjitzilpA8WsQ==} engines: {node: ^16.14.0 || >=18.0.0} - cache-base@1.0.1: - resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} - engines: {node: '>=0.10.0'} - call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} - caller-callsite@2.0.0: - resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} - engines: {node: '>=4'} - - caller-path@2.0.0: - resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==} - engines: {node: '>=4'} - - callsites@2.0.0: - resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==} - engines: {node: '>=4'} - callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -1949,9 +1937,6 @@ packages: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} - caniuse-lite@1.0.30001606: - resolution: {integrity: sha512-LPbwnW4vfpJId225pwjZJOgX1m9sGfbw/RKJvw/t0QhYOOaTXHvkjVGFGPpvwEzufrjvTlsULnVTxdy4/6cqkg==} - caniuse-lite@1.0.30001642: resolution: {integrity: sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA==} @@ -1997,10 +1982,6 @@ packages: resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} engines: {node: '>=8'} - class-utils@0.3.6: - resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} - engines: {node: '>=0.10.0'} - clean-regexp@1.0.0: resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} engines: {node: '>=4'} @@ -2013,9 +1994,9 @@ packages: resolution: {integrity: sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==} engines: {node: '>=14.16'} - cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} cli-highlight@2.1.11: resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} @@ -2048,10 +2029,6 @@ packages: resolution: {integrity: sha512-ujdnoq2Kxb8s3ItNBtnYeXdm07FcU0u8ARAT1lQ2YdMwQC+cdiXX8KoqMVuglztILivceTtp4ivqGSmEmhBUJw==} engines: {node: '>=12'} - collection-visit@1.0.0: - resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} - engines: {node: '>=0.10.0'} - color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -2076,9 +2053,6 @@ packages: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - commander@6.2.1: resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} engines: {node: '>= 6'} @@ -2093,9 +2067,6 @@ packages: compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} - component-emitter@1.3.1: - resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} - concat-map@0.0.1: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} @@ -2130,10 +2101,6 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - copy-descriptor@0.1.1: - resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} - engines: {node: '>=0.10.0'} - core-js-compat@3.37.1: resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} @@ -2149,10 +2116,6 @@ packages: core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - cosmiconfig@5.2.1: - resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==} - engines: {node: '>=4'} - cosmiconfig@8.0.0: resolution: {integrity: sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==} engines: {node: '>=14'} @@ -2175,10 +2138,6 @@ packages: engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} hasBin: true - cross-spawn@6.0.5: - resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} - engines: {node: '>=4.8'} - cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -2219,14 +2178,6 @@ packages: resolution: {integrity: sha512-m1h/xFi5eqcByMT7AGBt0BCygIifVyUw6CtEh1NpS/x0yeyS709+nCY5ByK255J/5hiRb9O/8dx6mmx3t6qSIQ==} engines: {node: '>=4'} - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -2235,8 +2186,8 @@ packages: supports-color: optional: true - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -2256,10 +2207,6 @@ packages: resolution: {integrity: sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - decode-uri-component@0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} - engines: {node: '>=0.10'} - deep-eql@5.0.2: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} @@ -2295,18 +2242,6 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - define-property@0.2.5: - resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} - engines: {node: '>=0.10.0'} - - define-property@1.0.0: - resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} - engines: {node: '>=0.10.0'} - - define-property@2.0.2: - resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} - engines: {node: '>=0.10.0'} - delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -2359,9 +2294,6 @@ packages: ecc-jsbn@0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} - electron-to-chromium@1.4.729: - resolution: {integrity: sha512-bx7+5Saea/qu14kmPTDHQxkp2UnziG3iajUQu3BxFvCOnpAJdDbMV4rSl+EqFDkkpNNVUFlR1kDfpL59xfy1HA==} - electron-to-chromium@1.4.830: resolution: {integrity: sha512-TrPKKH20HeN0J1LHzsYLs2qwXrp8TF4nHdu4sq61ozGbzMpWhI7iIOPYPPkxeq1azMT9PZ8enPFcftbs/Npcjg==} @@ -2380,9 +2312,6 @@ packages: encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - enhance-visitors@1.0.0: resolution: {integrity: sha512-+29eJLiUixTEDRaZ35Vu8jP3gPLNcQQkQkOQjLp2X+6cZGGPDD/uasbFzvLsJKnGZnvmyZ0srxudwOtskHeIDA==} engines: {node: '>=4.0.0'} @@ -2409,6 +2338,10 @@ packages: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} @@ -2496,8 +2429,8 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-config-canonical@43.0.14: - resolution: {integrity: sha512-Iz5WImwzrplJEoUCpLe/mX345ZhwA9YGSIYFn+m1nn8TMtfJsttPq42lGSXnsInz2GLC2wPNP3FS7GWCIGHtzQ==} + eslint-config-canonical@43.0.15: + resolution: {integrity: sha512-/Rek+A89EOB9FyiO8QUi2oz5NXwZjFds2VQhvYBrXKyvldnxtNrFuCKuN6A9tPkW6pmRgGwzA0YNzXfhMBJstg==} engines: {node: '>=16.0.0'} peerDependencies: eslint: ^8.30.0 @@ -2549,8 +2482,8 @@ packages: resolution: {integrity: sha512-kSCe4N2tJKjQqhKTQKtbq/2H4XPyhB3XNieMeSjB85x62AjjDFnfNWtGzZ+0S8pnVBqAS08gdGSoYBcFljoHcw==} engines: {node: '>=18.0.0'} - eslint-plugin-cypress@3.3.0: - resolution: {integrity: sha512-HPHMPzYBIshzJM8wqgKSKHG2p/8R0Gbg4Pb3tcdC9WrmkuqxiKxSKbjunUrajhV5l7gCIFrh1P7C7GuBqH6YuQ==} + eslint-plugin-cypress@3.5.0: + resolution: {integrity: sha512-JZQ6XnBTNI8h1B9M7wJSFzc48SYbh7VMMKaNTQOFa3BQlnmXPrVc4PKen8R+fpv6VleiPeej6VxloGb42zdRvw==} peerDependencies: eslint: '>=7' @@ -2580,8 +2513,8 @@ packages: peerDependencies: eslint: '>=3' - eslint-plugin-import-x@3.0.1: - resolution: {integrity: sha512-jzQgJuE4ssxwNi0aMBkOL8whd4eHb0Z/uFWsk8uEoYB7xwTkAptSKojLzRswxgf/1bhH6QgcLjgabUBQqluBIg==} + eslint-plugin-import-x@3.1.0: + resolution: {integrity: sha512-/UbPA+bYY7nIxcjL3kpcDY3UNdoLHFhyBFzHox2M0ypcUoueTn6woZUUmzzi5et/dXChksasYYFeKE2wshOrhg==} engines: {node: '>=16'} peerDependencies: eslint: ^8.56.0 || ^9.0.0-0 @@ -2599,8 +2532,8 @@ packages: jest: optional: true - eslint-plugin-jsdoc@48.7.0: - resolution: {integrity: sha512-5oiVf7Y+ZxGYQTlLq81X72n+S+hjvS/u0upAdbpPEeaIZILK3MKN8lm/6QqKioBjm/qZ0B5XpMQUtc2fUkqXAg==} + eslint-plugin-jsdoc@48.11.0: + resolution: {integrity: sha512-d12JHJDPNo7IFwTOAItCeJY1hcqoIxE0lHA8infQByLilQ9xkqrRa6laWCnsuCrf+8rUnvxXY1XuTbibRBNylA==} engines: {node: '>=18'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 @@ -2623,8 +2556,8 @@ packages: peerDependencies: eslint: '>=9.0.0' - eslint-plugin-mocha@10.4.3: - resolution: {integrity: sha512-emc4TVjq5Ht0/upR+psftuz6IBG5q279p+1dSRDeHf+NS9aaerBi3lXKo1SEzwC29hFIW21gO89CEWSvRsi8IQ==} + eslint-plugin-mocha@10.5.0: + resolution: {integrity: sha512-F2ALmQVPT1GoP27O1JTZGrV9Pqg8k79OeIuvw63UxMtQKREZtmkK1NFgkZQ2TW7L2JSSFKHFPTtHu5z8R9QNRw==} engines: {node: '>=14.0.0'} peerDependencies: eslint: '>=7.0.0' @@ -2633,14 +2566,14 @@ packages: resolution: {integrity: sha512-69NpBr68U6pmXL+y+KHl/64PwRarceC3/sCNUVxRbe0gPI32SIw8AtdpkqNiJYCa2yMd4lRrkrnU09Yio7KVzA==} engines: {node: '>=0.10.0'} - eslint-plugin-n@17.9.0: - resolution: {integrity: sha512-CPSaXDXdrT4nsrOrO4mT4VB6FMUkoySRkHWuuJJHVqsIEjIeZgMY1H7AzSwPbDScikBmLN82KeM1u7ixV7PzGg==} + eslint-plugin-n@17.10.2: + resolution: {integrity: sha512-e+s4eAf5NtJaxPhTNu3qMO0Iz40WANS93w9LQgYcvuljgvDmWi/a3rh+OrNyMHeng6aOWGJO0rCg5lH4zi8yTw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' - eslint-plugin-prettier@5.1.3: - resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} + eslint-plugin-prettier@5.2.1: + resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -2653,9 +2586,9 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-promise@6.4.0: - resolution: {integrity: sha512-/KWWRaD3fGkVCZsdR0RU53PSthFmoHVhZl+y9+6DqeDLSikLdlUVpVEAmI6iCRR5QyOjBYBqHZV/bdv4DJ4Gtw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-plugin-promise@7.1.0: + resolution: {integrity: sha512-8trNmPxdAy3W620WKDpaS65NlM5yAumod6XeC4LOb+jxlkG4IVcp68c6dXY2ev+uT4U1PtG57YDV6EGAXN0GbQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 @@ -2665,11 +2598,11 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react@7.34.4: - resolution: {integrity: sha512-Np+jo9bUwJNxCsT12pXtrGhJgT3T44T1sHhn1Ssr42XFn8TES0267wPGo5nNrMHi8qkyimDAX2BUmkf9pSaVzA==} + eslint-plugin-react@7.35.0: + resolution: {integrity: sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==} engines: {node: '>=4'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 eslint-plugin-regexp@2.6.0: resolution: {integrity: sha512-FCL851+kislsTEQEMioAlpDuK5+E5vs0hi1bF8cFlPlHcEjeRhuAzEsGikXRreE+0j4WhW2uO54MqTjXtYOi3A==} @@ -2690,8 +2623,8 @@ packages: eslint: ^7 || ^8 typescript: ^3 || ^4 || ^5 - eslint-plugin-unicorn@54.0.0: - resolution: {integrity: sha512-XxYLRiYtAWiAjPv6z4JREby1TAE2byBC7wlh0V4vWDCpccOSU1KovWV//jqPXF6bq3WKxqX9rdjoRQ1EhdmNdQ==} + eslint-plugin-unicorn@55.0.0: + resolution: {integrity: sha512-n3AKiVpY2/uDcGrS3+QsYDkjPfaOrNrsfQxU9nt5nitd9KuvVXrfAvgCO9DYPSfap+Gqjw9EOrXIsBp5tlHZjA==} engines: {node: '>=18.18'} peerDependencies: eslint: '>=8.56.0' @@ -2760,10 +2693,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true - eslint@9.7.0: - resolution: {integrity: sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw==} + eslint@9.9.0: + resolution: {integrity: sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true espree@10.1.0: resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} @@ -2804,10 +2742,6 @@ packages: eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - execa@1.0.0: - resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} - engines: {node: '>=6'} - execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} @@ -2820,28 +2754,12 @@ packages: resolution: {integrity: sha512-l6JFbqnHEadBoVAVpN5dl2yCyfX28WoBAGaoQcNmLLSedOxTxcn2Qa83s8I/PA5i56vWru2OHOtrwF7Om2vqlg==} engines: {node: ^18.19.0 || >=20.5.0} - expand-brackets@2.1.4: - resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} - engines: {node: '>=0.10.0'} - exponential-backoff@3.1.1: resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} - extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - - extend-shallow@3.0.2: - resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} - engines: {node: '>=0.10.0'} - extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - extglob@2.0.4: - resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} - engines: {node: '>=0.10.0'} - extract-files@11.0.0: resolution: {integrity: sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==} engines: {node: ^12.20 || >= 14.13} @@ -2902,10 +2820,6 @@ packages: resolution: {integrity: sha512-ryBwPIIeErmxgPnm6cbESAzXjuEFubs+yKYLBZvg3CaiNcmkJChoOGcBSrZ6IwkMwPABwPpVXE6IlNdGJJrvEg==} engines: {node: '>= 10.4.0'} - fill-range@4.0.0: - resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} - engines: {node: '>=0.10.0'} - fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -2956,10 +2870,6 @@ packages: for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - for-in@1.0.2: - resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} - engines: {node: '>=0.10.0'} - foreground-child@3.1.1: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} @@ -2971,10 +2881,6 @@ packages: resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} engines: {node: '>= 0.12'} - fragment-cache@0.2.1: - resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} - engines: {node: '>=0.10.0'} - from2@2.3.0: resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} @@ -3046,10 +2952,6 @@ packages: resolution: {integrity: sha512-7oKuKzAGKj0ag+eWZwcGw2fjiZ78tXnXQoBgY0aU7ZOxTu4bB7hSuQSDgtKy978EDH062P5FmD2EWiDpQS9K9Q==} engines: {node: '>=0.10.0'} - get-stream@4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} - engines: {node: '>=6'} - get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -3070,9 +2972,6 @@ packages: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} - get-tsconfig@4.7.2: - resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} - get-tsconfig@4.7.6: resolution: {integrity: sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==} @@ -3080,10 +2979,6 @@ packages: resolution: {integrity: sha512-qHO+QmPiI1bEw0Y/m+WMAAx/UoEEXLZwEx0DVaKMtlHNrKbMeV960LryIpd+E2Ykb9XkVHmVtpbCsmul3GhR0g==} engines: {node: '>=16'} - get-value@2.0.6: - resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} - engines: {node: '>=0.10.0'} - getpass@0.1.7: resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} @@ -3141,8 +3036,8 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.8.0: - resolution: {integrity: sha512-VZAJ4cewHTExBWDHR6yptdIBlx9YSSZuwojj9Nt5mBRXQzrKakDsVKQ1J63sklLvzAJm0X5+RpO4i3Y2hcOnFw==} + globals@15.9.0: + resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==} engines: {node: '>=18'} globalthis@1.0.3: @@ -3235,26 +3130,6 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - has-value@0.3.1: - resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} - engines: {node: '>=0.10.0'} - - has-value@1.0.0: - resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} - engines: {node: '>=0.10.0'} - - has-values@0.1.4: - resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} - engines: {node: '>=0.10.0'} - - has-values@1.0.0: - resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} - engines: {node: '>=0.10.0'} - - hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} - engines: {node: '>= 0.4'} - hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -3310,8 +3185,8 @@ packages: resolution: {integrity: sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==} engines: {node: '>=18.18.0'} - husky@9.1.1: - resolution: {integrity: sha512-fCqlqLXcBnXa/TJXmT93/A36tJsjdJkibQ1MuIiFyCCYUlpYpIaj2mv1w+3KR6Rzu1IC3slFTje5f6DUp2A2rg==} + husky@9.1.4: + resolution: {integrity: sha512-bho94YyReb4JV7LYWRWxZ/xr6TtOTt8cMfmQ39MQYJ7f/YE268s3GdghGwi+y4zAeqewE5zYLvuhV0M0ijsDEA==} engines: {node: '>=18'} hasBin: true @@ -3323,10 +3198,6 @@ packages: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} - import-fresh@2.0.0: - resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} - engines: {node: '>=4'} - import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -3387,10 +3258,6 @@ packages: ip@2.0.1: resolution: {integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==} - is-accessor-descriptor@1.0.1: - resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} - engines: {node: '>= 0.10'} - is-arguments@1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} @@ -3417,9 +3284,6 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} - is-buffer@1.1.6: - resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} - is-builtin-module@3.2.1: resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} engines: {node: '>=6'} @@ -3431,10 +3295,6 @@ packages: is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - is-data-descriptor@1.0.1: - resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} - engines: {node: '>= 0.4'} - is-data-view@1.0.1: resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} engines: {node: '>= 0.4'} @@ -3443,31 +3303,11 @@ packages: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} - is-descriptor@0.1.7: - resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} - engines: {node: '>= 0.4'} - - is-descriptor@1.0.3: - resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} - engines: {node: '>= 0.4'} - - is-directory@0.3.1: - resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} - engines: {node: '>=0.10.0'} - is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true - is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - - is-extendable@1.0.1: - resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} - engines: {node: '>=0.10.0'} - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -3524,10 +3364,6 @@ packages: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} - is-number@3.0.0: - resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} - engines: {node: '>=0.10.0'} - is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -3573,10 +3409,6 @@ packages: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} - is-stream@1.1.0: - resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} - engines: {node: '>=0.10.0'} - is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3617,10 +3449,6 @@ packages: is-weakset@2.0.2: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} - is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - is-wsl@3.1.0: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} @@ -3638,10 +3466,6 @@ packages: resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} engines: {node: '>=16'} - isobject@2.1.0: - resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} - engines: {node: '>=0.10.0'} - isobject@3.0.1: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} @@ -3715,6 +3539,10 @@ packages: resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} engines: {node: '>=12.0.0'} + jsdoc-type-pratt-parser@4.1.0: + resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} + engines: {node: '>=12.0.0'} + jsdom@6.5.1: resolution: {integrity: sha512-KeCN3yqR+MmjAZDnVZgIaL2tP9BxSFlsYZw9Z+zy64+jJzHc1m8ruccb83Qe8AG0xKUjpo2kxEGFCMtiF4MmAg==} @@ -3780,14 +3608,6 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - kind-of@3.2.2: - resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} - engines: {node: '>=0.10.0'} - - kind-of@4.0.0: - resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} - engines: {node: '>=0.10.0'} - kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -3807,8 +3627,8 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} engines: {node: '>=14'} line-column-path@3.0.0: @@ -3818,13 +3638,13 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lint-staged@15.2.7: - resolution: {integrity: sha512-+FdVbbCZ+yoh7E/RosSdqKJyUM2OEjTciH0TFNkawKgvFp1zbGlEC39RADg+xKBG1R4mhoH2j85myBQZ5wR+lw==} + lint-staged@15.2.9: + resolution: {integrity: sha512-BZAt8Lk3sEnxw7tfxM7jeZlPRuT4M68O0/CwZhhaw6eeWu0Lz5eERE3m386InivXB64fp/mDID452h48tvKlRQ==} engines: {node: '>=18.12.0'} hasBin: true - listr2@8.2.1: - resolution: {integrity: sha512-irTfvpib/rNiD637xeevjO2l3Z5loZmuaRi0L0YE5LfijwVY96oyVn0DFD3o/teAok7nfobMG1THvvcHh/BP6g==} + listr2@8.2.4: + resolution: {integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==} engines: {node: '>=18.0.0'} load-json-file@4.0.0: @@ -3890,8 +3710,8 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} - log-update@6.0.0: - resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} engines: {node: '>=18'} loose-envify@1.4.0: @@ -3924,14 +3744,6 @@ packages: resolution: {integrity: sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==} engines: {node: ^16.14.0 || >=18.0.0} - map-cache@0.2.2: - resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} - engines: {node: '>=0.10.0'} - - map-visit@1.0.0: - resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} - engines: {node: '>=0.10.0'} - markdown-contents@1.0.11: resolution: {integrity: sha512-6o8It0JhmoN398ATp8zOWHAniTB3/tEXUVTCP00gTqwZNc465DIoHTTaspyEkaov93QLhrqirxizJ29E/i8/0Q==} @@ -3974,10 +3786,6 @@ packages: micro-spelling-correcter@1.1.1: resolution: {integrity: sha512-lkJ3Rj/mtjlRcHk6YyCbvZhyWTOzdBvTHsxMmZSk5jxN1YyVSQ+JETAom55mdzfcyDrY/49Z7UCW760BK30crg==} - micromatch@3.1.10: - resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} - engines: {node: '>=0.10.0'} - micromatch@4.0.7: resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} @@ -3995,14 +3803,14 @@ packages: engines: {node: '>=16'} hasBin: true - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} @@ -4029,6 +3837,10 @@ packages: resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -4068,26 +3880,19 @@ packages: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} - mixin-deep@1.3.2: - resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} - engines: {node: '>=0.10.0'} - mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} hasBin: true - mocha@10.6.0: - resolution: {integrity: sha512-hxjt4+EEB0SA0ZDygSS015t65lJw/I2yRCS3Ae+SJ5FrbzrXgfYwJr96f0OvIXdj7h4lv/vLCrH3rkiuizFSvw==} + mocha@10.7.3: + resolution: {integrity: sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A==} engines: {node: '>= 14.0.0'} hasBin: true moment@2.30.1: resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -4100,10 +3905,6 @@ packages: nan@2.18.0: resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==} - nanomatch@1.2.13: - resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} - engines: {node: '>=0.10.0'} - natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} @@ -4120,9 +3921,6 @@ packages: nerf-dart@1.0.0: resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} - nice-try@1.0.5: - resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} - node-emoji@2.1.3: resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} engines: {node: '>=18'} @@ -4171,24 +3969,10 @@ packages: resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==} engines: {node: '>=14.16'} - npm-path@2.0.4: - resolution: {integrity: sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==} - engines: {node: '>=0.8'} - hasBin: true - - npm-run-path@2.0.2: - resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} - engines: {node: '>=4'} - npm-run-path@5.2.0: resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - npm-which@3.0.1: - resolution: {integrity: sha512-CM8vMpeFQ7MAPin0U3wzDhSGV0hMHNwHU0wjo402IVizPDrs45jSfSuoC+wThevY88LQti8VvaAnqYAeVy3I1A==} - engines: {node: '>=4.2.0'} - hasBin: true - npm@10.5.1: resolution: {integrity: sha512-RozZuGuWbbhDM2sRhOSLIRb3DLyof6TREi0TW5b3xUEBropDhDqEHv0iAjA1zsIwXKgfIkR8GvQMd4oeKKg9eQ==} engines: {node: ^18.17.0 || >=20.5.0} @@ -4280,10 +4064,6 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-copy@0.1.0: - resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} - engines: {node: '>=0.10.0'} - object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} @@ -4295,10 +4075,6 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - object-visit@1.0.1: - resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} - engines: {node: '>=0.10.0'} - object.assign@4.1.5: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} @@ -4315,10 +4091,6 @@ packages: resolution: {integrity: sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==} engines: {node: '>= 0.8'} - object.pick@1.3.0: - resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} - engines: {node: '>=0.10.0'} - object.values@1.2.0: resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} @@ -4326,14 +4098,14 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + open-editor@5.0.0: resolution: {integrity: sha512-fRHi4my03WQSbWfqChs9AdFfSp6SLalB3zadfwfYIojoKanLDBfv2uAdiZCfzdvom7TBdlXu2UeiiydBc56/EQ==} engines: {node: '>=18'} @@ -4358,10 +4130,6 @@ packages: resolution: {integrity: sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==} engines: {node: '>=18'} - p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - p-is-promise@3.0.0: resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} engines: {node: '>=8'} @@ -4457,10 +4225,6 @@ packages: parse5@6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - pascalcase@0.1.1: - resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} - engines: {node: '>=0.10.0'} - path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} @@ -4473,10 +4237,6 @@ packages: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} - engines: {node: '>=4'} - path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -4550,10 +4310,6 @@ packages: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} - posix-character-classes@0.1.1: - resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} - engines: {node: '>=0.10.0'} - possible-typed-array-names@1.0.0: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} @@ -4603,9 +4359,6 @@ packages: psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - punycode@1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} @@ -4701,10 +4454,6 @@ packages: regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - regex-not@1.0.2: - resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} - engines: {node: '>=0.10.0'} - regexp-ast-analysis@0.7.1: resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -4736,14 +4485,6 @@ packages: remove-trailing-separator@1.1.0: resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} - repeat-element@1.1.4: - resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} - engines: {node: '>=0.10.0'} - - repeat-string@1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} - replace@1.2.2: resolution: {integrity: sha512-C4EDifm22XZM2b2JOYe6Mhn+lBsLBAvLbK8drfUQLTfD1KYl/n3VaW/CDju0Ny4w3xTtegBpg8YNSpFJPUDSjA==} engines: {node: '>= 6'} @@ -4769,10 +4510,6 @@ packages: resolution: {integrity: sha512-LBnkqsDE7BZKvqylbmn7lTIVdpx4K/QCduRATpO5R+wtPmky/a8pN1bO2D6wXppn1497AJF9mNjqAXr6bdl9jg==} engines: {node: '>=0.10.5'} - resolve-from@3.0.0: - resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} - engines: {node: '>=4'} - resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -4784,10 +4521,6 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve-url@0.2.1: - resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} - deprecated: https://github.com/lydell/resolve-url#deprecated - resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true @@ -4796,13 +4529,9 @@ packages: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true - restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - ret@0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} @@ -4812,8 +4541,8 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rfdc@1.3.1: - resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} @@ -4850,9 +4579,6 @@ packages: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} - safe-regex@1.1.0: - resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} - safe-stable-stringify@2.4.3: resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} engines: {node: '>=10'} @@ -4907,26 +4633,14 @@ packages: resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} - set-value@2.0.1: - resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} - engines: {node: '>=0.10.0'} - shallow-clone@3.0.1: resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} engines: {node: '>=8'} - shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} - shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} - shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} - shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} @@ -4935,9 +4649,6 @@ packages: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} @@ -4980,18 +4691,6 @@ packages: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - snapdragon-node@2.1.1: - resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} - engines: {node: '>=0.10.0'} - - snapdragon-util@3.0.1: - resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} - engines: {node: '>=0.10.0'} - - snapdragon@0.8.2: - resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} - engines: {node: '>=0.10.0'} - socks-proxy-agent@8.0.2: resolution: {integrity: sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==} engines: {node: '>= 14'} @@ -5000,21 +4699,9 @@ packages: resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} - source-map-resolve@0.5.3: - resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} - deprecated: See https://github.com/lydell/source-map-resolve#deprecated - source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - source-map-url@0.4.1: - resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} - deprecated: See https://github.com/lydell/source-map-url#deprecated - - source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} - source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} @@ -5041,10 +4728,6 @@ packages: spdx-license-ids@3.0.16: resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} - split-string@3.1.0: - resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} - engines: {node: '>=0.10.0'} - split2@1.0.0: resolution: {integrity: sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==} @@ -5066,10 +4749,6 @@ packages: stack-trace@0.0.10: resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} - static-extend@0.1.2: - resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} - engines: {node: '>=0.10.0'} - stop-iteration-iterator@1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} engines: {node: '>= 0.4'} @@ -5081,10 +4760,6 @@ packages: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} - string-argv@0.1.2: - resolution: {integrity: sha512-mBqPGEOMNJKXRo7z0keX0wlAhbBAjilUdPW13nN0PecVryZxdHIeM7TqbsSUA7VYuS00HGC6mojP7DlQzfa9ZA==} - engines: {node: '>=0.6.19'} - string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} @@ -5146,10 +4821,6 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - strip-eof@1.0.0: - resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} - engines: {node: '>=0.10.0'} - strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} @@ -5205,10 +4876,6 @@ packages: resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==} engines: {node: '>=12.20'} - synckit@0.8.8: - resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} - engines: {node: ^14.18.0 || >=16.0.0} - synckit@0.9.1: resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} engines: {node: ^14.18.0 || >=16.0.0} @@ -5262,22 +4929,10 @@ packages: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} - to-object-path@0.3.0: - resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} - engines: {node: '>=0.10.0'} - - to-regex-range@2.1.1: - resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} - engines: {node: '>=0.10.0'} - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - to-regex@3.0.2: - resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} - engines: {node: '>=0.10.0'} - tough-cookie@2.5.0: resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} engines: {node: '>=0.8'} @@ -5380,8 +5035,8 @@ packages: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} - typescript-eslint@8.0.0-alpha.34: - resolution: {integrity: sha512-Y8d1Q72RyygrV4bmbMXT21hPzNYyZIC+RzRftKvt5OFAMlfVNehre2qBVPwvljFu86AXMNe4FDMFhHvhZtOa6w==} + typescript-eslint@8.1.0: + resolution: {integrity: sha512-prB2U3jXPJLpo1iVLN338Lvolh6OrcCZO+9Yv6AR+tvegPPptYCDBIHiEEUdqRi8gAv2bXNKfMUrgAd2ejn/ow==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -5402,8 +5057,8 @@ 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.13.0: + resolution: {integrity: sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==} unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} @@ -5429,10 +5084,6 @@ packages: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} - union-value@1.0.1: - resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} - engines: {node: '>=0.10.0'} - unique-filename@3.0.0: resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -5456,16 +5107,6 @@ packages: resolution: {integrity: sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==} engines: {node: '>=0.10.0'} - unset-value@1.0.0: - resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} - engines: {node: '>=0.10.0'} - - update-browserslist-db@1.0.13: - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - update-browserslist-db@1.1.0: resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} hasBin: true @@ -5475,10 +5116,6 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - urix@0.1.0: - resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} - deprecated: Please see https://github.com/lydell/urix#deprecated - url-join@5.0.0: resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -5498,10 +5135,6 @@ packages: urlpattern-polyfill@8.0.2: resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} - use@3.1.1: - resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} - engines: {node: '>=0.10.0'} - util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -5565,10 +5198,6 @@ packages: resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -5668,14 +5297,15 @@ packages: engines: {node: '>= 14'} hasBin: true + yaml@2.5.0: + resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==} + engines: {node: '>= 14'} + hasBin: true + yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} - yargs-parser@20.2.4: - resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} - engines: {node: '>=10'} - yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -5723,9 +5353,9 @@ snapshots: transitivePeerDependencies: - encoding - '@babel/cli@7.24.8(@babel/core@7.24.9)': + '@babel/cli@7.24.8(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@jridgewell/trace-mapping': 0.3.25 commander: 6.2.1 convert-source-map: 2.0.0 @@ -5747,48 +5377,48 @@ snapshots: '@babel/highlight': 7.24.7 picocolors: 1.0.0 - '@babel/compat-data@7.24.9': {} + '@babel/compat-data@7.25.2': {} - '@babel/core@7.24.9': + '@babel/core@7.25.2': dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.10 - '@babel/helper-compilation-targets': 7.24.8 - '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) - '@babel/helpers': 7.24.8 - '@babel/parser': 7.24.8 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/generator': 7.25.0 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helpers': 7.25.0 + '@babel/parser': 7.25.3 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 convert-source-map: 2.0.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/eslint-parser@7.24.8(@babel/core@7.24.9)(eslint@8.56.0)': + '@babel/eslint-parser@7.25.1(@babel/core@7.25.2)(eslint@8.56.0)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 eslint: 8.56.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 - '@babel/eslint-parser@7.24.8(@babel/core@7.24.9)(eslint@9.7.0)': + '@babel/eslint-parser@7.25.1(@babel/core@7.25.2)(eslint@9.9.0(jiti@1.17.1))': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) eslint-visitor-keys: 2.1.0 semver: 6.3.1 - '@babel/eslint-plugin@7.24.7(@babel/eslint-parser@7.24.8(@babel/core@7.24.9)(eslint@9.7.0))(eslint@9.7.0)': + '@babel/eslint-plugin@7.25.1(@babel/eslint-parser@7.25.1(@babel/core@7.25.2)(eslint@9.9.0(jiti@1.17.1)))(eslint@9.9.0(jiti@1.17.1))': dependencies: - '@babel/eslint-parser': 7.24.8(@babel/core@7.24.9)(eslint@9.7.0) - eslint: 9.7.0 + '@babel/eslint-parser': 7.25.1(@babel/core@7.25.2)(eslint@9.9.0(jiti@1.17.1)) + eslint: 9.9.0(jiti@1.17.1) eslint-rule-composer: 0.3.0 '@babel/generator@7.24.10': @@ -5798,60 +5428,67 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - '@babel/generator@7.24.7': + '@babel/generator@7.25.0': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.25.2 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 '@babel/helper-annotate-as-pure@7.24.7': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 transitivePeerDependencies: - supports-color - '@babel/helper-compilation-targets@7.24.8': + '@babel/helper-compilation-targets@7.25.2': dependencies: - '@babel/compat-data': 7.24.9 + '@babel/compat-data': 7.25.2 '@babel/helper-validator-option': 7.24.8 browserslist: 4.23.2 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.24.9)': + '@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-function-name': 7.24.7 '@babel/helper-member-expression-to-functions': 7.24.7 '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.9) + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.25.2) '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 '@babel/helper-split-export-declaration': 7.24.7 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.24.7(@babel/core@7.24.9)': + '@babel/helper-create-regexp-features-plugin@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + regexpu-core: 5.3.2 + semver: 6.3.1 + + '@babel/helper-create-regexp-features-plugin@7.25.2(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 regexpu-core: 5.3.2 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.9)': + '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-compilation-targets': 7.24.8 + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -5872,21 +5509,28 @@ snapshots: '@babel/helper-member-expression-to-functions@7.24.7': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.24.7': + '@babel/helper-member-expression-to-functions@7.24.8': dependencies: - '@babel/traverse': 7.24.8 + '@babel/traverse': 7.25.3 '@babel/types': 7.24.9 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.9)': + '@babel/helper-module-imports@7.24.7': dependencies: - '@babel/core': 7.24.9 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.24.9(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 @@ -5895,20 +5539,19 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.24.9(@babel/core@7.24.9)': + '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-environment-visitor': 7.24.7 + '@babel/core': 7.25.2 '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.3 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.24.7': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 '@babel/helper-plugin-utils@7.22.5': {} @@ -5916,35 +5559,53 @@ snapshots: '@babel/helper-plugin-utils@7.24.8': {} - '@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.24.9)': + '@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-wrap-function': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.9)': + '@babel/helper-remap-async-to-generator@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-wrap-function': 7.25.0 + '@babel/traverse': 7.25.3 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-member-expression-to-functions': 7.24.7 '@babel/helper-optimise-call-expression': 7.24.7 transitivePeerDependencies: - supports-color + '@babel/helper-replace-supers@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/traverse': 7.25.3 + transitivePeerDependencies: + - supports-color + '@babel/helper-simple-access@7.24.7': dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.24.7': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 transitivePeerDependencies: - supports-color @@ -5954,8 +5615,6 @@ snapshots: '@babel/helper-string-parser@7.24.6': {} - '@babel/helper-string-parser@7.24.7': {} - '@babel/helper-string-parser@7.24.8': {} '@babel/helper-validator-identifier@7.24.6': {} @@ -5968,15 +5627,23 @@ snapshots: dependencies: '@babel/helper-function-name': 7.24.7 '@babel/template': 7.24.7 - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 transitivePeerDependencies: - supports-color - '@babel/helpers@7.24.8': + '@babel/helper-wrap-function@7.25.0': dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.9 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 + transitivePeerDependencies: + - supports-color + + '@babel/helpers@7.25.0': + dependencies: + '@babel/template': 7.25.0 + '@babel/types': 7.25.2 '@babel/highlight@7.24.6': dependencies: @@ -5992,10 +5659,10 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.0.0 - '@babel/node@7.24.8(@babel/core@7.24.9)': + '@babel/node@7.25.0(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/register': 7.24.6(@babel/core@7.24.9) + '@babel/core': 7.25.2 + '@babel/register': 7.24.6(@babel/core@7.25.2) commander: 6.2.1 core-js: 3.37.1 node-environment-flags: 1.0.6 @@ -6008,580 +5675,601 @@ snapshots: '@babel/parser@7.24.7': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 '@babel/parser@7.24.8': dependencies: '@babel/types': 7.24.9 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7(@babel/core@7.24.9)': + '@babel/parser@7.25.3': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-environment-visitor': 7.24.7 + '@babel/types': 7.25.2 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/traverse': 7.25.3 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.24.9) + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-environment-visitor': 7.24.7 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/traverse': 7.25.3 + transitivePeerDependencies: + - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.9)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.9)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.9)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.9)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.9)': + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.9)': + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.9)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.9)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.9)': + '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.9)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.9)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.9)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.9)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.9)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.9)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.9)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.9)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.9)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-async-generator-functions@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-async-generator-functions@7.25.0(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-environment-visitor': 7.24.7 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.9) + '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) + '@babel/traverse': 7.25.3 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-module-imports': 7.24.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.9) + '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.25.2) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-block-scoping@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.9) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.24.8(@babel/core@7.24.9)': + '@babel/plugin-transform-classes@7.25.0(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-compilation-targets': 7.24.8 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 + '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.9) - '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) + '@babel/traverse': 7.25.3 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/template': 7.24.7 - '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.24.9)': + '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) + + '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-flow-strip-types@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-flow-strip-types@7.25.2(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.24.9) + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-function-name@7.25.1(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-compilation-targets': 7.24.8 - '@babel/helper-function-name': 7.24.7 + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/traverse': 7.25.3 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-literals@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-literals@7.25.2(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.9) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.9) + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.24.9)': + '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-simple-access': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-modules-systemjs@7.25.0(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.9) + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.3 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.9) + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.9) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-compilation-targets': 7.24.8 + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.9) + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.25.2) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.24.9)': + '@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.9) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.9)': + '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-module-imports': 7.24.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.9) - '@babel/types': 7.24.9 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.25.2) + '@babel/types': 7.25.2 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 regenerator-transform: 0.15.2 - '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-spread@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-spread@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.24.9)': + '@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/preset-env@7.24.8(@babel/core@7.24.9)': + '@babel/preset-env@7.25.3(@babel/core@7.25.2)': dependencies: - '@babel/compat-data': 7.24.9 - '@babel/core': 7.24.9 - '@babel/helper-compilation-targets': 7.24.8 + '@babel/compat-data': 7.25.2 + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.9) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.9) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.9) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.9) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.9) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.9) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.9) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.9) - '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-async-generator-functions': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-block-scoping': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-classes': 7.24.8(@babel/core@7.24.9) - '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.24.9) - '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-function-name': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-literals': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.24.9) - '@babel/plugin-transform-modules-systemjs': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.24.9) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.24.9) - '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.24.9) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.9) - babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.9) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.9) - babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.9) + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.3(@babel/core@7.25.2) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.25.2) + '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-async-generator-functions': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-classes': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.25.2) + '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-literals': 7.25.2(@babel/core@7.25.2) + '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-modules-systemjs': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.25.2) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.25.2) + babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.25.2) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.25.2) + babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.25.2) core-js-compat: 3.37.1 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.9)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 esutils: 2.0.3 - '@babel/register@7.24.6(@babel/core@7.24.9)': + '@babel/register@7.24.6(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -6611,20 +6299,11 @@ snapshots: '@babel/parser': 7.24.8 '@babel/types': 7.24.9 - '@babel/traverse@7.24.7': + '@babel/template@7.25.0': dependencies: '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 - debug: 4.3.5(supports-color@8.1.1) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@babel/parser': 7.25.3 + '@babel/types': 7.25.2 '@babel/traverse@7.24.8': dependencies: @@ -6636,7 +6315,19 @@ snapshots: '@babel/helper-split-export-declaration': 7.24.7 '@babel/parser': 7.24.8 '@babel/types': 7.24.9 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/traverse@7.25.3': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.0 + '@babel/parser': 7.25.3 + '@babel/template': 7.25.0 + '@babel/types': 7.25.2 + debug: 4.3.6(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -6647,13 +6338,13 @@ snapshots: '@babel/helper-validator-identifier': 7.24.6 to-fast-properties: 2.0.0 - '@babel/types@7.24.7': + '@babel/types@7.24.9': dependencies: - '@babel/helper-string-parser': 7.24.7 + '@babel/helper-string-parser': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 - '@babel/types@7.24.9': + '@babel/types@7.25.2': dependencies: '@babel/helper-string-parser': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 @@ -6677,8 +6368,8 @@ snapshots: '@es-joy/jsdoc-eslint-parser@0.21.1': dependencies: - '@babel/core': 7.24.9 - '@babel/eslint-parser': 7.24.8(@babel/core@7.24.9)(eslint@8.56.0) + '@babel/core': 7.25.2 + '@babel/eslint-parser': 7.25.1(@babel/core@7.25.2)(eslint@8.56.0) '@es-joy/jsdoccomment': 0.41.0 '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.5.3) eslint: 8.56.0 @@ -6699,24 +6390,28 @@ snapshots: esquery: 1.6.0 jsdoc-type-pratt-parser: 4.0.0 + '@es-joy/jsdoccomment@0.48.0': + dependencies: + comment-parser: 1.4.1 + esquery: 1.6.0 + jsdoc-type-pratt-parser: 4.1.0 + '@eslint-community/eslint-utils@4.4.0(eslint@8.56.0)': dependencies: eslint: 8.56.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.0(eslint@9.7.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.9.0(jiti@1.17.1))': dependencies: - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.10.0': {} - '@eslint-community/regexpp@4.11.0': {} - '@eslint/config-array@0.17.0': + '@eslint/config-array@0.17.1': dependencies: '@eslint/object-schema': 2.1.4 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -6724,7 +6419,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -6738,7 +6433,7 @@ snapshots: '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) espree: 10.1.0 globals: 14.0.0 ignore: 5.3.1 @@ -6751,21 +6446,21 @@ snapshots: '@eslint/js@8.56.0': {} - '@eslint/js@9.7.0': {} + '@eslint/js@9.9.0': {} '@eslint/object-schema@2.1.4': {} - '@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.24.9)(@types/node@20.14.11)(encoding@0.1.13)(graphql@16.9.0)': + '@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.25.2)(@types/node@22.2.0)(encoding@0.1.13)(graphql@16.9.0)': dependencies: '@babel/code-frame': 7.24.7 - '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.24.9)(graphql@16.9.0) - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.24.9)(graphql@16.9.0) + '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.25.2)(graphql@16.9.0) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.25.2)(graphql@16.9.0) '@graphql-tools/utils': 9.2.1(graphql@16.9.0) chalk: 4.1.2 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) fast-glob: 3.3.2 graphql: 16.9.0 - graphql-config: 4.5.0(@types/node@20.14.11)(encoding@0.1.13)(graphql@16.9.0) + graphql-config: 4.5.0(@types/node@22.2.0)(encoding@0.1.13)(graphql@16.9.0) graphql-depth-limit: 1.1.0(graphql@16.9.0) lodash.lowercase: 4.3.0 tslib: 2.6.2 @@ -6786,9 +6481,9 @@ snapshots: tslib: 2.6.2 value-or-promise: 1.0.12 - '@graphql-tools/code-file-loader@7.3.23(@babel/core@7.24.9)(graphql@16.9.0)': + '@graphql-tools/code-file-loader@7.3.23(@babel/core@7.25.2)(graphql@16.9.0)': dependencies: - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.24.9)(graphql@16.9.0) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.25.2)(graphql@16.9.0) '@graphql-tools/utils': 9.2.1(graphql@16.9.0) globby: 11.1.0 graphql: 16.9.0 @@ -6823,7 +6518,7 @@ snapshots: - bufferutil - utf-8-validate - '@graphql-tools/executor-http@0.1.10(@types/node@20.14.11)(graphql@16.9.0)': + '@graphql-tools/executor-http@0.1.10(@types/node@22.2.0)(graphql@16.9.0)': dependencies: '@graphql-tools/utils': 9.2.1(graphql@16.9.0) '@repeaterjs/repeater': 3.0.5 @@ -6831,7 +6526,7 @@ snapshots: dset: 3.1.3 extract-files: 11.0.0 graphql: 16.9.0 - meros: 1.3.0(@types/node@20.14.11) + meros: 1.3.0(@types/node@22.2.0) tslib: 2.6.2 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -6867,12 +6562,12 @@ snapshots: tslib: 2.6.2 unixify: 1.0.0 - '@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.24.9)(graphql@16.9.0)': + '@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.25.2)(graphql@16.9.0)': dependencies: - '@babel/parser': 7.24.7 - '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.9) - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/parser': 7.24.8 + '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.25.2) + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 '@graphql-tools/utils': 9.2.1(graphql@16.9.0) graphql: 16.9.0 tslib: 2.6.2 @@ -6917,12 +6612,12 @@ snapshots: tslib: 2.6.2 value-or-promise: 1.0.12 - '@graphql-tools/url-loader@7.17.18(@types/node@20.14.11)(encoding@0.1.13)(graphql@16.9.0)': + '@graphql-tools/url-loader@7.17.18(@types/node@22.2.0)(encoding@0.1.13)(graphql@16.9.0)': dependencies: '@ardatan/sync-fetch': 0.0.1(encoding@0.1.13) '@graphql-tools/delegate': 9.0.35(graphql@16.9.0) '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.9.0) - '@graphql-tools/executor-http': 0.1.10(@types/node@20.14.11)(graphql@16.9.0) + '@graphql-tools/executor-http': 0.1.10(@types/node@22.2.0)(graphql@16.9.0) '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.9.0) '@graphql-tools/utils': 9.2.1(graphql@16.9.0) '@graphql-tools/wrap': 9.4.2(graphql@16.9.0) @@ -6958,20 +6653,19 @@ snapshots: dependencies: graphql: 16.9.0 - '@hkdobrev/run-if-changed@0.3.1': + '@hkdobrev/run-if-changed@0.6.0(typescript@5.5.3)': dependencies: - cosmiconfig: 5.2.1 - execa: 1.0.0 - micromatch: 3.1.10 - npm-which: 3.0.1 - string-argv: 0.1.2 + cosmiconfig: 9.0.0(typescript@5.5.3) + execa: 9.3.0 + micromatch: 4.0.7 + string-argv: 0.3.2 transitivePeerDependencies: - - supports-color + - typescript '@humanwhocodes/config-array@0.11.13': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -7160,8 +6854,6 @@ snapshots: '@repeaterjs/repeater@3.0.5': {} - '@rtsao/scc@1.1.0': {} - '@sec-ant/readable-stream@0.4.1': {} '@semantic-release/commit-analyzer@13.0.0(semantic-release@24.0.0(typescript@5.5.3))': @@ -7170,7 +6862,7 @@ snapshots: conventional-changelog-writer: 8.0.0 conventional-commits-filter: 5.0.0 conventional-commits-parser: 6.0.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) import-from-esm: 1.3.3 lodash-es: 4.17.21 micromatch: 4.0.7 @@ -7180,7 +6872,7 @@ snapshots: '@semantic-release/error@4.0.0': {} - '@semantic-release/github@10.1.0(semantic-release@24.0.0(typescript@5.5.3))': + '@semantic-release/github@10.1.4(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) @@ -7188,7 +6880,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(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) dir-glob: 3.0.1 globby: 14.0.0 http-proxy-agent: 7.0.0 @@ -7225,7 +6917,7 @@ snapshots: conventional-changelog-writer: 8.0.0 conventional-commits-filter: 5.0.0 conventional-commits-parser: 6.0.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) get-stream: 7.0.1 import-from-esm: 1.3.3 into-stream: 7.0.0 @@ -7241,13 +6933,13 @@ snapshots: '@sindresorhus/merge-streams@4.0.0': {} - '@types/chai@4.3.16': {} + '@types/chai@4.3.17': {} '@types/debug@4.1.12': dependencies: '@types/ms': 0.7.34 - '@types/eslint@8.56.10': + '@types/eslint@9.6.0': dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 @@ -7279,9 +6971,9 @@ snapshots: '@types/ms@0.7.34': {} - '@types/node@20.14.11': + '@types/node@22.2.0': dependencies: - undici-types: 5.26.5 + undici-types: 6.13.0 '@types/normalize-package-data@2.4.4': {} @@ -7291,17 +6983,17 @@ snapshots: '@types/ws@8.5.10': dependencies: - '@types/node': 20.14.11 + '@types/node': 22.2.0 - '@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@8.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3)': dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3) - '@typescript-eslint/scope-manager': 7.16.1 - '@typescript-eslint/type-utils': 7.16.1(eslint@9.7.0)(typescript@5.5.3) - '@typescript-eslint/utils': 7.16.1(eslint@9.7.0)(typescript@5.5.3) - '@typescript-eslint/visitor-keys': 7.16.1 - eslint: 9.7.0 + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 8.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/type-utils': 7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + '@typescript-eslint/utils': 7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + '@typescript-eslint/visitor-keys': 7.18.0 + eslint: 9.9.0(jiti@1.17.1) graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -7311,15 +7003,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.0.0-alpha.34(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3)': + '@typescript-eslint/eslint-plugin@8.1.0(@typescript-eslint/parser@8.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3)': dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.7.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.7.0)(typescript@5.5.3) - '@typescript-eslint/utils': 8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3) - '@typescript-eslint/visitor-keys': 8.0.0-alpha.34 - eslint: 9.7.0 + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 8.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + '@typescript-eslint/scope-manager': 8.1.0 + '@typescript-eslint/type-utils': 8.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + '@typescript-eslint/utils': 8.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + '@typescript-eslint/visitor-keys': 8.1.0 + eslint: 9.9.0(jiti@1.17.1) graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -7329,10 +7021,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/experimental-utils@5.62.0(eslint@9.7.0)(typescript@5.5.3)': + '@typescript-eslint/experimental-utils@5.62.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3)': dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@9.7.0)(typescript@5.5.3) - eslint: 9.7.0 + '@typescript-eslint/utils': 5.62.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + eslint: 9.9.0(jiti@1.17.1) transitivePeerDependencies: - supports-color - typescript @@ -7343,34 +7035,34 @@ snapshots: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.3) '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) eslint: 8.56.0 optionalDependencies: typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3)': + '@typescript-eslint/parser@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3)': dependencies: - '@typescript-eslint/scope-manager': 7.16.1 - '@typescript-eslint/types': 7.16.1 - '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) - '@typescript-eslint/visitor-keys': 7.16.1 - debug: 4.3.5(supports-color@8.1.1) - eslint: 9.7.0 + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.3) + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.3.6(supports-color@8.1.1) + eslint: 9.9.0(jiti@1.17.1) optionalDependencies: typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3)': + '@typescript-eslint/parser@8.1.0(eslint@9.9.0(jiti@1.17.1))(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.5.3) - '@typescript-eslint/visitor-keys': 8.0.0-alpha.34 - debug: 4.3.5(supports-color@8.1.1) - eslint: 9.7.0 + '@typescript-eslint/scope-manager': 8.1.0 + '@typescript-eslint/types': 8.1.0 + '@typescript-eslint/typescript-estree': 8.1.0(typescript@5.5.3) + '@typescript-eslint/visitor-keys': 8.1.0 + debug: 4.3.6(supports-color@8.1.1) + eslint: 9.9.0(jiti@1.17.1) optionalDependencies: typescript: 5.5.3 transitivePeerDependencies: @@ -7391,38 +7083,38 @@ snapshots: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - '@typescript-eslint/scope-manager@7.14.1': - dependencies: - '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/visitor-keys': 7.14.1 - '@typescript-eslint/scope-manager@7.16.1': dependencies: '@typescript-eslint/types': 7.16.1 '@typescript-eslint/visitor-keys': 7.16.1 - '@typescript-eslint/scope-manager@8.0.0-alpha.34': + '@typescript-eslint/scope-manager@7.18.0': dependencies: - '@typescript-eslint/types': 8.0.0-alpha.34 - '@typescript-eslint/visitor-keys': 8.0.0-alpha.34 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/type-utils@7.16.1(eslint@9.7.0)(typescript@5.5.3)': + '@typescript-eslint/scope-manager@8.1.0': dependencies: - '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) - '@typescript-eslint/utils': 7.16.1(eslint@9.7.0)(typescript@5.5.3) - debug: 4.3.5(supports-color@8.1.1) - eslint: 9.7.0 + '@typescript-eslint/types': 8.1.0 + '@typescript-eslint/visitor-keys': 8.1.0 + + '@typescript-eslint/type-utils@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3)': + dependencies: + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.3) + '@typescript-eslint/utils': 7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + debug: 4.3.6(supports-color@8.1.1) + eslint: 9.9.0(jiti@1.17.1) ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3)': + '@typescript-eslint/type-utils@8.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.0.0-alpha.34(typescript@5.5.3) - '@typescript-eslint/utils': 8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3) - debug: 4.3.5(supports-color@8.1.1) + '@typescript-eslint/typescript-estree': 8.1.0(typescript@5.5.3) + '@typescript-eslint/utils': 8.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + debug: 4.3.6(supports-color@8.1.1) ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: typescript: 5.5.3 @@ -7436,17 +7128,17 @@ snapshots: '@typescript-eslint/types@6.21.0': {} - '@typescript-eslint/types@7.14.1': {} - '@typescript-eslint/types@7.16.1': {} - '@typescript-eslint/types@8.0.0-alpha.34': {} + '@typescript-eslint/types@7.18.0': {} + + '@typescript-eslint/types@8.1.0': {} '@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(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.3 @@ -7460,7 +7152,7 @@ snapshots: dependencies: '@typescript-eslint/types': 6.19.1 '@typescript-eslint/visitor-keys': 6.19.1 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 @@ -7475,7 +7167,7 @@ snapshots: dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 @@ -7486,11 +7178,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.14.1(typescript@5.5.3)': + '@typescript-eslint/typescript-estree@7.16.1(typescript@5.5.3)': dependencies: - '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/visitor-keys': 7.14.1 - debug: 4.3.5(supports-color@8.1.1) + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/visitor-keys': 7.16.1 + debug: 4.3.6(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 @@ -7501,11 +7193,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.16.1(typescript@5.5.3)': + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.5.3)': dependencies: - '@typescript-eslint/types': 7.16.1 - '@typescript-eslint/visitor-keys': 7.16.1 - debug: 4.3.5(supports-color@8.1.1) + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.3.6(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 @@ -7516,11 +7208,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.0.0-alpha.34(typescript@5.5.3)': + '@typescript-eslint/typescript-estree@8.1.0(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(supports-color@8.1.1) + '@typescript-eslint/types': 8.1.0 + '@typescript-eslint/visitor-keys': 8.1.0 + debug: 4.3.6(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 @@ -7531,64 +7223,64 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@5.62.0(eslint@9.7.0)(typescript@5.5.3)': + '@typescript-eslint/utils@5.62.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.0(jiti@1.17.1)) '@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.5.3) - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) eslint-scope: 5.1.1 semver: 7.6.3 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@6.19.1(eslint@9.7.0)(typescript@5.5.3)': + '@typescript-eslint/utils@6.19.1(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.0(jiti@1.17.1)) '@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.5.3) - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) semver: 7.6.3 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@7.14.1(eslint@9.7.0)(typescript@5.5.3)': + '@typescript-eslint/utils@7.16.1(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) - '@typescript-eslint/scope-manager': 7.14.1 - '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.3) - eslint: 9.7.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.0(jiti@1.17.1)) + '@typescript-eslint/scope-manager': 7.16.1 + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) + eslint: 9.9.0(jiti@1.17.1) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@7.16.1(eslint@9.7.0)(typescript@5.5.3)': + '@typescript-eslint/utils@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) - '@typescript-eslint/scope-manager': 7.16.1 - '@typescript-eslint/types': 7.16.1 - '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) - eslint: 9.7.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.0(jiti@1.17.1)) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.3) + eslint: 9.9.0(jiti@1.17.1) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3)': + '@typescript-eslint/utils@8.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.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.5.3) - eslint: 9.7.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.0(jiti@1.17.1)) + '@typescript-eslint/scope-manager': 8.1.0 + '@typescript-eslint/types': 8.1.0 + '@typescript-eslint/typescript-estree': 8.1.0(typescript@5.5.3) + eslint: 9.9.0(jiti@1.17.1) transitivePeerDependencies: - supports-color - typescript @@ -7608,19 +7300,19 @@ snapshots: '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@7.14.1': + '@typescript-eslint/visitor-keys@7.16.1': dependencies: - '@typescript-eslint/types': 7.14.1 + '@typescript-eslint/types': 7.16.1 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@7.16.1': + '@typescript-eslint/visitor-keys@7.18.0': dependencies: - '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.0.0-alpha.34': + '@typescript-eslint/visitor-keys@8.1.0': dependencies: - '@typescript-eslint/types': 8.0.0-alpha.34 + '@typescript-eslint/types': 8.1.0 eslint-visitor-keys: 3.4.3 '@ungap/structured-clone@1.2.0': {} @@ -7666,7 +7358,7 @@ snapshots: agent-base@7.1.0: dependencies: - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -7694,6 +7386,10 @@ snapshots: dependencies: type-fest: 3.13.1 + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 + ansi-regex@5.0.1: {} ansi-regex@6.0.1: {} @@ -7729,12 +7425,6 @@ snapshots: dependencies: deep-equal: 2.2.3 - arr-diff@4.0.0: {} - - arr-flatten@1.1.0: {} - - arr-union@3.1.0: {} - array-buffer-byte-length@1.0.1: dependencies: call-bind: 1.0.7 @@ -7753,8 +7443,6 @@ snapshots: array-union@2.1.0: {} - array-unique@0.3.2: {} - array.prototype.findlast@1.2.5: dependencies: call-bind: 1.0.7 @@ -7788,13 +7476,6 @@ snapshots: es-object-atoms: 1.0.0 is-string: 1.0.7 - array.prototype.toreversed@1.1.2: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 - array.prototype.tosorted@1.1.4: dependencies: call-bind: 1.0.7 @@ -7838,8 +7519,6 @@ snapshots: assertion-error@2.0.1: {} - assign-symbols@1.0.0: {} - ast-types-flow@0.0.8: {} ast-types@0.16.1: @@ -7848,8 +7527,6 @@ snapshots: asynckit@0.4.0: {} - atob@2.1.2: {} - available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 @@ -7876,48 +7553,38 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.9): + babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.25.2): dependencies: - '@babel/compat-data': 7.24.9 - '@babel/core': 7.24.9 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.9) + '@babel/compat-data': 7.25.2 + '@babel/core': 7.25.2 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.25.2) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.9): + babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.25.2): dependencies: - '@babel/core': 7.24.9 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.9) + '@babel/core': 7.25.2 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.25.2) core-js-compat: 3.37.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.9): + babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.25.2): dependencies: - '@babel/core': 7.24.9 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.9) + '@babel/core': 7.25.2 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.25.2) transitivePeerDependencies: - supports-color - babel-plugin-transform-import-meta@2.2.1(@babel/core@7.24.9): + babel-plugin-transform-import-meta@2.2.1(@babel/core@7.25.2): dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/template': 7.24.6 tslib: 2.6.2 balanced-match@1.0.2: {} - base@0.11.2: - dependencies: - cache-base: 1.0.1 - class-utils: 0.3.6 - component-emitter: 1.3.1 - define-property: 1.0.0 - isobject: 3.0.1 - mixin-deep: 1.3.2 - pascalcase: 0.1.1 - bcrypt-pbkdf@1.0.2: dependencies: tweetnacl: 0.14.5 @@ -7943,21 +7610,6 @@ snapshots: dependencies: balanced-match: 1.0.2 - braces@2.3.2: - dependencies: - arr-flatten: 1.1.0 - array-unique: 0.3.2 - extend-shallow: 2.0.1 - fill-range: 4.0.0 - isobject: 3.0.1 - repeat-element: 1.1.4 - snapdragon: 0.8.2 - snapdragon-node: 2.1.1 - split-string: 3.1.0 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -7966,13 +7618,6 @@ snapshots: browser-stdout@1.3.1: {} - browserslist@4.23.0: - dependencies: - caniuse-lite: 1.0.30001606 - electron-to-chromium: 1.4.729 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) - browserslist@4.23.2: dependencies: caniuse-lite: 1.0.30001642 @@ -8022,18 +7667,6 @@ snapshots: unique-filename: 3.0.0 optional: true - cache-base@1.0.1: - dependencies: - collection-visit: 1.0.0 - component-emitter: 1.3.1 - get-value: 2.0.6 - has-value: 1.0.0 - isobject: 3.0.1 - set-value: 2.0.1 - to-object-path: 0.3.0 - union-value: 1.0.1 - unset-value: 1.0.0 - call-bind@1.0.7: dependencies: es-define-property: 1.0.0 @@ -8042,16 +7675,6 @@ snapshots: get-intrinsic: 1.2.4 set-function-length: 1.2.2 - caller-callsite@2.0.0: - dependencies: - callsites: 2.0.0 - - caller-path@2.0.0: - dependencies: - caller-callsite: 2.0.0 - - callsites@2.0.0: {} - callsites@3.1.0: {} camelcase@5.3.1: {} @@ -8060,8 +7683,6 @@ snapshots: camelcase@8.0.0: {} - caniuse-lite@1.0.30001606: {} - caniuse-lite@1.0.30001642: {} caseless@0.12.0: {} @@ -8110,13 +7731,6 @@ snapshots: ci-info@4.0.0: {} - class-utils@0.3.6: - dependencies: - arr-union: 3.1.0 - define-property: 0.2.5 - isobject: 3.0.1 - static-extend: 0.1.2 - clean-regexp@1.0.0: dependencies: escape-string-regexp: 1.0.5 @@ -8128,9 +7742,9 @@ snapshots: dependencies: escape-string-regexp: 5.0.0 - cli-cursor@4.0.0: + cli-cursor@5.0.0: dependencies: - restore-cursor: 4.0.0 + restore-cursor: 5.1.0 cli-highlight@2.1.11: dependencies: @@ -8180,11 +7794,6 @@ snapshots: dependencies: is-regexp: 3.1.0 - collection-visit@1.0.0: - dependencies: - map-visit: 1.0.0 - object-visit: 1.0.1 - color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -8205,8 +7814,6 @@ snapshots: commander@12.1.0: {} - commander@2.20.3: {} - commander@6.2.1: {} comment-parser@1.4.1: {} @@ -8218,8 +7825,6 @@ snapshots: array-ify: 1.0.0 dot-prop: 5.3.0 - component-emitter@1.3.1: {} - concat-map@0.0.1: {} config-chain@1.1.13: @@ -8254,11 +7859,9 @@ snapshots: convert-source-map@2.0.0: {} - copy-descriptor@0.1.1: {} - core-js-compat@3.37.1: dependencies: - browserslist: 4.23.0 + browserslist: 4.23.2 core-js-pure@3.34.0: {} @@ -8268,13 +7871,6 @@ snapshots: core-util-is@1.0.3: {} - cosmiconfig@5.2.1: - dependencies: - import-fresh: 2.0.0 - is-directory: 0.3.1 - js-yaml: 3.14.1 - parse-json: 4.0.0 - cosmiconfig@8.0.0: dependencies: import-fresh: 3.3.0 @@ -8299,14 +7895,6 @@ snapshots: dependencies: cross-spawn: 7.0.3 - cross-spawn@6.0.5: - dependencies: - nice-try: 1.0.5 - path-key: 2.0.1 - semver: 5.7.2 - shebang-command: 1.2.0 - which: 1.3.1 - cross-spawn@7.0.3: dependencies: path-key: 3.1.1 @@ -8355,15 +7943,11 @@ snapshots: jsdom: 6.5.1 url-regexp: 1.0.2 - debug@2.6.9: - dependencies: - ms: 2.0.0 - debug@3.2.7: dependencies: ms: 2.1.3 - debug@4.3.5(supports-color@8.1.1): + debug@4.3.6(supports-color@8.1.1): dependencies: ms: 2.1.2 optionalDependencies: @@ -8375,8 +7959,6 @@ snapshots: decamelize@6.0.0: {} - decode-uri-component@0.2.2: {} - deep-eql@5.0.2: {} deep-equal@2.2.3: @@ -8425,19 +8007,6 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 - define-property@0.2.5: - dependencies: - is-descriptor: 0.1.7 - - define-property@1.0.0: - dependencies: - is-descriptor: 1.0.3 - - define-property@2.0.2: - dependencies: - is-descriptor: 1.0.3 - isobject: 3.0.1 - delayed-stream@1.0.0: {} diff@5.2.0: {} @@ -8489,8 +8058,6 @@ snapshots: jsbn: 0.1.1 safer-buffer: 2.1.2 - electron-to-chromium@1.4.729: {} - electron-to-chromium@1.4.830: {} emoji-regex@10.3.0: {} @@ -8506,10 +8073,6 @@ snapshots: iconv-lite: 0.6.3 optional: true - end-of-stream@1.4.4: - dependencies: - once: 1.4.0 - enhance-visitors@1.0.0: dependencies: lodash: 4.17.21 @@ -8532,6 +8095,8 @@ snapshots: env-paths@2.2.1: {} + environment@1.1.0: {} + err-code@2.0.3: optional: true @@ -8671,55 +8236,55 @@ snapshots: lodash.get: 4.4.2 lodash.zip: 4.2.0 - eslint-compat-utils@0.1.2(eslint@9.7.0): + eslint-compat-utils@0.1.2(eslint@9.9.0(jiti@1.17.1)): dependencies: - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) - eslint-compat-utils@0.5.0(eslint@9.7.0): + eslint-compat-utils@0.5.0(eslint@9.9.0(jiti@1.17.1)): dependencies: - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) semver: 7.6.3 - eslint-config-canonical@43.0.14(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.9))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.9))(@types/eslint@8.56.10)(@types/node@20.14.11)(encoding@0.1.13)(eslint@9.7.0)(typescript@5.5.3): + eslint-config-canonical@43.0.15(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.2))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.25.2))(@types/eslint@9.6.0)(@types/node@22.2.0)(encoding@0.1.13)(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3): dependencies: - '@babel/core': 7.24.9 - '@babel/eslint-parser': 7.24.8(@babel/core@7.24.9)(eslint@9.7.0) - '@babel/eslint-plugin': 7.24.7(@babel/eslint-parser@7.24.8(@babel/core@7.24.9)(eslint@9.7.0))(eslint@9.7.0) - '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.9) - '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.24.9)(@types/node@20.14.11)(encoding@0.1.13)(graphql@16.9.0) + '@babel/core': 7.25.2 + '@babel/eslint-parser': 7.25.1(@babel/core@7.25.2)(eslint@9.9.0(jiti@1.17.1)) + '@babel/eslint-plugin': 7.25.1(@babel/eslint-parser@7.25.1(@babel/core@7.25.2)(eslint@9.9.0(jiti@1.17.1)))(eslint@9.9.0(jiti@1.17.1)) + '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.25.2) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.25.2)(@types/node@22.2.0)(encoding@0.1.13)(graphql@16.9.0) '@next/eslint-plugin-next': 14.2.5 - '@typescript-eslint/eslint-plugin': 7.16.1(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) - '@typescript-eslint/parser': 7.16.1(eslint@9.7.0)(typescript@5.5.3) - eslint: 9.7.0 - eslint-config-prettier: 9.1.0(eslint@9.7.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0) - eslint-plugin-ava: 15.0.1(eslint@9.7.0) - eslint-plugin-canonical: 4.18.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) - eslint-plugin-cypress: 3.3.0(eslint@9.7.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@9.7.0) - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.9))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.9))(eslint@9.7.0) - eslint-plugin-fp: 2.3.0(eslint@9.7.0) - eslint-plugin-import: eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3) - eslint-plugin-jest: 28.6.0(@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) - eslint-plugin-jsdoc: 48.7.0(eslint@9.7.0) - eslint-plugin-jsonc: 2.16.0(eslint@9.7.0) - eslint-plugin-jsx-a11y: 6.9.0(eslint@9.7.0) - eslint-plugin-lodash: 8.0.0(eslint@9.7.0) - eslint-plugin-mocha: 10.4.3(eslint@9.7.0) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@8.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + '@typescript-eslint/parser': 7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + eslint: 9.9.0(jiti@1.17.1) + eslint-config-prettier: 9.1.0(eslint@9.9.0(jiti@1.17.1)) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint-plugin-import-x@3.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1)) + eslint-plugin-ava: 15.0.1(eslint@9.9.0(jiti@1.17.1)) + eslint-plugin-canonical: 4.18.1(@typescript-eslint/parser@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint-plugin-import-x@3.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + eslint-plugin-cypress: 3.5.0(eslint@9.9.0(jiti@1.17.1)) + eslint-plugin-eslint-comments: 3.2.0(eslint@9.9.0(jiti@1.17.1)) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.2))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.25.2))(eslint@9.9.0(jiti@1.17.1)) + eslint-plugin-fp: 2.3.0(eslint@9.9.0(jiti@1.17.1)) + eslint-plugin-import: eslint-plugin-import-x@3.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + eslint-plugin-jest: 28.6.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + eslint-plugin-jsdoc: 48.11.0(eslint@9.9.0(jiti@1.17.1)) + eslint-plugin-jsonc: 2.16.0(eslint@9.9.0(jiti@1.17.1)) + eslint-plugin-jsx-a11y: 6.9.0(eslint@9.9.0(jiti@1.17.1)) + eslint-plugin-lodash: 8.0.0(eslint@9.9.0(jiti@1.17.1)) + eslint-plugin-mocha: 10.5.0(eslint@9.9.0(jiti@1.17.1)) eslint-plugin-modules-newline: 0.0.6 - eslint-plugin-n: 17.9.0(eslint@9.7.0) - eslint-plugin-prettier: 5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.7.0))(eslint@9.7.0)(prettier@3.3.3) - eslint-plugin-promise: 6.4.0(eslint@9.7.0) - eslint-plugin-react: 7.34.4(eslint@9.7.0) - eslint-plugin-react-hooks: 4.6.2(eslint@9.7.0) - eslint-plugin-regexp: 2.6.0(eslint@9.7.0) - eslint-plugin-simple-import-sort: 12.1.1(eslint@9.7.0) - eslint-plugin-typescript-sort-keys: 3.2.0(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) - eslint-plugin-unicorn: 54.0.0(eslint@9.7.0) - eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) - eslint-plugin-yml: 1.14.0(eslint@9.7.0) - eslint-plugin-zod: 1.4.0(eslint@9.7.0) - globals: 15.8.0 + eslint-plugin-n: 17.10.2(eslint@9.9.0(jiti@1.17.1)) + eslint-plugin-prettier: 5.2.1(@types/eslint@9.6.0)(eslint-config-prettier@9.1.0(eslint@9.9.0(jiti@1.17.1)))(eslint@9.9.0(jiti@1.17.1))(prettier@3.3.3) + eslint-plugin-promise: 7.1.0(eslint@9.9.0(jiti@1.17.1)) + eslint-plugin-react: 7.35.0(eslint@9.9.0(jiti@1.17.1)) + eslint-plugin-react-hooks: 4.6.2(eslint@9.9.0(jiti@1.17.1)) + eslint-plugin-regexp: 2.6.0(eslint@9.9.0(jiti@1.17.1)) + eslint-plugin-simple-import-sort: 12.1.1(eslint@9.9.0(jiti@1.17.1)) + eslint-plugin-typescript-sort-keys: 3.2.0(@typescript-eslint/parser@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + eslint-plugin-unicorn: 55.0.0(eslint@9.9.0(jiti@1.17.1)) + eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + eslint-plugin-yml: 1.14.0(eslint@9.9.0(jiti@1.17.1)) + eslint-plugin-zod: 1.4.0(eslint@9.9.0(jiti@1.17.1)) + globals: 15.9.0 graphql: 16.9.0 prettier: 3.3.3 ramda: 0.30.1 @@ -8740,9 +8305,9 @@ snapshots: - utf-8-validate - vitest - eslint-config-prettier@9.1.0(eslint@9.7.0): + eslint-config-prettier@9.1.0(eslint@9.9.0(jiti@1.17.1)): dependencies: - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) eslint-import-resolver-node@0.3.9: dependencies: @@ -8752,15 +8317,15 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint-plugin-import-x@3.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1)): dependencies: - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) enhanced-resolve: 5.17.0 - eslint: 9.7.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0))(eslint@9.7.0) - eslint-plugin-import: eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3) + eslint: 9.9.0(jiti@1.17.1) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint-plugin-import-x@3.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1)))(eslint@9.9.0(jiti@1.17.1)) + eslint-plugin-import: eslint-plugin-import-x@3.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) fast-glob: 3.3.2 - get-tsconfig: 4.7.2 + get-tsconfig: 4.7.6 is-core-module: 2.13.1 is-glob: 4.0.3 transitivePeerDependencies: @@ -8769,21 +8334,21 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.0(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0))(eslint@9.7.0): + eslint-module-utils@2.8.0(@typescript-eslint/parser@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint-plugin-import-x@3.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1)))(eslint@9.9.0(jiti@1.17.1)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.16.1(eslint@9.7.0)(typescript@5.5.3) - eslint: 9.7.0 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0) + '@typescript-eslint/parser': 7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + eslint: 9.9.0(jiti@1.17.1) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint-plugin-import-x@3.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1)) transitivePeerDependencies: - supports-color - eslint-plugin-ava@15.0.1(eslint@9.7.0): + eslint-plugin-ava@15.0.1(eslint@9.9.0(jiti@1.17.1)): dependencies: enhance-visitors: 1.0.0 - eslint: 9.7.0 - eslint-utils: 3.0.0(eslint@9.7.0) + eslint: 9.9.0(jiti@1.17.1) + eslint-utils: 3.0.0(eslint@9.9.0(jiti@1.17.1)) espree: 9.6.1 espurify: 2.1.1 import-modules: 2.1.0 @@ -8791,13 +8356,13 @@ snapshots: pkg-dir: 5.0.0 resolve-from: 5.0.0 - eslint-plugin-canonical@4.18.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3): + eslint-plugin-canonical@4.18.1(@typescript-eslint/parser@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint-plugin-import-x@3.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3): dependencies: - '@typescript-eslint/utils': 6.19.1(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/utils': 6.19.1(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) chance: 1.1.11 - debug: 4.3.5(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0))(eslint@9.7.0) + debug: 4.3.6(supports-color@8.1.1) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint-plugin-import-x@3.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1)) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint-plugin-import-x@3.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1)))(eslint@9.9.0(jiti@1.17.1)) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -8817,51 +8382,50 @@ snapshots: - supports-color - typescript - eslint-plugin-cypress@3.3.0(eslint@9.7.0): + eslint-plugin-cypress@3.5.0(eslint@9.9.0(jiti@1.17.1)): dependencies: - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) globals: 13.24.0 - eslint-plugin-es-x@7.5.0(eslint@9.7.0): + eslint-plugin-es-x@7.5.0(eslint@9.9.0(jiti@1.17.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) - '@eslint-community/regexpp': 4.10.0 - eslint: 9.7.0 - eslint-compat-utils: 0.1.2(eslint@9.7.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.0(jiti@1.17.1)) + '@eslint-community/regexpp': 4.11.0 + eslint: 9.9.0(jiti@1.17.1) + eslint-compat-utils: 0.1.2(eslint@9.9.0(jiti@1.17.1)) - eslint-plugin-eslint-comments@3.2.0(eslint@9.7.0): + eslint-plugin-eslint-comments@3.2.0(eslint@9.9.0(jiti@1.17.1)): dependencies: escape-string-regexp: 1.0.5 - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) ignore: 5.3.1 - eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.9))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.9))(eslint@9.7.0): + eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.2))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.25.2))(eslint@9.9.0(jiti@1.17.1)): dependencies: - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.9) - eslint: 9.7.0 + '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.25.2) + eslint: 9.9.0(jiti@1.17.1) lodash: 4.17.21 string-natural-compare: 3.0.1 - eslint-plugin-fp@2.3.0(eslint@9.7.0): + eslint-plugin-fp@2.3.0(eslint@9.9.0(jiti@1.17.1)): dependencies: create-eslint-index: 1.0.0 - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) eslint-ast-utils: 1.1.0 lodash: 4.17.21 req-all: 0.1.0 - eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3): + eslint-plugin-import-x@3.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3): dependencies: - '@rtsao/scc': 1.1.0 - '@typescript-eslint/utils': 7.16.1(eslint@9.7.0)(typescript@5.5.3) - debug: 4.3.5(supports-color@8.1.1) + '@typescript-eslint/utils': 7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + debug: 4.3.6(supports-color@8.1.1) doctrine: 3.0.0 - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) eslint-import-resolver-node: 0.3.9 get-tsconfig: 4.7.6 is-glob: 4.0.3 - minimatch: 9.0.4 + minimatch: 9.0.5 semver: 7.6.3 stable-hash: 0.0.4 tslib: 2.6.2 @@ -8869,24 +8433,25 @@ snapshots: - supports-color - typescript - eslint-plugin-jest@28.6.0(@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3): + eslint-plugin-jest@28.6.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3): dependencies: - '@typescript-eslint/utils': 7.14.1(eslint@9.7.0)(typescript@5.5.3) - eslint: 9.7.0 + '@typescript-eslint/utils': 7.16.1(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + eslint: 9.9.0(jiti@1.17.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.16.1(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@8.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jsdoc@48.7.0(eslint@9.7.0): + eslint-plugin-jsdoc@48.11.0(eslint@9.9.0(jiti@1.17.1)): dependencies: '@es-joy/jsdoccomment': 0.46.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) + espree: 10.1.0 esquery: 1.6.0 parse-imports: 2.1.1 semver: 7.6.3 @@ -8895,18 +8460,18 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-jsonc@2.16.0(eslint@9.7.0): + eslint-plugin-jsonc@2.16.0(eslint@9.9.0(jiti@1.17.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) - eslint: 9.7.0 - eslint-compat-utils: 0.5.0(eslint@9.7.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.0(jiti@1.17.1)) + eslint: 9.9.0(jiti@1.17.1) + eslint-compat-utils: 0.5.0(eslint@9.9.0(jiti@1.17.1)) 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.7.0): + eslint-plugin-jsx-a11y@6.9.0(eslint@9.9.0(jiti@1.17.1)): dependencies: aria-query: 5.1.3 array-includes: 3.1.8 @@ -8917,7 +8482,7 @@ snapshots: damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 es-iterator-helpers: 1.0.19 - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -8926,15 +8491,15 @@ snapshots: safe-regex-test: 1.0.3 string.prototype.includes: 2.0.0 - eslint-plugin-lodash@8.0.0(eslint@9.7.0): + eslint-plugin-lodash@8.0.0(eslint@9.9.0(jiti@1.17.1)): dependencies: - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) lodash: 4.17.21 - eslint-plugin-mocha@10.4.3(eslint@9.7.0): + eslint-plugin-mocha@10.5.0(eslint@9.9.0(jiti@1.17.1)): dependencies: - eslint: 9.7.0 - eslint-utils: 3.0.0(eslint@9.7.0) + eslint: 9.9.0(jiti@1.17.1) + eslint-utils: 3.0.0(eslint@9.9.0(jiti@1.17.1)) globals: 13.24.0 rambda: 7.5.0 @@ -8942,46 +8507,45 @@ snapshots: dependencies: requireindex: 1.1.0 - eslint-plugin-n@17.9.0(eslint@9.7.0): + eslint-plugin-n@17.10.2(eslint@9.9.0(jiti@1.17.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.0(jiti@1.17.1)) enhanced-resolve: 5.17.0 - eslint: 9.7.0 - eslint-plugin-es-x: 7.5.0(eslint@9.7.0) - get-tsconfig: 4.7.2 - globals: 15.8.0 + eslint: 9.9.0(jiti@1.17.1) + eslint-plugin-es-x: 7.5.0(eslint@9.9.0(jiti@1.17.1)) + get-tsconfig: 4.7.6 + globals: 15.9.0 ignore: 5.3.1 - minimatch: 9.0.4 + minimatch: 9.0.5 semver: 7.6.3 - eslint-plugin-prettier@5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.7.0))(eslint@9.7.0)(prettier@3.3.3): + eslint-plugin-prettier@5.2.1(@types/eslint@9.6.0)(eslint-config-prettier@9.1.0(eslint@9.9.0(jiti@1.17.1)))(eslint@9.9.0(jiti@1.17.1))(prettier@3.3.3): dependencies: - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) prettier: 3.3.3 prettier-linter-helpers: 1.0.0 - synckit: 0.8.8 + synckit: 0.9.1 optionalDependencies: - '@types/eslint': 8.56.10 - eslint-config-prettier: 9.1.0(eslint@9.7.0) + '@types/eslint': 9.6.0 + eslint-config-prettier: 9.1.0(eslint@9.9.0(jiti@1.17.1)) - eslint-plugin-promise@6.4.0(eslint@9.7.0): + eslint-plugin-promise@7.1.0(eslint@9.9.0(jiti@1.17.1)): dependencies: - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) - eslint-plugin-react-hooks@4.6.2(eslint@9.7.0): + eslint-plugin-react-hooks@4.6.2(eslint@9.9.0(jiti@1.17.1)): dependencies: - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) - eslint-plugin-react@7.34.4(eslint@9.7.0): + eslint-plugin-react@7.35.0(eslint@9.9.0(jiti@1.17.1)): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.2 - array.prototype.toreversed: 1.1.2 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.0.19 - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -8995,42 +8559,42 @@ snapshots: string.prototype.matchall: 4.0.11 string.prototype.repeat: 1.0.0 - eslint-plugin-regexp@2.6.0(eslint@9.7.0): + eslint-plugin-regexp@2.6.0(eslint@9.9.0(jiti@1.17.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.0(jiti@1.17.1)) + '@eslint-community/regexpp': 4.11.0 comment-parser: 1.4.1 - eslint: 9.7.0 - jsdoc-type-pratt-parser: 4.0.0 + eslint: 9.9.0(jiti@1.17.1) + jsdoc-type-pratt-parser: 4.1.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-simple-import-sort@12.1.1(eslint@9.7.0): + eslint-plugin-simple-import-sort@12.1.1(eslint@9.9.0(jiti@1.17.1)): dependencies: - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) - eslint-plugin-typescript-sort-keys@3.2.0(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3): + eslint-plugin-typescript-sort-keys@3.2.0(@typescript-eslint/parser@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3): dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.7.0)(typescript@5.5.3) - '@typescript-eslint/parser': 7.16.1(eslint@9.7.0)(typescript@5.5.3) - eslint: 9.7.0 + '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + '@typescript-eslint/parser': 7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + eslint: 9.9.0(jiti@1.17.1) json-schema: 0.4.0 natural-compare-lite: 1.4.0 typescript: 5.5.3 transitivePeerDependencies: - supports-color - eslint-plugin-unicorn@54.0.0(eslint@9.7.0): + eslint-plugin-unicorn@55.0.0(eslint@9.9.0(jiti@1.17.1)): dependencies: '@babel/helper-validator-identifier': 7.24.7 - '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) - '@eslint/eslintrc': 3.1.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.0(jiti@1.17.1)) ci-info: 4.0.0 clean-regexp: 1.0.0 core-js-compat: 3.37.1 - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) esquery: 1.6.0 + globals: 15.9.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 jsesc: 3.0.2 @@ -9040,33 +8604,31 @@ snapshots: regjsparser: 0.10.0 semver: 7.6.3 strip-indent: 3.0.0 - transitivePeerDependencies: - - supports-color - eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3): + eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3): dependencies: - '@typescript-eslint/utils': 7.14.1(eslint@9.7.0)(typescript@5.5.3) - eslint: 9.7.0 + '@typescript-eslint/utils': 7.16.1(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + eslint: 9.9.0(jiti@1.17.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.16.1(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@8.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-yml@1.14.0(eslint@9.7.0): + eslint-plugin-yml@1.14.0(eslint@9.9.0(jiti@1.17.1)): dependencies: - debug: 4.3.5(supports-color@8.1.1) - eslint: 9.7.0 - eslint-compat-utils: 0.5.0(eslint@9.7.0) + debug: 4.3.6(supports-color@8.1.1) + eslint: 9.9.0(jiti@1.17.1) + eslint-compat-utils: 0.5.0(eslint@9.9.0(jiti@1.17.1)) 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.7.0): + eslint-plugin-zod@1.4.0(eslint@9.9.0(jiti@1.17.1)): dependencies: - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) eslint-rule-composer@0.3.0: {} @@ -9085,9 +8647,9 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-utils@3.0.0(eslint@9.7.0): + eslint-utils@3.0.0(eslint@9.9.0(jiti@1.17.1)): dependencies: - eslint: 9.7.0 + eslint: 9.9.0(jiti@1.17.1) eslint-visitor-keys: 2.1.0 eslint-visitor-keys@2.1.0: {} @@ -9099,7 +8661,7 @@ snapshots: eslint@8.56.0: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/regexpp': 4.11.0 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.56.0 '@humanwhocodes/config-array': 0.11.13 @@ -9109,7 +8671,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -9139,20 +8701,20 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@9.7.0: + eslint@9.9.0(jiti@1.17.1): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.0(jiti@1.17.1)) '@eslint-community/regexpp': 4.11.0 - '@eslint/config-array': 0.17.0 + '@eslint/config-array': 0.17.1 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.7.0 + '@eslint/js': 9.9.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(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) escape-string-regexp: 4.0.0 eslint-scope: 8.0.2 eslint-visitor-keys: 4.0.0 @@ -9175,6 +8737,8 @@ snapshots: optionator: 0.9.3 strip-ansi: 6.0.1 text-table: 0.2.0 + optionalDependencies: + jiti: 1.17.1 transitivePeerDependencies: - supports-color @@ -9210,16 +8774,6 @@ snapshots: eventemitter3@5.0.1: {} - execa@1.0.0: - dependencies: - cross-spawn: 6.0.5 - get-stream: 4.1.0 - is-stream: 1.1.0 - npm-run-path: 2.0.2 - p-finally: 1.0.0 - signal-exit: 3.0.7 - strip-eof: 1.0.0 - execa@8.0.1: dependencies: cross-spawn: 7.0.3 @@ -9262,45 +8816,11 @@ snapshots: strip-final-newline: 4.0.0 yoctocolors: 2.0.2 - expand-brackets@2.1.4: - dependencies: - debug: 2.6.9 - define-property: 0.2.5 - extend-shallow: 2.0.1 - posix-character-classes: 0.1.1 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - exponential-backoff@3.1.1: optional: true - extend-shallow@2.0.1: - dependencies: - is-extendable: 0.1.1 - - extend-shallow@3.0.2: - dependencies: - assign-symbols: 1.0.0 - is-extendable: 1.0.1 - extend@3.0.2: {} - extglob@2.0.4: - dependencies: - array-unique: 0.3.2 - define-property: 1.0.0 - expand-brackets: 2.1.4 - extend-shallow: 2.0.1 - fragment-cache: 0.2.1 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - extract-files@11.0.0: {} extsprintf@1.3.0: {} @@ -9357,13 +8877,6 @@ snapshots: filesize@10.1.4: {} - fill-range@4.0.0: - dependencies: - extend-shallow: 2.0.1 - is-number: 3.0.0 - repeat-string: 1.6.1 - to-regex-range: 2.1.1 - fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -9418,8 +8931,6 @@ snapshots: dependencies: is-callable: 1.2.7 - for-in@1.0.2: {} - foreground-child@3.1.1: dependencies: cross-spawn: 7.0.3 @@ -9433,10 +8944,6 @@ snapshots: combined-stream: 1.0.8 mime-types: 2.1.35 - fragment-cache@0.2.1: - dependencies: - map-cache: 0.2.2 - from2@2.3.0: dependencies: inherits: 2.0.4 @@ -9500,10 +9007,6 @@ snapshots: get-set-props@0.1.0: {} - get-stream@4.1.0: - dependencies: - pump: 3.0.0 - get-stream@6.0.1: {} get-stream@7.0.1: {} @@ -9521,10 +9024,6 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 - get-tsconfig@4.7.2: - dependencies: - resolve-pkg-maps: 1.0.0 - get-tsconfig@4.7.6: dependencies: resolve-pkg-maps: 1.0.0 @@ -9537,8 +9036,6 @@ snapshots: transitivePeerDependencies: - re2 - get-value@2.0.6: {} - getpass@0.1.7: dependencies: assert-plus: 1.0.0 @@ -9634,7 +9131,7 @@ snapshots: globals@14.0.0: {} - globals@15.8.0: {} + globals@15.9.0: {} globalthis@1.0.3: dependencies: @@ -9668,13 +9165,13 @@ snapshots: graphemer@1.4.0: {} - graphql-config@4.5.0(@types/node@20.14.11)(encoding@0.1.13)(graphql@16.9.0): + graphql-config@4.5.0(@types/node@22.2.0)(encoding@0.1.13)(graphql@16.9.0): dependencies: '@graphql-tools/graphql-file-loader': 7.5.17(graphql@16.9.0) '@graphql-tools/json-file-loader': 7.4.18(graphql@16.9.0) '@graphql-tools/load': 7.8.14(graphql@16.9.0) '@graphql-tools/merge': 8.4.2(graphql@16.9.0) - '@graphql-tools/url-loader': 7.17.18(@types/node@20.14.11)(encoding@0.1.13)(graphql@16.9.0) + '@graphql-tools/url-loader': 7.17.18(@types/node@22.2.0)(encoding@0.1.13)(graphql@16.9.0) '@graphql-tools/utils': 9.2.1(graphql@16.9.0) cosmiconfig: 8.0.0 graphql: 16.9.0 @@ -9733,29 +9230,6 @@ snapshots: dependencies: has-symbols: 1.0.3 - has-value@0.3.1: - dependencies: - get-value: 2.0.6 - has-values: 0.1.4 - isobject: 2.1.0 - - has-value@1.0.0: - dependencies: - get-value: 2.0.6 - has-values: 1.0.0 - isobject: 3.0.1 - - has-values@0.1.4: {} - - has-values@1.0.0: - dependencies: - is-number: 3.0.0 - kind-of: 4.0.0 - - hasown@2.0.0: - dependencies: - function-bind: 1.1.2 - hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -9793,7 +9267,7 @@ snapshots: http-proxy-agent@7.0.0: dependencies: agent-base: 7.1.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -9806,7 +9280,7 @@ snapshots: https-proxy-agent@7.0.2: dependencies: agent-base: 7.1.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -9814,7 +9288,7 @@ snapshots: human-signals@7.0.0: {} - husky@9.1.1: {} + husky@9.1.4: {} iconv-lite@0.6.3: dependencies: @@ -9823,11 +9297,6 @@ snapshots: ignore@5.3.1: {} - import-fresh@2.0.0: - dependencies: - caller-path: 2.0.0 - resolve-from: 3.0.0 - import-fresh@3.3.0: dependencies: parent-module: 1.0.1 @@ -9835,7 +9304,7 @@ snapshots: import-from-esm@1.3.3: dependencies: - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) import-meta-resolve: 4.0.0 transitivePeerDependencies: - supports-color @@ -9880,10 +9349,6 @@ snapshots: ip@2.0.1: optional: true - is-accessor-descriptor@1.0.1: - dependencies: - hasown: 2.0.0 - is-arguments@1.1.1: dependencies: call-bind: 1.0.7 @@ -9913,8 +9378,6 @@ snapshots: call-bind: 1.0.7 has-tostringtag: 1.0.2 - is-buffer@1.1.6: {} - is-builtin-module@3.2.1: dependencies: builtin-modules: 3.3.0 @@ -9925,10 +9388,6 @@ snapshots: dependencies: hasown: 2.0.2 - is-data-descriptor@1.0.1: - dependencies: - hasown: 2.0.0 - is-data-view@1.0.1: dependencies: is-typed-array: 1.1.13 @@ -9937,26 +9396,8 @@ snapshots: dependencies: has-tostringtag: 1.0.2 - is-descriptor@0.1.7: - dependencies: - is-accessor-descriptor: 1.0.1 - is-data-descriptor: 1.0.1 - - is-descriptor@1.0.3: - dependencies: - is-accessor-descriptor: 1.0.1 - is-data-descriptor: 1.0.1 - - is-directory@0.3.1: {} - is-docker@3.0.0: {} - is-extendable@0.1.1: {} - - is-extendable@1.0.1: - dependencies: - is-plain-object: 2.0.4 - is-extglob@2.1.1: {} is-finalizationregistry@1.0.2: @@ -10008,10 +9449,6 @@ snapshots: dependencies: has-tostringtag: 1.0.2 - is-number@3.0.0: - dependencies: - kind-of: 3.2.2 - is-number@7.0.0: {} is-obj-prop@1.0.0: @@ -10049,8 +9486,6 @@ snapshots: dependencies: call-bind: 1.0.7 - is-stream@1.1.0: {} - is-stream@3.0.0: {} is-stream@4.0.1: {} @@ -10084,8 +9519,6 @@ snapshots: call-bind: 1.0.7 get-intrinsic: 1.2.4 - is-windows@1.0.2: {} - is-wsl@3.1.0: dependencies: is-inside-container: 1.0.0 @@ -10099,10 +9532,6 @@ snapshots: isexe@3.1.1: optional: true - isobject@2.1.0: - dependencies: - isarray: 1.0.0 - isobject@3.0.1: {} isomorphic-ws@5.0.0(ws@8.13.0): @@ -10127,7 +9556,7 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.25.2 '@babel/parser': 7.24.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -10187,6 +9616,8 @@ snapshots: jsdoc-type-pratt-parser@4.0.0: {} + jsdoc-type-pratt-parser@4.1.0: {} + jsdom@6.5.1: dependencies: acorn: 2.7.0 @@ -10263,14 +9694,6 @@ snapshots: dependencies: json-buffer: 3.0.1 - kind-of@3.2.2: - dependencies: - is-buffer: 1.1.6 - - kind-of@4.0.0: - dependencies: - is-buffer: 1.1.6 - kind-of@6.0.3: {} language-subtag-registry@0.3.22: {} @@ -10289,7 +9712,7 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - lilconfig@3.1.1: {} + lilconfig@3.1.2: {} line-column-path@3.0.0: dependencies: @@ -10297,28 +9720,28 @@ snapshots: lines-and-columns@1.2.4: {} - lint-staged@15.2.7: + lint-staged@15.2.9: dependencies: chalk: 5.3.0 commander: 12.1.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) execa: 8.0.1 - lilconfig: 3.1.1 - listr2: 8.2.1 + lilconfig: 3.1.2 + listr2: 8.2.4 micromatch: 4.0.7 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.4.2 + yaml: 2.5.0 transitivePeerDependencies: - supports-color - listr2@8.2.1: + listr2@8.2.4: dependencies: cli-truncate: 4.0.0 colorette: 2.0.20 eventemitter3: 5.0.1 - log-update: 6.0.0 - rfdc: 1.3.1 + log-update: 6.1.0 + rfdc: 1.4.1 wrap-ansi: 9.0.0 load-json-file@4.0.0: @@ -10377,10 +9800,10 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 - log-update@6.0.0: + log-update@6.1.0: dependencies: - ansi-escapes: 6.2.0 - cli-cursor: 4.0.0 + ansi-escapes: 7.0.0 + cli-cursor: 5.0.0 slice-ansi: 7.1.0 strip-ansi: 7.1.0 wrap-ansi: 9.0.0 @@ -10427,12 +9850,6 @@ snapshots: - supports-color optional: true - map-cache@0.2.2: {} - - map-visit@1.0.0: - dependencies: - object-visit: 1.0.1 - markdown-contents@1.0.11: dependencies: contents: 5.0.0 @@ -10458,30 +9875,12 @@ snapshots: merge2@1.4.1: {} - meros@1.3.0(@types/node@20.14.11): + meros@1.3.0(@types/node@22.2.0): optionalDependencies: - '@types/node': 20.14.11 + '@types/node': 22.2.0 micro-spelling-correcter@1.1.1: {} - micromatch@3.1.10: - dependencies: - arr-diff: 4.0.0 - array-unique: 0.3.2 - braces: 2.3.2 - define-property: 2.0.2 - extend-shallow: 3.0.2 - extglob: 2.0.4 - fragment-cache: 0.2.1 - kind-of: 6.0.3 - nanomatch: 1.2.13 - object.pick: 1.3.0 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - micromatch@4.0.7: dependencies: braces: 3.0.3 @@ -10495,10 +9894,10 @@ snapshots: mime@4.0.1: {} - mimic-fn@2.1.0: {} - mimic-fn@4.0.0: {} + mimic-function@5.0.1: {} + min-indent@1.0.1: {} minimatch@3.0.5: @@ -10525,6 +9924,10 @@ snapshots: dependencies: brace-expansion: 2.0.1 + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + minimist@1.2.8: {} minipass-collect@2.0.1: @@ -10572,20 +9975,15 @@ snapshots: yallist: 4.0.0 optional: true - mixin-deep@1.3.2: - dependencies: - for-in: 1.0.2 - is-extendable: 1.0.1 - mkdirp@1.0.4: optional: true - mocha@10.6.0: + mocha@10.7.3: dependencies: ansi-colors: 4.1.3 browser-stdout: 1.3.1 chokidar: 3.5.3 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) diff: 5.2.0 escape-string-regexp: 4.0.0 find-up: 5.0.0 @@ -10605,8 +10003,6 @@ snapshots: moment@2.30.1: {} - ms@2.0.0: {} - ms@2.1.2: {} ms@2.1.3: {} @@ -10620,22 +10016,6 @@ snapshots: nan@2.18.0: optional: true - nanomatch@1.2.13: - dependencies: - arr-diff: 4.0.0 - array-unique: 0.3.2 - define-property: 2.0.2 - extend-shallow: 3.0.2 - fragment-cache: 0.2.1 - is-windows: 1.0.2 - kind-of: 6.0.3 - object.pick: 1.3.0 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - natural-compare-lite@1.4.0: {} natural-compare@1.4.0: {} @@ -10647,8 +10027,6 @@ snapshots: nerf-dart@1.0.0: {} - nice-try@1.0.5: {} - node-emoji@2.1.3: dependencies: '@sindresorhus/is': 4.6.0 @@ -10712,24 +10090,10 @@ snapshots: normalize-url@8.0.0: {} - npm-path@2.0.4: - dependencies: - which: 1.3.1 - - npm-run-path@2.0.2: - dependencies: - path-key: 2.0.1 - npm-run-path@5.2.0: dependencies: path-key: 4.0.0 - npm-which@3.0.1: - dependencies: - commander: 2.20.3 - npm-path: 2.0.4 - which: 1.3.1 - npm@10.5.1: {} nwmatcher@1.4.4: {} @@ -10740,12 +10104,6 @@ snapshots: object-assign@4.1.1: {} - object-copy@0.1.0: - dependencies: - copy-descriptor: 0.1.1 - define-property: 0.2.5 - kind-of: 3.2.2 - object-inspect@1.13.1: {} object-is@1.1.5: @@ -10755,10 +10113,6 @@ snapshots: object-keys@1.1.1: {} - object-visit@1.0.1: - dependencies: - isobject: 3.0.1 - object.assign@4.1.5: dependencies: call-bind: 1.0.7 @@ -10789,10 +10143,6 @@ snapshots: gopd: 1.0.1 safe-array-concat: 1.1.2 - object.pick@1.3.0: - dependencies: - isobject: 3.0.1 - object.values@1.2.0: dependencies: call-bind: 1.0.7 @@ -10803,14 +10153,14 @@ snapshots: dependencies: wrappy: 1.0.2 - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - onetime@6.0.0: dependencies: mimic-fn: 4.0.0 + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + open-editor@5.0.0: dependencies: env-editor: 1.1.0 @@ -10849,8 +10199,6 @@ snapshots: dependencies: p-map: 7.0.1 - p-finally@1.0.0: {} - p-is-promise@3.0.0: {} p-limit@1.3.0: @@ -10937,16 +10285,12 @@ snapshots: parse5@6.0.1: {} - pascalcase@0.1.1: {} - path-exists@3.0.0: {} path-exists@4.0.0: {} path-is-absolute@1.0.1: {} - path-key@2.0.1: {} - path-key@3.1.1: {} path-key@4.0.0: {} @@ -10995,8 +10339,6 @@ snapshots: pluralize@8.0.0: {} - posix-character-classes@0.1.1: {} - possible-typed-array-names@1.0.0: {} prelude-ls@1.1.2: {} @@ -11036,11 +10378,6 @@ snapshots: psl@1.9.0: {} - pump@3.0.0: - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - punycode@1.4.1: {} punycode@2.3.1: {} @@ -11140,7 +10477,7 @@ snapshots: refa@0.12.1: dependencies: - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/regexpp': 4.11.0 reflect.getprototypeof@1.0.4: dependencies: @@ -11163,14 +10500,9 @@ snapshots: dependencies: '@babel/runtime': 7.23.6 - regex-not@1.0.2: - dependencies: - extend-shallow: 3.0.2 - safe-regex: 1.1.0 - regexp-ast-analysis@0.7.1: dependencies: - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/regexpp': 4.11.0 refa: 0.12.1 regexp-tree@0.1.27: {} @@ -11205,10 +10537,6 @@ snapshots: remove-trailing-separator@1.1.0: {} - repeat-element@1.1.4: {} - - repeat-string@1.6.1: {} - replace@1.2.2: dependencies: chalk: 2.4.2 @@ -11246,16 +10574,12 @@ snapshots: requireindex@1.1.0: {} - resolve-from@3.0.0: {} - resolve-from@4.0.0: {} resolve-from@5.0.0: {} resolve-pkg-maps@1.0.0: {} - resolve-url@0.2.1: {} - resolve@1.22.8: dependencies: is-core-module: 2.13.1 @@ -11268,19 +10592,17 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - restore-cursor@4.0.0: + restore-cursor@5.1.0: dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - - ret@0.1.15: {} + onetime: 7.0.0 + signal-exit: 4.1.0 retry@0.12.0: optional: true reusify@1.0.4: {} - rfdc@1.3.1: {} + rfdc@1.4.1: {} rimraf@3.0.2: dependencies: @@ -11319,17 +10641,13 @@ snapshots: es-errors: 1.3.0 is-regex: 1.1.4 - safe-regex@1.1.0: - dependencies: - ret: 0.1.15 - safe-stable-stringify@2.4.3: {} safer-buffer@2.1.2: {} scslre@0.3.0: dependencies: - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/regexpp': 4.11.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 @@ -11337,12 +10655,12 @@ snapshots: dependencies: '@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.1.0(semantic-release@24.0.0(typescript@5.5.3)) + '@semantic-release/github': 10.1.4(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.5.3) - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) env-ci: 11.0.0 execa: 9.1.0 figures: 6.1.0 @@ -11404,27 +10722,14 @@ snapshots: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 - set-value@2.0.1: - dependencies: - extend-shallow: 2.0.1 - is-extendable: 0.1.1 - is-plain-object: 2.0.4 - split-string: 3.1.0 - shallow-clone@3.0.1: dependencies: kind-of: 6.0.3 - shebang-command@1.2.0: - dependencies: - shebang-regex: 1.0.0 - shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 - shebang-regex@1.0.0: {} - shebang-regex@3.0.0: {} side-channel@1.0.6: @@ -11434,8 +10739,6 @@ snapshots: get-intrinsic: 1.2.4 object-inspect: 1.13.1 - signal-exit@3.0.7: {} - signal-exit@4.1.0: {} signale@1.4.0: @@ -11471,33 +10774,10 @@ snapshots: smart-buffer@4.2.0: optional: true - snapdragon-node@2.1.1: - dependencies: - define-property: 1.0.0 - isobject: 3.0.1 - snapdragon-util: 3.0.1 - - snapdragon-util@3.0.1: - dependencies: - kind-of: 3.2.2 - - snapdragon@0.8.2: - dependencies: - base: 0.11.2 - debug: 2.6.9 - define-property: 0.2.5 - extend-shallow: 2.0.1 - map-cache: 0.2.2 - source-map: 0.5.7 - source-map-resolve: 0.5.3 - use: 3.1.1 - transitivePeerDependencies: - - supports-color - socks-proxy-agent@8.0.2: dependencies: agent-base: 7.1.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) socks: 2.7.1 transitivePeerDependencies: - supports-color @@ -11509,23 +10789,11 @@ snapshots: smart-buffer: 4.2.0 optional: true - source-map-resolve@0.5.3: - dependencies: - atob: 2.1.2 - decode-uri-component: 0.2.2 - resolve-url: 0.2.1 - source-map-url: 0.4.1 - urix: 0.1.0 - source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - source-map-url@0.4.1: {} - - source-map@0.5.7: {} - source-map@0.6.1: {} source-map@0.7.4: @@ -11552,10 +10820,6 @@ snapshots: spdx-license-ids@3.0.16: {} - split-string@3.1.0: - dependencies: - extend-shallow: 3.0.2 - split2@1.0.0: dependencies: through2: 2.0.5 @@ -11583,11 +10847,6 @@ snapshots: stack-trace@0.0.10: {} - static-extend@0.1.2: - dependencies: - define-property: 0.2.5 - object-copy: 0.1.0 - stop-iteration-iterator@1.0.0: dependencies: internal-slot: 1.0.7 @@ -11599,8 +10858,6 @@ snapshots: streamsearch@1.1.0: {} - string-argv@0.1.2: {} - string-argv@0.3.2: {} string-env-interpolation@1.0.1: {} @@ -11687,8 +10944,6 @@ snapshots: strip-bom@3.0.0: {} - strip-eof@1.0.0: {} - strip-final-newline@3.0.0: {} strip-final-newline@4.0.0: {} @@ -11737,11 +10992,6 @@ snapshots: dependencies: tslib: 2.6.2 - synckit@0.8.8: - dependencies: - '@pkgr/core': 0.1.0 - tslib: 2.6.2 - synckit@0.9.1: dependencies: '@pkgr/core': 0.1.0 @@ -11803,26 +11053,10 @@ snapshots: to-fast-properties@2.0.0: {} - to-object-path@0.3.0: - dependencies: - kind-of: 3.2.2 - - to-regex-range@2.1.1: - dependencies: - is-number: 3.0.0 - repeat-string: 1.6.1 - to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - to-regex@3.0.2: - dependencies: - define-property: 2.0.2 - extend-shallow: 3.0.2 - regex-not: 1.0.2 - safe-regex: 1.1.0 - tough-cookie@2.5.0: dependencies: psl: 1.9.0 @@ -11922,11 +11156,11 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - typescript-eslint@8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3): + typescript-eslint@8.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.0.0-alpha.34(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) - '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3) - '@typescript-eslint/utils': 8.0.0-alpha.34(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/eslint-plugin': 8.1.0(@typescript-eslint/parser@8.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3))(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + '@typescript-eslint/parser': 8.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) + '@typescript-eslint/utils': 8.1.0(eslint@9.9.0(jiti@1.17.1))(typescript@5.5.3) optionalDependencies: typescript: 5.5.3 transitivePeerDependencies: @@ -11945,7 +11179,7 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - undici-types@5.26.5: {} + undici-types@6.13.0: {} unicode-canonical-property-names-ecmascript@2.0.0: {} @@ -11962,13 +11196,6 @@ snapshots: unicorn-magic@0.1.0: {} - union-value@1.0.1: - dependencies: - arr-union: 3.1.0 - get-value: 2.0.6 - is-extendable: 0.1.1 - set-value: 2.0.1 - unique-filename@3.0.0: dependencies: unique-slug: 4.0.0 @@ -11991,17 +11218,6 @@ snapshots: dependencies: normalize-path: 2.1.1 - unset-value@1.0.0: - dependencies: - has-value: 0.3.1 - isobject: 3.0.1 - - update-browserslist-db@1.0.13(browserslist@4.23.0): - dependencies: - browserslist: 4.23.0 - escalade: 3.1.1 - picocolors: 1.0.0 - update-browserslist-db@1.1.0(browserslist@4.23.2): dependencies: browserslist: 4.23.2 @@ -12012,8 +11228,6 @@ snapshots: dependencies: punycode: 2.3.1 - urix@0.1.0: {} - url-join@5.0.0: {} url-regex-safe@4.0.0(re2@1.20.9): @@ -12027,8 +11241,6 @@ snapshots: urlpattern-polyfill@8.0.2: {} - use@3.1.1: {} - util-deprecate@1.0.2: {} util@0.12.5: @@ -12125,10 +11337,6 @@ snapshots: gopd: 1.0.1 has-tostringtag: 1.0.2 - which@1.3.1: - dependencies: - isexe: 2.0.0 - which@2.0.2: dependencies: isexe: 2.0.0 @@ -12201,13 +11409,13 @@ snapshots: yaml@2.4.2: {} + yaml@2.5.0: {} + yargs-parser@18.1.3: dependencies: camelcase: 5.3.1 decamelize: 1.2.0 - yargs-parser@20.2.4: {} - yargs-parser@20.2.9: {} yargs-parser@21.1.1: {} @@ -12236,12 +11444,12 @@ snapshots: yargs@16.2.0: dependencies: cliui: 7.0.4 - escalade: 3.1.1 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 - yargs-parser: 20.2.4 + yargs-parser: 20.2.9 yargs@17.7.2: dependencies: diff --git a/src/getJsdocProcessorPlugin.js b/src/getJsdocProcessorPlugin.js index 36eb544f6..ac44475e2 100644 --- a/src/getJsdocProcessorPlugin.js +++ b/src/getJsdocProcessorPlugin.js @@ -86,7 +86,7 @@ const getLinesCols = (text) => { * @property {string} [exampleCodeRegex] * @property {string} [rejectExampleCodeRegex] * @property {"script"|"module"} [sourceType] - * @property {import('eslint').Linter.FlatConfigParserModule} [parser] + * @property {import('eslint').Linter.ESTreeParser|import('eslint').Linter.NonESTreeParser} [parser] */ /** @@ -486,7 +486,7 @@ export const getJsdocProcessorPlugin = (options = {}) => { // May be running a second time so catch and ignore try { ast = parser - // @ts-expect-error Ok + // @ts-expect-error Should be present ? parser.parseForESLint(text, { ecmaVersion: 'latest', sourceType, diff --git a/src/utils/hasReturnValue.js b/src/utils/hasReturnValue.js index 9f370c36f..1809cabc1 100644 --- a/src/utils/hasReturnValue.js +++ b/src/utils/hasReturnValue.js @@ -20,8 +20,11 @@ const isNewPromiseExpression = (node) => { */ const isVoidPromise = (node) => { return /** @type {import('@typescript-eslint/types').TSESTree.TSTypeReference} */ (node)?.typeArguments?.params?.[0]?.type === 'TSVoidKeyword' - /* c8 ignore next */ - || /** @type {import('@typescript-eslint/types').TSESTree.TSTypeReference} */ (node)?.typeParameters?.params?.[0]?.type === 'TSVoidKeyword'; + /* c8 ignore next 4 */ + || /** @type {import('@typescript-eslint/types').TSESTree.TSTypeReference} */ ( + node + // @ts-expect-error Ok + )?.typeParameters?.params?.[0]?.type === 'TSVoidKeyword'; }; const undefinedKeywords = new Set([ diff --git a/test/rules/assertions/requireHyphenBeforeParamDescription.js b/test/rules/assertions/requireHyphenBeforeParamDescription.js index 34e527d6b..919b6b554 100644 --- a/test/rules/assertions/requireHyphenBeforeParamDescription.js +++ b/test/rules/assertions/requireHyphenBeforeParamDescription.js @@ -591,5 +591,23 @@ export default { 'never', ], }, + { + code: ` + /** + * @template {any} T - Arg 1 + * @template {string | number} K - Arg 2 + * @template {any} [R=(K extends keyof T ? T[K] : never)] - Arg 3 -> Errors here + * @typedef {any} Test + */ + `, + options: [ + 'always', + { + tags: { + template: 'always' + } + } + ], + }, ], }; From 6e82aeb66a8402f2820143cb396f7c55b1621783 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 13 Aug 2024 20:13:12 +0800 Subject: [PATCH 237/273] docs: mark `lines-before-block` as not currently recommended --- .README/README.md | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.README/README.md b/.README/README.md index bb122ae0c..9a26bce23 100644 --- a/.README/README.md +++ b/.README/README.md @@ -247,7 +247,7 @@ non-default-recommended fixer). |:heavy_check_mark:|:wrench:|[empty-tags](./docs/rules/empty-tags.md#readme)|Checks tags that are expected to be empty (e.g., `@abstract` or `@async`), reporting if they have content| |:heavy_check_mark:||[implements-on-classes](./docs/rules/implements-on-classes.md#readme)|Prohibits use of `@implements` on non-constructor functions (to enforce the tag only being used on classes/constructors)| |||[informative-docs](./docs/rules/informative-docs.md#readme)|Reports on JSDoc texts that serve only to restate their attached name.| -|:heavy_check_mark:||[lines-before-block](./docs/rules/lines-before-block.md#readme)|Enforces minimum number of newlines before JSDoc comment blocks| +|||[lines-before-block](./docs/rules/lines-before-block.md#readme)|Enforces minimum number of newlines before JSDoc comment blocks| |||[match-description](./docs/rules/match-description.md#readme)|Defines customizable regular expression rules for your tag descriptions| ||:wrench:|[match-name](./docs/rules/match-name.md#readme)|Reports the name portion of a JSDoc tag if matching or not matching a given regular expression| |:heavy_check_mark:|:wrench:|[multiline-blocks](./docs/rules/multiline-blocks.md#readme)|Controls how and whether jsdoc blocks can be expressed as single or multiple line blocks| diff --git a/README.md b/README.md index 09975474a..4d1c72006 100644 --- a/README.md +++ b/README.md @@ -277,7 +277,7 @@ non-default-recommended fixer). |:heavy_check_mark:|:wrench:|[empty-tags](./docs/rules/empty-tags.md#readme)|Checks tags that are expected to be empty (e.g., `@abstract` or `@async`), reporting if they have content| |:heavy_check_mark:||[implements-on-classes](./docs/rules/implements-on-classes.md#readme)|Prohibits use of `@implements` on non-constructor functions (to enforce the tag only being used on classes/constructors)| |||[informative-docs](./docs/rules/informative-docs.md#readme)|Reports on JSDoc texts that serve only to restate their attached name.| -|:heavy_check_mark:||[lines-before-block](./docs/rules/lines-before-block.md#readme)|Enforces minimum number of newlines before JSDoc comment blocks| +|||[lines-before-block](./docs/rules/lines-before-block.md#readme)|Enforces minimum number of newlines before JSDoc comment blocks| |||[match-description](./docs/rules/match-description.md#readme)|Defines customizable regular expression rules for your tag descriptions| ||:wrench:|[match-name](./docs/rules/match-name.md#readme)|Reports the name portion of a JSDoc tag if matching or not matching a given regular expression| |:heavy_check_mark:|:wrench:|[multiline-blocks](./docs/rules/multiline-blocks.md#readme)|Controls how and whether jsdoc blocks can be expressed as single or multiple line blocks| From aed319438250b516756922aa6d5562e819af2977 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josh=20Goldberg=20=E2=9C=A8?= Date: Tue, 13 Aug 2024 13:04:16 -0400 Subject: [PATCH 238/273] feat: added granular flat TypeScript configs (#1298) * feat: added granular flat TypeScript configs --------- Co-authored-by: Brett Zamir * docs: add rationales section --- .README/README.md | 69 +++++++++++++++++++++++++++ README.md | 73 +++++++++++++++++++++++++++++ src/index.js | 117 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 259 insertions(+) diff --git a/.README/README.md b/.README/README.md index 9a26bce23..b3119911a 100644 --- a/.README/README.md +++ b/.README/README.md @@ -50,6 +50,75 @@ const config = [ export default config; ``` +The general starting rulesets you can extend from in flat config are: + +- `jsdoc.configs['flat/recommended']`: Recommended starting rules for enforcing proper tag values, that common tags exist, and that tags are formatted and styled consistently + - `jsdoc.configs['flat/recommended-error']`: The same, reporting with failing errors instead of mere warnings +- `jsdoc.configs['flat/recommended-typescript']`: A similar recommended starting list, adjusted for projects using TypeScript syntax (and not just the "typescript" `mode` setting) + - `jsdoc.configs['flat/recommended-typescript-error']`: The same, reporting with failing errors instead of mere warnings +- `jsdoc.configs['flat/recommended-typescript-flavor']`: A similar recommended starting list, adjusted for projects using JavaScript syntax (source files that are still `.js`) but using TypeScript flavor within JSDoc (i.e., the default "typescript" `mode` in `eslint-plugin-jsdoc`) + - `jsdoc.configs['flat/recommended-typescript-flavor-error']`: The same, reporting with failing errors instead of mere warnings + +#### Granular Flat Configs + +There also exist several more granular, standalone TypeScript rulesets you can extend from. +These each only enable mostly or only rules from the recommended starting rules: + +- **Contents**: rules that check names and descriptions + - `jsdoc.configs['flat/contents-typescript']`: for TypeScript files, with reports set to warn + - `jsdoc.configs['flat/contents-typescript-error']`: for TypeScript files, with reports set to error + - `jsdoc.configs['flat/contents-typescript-flavor']`: for files using JavaScript syntax and JSDoc types, with reports set to warn + - `jsdoc.configs['flat/contents-typescript-flavor-error']`: for files using JavaScript syntax and JSDoc types, with reports set to error +- **Logical**: rules that enforce proper tag values + - `jsdoc.configs['flat/logical-typescript']`: for TypeScript files, with reports set to warn + - `jsdoc.configs['flat/logical-typescript-error']`: for TypeScript files, with reports set to error + - `jsdoc.configs['flat/logical-typescript-flavor']`: for files using JavaScript syntax and JSDoc types, with reports set to warn + - `jsdoc.configs['flat/logical-typescript-flavor-error']`: for files using JavaScript syntax and JSDoc types, with reports set to error +- **Requirements**: rules that enforce tags exist + - `jsdoc.configs['flat/requirements-typescript']`: for TypeScript files, with reports set to warn + - `jsdoc.configs['flat/requirements-typescript-error']`: for TypeScript files, with reports set to error + - `jsdoc.configs['flat/requirements-typescript-flavor']`: for files using JavaScript syntax and JSDoc types, with reports set to warn + - `jsdoc.configs['flat/requirements-typescript-flavor-error']`: for files using JavaScript syntax and JSDoc types, with reports set to error +- **Stylistic**: rules that enforce clear, consistent tag formatting and styles + - `jsdoc.configs['flat/stylistic-typescript']`: for TypeScript files, with reports set to warn + - `jsdoc.configs['flat/stylistic-typescript-error']`: for TypeScript files, with reports set to error + - `jsdoc.configs['flat/stylistic-typescript-flavor']`: for files using JavaScript syntax and JSDoc types, with reports set to warn + - `jsdoc.configs['flat/stylistic-typescript-flavor-error']`: for files using JavaScript syntax and JSDoc types, with reports set to error + +For example, to enforce only that any JSDoc tags and their contents are valid and styled consistently in TypeScript files, without enforcing that tags must always exist: + +```js +import jsdoc from 'eslint-plugin-jsdoc'; + +export default [ + jsdoc.configs['flat/contents-typescript-error'], + jsdoc.configs['flat/logical-typescript-error'], + jsdoc.configs['flat/stylistic-typescript-error'], +]; +``` + +##### Why certain rules were excluded from the granular configs + +A few rules were left out of the granular configs. Here is why: + +Rules which might have been added to `required`: + - [`require-throws`](./docs/rules/require-throws.md#readme) - Since this can't enforce all cases, some may not wish this rule enforced. + - [`require-file-overview`](./docs/rules/require-file-overview.md#readme) - Too demanding for all projects + - [`convert-to-jsdoc-comments`](./docs/rules/convert-to-jsdoc-comments.md#readme) - Overly aggressive for some projects + +Rules which might have been added to `logical`: + - [`no-missing-syntax`](./docs/rules/no-missing-syntax.md#readme) - Has no default options. + - [`no-restricted-syntax`](./docs/rules/no-restricted-syntax.md#readme) - Has no default options. + +Rules which might have been added to `contents`: + - [`match-name`](./docs/rules/match-name.md#readme) - Has no default options. + - [`require-description`](./docs/rules/require-description.md#readme) - Too demanding for all projects + - [`require-description-complete-sentence`](./docs/rules/require-description-complete-sentence.md#readme) - Too demanding for all projects + +Rules which might have been added to `stylistic`: + - [`check-indentation`](./docs/rules/check-indentation.md#readme) - May not be desired by all projects + - [`sort-tags`](./docs/rules/sort-tags.md#readme) - Too project-specific + ### `eslintrc` Add `plugins` section to [.eslintrc.*](https://eslint.org/docs/user-guide/configuring#configuration-file-formats) diff --git a/README.md b/README.md index 4d1c72006..6835f072c 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,79 @@ const config = [ export default config; ``` +The general starting rulesets you can extend from in flat config are: + +- `jsdoc.configs['flat/recommended']`: Recommended starting rules for enforcing proper tag values, that common tags exist, and that tags are formatted and styled consistently + - `jsdoc.configs['flat/recommended-error']`: The same, reporting with failing errors instead of mere warnings +- `jsdoc.configs['flat/recommended-typescript']`: A similar recommended starting list, adjusted for projects using TypeScript syntax (and not just the "typescript" `mode` setting) + - `jsdoc.configs['flat/recommended-typescript-error']`: The same, reporting with failing errors instead of mere warnings +- `jsdoc.configs['flat/recommended-typescript-flavor']`: A similar recommended starting list, adjusted for projects using JavaScript syntax (source files that are still `.js`) but using TypeScript flavor within JSDoc (i.e., the default "typescript" `mode` in `eslint-plugin-jsdoc`) + - `jsdoc.configs['flat/recommended-typescript-flavor-error']`: The same, reporting with failing errors instead of mere warnings + + + +#### Granular Flat Configs + +There also exist several more granular, standalone TypeScript rulesets you can extend from. +These each only enable mostly or only rules from the recommended starting rules: + +- **Contents**: rules that check names and descriptions + - `jsdoc.configs['flat/contents-typescript']`: for TypeScript files, with reports set to warn + - `jsdoc.configs['flat/contents-typescript-error']`: for TypeScript files, with reports set to error + - `jsdoc.configs['flat/contents-typescript-flavor']`: for files using JavaScript syntax and JSDoc types, with reports set to warn + - `jsdoc.configs['flat/contents-typescript-flavor-error']`: for files using JavaScript syntax and JSDoc types, with reports set to error +- **Logical**: rules that enforce proper tag values + - `jsdoc.configs['flat/logical-typescript']`: for TypeScript files, with reports set to warn + - `jsdoc.configs['flat/logical-typescript-error']`: for TypeScript files, with reports set to error + - `jsdoc.configs['flat/logical-typescript-flavor']`: for files using JavaScript syntax and JSDoc types, with reports set to warn + - `jsdoc.configs['flat/logical-typescript-flavor-error']`: for files using JavaScript syntax and JSDoc types, with reports set to error +- **Requirements**: rules that enforce tags exist + - `jsdoc.configs['flat/requirements-typescript']`: for TypeScript files, with reports set to warn + - `jsdoc.configs['flat/requirements-typescript-error']`: for TypeScript files, with reports set to error + - `jsdoc.configs['flat/requirements-typescript-flavor']`: for files using JavaScript syntax and JSDoc types, with reports set to warn + - `jsdoc.configs['flat/requirements-typescript-flavor-error']`: for files using JavaScript syntax and JSDoc types, with reports set to error +- **Stylistic**: rules that enforce clear, consistent tag formatting and styles + - `jsdoc.configs['flat/stylistic-typescript']`: for TypeScript files, with reports set to warn + - `jsdoc.configs['flat/stylistic-typescript-error']`: for TypeScript files, with reports set to error + - `jsdoc.configs['flat/stylistic-typescript-flavor']`: for files using JavaScript syntax and JSDoc types, with reports set to warn + - `jsdoc.configs['flat/stylistic-typescript-flavor-error']`: for files using JavaScript syntax and JSDoc types, with reports set to error + +For example, to enforce only that any JSDoc tags and their contents are valid and styled consistently in TypeScript files, without enforcing that tags must always exist: + +```js +import jsdoc from 'eslint-plugin-jsdoc'; + +export default [ + jsdoc.configs['flat/contents-typescript-error'], + jsdoc.configs['flat/logical-typescript-error'], + jsdoc.configs['flat/stylistic-typescript-error'], +]; +``` + + + +##### Why certain rules were excluded from the granular configs + +A few rules were left out of the granular configs. Here is why: + +Rules which might have been added to `required`: + - [`require-throws`](./docs/rules/require-throws.md#readme) - Since this can't enforce all cases, some may not wish this rule enforced. + - [`require-file-overview`](./docs/rules/require-file-overview.md#readme) - Too demanding for all projects + - [`convert-to-jsdoc-comments`](./docs/rules/convert-to-jsdoc-comments.md#readme) - Overly aggressive for some projects + +Rules which might have been added to `logical`: + - [`no-missing-syntax`](./docs/rules/no-missing-syntax.md#readme) - Has no default options. + - [`no-restricted-syntax`](./docs/rules/no-restricted-syntax.md#readme) - Has no default options. + +Rules which might have been added to `contents`: + - [`match-name`](./docs/rules/match-name.md#readme) - Has no default options. + - [`require-description`](./docs/rules/require-description.md#readme) - Too demanding for all projects + - [`require-description-complete-sentence`](./docs/rules/require-description-complete-sentence.md#readme) - Too demanding for all projects + +Rules which might have been added to `stylistic`: + - [`check-indentation`](./docs/rules/check-indentation.md#readme) - May not be desired by all projects + - [`sort-tags`](./docs/rules/sort-tags.md#readme) - Too project-specific + ### eslintrc diff --git a/src/index.js b/src/index.js index d0a8ed4b5..b9e9f1354 100644 --- a/src/index.js +++ b/src/index.js @@ -260,6 +260,106 @@ const createRecommendedTypeScriptFlavorRuleset = (warnOrError, flatName) => { }; }; +/** + * @param {(string | unknown[])[]} ruleNames + */ +const createStandaloneRulesetFactory = (ruleNames) => { + /** + * @param {"warn"|"error"} warnOrError + * @param {string} [flatName] + * @returns {import('eslint').Linter.FlatConfig} + */ + return (warnOrError, flatName) => { + return { + name: 'jsdoc/' + flatName, + plugins: { jsdoc: index }, + rules: Object.fromEntries( + ruleNames.map( + ruleName => + typeof ruleName === "string" + ? [ruleName, warnOrError] + : [ruleName[0], warnOrError, ...ruleName.slice(1)] + ) + ), + }; + }; +} + +const contentsRules = [ + 'jsdoc/informative-docs', + 'jsdoc/match-description', + 'jsdoc/no-blank-block-descriptions', + 'jsdoc/no-blank-blocks', + ['jsdoc/text-escaping', { escapeHTML: true }] +] + +const createContentsTypescriptRuleset = createStandaloneRulesetFactory(contentsRules); + +const createContentsTypescriptFlavorRuleset = createStandaloneRulesetFactory(contentsRules); + +const logicalRules = [ + 'jsdoc/check-access', + 'jsdoc/check-param-names', + 'jsdoc/check-property-names', + 'jsdoc/check-syntax', + 'jsdoc/check-tag-names', + 'jsdoc/check-template-names', + 'jsdoc/check-types', + 'jsdoc/check-values', + 'jsdoc/empty-tags', + 'jsdoc/implements-on-classes', + 'jsdoc/require-returns-check', + 'jsdoc/require-yields-check', + 'jsdoc/no-bad-blocks', + 'jsdoc/no-defaults', + 'jsdoc/no-types', + 'jsdoc/no-undefined-types', + 'jsdoc/valid-types', +]; + +const createLogicalTypescriptRuleset = createStandaloneRulesetFactory(logicalRules); + +const createLogicalTypescriptFlavorRuleset = createStandaloneRulesetFactory(logicalRules); + +const requirementsRules = [ + 'jsdoc/require-example', + 'jsdoc/require-jsdoc', + 'jsdoc/require-param', + 'jsdoc/require-param-description', + 'jsdoc/require-param-name', + 'jsdoc/require-property', + 'jsdoc/require-property-description', + 'jsdoc/require-property-name', + 'jsdoc/require-returns', + 'jsdoc/require-returns-description', + 'jsdoc/require-yields', +]; + +const createRequirementsTypeScriptRuleset = createStandaloneRulesetFactory(requirementsRules); + +const createRequirementsTypeScriptFlavorRuleset = createStandaloneRulesetFactory([ + ...requirementsRules, + 'jsdoc/require-param-type', + 'jsdoc/require-property-type', + 'jsdoc/require-returns-type', + 'jsdoc/require-template', +]); + +const stylisticRules = [ + 'jsdoc/check-alignment', + 'jsdoc/check-line-alignment', + 'jsdoc/lines-before-block', + 'jsdoc/multiline-blocks', + 'jsdoc/no-multi-asterisks', + 'jsdoc/require-asterisk-prefix', + ['jsdoc/require-hyphen-before-param-description', 'never'], + 'jsdoc/tag-lines', +]; + +const createStylisticTypeScriptRuleset = createStandaloneRulesetFactory(stylisticRules); + +const createStylisticTypeScriptFlavorRuleset = createStandaloneRulesetFactory(stylisticRules); + /* c8 ignore next 3 -- TS */ if (!index.configs) { throw new Error('TypeScript guard'); @@ -279,6 +379,23 @@ index.configs['flat/recommended-typescript-error'] = createRecommendedTypeScript index.configs['flat/recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn', 'flat/recommended-typescript-flavor'); index.configs['flat/recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error', 'flat/recommended-typescript-flavor-error'); +index.configs['flat/contents-typescript'] = createContentsTypescriptRuleset('warn', 'flat/contents-typescript'); +index.configs['flat/contents-typescript-error'] = createContentsTypescriptRuleset('error', 'flat/contents-typescript-error'); +index.configs['flat/contents-typescript-flavor'] = createContentsTypescriptFlavorRuleset('warn', 'flat/contents-typescript-flavor'); +index.configs['flat/contents-typescript-flavor-error'] = createContentsTypescriptFlavorRuleset('error', 'flat/contents-typescript-error-flavor'); +index.configs['flat/logical-typescript'] = createLogicalTypescriptRuleset('warn', 'flat/logical-typescript'); +index.configs['flat/logical-typescript-error'] = createLogicalTypescriptRuleset('error', 'flat/logical-typescript-error'); +index.configs['flat/logical-typescript-flavor'] = createLogicalTypescriptFlavorRuleset('warn', 'flat/logical-typescript-flavor'); +index.configs['flat/logical-typescript-flavor-error'] = createLogicalTypescriptFlavorRuleset('error', 'flat/logical-typescript-error-flavor'); +index.configs['flat/requirements-typescript'] = createRequirementsTypeScriptRuleset('warn', 'flat/requirements-typescript'); +index.configs['flat/requirements-typescript-error'] = createRequirementsTypeScriptRuleset('error', 'flat/requirements-typescript-error'); +index.configs['flat/requirements-typescript-flavor'] = createRequirementsTypeScriptFlavorRuleset('warn', 'flat/requirements-typescript-flavor'); +index.configs['flat/requirements-typescript-flavor-error'] = createRequirementsTypeScriptFlavorRuleset('error', 'flat/requirements-typescript-error-flavor'); +index.configs['flat/stylistic-typescript'] = createStylisticTypeScriptRuleset('warn', 'flat/stylistic-typescript'); +index.configs['flat/stylistic-typescript-error'] = createStylisticTypeScriptRuleset('error', 'flat/stylistic-typescript-error'); +index.configs['flat/stylistic-typescript-flavor'] = createStylisticTypeScriptFlavorRuleset('warn', 'flat/stylistic-typescript-flavor'); +index.configs['flat/stylistic-typescript-flavor-error'] = createStylisticTypeScriptFlavorRuleset('error', 'flat/stylistic-typescript-error-flavor'); + index.configs.examples = /** @type {import('eslint').Linter.FlatConfig[]} */ ([ { name: 'jsdoc/examples/processor', From 964712b9f9a6fc0c0ef7bff5e275e1782e77a6bd Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Tue, 13 Aug 2024 14:19:37 -0400 Subject: [PATCH 239/273] fix: properly include options in ruleset factories --- src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index b9e9f1354..eaf2e2039 100644 --- a/src/index.js +++ b/src/index.js @@ -278,7 +278,7 @@ const createStandaloneRulesetFactory = (ruleNames) => { ruleName => typeof ruleName === "string" ? [ruleName, warnOrError] - : [ruleName[0], warnOrError, ...ruleName.slice(1)] + : [ruleName[0], [warnOrError, ...ruleName.slice(1)]] ) ), }; From b039833bfc27b28bfc2663e3a0d9349332a63e45 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 14 Aug 2024 22:30:21 +0800 Subject: [PATCH 240/273] docs(text-escaping): indicate defaults for `escapeHTML` --- .README/rules/no-bad-blocks.md | 2 +- .README/rules/text-escaping.md | 4 +++- docs/rules/no-bad-blocks.md | 2 +- docs/rules/text-escaping.md | 4 +++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.README/rules/no-bad-blocks.md b/.README/rules/no-bad-blocks.md index ebbabaea7..42f917a13 100644 --- a/.README/rules/no-bad-blocks.md +++ b/.README/rules/no-bad-blocks.md @@ -6,7 +6,7 @@ This rule checks for multi-line-style comments which fail to meet the criteria of a JSDoc block, namely that it should begin with two and only two asterisks, but which appear to be intended as JSDoc blocks due to the presence of whitespace followed by whitespace or asterisks, and -an at-sign (`@`) and some non-whitespace (as with a jsdoc block tag). +an at-sign (`@`) and some non-whitespace (as with a JSDoc block tag). Exceptions are made for ESLint directive comments (which may use `@` in rule names). diff --git a/.README/rules/text-escaping.md b/.README/rules/text-escaping.md index 0416152eb..e5a50c300 100644 --- a/.README/rules/text-escaping.md +++ b/.README/rules/text-escaping.md @@ -19,11 +19,13 @@ within it or your documentation. ### `escapeHTML` This option escapes all `<` and `&` characters (except those followed by -whitespace which are treated as literals by Visual Studio Code). +whitespace which are treated as literals by Visual Studio Code). Defaults to +`false`. ### `escapeMarkdown` This option escapes the first backtick (`` ` ``) in a paired sequence. +Defaults to `false`. ## Context and settings diff --git a/docs/rules/no-bad-blocks.md b/docs/rules/no-bad-blocks.md index 409b4249b..f362a8743 100644 --- a/docs/rules/no-bad-blocks.md +++ b/docs/rules/no-bad-blocks.md @@ -8,7 +8,7 @@ This rule checks for multi-line-style comments which fail to meet the criteria of a JSDoc block, namely that it should begin with two and only two asterisks, but which appear to be intended as JSDoc blocks due to the presence of whitespace followed by whitespace or asterisks, and -an at-sign (`@`) and some non-whitespace (as with a jsdoc block tag). +an at-sign (`@`) and some non-whitespace (as with a JSDoc block tag). Exceptions are made for ESLint directive comments (which may use `@` in rule names). diff --git a/docs/rules/text-escaping.md b/docs/rules/text-escaping.md index 99d79ab92..e7c229b0a 100644 --- a/docs/rules/text-escaping.md +++ b/docs/rules/text-escaping.md @@ -34,13 +34,15 @@ within it or your documentation. ### escapeHTML This option escapes all `<` and `&` characters (except those followed by -whitespace which are treated as literals by Visual Studio Code). +whitespace which are treated as literals by Visual Studio Code). Defaults to +`false`. ### escapeMarkdown This option escapes the first backtick (`` ` ``) in a paired sequence. +Defaults to `false`. From 288f0ae5d45183321493131ecf8c377fd6a5a5f3 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 14 Aug 2024 22:34:21 +0800 Subject: [PATCH 241/273] fix(`check-param-names`): check against whitelist of acceptable function nodes so that non-function global contexts do not err; fixes #1303 Also adds warning in docs for use of global settings contexts. --- .README/settings.md | 8 ++++++-- docs/rules/check-param-names.md | 10 ++++++++++ docs/rules/require-param.md | 9 +++++++++ docs/settings.md | 8 ++++++-- src/rules/checkParamNames.js | 22 +++++++++++++++++----- test/rules/assertions/checkParamNames.js | 23 +++++++++++++++++++++++ test/rules/assertions/requireParam.js | 22 ++++++++++++++++++++++ 7 files changed, 93 insertions(+), 9 deletions(-) diff --git a/.README/settings.md b/.README/settings.md index 73dacdd76..858e6c39c 100644 --- a/.README/settings.md +++ b/.README/settings.md @@ -329,5 +329,9 @@ values are objects with the following optional properties: ### `contexts` `settings.jsdoc.contexts` can be used as the default for any rules -with a `contexts` property option. See the "AST and Selectors" section -for more on this format. +with a `contexts` property option. **Please note**: This will replace any +default contexts, including for function rules, so if, for example, you exclude +`FunctionDeclaration` here, rules like `require-param` will not check +function declarations. + +See the "AST and Selectors" section for more on this format. diff --git a/docs/rules/check-param-names.md b/docs/rules/check-param-names.md index 10db07997..73d6f94c8 100644 --- a/docs/rules/check-param-names.md +++ b/docs/rules/check-param-names.md @@ -1119,5 +1119,15 @@ function quux (foo, bar) { export function fn(...[type, arg]: FnArgs): void { // ... } + +/** + * @param c c + * @param d d + */ +const inner = (c: number, d: string): void => { + console.log(c); + console.log(d); +}; +// Settings: {"jsdoc":{"contexts":["VariableDeclaration"]}} ```` diff --git a/docs/rules/require-param.md b/docs/rules/require-param.md index eb5eb271c..fa6006553 100644 --- a/docs/rules/require-param.md +++ b/docs/rules/require-param.md @@ -1804,5 +1804,14 @@ function a (b) {} function sumDestructure(this: unknown, { a, b }: { a: number, b: number }) { return a + b; } + +/** + * + */ +const inner = (c: number, d: string): void => { + console.log(c); + console.log(d); +}; +// Settings: {"jsdoc":{"contexts":["VariableDeclaration"]}} ```` diff --git a/docs/settings.md b/docs/settings.md index ab436ae8a..97648c26e 100644 --- a/docs/settings.md +++ b/docs/settings.md @@ -358,5 +358,9 @@ values are objects with the following optional properties: ### contexts `settings.jsdoc.contexts` can be used as the default for any rules -with a `contexts` property option. See the "AST and Selectors" section -for more on this format. +with a `contexts` property option. **Please note**: This will replace any +default contexts, including for function rules, so if, for example, you exclude +`FunctionDeclaration` here, rules like `require-param` will not check +function declarations. + +See the "AST and Selectors" section for more on this format. diff --git a/src/rules/checkParamNames.js b/src/rules/checkParamNames.js index 54ac72b9c..9002ff6d7 100644 --- a/src/rules/checkParamNames.js +++ b/src/rules/checkParamNames.js @@ -354,11 +354,18 @@ const validateParameterNamesDeep = ( }); }; +const allowedNodes = [ + 'ArrowFunctionExpression', 'FunctionDeclaration', 'FunctionExpression', 'TSDeclareFunction', + // Add this to above defaults + 'TSMethodSignature' +]; + export default iterateJsdoc(({ context, jsdoc, report, utils, + node, }) => { const { allowExtraTrailingParamDocs, @@ -371,6 +378,15 @@ export default iterateJsdoc(({ disableMissingParamChecks = false, } = context.options[0] || {}; + // Although we might just remove global settings contexts from applying to + // this rule (as they can cause problems with `getFunctionParameterNames` + // checks if they are not functions but say variables), the user may + // instead wish to narrow contexts in those settings, so this check + // is still useful + if (!allowedNodes.includes(/** @type {import('estree').Node} */ (node).type)) { + return; + } + const checkTypesRegex = utils.getRegexFromString(checkTypesPattern); const jsdocParameterNamesDeep = utils.getJsdocTagsDeep('param'); @@ -406,11 +422,7 @@ export default iterateJsdoc(({ targetTagName, allowExtraTrailingParamDocs, jsdocParameterNamesDeep, jsdoc, report, ); }, { - contextDefaults: [ - 'ArrowFunctionExpression', 'FunctionDeclaration', 'FunctionExpression', 'TSDeclareFunction', - // Add this to above defaults - 'TSMethodSignature' - ], + contextDefaults: allowedNodes, meta: { docs: { description: 'Ensures that parameter names in JSDoc match those in the function declaration.', diff --git a/test/rules/assertions/checkParamNames.js b/test/rules/assertions/checkParamNames.js index 7804b499b..861373a01 100644 --- a/test/rules/assertions/checkParamNames.js +++ b/test/rules/assertions/checkParamNames.js @@ -2015,5 +2015,28 @@ export default { sourceType: 'module', }, }, + { + code: ` + /** + * @param c c + * @param d d + */ + const inner = (c: number, d: string): void => { + console.log(c); + console.log(d); + }; + `, + languageOptions: { + parser: typescriptEslintParser, + sourceType: 'module', + }, + settings: { + jsdoc: { + contexts: [ + 'VariableDeclaration', + ] + } + }, + }, ], }; diff --git a/test/rules/assertions/requireParam.js b/test/rules/assertions/requireParam.js index 675e1039e..666cb4ab0 100644 --- a/test/rules/assertions/requireParam.js +++ b/test/rules/assertions/requireParam.js @@ -3582,5 +3582,27 @@ export default { parser: typescriptEslintParser, }, }, + { + code: ` + /** + * + */ + const inner = (c: number, d: string): void => { + console.log(c); + console.log(d); + }; + `, + languageOptions: { + parser: typescriptEslintParser, + sourceType: 'module', + }, + settings: { + jsdoc: { + contexts: [ + 'VariableDeclaration', + ] + } + }, + }, ], }; From 82222628c1213017bd99af70bbc761b9c7f1c972 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 13 Sep 2024 17:18:04 +0800 Subject: [PATCH 242/273] fix(`require-jsdoc`): avoid erring on static blocks --- docs/rules/require-jsdoc.md | 7 +++++++ src/exportParser.js | 3 +++ test/rules/assertions/requireJsdoc.js | 20 ++++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/docs/rules/require-jsdoc.md b/docs/rules/require-jsdoc.md index 744803d4b..411f596f3 100644 --- a/docs/rules/require-jsdoc.md +++ b/docs/rules/require-jsdoc.md @@ -1894,5 +1894,12 @@ export class MyClass { #myPrivateProp = 5; } // "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"contexts":["PropertyDefinition"],"require":{"MethodDefinition":true}}] + +class Abc { + static { + this.x = '2' + } +} +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":true,"require":{"ClassDeclaration":true}}] ```` diff --git a/src/exportParser.js b/src/exportParser.js index 4bb2e13bd..b9dff88cf 100644 --- a/src/exportParser.js +++ b/src/exportParser.js @@ -212,6 +212,9 @@ const getSymbol = function (node, globals, scope, opt) { case 'ClassBody': { const val = createNode(); for (const method of node.body) { + if (!('key' in method)) { // StaticBlock + continue; + } val.props[ /** @type {import('estree').Identifier} */ ( /** @type {import('estree').MethodDefinition} */ ( diff --git a/test/rules/assertions/requireJsdoc.js b/test/rules/assertions/requireJsdoc.js index 48ddb50df..e8ab9b0f8 100644 --- a/test/rules/assertions/requireJsdoc.js +++ b/test/rules/assertions/requireJsdoc.js @@ -6293,5 +6293,25 @@ function quux (foo) { }, ], }, + { + code: ` + class Abc { + static { + this.x = '2' + } + } + `, + languageOptions: { + parser: babelEslintParser, + }, + options: [ + { + publicOnly: true, + require: { + ClassDeclaration: true + } + } + ], + } ], }; From e7ab475c26eb4ac874f28eeb7cedafaf21b0b001 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 19 Sep 2024 07:10:53 +0800 Subject: [PATCH 243/273] fix(`require-returns-check`): allow infinite for loops to have only one branch to return; fixes #1315 --- docs/rules/require-returns-check.md | 12 ++++++++++++ src/utils/hasReturnValue.js | 7 ++++++- test/rules/assertions/requireReturnsCheck.js | 15 +++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/docs/rules/require-returns-check.md b/docs/rules/require-returns-check.md index 2ff2b6c19..fab817d67 100644 --- a/docs/rules/require-returns-check.md +++ b/docs/rules/require-returns-check.md @@ -992,5 +992,17 @@ function foo() { } } } + +/** + * @returns {number} + */ +function foo() { + for (;;) { + const n = Math.random(); + if (n < 0.5) { + return n; + } + } +} ```` diff --git a/src/utils/hasReturnValue.js b/src/utils/hasReturnValue.js index 1809cabc1..a481ee17f 100644 --- a/src/utils/hasReturnValue.js +++ b/src/utils/hasReturnValue.js @@ -177,8 +177,13 @@ const allBrancheshaveReturnValues = (node, promFilter) => { } // Fallthrough - case 'LabeledStatement': case 'ForStatement': + if (node.test === null) { + // If this is an infinite loop, we assume only one branch + // is needed to provide a return + return hasReturnValue(node.body, false, promFilter); + } + case 'LabeledStatement': case 'ForInStatement': case 'ForOfStatement': case 'WithStatement': { diff --git a/test/rules/assertions/requireReturnsCheck.js b/test/rules/assertions/requireReturnsCheck.js index 025d6ab12..f95472812 100755 --- a/test/rules/assertions/requireReturnsCheck.js +++ b/test/rules/assertions/requireReturnsCheck.js @@ -1558,5 +1558,20 @@ export default { } `, }, + { + code: ` + /** + * @returns {number} + */ + function foo() { + for (;;) { + const n = Math.random(); + if (n < 0.5) { + return n; + } + } + } + `, + }, ], }; From 239d69aafff5462852a4c73c2ea4ab0a2e84a35c Mon Sep 17 00:00:00 2001 From: Elliot Huffman Date: Thu, 8 Aug 2024 23:30:17 -0400 Subject: [PATCH 244/273] Enable Publish Attestation Enable provenance on the NPM publish command so that attestation data is available in the NPM public registry to reduce the risk of a supply chain attack. --- .github/workflows/main.yaml | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 27d56a17b..8fb54616e 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -1,8 +1,20 @@ +name: Build and release + +on: + push: + branches: + - main + +permissions: + # Grant Permissions to the GH Token to capture attestation information from the GH agent + id-token: write + jobs: release: + name: Release runs-on: ubuntu-latest environment: release - name: Release + steps: - uses: pnpm/action-setup@v4 with: @@ -21,8 +33,5 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} -name: Build and release -on: - push: - branches: - - main + NPM_CONFIG_PROVENANCE: true + From 909de737f115af69a5fd10ec64810a0f42f834e0 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 25 Sep 2024 18:39:53 +0800 Subject: [PATCH 245/273] fix(`require-jsdoc`): allow `TSTypeAliasDeclaration` to be detected for export; fixes #1319 --- docs/rules/require-jsdoc.md | 8 ++++ src/exportParser.js | 18 ++++----- test/rules/assertions/requireJsdoc.js | 53 ++++++++++++++++++++++++++- 3 files changed, 68 insertions(+), 11 deletions(-) diff --git a/docs/rules/require-jsdoc.md b/docs/rules/require-jsdoc.md index 411f596f3..627b97dbf 100644 --- a/docs/rules/require-jsdoc.md +++ b/docs/rules/require-jsdoc.md @@ -1020,6 +1020,14 @@ export type LoginOptions = CmdOptions<{ }>; // "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"ancestorsOnly":true},"contexts":["TSTypeAliasDeclaration","TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"]}] // Message: Missing JSDoc comment. + +type Props = { + variant: string +} + +export type { Props as ComponentProps }; +// "jsdoc/require-jsdoc": ["error"|"warn", {"publicOnly":{"esm":true},"require":{"FunctionDeclaration":true,"FunctionExpression":true,"ArrowFunctionExpression":true,"ClassDeclaration":true,"ClassExpression":true,"MethodDefinition":true},"contexts":["VariableDeclaration","TSTypeAliasDeclaration","TSPropertySignature","TSInterfaceDeclaration","TSMethodSignature","TSEnumDeclaration"],"enableFixer":true}] +// Message: Missing JSDoc comment. ```` diff --git a/src/exportParser.js b/src/exportParser.js index b9dff88cf..85957e54c 100644 --- a/src/exportParser.js +++ b/src/exportParser.js @@ -14,7 +14,7 @@ const debug = debugModule('requireExportJsdoc'); /** * @typedef {{ * type?: string, - * value?: ValueObject|import('eslint').Rule.Node, + * value?: ValueObject|import('eslint').Rule.Node|import('@typescript-eslint/types').TSESTree.Node, * props: { * [key: string]: CreatedNode|null, * }, @@ -93,7 +93,7 @@ const getIdentifier = function (node, globals, scope, opts) { * @callback CreateSymbol * @param {import('eslint').Rule.Node|null} node * @param {CreatedNode} globals - * @param {import('eslint').Rule.Node|null} value + * @param {import('eslint').Rule.Node|import('@typescript-eslint/types').TSESTree.Node|null} value * @param {CreatedNode} [scope] * @param {boolean|SymbolOptions} [isGlobal] * @returns {CreatedNode|null} @@ -112,7 +112,7 @@ let createSymbol; // eslint-disable-line prefer-const /** * - * @param {import('eslint').Rule.Node} node + * @param {import('eslint').Rule.Node|import('@typescript-eslint/types').TSESTree.Node} node * @param {CreatedNode} globals * @param {CreatedNode} scope * @param {SymbolOptions} [opt] @@ -177,13 +177,10 @@ const getSymbol = function (node, globals, scope, opt) { ); } - /* c8 ignore next 7 -- No longer needed? */ - // @ts-expect-error TS OK + /* c8 ignore next 4 -- No longer needed? */ case 'TSTypeAliasDeclaration': - // @ts-expect-error TS OK // Fallthrough case 'TSEnumDeclaration': - // @ts-expect-error TS OK case 'TSInterfaceDeclaration': case 'ClassDeclaration': case 'FunctionExpression': case 'FunctionDeclaration': @@ -473,7 +470,7 @@ const initVariables = function (node, globals, opts) { /** * Populates variable maps using AST - * @param {import('eslint').Rule.Node} node + * @param {import('eslint').Rule.Node|import('@typescript-eslint/types').TSESTree.Node} node * @param {CreatedNode} globals * @param {import('./rules/requireJsdoc.js').RequireJsdocOpts} opt * @param {true} [isExport] @@ -543,6 +540,7 @@ const mapVariables = function (node, globals, opt, isExport) { break; } + case 'TSTypeAliasDeclaration': case 'FunctionDeclaration': { /* c8 ignore next 10 */ if (/** @type {import('estree').Identifier} */ (node.id).type === 'Identifier') { @@ -655,9 +653,9 @@ const mapVariables = function (node, globals, opt, isExport) { * * @param {import('eslint').Rule.Node} node * @param {CreatedNode|ValueObject|string|undefined| - * import('eslint').Rule.Node} block + * import('eslint').Rule.Node|import('@typescript-eslint/types').TSESTree.Node} block * @param {(CreatedNode|ValueObject|string| - * import('eslint').Rule.Node)[]} [cache] + * import('eslint').Rule.Node|import('@typescript-eslint/types').TSESTree.Node)[]} [cache] * @returns {boolean} */ const findNode = function (node, block, cache) { diff --git a/test/rules/assertions/requireJsdoc.js b/test/rules/assertions/requireJsdoc.js index e8ab9b0f8..9991abf9b 100644 --- a/test/rules/assertions/requireJsdoc.js +++ b/test/rules/assertions/requireJsdoc.js @@ -4196,6 +4196,57 @@ function quux (foo) { parser: typescriptEslintParser, }, }, + { + code: ` + type Props = { + variant: string + } + + export type { Props as ComponentProps }; + `, + errors: [ + { + line: 2, + message: 'Missing JSDoc comment.', + }, + ], + languageOptions: { + parser: typescriptEslintParser, + }, + options: [ + { + publicOnly: { esm: true }, + require: { + FunctionDeclaration: true, + FunctionExpression: true, + ArrowFunctionExpression: true, + ClassDeclaration: true, + ClassExpression: true, + MethodDefinition: true, + }, + contexts: [ + "VariableDeclaration", + "TSTypeAliasDeclaration", + // Encourage documenting React prop types + "TSPropertySignature", + "TSInterfaceDeclaration", + "TSMethodSignature", + "TSEnumDeclaration" + ], + enableFixer: true, + }, + ], + output: ` + /** + * + */ + type Props = { + variant: string + } + + export type { Props as ComponentProps }; + `, + }, ], valid: [ { @@ -6312,6 +6363,6 @@ function quux (foo) { } } ], - } + }, ], }; From 8e565e08407c275401045676faee62f31e42702a Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 25 Sep 2024 18:50:35 +0800 Subject: [PATCH 246/273] fix: update semantic-release/github --- package.json | 2 +- pnpm-lock.yaml | 32 ++++++++++++++++++++++++++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index dc5737166..6a5d40b82 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@es-joy/jsdoc-eslint-parser": "^0.21.1", "@hkdobrev/run-if-changed": "^0.6.0", "@semantic-release/commit-analyzer": "^13.0.0", - "@semantic-release/github": "^10.1.4", + "@semantic-release/github": "^11.0.0", "@semantic-release/npm": "^12.0.1", "@types/chai": "^4.3.17", "@types/debug": "^4.1.12", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3f804c6fa..ac30940d5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -76,8 +76,8 @@ importers: specifier: ^13.0.0 version: 13.0.0(semantic-release@24.0.0(typescript@5.5.3)) '@semantic-release/github': - specifier: ^10.1.4 - version: 10.1.4(semantic-release@24.0.0(typescript@5.5.3)) + specifier: ^11.0.0 + version: 11.0.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.5.3)) @@ -1306,6 +1306,12 @@ packages: peerDependencies: semantic-release: '>=20.1.0' + '@semantic-release/github@11.0.0': + resolution: {integrity: sha512-Uon6G6gJD8U1JNvPm7X0j46yxNRJ8Ui6SgK4Zw5Ktu8RgjEft3BGn+l/RX1TTzhhO3/uUcKuqM+/9/ETFxWS/Q==} + engines: {node: '>=20.8.1'} + peerDependencies: + semantic-release: '>=24.1.0' + '@semantic-release/npm@12.0.1': resolution: {integrity: sha512-/6nntGSUGK2aTOI0rHPwY3ZjgY9FkXmEHbW9Kr+62NVOsyqpKKeP0lrCH+tphv+EsNdJNmqqwijTEnVWUMQ2Nw==} engines: {node: '>=20.8.1'} @@ -6894,6 +6900,28 @@ snapshots: transitivePeerDependencies: - supports-color + '@semantic-release/github@11.0.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) + '@octokit/plugin-retry': 7.1.0(@octokit/core@6.1.1) + '@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.6(supports-color@8.1.1) + dir-glob: 3.0.1 + globby: 14.0.0 + http-proxy-agent: 7.0.0 + https-proxy-agent: 7.0.2 + issue-parser: 7.0.0 + lodash-es: 4.17.21 + mime: 4.0.1 + p-filter: 4.1.0 + 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.5.3))': dependencies: '@semantic-release/error': 4.0.0 From 20e0805d8b245dd1f675987740dea2cfb04d440b Mon Sep 17 00:00:00 2001 From: Gajus Date: Wed, 25 Sep 2024 17:15:35 -0600 Subject: [PATCH 247/273] fix: force release From baaf8c399dde08795841bd5df98b62212403f664 Mon Sep 17 00:00:00 2001 From: Gajus Date: Wed, 25 Sep 2024 17:23:59 -0600 Subject: [PATCH 248/273] fix: update semantic-release --- package.json | 2 +- pnpm-lock.yaml | 56 ++++++++++++++++++++++++++++---------------------- 2 files changed, 33 insertions(+), 25 deletions(-) diff --git a/package.json b/package.json index 6a5d40b82..be0a963a3 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "open-editor": "^5.0.0", "replace": "^1.2.2", "rimraf": "^5.0.7", - "semantic-release": "^24.0.0", + "semantic-release": "^24.1.1", "typescript": "5.5.x", "typescript-eslint": "^8.1.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ac30940d5..ec572d128 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -74,13 +74,13 @@ importers: version: 0.6.0(typescript@5.5.3) '@semantic-release/commit-analyzer': specifier: ^13.0.0 - version: 13.0.0(semantic-release@24.0.0(typescript@5.5.3)) + version: 13.0.0(semantic-release@24.1.1(typescript@5.5.3)) '@semantic-release/github': specifier: ^11.0.0 - version: 11.0.0(semantic-release@24.0.0(typescript@5.5.3)) + version: 11.0.0(semantic-release@24.1.1(typescript@5.5.3)) '@semantic-release/npm': specifier: ^12.0.1 - version: 12.0.1(semantic-release@24.0.0(typescript@5.5.3)) + version: 12.0.1(semantic-release@24.1.1(typescript@5.5.3)) '@types/chai': specifier: ^4.3.17 version: 4.3.17 @@ -187,8 +187,8 @@ importers: specifier: ^5.0.7 version: 5.0.7 semantic-release: - specifier: ^24.0.0 - version: 24.0.0(typescript@5.5.3) + specifier: ^24.1.1 + version: 24.1.1(typescript@5.5.3) typescript: specifier: 5.5.x version: 5.5.3 @@ -3162,6 +3162,10 @@ packages: resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} engines: {node: ^16.14.0 || >=18.0.0} + hosted-git-info@8.0.0: + resolution: {integrity: sha512-4nw3vOVR+vHUOT8+U4giwe2tcGv+R3pwwRidUe67DoMBTjhrfr6rZYJVVwdkBE+Um050SG+X9tf0Jo4fOpn01w==} + engines: {node: ^18.17.0 || >=20.5.0} + html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -4596,8 +4600,8 @@ packages: resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} engines: {node: ^14.0.0 || >=16.0.0} - semantic-release@24.0.0: - resolution: {integrity: sha512-v46CRPw+9eI3ZuYGF2oAjqPqsfbnfFTwLBgQsv/lch4goD09ytwOTESMN4QIrx/wPLxUGey60/NMx+ANQtWRsA==} + semantic-release@24.1.1: + resolution: {integrity: sha512-4Ax2GxD411jUe9IdhOjMLuN+6wAj+aKjvOGngByrpD/iKL+UKN/2puQglhyI4gxNyy9XzEBMzBwbqpnEwbXGEg==} engines: {node: '>=20.8.1'} hasBin: true @@ -6862,7 +6866,7 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} - '@semantic-release/commit-analyzer@13.0.0(semantic-release@24.0.0(typescript@5.5.3))': + '@semantic-release/commit-analyzer@13.0.0(semantic-release@24.1.1(typescript@5.5.3))': dependencies: conventional-changelog-angular: 8.0.0 conventional-changelog-writer: 8.0.0 @@ -6872,13 +6876,13 @@ snapshots: import-from-esm: 1.3.3 lodash-es: 4.17.21 micromatch: 4.0.7 - semantic-release: 24.0.0(typescript@5.5.3) + semantic-release: 24.1.1(typescript@5.5.3) transitivePeerDependencies: - supports-color '@semantic-release/error@4.0.0': {} - '@semantic-release/github@10.1.4(semantic-release@24.0.0(typescript@5.5.3))': + '@semantic-release/github@10.1.4(semantic-release@24.1.1(typescript@5.5.3))': dependencies: '@octokit/core': 6.1.1 '@octokit/plugin-paginate-rest': 11.3.0(@octokit/core@6.1.1) @@ -6895,12 +6899,12 @@ snapshots: lodash-es: 4.17.21 mime: 4.0.1 p-filter: 4.1.0 - semantic-release: 24.0.0(typescript@5.5.3) + semantic-release: 24.1.1(typescript@5.5.3) url-join: 5.0.0 transitivePeerDependencies: - supports-color - '@semantic-release/github@11.0.0(semantic-release@24.0.0(typescript@5.5.3))': + '@semantic-release/github@11.0.0(semantic-release@24.1.1(typescript@5.5.3))': dependencies: '@octokit/core': 6.1.1 '@octokit/plugin-paginate-rest': 11.3.0(@octokit/core@6.1.1) @@ -6917,12 +6921,12 @@ snapshots: lodash-es: 4.17.21 mime: 4.0.1 p-filter: 4.1.0 - semantic-release: 24.0.0(typescript@5.5.3) + semantic-release: 24.1.1(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.5.3))': + '@semantic-release/npm@12.0.1(semantic-release@24.1.1(typescript@5.5.3))': dependencies: '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 @@ -6935,11 +6939,11 @@ snapshots: rc: 1.2.8 read-pkg: 9.0.1 registry-auth-token: 5.0.2 - semantic-release: 24.0.0(typescript@5.5.3) + semantic-release: 24.1.1(typescript@5.5.3) semver: 7.6.3 tempy: 3.1.0 - '@semantic-release/release-notes-generator@14.0.1(semantic-release@24.0.0(typescript@5.5.3))': + '@semantic-release/release-notes-generator@14.0.1(semantic-release@24.1.1(typescript@5.5.3))': dependencies: conventional-changelog-angular: 8.0.0 conventional-changelog-writer: 8.0.0 @@ -6951,7 +6955,7 @@ snapshots: into-stream: 7.0.0 lodash-es: 4.17.21 read-package-up: 11.0.0 - semantic-release: 24.0.0(typescript@5.5.3) + semantic-release: 24.1.1(typescript@5.5.3) transitivePeerDependencies: - supports-color @@ -9278,6 +9282,10 @@ snapshots: dependencies: lru-cache: 10.2.0 + hosted-git-info@8.0.0: + dependencies: + lru-cache: 10.2.0 + html-escaper@2.0.2: {} htmlparser2@3.10.1: @@ -10679,24 +10687,24 @@ snapshots: refa: 0.12.1 regexp-ast-analysis: 0.7.1 - semantic-release@24.0.0(typescript@5.5.3): + semantic-release@24.1.1(typescript@5.5.3): dependencies: - '@semantic-release/commit-analyzer': 13.0.0(semantic-release@24.0.0(typescript@5.5.3)) + '@semantic-release/commit-analyzer': 13.0.0(semantic-release@24.1.1(typescript@5.5.3)) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 10.1.4(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)) + '@semantic-release/github': 10.1.4(semantic-release@24.1.1(typescript@5.5.3)) + '@semantic-release/npm': 12.0.1(semantic-release@24.1.1(typescript@5.5.3)) + '@semantic-release/release-notes-generator': 14.0.1(semantic-release@24.1.1(typescript@5.5.3)) aggregate-error: 5.0.0 cosmiconfig: 9.0.0(typescript@5.5.3) debug: 4.3.6(supports-color@8.1.1) env-ci: 11.0.0 - execa: 9.1.0 + execa: 9.3.0 figures: 6.1.0 find-versions: 6.0.0 get-stream: 6.0.1 git-log-parser: 1.2.0 hook-std: 3.0.0 - hosted-git-info: 7.0.1 + hosted-git-info: 8.0.0 import-from-esm: 1.3.3 lodash-es: 4.17.21 marked: 12.0.1 From 69704565d80e12a74e856966fbf9e70e2e324905 Mon Sep 17 00:00:00 2001 From: Gajus Date: Wed, 25 Sep 2024 17:26:18 -0600 Subject: [PATCH 249/273] fix: force release From 51c68b16b114ae630bfea28a5f428d6fce1b3aaf Mon Sep 17 00:00:00 2001 From: Gajus Date: Wed, 25 Sep 2024 17:27:01 -0600 Subject: [PATCH 250/273] Revert "Enable Publish Attestation" This reverts commit 239d69aafff5462852a4c73c2ea4ab0a2e84a35c. --- .github/workflows/main.yaml | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 8fb54616e..27d56a17b 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -1,20 +1,8 @@ -name: Build and release - -on: - push: - branches: - - main - -permissions: - # Grant Permissions to the GH Token to capture attestation information from the GH agent - id-token: write - jobs: release: - name: Release runs-on: ubuntu-latest environment: release - + name: Release steps: - uses: pnpm/action-setup@v4 with: @@ -33,5 +21,8 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - NPM_CONFIG_PROVENANCE: true - +name: Build and release +on: + push: + branches: + - main From 3b1843582015d999bbf373095fdc492a235bb374 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 24 Sep 2024 18:04:18 +0800 Subject: [PATCH 251/273] feat(`require-param`): add `ignoreWhenAllParamsMissing` option; fixes #1317 --- .README/rules/require-param.md | 7 ++++- docs/rules/require-param.md | 24 +++++++++++++++- src/rules/requireParam.js | 8 ++++++ test/rules/assertions/requireParam.js | 40 +++++++++++++++++++++++++++ 4 files changed, 77 insertions(+), 2 deletions(-) diff --git a/.README/rules/require-param.md b/.README/rules/require-param.md index 6fc671384..cf85459a9 100644 --- a/.README/rules/require-param.md +++ b/.README/rules/require-param.md @@ -369,6 +369,11 @@ documentation). Defaults to `true`. Set to `true` if you wish to expect documentation of properties on objects supplied as default values. Defaults to `false`. +### `ignoreWhenAllParamsMissing` + +Set to `true` to ignore reporting when all params are missing. Defaults to +`false`. + ## Context and settings | | | @@ -377,7 +382,7 @@ supplied as default values. Defaults to `false`. | Tags | `param` | | Aliases | `arg`, `argument` | |Recommended | true| -| Options |`autoIncrementBase`, `checkConstructors`, `checkDestructured`, `checkDestructuredRoots`, `checkGetters`, `checkRestProperty`, `checkSetters`, `checkTypesPattern`, `contexts`, `enableFixer`, `enableRestElementFixer`, `enableRootFixer`, `exemptedBy`, `unnamedRootBase`, `useDefaultObjectProperties`| +| Options |`autoIncrementBase`, `checkConstructors`, `checkDestructured`, `checkDestructuredRoots`, `checkGetters`, `checkRestProperty`, `checkSetters`, `checkTypesPattern`, `contexts`, `enableFixer`, `enableRestElementFixer`, `enableRootFixer`, `exemptedBy`, `ignoreWhenAllParamsMissing`, `unnamedRootBase`, `useDefaultObjectProperties`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`| ## Failing examples diff --git a/docs/rules/require-param.md b/docs/rules/require-param.md index fa6006553..7e757b103 100644 --- a/docs/rules/require-param.md +++ b/docs/rules/require-param.md @@ -23,6 +23,7 @@ * [`checkDestructured`](#user-content-require-param-options-checkdestructured) * [`checkDestructuredRoots`](#user-content-require-param-options-checkdestructuredroots) * [`useDefaultObjectProperties`](#user-content-require-param-options-usedefaultobjectproperties) + * [`ignoreWhenAllParamsMissing`](#user-content-require-param-options-ignorewhenallparamsmissing) * [Context and settings](#user-content-require-param-context-and-settings) * [Failing examples](#user-content-require-param-failing-examples) * [Passing examples](#user-content-require-param-passing-examples) @@ -437,6 +438,13 @@ documentation). Defaults to `true`. Set to `true` if you wish to expect documentation of properties on objects supplied as default values. Defaults to `false`. + + +### ignoreWhenAllParamsMissing + +Set to `true` to ignore reporting when all params are missing. Defaults to +`false`. + ## Context and settings @@ -447,7 +455,7 @@ supplied as default values. Defaults to `false`. | Tags | `param` | | Aliases | `arg`, `argument` | |Recommended | true| -| Options |`autoIncrementBase`, `checkConstructors`, `checkDestructured`, `checkDestructuredRoots`, `checkGetters`, `checkRestProperty`, `checkSetters`, `checkTypesPattern`, `contexts`, `enableFixer`, `enableRestElementFixer`, `enableRootFixer`, `exemptedBy`, `unnamedRootBase`, `useDefaultObjectProperties`| +| Options |`autoIncrementBase`, `checkConstructors`, `checkDestructured`, `checkDestructuredRoots`, `checkGetters`, `checkRestProperty`, `checkSetters`, `checkTypesPattern`, `contexts`, `enableFixer`, `enableRestElementFixer`, `enableRootFixer`, `exemptedBy`, `ignoreWhenAllParamsMissing`, `unnamedRootBase`, `useDefaultObjectProperties`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`| @@ -1162,6 +1170,14 @@ class A { } } // Message: Missing JSDoc @param "root1" declaration. + +/** + * Some desc. + * @param a + */ +function quux (a, b) {} +// "jsdoc/require-param": ["error"|"warn", {"ignoreWhenAllParamsMissing":true}] +// Message: Missing JSDoc @param "b" declaration. ```` @@ -1813,5 +1829,11 @@ const inner = (c: number, d: string): void => { console.log(d); }; // Settings: {"jsdoc":{"contexts":["VariableDeclaration"]}} + +/** + * Some desc. + */ +function quux (a, b) {} +// "jsdoc/require-param": ["error"|"warn", {"ignoreWhenAllParamsMissing":true}] ```` diff --git a/src/rules/requireParam.js b/src/rules/requireParam.js index 33f50db77..28e0b66ee 100644 --- a/src/rules/requireParam.js +++ b/src/rules/requireParam.js @@ -60,6 +60,7 @@ export default iterateJsdoc(({ 'root', ], useDefaultObjectProperties = false, + ignoreWhenAllParamsMissing = false, } = context.options[0] || {}; const preferredTagName = /** @type {string} */ (utils.getPreferredTagName({ @@ -83,6 +84,10 @@ export default iterateJsdoc(({ * }[]} */ (utils.getJsdocTagsDeep(preferredTagName)); + if (ignoreWhenAllParamsMissing && !jsdocParameterNames.length) { + return; + } + const shallowJsdocParameterNames = jsdocParameterNames.filter((tag) => { return !tag.name.includes('.'); }).map((tag, idx) => { @@ -571,6 +576,9 @@ export default iterateJsdoc(({ }, type: 'array', }, + ignoreWhenAllParamsMissing: { + type: 'boolean', + }, unnamedRootBase: { items: { type: 'string', diff --git a/test/rules/assertions/requireParam.js b/test/rules/assertions/requireParam.js index 666cb4ab0..71f8c32dd 100644 --- a/test/rules/assertions/requireParam.js +++ b/test/rules/assertions/requireParam.js @@ -2527,6 +2527,33 @@ export default { } `, }, + { + code: ` + /** + * Some desc. + * @param a + */ + function quux (a, b) {} + `, + errors: [ + { + message: 'Missing JSDoc @param "b" declaration.', + }, + ], + options: [ + { + ignoreWhenAllParamsMissing: true, + } + ], + output: ` + /** + * Some desc. + * @param a + * @param b + */ + function quux (a, b) {} + `, + }, ], valid: [ { @@ -3604,5 +3631,18 @@ export default { } }, }, + { + code: ` + /** + * Some desc. + */ + function quux (a, b) {} + `, + options: [ + { + ignoreWhenAllParamsMissing: true, + } + ], + }, ], }; From 34866bc988a1a26fab9c4cf3c89fadb4c7d0494f Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Tue, 1 Oct 2024 17:28:26 +0800 Subject: [PATCH 252/273] fix(`check-alignment`): handle zero indent; fixes #1322 --- docs/rules/check-alignment.md | 7 +++++++ src/iterateJsdoc.js | 8 +++++++- test/rules/assertions/checkAlignment.js | 22 ++++++++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/docs/rules/check-alignment.md b/docs/rules/check-alignment.md index 22f21988a..fdbf534ba 100644 --- a/docs/rules/check-alignment.md +++ b/docs/rules/check-alignment.md @@ -110,6 +110,13 @@ class Foo { quux(a) {} } // Message: Expected JSDoc block to be aligned. + +export const myVar = {/** + * This is JSDoc + */ + myProperty: 'hello' +} +// Message: Expected JSDoc block to be aligned. ```` diff --git a/src/iterateJsdoc.js b/src/iterateJsdoc.js index b5f93a3cf..eec9a974c 100644 --- a/src/iterateJsdoc.js +++ b/src/iterateJsdoc.js @@ -1999,7 +1999,13 @@ const getIndentAndJSDoc = function (lines, jsdocNode) { /** @type {import('estree').SourceLocation} */ (jsdocNode.loc).start.line - 1 ]; - const indnt = sourceLine.charAt(0).repeat( + + let indentChar = sourceLine.charAt(0); + if (indentChar !== ' ' && indentChar !== '\t') { + indentChar = ' '; + } + + const indnt = indentChar.repeat( /** @type {import('estree').SourceLocation} */ (jsdocNode.loc).start.column, ); diff --git a/test/rules/assertions/checkAlignment.js b/test/rules/assertions/checkAlignment.js index 2c395f1e4..ca6e64027 100644 --- a/test/rules/assertions/checkAlignment.js +++ b/test/rules/assertions/checkAlignment.js @@ -236,6 +236,28 @@ function quux (foo) { } `, }, + { + code: ` +export const myVar = {/** + * This is JSDoc + */ + myProperty: 'hello' +} +`, + errors: [ + { + line: 3, + message: 'Expected JSDoc block to be aligned.', + }, + ], + output: ` +export const myVar = {/** + * This is JSDoc + */ + myProperty: 'hello' +} +`, + }, ], valid: [ { From 8b5b7f709c416ee3bc1acb75fd23b0fb055d69fa Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 12 Oct 2024 06:14:49 +0800 Subject: [PATCH 253/273] fix(`require-hyphen-before-param-description`): inject hyphen at proper place with multiline type --- ...require-hyphen-before-param-description.md | 9 +++ .../requireHyphenBeforeParamDescription.js | 57 ++++++++++--------- .../requireHyphenBeforeParamDescription.js | 26 +++++++++ 3 files changed, 64 insertions(+), 28 deletions(-) diff --git a/docs/rules/require-hyphen-before-param-description.md b/docs/rules/require-hyphen-before-param-description.md index 67c906116..6022aa17c 100644 --- a/docs/rules/require-hyphen-before-param-description.md +++ b/docs/rules/require-hyphen-before-param-description.md @@ -193,6 +193,15 @@ function quux () { */ // "jsdoc/require-hyphen-before-param-description": ["error"|"warn", "always",{"tags":{"*":"never","property":"always"}}] // Message: There must be no hyphen before @returns description. + +/** + * @param {( + * | string + * | number + * )} input The input value + */ +function test(input) {} +// Message: There must be a hyphen before @param description. ```` diff --git a/src/rules/requireHyphenBeforeParamDescription.js b/src/rules/requireHyphenBeforeParamDescription.js index 791e842fa..327e88576 100644 --- a/src/rules/requireHyphenBeforeParamDescription.js +++ b/src/rules/requireHyphenBeforeParamDescription.js @@ -33,38 +33,39 @@ export default iterateJsdoc(({ } const startsWithHyphen = (/^\s*-/u).test(desc); - if (always) { - if (!startsWithHyphen) { - report(`There must be a hyphen before @${targetTagName} description.`, (fixer) => { - const lineIndex = /** @type {import('../iterateJsdoc.js').Integer} */ ( - jsdocTag.line - ); - const sourceLines = sourceCode.getText(jsdocNode).split('\n'); - - // Get start index of description, accounting for multi-line descriptions - const description = desc.split('\n')[0]; - const descriptionIndex = sourceLines[lineIndex].lastIndexOf(description); + let lines = 0; + for (const { + tokens, + } of jsdocTag.source) { + if (tokens.description) { + break; + } - const replacementLine = sourceLines[lineIndex] - .slice(0, descriptionIndex) + '- ' + description; - sourceLines.splice(lineIndex, 1, replacementLine); - const replacement = sourceLines.join('\n'); + lines++; + } - return fixer.replaceText(jsdocNode, replacement); - }, jsdocTag); + if (always) { + if (!startsWithHyphen) { + utils.reportJSDoc( + `There must be a hyphen before @${targetTagName} description.`, + { + line: jsdocTag.source[0].number + lines, + }, + () => { + for (const { + tokens, + } of jsdocTag.source) { + if (tokens.description) { + tokens.description = tokens.description.replace( + /^(\s*)/u, '$1- ', + ); + break; + } + } + } + ); } } else if (startsWithHyphen) { - let lines = 0; - for (const { - tokens, - } of jsdocTag.source) { - if (tokens.description) { - break; - } - - lines++; - } - utils.reportJSDoc( `There must be no hyphen before @${targetTagName} description.`, { diff --git a/test/rules/assertions/requireHyphenBeforeParamDescription.js b/test/rules/assertions/requireHyphenBeforeParamDescription.js index 919b6b554..9b2ab23cc 100644 --- a/test/rules/assertions/requireHyphenBeforeParamDescription.js +++ b/test/rules/assertions/requireHyphenBeforeParamDescription.js @@ -447,6 +447,32 @@ export default { */ `, }, + { + code: ` + /** + * @param {( + * | string + * | number + * )} input The input value + */ + function test(input) {} + `, + errors: [ + { + line: 6, + message: 'There must be a hyphen before @param description.', + }, + ], + output: ` + /** + * @param {( + * | string + * | number + * )} input - The input value + */ + function test(input) {} + `, + }, ], valid: [ { From 7019d287aa84e6919f16ca79bee5b415a4308548 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 14 Oct 2024 17:49:59 +0800 Subject: [PATCH 254/273] feat(`require-hyphen-before-param-description`): ensure template will be properly stringified; fixes #1326 Note that `match-name` will now have to take into account any optional brackets and default in `allowName` --- docs/rules/match-name.md | 2 +- package.json | 2 +- pnpm-lock.yaml | 10 ++++---- test/rules/assertions/matchName.js | 2 +- .../requireHyphenBeforeParamDescription.js | 23 +++++++++++++++++++ 5 files changed, 31 insertions(+), 8 deletions(-) diff --git a/docs/rules/match-name.md b/docs/rules/match-name.md index 8c223f7e0..48cd10446 100644 --- a/docs/rules/match-name.md +++ b/docs/rules/match-name.md @@ -251,6 +251,6 @@ class A { * @typedef {object} Test * @property {T} test */ -// "jsdoc/match-name": ["error"|"warn", {"match":[{"allowName":"/^[A-Z]{1}$/","message":"The name should be a single capital letter.","tags":["template"]}]}] +// "jsdoc/match-name": ["error"|"warn", {"match":[{"allowName":"/^\\[?[A-Z]{1}(=.*\\])$/","message":"The name should be a single capital letter.","tags":["template"]}]}] ```` diff --git a/package.json b/package.json index be0a963a3..c5b3e8528 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "url": "http://gajus.com" }, "dependencies": { - "@es-joy/jsdoccomment": "~0.48.0", + "@es-joy/jsdoccomment": "~0.49.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.3.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ec572d128..e0f7cdd39 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@es-joy/jsdoccomment': - specifier: ~0.48.0 - version: 0.48.0 + specifier: ~0.49.0 + version: 0.49.0 are-docs-informative: specifier: ^0.0.2 version: 0.0.2 @@ -983,8 +983,8 @@ packages: resolution: {integrity: sha512-C3Axuq1xd/9VqFZpW4YAzOx5O9q/LP46uIQy/iNDpHG3fmPa6TBtvfglMCs3RBiBxAIi0Go97r8+jvTt55XMyQ==} engines: {node: '>=16'} - '@es-joy/jsdoccomment@0.48.0': - resolution: {integrity: sha512-G6QUWIcC+KvSwXNsJyDTHvqUdNoAVJPPgkc3+Uk4WBKqZvoXhlvazOgm9aL0HwihJLQf0l+tOE2UFzXBqCqgDw==} + '@es-joy/jsdoccomment@0.49.0': + resolution: {integrity: sha512-xjZTSFgECpb9Ohuk5yMX5RhUEbfeQcuOp8IF60e+wyzWEF0M5xeSgqsfLtvPEX8BIyOX9saZqzuGPmZ8oWc+5Q==} engines: {node: '>=16'} '@eslint-community/eslint-utils@4.4.0': @@ -6400,7 +6400,7 @@ snapshots: esquery: 1.6.0 jsdoc-type-pratt-parser: 4.0.0 - '@es-joy/jsdoccomment@0.48.0': + '@es-joy/jsdoccomment@0.49.0': dependencies: comment-parser: 1.4.1 esquery: 1.6.0 diff --git a/test/rules/assertions/matchName.js b/test/rules/assertions/matchName.js index a72f15cc2..eb51508ae 100644 --- a/test/rules/assertions/matchName.js +++ b/test/rules/assertions/matchName.js @@ -553,7 +553,7 @@ export default { `, options: [{ match: [{ - allowName: "/^[A-Z]{1}$/", + allowName: "/^\\[?[A-Z]{1}(=.*\\])$/", message: "The name should be a single capital letter.", tags: ["template"], }], diff --git a/test/rules/assertions/requireHyphenBeforeParamDescription.js b/test/rules/assertions/requireHyphenBeforeParamDescription.js index 9b2ab23cc..1748c3555 100644 --- a/test/rules/assertions/requireHyphenBeforeParamDescription.js +++ b/test/rules/assertions/requireHyphenBeforeParamDescription.js @@ -473,6 +473,29 @@ export default { function test(input) {} `, }, + { + code: ` + /** + * @template [O=unknown] + * @param {string} name The name of the thing. + */ + function test(name) {} + `, + errors: [ + { + line: 4, + message: 'There must be a hyphen before @param description.', + }, + ], + ignoreReadme: true, + output: ` + /** + * @template [O=unknown] + * @param {string} name - The name of the thing. + */ + function test(name) {} + `, + }, ], valid: [ { From 9abbe5a4c604e8b443c16712d6a1162f039e7124 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 09:53:30 +0000 Subject: [PATCH 255/273] build(deps): bump micromatch from 4.0.7 to 4.0.8 Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.7 to 4.0.8. - [Release notes](https://github.com/micromatch/micromatch/releases) - [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/micromatch/compare/4.0.7...4.0.8) --- updated-dependencies: - dependency-name: micromatch dependency-type: indirect ... Signed-off-by: dependabot[bot] --- pnpm-lock.yaml | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e0f7cdd39..df67dc65a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1125,6 +1125,7 @@ packages: '@humanwhocodes/config-array@0.11.13': resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} @@ -1132,6 +1133,7 @@ packages: '@humanwhocodes/object-schema@2.0.3': resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead '@humanwhocodes/retry@0.3.0': resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} @@ -2074,7 +2076,7 @@ packages: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} concat-map@0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} @@ -2697,6 +2699,7 @@ packages: eslint@8.56.0: resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true eslint@9.9.0: @@ -3796,8 +3799,8 @@ packages: micro-spelling-correcter@1.1.1: resolution: {integrity: sha512-lkJ3Rj/mtjlRcHk6YyCbvZhyWTOzdBvTHsxMmZSk5jxN1YyVSQ+JETAom55mdzfcyDrY/49Z7UCW760BK30crg==} - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} mime-db@1.52.0: @@ -5172,7 +5175,7 @@ packages: engines: {node: '>=12'} verror@1.10.0: - resolution: {integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=} + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} engines: {'0': node >=0.6.0} web-streams-polyfill@3.2.1: @@ -6667,7 +6670,7 @@ snapshots: dependencies: cosmiconfig: 9.0.0(typescript@5.5.3) execa: 9.3.0 - micromatch: 4.0.7 + micromatch: 4.0.8 string-argv: 0.3.2 transitivePeerDependencies: - typescript @@ -6875,7 +6878,7 @@ snapshots: debug: 4.3.6(supports-color@8.1.1) import-from-esm: 1.3.3 lodash-es: 4.17.21 - micromatch: 4.0.7 + micromatch: 4.0.8 semantic-release: 24.1.1(typescript@5.5.3) transitivePeerDependencies: - supports-color @@ -7217,7 +7220,7 @@ snapshots: debug: 4.3.6(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.4 + minimatch: 9.0.5 semver: 7.6.3 ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: @@ -7232,7 +7235,7 @@ snapshots: debug: 4.3.6(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.4 + minimatch: 9.0.5 semver: 7.6.3 ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: @@ -7247,7 +7250,7 @@ snapshots: debug: 4.3.6(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.4 + minimatch: 9.0.5 semver: 7.6.3 ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: @@ -8869,7 +8872,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.7 + micromatch: 4.0.8 fast-json-stable-stringify@2.1.0: {} @@ -9764,7 +9767,7 @@ snapshots: execa: 8.0.1 lilconfig: 3.1.2 listr2: 8.2.4 - micromatch: 4.0.7 + micromatch: 4.0.8 pidtree: 0.6.0 string-argv: 0.3.2 yaml: 2.5.0 @@ -9917,7 +9920,7 @@ snapshots: micro-spelling-correcter@1.1.1: {} - micromatch@4.0.7: + micromatch@4.0.8: dependencies: braces: 3.0.3 picomatch: 2.3.1 @@ -10709,7 +10712,7 @@ snapshots: lodash-es: 4.17.21 marked: 12.0.1 marked-terminal: 7.0.0(marked@12.0.1) - micromatch: 4.0.7 + micromatch: 4.0.8 p-each-series: 3.0.0 p-reduce: 3.0.0 read-package-up: 11.0.0 From 8728c098d71623281e52854d34662f70d220a891 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 09:53:36 +0000 Subject: [PATCH 256/273] build(deps): bump tar from 6.2.0 to 6.2.1 Bumps [tar](https://github.com/isaacs/node-tar) from 6.2.0 to 6.2.1. - [Release notes](https://github.com/isaacs/node-tar/releases) - [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/node-tar/compare/v6.2.0...v6.2.1) --- updated-dependencies: - dependency-name: tar dependency-type: indirect ... Signed-off-by: dependabot[bot] --- pnpm-lock.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index df67dc65a..9a66c7c9d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4897,8 +4897,8 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} - tar@6.2.0: - resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} temp-dir@3.0.0: @@ -7698,7 +7698,7 @@ snapshots: minipass-pipeline: 1.2.4 p-map: 4.0.0 ssri: 10.0.5 - tar: 6.2.0 + tar: 6.2.1 unique-filename: 3.0.0 optional: true @@ -10094,7 +10094,7 @@ snapshots: nopt: 7.2.0 proc-log: 3.0.0 semver: 7.6.3 - tar: 6.2.0 + tar: 6.2.1 which: 4.0.0 transitivePeerDependencies: - supports-color @@ -11038,7 +11038,7 @@ snapshots: tapable@2.2.1: {} - tar@6.2.0: + tar@6.2.1: dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 From c63da46ebd43a6d9e70aa957dc1f70d62a5d8e61 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 09:53:39 +0000 Subject: [PATCH 257/273] build(deps): bump dset from 3.1.3 to 3.1.4 Bumps [dset](https://github.com/lukeed/dset) from 3.1.3 to 3.1.4. - [Release notes](https://github.com/lukeed/dset/releases) - [Commits](https://github.com/lukeed/dset/compare/v3.1.3...v3.1.4) --- updated-dependencies: - dependency-name: dset dependency-type: indirect ... Signed-off-by: dependabot[bot] --- pnpm-lock.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9a66c7c9d..eae422c23 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2289,8 +2289,8 @@ packages: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} - dset@3.1.3: - resolution: {integrity: sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==} + dset@3.1.4: + resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} engines: {node: '>=4'} duplexer2@0.1.4: @@ -6536,7 +6536,7 @@ snapshots: '@graphql-tools/utils': 9.2.1(graphql@16.9.0) '@repeaterjs/repeater': 3.0.5 '@whatwg-node/fetch': 0.8.8 - dset: 3.1.3 + dset: 3.1.4 extract-files: 11.0.0 graphql: 16.9.0 meros: 1.3.0(@types/node@22.2.0) @@ -8080,7 +8080,7 @@ snapshots: dependencies: is-obj: 2.0.0 - dset@3.1.3: {} + dset@3.1.4: {} duplexer2@0.1.4: dependencies: From 7c0b8c608fa36260224bb856ea5a3ba34bd670ad Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 14 Oct 2024 23:16:25 +0800 Subject: [PATCH 258/273] fix(`match-name`): revert to prior correct behavior of ignoring optional and default code surrounding name --- docs/rules/match-name.md | 2 +- src/rules/matchName.js | 13 +++++++------ test/rules/assertions/matchName.js | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/rules/match-name.md b/docs/rules/match-name.md index 48cd10446..8c223f7e0 100644 --- a/docs/rules/match-name.md +++ b/docs/rules/match-name.md @@ -251,6 +251,6 @@ class A { * @typedef {object} Test * @property {T} test */ -// "jsdoc/match-name": ["error"|"warn", {"match":[{"allowName":"/^\\[?[A-Z]{1}(=.*\\])$/","message":"The name should be a single capital letter.","tags":["template"]}]}] +// "jsdoc/match-name": ["error"|"warn", {"match":[{"allowName":"/^[A-Z]{1}$/","message":"The name should be a single capital letter.","tags":["template"]}]}] ```` diff --git a/src/rules/matchName.js b/src/rules/matchName.js index 66d789611..f0371e320 100644 --- a/src/rules/matchName.js +++ b/src/rules/matchName.js @@ -38,8 +38,9 @@ export default iterateJsdoc(({ let reported = false; for (const tag of applicableTags) { - const allowed = !allowNameRegex || allowNameRegex.test(tag.name); - const disallowed = disallowNameRegex && disallowNameRegex.test(tag.name); + const tagName = tag.name.replace(/^\[/u, '').replace(/(=.*)?\]$/u, ''); + const allowed = !allowNameRegex || allowNameRegex.test(tagName); + const disallowed = disallowNameRegex && disallowNameRegex.test(tagName); const hasRegex = allowNameRegex || disallowNameRegex; if (hasRegex && allowed && !disallowed) { continue; @@ -66,10 +67,10 @@ export default iterateJsdoc(({ if (!message) { if (hasRegex) { message = disallowed ? - `Only allowing names not matching \`${disallowNameRegex}\` but found "${tag.name}".` : - `Only allowing names matching \`${allowNameRegex}\` but found "${tag.name}".`; + `Only allowing names not matching \`${disallowNameRegex}\` but found "${tagName}".` : + `Only allowing names matching \`${allowNameRegex}\` but found "${tagName}".`; } else { - message = `Prohibited context for "${tag.name}".`; + message = `Prohibited context for "${tagName}".`; } } @@ -86,7 +87,7 @@ export default iterateJsdoc(({ // Could also supply `context`, `comment`, `tags` allowName, disallowName, - name: tag.name, + name: tagName, }, ); if (!hasRegex) { diff --git a/test/rules/assertions/matchName.js b/test/rules/assertions/matchName.js index eb51508ae..a72f15cc2 100644 --- a/test/rules/assertions/matchName.js +++ b/test/rules/assertions/matchName.js @@ -553,7 +553,7 @@ export default { `, options: [{ match: [{ - allowName: "/^\\[?[A-Z]{1}(=.*\\])$/", + allowName: "/^[A-Z]{1}$/", message: "The name should be a single capital letter.", tags: ["template"], }], From f6616c73933a60794432d8fc944bfc4d2ea2464b Mon Sep 17 00:00:00 2001 From: ntnyq Date: Thu, 17 Oct 2024 17:39:50 +0800 Subject: [PATCH 259/273] fix(no-multi-asterisks): add missing `docs.description` --- src/rules/noMultiAsterisks.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rules/noMultiAsterisks.js b/src/rules/noMultiAsterisks.js index a8d783623..8916eb2bd 100644 --- a/src/rules/noMultiAsterisks.js +++ b/src/rules/noMultiAsterisks.js @@ -108,7 +108,7 @@ export default iterateJsdoc(({ iterateAllJsdocs: true, meta: { docs: { - description: '', + description: 'Prevents use of multiple asterisks at the beginning of lines.', url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-multi-asterisks.md#repos-sticky-header', }, fixable: 'code', From 9a93119e425659dd3c3186e9cbfee9ed0f88228c Mon Sep 17 00:00:00 2001 From: ntnyq Date: Thu, 17 Oct 2024 17:41:36 +0800 Subject: [PATCH 260/273] fix(text-escaping): add missing `docs.description` --- src/rules/textEscaping.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rules/textEscaping.js b/src/rules/textEscaping.js index 2486ad81a..3c14edee4 100644 --- a/src/rules/textEscaping.js +++ b/src/rules/textEscaping.js @@ -122,7 +122,7 @@ export default iterateJsdoc(({ iterateAllJsdocs: true, meta: { docs: { - description: '', + description: 'Auto-escape certain characters that are input within block and tag descriptions.', url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/text-escaping.md#repos-sticky-header', }, fixable: 'code', From e2aa8ff006fd4d4ffd2e3ef91493a00938c1d074 Mon Sep 17 00:00:00 2001 From: Stoyan Kolev Date: Wed, 6 Nov 2024 14:14:11 +0200 Subject: [PATCH 261/273] docs: make rule docs reflect their recommended status correctly --- docs/rules/check-access.md | 2 +- docs/rules/lines-before-block.md | 2 +- docs/rules/no-defaults.md | 2 +- docs/rules/require-asterisk-prefix.md | 1 + docs/rules/require-template.md | 2 +- docs/rules/require-throws.md | 2 +- 6 files changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/rules/check-access.md b/docs/rules/check-access.md index 06f58bd53..128645064 100644 --- a/docs/rules/check-access.md +++ b/docs/rules/check-access.md @@ -26,7 +26,7 @@ Also reports: |---|---| |Context|everywhere| |Tags|`@access`| -|Recommended|false| +|Recommended|true| |Settings|| |Options|| diff --git a/docs/rules/lines-before-block.md b/docs/rules/lines-before-block.md index 28d1f57d1..f8465d0a7 100644 --- a/docs/rules/lines-before-block.md +++ b/docs/rules/lines-before-block.md @@ -34,7 +34,7 @@ lines before the block will not be added). |---|---| |Context|everywhere| |Tags|N/A| -|Recommended|true| +|Recommended|false| |Settings|| |Options|`excludedTags`, `ignoreSameLine`, `lines`| diff --git a/docs/rules/no-defaults.md b/docs/rules/no-defaults.md index 7d0cdcdce..b3d2e5184 100644 --- a/docs/rules/no-defaults.md +++ b/docs/rules/no-defaults.md @@ -67,7 +67,7 @@ section of our README for more on the expected format. |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| |Tags|`param`, `default`| |Aliases|`arg`, `argument`, `defaultvalue`| -|Recommended|false| +|Recommended|true| |Options|`contexts`, `noOptionalParamNames`| diff --git a/docs/rules/require-asterisk-prefix.md b/docs/rules/require-asterisk-prefix.md index baf6d9eab..efde08a32 100644 --- a/docs/rules/require-asterisk-prefix.md +++ b/docs/rules/require-asterisk-prefix.md @@ -53,6 +53,7 @@ which applies to the main jsdoc block description. |---|---| |Context|everywhere| |Tags|All or as limited by the `tags` option| +|Recommended|false| |Options|string ("always", "never", "any") followed by object with `tags`| diff --git a/docs/rules/require-template.md b/docs/rules/require-template.md index e968bc2cf..7abd16db2 100644 --- a/docs/rules/require-template.md +++ b/docs/rules/require-template.md @@ -48,7 +48,7 @@ Defaults to `false`. |---|---| |Context|everywhere| |Tags|`template`| -|Recommended|true| +|Recommended|false| |Settings|| |Options|`requireSeparateTemplates`| diff --git a/docs/rules/require-throws.md b/docs/rules/require-throws.md index d81ceba54..290866710 100644 --- a/docs/rules/require-throws.md +++ b/docs/rules/require-throws.md @@ -48,7 +48,7 @@ on why TypeScript doesn't offer such a feature. | Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | | Tags | `throws` | | Aliases | `exception` | -|Recommended|true| +|Recommended|false| | Options |`contexts`, `exemptedBy`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | From a23977e45c55b4851e63351bced2a69679713c7c Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Wed, 6 Nov 2024 20:30:16 +0800 Subject: [PATCH 262/273] docs: update doc files --- docs/rules/check-access.md | 2 +- docs/rules/lines-before-block.md | 2 +- docs/rules/no-defaults.md | 2 +- docs/rules/require-asterisk-prefix.md | 1 - docs/rules/require-template.md | 2 +- docs/rules/require-throws.md | 2 +- 6 files changed, 5 insertions(+), 6 deletions(-) diff --git a/docs/rules/check-access.md b/docs/rules/check-access.md index 128645064..06f58bd53 100644 --- a/docs/rules/check-access.md +++ b/docs/rules/check-access.md @@ -26,7 +26,7 @@ Also reports: |---|---| |Context|everywhere| |Tags|`@access`| -|Recommended|true| +|Recommended|false| |Settings|| |Options|| diff --git a/docs/rules/lines-before-block.md b/docs/rules/lines-before-block.md index f8465d0a7..28d1f57d1 100644 --- a/docs/rules/lines-before-block.md +++ b/docs/rules/lines-before-block.md @@ -34,7 +34,7 @@ lines before the block will not be added). |---|---| |Context|everywhere| |Tags|N/A| -|Recommended|false| +|Recommended|true| |Settings|| |Options|`excludedTags`, `ignoreSameLine`, `lines`| diff --git a/docs/rules/no-defaults.md b/docs/rules/no-defaults.md index b3d2e5184..7d0cdcdce 100644 --- a/docs/rules/no-defaults.md +++ b/docs/rules/no-defaults.md @@ -67,7 +67,7 @@ section of our README for more on the expected format. |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| |Tags|`param`, `default`| |Aliases|`arg`, `argument`, `defaultvalue`| -|Recommended|true| +|Recommended|false| |Options|`contexts`, `noOptionalParamNames`| diff --git a/docs/rules/require-asterisk-prefix.md b/docs/rules/require-asterisk-prefix.md index efde08a32..baf6d9eab 100644 --- a/docs/rules/require-asterisk-prefix.md +++ b/docs/rules/require-asterisk-prefix.md @@ -53,7 +53,6 @@ which applies to the main jsdoc block description. |---|---| |Context|everywhere| |Tags|All or as limited by the `tags` option| -|Recommended|false| |Options|string ("always", "never", "any") followed by object with `tags`| diff --git a/docs/rules/require-template.md b/docs/rules/require-template.md index 7abd16db2..e968bc2cf 100644 --- a/docs/rules/require-template.md +++ b/docs/rules/require-template.md @@ -48,7 +48,7 @@ Defaults to `false`. |---|---| |Context|everywhere| |Tags|`template`| -|Recommended|false| +|Recommended|true| |Settings|| |Options|`requireSeparateTemplates`| diff --git a/docs/rules/require-throws.md b/docs/rules/require-throws.md index 290866710..d81ceba54 100644 --- a/docs/rules/require-throws.md +++ b/docs/rules/require-throws.md @@ -48,7 +48,7 @@ on why TypeScript doesn't offer such a feature. | Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | | Tags | `throws` | | Aliases | `exception` | -|Recommended|false| +|Recommended|true| | Options |`contexts`, `exemptedBy`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | From 873eae4fdd269e6b0aae35595d50244eb1a5a79f Mon Sep 17 00:00:00 2001 From: Stoyan Kolev Date: Thu, 7 Nov 2024 09:46:28 +0200 Subject: [PATCH 263/273] docs: update rule docs to reflect if they are recommended correctly --- .README/rules/check-access.md | 2 +- .README/rules/lines-before-block.md | 2 +- .README/rules/no-defaults.md | 2 +- .README/rules/require-asterisk-prefix.md | 1 + .README/rules/require-template.md | 2 +- .README/rules/require-throws.md | 2 +- 6 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.README/rules/check-access.md b/.README/rules/check-access.md index 1263ae2e6..d22743290 100644 --- a/.README/rules/check-access.md +++ b/.README/rules/check-access.md @@ -19,7 +19,7 @@ Also reports: |---|---| |Context|everywhere| |Tags|`@access`| -|Recommended|false| +|Recommended|true| |Settings|| |Options|| diff --git a/.README/rules/lines-before-block.md b/.README/rules/lines-before-block.md index 441cb2c80..f453dace3 100644 --- a/.README/rules/lines-before-block.md +++ b/.README/rules/lines-before-block.md @@ -24,7 +24,7 @@ lines before the block will not be added). |---|---| |Context|everywhere| |Tags|N/A| -|Recommended|true| +|Recommended|false| |Settings|| |Options|`excludedTags`, `ignoreSameLine`, `lines`| diff --git a/.README/rules/no-defaults.md b/.README/rules/no-defaults.md index ff4a3819c..a5670c0ca 100644 --- a/.README/rules/no-defaults.md +++ b/.README/rules/no-defaults.md @@ -48,7 +48,7 @@ section of our README for more on the expected format. |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| |Tags|`param`, `default`| |Aliases|`arg`, `argument`, `defaultvalue`| -|Recommended|false| +|Recommended|true| |Options|`contexts`, `noOptionalParamNames`| ## Failing examples diff --git a/.README/rules/require-asterisk-prefix.md b/.README/rules/require-asterisk-prefix.md index b8d2e3223..ad0ba6fe1 100644 --- a/.README/rules/require-asterisk-prefix.md +++ b/.README/rules/require-asterisk-prefix.md @@ -43,6 +43,7 @@ which applies to the main jsdoc block description. |---|---| |Context|everywhere| |Tags|All or as limited by the `tags` option| +|Recommended|false| |Options|string ("always", "never", "any") followed by object with `tags`| ## Failing examples diff --git a/.README/rules/require-template.md b/.README/rules/require-template.md index a76b30ef7..83efdda97 100644 --- a/.README/rules/require-template.md +++ b/.README/rules/require-template.md @@ -42,7 +42,7 @@ Defaults to `false`. |---|---| |Context|everywhere| |Tags|`template`| -|Recommended|true| +|Recommended|false| |Settings|| |Options|`requireSeparateTemplates`| diff --git a/.README/rules/require-throws.md b/.README/rules/require-throws.md index 01068c0e7..d1ec58d43 100644 --- a/.README/rules/require-throws.md +++ b/.README/rules/require-throws.md @@ -38,7 +38,7 @@ on why TypeScript doesn't offer such a feature. | Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | | Tags | `throws` | | Aliases | `exception` | -|Recommended|true| +|Recommended|false| | Options |`contexts`, `exemptedBy`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | From 026fcc0ed5f0d4e5ad1625bbf3c1a173f5da270d Mon Sep 17 00:00:00 2001 From: Stoyan Kolev Date: Thu, 7 Nov 2024 09:51:22 +0200 Subject: [PATCH 264/273] run the create-docs script --- docs/rules/check-access.md | 2 +- docs/rules/lines-before-block.md | 2 +- docs/rules/no-defaults.md | 2 +- docs/rules/require-asterisk-prefix.md | 1 + docs/rules/require-template.md | 2 +- docs/rules/require-throws.md | 2 +- 6 files changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/rules/check-access.md b/docs/rules/check-access.md index 06f58bd53..128645064 100644 --- a/docs/rules/check-access.md +++ b/docs/rules/check-access.md @@ -26,7 +26,7 @@ Also reports: |---|---| |Context|everywhere| |Tags|`@access`| -|Recommended|false| +|Recommended|true| |Settings|| |Options|| diff --git a/docs/rules/lines-before-block.md b/docs/rules/lines-before-block.md index 28d1f57d1..f8465d0a7 100644 --- a/docs/rules/lines-before-block.md +++ b/docs/rules/lines-before-block.md @@ -34,7 +34,7 @@ lines before the block will not be added). |---|---| |Context|everywhere| |Tags|N/A| -|Recommended|true| +|Recommended|false| |Settings|| |Options|`excludedTags`, `ignoreSameLine`, `lines`| diff --git a/docs/rules/no-defaults.md b/docs/rules/no-defaults.md index 7d0cdcdce..b3d2e5184 100644 --- a/docs/rules/no-defaults.md +++ b/docs/rules/no-defaults.md @@ -67,7 +67,7 @@ section of our README for more on the expected format. |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled| |Tags|`param`, `default`| |Aliases|`arg`, `argument`, `defaultvalue`| -|Recommended|false| +|Recommended|true| |Options|`contexts`, `noOptionalParamNames`| diff --git a/docs/rules/require-asterisk-prefix.md b/docs/rules/require-asterisk-prefix.md index baf6d9eab..efde08a32 100644 --- a/docs/rules/require-asterisk-prefix.md +++ b/docs/rules/require-asterisk-prefix.md @@ -53,6 +53,7 @@ which applies to the main jsdoc block description. |---|---| |Context|everywhere| |Tags|All or as limited by the `tags` option| +|Recommended|false| |Options|string ("always", "never", "any") followed by object with `tags`| diff --git a/docs/rules/require-template.md b/docs/rules/require-template.md index e968bc2cf..7abd16db2 100644 --- a/docs/rules/require-template.md +++ b/docs/rules/require-template.md @@ -48,7 +48,7 @@ Defaults to `false`. |---|---| |Context|everywhere| |Tags|`template`| -|Recommended|true| +|Recommended|false| |Settings|| |Options|`requireSeparateTemplates`| diff --git a/docs/rules/require-throws.md b/docs/rules/require-throws.md index d81ceba54..290866710 100644 --- a/docs/rules/require-throws.md +++ b/docs/rules/require-throws.md @@ -48,7 +48,7 @@ on why TypeScript doesn't offer such a feature. | Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled | | Tags | `throws` | | Aliases | `exception` | -|Recommended|true| +|Recommended|false| | Options |`contexts`, `exemptedBy`| | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` | From b9091f8da90614a08738b13e0a26d97c357aa5c0 Mon Sep 17 00:00:00 2001 From: Eliott Vincent Date: Tue, 12 Nov 2024 12:47:48 +0100 Subject: [PATCH 265/273] feat: ability to import iterateJsdoc (#1338) --- package.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/package.json b/package.json index c5b3e8528..43b06ba68 100644 --- a/package.json +++ b/package.json @@ -100,6 +100,11 @@ "types": "./dist/getJsdocProcessorPlugin.d.ts", "import": "./dist/getJsdocProcessorPlugin.cjs", "require": "./src/getJsdocProcessorPlugin.js" + }, + "./iterateJsdoc.js": { + "types": "./dist/iterateJsdoc.d.ts", + "import": "./dist/iterateJsdoc.cjs", + "require": "./src/iterateJsdoc.js" } }, "name": "eslint-plugin-jsdoc", From 44142de5a01b5e629467e567fe39a1c0f881c24a Mon Sep 17 00:00:00 2001 From: Frazer Smith Date: Mon, 18 Nov 2024 11:56:47 +0000 Subject: [PATCH 266/273] chore(package): fix repository url --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 43b06ba68..d9cb431e0 100644 --- a/package.json +++ b/package.json @@ -134,7 +134,7 @@ }, "repository": { "type": "git", - "url": "https://github.com/gajus/eslint-plugin-jsdoc" + "url": "git+https://github.com/gajus/eslint-plugin-jsdoc.git" }, "run-if-changed": { "package-lock.json": "npm run install-offline" From f9a313155e112d6e3340f56f6e9917d3059de6de Mon Sep 17 00:00:00 2001 From: Frazer Smith Date: Mon, 18 Nov 2024 12:02:05 +0000 Subject: [PATCH 267/273] chore(package): add homepage url --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index d9cb431e0..8ad42f21d 100644 --- a/package.json +++ b/package.json @@ -136,6 +136,7 @@ "type": "git", "url": "git+https://github.com/gajus/eslint-plugin-jsdoc.git" }, + "homepage": "https://github.com/gajus/eslint-plugin-jsdoc#readme", "run-if-changed": { "package-lock.json": "npm run install-offline" }, From d3c24f5b0bc647269bed5812bc331794d09563f0 Mon Sep 17 00:00:00 2001 From: Frazer Smith Date: Mon, 18 Nov 2024 12:54:02 +0000 Subject: [PATCH 268/273] chore(package): add bugs url --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index 8ad42f21d..9bd25c3da 100644 --- a/package.json +++ b/package.json @@ -137,6 +137,9 @@ "url": "git+https://github.com/gajus/eslint-plugin-jsdoc.git" }, "homepage": "https://github.com/gajus/eslint-plugin-jsdoc#readme", + "bugs": { + "url": "https://github.com/gajus/eslint-plugin-jsdoc/issues" + }, "run-if-changed": { "package-lock.json": "npm run install-offline" }, From feba293e9c3172c411e967ec374fbc2b425fb369 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Nov 2024 02:53:12 +0000 Subject: [PATCH 269/273] build(deps): bump cross-spawn from 7.0.3 to 7.0.6 Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6. - [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md) - [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6) --- updated-dependencies: - dependency-name: cross-spawn dependency-type: indirect ... Signed-off-by: dependabot[bot] --- pnpm-lock.yaml | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eae422c23..d42a543b7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1870,6 +1870,7 @@ packages: boolean@3.2.0: resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. bottleneck@2.19.5: resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} @@ -2146,8 +2147,8 @@ packages: engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} hasBin: true - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} crypto-random-string@4.0.0: @@ -7928,9 +7929,9 @@ snapshots: cross-env@7.0.3: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 - cross-spawn@7.0.3: + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 @@ -8705,7 +8706,7 @@ snapshots: '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 debug: 4.3.6(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 @@ -8748,7 +8749,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 debug: 4.3.6(supports-color@8.1.1) escape-string-regexp: 4.0.0 eslint-scope: 8.0.2 @@ -8811,7 +8812,7 @@ snapshots: execa@8.0.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 8.0.1 human-signals: 5.0.0 is-stream: 3.0.0 @@ -8824,7 +8825,7 @@ snapshots: execa@9.1.0: dependencies: '@sindresorhus/merge-streams': 4.0.0 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 figures: 6.1.0 get-stream: 9.0.1 human-signals: 7.0.0 @@ -8839,7 +8840,7 @@ snapshots: execa@9.3.0: dependencies: '@sindresorhus/merge-streams': 4.0.0 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 figures: 6.1.0 get-stream: 9.0.1 human-signals: 7.0.0 @@ -8968,7 +8969,7 @@ snapshots: foreground-child@3.1.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 signal-exit: 4.1.0 forever-agent@0.6.1: {} From f9b102dec5cdf62b4c572d67a2514ba200d29668 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josh=20Goldberg=20=E2=9C=A8?= Date: Tue, 26 Nov 2024 08:21:41 -0500 Subject: [PATCH 270/273] feat(lines-before-block): move start-of-block checking behind off-by-default `checkBlockStarts` option (#1341) --- .README/rules/lines-before-block.md | 9 +- docs/rules/lines-before-block.md | 68 ++++++++++- src/rules/linesBeforeBlock.js | 6 +- test/rules/assertions/linesBeforeBlock.js | 134 ++++++++++++++++++++++ 4 files changed, 212 insertions(+), 5 deletions(-) diff --git a/.README/rules/lines-before-block.md b/.README/rules/lines-before-block.md index f453dace3..29c8ac63d 100644 --- a/.README/rules/lines-before-block.md +++ b/.README/rules/lines-before-block.md @@ -1,10 +1,15 @@ # `lines-before-block` This rule enforces minimum number of newlines before JSDoc comment blocks -(except at the beginning of a file). +(except at the beginning of a block or file). ## Options +### `checkBlockStarts` + +Whether to additionally check the start of blocks, such as classes or functions. +Defaults to `false`. + ### `lines` The minimum number of lines to require. Defaults to 1. @@ -26,7 +31,7 @@ lines before the block will not be added). |Tags|N/A| |Recommended|false| |Settings|| -|Options|`excludedTags`, `ignoreSameLine`, `lines`| +|Options|`checkBlockStarts`, `excludedTags`, `ignoreSameLine`, `lines`| ## Failing examples diff --git a/docs/rules/lines-before-block.md b/docs/rules/lines-before-block.md index f8465d0a7..c6668ff46 100644 --- a/docs/rules/lines-before-block.md +++ b/docs/rules/lines-before-block.md @@ -3,12 +3,19 @@ # lines-before-block This rule enforces minimum number of newlines before JSDoc comment blocks -(except at the beginning of a file). +(except at the beginning of a block or file). ## Options + + +### checkBlockStarts + +Whether to additionally check the start of blocks, such as classes or functions. +Defaults to `false`. + ### lines @@ -36,7 +43,7 @@ lines before the block will not be added). |Tags|N/A| |Recommended|false| |Settings|| -|Options|`excludedTags`, `ignoreSameLine`, `lines`| +|Options|`checkBlockStarts`, `excludedTags`, `ignoreSameLine`, `lines`| @@ -87,6 +94,42 @@ someCode; * */ // Message: Required 1 line(s) before JSDoc block + +{ + /** + * Description. + */ + let value; +} +// "jsdoc/lines-before-block": ["error"|"warn", {"checkBlockStarts":true}] +// Message: Required 1 line(s) before JSDoc block + +class MyClass { + /** + * Description. + */ + method() {} +} +// "jsdoc/lines-before-block": ["error"|"warn", {"checkBlockStarts":true}] +// Message: Required 1 line(s) before JSDoc block + +function myFunction() { + /** + * Description. + */ + let value; +} +// "jsdoc/lines-before-block": ["error"|"warn", {"checkBlockStarts":true}] +// Message: Required 1 line(s) before JSDoc block + +const values = [ + /** + * Description. + */ + value, +]; +// "jsdoc/lines-before-block": ["error"|"warn", {"checkBlockStarts":true}] +// Message: Required 1 line(s) before JSDoc block ```` @@ -146,5 +189,26 @@ const a = /** @lends SomeClass */ { someProp: (someVal) }; // "jsdoc/lines-before-block": ["error"|"warn", {"excludedTags":["lends"],"ignoreSameLine":false}] + +{ + /** + * Description. + */ + let value; +} + +class MyClass { + /** + * Description. + */ + method() {} +} + +function myFunction() { + /** + * Description. + */ + let value; +} ```` diff --git a/src/rules/linesBeforeBlock.js b/src/rules/linesBeforeBlock.js index 086193c2a..7d9f59527 100644 --- a/src/rules/linesBeforeBlock.js +++ b/src/rules/linesBeforeBlock.js @@ -8,6 +8,7 @@ export default iterateJsdoc(({ utils, }) => { const { + checkBlockStarts, lines = 1, ignoreSameLine = true, excludedTags = ['type'] @@ -19,7 +20,7 @@ export default iterateJsdoc(({ const tokensBefore = sourceCode.getTokensBefore(jsdocNode, {includeComments: true}); const tokenBefore = tokensBefore.slice(-1)[0]; - if (!tokenBefore) { + if (!tokenBefore || (tokenBefore.value === '{' && !checkBlockStarts)) { return; } @@ -80,6 +81,9 @@ export default iterateJsdoc(({ { additionalProperties: false, properties: { + checkBlockStarts: { + type: 'boolean', + }, excludedTags: { type: 'array', items: { diff --git a/test/rules/assertions/linesBeforeBlock.js b/test/rules/assertions/linesBeforeBlock.js index 51132b205..9551a38ba 100644 --- a/test/rules/assertions/linesBeforeBlock.js +++ b/test/rules/assertions/linesBeforeBlock.js @@ -161,6 +161,110 @@ export default { */ `, }, + { + code: ` + { + /** + * Description. + */ + let value; + } + `, + errors: [ + { + line: 3, + message: 'Required 1 line(s) before JSDoc block' + } + ], + options: [{ checkBlockStarts: true }], + output: ` + { + + /** + * Description. + */ + let value; + } + `, + }, + { + code: ` + class MyClass { + /** + * Description. + */ + method() {} + } + `, + errors: [ + { + line: 3, + message: 'Required 1 line(s) before JSDoc block' + } + ], + options: [{ checkBlockStarts: true }], + output: ` + class MyClass { + + /** + * Description. + */ + method() {} + } + `, + }, + { + code: ` + function myFunction() { + /** + * Description. + */ + let value; + } + `, + errors: [ + { + line: 3, + message: 'Required 1 line(s) before JSDoc block' + } + ], + options: [{ checkBlockStarts: true }], + output: ` + function myFunction() { + + /** + * Description. + */ + let value; + } + `, + }, + { + code: ` + const values = [ + /** + * Description. + */ + value, + ]; + `, + errors: [ + { + line: 3, + message: 'Required 1 line(s) before JSDoc block' + } + ], + options: [{ checkBlockStarts: true }], + output: ` + const values = [ + + /** + * Description. + */ + value, + ]; + `, + } ], valid: [ { @@ -242,5 +346,35 @@ export default { } ] }, + { + code: ` + { + /** + * Description. + */ + let value; + } + `, + }, + { + code: ` + class MyClass { + /** + * Description. + */ + method() {} + } + `, + }, + { + code: ` + function myFunction() { + /** + * Description. + */ + let value; + } + `, + } ], }; From d2c60403bb55a14eadbf49fc9937caad14a29cde Mon Sep 17 00:00:00 2001 From: Leonardo Gurgel Date: Tue, 10 Dec 2024 21:58:07 -0300 Subject: [PATCH 271/273] fix(types): update configs types (#1344) Co-authored-by: Brett Zamir --- src/index.js | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/index.js b/src/index.js index eaf2e2039..0e74a8757 100644 --- a/src/index.js +++ b/src/index.js @@ -59,19 +59,13 @@ import validTypes from './rules/validTypes.js'; import { getJsdocProcessorPlugin } from './getJsdocProcessorPlugin.js'; /** + * @typedef {"recommended" | "stylistic" | "contents" | "logical"} ConfigGroups + * @typedef {"" | "-typescript" | "-typescript-flavor"} ConfigVariants + * @typedef {"" | "-error"} ErrorLevelVariants * @type {import('eslint').ESLint.Plugin & { - * configs: Record< - * "recommended"|"recommended-error"|"recommended-typescript"| - * "recommended-typescript-error"|"recommended-typescript-flavor"| - * "recommended-typescript-flavor-error"|"flat/recommended"| - * "flat/recommended-error"|"flat/recommended-typescript"| - * "flat/recommended-typescript-error"| - * "flat/recommended-typescript-flavor"| - * "flat/recommended-typescript-flavor-error", - * import('eslint').Linter.FlatConfig - * > - * }} - */ +* configs: Record<`flat/${ConfigGroups}${ConfigVariants}${ErrorLevelVariants}`, import('eslint').Linter.Config> +* }} +*/ const index = { // @ts-expect-error Ok configs: {}, From a57f36e3469eebe74a1381ca467120a941765e35 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Fri, 17 Jan 2025 18:15:14 +0800 Subject: [PATCH 272/273] fix(`valid-types`): update closure suppress types; fixes #1349 (#1350) --- src/rules/validTypes.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/rules/validTypes.js b/src/rules/validTypes.js index 8c1839bf3..7e3996e7e 100644 --- a/src/rules/validTypes.js +++ b/src/rules/validTypes.js @@ -24,13 +24,16 @@ const suppressTypes = new Set([ // https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/parsing/ParserConfig.properties#L154 'accessControls', 'checkDebuggerStatement', + 'checkEs5InheritanceCorrectnessConditions', 'checkPrototypalTypes', 'checkRegExp', 'checkTypes', 'checkVars', + 'closureClassChecks', 'closureDepMethodUsageChecks', 'const', 'constantProperty', + 'dangerousUnrecognizedTypeError', 'deprecated', 'duplicate', 'es5Strict', @@ -42,6 +45,7 @@ const suppressTypes = new Set([ 'lateProvide', 'legacyGoogScopeRequire', 'lintChecks', + 'lintVarDeclarations', 'messageConventions', 'misplacedTypeAnnotation', 'missingOverride', @@ -49,12 +53,15 @@ const suppressTypes = new Set([ 'missingProperties', 'missingProvide', 'missingRequire', + 'missingReturn', 'missingSourcesWarnings', 'moduleLoad', + 'msgDescriptions', 'nonStandardJsDocs', 'partialAlias', 'polymer', 'reportUnknownTypes', + 'strictCheckTypes', 'strictMissingProperties', 'strictModuleDepCheck', 'strictPrimitiveOperators', @@ -69,6 +76,8 @@ const suppressTypes = new Set([ 'unknownDefines', 'untranspilableFeatures', 'unusedLocalVariables', + + // Not documented? 'unusedPrivateMembers', 'useOfGoogProvide', 'uselessCode', From c283729387387478ede5db5b4185356cb72aca7a Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 25 Jan 2025 13:34:45 +0800 Subject: [PATCH 273/273] fix(`check-template-names`): stop restricting template names to single letters; fixes #1352 Single letters in JSDoc blocks still expected for template names in `require-template` rule. --- src/rules/checkTemplateNames.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rules/checkTemplateNames.js b/src/rules/checkTemplateNames.js index 27a198a55..c909a5168 100644 --- a/src/rules/checkTemplateNames.js +++ b/src/rules/checkTemplateNames.js @@ -37,7 +37,7 @@ export default iterateJsdoc(({ type, value, } = /** @type {import('jsdoc-type-pratt-parser').NameResult} */ (nde); - if (type === 'JsdocTypeName' && (/^[A-Z]$/).test(value)) { + if (type === 'JsdocTypeName') { usedNames.add(value); } });